playbook_ui 11.11.0.pre.alpha.renderer1 → 11.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/index.js +1 -0
  3. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +21 -1
  4. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +17 -1
  5. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.html.erb +62 -0
  6. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.jsx +86 -0
  7. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md +17 -0
  8. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +2 -0
  9. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +1 -0
  10. data/app/pb_kits/playbook/pb_button/_button.scss +6 -0
  11. data/app/pb_kits/playbook/pb_button/docs/_button_default.html.erb +4 -4
  12. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +18 -17
  13. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +15 -0
  14. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +16 -0
  15. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.html.erb +86 -0
  16. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +114 -0
  17. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.md +17 -0
  18. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +2 -0
  19. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +1 -0
  20. data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +50 -50
  21. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_time.jsx +1 -0
  22. data/app/pb_kits/playbook/pb_date_picker/plugins/timeSelect.ts +89 -89
  23. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +15 -0
  24. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +6 -1
  25. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +7 -1
  26. data/app/pb_kits/playbook/pb_dialog/dialog.rb +1 -1
  27. data/app/pb_kits/playbook/pb_dialog/dialogHelper.js +16 -11
  28. data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +1 -1
  29. data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +1 -1
  30. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_compound_components.md +3 -1
  31. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.md +3 -0
  32. data/app/pb_kits/playbook/pb_icon/_icon.tsx +3 -1
  33. data/app/pb_kits/playbook/pb_icon/icon.rb +8 -1
  34. data/app/pb_kits/playbook/pb_icon/icon.test.js +155 -0
  35. data/app/pb_kits/playbook/pb_legend/{_legend.jsx → _legend.tsx} +6 -6
  36. data/app/pb_kits/playbook/pb_legend/legend.test.js +29 -0
  37. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +20 -0
  38. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.html.erb +62 -0
  39. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.jsx +83 -0
  40. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_position.md +17 -0
  41. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +2 -0
  42. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
  43. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +17 -1
  44. data/app/pb_kits/playbook/pb_radio/_radio.scss +1 -1
  45. data/app/pb_kits/playbook/pb_title/_title.scss +5 -0
  46. data/app/pb_kits/playbook/pb_title/_title.tsx +4 -1
  47. data/app/pb_kits/playbook/pb_title/docs/{_title_light.html.erb → _title_default.html.erb} +3 -3
  48. data/app/pb_kits/playbook/pb_title/docs/{_title_light.jsx → _title_default.jsx} +14 -14
  49. data/app/pb_kits/playbook/pb_title/docs/{_title_light.md → _title_default.md} +0 -0
  50. data/app/pb_kits/playbook/pb_title/docs/_title_light_weight.html.erb +1 -0
  51. data/app/pb_kits/playbook/pb_title/docs/_title_light_weight.jsx +19 -0
  52. data/app/pb_kits/playbook/pb_title/docs/_title_light_weight.md +4 -0
  53. data/app/pb_kits/playbook/pb_title/docs/example.yml +4 -2
  54. data/app/pb_kits/playbook/pb_title/docs/index.js +2 -1
  55. data/app/pb_kits/playbook/pb_title/title.rb +6 -1
  56. data/app/pb_kits/playbook/pb_title/title.test.js +13 -0
  57. data/app/pb_kits/playbook/plugins/pb_chart.js +13 -0
  58. data/app/pb_kits/playbook/tokens/_titles.scss +10 -1
  59. data/app/pb_kits/playbook/tokens/_typography.scss +2 -2
  60. data/lib/playbook/version.rb +1 -1
  61. metadata +22 -8
