playbook_ui 4.18.1 → 5.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/helpers/playbook/pb_sample_helper.rb +1 -1
  4. data/app/pb_kits/playbook/_playbook.scss +1 -1
  5. data/app/pb_kits/playbook/data/menu.yml +3 -1
  6. data/app/pb_kits/playbook/packs/examples.js +2 -0
  7. data/app/pb_kits/playbook/packs/samples.js +2 -0
  8. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +5 -0
  9. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +3 -0
  10. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.html.erb +15 -0
  11. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +24 -0
  12. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +6 -4
  13. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +1 -0
  14. data/app/pb_kits/playbook/pb_caption/_caption.jsx +21 -4
  15. data/app/pb_kits/playbook/pb_card/_card.scss +1 -72
  16. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +72 -0
  17. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +0 -1
  18. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +1 -1
  19. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  20. data/app/pb_kits/playbook/pb_installer/_installer.html.erb +16 -0
  21. data/app/pb_kits/playbook/pb_installer/_installer.jsx +54 -0
  22. data/app/pb_kits/playbook/pb_installer/_installer.scss +7 -0
  23. data/app/pb_kits/playbook/pb_installer/docs/_installer_default.html.erb +8 -0
  24. data/app/pb_kits/playbook/pb_installer/docs/_installer_default.jsx +16 -0
  25. data/app/pb_kits/playbook/pb_installer/docs/example.yml +9 -0
  26. data/app/pb_kits/playbook/pb_installer/docs/index.js +1 -0
  27. data/app/pb_kits/playbook/pb_installer/installer.rb +18 -0
  28. data/app/pb_kits/playbook/pb_layout/_body.html.erb +1 -1
  29. data/app/pb_kits/playbook/pb_layout/_column.html.erb +7 -0
  30. data/app/pb_kits/playbook/pb_layout/_layout.jsx +31 -13
  31. data/app/pb_kits/playbook/pb_layout/_layout.scss +54 -0
  32. data/app/pb_kits/playbook/pb_layout/body.rb +4 -0
  33. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.html.erb +140 -0
  34. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.jsx +1234 -0
  35. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.html.erb +57 -0
  36. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.jsx +46 -0
  37. data/app/pb_kits/playbook/pb_layout/docs/example.yml +3 -0
  38. data/app/pb_kits/playbook/pb_layout/docs/index.js +2 -0
  39. data/app/pb_kits/playbook/pb_layout/layout.rb +12 -4
  40. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +5 -0
  41. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.html.erb +16 -0
  42. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +23 -0
  43. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +5 -3
  44. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
  45. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +3 -0
  46. data/app/pb_kits/playbook/pb_list/_item.html.erb +3 -2
  47. data/app/pb_kits/playbook/pb_list/_list.html.erb +3 -3
  48. data/app/pb_kits/playbook/pb_list/_list.jsx +55 -10
  49. data/app/pb_kits/playbook/pb_list/_list_item.jsx +41 -18
  50. data/app/pb_kits/playbook/pb_list/docs/_list_borderless.jsx +21 -0
  51. data/app/pb_kits/playbook/pb_list/docs/_list_dark.jsx +0 -5
  52. data/app/pb_kits/playbook/pb_list/docs/_list_dark_borderless.jsx +22 -0
  53. data/app/pb_kits/playbook/pb_list/docs/_list_dark_lg.jsx +22 -0
  54. data/app/pb_kits/playbook/pb_list/docs/_list_dark_ordered.jsx +22 -0
  55. data/app/pb_kits/playbook/pb_list/docs/_list_dark_xpadding.jsx +22 -0
  56. data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.jsx +75 -0
  57. data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.jsx +75 -0
  58. data/app/pb_kits/playbook/pb_list/docs/_list_lg.jsx +21 -0
  59. data/app/pb_kits/playbook/pb_list/docs/_list_ordered.jsx +21 -0
  60. data/app/pb_kits/playbook/pb_list/docs/_list_xpadding.jsx +21 -0
  61. data/app/pb_kits/playbook/pb_list/docs/example.yml +12 -1
  62. data/app/pb_kits/playbook/pb_list/docs/index.js +11 -0
  63. data/app/pb_kits/playbook/pb_popover/_popover.html.erb +4 -4
  64. data/app/pb_kits/playbook/pb_popover/_popover.jsx +43 -10
  65. data/app/pb_kits/playbook/pb_popover/_popover.scss +44 -7
  66. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb +42 -0
  67. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +99 -0
  68. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb +19 -7
  69. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +22 -6
  70. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb +11 -10
  71. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +22 -18
  72. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.md +1 -0
  73. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.html.erb +24 -0
  74. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +56 -0
  75. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.html.erb +14 -0
  76. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +50 -0
  77. data/app/pb_kits/playbook/pb_popover/docs/example.yml +12 -8
  78. data/app/pb_kits/playbook/pb_popover/docs/index.js +3 -3
  79. data/app/pb_kits/playbook/pb_popover/index.js +18 -9
  80. data/app/pb_kits/playbook/pb_popover/popover.rb +26 -2
  81. data/app/pb_kits/playbook/pb_title/_title.html.erb +1 -0
  82. data/app/pb_kits/playbook/pb_title/_title.jsx +24 -17
  83. data/app/pb_kits/playbook/plugins/pb_chart.js +8 -2
  84. data/app/pb_kits/playbook/props.rb +7 -0
  85. data/app/views/playbook/samples/filter_table/index.html.erb +348 -0
  86. data/app/views/playbook/samples/filter_table/index.jsx +433 -0
  87. data/lib/playbook/version.rb +1 -1
  88. metadata +39 -10
  89. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.html.erb +0 -19
  90. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.jsx +0 -40
  91. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.html.erb +0 -14
  92. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.jsx +0 -40
  93. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.html.erb +0 -14
  94. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.jsx +0 -40
  95. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.jsx +0 -34
  96. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_circle.html.erb +0 -5
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListBorderless = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ borderless
10
+ >
11
+ <ListItem>{'Item 1'}</ListItem>
12
+ <ListItem>{'Item 2'}</ListItem>
13
+ <ListItem>{'Item 3'}</ListItem>
14
+ <ListItem>{'Item 4'}</ListItem>
15
+ <ListItem>{'Item 5'}</ListItem>
16
+ </List>
17
+ </>
18
+ )
19
+ }
20
+
21
+ export default ListBorderless
@@ -6,12 +6,7 @@ const ListDark = () => {
6
6
  return (
7
7
  <>
8
8
  <List
9
- borderless
10
9
  dark
11
- layout="right"
12
- ordered
13
- size="large"
14
- xpadding
15
10
  >
16
11
  <ListItem>{'Item 1'}</ListItem>
17
12
  <ListItem>{'Item 2'}</ListItem>
@@ -0,0 +1,22 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListDarkBorderless = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ borderless
10
+ dark
11
+ >
12
+ <ListItem>{'Item 1'}</ListItem>
13
+ <ListItem>{'Item 2'}</ListItem>
14
+ <ListItem>{'Item 3'}</ListItem>
15
+ <ListItem>{'Item 4'}</ListItem>
16
+ <ListItem>{'Item 5'}</ListItem>
17
+ </List>
18
+ </>
19
+ )
20
+ }
21
+
22
+ export default ListDarkBorderless
@@ -0,0 +1,22 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListDarkLg = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ dark
10
+ size="large"
11
+ >
12
+ <ListItem>{'Item 1'}</ListItem>
13
+ <ListItem>{'Item 2'}</ListItem>
14
+ <ListItem>{'Item 3'}</ListItem>
15
+ <ListItem>{'Item 4'}</ListItem>
16
+ <ListItem>{'Item 5'}</ListItem>
17
+ </List>
18
+ </>
19
+ )
20
+ }
21
+
22
+ export default ListDarkLg
@@ -0,0 +1,22 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListDarkOrdered = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ dark
10
+ ordered
11
+ >
12
+ <ListItem>{'Item 1'}</ListItem>
13
+ <ListItem>{'Item 2'}</ListItem>
14
+ <ListItem>{'Item 3'}</ListItem>
15
+ <ListItem>{'Item 4'}</ListItem>
16
+ <ListItem>{'Item 5'}</ListItem>
17
+ </List>
18
+ </>
19
+ )
20
+ }
21
+
22
+ export default ListDarkOrdered
@@ -0,0 +1,22 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListDarkXpadding = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ dark
10
+ xpadding
11
+ >
12
+ <ListItem>{'Item 1'}</ListItem>
13
+ <ListItem>{'Item 2'}</ListItem>
14
+ <ListItem>{'Item 3'}</ListItem>
15
+ <ListItem>{'Item 4'}</ListItem>
16
+ <ListItem>{'Item 5'}</ListItem>
17
+ </List>
18
+ </>
19
+ )
20
+ }
21
+
22
+ export default ListDarkXpadding
@@ -0,0 +1,75 @@
1
+ import React from 'react'
2
+
3
+ import { Currency, List, ListItem, Title } from '../../'
4
+
5
+ const ListLayoutLeft = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ layout="left"
10
+ >
11
+ <ListItem>
12
+ <Title
13
+ size={4}
14
+ text="Label"
15
+ />
16
+ <Currency
17
+ amount="2,000.50"
18
+ label="Caption"
19
+ size="sm"
20
+ />
21
+ </ListItem>
22
+
23
+ <ListItem>
24
+ <Title
25
+ size={4}
26
+ text="Label"
27
+ />
28
+ <Currency
29
+ amount="2,000.50"
30
+ label="Caption"
31
+ size="sm"
32
+ />
33
+ </ListItem>
34
+
35
+ <ListItem>
36
+ <Title
37
+ size={4}
38
+ text="Label"
39
+ />
40
+ <Currency
41
+ amount="2,000.50"
42
+ label="Caption"
43
+ size="sm"
44
+ />
45
+ </ListItem>
46
+
47
+ <ListItem>
48
+ <Title
49
+ size={4}
50
+ text="Label"
51
+ />
52
+ <Currency
53
+ amount="2,000.50"
54
+ label="Caption"
55
+ size="sm"
56
+ />
57
+ </ListItem>
58
+
59
+ <ListItem>
60
+ <Title
61
+ size={4}
62
+ text="Label"
63
+ />
64
+ <Currency
65
+ amount="2,000.50"
66
+ label="Caption"
67
+ size="sm"
68
+ />
69
+ </ListItem>
70
+ </List>
71
+ </>
72
+ )
73
+ }
74
+
75
+ export default ListLayoutLeft
@@ -0,0 +1,75 @@
1
+ import React from 'react'
2
+
3
+ import { Currency, List, ListItem, Title } from '../../'
4
+
5
+ const ListLayoutRight = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ layout="right"
10
+ >
11
+ <ListItem>
12
+ <Title
13
+ size={4}
14
+ text="Label"
15
+ />
16
+ <Currency
17
+ amount="2,000.50"
18
+ label="Caption"
19
+ size="sm"
20
+ />
21
+ </ListItem>
22
+
23
+ <ListItem>
24
+ <Title
25
+ size={4}
26
+ text="Label"
27
+ />
28
+ <Currency
29
+ amount="2,000.50"
30
+ label="Caption"
31
+ size="sm"
32
+ />
33
+ </ListItem>
34
+
35
+ <ListItem>
36
+ <Title
37
+ size={4}
38
+ text="Label"
39
+ />
40
+ <Currency
41
+ amount="2,000.50"
42
+ label="Caption"
43
+ size="sm"
44
+ />
45
+ </ListItem>
46
+
47
+ <ListItem>
48
+ <Title
49
+ size={4}
50
+ text="Label"
51
+ />
52
+ <Currency
53
+ amount="2,000.50"
54
+ label="Caption"
55
+ size="sm"
56
+ />
57
+ </ListItem>
58
+
59
+ <ListItem>
60
+ <Title
61
+ size={4}
62
+ text="Label"
63
+ />
64
+ <Currency
65
+ amount="2,000.50"
66
+ label="Caption"
67
+ size="sm"
68
+ />
69
+ </ListItem>
70
+ </List>
71
+ </>
72
+ )
73
+ }
74
+
75
+ export default ListLayoutRight
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListLg = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ size="large"
10
+ >
11
+ <ListItem>{'Item 1'}</ListItem>
12
+ <ListItem>{'Item 2'}</ListItem>
13
+ <ListItem>{'Item 3'}</ListItem>
14
+ <ListItem>{'Item 4'}</ListItem>
15
+ <ListItem>{'Item 5'}</ListItem>
16
+ </List>
17
+ </>
18
+ )
19
+ }
20
+
21
+ export default ListLg
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListOrdered = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ ordered
10
+ >
11
+ <ListItem>{'Item 1'}</ListItem>
12
+ <ListItem>{'Item 2'}</ListItem>
13
+ <ListItem>{'Item 3'}</ListItem>
14
+ <ListItem>{'Item 4'}</ListItem>
15
+ <ListItem>{'Item 5'}</ListItem>
16
+ </List>
17
+ </>
18
+ )
19
+ }
20
+
21
+ export default ListOrdered
@@ -0,0 +1,21 @@
1
+ import React from 'react'
2
+
3
+ import { List, ListItem } from '../../'
4
+
5
+ const ListXpadding = () => {
6
+ return (
7
+ <>
8
+ <List
9
+ xpadding
10
+ >
11
+ <ListItem>{'Item 1'}</ListItem>
12
+ <ListItem>{'Item 2'}</ListItem>
13
+ <ListItem>{'Item 3'}</ListItem>
14
+ <ListItem>{'Item 4'}</ListItem>
15
+ <ListItem>{'Item 5'}</ListItem>
16
+ </List>
17
+ </>
18
+ )
19
+ }
20
+
21
+ export default ListXpadding
@@ -14,4 +14,15 @@ examples:
14
14
  - list_dark_xpadding: Dark Horizontal Padding
