playbook_ui 13.19.0 → 13.20.0.pre.alpha.PLAY12572402

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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/index.js +1 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/CollapsibleTrail.tsx +6 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +2 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +2 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +45 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +7 -4
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.md +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.md +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.md +1 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.md +1 -1
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.md +1 -1
  13. data/app/pb_kits/playbook/pb_date/docs/_date_alignment_swift.md +26 -6
  14. data/app/pb_kits/playbook/pb_date/docs/_date_default_swift.md +27 -8
  15. data/app/pb_kits/playbook/pb_icon/_icon.tsx +28 -16
  16. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.html.erb +5 -11
  17. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.jsx +44 -18
  18. data/app/pb_kits/playbook/pb_icon/docs/_icon_custom.md +4 -8
  19. data/app/pb_kits/playbook/pb_icon/icon.html.erb +6 -4
  20. data/app/pb_kits/playbook/pb_icon/icon.rb +27 -10
  21. data/app/pb_kits/playbook/pb_message/docs/_description.md +1 -1
  22. data/app/pb_kits/playbook/pb_nav/_subtle_mixin.scss +4 -0
  23. data/app/pb_kits/playbook/pb_table/_table.tsx +99 -67
  24. data/app/pb_kits/playbook/pb_table/docs/_table_div.html.erb +34 -0
  25. data/app/pb_kits/playbook/pb_table/docs/_table_div.jsx +47 -0
  26. data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.jsx +24 -25
  27. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.jsx +47 -0
  28. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.md +7 -0
  29. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_as_divs.html.erb +34 -0
  30. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_as_divs.jsx +48 -0
  31. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_as_divs.md +3 -0
  32. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_rails.html.erb +34 -0
  33. data/app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_rails.md +7 -0
  34. data/app/pb_kits/playbook/pb_table/docs/example.yml +6 -0
  35. data/app/pb_kits/playbook/pb_table/docs/index.js +3 -0
  36. data/app/pb_kits/playbook/pb_table/styles/_content.scss +3 -3
  37. data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +15 -15
  38. data/app/pb_kits/playbook/pb_table/styles/_headers.scss +3 -3
  39. data/app/pb_kits/playbook/pb_table/styles/_hover.scss +11 -11
  40. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +15 -15
  41. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +15 -15
  42. data/app/pb_kits/playbook/pb_table/styles/_reset.scss +3 -3
  43. data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +2 -2
  44. data/app/pb_kits/playbook/pb_table/styles/_single-line.scss +4 -4
  45. data/app/pb_kits/playbook/pb_table/styles/_sticky_header.scss +2 -2
  46. data/app/pb_kits/playbook/pb_table/styles/_striped.scss +4 -4
  47. data/app/pb_kits/playbook/pb_table/styles/_structure.scss +22 -8
  48. data/app/pb_kits/playbook/pb_table/styles/_table-card.scss +7 -7
  49. data/app/pb_kits/playbook/pb_table/styles/_table-dark.scss +14 -14
  50. data/app/pb_kits/playbook/pb_table/styles/_table_header.scss +2 -2
  51. data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +15 -15
  52. data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +3 -4
  53. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +64 -0
  54. data/app/pb_kits/playbook/pb_table/subcomponents/_table_cell.tsx +66 -0
  55. data/app/pb_kits/playbook/pb_table/subcomponents/_table_head.tsx +64 -0
  56. data/app/pb_kits/playbook/pb_table/subcomponents/_table_header.tsx +66 -0
  57. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +74 -0
  58. data/app/pb_kits/playbook/pb_table/subcomponents/index.tsx +5 -0
  59. data/app/pb_kits/playbook/pb_table/table.html.erb +12 -2
  60. data/app/pb_kits/playbook/pb_table/table.rb +3 -0
  61. data/app/pb_kits/playbook/pb_table/table.test.js +142 -1
  62. data/app/pb_kits/playbook/pb_table/table_body.html.erb +17 -0
  63. data/app/pb_kits/playbook/pb_table/table_body.rb +15 -0
  64. data/app/pb_kits/playbook/pb_table/table_cell.html.erb +17 -0
  65. data/app/pb_kits/playbook/pb_table/table_cell.rb +17 -0
  66. data/app/pb_kits/playbook/pb_table/table_head.html.erb +17 -0
  67. data/app/pb_kits/playbook/pb_table/table_head.rb +15 -0
  68. data/app/pb_kits/playbook/pb_table/table_header.html.erb +49 -39
  69. data/app/pb_kits/playbook/pb_table/table_header.rb +8 -1
  70. data/app/pb_kits/playbook/pb_table/table_row.html.erb +17 -7
  71. data/app/pb_kits/playbook/pb_table/table_row.rb +8 -1
  72. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +9 -5
  73. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_add_on.jsx +20 -0
  74. data/app/pb_kits/playbook/pb_user/docs/_user_presence_indicator_swift.md +30 -0
  75. data/app/pb_kits/playbook/pb_user/docs/_user_props_table.md +2 -1
  76. data/app/pb_kits/playbook/pb_user/docs/example.yml +1 -0
  77. data/app/pb_kits/playbook/utilities/_positioning.scss +48 -7
  78. data/app/pb_kits/playbook/utilities/globalProps.ts +23 -1
  79. data/dist/playbook-rails.js +6 -6
  80. data/lib/playbook/bottom.rb +33 -0
  81. data/lib/playbook/classnames.rb +4 -0
  82. data/lib/playbook/kit_base.rb +8 -0
  83. data/lib/playbook/left.rb +33 -0
  84. data/lib/playbook/right.rb +33 -0
  85. data/lib/playbook/top.rb +33 -0
  86. data/lib/playbook/version.rb +2 -2
  87. metadata +32 -7
  88. data/app/pb_kits/playbook/pb_table/_table_row.tsx +0 -47
