playbook_ui 4.17.0.pre.alpha1 → 4.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -6
  3. data/app/pb_kits/playbook/_playbook.scss +3 -0
  4. data/app/pb_kits/playbook/data/menu.yml +1 -0
  5. data/app/pb_kits/playbook/index.js +1 -4
  6. data/app/pb_kits/playbook/packs/examples.js +2 -0
  7. data/app/pb_kits/playbook/packs/site_styles/docs/_markdown.scss +1 -1
  8. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +24 -15
  9. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_status.jsx +45 -0
  10. data/app/pb_kits/playbook/pb_avatar/docs/example.yml +6 -5
  11. data/app/pb_kits/playbook/pb_avatar/docs/index.js +1 -0
  12. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.html.erb +32 -0
  13. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.jsx +78 -0
  14. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.scss +63 -0
  15. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +44 -0
  16. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +15 -0
  17. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +19 -0
  18. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +8 -0
  19. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +13 -0
  20. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +15 -0
  21. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +14 -0
  22. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +27 -0
  23. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +29 -0
  24. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +11 -0
  25. data/app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml +16 -0
  26. data/app/pb_kits/playbook/pb_avatar_action_button/docs/index.js +4 -0
  27. data/app/pb_kits/playbook/pb_badge/_badge.jsx +20 -14
  28. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +3 -2
  29. data/app/pb_kits/playbook/pb_body/_body.jsx +2 -1
  30. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +4 -0
  31. data/app/pb_kits/playbook/pb_button/_button.jsx +2 -1
  32. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +6 -0
  33. data/app/pb_kits/playbook/pb_caption/_caption.jsx +19 -17
  34. data/app/pb_kits/playbook/pb_card/_card.html.erb +1 -1
  35. data/app/pb_kits/playbook/pb_card/_card.jsx +35 -38
  36. data/app/pb_kits/playbook/pb_card/_card.scss +0 -10
  37. data/app/pb_kits/playbook/pb_card/card.rb +9 -3
  38. data/app/pb_kits/playbook/pb_card/card_body.rb +1 -5
  39. data/app/pb_kits/playbook/pb_card/card_header.rb +0 -3
  40. data/app/pb_kits/playbook/pb_card/docs/_card_light.html.erb +2 -1
  41. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +17 -18
  42. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +4 -1
  43. data/app/pb_kits/playbook/pb_contact/_contact.html.erb +16 -3
  44. data/app/pb_kits/playbook/pb_contact/_contact.jsx +58 -34
  45. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +1 -1
  46. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +1 -0
  47. data/app/pb_kits/playbook/pb_currency/_currency.html.erb +1 -0
  48. data/app/pb_kits/playbook/pb_currency/_currency.jsx +37 -21
  49. data/app/pb_kits/playbook/pb_currency/docs/_currency_dark.html.erb +3 -3
  50. data/app/pb_kits/playbook/pb_currency/docs/_currency_dark.jsx +2 -3
  51. data/app/pb_kits/playbook/pb_currency/docs/_currency_large.jsx +2 -3
  52. data/app/pb_kits/playbook/pb_currency/docs/_currency_medium.jsx +2 -2
  53. data/app/pb_kits/playbook/pb_currency/docs/_currency_small.html.erb +1 -1
  54. data/app/pb_kits/playbook/pb_currency/docs/_currency_small.jsx +5 -2
  55. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +2 -2
  56. data/app/pb_kits/playbook/pb_date/_date.jsx +39 -15
  57. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +3 -1
  58. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.jsx +43 -37
  59. data/app/pb_kits/playbook/pb_date_range_inline/docs/_date_range_inline_default.jsx +2 -2
  60. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.jsx +6 -16
  61. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +21 -18
  62. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +30 -33
  63. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +10 -15
  64. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +8 -8
  65. data/app/pb_kits/playbook/pb_file_upload/_file_upload.jsx +13 -23
  66. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +16 -14
  67. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx +13 -12
  68. data/app/pb_kits/playbook/pb_flex/_flex.jsx +35 -20
  69. data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -9
  70. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +14 -19
  71. data/app/pb_kits/playbook/pb_hashtag/_hashtag.jsx +26 -22
  72. data/app/pb_kits/playbook/pb_highlight/_highlight.jsx +13 -12
  73. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.jsx +85 -80
  74. data/app/pb_kits/playbook/pb_icon/_icon.jsx +54 -33
  75. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.jsx +13 -9
  76. data/app/pb_kits/playbook/pb_icon_value/_icon_value.jsx +16 -20
  77. data/app/pb_kits/playbook/pb_image/_image.jsx +12 -10
  78. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +15 -25
  79. data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +10 -17
  80. data/app/pb_kits/playbook/pb_layout/_layout.jsx +49 -45
  81. data/app/pb_kits/playbook/pb_layout/_layout.scss +76 -57
  82. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.html.erb +54 -0
  83. data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.jsx +27 -0
  84. data/app/pb_kits/playbook/pb_layout/docs/example.yml +2 -0
  85. data/app/pb_kits/playbook/pb_layout/docs/index.js +1 -0
  86. data/app/pb_kits/playbook/pb_layout/layout.rb +10 -2
  87. data/app/pb_kits/playbook/pb_legend/_legend.jsx +17 -15
  88. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +3 -2
  89. data/app/pb_kits/playbook/pb_list/_list.jsx +24 -21
  90. data/app/pb_kits/playbook/pb_list/docs/_description.md +7 -1
  91. data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.html.erb +8 -0
  92. data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.html.erb +8 -0
  93. data/app/pb_kits/playbook/pb_list/docs/example.yml +2 -0
  94. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.jsx +21 -19
  95. data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +4 -11
  96. data/app/pb_kits/playbook/pb_message/_message.jsx +15 -11
  97. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +10 -10
  98. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.jsx +7 -19
  99. data/app/pb_kits/playbook/pb_nav/_nav.jsx +17 -14
  100. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +5 -13
  101. data/app/pb_kits/playbook/pb_person/_person.jsx +5 -11
  102. data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +20 -20
  103. data/app/pb_kits/playbook/pb_pill/_pill.jsx +5 -10
  104. data/app/pb_kits/playbook/pb_popover/_popover.jsx +52 -41
  105. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +16 -12
  106. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx +15 -12
  107. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +17 -10
  108. data/app/pb_kits/playbook/pb_radio/_radio.jsx +3 -1
  109. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +19 -13
  110. data/app/pb_kits/playbook/pb_select/_select.jsx +4 -2
  111. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +12 -7
  112. data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +14 -13
  113. data/app/pb_kits/playbook/pb_stat_value/_stat_value.jsx +2 -1
  114. data/app/pb_kits/playbook/pb_table/_table.jsx +29 -28
  115. data/app/pb_kits/playbook/pb_table/_table.scss +1 -1
  116. data/app/pb_kits/playbook/pb_table/_table_row.jsx +6 -7
  117. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.html.erb +52 -8
  118. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.jsx +52 -8
  119. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.md +3 -1
  120. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +3 -5
  121. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +1 -1
  122. data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +2 -1
  123. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.jsx +38 -18
  124. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +12 -11
  125. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +7 -14
  126. data/app/pb_kits/playbook/pb_title/_title.jsx +12 -13
  127. data/app/pb_kits/playbook/pb_title/docs/_title_light.html.erb +1 -1
  128. data/app/pb_kits/playbook/pb_title_count/_title_count.jsx +49 -28
  129. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_align.jsx +31 -0
  130. data/app/pb_kits/playbook/pb_title_count/docs/_title_count_default.jsx +13 -2
  131. data/app/pb_kits/playbook/pb_title_count/docs/example.yml +4 -5
  132. data/app/pb_kits/playbook/pb_title_count/docs/index.js +1 -0
  133. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +7 -18
  134. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +9 -11
  135. data/app/pb_kits/playbook/pb_user/_user.jsx +37 -37
  136. data/app/pb_kits/playbook/pb_user_badge/_user_badge.jsx +7 -7
  137. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.jsx +32 -30
  138. data/app/pb_kits/playbook/props.rb +48 -0
  139. data/app/pb_kits/playbook/tokens/_spacing.scss +1 -0
  140. data/app/pb_kits/playbook/utilities/_spacing.scss +42 -0
  141. data/app/pb_kits/playbook/utilities/spacing.js +33 -0
  142. data/app/views/playbook/samples/dashboards/index.html.erb +3 -1
  143. data/lib/playbook/version.rb +1 -1
  144. data/lib/tasks/pb_release.rake +0 -2
  145. metadata +28 -6