15
15
  react:
16
16
  - list_default: Default
17
- - list_dark: Dark
17
+ - list_lg: Large
18
+ - list_ordered: Ordered
19
+ - list_borderless: Borderless
20
+ - list_xpadding: Horizontal Padding
21
+ - list_layout_left: Layout Left
22
+ - list_layout_right: Layout Right
23
+ - list_dark: Dark Default
24
+ - list_dark_lg: Dark Large
25
+ - list_dark_ordered: Dark Ordered
26
+ - list_dark_borderless: Dark Borderless
27
+ - list_dark_xpadding: Dark Horizontal Padding
28
+
@@ -1,2 +1,13 @@
1
1
  export { default as ListDefault } from './_list_default.jsx'
2
2
  export { default as ListDark } from './_list_dark.jsx'
3
+ export { default as ListXpadding } from './_list_xpadding.jsx'
4
+ export { default as ListDarkBorderless } from './_list_dark_borderless.jsx'
5
+ export { default as ListDarkLg } from './_list_dark_lg.jsx'
6
+ export { default as ListDarkXpadding } from './_list_dark_xpadding.jsx'
7
+ export { default as ListDarkOrdered } from './_list_dark_ordered.jsx'
8
+ export { default as ListLayoutRight } from './_list_layout_right.jsx'
9
+ export { default as ListLayoutLeft } from './_list_layout_left.jsx'
10
+ export { default as ListLg } from './_list_lg.jsx'
11
+ export { default as ListOrdered } from './_list_ordered.jsx'
12
+ export { default as ListBorderless } from './_list_borderless.jsx'
13
+
@@ -2,9 +2,9 @@
2
2
  id: object.id,
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
- <div class="popover_tooltip" id="<%= object.tooltip_id %>" role="tooltip">
6
- <%= pb_rails("card", props: {shadow: "deeper"}) do %>
5
+ <div class="pb_popover_tooltip" id="<%= object.tooltip_id %>" role="tooltip" style="<%= object.z_index_helper %>">
6
+ <div class="pb_popover_body <%= object.popover_spacing_helper %>" style="<%= object.width_height_helper %>">
7
7
  <%= capture(&object.children) %>
