playbook_ui 5.3.0.pre.alpha1 → 5.5.1

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -2
  3. data/app/pb_kits/playbook/data/menu.yml +3 -3
  4. data/app/pb_kits/playbook/index.js +0 -1
  5. data/app/pb_kits/playbook/packs/examples.js +0 -2
  6. data/app/pb_kits/playbook/packs/samples.js +2 -0
  7. data/app/pb_kits/playbook/pb_body/_body.html.erb +1 -0
  8. data/app/pb_kits/playbook/pb_body/_body.jsx +33 -24
  9. data/app/pb_kits/playbook/pb_body/docs/_body_dark.html.erb +1 -1
  10. data/app/pb_kits/playbook/pb_body/docs/_body_dark.jsx +0 -2
  11. data/app/pb_kits/playbook/pb_body/docs/_body_light.html.erb +1 -0
  12. data/app/pb_kits/playbook/pb_body/docs/_body_light.jsx +3 -7
  13. data/app/pb_kits/playbook/pb_caption/_caption.scss +2 -2
  14. data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +2 -1
  15. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +18 -5
  16. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_checked.jsx +17 -0
  17. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -0
  18. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +1 -0
  19. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.html.erb +1 -0
  20. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.jsx +17 -1
  21. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +0 -26
  22. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.html.erb +3 -2
  23. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +15 -12
  24. data/app/pb_kits/playbook/pb_highlight/docs/_highlight_default.html.erb +1 -1
  25. data/app/pb_kits/playbook/pb_image/_image.jsx +1 -1
  26. data/app/pb_kits/playbook/pb_layout/_layout.scss +16 -0
  27. data/app/pb_kits/playbook/pb_legend/_legend.html.erb +1 -0
  28. data/app/pb_kits/playbook/pb_legend/_legend.jsx +25 -4
  29. data/app/pb_kits/playbook/pb_nav/_item.jsx +20 -10
  30. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +3 -0
  31. data/app/pb_kits/playbook/pb_popover/_popover.html.erb +1 -1
  32. data/app/pb_kits/playbook/pb_popover/_popover.jsx +3 -1
  33. data/app/pb_kits/playbook/pb_popover/_popover.scss +4 -0
  34. data/app/pb_kits/playbook/pb_popover/popover.rb +4 -0
  35. data/app/pb_kits/playbook/pb_title/_title.jsx +7 -4
  36. data/app/pb_kits/playbook/pb_title/_title.scss +7 -0
  37. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -0
  38. data/app/pb_kits/playbook/pb_title/title.rb +4 -1
  39. data/app/pb_kits/playbook/plugins/pb_chart.js +0 -71
  40. data/app/views/layouts/playbook/samples.html.erb +1 -0
  41. data/app/views/playbook/samples/collection_detail/index.html.erb +169 -0
  42. data/app/views/playbook/samples/collection_detail/index.jsx +372 -0
  43. data/lib/generators/kit/kit_generator.rb +6 -3
  44. data/lib/generators/kit/templates/kit_html.erb.tt +3 -2
  45. data/lib/generators/kit/templates/kit_jsx.erb.tt +38 -10
  46. data/lib/playbook/version.rb +1 -1
  47. metadata +7 -25
  48. data/app/pb_kits/playbook/pb_gauge/_gauge.html.erb +0 -12
  49. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +0 -105
  50. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +0 -11
  51. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.html.erb +0 -11
  52. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_default.jsx +0 -17
  53. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.html.erb +0 -14
  54. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_full_circle.jsx +0 -20
  55. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.html.erb +0 -15
  56. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_height.jsx +0 -23
  57. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_live_data.jsx +0 -25
  58. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.html.erb +0 -21
  59. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_min_max.jsx +0 -26
  60. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.html.erb +0 -33
  61. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_sizing.jsx +0 -42
  62. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.html.erb +0 -14
  63. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_title.jsx +0 -20
  64. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.html.erb +0 -29
  65. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_units.jsx +0 -29
  66. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -22
  67. data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -8
  68. data/app/pb_kits/playbook/pb_gauge/gauge.rb +0 -55
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 456edb4112fd56741c0aca0d3e8bcd4b9709abc6a8245dc635bbb9de8a453476
4
- data.tar.gz: d1f53edaa77edf61e3af081c6b4bd6bf4723214a0d99158ddec934aba8974229
3
+ metadata.gz: 7f4ee46775d0d56664c1a9aca3fe5524b0956af82b1067d79104529064855fae
4
+ data.tar.gz: 0e36fa5454385af4d344c9cde205c4f9392695f0dbb6e3721eb4447b90871fcd
5
5
  SHA512:
6
- metadata.gz: 6ddc39e458c5783a6cf0a231399d51b0168a1342fe80ebfba6b8814854c764420e332af64871b8294536d46864f85ab91cd58dd07400df32be10d9cc833fdd0f
7
- data.tar.gz: 74656e11978287baba8979c672840258db5410f1e744c5377b9fbe831dcd753b3b03c2b1e48f0c759b959d948f042bcf28debca416747c65278a9a9b76920558
6
+ metadata.gz: c490cc3202290171c33bff9a68062bf888f0110c02189550eaeafa1f9b3f9e07c3e04ae9bad665aa78095cd5f8f8a9b2564b4dabb0d6b549b0ad11bd12d0c587
7
+ data.tar.gz: 5ca5802c390a462833194cb94aaaeaf7dccd10e72174a1abc826b17f19b7c028dab3bb0c7c23c2038e458574f942f826e37a1b742949c376135723196309b565
@@ -26,7 +26,6 @@
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';
30
29
  @import 'pb_hashtag/hashtag';
31
30
  @import 'pb_highlight/highlight';
32
31
  @import 'pb_home_address_street/home_address_street';
@@ -81,4 +80,4 @@
81
80
  @import 'pb_user_badge/user_badge';
82
81
  @import 'pb_time_stacked/time_stacked';
83
82
  @import 'pb_weekday_stacked/weekday_stacked';
84
- @import './utilities/spacing';
83
+ @import './utilities/spacing';
@@ -2,6 +2,7 @@ samples:
2
2
  - dashboards
3
3
  - registration
4
4
  - filter_table
5
+ - collection_detail
5
6
 
6
7
  kits:
7
8
  - avatar
@@ -14,11 +15,10 @@ kits:
14
15
  - checkbox
15
16
  - charts_and_graphs:
16
17
  - bar_graph
17
- - circle_chart
18
- - distribution_bar
19
- - gauge
20
18
  - legend
21
19
  - line_graph
20
+ - distribution_bar
21
+ - circle_chart
22
22
 
23
23
  - filter
24
24
  - fixed_confirmation_toast
@@ -25,7 +25,6 @@ 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'
29
28
  export Hashtag from './pb_hashtag/_hashtag.jsx'
30
29
  export Highlight from './pb_highlight/_highlight.jsx'
31
30
  export HomeAddressStreet from './pb_home_address_street/_home_address_street.jsx'
@@ -38,7 +38,6 @@ 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'
42
41
  import * as Hashtag from 'pb_hashtag/docs'
43
42
  import * as Highlight from 'pb_highlight/docs'
44
43
  import * as HomeAddressStreet from 'pb_home_address_street/docs'
