playbook_ui 6.0.1.pre.alpha5 → 6.0.1.pre.alpha6

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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +2 -1
  3. data/app/pb_kits/playbook/data/menu.yml +3 -2
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/packs/examples.js +2 -0
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +2 -2
  7. data/app/pb_kits/playbook/pb_badge/_badge.jsx +2 -5
  8. data/app/pb_kits/playbook/pb_badge/_badge.scss +1 -1
  9. data/app/pb_kits/playbook/pb_badge/badge.rb +1 -6
  10. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +2 -2
  11. data/app/pb_kits/playbook/pb_body/_body.jsx +3 -6
  12. data/app/pb_kits/playbook/pb_body/_body.scss +6 -0
  13. data/app/pb_kits/playbook/pb_body/body.rb +2 -8
  14. data/app/pb_kits/playbook/pb_button/_button.jsx +2 -5
  15. data/app/pb_kits/playbook/pb_button/_button.scss +1 -1
  16. data/app/pb_kits/playbook/pb_button/button.rb +1 -7
  17. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +2 -0
  18. data/app/pb_kits/playbook/pb_caption/_caption.jsx +2 -2
  19. data/app/pb_kits/playbook/pb_card/_card.jsx +17 -14
  20. data/app/pb_kits/playbook/pb_card/_card.scss +4 -1
  21. data/app/pb_kits/playbook/pb_card/card.rb +2 -9
  22. data/app/pb_kits/playbook/pb_card/docs/_card_dark.html.erb +1 -1
  23. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +2 -2
  24. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +1 -8
  25. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +2 -2
  26. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +0 -2
  27. data/app/pb_kits/playbook/pb_contact/_contact.jsx +2 -2
  28. data/app/pb_kits/playbook/pb_currency/_currency.jsx +2 -2
  29. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +26 -0
  30. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +2 -2
  31. data/app/pb_kits/playbook/pb_date/_date.jsx +4 -4
  32. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +2 -2
  33. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +2 -2
  34. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +2 -2
  35. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +2 -2
  36. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +2 -2
  37. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +2 -2
  38. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +2 -2
  39. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +2 -2
  40. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +2 -2
  41. data/app/pb_kits/playbook/pb_flex/_flex.jsx +2 -2
  42. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +2 -2
  43. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +2 -2
  44. data/app/pb_kits/playbook/pb_gauge/_gauge.html.erb +12 -0
  45. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +110 -0
  46. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +11 -0
  47. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.html.erb +11 -0
  48. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +17 -0
  49. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.html.erb +12 -0
  50. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_disable_animation.jsx +18 -0
  51. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.html.erb +14 -0
  52. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +20 -0
  53. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.html.erb +15 -0
  54. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +23 -0
  55. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +40 -0
  56. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.html.erb +15 -0
  57. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +21 -0
  58. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.md +1 -0
  59. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.html.erb +26 -0
  60. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +37 -0
  61. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.md +1 -0
  62. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.html.erb +14 -0
  63. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +20 -0
  64. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.html.erb +29 -0
  65. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +29 -0
  66. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +24 -0
  67. data/app/pb_kits/playbook/pb_gauge/docs/index.js +9 -0
  68. data/app/pb_kits/playbook/pb_gauge/gauge.rb +57 -0
  69. data/app/pb_kits/playbook/pb_hashtag/_hashtag.jsx +2 -2
  70. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +2 -2
  71. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +2 -2
  72. data/app/pb_kits/playbook/pb_icon/_icon.jsx +2 -2
  73. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +2 -2
  74. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +2 -2
  75. data/app/pb_kits/playbook/pb_image/_image.jsx +2 -2
  76. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +2 -2
  77. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +2 -2
  78. data/app/pb_kits/playbook/pb_layout/_layout.jsx +6 -6
  79. data/app/pb_kits/playbook/pb_legend/_legend.jsx +2 -2
  80. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +2 -2
  81. data/app/pb_kits/playbook/pb_list/_list.jsx +2 -2
  82. data/app/pb_kits/playbook/pb_list/_list_item.jsx +2 -2
  83. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +2 -2
  84. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +111 -0
  85. data/app/pb_kits/playbook/pb_message/_message.jsx +2 -2
  86. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +2 -2
  87. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.jsx +2 -2
  88. data/app/pb_kits/playbook/pb_nav/_nav.jsx +2 -2
  89. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +2 -2
  90. data/app/pb_kits/playbook/pb_person/_person.jsx +2 -2
  91. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +2 -2
  92. data/app/pb_kits/playbook/pb_pill/_pill.jsx +2 -2
  93. data/app/pb_kits/playbook/pb_popover/_popover.jsx +2 -2
  94. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +2 -2
  95. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +2 -2
  96. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +2 -2
  97. data/app/pb_kits/playbook/pb_radio/_radio.jsx +2 -2
  98. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +2 -2
  99. data/app/pb_kits/playbook/pb_select/_select.jsx +2 -2
  100. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +2 -2
  101. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +2 -2
  102. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -2
  103. data/app/pb_kits/playbook/pb_table/_table.jsx +2 -2
  104. data/app/pb_kits/playbook/pb_table/_table_row.jsx +2 -2
  105. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +2 -2
  106. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +2 -2
  107. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +2 -2
  108. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +2 -2
  109. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +2 -2
  110. data/app/pb_kits/playbook/pb_title/_title.jsx +2 -2
  111. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +2 -2
  112. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +2 -2
  113. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +2 -2
  114. data/app/pb_kits/playbook/pb_user/_user.jsx +2 -2
  115. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +2 -2
  116. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +2 -2
  117. data/app/pb_kits/playbook/plugins/pb_chart.js +74 -0
  118. data/app/pb_kits/playbook/props.rb +6 -0
  119. data/app/pb_kits/playbook/utilities/{spacing.js → globalProps.js} +14 -1
  120. data/app/pb_kits/playbook/utilities/props.js +1 -0
  121. data/lib/generators/kit/templates/kit_jsx.erb.tt +2 -2
  122. data/lib/playbook/version.rb +1 -1
  123. metadata +28 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3758eaffd739857c6d3a7b4f9abb12ab11ea815d798c17f2bbb3a6e6c0f0a6dd