@@ -0,0 +1,155 @@
1
+ import React from 'react'
2
+ import { render, screen, cleanup } from '../utilities/test-utils'
3
+
4
+ import Icon from './_icon'
5
+
6
+ const testId = "icon-kit"
7
+
8
+ describe("Icon Kit", () => {
9
+ test("renders Icon classname", () => {
10
+ render(
11
+ <Icon
12
+ data={{ testid: testId }}
13
+ fixedWidth
14
+ icon="user"
15
+ />
16
+ )
17
+
18
+ const kit = screen.getByTestId(testId)
19
+ expect(kit).toHaveClass("fa-user pb_icon_kit fa-fw far")
20
+ })
21
+
22
+ test("renders rotate prop", () => {[
23
+ "90", "180", "270"].forEach((rotateProp)=> {
24
+ render(
25
+ <Icon
26
+ data={{ testid: testId }}
27
+ fixedWidth
28
+ icon="user"
29
+ rotation={rotateProp}
30
+ />
31
+ )
32
+
33
+ const kit = screen.getByTestId(testId)
34
+ expect(kit).toHaveClass(`fa-user pb_icon_kit fa-fw fa-rotate-${rotateProp} far`)
35
+
36
+ cleanup()
37
+ })
38
+ })
39
+
40
+ test("renders flip prop", () => {
41
+ render(
42
+ <Icon
43
+ data={{ testid: testId }}
44
+ fixedWidth
45
+ flip="horizontal"
46
+ icon="user"
47
+ />
48
+ )
49
+
50
+ const kit = screen.getByTestId(testId)
51
+ expect(kit).toHaveClass("fa-user pb_icon_kit fa-fw fa-flip-horizontal far")
52
+ })
53
+
54
+
55
+ test("renders spinning icon", () => {
56
+ render(
57
+ <Icon
58
+ data={{ testid: testId }}
59
+ fixedWidth
60
+ icon="spinner"
61
+ spin
62
+ />
63
+ )
64
+
65
+ const kit = screen.getByTestId(testId)
66
+ expect(kit).toHaveClass("fa-spinner pb_icon_kit fa-fw fa-spin far")
67
+ })
68
+
69
+ test("renders pull icon", () => {
70
+ render(
71
+ <Icon
72
+ data={{ testid: testId }}
73
+ fixedWidth
74
+ icon="arrow-left"
75
+ pull="left"
76
+ />
77
+ )
78
+
79
+ const kit = screen.getByTestId(testId)
80
+ expect(kit).toHaveClass("fa-arrow-left pb_icon_kit fa-fw fa-pull-left far")
81
+ })
82
+
83
+ test("renders pull icon", () => {
84
+ render(
85
+ <Icon
86
+ data={{ testid: testId }}
87
+ fixedWidth
88
+ icon="arrow-left"
89
+ pull="left"
90
+ />
91
+ )
92
+
93
+ const kit = screen.getByTestId(testId)
94
+ expect(kit).toHaveClass("fa-arrow-left pb_icon_kit fa-fw fa-pull-left far")
95
+ })
96
+
97
+ test("renders border around icon", () => {
98
+ render(
99
+ <Icon
100
+ border
101
+ data={{ testid: testId }}
102
+ fixedWidth
103
+ icon="user"
104
+ />
105
+ )
106
+
107
+ const kit = screen.getByTestId(testId)
108
+ expect(kit).toHaveClass("fa-user pb_icon_kit fa-border fa-fw far")
109
+ })
110
+
111
+ test("renders size prop", () => {
112
+ ["lg",
113
+ "sm",
114
+ "xs",
115
+ "1x",
116
+ "2x",
117
+ "3x",
118
+ "4x",
119
+ "5x",
120
+ "6x",
121
+ "7x",
122
+ "8x",
123
+ "9x",
124
+ "10x"].forEach(
125
+ (sizeProp) => {
126
+ render(
127
+ <Icon
128
+ data={{ testid: testId }}
129
+ icon="user"
130
+ size={sizeProp}
131
+ />
132
+ )
133
+
134
+ const kit = screen.getByTestId(testId)
135
+ expect(kit).toHaveClass(`pb_icon_kit fa-user fa-fw fa-${sizeProp} far`)
136
+
137
+ cleanup()
138
+ })
139
+ })
140
+
141
+ test("renders fontStyle prop", () => {
142
+ render(
143
+ <Icon
144
+ data={{ testid: testId }}
145
+ fixedWidth
146
+ fontStyle="fas"
147
+ icon="user"
148
+ />
149
+ )
150
+
151
+ const kit = screen.getByTestId(testId)
152
+ expect(kit).toHaveClass("fa-user pb_icon_kit fa-fw fas")
153
+ })
154
+
155
+ })
@@ -1,5 +1,3 @@
1
- /* @flow */
2
-
3
1
  import React from 'react'