@@ -3,69 +3,69 @@ import classnames from 'classnames'
3
3
  import { buildAriaProps, buildDataProps, buildHtmlProps } from '../utilities/props'
4
4
  import { globalProps, GlobalProps } from '../utilities/globalProps'
5
5
  import PbTable from '.'
6
+ import {
7
+ TableHead,
8
+ TableHeader,
9
+ TableBody,
10
+ TableRow,
11
+ TableCell,
12
+ } from "./subcomponents";
6
13
 
7
14
  type TableProps = {
8
- aria?: { [key: string]: string },
9
- children: React.ReactNode[] | React.ReactNode,
10
- className: string,
11
- collapse?: "sm" | "md" | "lg",
12
- container?: boolean,
13
- dark?: boolean,
14
- data?: { [key: string]: string },
15
- dataTable: boolean,
16
- disableHover?: boolean,
17
- htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
18
- id?: string,
19
- responsive?: "collapse" | "scroll" | "none",
20
- singleLine?: boolean,
21
- size?: "sm" | "md" | "lg",
22
- sticky?: boolean,
23
- striped?: boolean,
24
- verticalBorder?: boolean,
15
+ aria?: { [key: string]: string },
16
+ children: React.ReactNode[] | React.ReactNode,
17
+ className: string,
18
+ collapse?: "sm" | "md" | "lg",
19
+ container?: boolean,
20
+ dark?: boolean,
21
+ data?: { [key: string]: string },
22
+ dataTable: boolean,
23
+ disableHover?: boolean,
24
+ htmlOptions?: { [key: string]: string | number | boolean | (() => void) },
25
+ id?: string,
26
+ responsive?: "collapse" | "scroll" | "none",
27
+ singleLine?: boolean,
28
+ size?: "sm" | "md" | "lg",
29
+ sticky?: boolean,
30
+ striped?: boolean,
31
+ tag?: "table" | "div",
32
+ verticalBorder?: boolean,
25
33
  } & GlobalProps
26
34
 