4
- data.tar.gz: 8b3904ea1cf701bfc759d3d18b3a822530bb25ebf9a30f73ca70f813415e2c10
3
+ metadata.gz: 3d15e1dfbbf4ca480142d10ee4e6da90644a8e9b95c55948d5985626885c4a3b
4
+ data.tar.gz: a1cdc436d5c1c262a37ed465b6de00c1efe27663af599e641acaf871a0a04951
5
5
  SHA512:
6
- metadata.gz: 9a9ea53ae1f6d6bb8af300e24828775554c77bb58a43612fc4faa0d00a48325ed8b6d74cae83e449207861051601e5d0926f98a03f317b89d917c574e563e85a
7
- data.tar.gz: e3dcec185a93b6a9bb803cde9ec24f55b388e33d74e37d8da26d9fe606b4f3ab83b98294c17560747cd785eac9eff00729d20021446aeb88ad25e04909ce5d7d
6
+ metadata.gz: 3712c53539b7900f80549f6b57be230538b59f32ef5559d6b1de3327a9da63d8d9dc9ca333d3286c648cdb8605dd482bc45d8ed445b3d7609b42e13fef053d7b
7
+ data.tar.gz: 1bcb503b7574ec32dc420e84c99e0c5c1ed1bd1b720a54ef65a9b7b2bae7c77962dd660208e65c8672151119f08ac4fc6344dc06091eb0df8b029df136b04cae
@@ -26,6 +26,7 @@
26
26
  @import 'pb_form/form';
27
27
  @import 'pb_form_pill/form_pill';
28
28
  @import 'pb_flex/flex';
29
+ @import 'pb_gauge/gauge';
29
30
  @import 'pb_hashtag/hashtag';
30
31
  @import 'pb_highlight/highlight';
31
32
  @import 'pb_home_address_street/home_address_street';
@@ -78,4 +79,4 @@
78
79
  @import 'pb_user_badge/user_badge';
79
80
  @import 'pb_time_stacked/time_stacked';
80
81
  @import 'pb_weekday_stacked/weekday_stacked';
81
- @import './utilities/spacing';
82
+ @import './utilities/spacing';
@@ -15,10 +15,11 @@ kits:
15
15
  - checkbox