4
2
  import classnames from 'classnames'
5
3
 
@@ -10,7 +8,7 @@ import Body from '../pb_body/_body'
10
8
  import Title from '../pb_title/_title'
11
9
 
12
10
  type LegendProps = {
13
- aria?: object,
11
+ aria?: { [key: string]: string },
14
12
  className?: string,
15
13
  color?: string,
16
14
  dark?: boolean,
@@ -59,14 +57,16 @@ const Legend = (props: LegendProps) => {
59
57
  <span className={`${customColor ? "pb_legend_indicator_circle_custom" : "pb_legend_indicator_circle"}`}
60
58
  style={customColorStyle}
61
59
  />
62
- <If condition={prefixText}>
63
- <Title
60
+ {
61
+ prefixText && (
62
+ <Title
64
63
  dark={dark}
65
64
  size={4}
66
65
  tag="span"
67
66
  text={` ${prefixText} `}
68
67
  />
69
- </If>
68
+ )
69
+ }
70
70
  {` ${text} `}
71
71
  </Body>
72
72
  </div>
@@ -27,3 +27,32 @@ test('color prop', () => {
27
27
  const kit = screen.getByTestId('primary-test')
28
28
  expect(kit).toHaveClass('pb_legend_kit_category_17')
29
29
  })
30
+
31
+ test('prefixText prop renders', () => {
32
+ render(
33
+ <Legend
34
+ color="category_17"
35
+ data={{ testid: 'primary-test' }}
36
+ prefixText="10"
37
+ text="Test colors"
38
+ />
39
+ )
40
+
41
+ const kit = screen.getByTestId('primary-test')
42
+ const prefix = kit.querySelector(".pb_title_kit_size_4")
43
+ expect(prefix).toBeInTheDocument()
44
+ })
45
+
46
+ test('Color prop renders with custom HEX value', () => {
47
+ render(
48
+ <Legend
49
+ color="#dc418a"
50
+ data={{ testid: 'primary-test' }}
51
+ text="Test colors"
52
+ />
53
+ )
54
+
55
+ const kit = screen.getByTestId('primary-test')
56
+ const circle = kit.querySelector(".pb_legend_indicator_circle_custom")
57
+ expect(circle).toHaveStyle('background: rgb(220, 65, 138);')
58
+ })
@@ -7,6 +7,7 @@ import { globalProps } from '../utilities/globalProps'
7
7
  import pbChart from '../plugins/pb_chart'
8
8
 
9
9
  type LineGraphProps = {
10
+ align?: "left" | "right" | "center",
10
11
  axisTitle?: string,
11
12
  dark?: Boolean,
12
13
  xAxisCategories: array,
@@ -27,20 +28,30 @@ type LineGraphProps = {
27
28
  toggleLegendClick?: boolean,
28
29
  height?: string,
29
30
  colors: array,
31
+ layout?: "horizontal" | "vertical" | "proximate",
32
+ verticalAlign?: "top" | "middle" | "bottom",
33
+ x?: number,
34
+ y?: number,
30
35
  }
31
36
 
32
37
  export default class LineGraph extends React.Component<LineGraphProps> {
33
38
  static defaultProps = {
39
+ align: "center",
34
40
  className: 'pb_bar_graph',
35
41
  dark: false,
36
42
  gradient: false,
37
43
  type: 'line',
38
44
  legend: false,
39
45
  toggleLegendClick: true,
46
+ layout: "horizontal",
47
+ verticalAlign: "bottom",
48
+ x: 0,
49
+ y: 0,
40
50
  }
41
51
 
42
52
  componentDidMount() {
43
53
  const {
54
+ align,
44
55
  axisTitle,
45
56
  dark,
46
57
  xAxisCategories,
@@ -57,9 +68,14 @@ export default class LineGraph extends React.Component<LineGraphProps> {
57
68
  toggleLegendClick,
58
69
  height,
59
70
  colors = [],
71
+ layout,
72
+ verticalAlign,
73
+ x,
74
+ y,
60
75
  } = this.props
61
76
 
62
77
  new pbChart(`.${className}`, {
78
+ align,
63
79
  axisTitle: axisTitle,
64
80
  chartData: chartData,
65
81
  colors: colors,
@@ -75,6 +91,10 @@ export default class LineGraph extends React.Component<LineGraphProps> {
75
91
  legend: legend,
76
92
  toggleLegendClick: toggleLegendClick,
77
93
  height: height,
94
+ layout,
95
+ verticalAlign,
96
+ x,
97
+ y,
78
98
  })
79
99
  }
80
100
 
@@ -0,0 +1,62 @@
1
+ <% data = [{
2
+ name: 'Installation',
3
+ data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175]
4
+ }, {
5
+ name: 'Manufacturing',
6
+ data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434]
7
+ }, {
8
+ name: 'Sales & Distribution',
9
+ data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387]
10
+ }, {
11
+ name: 'Project Development',
12
+ data: [nil, nil, 7988, 12169, 15112, 22452, 34400, 34227]
13
+ }, {
14
+ name: 'Other',
15
+ data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111]
16
+ }] %>
17
+
18
+ <%= pb_rails("title", props: {size: 4, text: "align | vertical_align", padding_top: "sm", padding_bottom: "sm"})%>
19
+
20
+ <%= pb_rails("line_graph", props: {
21
+ id: "legend-position-line",
22
+ gradient: false,
23
+ chart_data: data,
24
+ x_axis_categories:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug'],
25
+ title: 'Alignment of Legend',
26
+ axis_title: 'Number of Employees',
27
+ legend: true,
28
+ align: 'right',
29
+ vertical_align: 'top',
30
+ padding_bottom: "sm",
31
+ }) %>
32
+
33
+ <%= pb_rails("title", props: {size: 4, text: "layout", padding_top: "sm", padding_bottom: "sm"})%>
34
+
35
+ <%= pb_rails("line_graph", props: {
36
+ id: "legend-position-line-1",
37
+ gradient: false,
38
+ chart_data: data,
39
+ x_axis_categories:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug'],
40
+ title: 'Layout of Legend',
41
+ axis_title: 'Number of Employees',
42
+ legend: true,
43
+ layout: 'vertical',
44
+ padding_top: "sm",
45
+ padding_bottom: "sm",
46
+ }) %>
47
+
48
+ <%= pb_rails("title", props: {size: 4, text: "x | y", padding_top: "sm", padding_bottom: "sm"})%>
49
+
50
+ <%= pb_rails("line_graph", props: {
51
+ id: "legend-position-line-2",
52
+ gradient: false,
53
+ chart_data: data,
54
+ x_axis_categories:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug'],
55
+ title: 'Offset of Legend',
56
+ axis_title: 'Number of Employees',
57
+ legend: true,
58
+ layout: "vertical",
59
+ x: 100,
60
+ y: 10,
61
+ padding_top: "sm",
62
+ }) %>
@@ -0,0 +1,83 @@
1
+ import React from 'react'
2
+ import { LineGraph, Title } from '../..'
3
+
4
+ const data = [{
5
+ name: 'Installation',
6
+ data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
7
+ }, {
8
+ name: 'Manufacturing',
9
+ data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434],
10
+ }, {
11
+ name: 'Sales & Distribution',
12
+ data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387],
13
+ }, {
14
+ name: 'Project Development',
15
+ data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227],
16
+ }, {
17
+ name: 'Other',
18
+ data: [12908, 5948, 8105, 11248, 8989, 11816, 18274, 18111],
19
+ }]
20
+
21
+ const LineGraphLegendPosition = (props) => (
22
+ <div>
23
+ <Title
24
+ paddingBottom="sm"
25
+ paddingTop="sm"
26
+ size={4}
27
+ tag="h4"
28
+ text="align | verticalAlign"
29
+ />
30
+ <LineGraph
31
+ align='right'
32
+ axisTitle="Number of Employees"
33
+ chartData={data}
34
+ id="legend-position-line"
35
+ legend
36
+ title="Alignment of Legend"
37
+ verticalAlign="top"
38
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
39
+ yAxisMin={0}
40
+ {...props}
41
+ />
42
+ <Title
43
+ paddingBottom="sm"
44
+ paddingTop="sm"
45
+ size={4}
46
+ tag="h4"
47
+ text="layout"
48
+ />
49
+ <LineGraph
50
+ axisTitle="Number of Employees"
51
+ chartData={data}
52
+ id="legend-position-line-1"
53
+ layout="vertical"
54
+ legend
55
+ title="Layout of Legend"
56
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
57
+ yAxisMin={0}
58
+ {...props}
59
+ />
60
+ <Title
61
+ paddingBottom="sm"
62
+ paddingTop="sm"
63
+ size={4}
64
+ tag="h4"
65
+ text="x | y"
66
+ />
67
+ <LineGraph
68
+ axisTitle="Number of Employees"
69
+ chartData={data}
70
+ id="legend-position-line-2"
71
+ layout="vertical"
72
+ legend
73
+ title="Offset of Legend"
74
+ x={100}
75
+ xAxisCategories={['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug']}
76
+ y={10}
77
+ yAxisMin={0}
78
+ {...props}
79
+ />
80
+ </div>
81
+ )
82
+
83
+ export default LineGraphLegendPosition
@@ -0,0 +1,17 @@
1
+ ##### Prop
2
+
3
+ `align` **Type**: String | **Values**: left | center | right (defaults to center)
4
+ `verticalAlign` **Type**: String | **Values**: top | middle | bottom (defaults middle)
5
+ `layout` **Type**: String | **Values**: horizontal | vertical | proximate (defaults to horizontal)
6
+ `x` **Type**: Number (defaults to 0)
7
+ `y` **Type**: Number (defaults to 0)
8
+
9
+ -
10
+
11
+ - `layout` determines the position of the legend items
12
+ `layout: proximate` will place the legend items as close as possible to the graphs they're representing. It will also determine whether to place the legend above/below or on the side of the plot area, if the legend is in a corner.
13
+
14
+ - `x` offsets the legend relative to its horizontal alignmnet. Negative x moves it to the left, positive x moves it to the right
15
+
16
+
17
+ - `y` offsets the legend relative to its vertical alignmnet. Negative y moves it up, positive y moves it down.
@@ -3,6 +3,7 @@ examples:
3
3
  rails:
4
4
  - line_graph_default: Default
5
5
  - line_graph_legend: Legend
6
+ - line_graph_legend_position: Legend Position
6
7
  - line_graph_legend_nonclickable: Legend Nonclickable
7
8
  - line_graph_height: Height
8
9
  - line_graph_colors: Color Overrides
@@ -11,6 +12,7 @@ examples:
11
12
  react:
12
13
  - line_graph_default: Default
13
14
  - line_graph_legend: Legend
15
+ - line_graph_legend_position: Legend Position
14
16
  - line_graph_legend_nonclickable: Legend Nonclickable
15
17
  - line_graph_height: Height
16
18
  - line_graph_colors: Color Overrides
@@ -1,5 +1,6 @@
1
1
  export { default as LineGraphDefault } from './_line_graph_default.jsx'
2
2
  export { default as LineGraphLegend } from './_line_graph_legend.jsx'
3
+ export { default as LineGraphLegendPosition } from './_line_graph_legend_position.jsx'
3
4
  export { default as LineGraphLegendNonclickable } from './_line_graph_legend_nonclickable.jsx'
4
5
  export { default as LineGraphHeight } from './_line_graph_height.jsx'
5
6
  export { default as LineGraphColors } from './_line_graph_colors.jsx'
@@ -3,6 +3,9 @@
3
3
  module Playbook