@@ -2,6 +2,7 @@
2
2
  import React from 'react'
3
3
  import classnames from 'classnames'
4
4
  import { buildCss } from '../utilities/props'
5
+ import { spacing } from '../utilities/spacing.js'
5
6
 
6
7
  type ProgressSimpleProps = {
7
8
  align?: "left" | "center" | "right",
@@ -13,19 +14,20 @@ type ProgressSimpleProps = {
13
14
  muted: Boolean,
14
15
  percent: String,
15
16
  value: Number,
16
- width: String
17
+ width: String,
17
18
  }
18
19
 
19
- const ProgressSimple = ({
20
- align,
21
- className,
22
- dark = false,
23
- max,
24
- muted = false,
25
- percent = '',
26
- value,
27
- width = '100%',
28
- }: ProgressSimpleProps) => {
20
+ const ProgressSimple = (props: ProgressSimpleProps) => {
21
+ const {
22
+ align,
23
+ className,
24
+ dark = false,
25
+ max,
26
+ muted = false,
27
+ percent = '',
28
+ value,
29
+ width = '100%',
30
+ } = props
29
31
  const styles = {
30
32
  width: width,
31
33
  }
@@ -36,7 +38,8 @@ const ProgressSimple = ({
36
38
 
37
39
  const wrapperClass = classnames(
38
40
  className,
39
- buildCss('pb_progress_simple_wrapper', align, { dark: dark })
41
+ buildCss('pb_progress_simple_wrapper', align, { dark: dark }),
42
+ spacing(props)
40
43
  )
41
44
 
42
45
  const kitClass = classnames(
@@ -3,30 +3,37 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildCss } from '../utilities/props'
6
+ import { spacing } from '../utilities/spacing.js'
6
7
 
7
8
  type ProgressStepProps = {
8
9
  className?: String,
9
10
  data?: String,
10
11
  id?: String,
11
12
  children?: Array<React.ReactChild>,
12
- orientation?: 'horizontal' | 'vertical',
13
+ orientation?: "horizontal" | "vertical",
13
14
  icon?: Boolean,
14
15
  dark?: Boolean,
15
16
  }
16
17
 
17
- const ProgressStep = ({
18
- className,
19
- children,
20
- orientation = 'horizontal',
21
- icon = false,
22
- dark = false,
23
- }: ProgressStepProps) => {
18
+ const ProgressStep = (props: ProgressStepProps) => {
19
+ const {
20
+ className,
21
+ children,
22
+ orientation = 'horizontal',
23
+ icon = false,
24
+ dark = false,
25
+ } = props
24
26
  const iconStyle = icon === true ? 'icon' : ''
25
27
  const darkStyle = dark === true ? 'dark' : ''
26
- const progressStepCss = buildCss('pb_progress_step_kit', orientation, iconStyle, darkStyle)
28
+ const progressStepCss = buildCss(
29
+ 'pb_progress_step_kit',
30
+ orientation,
31
+ iconStyle,
32
+ darkStyle
33
+ )
27
34
 
28
35
  return (
29
- <div className={classnames(progressStepCss, className)}>
36
+ <div className={classnames(progressStepCss, className, spacing(props))}>
30
37
  {children}
31
38
  </div>
32
39
  )
@@ -3,6 +3,8 @@
3
3
 
4
4
  import React from 'react'
5
5
  import Body from '../pb_body/_body.jsx'
6
+ import classnames from 'classnames'
7
+ import { spacing } from '../utilities/spacing.js'
6
8
 
7
9
  type RadioProps = {
8
10
  className?: String,
@@ -38,7 +40,7 @@ const Radio = ({
38
40
 
39
41
  return (
40
42
  <label
41
- className={'pb_radio_kit' + (dark === true ? '_dark ' : ' ') + errorClass + ' ' + className}
43
+ className={classnames('pb_radio_kit' + (dark === true ? '_dark ' : ' ') + errorClass + ' ' + className, spacing(props))}
42
44
  htmlFor={id}
43
45
  >
44
46
  <If condition={children}>
@@ -2,26 +2,32 @@
2
2
  import React from 'react'
3
3
  import classnames from 'classnames'
4
4
  import Caption from '../pb_caption/_caption.jsx'
5
+ import { spacing } from '../utilities/spacing.js'
5
6
 
6
7
  type SectionSeparatorProps = {
7
8
  className: String,
8
9
  text: String,
9
- orientation?: 'horizontal' | 'vertical',
10
- variant?: 'card' | 'background',
11
- dark?: Boolean
10
+ orientation?: "horizontal" | "vertical",
11
+ variant?: "card" | "background",
12
+ dark?: Boolean,
12
13
  }
13
14
 
14
- const SectionSeparator = ({
15
- className,
16
- text,
17
- orientation = 'horizontal',
18
- variant = 'card',
19
- dark = false,
20
- }: SectionSeparatorProps) => {
15
+ const SectionSeparator = (props: SectionSeparatorProps) => {
16
+ const {
17
+ className,
18
+ text,
19
+ orientation = 'horizontal',
20
+ variant = 'card',
21
+ dark = false,
22
+ } = props
21
23
  const themeStyle = dark === true ? '_dark' : ''
22
- const css = classnames([
23
- `pb_section_separator_kit_${variant}_${orientation}` + themeStyle,
24
- className])
24
+ const css = classnames(
25
+ [
26
+ `pb_section_separator_kit_${variant}_${orientation}` + themeStyle,
27
+ className,
28
+ ],
29
+ spacing(props)
30
+ )
25
31
 
26
32
  return (
27
33
  <div className={css}>
@@ -1,7 +1,7 @@
1
1
  /* @flow */
2
2
 
3
3
  import React from 'react'
4
-
4
+ import classnames from 'classnames'
5
5
  import {
6
6
  Body,
7
7
  Caption,
@@ -14,6 +14,8 @@ import {
14
14
  buildDataProps,
15
15
  } from '../utilities/props'
16
16
 
17
+ import { spacing } from '../utilities/spacing.js'
18
+
17
19
  import type { InputCallback } from '../types'
18
20
 
19
21
  type SelectOption = {
@@ -70,7 +72,7 @@ const Select = ({
70
72
  ...props
71
73
  }: SelectProps) => {
72
74
  const errorClass = error ? ' error' : ''
73
- const css = buildCss('pb_select', { dark }) + errorClass
75
+ const css = classnames(buildCss('pb_select', { dark }) + errorClass, spacing(props))
74
76
  const ariaProps = buildAriaProps(aria)
75
77
  const dataProps = buildDataProps(data)
76
78
  const optionsList = createOptions(options)
@@ -13,6 +13,8 @@ import {
13
13
  noop,
14
14
  } from '../utilities/props'
15
15
 
16
+ import { spacing } from '../utilities/spacing.js'
17
+
16
18
  type Props = {
17
19
  aria: Object,
18
20
  checked: Boolean,
@@ -28,7 +30,7 @@ type Props = {
28
30
  name?: String,
29
31
  onChange: InputCallback<HTMLInputElement>,
30
32
  text?: String,
31
- value?: String
33
+ value?: String,
32
34
  }
33
35
 
34
36
  const SelectableCard = ({
@@ -53,10 +55,10 @@ const SelectableCard = ({
53
55
 
54
56
  const css = buildCss({
55
57
  'pb_selectable_card_kit': true,
56
- 'checked': checked,
57
- 'dark': dark,
58
- 'disabled': disabled,
59
- 'enabled': !disabled,
58
+ checked: checked,
59
+ dark: dark,
60
+ disabled: disabled,
61
+ enabled: !disabled,
60
62
  })
61
63
 
62
64
  const displayIcon = () => {
@@ -92,8 +94,11 @@ const SelectableCard = ({
92
94
  type={inputType}
93
95
  value={value}
94
96
  />
95
- <label htmlFor={inputIdPresent}>
96
- { text || children }
97
+ <label
98
+ className={spacing(props)}
99
+ htmlFor={inputIdPresent}
100
+ >
101
+ {text || children}
97
102
  {displayIcon()}
98
103
  </label>
99
104
  </div>
@@ -5,37 +5,38 @@ import classnames from 'classnames'
5
5
 
6
6
  import { buildCss } from '../utilities/props'
7
7
  import { Body, Icon } from '../'
8
+ import { spacing } from '../utilities/spacing.js'
8
9
 
9
10
  const statusMap = {
10
- 'increase': 'positive',
11
- 'decrease': 'negative',
11
+ increase: 'positive',
12
+ decrease: 'negative',
12
13
  }
13
14
 
14
15
  const iconMap = {
15
- 'increase': 'arrow-up',
16
- 'decrease': 'arrow-down',
16
+ increase: 'arrow-up',
17
+ decrease: 'arrow-down',
17
18
  }
18
19
 
19
20
  type StatChangeProps = {
20
- change?: 'increase' | 'decrease' | 'neutral',
21
+ change?: "increase" | "decrease" | "neutral",
21
22
  className?: String,
22
23
  id?: String,
23
- value?: String | Number
24
+ value?: String | Number,
24
25
  }
25
26
 
26
- const StatChange = ({
27
- change = 'neutral',
28
- className,
29
- id,
30
- value,
31
- }: StatChangeProps) => {
27
+ const StatChange = (props: StatChangeProps) => {
28
+ const { change = 'neutral', className, id, value } = props
32
29
  const status = statusMap[change] || 'neutral'
33
30
  const icon = iconMap[change]
34
31
 
35
32
  return (
36
33
  <If condition={value}>
37
34
  <div
38
- className={classnames(className, buildCss('pb_stat_change_kit', status))}
35
+ className={classnames(
36
+ className,
37
+ buildCss('pb_stat_change_kit', status),
38
+ spacing(props)
39
+ )}
39
40
  id={id}
40
41
  >
41
42
  <Body status={status}>
@@ -3,6 +3,7 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { Title } from '../'
6
+ import { spacing } from '../utilities/spacing.js'
6
7
 
7
8
  type StatValueProps = {
8
9
  className?: String,
@@ -43,7 +44,7 @@ const StatValue = (props: StatValueProps) => {
43
44
 
44
45
  return (
45
46
  <div
46
- className={classnames('pb_stat_value_kit', className)}
47
+ className={classnames('pb_stat_value_kit', className, spacing(props))}
47
48
  id={id}
48
49
  >
49
50
  <div className="pb_stat_value_wrapper">
@@ -2,6 +2,7 @@
2
2
 
3
3
  import React, { type Node } from 'react'
4
4
  import classnames from 'classnames'
5
+ import { spacing } from '../utilities/spacing.js'
5
6
 
6
7
  type TableProps = {
7
8
  children: Array<Node> | Node,
@@ -9,42 +10,42 @@ type TableProps = {
9
10
  container: boolean,
10
11
  dark: boolean,
11
12
  dataTable: boolean,
12
- // @deprecated disable_hover since version 3.2.0, please use `disableHover`
13
- disable_hover: boolean, // eslint-disable-line camelcase
14
13
  disableHover: boolean,
15
14
  responsive: "collapse" | "scroll" | "none",
16
- // @deprecated single_line since version 3.2.0, please use `singleLine`
17
- single_line: boolean, // eslint-disable-line camelcase
18
15
  singleLine: boolean,
19
16
  size: "sm" | "md" | "lg",
20
17
  }
21
18
 
22
- const Table = ({
23
- children,
24
- className,
25
- container = true,
26
- dark = false,
27
- dataTable = false,
28
- disable_hover = false, // eslint-disable-line camelcase
29
- disableHover = false,
30
- responsive = 'collapse',
31
- single_line = false, // eslint-disable-line camelcase
32
- singleLine = false,
33
- size = 'sm',
34
- }: TableProps) => {
35
- disableHover = disableHover || disable_hover // eslint-disable-line camelcase
36
- singleLine = singleLine || single_line // eslint-disable-line camelcase
37
-
38
- const classes = classnames(className, 'pb_table', `table-${size}`, `table-responsive-${responsive}`, {
39
- 'table-card': container,
40
- 'table-dark': dark,
41
- 'data_table': dataTable,
42
- 'single-line': singleLine,
43
- 'no-hover': disableHover,
44
- })
19
+ const Table = (props: TableProps) => {
20
+ const {
21
+ children,
22
+ className,
23
+ container = true,
24
+ dark = false,
25
+ dataTable = false,
26
+ disableHover = false,
27
+ responsive = 'collapse',
28
+ singleLine = false,
29
+ size = 'sm',
30
+ } = props
45
31
 
46
32
  return (
47
- <table className={classes}>
33
+ <table
34
+ className={classnames(
35
+ className,
36
+ 'pb_table',
37
+ `table-${size}`,
38
+ `table-responsive-${responsive}`,
39
+ {
40
+ 'table-card': container,
41
+ 'table-dark': dark,
42
+ 'data_table': dataTable,
43
+ 'single-line': singleLine,
44
+ 'no-hover': disableHover,
45
+ },
46
+ spacing(props)
47
+ )}
48
+ >
48
49
  {children}
49
50
  </table>
50
51
  )
@@ -1,7 +1,7 @@
1
1
  @import "styles/all";
2
2
  @import "../tokens/colors";
3
3
 
4
- $pb_table_row_kit_side_highlight_colors: map-merge($status_colors, $product_colors);
4
+ $pb_table_row_kit_side_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
5
5
 
6
6
  @mixin pb_table_row_kit_side_highlight($background) {
7
7
  box-shadow: inset 4px 0 0 0 $background;
@@ -2,6 +2,7 @@
2
2
  import React from 'react'
3
3
  import classnames from 'classnames'
4
4
  import { buildCss } from '../utilities/props'
5
+ import { spacing } from '../utilities/spacing.js'
5
6
 
6
7
  type TableRowPropTypes = {
7
8
  children: Array<React.ReactNode> | React.ReactNode,
@@ -9,16 +10,14 @@ type TableRowPropTypes = {
9
10
  sideHighlightColor: String,
10
11
  }
11
12
 
12
- const TableRow = ({
13
- children,
14
- className,
15
- sideHighlightColor = 'windows',
16
- }: TableRowPropTypes) => {
17
- const sideHighlightClass = sideHighlightColor != '' ? `side_highlight_${sideHighlightColor}` : null
13
+ const TableRow = (props: TableRowPropTypes) => {
14
+ const { children, className, sideHighlightColor = 'windows' } = props
15
+ const sideHighlightClass =
16
+ sideHighlightColor != '' ? `side_highlight_${sideHighlightColor}` : null
18
17
  const tableRowCss = buildCss('pb_table_row_kit', sideHighlightClass)
19
18
 
20
19
  return (
21
- <tr className={classnames(tableRowCss, className)}>
20
+ <tr className={classnames(tableRowCss, className, spacing(props))}>
22
21
  {children}
23
22
  </tr>
24
23
  )
@@ -1,4 +1,4 @@
1
- <%= pb_rails("table", props: { size: "md" }) do %>
1
+ <%= pb_rails("table", props: { size: "sm" }) do %>
2
2
  <thead>
3
3
  <tr>
4
4
  <th>Product Colors</th>
@@ -9,22 +9,22 @@
9
9
  </tr>
10
10
  </thead>
11
11
  <tbody>
12
- <%= pb_rails("table/table_row", props: { side_highlight_color: "windows" }) do %>
13
- <td>Windows</td>
12
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "solar" }) do %>
13
+ <td>Solar</td>
14
14
  <td>Value 2</td>
15
15
  <td>Value 3</td>
16
16
  <td>Value 4</td>
17
17
  <td>Value 5</td>
18
18
  <% end %>
19
- <%= pb_rails("table/table_row", props: { side_highlight_color: "siding" }) do %>
20
- <td>Siding</td>
19
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "roofing" }) do %>
20
+ <td>Roofing</td>
21
21
  <td>Value 2</td>
22
22
  <td>Value 3</td>
23
23
  <td>Value 4</td>
24
24
  <td>Value 5</td>
25
25
  <% end %>
26
- <%= pb_rails("table/table_row", props: { side_highlight_color: "doors" }) do %>
27
- <td>Doors</td>
26
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "gutters" }) do %>
27
+ <td>Gutters</td>
28
28
  <td>Value 2</td>
29
29
  <td>Value 3</td>
30
30
  <td>Value 4</td>
@@ -42,7 +42,7 @@
42
42
 
43
43
  <br/>
44
44
 
45
- <%= pb_rails("table", props: { size: "md" }) do %>
45
+ <%= pb_rails("table", props: { size: "sm" }) do %>
46
46
  <thead>
47
47
  <tr>
48
48
  <th>Status Colors</th>
@@ -83,3 +83,47 @@
83
83
  <% end %>
84
84
  </tbody>
85
85
  <% end %>
86
+
87
+ <br/>
88
+
89
+ <%= pb_rails("table", props: { size: "sm" }) do %>
90
+ <thead>
91
+ <tr>
92
+ <th>Cateogry Colors</th>
93
+ <th>Column 2</th>
94
+ <th>Column 3</th>
95
+ <th>Column 4</th>
96
+ <th>Column 5</th>
97
+ </tr>
98
+ </thead>
99
+ <tbody>
100
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "category_1" }) do %>
101
+ <td>Category Color 1</td>
102
+ <td>Value 2</td>
103
+ <td>Value 3</td>
104
+ <td>Value 4</td>
105
+ <td>Value 5</td>
106
+ <% end %>
107
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "category_2" }) do %>
108
+ <td>Category Color 2</td>
109
+ <td>Value 2</td>
110
+ <td>Value 3</td>
111
+ <td>Value 4</td>
112
+ <td>Value 5</td>
113
+ <% end %>
114
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "category_3" }) do %>
115
+ <td>Category Color 3</td>
116
+ <td>Value 2</td>
117
+ <td>Value 3</td>
118
+ <td>Value 4</td>
119
+ <td>Value 5</td>
120
+ <% end %>
121
+ <%= pb_rails("table/table_row", props: { side_highlight_color: "none" }) do %>
122
+ <td>None</td>
123
+ <td>Value 2</td>
124
+ <td>Value 3</td>
125
+ <td>Value 4</td>
126
+ <td>Value 5</td>
127
+ <% end %>
128
+ </tbody>
129
+ <% end %>