16
16
  - charts_and_graphs:
17
17
  - bar_graph
18
+ - circle_chart
19
+ - distribution_bar
20
+ - gauge
18
21
  - legend
19
22
  - line_graph
20
- - distribution_bar
21
- - circle_chart
22
23
 
23
24
  - filter
24
25
  - fixed_confirmation_toast
@@ -25,6 +25,7 @@ export FixedConfirmationToast from './pb_fixed_confirmation_toast/_fixed_confirm
25
25
  export Flex from './pb_flex/_flex.jsx'
26
26
  export FlexItem from './pb_flex/_flex_item.jsx'
27
27
  export FormPill from './pb_form_pill/_form_pill.jsx'
28
+ export Gauge from './pb_gauge/_gauge.jsx'
28
29
  export Hashtag from './pb_hashtag/_hashtag.jsx'
29
30
  export Highlight from './pb_highlight/_highlight.jsx'
30
31
  export HomeAddressStreet from './pb_home_address_street/_home_address_street.jsx'
@@ -38,6 +38,7 @@ import * as Filter from 'pb_filter/docs'
38
38
  import * as FixedConfirmationToast from 'pb_fixed_confirmation_toast/docs'
39
39
  import * as Flex from 'pb_flex/docs'
40
40
  import * as FormPill from 'pb_form_pill/docs'
41
+ import * as Gauge from 'pb_gauge/docs'
41
42
  import * as Hashtag from 'pb_hashtag/docs'
42
43
  import * as Highlight from 'pb_highlight/docs'
43
44
  import * as HomeAddressStreet from 'pb_home_address_street/docs'