4
4
  module PbLineGraph
5
5
  class LineGraph < Playbook::KitBase
6
+ prop :align, type: Playbook::Props::Enum,
7
+ values: %w[left right center],
8
+ default: "center"
6
9
  prop :axis_title
7
10
  prop :chart_data, type: Playbook::Props::Array,
8
11
  default: []
@@ -22,6 +25,14 @@ module Playbook
22
25
  prop :height
23
26
  prop :colors, type: Playbook::Props::Array,
24
27
  default: []
28
+ prop :layout, type: Playbook::Props::Enum,
29
+ values: %w[horizontal vertical proximate],
30
+ default: "horizontal"
31
+ prop :vertical_align, type: Playbook::Props::Enum,
32
+ values: %w[top middle bottom],
33
+ default: "bottom"
34
+ prop :x, type: Playbook::Props::Numeric
35
+ prop :y, type: Playbook::Props::Numeric
25
36
 
26
37
  def chart_type
27
38
  gradient ? "area" : "line"
@@ -29,13 +40,14 @@ module Playbook
29
40
 
30
41
  def chart_options
31
42
  {
43
+ align: align,
32
44
  id: id,
33
45
  className: classname,
34
46
  chartData: chart_data,
35
47
  dark: dark ? "dark" : "",
36
48
  type: chart_type,
37
49
  title: title,
38
- subtitle: subtitle,
50
+ subTitle: subtitle,
39
51
  axisTitle: axis_title,
40
52
  pointStart: point_start,
41
53
  xAxisCategories: x_axis_categories,
@@ -45,6 +57,10 @@ module Playbook
45
57
  toggleLegendClick: toggle_legend_click,
46
58
  height: height,
47
59
  colors: colors,
60
+ layout: layout,
61
+ verticalAlign: vertical_align,
62
+ x: x,
63
+ y: y,
48
64
  }