27
35
  const Table = (props: TableProps) => {
28
- const {
29
- aria = {},
30
- children,
31
- className,
32
- collapse = 'sm',
33
- container = true,
34
- dark,
35
- data = {},
36
- dataTable = false,
37
- disableHover = false,
38
- htmlOptions = {},
39
- id,
40
- responsive = 'collapse',
41
- singleLine = false,
42
- size = 'sm',
43
- sticky = false,
44
- striped = false,
45
- verticalBorder = false,
46
- } = props
36
+ const {
37
+ aria = {},
38
+ children,
39
+ className,
40
+ collapse = 'sm',
41
+ container = true,
42
+ dark,
43
+ data = {},
44
+ dataTable = false,
45
+ disableHover = false,
46
+ htmlOptions = {},
47
+ id,
48
+ responsive = 'collapse',
49
+ singleLine = false,
50
+ size = 'sm',
51
+ sticky = false,
52
+ striped = false,
53
+ tag = 'table',
54
+ verticalBorder = false,
55
+ } = props
47
56
 
48
- const ariaProps = buildAriaProps(aria)
49
- const dataProps = buildDataProps(data)
50
- const htmlProps = buildHtmlProps(htmlOptions)
51
- const tableCollapseCss = responsive !== 'none' ? `table-collapse-${collapse}` : ''
52
- const verticalBorderCss = verticalBorder ? 'vertical-border' : ''
57
+ const ariaProps = buildAriaProps(aria)
58
+ const dataProps = buildDataProps(data)
59
+ const htmlProps = buildHtmlProps(htmlOptions)
60
+ const tableCollapseCss = responsive !== 'none' ? `table-collapse-${collapse}` : ''
61
+ const verticalBorderCss = verticalBorder ? 'vertical-border' : ''
62
+ const isTableTag = tag === 'table'
53
63
 
54
- useEffect(() => {
55
- const instance = new PbTable()
56
- instance.connect()
57
- }, [])
58
-
59
- return (
60
- <table
61
- {...ariaProps}
62
- {...dataProps}
63
- {...htmlProps}
64
- className={classnames(
65
- 'pb_table',
66
- `table-${size}`,
67
- `table-responsive-${responsive}`,
68
- {
64
+ const classNames = classnames(
65
+ 'pb_table',
66
+ `table-${size}`,
67
+ `table-responsive-${responsive}`,
68
+ {
69
69
  'table-card': container,
70
70
  'table-dark': dark,
71
71
  'data_table': dataTable,
@@ -73,17 +73,49 @@ const Table = (props: TableProps) => {
73
73
  'no-hover': disableHover,
74
74
  'sticky-header': sticky,
75
75
  'striped': striped,
76
- },
77
- globalProps(props),
78
- tableCollapseCss,
79
- verticalBorderCss,
80
- className
81
- )}
82
- id={id}
83
- >
84
- {children}
85
- </table>
86
- )
76
+ },
77
+ globalProps(props),
78
+ tableCollapseCss,
79
+ verticalBorderCss,
80
+ className
81
+ )
82
+
83
+ useEffect(() => {
84
+ const instance = new PbTable()
85
+ instance.connect()
86
+ }, [])
87
+
88
+ return (
89
+ <>
90
+ {isTableTag ? (
91
+ <table
92
+ {...ariaProps}
93
+ {...dataProps}
94
+ {...htmlProps}
95
+ className={classNames}
96
+ id={id}
97
+ >
98
+ {children}
99
+ </table>
100
+ ) : (
101
+ <div
102
+ {...ariaProps}
103
+ {...dataProps}
104
+ {...htmlProps}
105
+ className={classNames}
106
+ id={id}
107
+ >
108
+ {children}
109
+ </div>
110
+ )}
111
+ </>
112
+ )
87
113
  }
88
114
 
115
+ Table.Head = TableHead
116
+ Table.Header = TableHeader
117
+ Table.Body = TableBody
118
+ Table.Row = TableRow
119
+ Table.Cell = TableCell
120
+
89
121
  export default Table
@@ -0,0 +1,34 @@
1
+ <%= pb_rails("table", props: { size: "sm", tag: "div" }) do %>
2
+ <div class="pb_table_thead">
3
+ <div class="pb_table_tr">
4
+ <div class="pb_table_th">Column 1</div>
5
+ <div class="pb_table_th">Column 2</div>
6
+ <div class="pb_table_th">Column 3</div>
7
+ <div class="pb_table_th">Column 4</div>
8
+ <div class="pb_table_th">Column 5</div>
9
+ </div>
10
+ </div>
11
+ <div class="pb_table_tbody">
12
+ <div class="pb_table_tr">
13
+ <div class="pb_table_td">Value 1</div>
14
+ <div class="pb_table_td">Value 2</div>
15
+ <div class="pb_table_td">Value 3</div>
16
+ <div class="pb_table_td">Value 4</div>
17
+ <div class="pb_table_td">Value 5</div>
18
+ </div>
19
+ <div class="pb_table_tr">
20
+ <div class="pb_table_td">Value 1</div>
21
+ <div class="pb_table_td">Value 2</div>
22
+ <div class="pb_table_td">Value 3</div>
23
+ <div class="pb_table_td">Value 4</div>
24
+ <div class="pb_table_td">Value 5</div>
25
+ </div>
26
+ <div class="pb_table_tr">
27
+ <div class="pb_table_td">Value 1</div>
28
+ <div class="pb_table_td">Value 2</div>
29
+ <div class="pb_table_td">Value 3</div>
30
+ <div class="pb_table_td">Value 4</div>
31
+ <div class="pb_table_td">Value 5</div>
32
+ </div>
33
+ </div>
34
+ <% end %>
@@ -0,0 +1,47 @@
1
+ import React from 'react'
2
+ import Table from '../_table'
3
+
4
+ const TableDiv = (props) => {
5
+ return (
6
+ <Table
7
+ size="sm"
8
+ tag="div"
9
+ {...props}
10
+ >
11
+ <div className="pb_table_thead">
12
+ <div className="pb_table_tr">
13
+ <div className="pb_table_th">{'Column 1'}</div>
14
+ <div className="pb_table_th">{'Column 2'}</div>
15
+ <div className="pb_table_th">{'Column 3'}</div>
16
+ <div className="pb_table_th">{'Column 4'}</div>
17
+ <div className="pb_table_th">{'Column 5'}</div>
18
+ </div>
19
+ </div>
20
+ <div className="pb_table_tbody">
21
+ <div className="pb_table_tr">
22
+ <div className="pb_table_td">{'Value 1'}</div>
23
+ <div className="pb_table_td">{'Value 2'}</div>
24
+ <div className="pb_table_td">{'Value 3'}</div>
25
+ <div className="pb_table_td">{'Value 4'}</div>
26
+ <div className="pb_table_td">{'Value 5'}</div>
27
+ </div>
28
+ <div className="pb_table_tr">
29
+ <div className="pb_table_td">{'Value 1'}</div>
30
+ <div className="pb_table_td">{'Value 2'}</div>
31
+ <div className="pb_table_td">{'Value 3'}</div>
32
+ <div className="pb_table_td">{'Value 4'}</div>
33
+ <div className="pb_table_td">{'Value 5'}</div>
34
+ </div>
35
+ <div className="pb_table_tr">
36
+ <div className="pb_table_td">{'Value 1'}</div>
37
+ <div className="pb_table_td">{'Value 2'}</div>
38
+ <div className="pb_table_td">{'Value 3'}</div>
39
+ <div className="pb_table_td">{'Value 4'}</div>
40
+ <div className="pb_table_td">{'Value 5'}</div>
41
+ </div>
42
+ </div>
43
+ </Table>
44
+ )
45
+ }
46
+
47
+ export default TableDiv
@@ -1,7 +1,6 @@
1
1
  import React from 'react'
2
2
 
3
3
  import Table from '../_table'
4
- import TableRow from '../_table_row'
5
4
 
6
5
  const TableSideHighlight = (props) => {
7
6
  return (
@@ -20,7 +19,7 @@ const TableSideHighlight = (props) => {
20
19
  </tr>
21
20
  </thead>
22
21
  <tbody>
23
- <TableRow
22
+ <Table.Row
24
23
  sideHighlightColor="product_1_highlight"
25
24
  {...props}
26
25
  >
@@ -29,8 +28,8 @@ const TableSideHighlight = (props) => {
29
28
  <td>{'Value 3'}</td>
30
29
  <td>{'Value 4'}</td>
31
30
  <td>{'Value 5'}</td>
32
- </TableRow>
33
- <TableRow
31
+ </Table.Row>
32
+ <Table.Row
34
33
  sideHighlightColor="product_2_highlight"
35
34
  {...props}
36
35
  >
@@ -39,8 +38,8 @@ const TableSideHighlight = (props) => {
39
38
  <td>{'Value 3'}</td>
40
39
  <td>{'Value 4'}</td>
41
40
  <td>{'Value 5'}</td>
42
- </TableRow>
43
- <TableRow
41
+ </Table.Row>
42
+ <Table.Row
44
43
  sideHighlightColor="product_3_highlight"
45
44
  {...props}
46
45
  >
@@ -49,8 +48,8 @@ const TableSideHighlight = (props) => {
49
48
  <td>{'Value 3'}</td>
50
49
  <td>{'Value 4'}</td>
51
50
  <td>{'Value 5'}</td>
52
- </TableRow>
53
- <TableRow
51
+ </Table.Row>
52
+ <Table.Row
54
53
  sideHighlightColor="none"
55
54
  {...props}
56
55
  >
@@ -59,7 +58,7 @@ const TableSideHighlight = (props) => {
59
58
  <td>{'Value 3'}</td>
60
59
  <td>{'Value 4'}</td>
61
60
  <td>{'Value 5'}</td>
62
- </TableRow>
61
+ </Table.Row>
63
62
  </tbody>
64
63
  </Table>
65
64
 
@@ -79,7 +78,7 @@ const TableSideHighlight = (props) => {
79
78
  </tr>
80
79
  </thead>
81
80
  <tbody>
82
- <TableRow
81
+ <Table.Row
83
82
  sideHighlightColor="success"
84
83
  {...props}
85
84
  >
@@ -88,8 +87,8 @@ const TableSideHighlight = (props) => {
88
87
  <td>{'Value 3'}</td>
89
88
  <td>{'Value 4'}</td>
90
89
  <td>{'Value 5'}</td>
91
- </TableRow>
92
- <TableRow
90
+ </Table.Row>
91
+ <Table.Row
93
92
  sideHighlightColor="warning"
94
93
  {...props}
95
94
  >
@@ -98,8 +97,8 @@ const TableSideHighlight = (props) => {
98
97
  <td>{'Value 3'}</td>
99
98
  <td>{'Value 4'}</td>
100
99
  <td>{'Value 5'}</td>
101
- </TableRow>
102
- <TableRow
100
+ </Table.Row>
101
+ <Table.Row
103
102
  sideHighlightColor="error"
104
103
  {...props}
105
104
  >
@@ -108,8 +107,8 @@ const TableSideHighlight = (props) => {
108
107
  <td>{'Value 3'}</td>
109
108
  <td>{'Value 4'}</td>
110
109
  <td>{'Value 5'}</td>
111
- </TableRow>
112
- <TableRow
110
+ </Table.Row>
111
+ <Table.Row
113
112
  sideHighlightColor="none"
114
113
  {...props}
115
114
  >
@@ -118,7 +117,7 @@ const TableSideHighlight = (props) => {
118
117
  <td>{'Value 3'}</td>
119
118
  <td>{'Value 4'}</td>
120
119
  <td>{'Value 5'}</td>
121
- </TableRow>
120
+ </Table.Row>
122
121
  </tbody>
123
122
  </Table>
124
123
 
@@ -138,7 +137,7 @@ const TableSideHighlight = (props) => {
138
137
  </tr>
139
138
  </thead>
140
139
  <tbody>
141
- <TableRow
140
+ <Table.Row
142
141
  sideHighlightColor="category_1"
143
142
  {...props}
144
143
  >
@@ -147,8 +146,8 @@ const TableSideHighlight = (props) => {
147
146
  <td>{'Value 3'}</td>
148
147
  <td>{'Value 4'}</td>
149
148
  <td>{'Value 5'}</td>
150
- </TableRow>
151
- <TableRow
149
+ </Table.Row>
150
+ <Table.Row
152
151
  sideHighlightColor="category_2"
153
152
  {...props}
154
153
  >
@@ -157,8 +156,8 @@ const TableSideHighlight = (props) => {
157
156
  <td>{'Value 3'}</td>
158
157
  <td>{'Value 4'}</td>
159
158
  <td>{'Value 5'}</td>
160
- </TableRow>
161
- <TableRow
159
+ </Table.Row>
160
+ <Table.Row
162
161
  sideHighlightColor="category_3"
163
162
  {...props}
164
163
  >
@@ -167,8 +166,8 @@ const TableSideHighlight = (props) => {
167
166
  <td>{'Value 3'}</td>
168
167
  <td>{'Value 4'}</td>
169
168
  <td>{'Value 5'}</td>
170
- </TableRow>
171
- <TableRow
169
+ </Table.Row>
170
+ <Table.Row
172
171
  sideHighlightColor="none"
173
172
  {...props}
174
173
  >
@@ -177,7 +176,7 @@ const TableSideHighlight = (props) => {
177
176
  <td>{'Value 3'}</td>
178
177
  <td>{'Value 4'}</td>
179
178
  <td>{'Value 5'}</td>
180
- </TableRow>
179
+ </Table.Row>
181
180
  </tbody>
182
181
  </Table>
183
182
  </div>
@@ -0,0 +1,47 @@
1
+ import React from 'react'
2
+
3
+ import Table from '../_table'
4
+
5
+ const TableWithSubcomponents = (props) => {
6
+ return (
7
+ <Table
8
+ size="sm"
9
+ {...props}
10
+ >
11
+ <Table.Head>
12
+ <Table.Row>
13
+ <Table.Header>{'Column 1'}</Table.Header>
14
+ <Table.Header>{'Column 2'}</Table.Header>
15
+ <Table.Header>{'Column 3'}</Table.Header>
16
+ <Table.Header>{'Column 4'}</Table.Header>
17
+ <Table.Header>{'Column 5'}</Table.Header>
18
+ </Table.Row>
19
+ </Table.Head>
20
+ <Table.Body>
21
+ <Table.Row>
22
+ <Table.Cell>{'Value 1'}</Table.Cell>
23
+ <Table.Cell>{'Value 2'}</Table.Cell>
24
+ <Table.Cell>{'Value 3'}</Table.Cell>
25
+ <Table.Cell>{'Value 4'}</Table.Cell>
26
+ <Table.Cell>{'Value 5'}</Table.Cell>
27
+ </Table.Row>
28
+ <Table.Row>
29
+ <Table.Cell>{'Value 1'}</Table.Cell>
30
+ <Table.Cell>{'Value 2'}</Table.Cell>
31
+ <Table.Cell>{'Value 3'}</Table.Cell>
32
+ <Table.Cell>{'Value 4'}</Table.Cell>
33
+ <Table.Cell>{'Value 5'}</Table.Cell>
34
+ </Table.Row>
35
+ <Table.Row>
36
+ <Table.Cell>{'Value 1'}</Table.Cell>
37
+ <Table.Cell>{'Value 2'}</Table.Cell>
38
+ <Table.Cell>{'Value 3'}</Table.Cell>
39
+ <Table.Cell>{'Value 4'}</Table.Cell>
40
+ <Table.Cell>{'Value 5'}</Table.Cell>
41
+ </Table.Row>
42
+ </Table.Body>
43
+ </Table>
44
+ )
45
+ }
46
+
47
+ export default TableWithSubcomponents
@@ -0,0 +1,7 @@
1
+ You can optionally build your table using our sub-components, which map to their respective html table elements:
2
+
3
+ `Table.Head` = `thead`
4
+ `Table.Body` = `tbody`
5
+ `Table.Row` = `tr`
6
+ `Table.Header` = `th`
7
+ `Table.Cell` = `td`
@@ -0,0 +1,34 @@
1
+ <%= pb_rails("table", props: { size: "sm", tag:"div" }) do %>
2
+ <%= pb_rails("table/table_head", props: {tag:"div"}) do %>
3
+ <%= pb_rails("table/table_row", props: {tag:"div"}) do %>
4
+ <%= pb_rails("table/table_header", props: { text: "Column 1", tag:"div"}) %>
5
+ <%= pb_rails("table/table_header", props: { text: "Column 2", tag:"div"}) %>
6
+ <%= pb_rails("table/table_header", props: { text: "Column 3", tag:"div"}) %>
7
+ <%= pb_rails("table/table_header", props: { text: "Column 4", tag:"div"}) %>
8
+ <%= pb_rails("table/table_header", props: { text: "Column 5", tag:"div"}) %>
9
+ <% end %>
10
+ <% end %>
11
+ <%= pb_rails("table/table_body", props: {tag:"div"}) do %>
12
+ <%= pb_rails("table/table_row", props: {tag:"div"}) do %>
13
+ <%= pb_rails("table/table_cell", props: { text: "Value 1", tag:"div"}) %>
14
+ <%= pb_rails("table/table_cell", props: { text: "Value 2", tag:"div"}) %>
15
+ <%= pb_rails("table/table_cell", props: { text: "Value 3", tag:"div"}) %>
16
+ <%= pb_rails("table/table_cell", props: { text: "Value 4", tag:"div"}) %>
17
+ <%= pb_rails("table/table_cell", props: { text: "Value 5", tag:"div"}) %>
18
+ <% end %>
19
+ <%= pb_rails("table/table_row", props: {tag:"div"}) do %>
20
+ <%= pb_rails("table/table_cell", props: { text: "Value 1", tag:"div"}) %>
21
+ <%= pb_rails("table/table_cell", props: { text: "Value 2", tag:"div"}) %>
22
+ <%= pb_rails("table/table_cell", props: { text: "Value 3", tag:"div"}) %>
23
+ <%= pb_rails("table/table_cell", props: { text: "Value 4", tag:"div"}) %>
24
+ <%= pb_rails("table/table_cell", props: { text: "Value 5", tag:"div"}) %>
25
+ <% end %>
26
+ <%= pb_rails("table/table_row", props: {tag:"div"}) do %>
27
+ <%= pb_rails("table/table_cell", props: { text: "Value 1", tag:"div"}) %>
28
+ <%= pb_rails("table/table_cell", props: { text: "Value 2", tag:"div"}) %>
29
+ <%= pb_rails("table/table_cell", props: { text: "Value 3", tag:"div"}) %>
30
+ <%= pb_rails("table/table_cell", props: { text: "Value 4", tag:"div"}) %>
31
+ <%= pb_rails("table/table_cell", props: { text: "Value 5", tag:"div"}) %>
32
+ <% end %>
33
+ <% end %>
34
+ <% end %>
@@ -0,0 +1,48 @@
1
+ import React from 'react'
2
+
3
+ import Table from '../_table'
4
+
5
+ const TableWithSubcomponentsAsDivs = (props) => {
6
+ return (
7
+ <Table
8
+ size="sm"
9
+ tag="div"
10
+ {...props}
11
+ >
12
+ <Table.Head tag="div">
13
+ <Table.Row tag="div">
14
+ <Table.Header tag="div">{'Column 1'}</Table.Header>
15
+ <Table.Header tag="div">{'Column 2'}</Table.Header>
16
+ <Table.Header tag="div">{'Column 3'}</Table.Header>
17
+ <Table.Header tag="div">{'Column 4'}</Table.Header>
18
+ <Table.Header tag="div">{'Column 5'}</Table.Header>
19
+ </Table.Row>
20
+ </Table.Head>
21
+ <Table.Body tag="div">
22
+ <Table.Row tag="div">
23
+ <Table.Cell tag="div">{'Value 1'}</Table.Cell>
24
+ <Table.Cell tag="div">{'Value 2'}</Table.Cell>
25
+ <Table.Cell tag="div">{'Value 3'}</Table.Cell>
26
+ <Table.Cell tag="div">{'Value 4'}</Table.Cell>
27
+ <Table.Cell tag="div">{'Value 5'}</Table.Cell>
28
+ </Table.Row>
29
+ <Table.Row tag="div">
30
+ <Table.Cell tag="div">{'Value 1'}</Table.Cell>
31
+ <Table.Cell tag="div">{'Value 2'}</Table.Cell>
32
+ <Table.Cell tag="div">{'Value 3'}</Table.Cell>
33
+ <Table.Cell tag="div">{'Value 4'}</Table.Cell>
34
+ <Table.Cell tag="div">{'Value 5'}</Table.Cell>
35
+ </Table.Row>
36
+ <Table.Row>
37
+ <Table.Cell tag="div">{'Value 1'}</Table.Cell>
38
+ <Table.Cell tag="div">{'Value 2'}</Table.Cell>
39
+ <Table.Cell tag="div">{'Value 3'}</Table.Cell>
40
+ <Table.Cell tag="div">{'Value 4'}</Table.Cell>
41
+ <Table.Cell tag="div">{'Value 5'}</Table.Cell>
42
+ </Table.Row>
43
+ </Table.Body>
44
+ </Table>
45
+ )
46
+ }
47
+
48
+ export default TableWithSubcomponentsAsDivs
@@ -0,0 +1,3 @@
1
+ Optionally build your table with divs by passing `div` to the `tag` prop of all* your sub-components.
2
+
3
+ *NOTE: The `tag` prop defaults to `table`, which returns html elements. If divs are desired, sub-components must be used and all table elements, including the initial kit call, must use `div` as their `tag` in order for the table to render properly.
@@ -0,0 +1,34 @@
1
+ <%= pb_rails("table", props: { size: "sm" }) do %>
2
+ <%= pb_rails("table/table_head") do %>
3
+ <%= pb_rails("table/table_row") do %>
4
+ <%= pb_rails("table/table_header", props: { text: "Column 1"}) %>
5
+ <%= pb_rails("table/table_header", props: { text: "Column 2"}) %>
6
+ <%= pb_rails("table/table_header", props: { text: "Column 3"}) %>
7
+ <%= pb_rails("table/table_header", props: { text: "Column 4"}) %>
8
+ <%= pb_rails("table/table_header", props: { text: "Column 5"}) %>
9
+ <% end %>
10
+ <% end %>
11
+ <%= pb_rails("table/table_body") do %>
12
+ <%= pb_rails("table/table_row") do %>
13
+ <%= pb_rails("table/table_cell", props: { text: "Value 1"}) %>
14
+ <%= pb_rails("table/table_cell", props: { text: "Value 2"}) %>
15
+ <%= pb_rails("table/table_cell", props: { text: "Value 3"}) %>
16
+ <%= pb_rails("table/table_cell", props: { text: "Value 4"}) %>
17
+ <%= pb_rails("table/table_cell", props: { text: "Value 5"}) %>
18
+ <% end %>
19
+ <%= pb_rails("table/table_row") do %>
20
+ <%= pb_rails("table/table_cell", props: { text: "Value 1"}) %>
21
+ <%= pb_rails("table/table_cell", props: { text: "Value 2"}) %>
22
+ <%= pb_rails("table/table_cell", props: { text: "Value 3"}) %>
23
+ <%= pb_rails("table/table_cell", props: { text: "Value 4"}) %>
24
+ <%= pb_rails("table/table_cell", props: { text: "Value 5"}) %>
25
+ <% end %>
26
+ <%= pb_rails("table/table_row") do %>
27
+ <%= pb_rails("table/table_cell", props: { text: "Value 1"}) %>
28
+ <%= pb_rails("table/table_cell", props: { text: "Value 2"}) %>
29
+ <%= pb_rails("table/table_cell", props: { text: "Value 3"}) %>
30
+ <%= pb_rails("table/table_cell", props: { text: "Value 4"}) %>
31
+ <%= pb_rails("table/table_cell", props: { text: "Value 5"}) %>
32
+ <% end %>
33
+ <% end %>
34
+ <% end %>
@@ -0,0 +1,7 @@
1
+ You can optionally build your table using our sub-components, which map to their respective html table elements:
2
+
3
+ `table_head` = `thead`
4
+ `table_body` = `tbody`
5
+ `table_row` = `tr`
6
+ `table_header` = `th`
7
+ `table_cell` = `td`
@@ -24,6 +24,9 @@ examples:
24
24
  - table_with_background_kit: Table With Background Kit
25
25
  - table_vertical_border: Vertical Borders
26
26
  - table_striped: Striped Table
27
+ - table_with_subcomponents_rails: Table with Sub Components (Table Elements)
28
+ - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
29
+
27
30
 
28
31
  react:
29
32
  - table_sm: Small
@@ -49,3 +52,6 @@ examples:
49
52
  - table_with_background_kit: Table With Background Kit
50
53
  - table_vertical_border: Vertical Borders
51
54
  - table_striped: Striped Table
55
+ - table_with_subcomponents: Table with Sub Components (Table Elements)
56
+ - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
57
+
@@ -21,3 +21,6 @@ export { default as TableAlignmentShiftData } from './_table_alignment_shift_dat
21
21
  export { default as TableWithBackgroundKit } from './_table_with_background_kit.jsx'
22
22
  export { default as TableVerticalBorder } from './_table_vertical_border.jsx'
23
23
  export { default as TableStriped } from './_table_striped.jsx'
24
+ export { default as TableDiv } from './_table_div.jsx'
25
+ export { default as TableWithSubcomponents } from './_table_with_subcomponents.jsx'
26
+ export { default as TableWithSubcomponentsAsDivs } from './_table_with_subcomponents_as_divs.jsx'
@@ -2,9 +2,9 @@
2
2
  &.table-sm,
3
3
  &.table-md,
4
4
  &.table-lg {
5
- tbody {
6
- tr {
7
- td {
5
+ tbody, .pb_table_tbody {
6
+ tr, .pb_table_tr {
7
+ td, .pb_table_td {
8
8
  font-size: $default-font-size;
9
9
  }
10
10
  }