@@ -116,6 +117,7 @@ WebpackerReact.setup({
116
117
  ...FixedConfirmationToast,
117
118
  ...Flex,
118
119
  ...FormPill,
120
+ ...Gauge,
119
121
  ...Hashtag,
120
122
  ...Highlight,
121
123
  ...HomeAddressStreet,
@@ -5,7 +5,7 @@ import classnames from 'classnames'
5
5
  import { map } from 'lodash'
6
6
 
7
7
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
8
- import { spacing } from '../utilities/spacing.js'
8
+ import { globalProps } from '../utilities/globalProps.js'
9
9
 
10
10
  import { Image } from '../'
11
11
 
@@ -29,7 +29,7 @@ const Avatar = (props: AvatarProps) => {
29
29
  const { aria = {}, className, data = {}, name = null, id = id, imageUrl, size = 'md', status = null } = props
30
30
  const dataProps = buildDataProps(data)
31
31
  const ariaProps = buildAriaProps(aria)
32
- const classes = classnames(buildCss('pb_avatar_kit', size), className, spacing(props))
32
+ const classes = classnames(buildCss('pb_avatar_kit', size), className, globalProps(props))
33
33
 
34
34
  const initials = name && firstTwoInitials(name)
35
35
  dataProps['data-initials'] = initials
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
- import { spacing } from '../utilities/spacing.js'
5
+ import { globalProps } from '../utilities/globalProps.js'
6
6
 
7
7
  import {
8
8
  buildAriaProps,
@@ -13,7 +13,6 @@ import {
13
13
  type BadgeProps = {
14
14
  aria?: object,
15
15
  className?: String,
16
- dark?: Boolean,
17
16
  data?: object,
18
17
  id?: String,
19
18
  rounded?: Boolean,
@@ -24,7 +23,6 @@ const Badge = (props: BadgeProps) => {
24
23
  const {
25
24
  aria = {},
26
25
  className,
27
- dark = false,
28
26
  data = {},
29
27
  id,
30
28
  rounded = false,
@@ -37,9 +35,8 @@ const Badge = (props: BadgeProps) => {
37
35
  className,
38
36
  buildCss('pb_badge_kit', variant, {
39
37
  rounded: rounded,
40
- dark: dark,
41
38
  }),
42
- spacing(props)
39
+ globalProps(props)
43
40
  )
44
41
 
45
42
  return (
@@ -37,7 +37,7 @@
37
37
  border-radius: $pb_badge_height / 2;
38
38
  }
39
39
 
40
- &[class*=_dark] {
40
+ &.dark {
41
41
  border-width: 0;
42
42
 
43
43
  @each $color_name, $color_value in $status_colors {
@@ -7,7 +7,6 @@ module Playbook
7
7
 
8
8
  partial "pb_badge/badge"
9
9
 
10
- prop :dark, type: Playbook::Props::Boolean, default: false
11
10
  prop :rounded, type: Playbook::Props::Boolean, default: false
12
11
  prop :text
13
12
  prop :variant, type: Playbook::Props::Enum,
@@ -15,15 +14,11 @@ module Playbook
15
14
  default: "neutral"
16
15
 
17
16
  def classname
18
- generate_classname("pb_badge_kit", variant, rounded_class, dark_class)
17
+ generate_classname("pb_badge_kit", variant, rounded_class)
19
18
  end
20
19
 
21
20
  private
22
21
 
23
- def dark_class
24
- dark ? "dark" : nil
25
- end
26
-
27
22
  def rounded_class
28
23
  rounded ? "rounded" : nil
29
24
  end
@@ -3,7 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { pbChart } from '../'
6
- import { spacing } from '../utilities/spacing.js'
6
+ import { globalProps } from '../utilities/globalProps.js'
7
7
 
8
8
  type BarGraphProps = {
9
9
  axisTitle: String,
@@ -75,7 +75,7 @@ export default class BarGraph extends React.Component<BarGraphProps> {
75
75
 
76
76
  return (
77
77
  <div
78
- className={classnames(className, spacing(this.props))}
78
+ className={classnames(className, globalProps(this.props))}
79
79
  id={id}
80
80
  />
81
81
  )
@@ -4,7 +4,7 @@ import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
6
6
  import { Highlight } from '../'
7
- import { spacing } from '../utilities/spacing.js'
7
+ import { globalProps } from '../utilities/globalProps.js'
8
8
 
9
9
  type BodyProps = {
10
10
  aria?: object,
@@ -27,7 +27,6 @@ const Body = (props: BodyProps) => {
27
27
  className,
28
28
  children,
29
29
  color = '',
30
- dark = false,
31
30
  data = {},
32
31
  highlightedText = [],
33
32
  highlighting = false,
@@ -40,10 +39,8 @@ const Body = (props: BodyProps) => {
40
39
  const ariaProps = buildAriaProps(aria)
41
40
  const dataProps = buildDataProps(data)
42
41
  const classes = classnames(
43
- buildCss('pb_body_kit', color, status, {
44
- dark: dark,
45
- }),
46
- spacing(props),
42
+ buildCss('pb_body_kit', color, status),
43
+ globalProps(props),
47
44
  className
48
45
  )
49
46
  const Tag = `${tag}`
@@ -1,5 +1,11 @@
1
1
  @import "./body_mixins";
2
2
 
3
+ .pb_body_kit {
4
+ &.dark {
5
+ @include pb_body_dark;
6
+ }
7
+ }
8
+
3
9
  [class^=pb_body_kit]{
4
10
  @include pb_body;
5
11
 
@@ -11,8 +11,6 @@ module Playbook
11
11
  prop :color, type: Playbook::Props::Enum,
12
12
  values: %w[default light lighter dark light_dark lighter_dark],
13
13
  default: "default"
14
- prop :dark, type: Playbook::Props::Boolean,
15
- default: false
16
14
  prop :status, type: Playbook::Props::Enum,
17
15
  values: %w[neutral negative positive],
18
16
  default: "neutral"
@@ -26,7 +24,7 @@ module Playbook
26
24
  default: []
27
25
 
28
26
  def classname
29
- generate_classname("pb_body_kit", color_class, dark_class, status_class)
27
+ generate_classname("pb_body_kit", color_class, status_class)
30
28
  end
31
29
 
32
30
  def content
@@ -41,15 +39,11 @@ module Playbook
41
39
  highlight_tags = pb_highlight_output.split("|")
42
40
  highlight(text, highlighted_text, highlighter: "#{highlight_tags.first.html_safe} \\1 #{highlight_tags.last.html_safe}")
43
41
  end
44
-
42
+
45
43
  def color_class
46
44
  color != "default" ? color : nil
47
45
  end
48
46
 
49
- def dark_class
50
- dark ? "dark" : nil
51
- end
52
-
53
47
  def status_class
54
48
  status != "neutral" ? status : nil
55
49
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
- import { spacing } from '../utilities/spacing.js'
5
+ import { globalProps } from '../utilities/globalProps.js'
6
6
 
7
7
  import Icon from '../pb_icon/_icon.jsx'
8
8
 
@@ -13,7 +13,6 @@ type ButtonPropTypes = {
13
13
  },
14
14
  children?: Array<React.ReactChild>,
15
15
  className?: String | Array<String>,
16
- dark: Boolean,
17
16
  disabled?: Boolean,
18
17
  fixedWidth?: Boolean,
19
18
  fullWidth?: Boolean,
@@ -34,7 +33,6 @@ type ButtonPropTypes = {
34
33
 
35
34
  const buttonClassName = (props: ButtonPropTypes) => {
36
35
  const {
37
- dark = false,
38
36
  disabled = false,
39
37
  fullWidth = false,
40
38
  loading = false,
@@ -48,7 +46,6 @@ const buttonClassName = (props: ButtonPropTypes) => {
48
46
  className += `${variant !== null ? `_${variant}` : ''}`
49
47
  className += `${type !== null ? `_${type}` : ''}`
50
48
  className += `${size !== null ? `_${size}` : ''}`
51
- className += `${dark === true ? '_dark' : ''}`
52
49
  className += `${fullWidth ? '_block' : ''}`
53
50
  className += disabled ? '_disabled' : '_enabled'
54
51
  className += loading ? '_loading' : ''
@@ -85,7 +82,7 @@ const Button = (props: ButtonPropTypes) => {
85
82
  } = props
86
83
 
87
84
  const buttonAria = buttonAriaProps(props)
88
- const css = classnames(buttonClassName(props), className, spacing(props))
85
+ const css = classnames(buttonClassName(props), className, globalProps(props))
89
86
  const loadingIcon = (
90
87
  <div className="loading-icon">
91
88
  <Icon
@@ -28,7 +28,7 @@
28
28
  @include pb_button_loading(true);
29
29
  }
30
30
  // Dark Variants =============
31
- &[class*=_dark] {
31
+ &.dark {
32
32
  &[class*=_primary] {
33
33
  @include pb_button_primary_dark;
34
34
  }
@@ -7,8 +7,6 @@ module Playbook
7
7
 
8
8
  partial "pb_button/button"
9
9
 
10
- prop :dark, type: Playbook::Props::Boolean,
11
- default: false
12
10
  prop :disabled, type: Playbook::Props::Boolean,
13
11
  default: false
14
12
  prop :full_width, type: Playbook::Props::Boolean,
@@ -51,11 +49,7 @@ module Playbook
51
49
  private
52
50
 
53
51
  def classname
54
- generate_classname("pb_button_kit", variant, full_width_class, disabled_class, loading_class, dark_class)
55
- end
56
-
57
- def dark_class
58
- dark ? "dark" : nil
52
+ generate_classname("pb_button_kit", variant, full_width_class, disabled_class, loading_class)
59
53
  end
60
54
 
61
55
  def disabled_class
@@ -4,6 +4,8 @@ import { Button } from '../../'
4
4
  const ButtonDefault = () => (
5
5
  <div>
6
6
  <Button
7
+ dark
8
+ marginRight="xl"
7
9
  onClick={() => alert('button clicked!')}
8
10
  text="Button Primary"
9
11
  />
@@ -3,7 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
6
- import { spacing } from '../utilities/spacing.js'
6
+ import { globalProps } from '../utilities/globalProps.js'
7
7
 
8
8
  type CaptionProps = {
9
9
  aria?: object,
@@ -38,7 +38,7 @@ const Caption = (props: CaptionProps) => {
38
38
  dark: dark,
39
39
  }),
40
40
  className,
41
- spacing(props)
41
+ globalProps(props)
42
42
  )
43
43
 
44
44
  return (
@@ -4,38 +4,41 @@ import React from 'react'
4
4
  import { get } from 'lodash'
5
5
  import classnames from 'classnames'
6
6
  import { buildCss } from '../utilities/props'
7
- import { spacing } from '../utilities/spacing.js'
7
+ import { globalProps } from '../utilities/globalProps.js'
8
8
 
9
9
  type CardPropTypes = {
10
+ borderNone?: Boolean,
10
11
  children: Array<React.ReactNode> | React.ReactNode,
11
12
  className?: String,
12
13
  highlight?: {
13
14
  position?: "side" | "top",
14
15
  color?: String,
15
16
  },
17
+ padding?: String,
16
18
  selected?: Boolean,
17
19
  shadow?: "none" | "deep" | "deeper" | "deepest",
18
- dark?: Boolean,
19
- borderNone?: Boolean,
20
20
  }
21
21
 
22
22
  type CardHeaderProps = {
23
+ categoryColor?: Number,
23
24
  children: Array<React.ReactNode> | React.ReactNode,
24
25
  className?: String,
25
- categoryColor?: Number,
26
+ padding?: String,
26
27
  }
27
28
 
28
29
  type CardBodyProps = {
29
30
  children: Array<React.ReactNode> | React.ReactNode | String,
30
31
  className?: String,
32
+ padding?: String,
31
33
  }
32
34
 
33
35
  // Header component
34
36
  const Header = (props: CardHeaderProps) => {
35
- const { children, className, categoryColor = 1 } = props
37
+ const { children, className, categoryColor = 1, padding = 'sm' } = props
36
38
  const headerCSS = buildCss('pb_card_header_kit', `category_${categoryColor}`)
37
39
 
38
- const headerSpacing = spacing(props) ? spacing(props) : 'p_sm'
40
+ const headerSpacing = globalProps(props, { padding })
41
+
39
42
  return (
40
43
  <div className={classnames(headerCSS, className, headerSpacing)}>
41
44
  {children}
@@ -45,9 +48,11 @@ const Header = (props: CardHeaderProps) => {
45
48
 
46
49
  // Body component
47
50
  const Body = (props: CardBodyProps) => {
48
- const { children, className } = props
51
+ const { children, className, padding = 'md' } = props
49
52
  const bodyCSS = buildCss('pb_card_body_kit')
50
- const bodySpacing = spacing(props) ? spacing(props) : 'p_md'
53
+
54
+ const bodySpacing = globalProps(props, { padding })
55
+
51
56
  return (
52
57
  <div className={classnames(bodyCSS, className, bodySpacing)}>
53
58
  {children}
@@ -57,24 +62,22 @@ const Body = (props: CardBodyProps) => {
57
62
 
58
63
  const Card = (props: CardPropTypes) => {
59
64
  const {
65
+ borderNone = false,
60
66
  children,
61
67
  className,
62
- dark = false,
63
68
  highlight = {},
64
69
  selected = false,
65
70
  shadow = 'none',
66
- borderNone = false,
71
+ padding = 'md',
67
72
  } = props
68
73
  const bodyCSS = buildCss('pb_card_body_kit')
69
74
  const borderCSS = borderNone == true ? 'border_none' : ''
70
75
  const cardCss = buildCss('pb_card_kit', `shadow_${shadow}`, `${borderCSS}`, {
71
- dark: dark,
72
76
  selected,
73
77
  deselected: !selected,
74
78
  [`highlight_${highlight.position}`]: highlight.position,
75
79
  [`highlight_${highlight.color}`]: highlight.color,
76
80
  })
77
- const cardSpacing = spacing(props) ? spacing(props) : 'p_md'
78
81
 
79
82
  // coerce to array
80
83
  const cardChildren =
@@ -91,9 +94,9 @@ const Card = (props: CardPropTypes) => {
91
94
  const nonHeaderChildren = cardChildren.filter((child) => (get(child, 'type.displayName') !== 'Header'))
92
95
 
93
96
  return (
94
- <div className={classnames(cardCss, className)}>
97
+ <div className={classnames(cardCss, globalProps(props), className)}>
95
98
  {subComponentTags('Header')}
96
- <div className={classnames(bodyCSS, cardSpacing)}>
99
+ <div className={classnames(bodyCSS, globalProps({ padding }))}>
97
100
  {nonHeaderChildren}
98
101
  </div>
99
102
  </div>