8
- <% end %>
8
+ </div>
9
9
  </div>
10
- <% end %>
10
+ <% end %>
@@ -15,8 +15,6 @@ import { buildCss, noop } from '../utilities/props'
15
15
  import classnames from 'classnames'
16
16
  import { spacing } from '../utilities/spacing.js'
17
17
 
18
- import { Card } from '../'
19
-
20
18
  type PbPopoverProps = {
21
19
  className?: String,
22
20
  closeOnClick?: "outside" | "inside",
@@ -35,7 +33,7 @@ const POPOVER_MODIFIERS = {
35
33
  enabled: true,
36
34
  name: 'offset',
37
35
  options: {
38
- offset: [0, 8],
36
+ offset: [0, 20],
39
37
  },
40
38
  phase: 'main',
41
39
  },
@@ -53,7 +51,25 @@ const Popover = (props: PbPopoverProps) => {
53
51
  offset,
54
52
  placement,
55
53
  referenceElement,
54
+ zIndex,
55
+ maxHeight,
56
+ maxWidth,
57
+ minHeight,
58
+ minWidth,
56
59
  } = props
60
+
61
+ const popoverSpacing = spacing(props) ? spacing(props) : 'p_sm'
62
+ const zIndexStyle = zIndex ? { zIndex: zIndex } : {}
63
+ const widthHeightStyles = () => {
64
+ return Object.assign(
65
+ {},
66
+ maxHeight ? { maxHeight: maxHeight } : {},
67
+ maxWidth ? { maxWidth: maxWidth } : {},
68
+ minHeight ? { minHeight: minHeight } : {},
69
+ minWidth ? { minWidth: minWidth } : {}
70
+ )
71
+ }
72
+
57
73
  return (
58
74
  <Popper
59
75
  modifiers={popoverModifiers({ modifiers, offset })}
@@ -66,19 +82,26 @@ const Popover = (props: PbPopoverProps) => {
66
82
  className={`${buildCss('pb_popover_kit')} ${className}`}
67
83
  data-placement={placement}
68
84
  ref={ref}
69
- style={style}
85
+ style={Object.assign(
86
+ {},
87
+ style,
88
+ zIndexStyle
89
+ )}
70
90
  >
71
91
  <div
72
92
  className={classnames(
73
- `${buildCss('popover_tooltip')} show`
93
+ `${buildCss('pb_popover_tooltip')} show`
74
94
  )}
75
95
  >
76
- <Card
77
- className={spacing(props)}
78
- shadow="deeper"
96
+ <div
97
+ className={classnames(
98
+ 'pb_popover_body',
99
+ popoverSpacing
100
+ )}
101
+ style={widthHeightStyles()}
79
102
  >
80
103
  {children}
81
- </Card>
104
+ </div>
82
105
  </div>
83
106
  </div>
84
107
  )
@@ -105,7 +128,7 @@ export default class PbReactPopover extends React.Component {
105
128
 
106
129
  document.body.addEventListener('click', ({ target }) => {
107
130
  const targetIsPopover =
108
- target.closest('[class^=popover_tooltip]') !== null
131
+ target.closest('[class^=pb_popover_tooltip]') !== null
109
132
  const targetIsReference =
110
133
  target.closest('.pb_popover_reference_wrapper') !== null
111
134
 
@@ -143,16 +166,26 @@ export default class PbReactPopover extends React.Component {
143
166
  referenceElement,
144
167
  show,
145
168
  usePortal,
169
+ zIndex,
170
+ maxHeight,
171
+ maxWidth,
172
+ minHeight,
173
+ minWidth,
146
174
  } = this.props
147
175
 
148
176
  const popoverComponent = (
149
177
  <Popover
150
178
  {...this.props}
151
179
  className={className}
180
+ maxHeight={maxHeight}
181
+ maxWidth={maxWidth}
182
+ minHeight={minHeight}
183
+ minWidth={minWidth}
152
184
  modifiers={modifiers}
153
185
  offset={offset}
154
186
  placement={placement}
155
187
  referenceElement={referenceElement}
188
+ zIndex={zIndex}
156
189
  >
157
190
  {children}
158
191
  </Popover>