49
65
  end
50
66
 
@@ -40,7 +40,7 @@
40
40
  }
41
41
  }
42
42
 
43
- &.vertical {
43
+ &[class*=vertical] {
44
44
  flex-direction: column;
45
45
  align-items: center;
46
46
  .pb_radio_button {
@@ -6,6 +6,7 @@
6
6
  &[class*=_1] {
7
7
  @include pb_title_1;
8
8
  @include title_colors;
9
+ @include pb_title_bold;
9
10
  }
10
11
 
11
12
  &[class*=_2] {
@@ -26,4 +27,8 @@
26
27
  &.dark {
27
28
  @include pb_title_dark;
28
29
  }
30
+
31
+ &[class*=_thin] {
32
+ @include pb_title_thin;
33
+ }
29
34
  }
@@ -5,6 +5,7 @@ import { deprecatedProps, GlobalProps, globalProps } from '../utilities/globalPr
5
5
 
6
6
  type TitleProps = {
7
7
  aria?: {[key: string]: string},
8
+ bold?: boolean,
8
9
  children?: React.ReactChild[] | React.ReactChild,
9
10
  className?: string,
10
11
  color?: "default" | "light" | "lighter" | "success" | "error" | "link",
@@ -20,6 +21,7 @@ const Title = (props: TitleProps): React.ReactElement => {
20
21
  if (props.variant) deprecatedProps('Title', ['variant']) //variant prop is deprecated, use color instead
21
22
  const {
22
23
  aria = {},
24
+ bold = true,
23
25
  children,
24
26
  className,
25
27
  color,
@@ -33,8 +35,9 @@ const Title = (props: TitleProps): React.ReactElement => {
33
35
 
34
36
  const ariaProps: {[key: string]: string | number} = buildAriaProps(aria)
35
37
  const dataProps: {[key: string]: string | number} = buildDataProps(data)
38
+ const getBold = bold ? '' : 'thin'
36
39
  const classes = classnames(
37
- buildCss('pb_title_kit', `size_${size}`, variant, color),
40
+ buildCss('pb_title_kit', `size_${size}`, variant, color, getBold),
38
41
  globalProps(props),
39
42
  className,
40
43
  )
@@ -5,7 +5,7 @@
5
5
 
6
6
  <br/>
7
7
 
8
- <%= pb_rails("title", props: { text: "Title 4", tag: "h4", size: 4 }) %>
9
- <%= pb_rails("title", props: { text: "Title 3", tag: "h3", size: 3 }) %>
10
- <%= pb_rails("title", props: { text: "Title 2", tag: "h2", size: 2 }) %>
11
8
  <%= pb_rails("title", props: { text: "Title 1", tag: "h1", size: 1 }) %>
9
+ <%= pb_rails("title", props: { text: "Title 2", tag: "h2", size: 2 }) %>
10
+ <%= pb_rails("title", props: { text: "Title 3", tag: "h3", size: 3 }) %>
11
+ <%= pb_rails("title", props: { text: "Title 4", tag: "h4", size: 4 }) %>
@@ -2,7 +2,7 @@ import React from 'react'
2
2
 
3
3
  import Title from '../_title'
4
4
 
5
- const TitleLight = (props) => {
5
+ const TitleDefault = (props) => {
6
6
  return (
7
7
  <div>
8
8
  <Title
@@ -11,15 +11,9 @@ const TitleLight = (props) => {
11
11
  />
12
12
  <br />
13
13
  <Title
14
- size={4}
15
- tag="h4"
16
- text="Title 4"
17
- {...props}
18
- />
19
- <Title
20
- size={3}
21
- tag="h3"
22
- text="Title 3"
14
+ size={1}
15
+ tag="h1"
16
+ text="Title 1"
23
17
  {...props}
24
18
  />
25
19
  <Title
@@ -29,13 +23,19 @@ const TitleLight = (props) => {
29
23
  {...props}
30
24
  />
31
25
  <Title
32
- size={1}
33
- tag="h1"
34
- text="Title 1"
26
+ size={3}
27
+ tag="h3"
28
+ text="Title 3"
29
+ {...props}
30
+ />
31
+ <Title
32
+ size={4}
33
+ tag="h4"
34
+ text="Title 4"
35
35
  {...props}
36
36
  />
37
37
  </div>
38
38
  )
39
39
  }
40
40
 
41
- export default TitleLight
41
+ export default TitleDefault
@@ -0,0 +1 @@
1
+ <%= pb_rails("title", props: { text: "Title 1", tag: "h1", size: 1, bold: false }) %>
@@ -0,0 +1,19 @@
1
+ import React from 'react'
2
+
3
+ import Title from '../_title'
4
+
5
+ const TitleLightWeight = (props) => {
6
+ return (
7
+ <div>
8
+ <Title
9
+ bold={false}
10
+ size={1}
11
+ tag="h1"
12
+ text="Title 1"
13
+ {...props}
14
+ />
15
+ </div>
16
+ )
17
+ }
18
+
19
+ export default TitleLightWeight
@@ -0,0 +1,4 @@
1
+ ##### Prop
2
+ Title `size 1` will use `font-weight: 700` by default, if you want a lighter font weight, use the `bold` prop set to `false`.
3
+ Title `size 2` & `size 3` uses a light font weight by default and will not accept a bold font weight.
4
+ Title `size 4` uses a heavy font weight by default and will not accept a lighter font weight.