@@ -119,7 +118,6 @@ WebpackerReact.setup({
119
118
  ...FixedConfirmationToast,
120
119
  ...Flex,
121
120
  ...FormPill,
122
- ...Gauge,
123
121
  ...Hashtag,
124
122
  ...Highlight,
125
123
  ...HomeAddressStreet,
@@ -13,7 +13,9 @@ import WebpackerReact from 'webpacker-react'
13
13
  import Dashboards from '../../../views/playbook/samples/dashboards/index.jsx'
14
14
  import FilterTable from '../../../views/playbook/samples/filter_table/index.jsx'
15
15
  import Registration from '../../../views/playbook/samples/registration/index.jsx'
16
+ import CollectionDetail from '../../../views/playbook/samples/collection_detail/index.jsx'
16
17
 
17
18
  WebpackerReact.setup({ Dashboards })
18
19
  WebpackerReact.setup({ FilterTable })
19
20
  WebpackerReact.setup({ Registration })
21
+ WebpackerReact.setup({ CollectionDetail })
@@ -1,4 +1,5 @@
1
1
  <%= content_tag(object.tag,
2
+ aria: object.aria,
2
3
  id: object.id,
3
4
  data: object.data,
4
5
  class: object.classname) do %>
@@ -2,50 +2,59 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
5
6
  import { Highlight } from '../'
6
7
  import { spacing } from '../utilities/spacing.js'
7
8
 
8
9
  type BodyProps = {
10
+ aria?: object,
9
11
  className?: String,
10
12
  children?: Array<React.ReactChild>,
11
- color: 'light' | 'lighter',
13
+ color: 'dark' | 'default' | 'light' | 'lighter' | 'light_dark' | 'lighter_dark',
12
14
  dark?: Boolean,
13
- status?: 'negative' | 'positive',
14
- tag: String,
15
- text?: String,
15
+ data?: object,
16
+ highlightedText?: Array<String>,
16
17
  highlighting?: Boolean,
17
- highlightedText?: Array<String>
18
- }
19
-
20
- const bodyCSS = ({
21
- color = '',
22
- dark = false,
23
- status = '',
24
-
25
- }: BodyProps) => {
26
- const colorStyle = color !== '' ? `_${color}` : ''
27
-
28
- const themeStyle = dark === true ? '_dark' : ''
29
-
30
- const statusStyle = status !== '' ? `_${status}` : ''
31
-
32
- return 'pb_body_kit' + colorStyle + themeStyle + statusStyle
18
+ id?: String,
19
+ status?: 'negative' | 'neutral' | 'positive',
20
+ tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div',
21
+ text?: String,
33
22
  }
34
23
 
35
24
  const Body = (props: BodyProps) => {
36
25
  const {
26
+ aria = {},
37
27
  className,
38
28
  children,
39
- text,
40
- tag = 'div',
41
- highlightedText,
29
+ color = '',
30
+ dark = false,
31
+ data = {},
32
+ highlightedText = [],
42
33
  highlighting = false,
34
+ id,
35
+ status = '',
36
+ tag = 'div',
37
+ text,
43
38
  } = props
44
39
 
40
+ const ariaProps = buildAriaProps(aria)
41
+ const dataProps = buildDataProps(data)
42
+ const classes = classnames(
43
+ buildCss('pb_body_kit', color, status, {
44
+ dark: dark,
45
+ }),
46
+ spacing(props),
47
+ className
48
+ )
45
49
  const Tag = `${tag}`
46
50
 
47
51
  return (
48
- <Tag className={classnames(bodyCSS(props), className, spacing(props))}>
52
+ <Tag
53
+ {...ariaProps}
54
+ {...dataProps}
55
+ className={classes}
56
+ id={id}
57
+ >
49
58
  <If condition={highlighting}>
50
59
  <Highlight highlightedText={highlightedText}>{text || children}</Highlight>
51
60
  <Else />
@@ -1,6 +1,6 @@
1
1
  <%= pb_rails("body", props: {
2
2
  text: "I am a body kit",
3
- dark: true
3
+ dark: true,
4
4
  }) %>
5
5
 
6
6
  <%= pb_rails("body", props: {
@@ -18,8 +18,6 @@ const BodyDark = () => {
18
18
  dark
19
19
  text="I am a body kit (Lighter)"
20
20
  />
21
- <br />
22
- <br />
23
21
  <Body
24
22
  dark
25
23
  status="negative"
@@ -2,6 +2,7 @@
2
2
  text: "I am a body kit"
3
3
  }) %>
4
4
 
5
+
5
6
  <%= pb_rails("body", props: {
6
7
  text: "I am a body kit (Light)",
7
8
  color: "light"
@@ -4,7 +4,9 @@ import { Body } from '../../'
4
4
  const BodyLight = () => {
5
5
  return (
6
6
  <div>
7
- <Body text="I am a body kit (Default)" />
7
+ <Body
8
+ text="I am a body kit (Default)"
9
+ />
8
10
  <Body
9
11
  color="light"
10
12
  text="I am a body kit (Light)"
@@ -13,8 +15,6 @@ const BodyLight = () => {
13
15
  color="lighter"
14
16
  text="I am a body kit (Lighter)"
15
17
  />
16
- <br />
17
- <br />
18
18
  <Body
19
19
  status="negative"
20
20
  text="I am a body kit (Status: negative)"
@@ -23,10 +23,6 @@ const BodyLight = () => {
23
23
  status="positive"
24
24
  text="I am a body kit (Status: positive)"
25
25
  />
26
- <Body
27
- status="positive"
28
- text="I am a body kit (Status: positive)"
29
- />
30
26
  </div>
31
27
  )
32
28
  }
@@ -3,11 +3,11 @@
3
3
  [class^=pb_caption_kit] {
4
4
  @include caption;
5
5
 
6
- &[class*=_lg] {
6
+ &[class^=pb_caption_kit_lg] {
7
7
  @include caption_lg;
8
8
  }
9
9
 
10
- &[class*=_xs] {
10
+ &[class^=pb_caption_kit_xs] {
11
11
  @include caption_xs;
12
12
  }
13
13
 
@@ -1,4 +1,5 @@
1
- <%= content_tag(:label, id: object.id,
1
+ <%= content_tag(:label, aria: object.aria,
2
+ id: object.id,
2
3
  data: object.data,
3
4
  class: object.classname) do %>
4
5
  <% if object.children %>
@@ -3,13 +3,18 @@
3
3
  import React from 'react'
4
4
  import Body from '../pb_body/_body.jsx'
5
5
  import Icon from '../pb_icon/_icon.jsx'
6
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
6
7
  import classnames from 'classnames'
7
8
  import { spacing } from '../utilities/spacing.js'
8
9
 
9
10
  type CheckboxProps = {
11
+ aria?: object,
10
12
  checked?: Boolean,
13
+ className?: String,
11
14
  dark?: Boolean,
15
+ data?: object,
12
16
  error?: Boolean,
17
+ id?: String,
13
18
  name: String,
14
19
  text: String,
15
20
  value: String,
@@ -19,9 +24,13 @@ type CheckboxProps = {
19
24
 
20
25
  const Checkbox = (props: CheckboxProps) => {
21
26
  const {
27
+ aria = {},
22
28
  checked = false,
29
+ className,
23
30
  dark = false,
31
+ data = {},
24
32
  error = false,
33
+ id,
25
34
  name = '',
26
35
  text = '',
27
36
  value = '',
@@ -29,13 +38,17 @@ const Checkbox = (props: CheckboxProps) => {
29
38
  onChange = () => {},
30
39
  } = props
31
40
 
41
+ const dataProps = buildDataProps(data)
42
+ const ariaProps = buildAriaProps(aria)
43
+ const classes = classnames(buildCss('pb_checkbox_kit',
44
+ { dark: dark, checked: checked, error: error }), className, spacing(props))
45
+
32
46
  return (
33
47
  <label
34
- className={classnames('pb_checkbox_kit' +
35
- (dark === true ? '_dark' : '') +
36
- (error === true ? ' error' : ''), spacing(props))
37
-
38
- }
48
+ {...ariaProps}
49
+ {...dataProps}
50
+ className={classes}
51
+ id={id}
39
52
  >
40
53
  <If condition={children}>
41
54
  {children}
@@ -0,0 +1,17 @@
1
+ import React from 'react'
2
+ import { Checkbox } from '../../'
3
+
4
+ const CheckboxChecked = () => {
5
+ return (
6
+ <div>
7
+ <Checkbox
8
+ checked
9
+ name="checkbox-name"
10
+ text="Checked Checkbox"
11
+ value="check-box value"
12
+ />
13
+ </div>
14
+ )
15
+ }
16
+
17
+ export default CheckboxChecked
@@ -9,6 +9,7 @@ examples:
9
9
 
10
10
  react:
11
11
  - checkbox_default: Default
12
+ - checkbox_checked: Load as checked
12
13
  - checkbox_dark: Dark
13
14
  - checkbox_custom: Custom Checkbox
14
15
  - checkbox_error: Default w/ Error
@@ -3,3 +3,4 @@ export { default as CheckboxDark } from './_checkbox_dark.jsx'
3
3
  export { default as CheckboxCustom } from './_checkbox_custom.jsx'
4
4
  export { default as CheckboxError } from './_checkbox_error.jsx'
5
5
  export { default as CheckboxDarkError } from './_checkbox_dark_error.jsx'
6
+ export { default as CheckboxChecked } from './_checkbox_checked.jsx'
@@ -1,4 +1,5 @@
1
1
  <%= content_tag(:div,
2
+ aria: object.aria,
2
3
  id: object.id,
3
4
  data: object.data,
4
5
  class: object.classname) do %>
@@ -2,6 +2,7 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
5
6
  import { Button, Icon } from '../'
6
7
 
7
8
  import type { Callback } from '../types'
@@ -13,8 +14,10 @@ import {
13
14
  import { spacing } from '../utilities/spacing.js'
14
15
 
15
16
  type CircleIconButtonProps = {
17
+ aria?: object,
16
18
  className?: String,
17
19
  dark?: Boolean,
20
+ data?: object,
18
21
  disabled?: Boolean,
19
22
  icon: String,
20
23
  id?: String,
@@ -27,9 +30,13 @@ type CircleIconButtonProps = {
27
30
 
28
31
  const CircleIconButton = (props: CircleIconButtonProps) => {
29
32
  const {
33
+ aria = {},
34
+ className,
30
35
  dark,
36
+ data = {},
31
37
  disabled,
32
38
  icon,
39
+ id,
33
40
  onClick = noop,
34
41
  type,
35
42
  link,
@@ -37,8 +44,17 @@ const CircleIconButton = (props: CircleIconButtonProps) => {
37
44
  variant,
38
45
  } = props
39
46
 
47
+ const ariaProps = buildAriaProps(aria)
48
+ const dataProps = buildDataProps(data)
49
+ const classes = classnames(buildCss('pb_circle_icon_button_kit'), className, spacing(props))
50
+
40
51
  return (
41
- <div className={classnames('pb_circle_icon_button_kit', spacing(props))}>
52
+ <div
53
+ {...ariaProps}
54
+ {...dataProps}
55
+ className={classes}
56
+ id={id}
57
+ >
42
58
  <Button
43
59
  dark={dark}
44
60
  disabled={disabled}
@@ -124,13 +124,6 @@ const highchartsTheme = {
124
124
  fontSize: typography.text_smaller,
125
125
  },
126
126
  },
127
- // specific to gauge
128
- // unfilled gauge color
129
- pane: {
130
- background: {
131
- borderColor: colors.border_light,
132
- },
133
- },
134
127
 
135
128
  plotOptions: {
136
129
  series: {
@@ -151,25 +144,6 @@ const highchartsTheme = {
151
144
  threshold: null,
152
145
  },
153
146
 
154
- // GAUGE STYLES
155
- solidgauge: {
156
- borderColor: colors.primary,
157
- borderWidth: 20,
158
- radius: 90,
159
- innerRadius: '90%',
160
- dataLabels: {
161
- borderWidth: 0,
162
- color: colors.text_lt_default,
163
- enabled: true,
164
- style: {
165
- fontFamily: typography.font_family_base,
166
- fontWeight: typography.regular,
167
- fontSize: typography.heading_2,
168
- },
169
- y: -26,
170
- },
171
- },
172
-
173
147
  // PIE STYLES
174
148
  pie: {
175
149
  colors: [
@@ -1,7 +1,8 @@
1
1
  <%= content_tag(:div,
2
- id: object.id,
2
+ aria: object.aria,
3
+ class: object.classname,
3
4
  data: object.data,
4
- class: object.classname) do %>
5
+ id: object.id) do %>
5
6
  <% if object.stat_label.present? %>
6
7
  <%= pb_rails("body", props: { color: "light", text: object.stat_label } ) %>
7
8
  <% end %>