playbook_ui 14.11.1.pre.alpha.PBNTR769sticky5359 → 14.11.1.pre.alpha.PBNTR7495495

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +18 -2
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +27 -5
  4. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +17 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +23 -1
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +29 -6
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +61 -4
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_sticky_header_responsive.jsx → _advanced_table_no_subrows.jsx} +4 -6
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx +1 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +1 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.jsx +60 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.md +5 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx +78 -0
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.md +1 -0
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.jsx +53 -0
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.md +1 -0
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.jsx +52 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows.md +1 -0
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data_no_subrows.json +42 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_mock_data_with_id.json +299 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +5 -1
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +5 -1
  23. data/app/pb_kits/playbook/pb_button/button.html.erb +2 -3
  24. data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +1 -6
  25. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +2 -6
  26. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.md +1 -1
  27. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.html.erb +3 -9
  28. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.md +5 -0
  29. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_rails.html.erb +38 -0
  30. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_rails.md +3 -0
  31. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -0
  32. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +7 -12
  33. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +9 -14
  34. data/app/pb_kits/playbook/pb_dropdown/dropdown_option.html.erb +6 -11
  35. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +8 -14
  36. data/app/pb_kits/playbook/pb_list/item.html.erb +30 -8
  37. data/app/pb_kits/playbook/pb_list/item.rb +7 -0
  38. data/app/pb_kits/playbook/pb_list/list.html.erb +31 -11
  39. data/app/pb_kits/playbook/pb_list/list.rb +4 -0
  40. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +30 -12
  41. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.html.erb +15 -0
  42. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.jsx +24 -0
  43. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_format.md +1 -0
  44. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +3 -1
  45. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
  46. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
  47. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +20 -1
  48. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.html.erb +17 -3
  49. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +3 -0
  50. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +11 -4
  51. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +3 -0
  52. data/app/pb_kits/playbook/pb_table/_table.tsx +2 -3
  53. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.html.erb +74 -0
  54. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_rails.md +3 -0
  55. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_rails.md +2 -2
  56. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.html.erb +74 -0
  57. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_rails.md +3 -0
  58. data/app/pb_kits/playbook/pb_table/docs/example.yml +2 -0
  59. data/app/pb_kits/playbook/pb_table/index.ts +93 -34
  60. data/app/pb_kits/playbook/pb_table/styles/_scroll.scss +6 -5
  61. data/app/pb_kits/playbook/pb_table/table.html.erb +1 -1
  62. data/app/pb_kits/playbook/pb_table/table.rb +17 -2
  63. data/app/pb_kits/playbook/pb_table/utilities/addDataTitle.ts +22 -0
  64. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +30 -30
  65. data/dist/chunks/_typeahead-D_mMNEad.js +36 -0
  66. data/dist/chunks/_weekday_stacked-CGe59pJD.js +45 -0
  67. data/dist/chunks/{lib-B7sgJtGS.js → lib-OFT985dg.js} +2 -2
  68. data/dist/chunks/{pb_form_validation-C5Cc0-1v.js → pb_form_validation-CrsXd1-Y.js} +1 -1
  69. data/dist/chunks/vendor.js +1 -1
  70. data/dist/playbook-doc.js +1 -1
  71. data/dist/playbook-rails-react-bindings.js +1 -1
  72. data/dist/playbook-rails.js +1 -1
  73. data/dist/playbook.css +1 -1
  74. data/lib/playbook/version.rb +1 -1
  75. metadata +42 -7
  76. data/dist/chunks/_typeahead-BNULwihE.js +0 -36
  77. data/dist/chunks/_weekday_stacked-BKWemDAe.js +0 -45
@@ -0,0 +1,78 @@
1
+ import React, {useState} from "react"
2
+ import { AdvancedTable, CircleIconButton, Flex } from "playbook-ui"
3
+ import MOCK_DATA from "./advanced_table_mock_data_no_subrows.json"
4
+
5
+ const AdvancedTableSelectableRowsActions = (props) => {
6
+ const columnDefinitions = [
7
+ {
8
+ accessor: "year",
9
+ label: "Year",
10
+ cellAccessors: ["quarter", "month", "day"],
11
+ },
12
+ {
13
+ accessor: "newEnrollments",
14
+ label: "New Enrollments",
15
+ },
16
+ {
17
+ accessor: "scheduledMeetings",
18
+ label: "Scheduled Meetings",
19
+ },
20
+ {
21
+ accessor: "attendanceRate",
22
+ label: "Attendance Rate",
23
+ },
24
+ {
25
+ accessor: "completedClasses",
26
+ label: "Completed Classes",
27
+ },
28
+ {
29
+ accessor: "classCompletionRate",
30
+ label: "Class Completion Rate",
31
+ },
32
+ {
33
+ accessor: "graduatedStudents",
34
+ label: "Graduated Students",
35
+ },
36
+ ]
37
+
38
+ const [selectedRows, setSelectedRows] = useState()
39
+
40
+ const CustomActions = () => {
41
+ const rowIds = selectedRows ? Object.keys(selectedRows) : [];
42
+
43
+ return (
44
+ <Flex>
45
+ <CircleIconButton
46
+ icon="file-csv"
47
+ onClick={() =>
48
+ alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be exported!`)
49
+ }
50
+ variant="link"
51
+ />
52
+ <CircleIconButton
53
+ icon="trash-alt"
54
+ onClick={() =>
55
+ alert(rowIds.length === 0 ? "No Selection Made" : `Row ids ${rowIds.join(", ")} will be deleted!`)
56
+ }
57
+ variant="link"
58
+ />
59
+ </Flex>
60
+ );
61
+ };
62
+
63
+
64
+ return (
65
+ <div>
66
+ <AdvancedTable
67
+ actions={<CustomActions/>}
68
+ columnDefinitions={columnDefinitions}
69
+ onRowSelectionChange={(selected) => setSelectedRows(selected)}
70
+ selectableRows
71
+ tableData={MOCK_DATA}
72
+ {...props}
73
+ />
74
+ </div>
75
+ )
76
+ }
77
+
78
+ export default AdvancedTableSelectableRowsActions
@@ -0,0 +1 @@
1
+ Custom actions content can be rendered within the Actions Bar as shown in this doc example. The component passed to `actions` will be rendered on the right of the actionsBar. The `onRowSelectionChange` can then be used to attach the needed click events to those actions.
@@ -0,0 +1,53 @@
1
+ import React from "react"
2
+ import { AdvancedTable } from "playbook-ui"
3
+ import MOCK_DATA from "./advanced_table_mock_data_no_subrows.json"
4
+
5
+ const AdvancedTableSelectableRowsHeader = (props) => {
6
+ const columnDefinitions = [
7
+ {
8
+ accessor: "year",
9
+ label: "Year",
10
+ cellAccessors: ["quarter", "month", "day"],
11
+ },
12
+ {
13
+ accessor: "newEnrollments",
14
+ label: "New Enrollments",
15
+ },
16
+ {
17
+ accessor: "scheduledMeetings",
18
+ label: "Scheduled Meetings",
19
+ },
20
+ {
21
+ accessor: "attendanceRate",
22
+ label: "Attendance Rate",
23
+ },
24
+ {
25
+ accessor: "completedClasses",
26
+ label: "Completed Classes",
27
+ },
28
+ {
29
+ accessor: "classCompletionRate",
30
+ label: "Class Completion Rate",
31
+ },
32
+ {
33
+ accessor: "graduatedStudents",
34
+ label: "Graduated Students",
35
+ },
36
+ ]
37
+
38
+
39
+ return (
40
+ <div>
41
+ <AdvancedTable
42
+ columnDefinitions={columnDefinitions}
43
+ onRowSelectionChange={(selectedRows) => console.log(selectedRows)}
44
+ selectableRows
45
+ showActionsBar={false}
46
+ tableData={MOCK_DATA}
47
+ {...props}
48
+ />
49
+ </div>
50
+ )
51
+ }
52
+
53
+ export default AdvancedTableSelectableRowsHeader
@@ -0,0 +1 @@
1
+ `showActionsBar` is an optional prop that renders the header at the top showing the row count. This is set to `true` by default but can be toggled off by setting it to `false`
@@ -0,0 +1,52 @@
1
+ import React from "react"
2
+ import { AdvancedTable } from "playbook-ui"
3
+ import MOCK_DATA from "./advanced_table_mock_data_no_subrows.json"
4
+
5
+ const AdvancedTableSelectableRowsNoSubrows = (props) => {
6
+ const columnDefinitions = [
7
+ {
8
+ accessor: "year",
9
+ label: "Year",
10
+ cellAccessors: ["quarter", "month", "day"],
11
+ },
12
+ {
13
+ accessor: "newEnrollments",
14
+ label: "New Enrollments",
15
+ },
16
+ {
17
+ accessor: "scheduledMeetings",
18
+ label: "Scheduled Meetings",
19
+ },
20
+ {
21
+ accessor: "attendanceRate",
22
+ label: "Attendance Rate",
23
+ },
24
+ {
25
+ accessor: "completedClasses",
26
+ label: "Completed Classes",
27
+ },
28
+ {
29
+ accessor: "classCompletionRate",
30
+ label: "Class Completion Rate",
31
+ },
32
+ {
33
+ accessor: "graduatedStudents",
34
+ label: "Graduated Students",
35
+ },
36
+ ]
37
+
38
+
39
+ return (
40
+ <div>
41
+ <AdvancedTable
42
+ columnDefinitions={columnDefinitions}
43
+ onRowSelectionChange={(selectedRows) => console.log(selectedRows)}
44
+ selectableRows
45
+ tableData={MOCK_DATA}
46
+ {...props}
47
+ />
48
+ </div>
49
+ )
50
+ }
51
+
52
+ export default AdvancedTableSelectableRowsNoSubrows
@@ -0,0 +1 @@
1
+ `selectableRows` can also be used with tables without nested row data.
@@ -0,0 +1,42 @@
1
+ [
2
+ {
3
+ "year": "2021",
4
+ "id": "1",
5
+ "newEnrollments": "20",
6
+ "scheduledMeetings": "10",
7
+ "attendanceRate": "51%",
8
+ "completedClasses": "3",
9
+ "classCompletionRate": "33%",
10
+ "graduatedStudents": "19"
11
+ },
12
+ {
13
+ "year": "2022",
14
+ "id": "8",
15
+ "newEnrollments": "25",
16
+ "scheduledMeetings": "17",
17
+ "attendanceRate": "75%",
18
+ "completedClasses": "5",
19
+ "classCompletionRate": "45%",
20
+ "graduatedStudents": "32"
21
+ },
22
+ {
23
+ "year": "2023",
24
+ "id": "15",
25
+ "newEnrollments": "10",
26
+ "scheduledMeetings": "15",
27
+ "attendanceRate": "65%",
28
+ "completedClasses": "4",
29
+ "classCompletionRate": "49%",
30
+ "graduatedStudents": "29"
31
+ },
32
+ {
33
+ "year": "2024",
34
+ "id": "14",
35
+ "newEnrollments": "15",
36
+ "scheduledMeetings": "34",
37
+ "attendanceRate": "32%",
38
+ "completedClasses": "6",
39
+ "classCompletionRate": "67%",
40
+ "graduatedStudents": "65"
41
+ }
42
+ ]
@@ -0,0 +1,299 @@
1
+ [
2
+ {
3
+ "year": "2021",
4
+ "id": "1",
5
+ "quarter": null,
6
+ "month": null,
7
+ "day": null,
8
+ "newEnrollments": "20",
9
+ "scheduledMeetings": "10",
10
+ "attendanceRate": "51%",
11
+ "completedClasses": "3",
12
+ "classCompletionRate": "33%",
13
+ "graduatedStudents": "19",
14
+ "children": [
15
+ {
16
+ "year": "2021",
17
+ "id": "2",
18
+ "quarter": "Q1",
19
+ "month": null,
20
+ "day": null,
21
+ "newEnrollments": "2",
22
+ "scheduledMeetings": "35",
23
+ "attendanceRate": "32%",
24
+ "completedClasses": "15",
25
+ "classCompletionRate": "52%",
26
+ "graduatedStudents": "36",
27
+ "children": [
28
+ {
29
+ "year": "2021",
30
+ "id": "3",
31
+ "quarter": "Q1",
32
+ "month": "January",
33
+ "day": null,
34
+ "newEnrollments": "16",
35
+ "scheduledMeetings": "20",
36
+ "attendanceRate": "11%",
37
+ "completedClasses": "13",
38
+ "classCompletionRate": "47%",
39
+ "graduatedStudents": "28",
40
+ "children": [
41
+ {
42
+ "year": "2021",
43
+ "id": "4",
44
+ "quarter": "Q1",
45
+ "month": "January",
46
+ "day": "10",
47
+ "newEnrollments": "34",
48
+ "scheduledMeetings": "28",
49
+ "attendanceRate": "97%",
50
+ "completedClasses": "20",
51
+ "classCompletionRate": "15%",
52
+ "graduatedStudents": "17"
53
+ },
54
+ {
55
+ "year": "2021",
56
+ "id": "5",
57
+ "quarter": "Q1",
58
+ "month": "January",
59
+ "day": "20",
60
+ "newEnrollments": "43",
61
+ "scheduledMeetings": "23",
62
+ "attendanceRate": "66%",
63
+ "completedClasses": "26",
64
+ "classCompletionRate": "47%",
65
+ "graduatedStudents": "9"
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "year": "2021",
71
+ "id": "6",
72
+ "quarter": "Q1",
73
+ "month": "February",
74
+ "day": null,
75
+ "newEnrollments": "20",
76
+ "scheduledMeetings": "41",
77
+ "attendanceRate": "95%",
78
+ "completedClasses": "26",
79
+ "classCompletionRate": "83%",
80
+ "graduatedStudents": "43",
81
+ "children": [
82
+ {
83
+ "year": "2021",
84
+ "id": "7",
85
+ "quarter": "Q1",
86
+ "month": "February",
87
+ "day": "15",
88
+ "newEnrollments": "19",
89
+ "scheduledMeetings": "35",
90
+ "attendanceRate": "69%",
91
+ "completedClasses": "8",
92
+ "classCompletionRate": "75%",
93
+ "graduatedStudents": "23"
94
+ }
95
+ ]
96
+ }
97
+ ]
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ "year": "2022",
103
+ "id": "8",
104
+ "quarter": null,
105
+ "month": null,
106
+ "day": null,
107
+ "newEnrollments": "25",
108
+ "scheduledMeetings": "17",
109
+ "attendanceRate": "75%",
110
+ "completedClasses": "5",
111
+ "classCompletionRate": "45%",
112
+ "graduatedStudents": "32",
113
+ "children": [
114
+ {
115
+ "year": "2022",
116
+ "id": "9",
117
+ "quarter": "Q1",
118
+ "month": null,
119
+ "day": null,
120
+ "newEnrollments": "2",
121
+ "scheduledMeetings": "35",
122
+ "attendanceRate": "32%",
123
+ "completedClasses": "15",
124
+ "classCompletionRate": "52%",
125
+ "graduatedStudents": "36",
126
+ "children": [
127
+ {
128
+ "year": "2022",
129
+ "id": "10",
130
+ "quarter": "Q1",
131
+ "month": "January",
132
+ "day": null,
133
+ "newEnrollments": "16",
134
+ "scheduledMeetings": "20",
135
+ "attendanceRate": "11%",
136
+ "completedClasses": "13",
137
+ "classCompletionRate": "47%",
138
+ "graduatedStudents": "28",
139
+ "children": [
140
+ {
141
+ "year": "2022",
142
+ "id": "11",
143
+ "quarter": "Q1",
144
+ "month": "January",
145
+ "day": "15",
146
+ "newEnrollments": "34",
147
+ "scheduledMeetings": "28",
148
+ "attendanceRate": "97%",
149
+ "completedClasses": "20",
150
+ "classCompletionRate": "15%",
151
+ "graduatedStudents": "17"
152
+ },
153
+ {
154
+ "year": "2022",
155
+ "id": "12",
156
+ "quarter": "Q1",
157
+ "month": "January",
158
+ "day": "25",
159
+ "newEnrollments": "43",
160
+ "scheduledMeetings": "23",
161
+ "attendanceRate": "66%",
162
+ "completedClasses": "26",
163
+ "classCompletionRate": "47%",
164
+ "graduatedStudents": "9"
165
+ }
166
+ ]
167
+ },
168
+ {
169
+ "year": "2022",
170
+ "id": "13",
171
+ "quarter": "Q1",
172
+ "month": "May",
173
+ "day": null,
174
+ "newEnrollments": "20",
175
+ "scheduledMeetings": "41",
176
+ "attendanceRate": "95%",
177
+ "completedClasses": "26",
178
+ "classCompletionRate": "83%",
179
+ "graduatedStudents": "43",
180
+ "children": [
181
+ {
182
+ "year": "2022",
183
+ "id": "14",
184
+ "quarter": "Q1",
185
+ "month": "May",
186
+ "day": "2",
187
+ "newEnrollments": "19",
188
+ "scheduledMeetings": "35",
189
+ "attendanceRate": "69%",
190
+ "completedClasses": "8",
191
+ "classCompletionRate": "75%",
192
+ "graduatedStudents": "23"
193
+ }
194
+ ]
195
+ }
196
+ ]
197
+ }
198
+ ]
199
+ },
200
+ {
201
+ "year": "2023",
202
+ "id": "15",
203
+ "quarter": null,
204
+ "month": null,
205
+ "day": null,
206
+ "newEnrollments": "10",
207
+ "scheduledMeetings": "15",
208
+ "attendanceRate": "65%",
209
+ "completedClasses": "4",
210
+ "classCompletionRate": "49%",
211
+ "graduatedStudents": "29",
212
+ "children": [
213
+ {
214
+ "year": "2023",
215
+ "id": "16",
216
+ "quarter": "Q1",
217
+ "month": null,
218
+ "day": null,
219
+ "newEnrollments": "2",
220
+ "scheduledMeetings": "35",
221
+ "attendanceRate": "32%",
222
+ "completedClasses": "15",
223
+ "classCompletionRate": "52%",
224
+ "graduatedStudents": "36",
225
+ "children": [
226
+ {
227
+ "year": "2023",
228
+ "id": "17",
229
+ "quarter": "Q1",
230
+ "month": "March",
231
+ "day": null,
232
+ "newEnrollments": "16",
233
+ "scheduledMeetings": "20",
234
+ "attendanceRate": "11%",
235
+ "completedClasses": "13",
236
+ "classCompletionRate": "47%",
237
+ "graduatedStudents": "28",
238
+ "children": [
239
+ {
240
+ "year": "2023",
241
+ "id": "18",
242
+ "quarter": "Q1",
243
+ "month": "March",
244
+ "day": "10",
245
+ "newEnrollments": "34",
246
+ "scheduledMeetings": "28",
247
+ "attendanceRate": "97%",
248
+ "completedClasses": "20",
249
+ "classCompletionRate": "15%",
250
+ "graduatedStudents": "17"
251
+ },
252
+ {
253
+ "year": "2023",
254
+ "id": "19",
255
+ "quarter": "Q1",
256
+ "month": "March",
257
+ "day": "11",
258
+ "newEnrollments": "43",
259
+ "scheduledMeetings": "23",
260
+ "attendanceRate": "66%",
261
+ "completedClasses": "26",
262
+ "classCompletionRate": "47%",
263
+ "graduatedStudents": "9"
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ "year": "2023",
269
+ "id": "20",
270
+ "quarter": "Q1",
271
+ "month": "April",
272
+ "day": null,
273
+ "newEnrollments": "20",
274
+ "scheduledMeetings": "41",
275
+ "attendanceRate": "95%",
276
+ "completedClasses": "26",
277
+ "classCompletionRate": "83%",
278
+ "graduatedStudents": "43",
279
+ "children": [
280
+ {
281
+ "year": "2023",
282
+ "id": "21",
283
+ "quarter": "Q1",
284
+ "month": "April",
285
+ "day": "15",
286
+ "newEnrollments": "19",
287
+ "scheduledMeetings": "35",
288
+ "attendanceRate": "69%",
289
+ "completedClasses": "8",
290
+ "classCompletionRate": "75%",
291
+ "graduatedStudents": "23"
292
+ }
293
+ ]
294
+ }
295
+ ]
296
+ }
297
+ ]
298
+ }
299
+ ]
@@ -22,9 +22,13 @@ examples:
22
22
  - advanced_table_table_props: Table Props
23
23
  - advanced_table_inline_row_loading: Inline Row Loading
24
24
  - advanced_table_responsive: Responsive Tables
25
- - advanced_table_sticky_header_responsive: Sticky Header and Responsive
26
25
  - advanced_table_custom_cell: Custom Components for Cells
27
26
  - advanced_table_pagination: Pagination
28
27
  - advanced_table_pagination_with_props: Pagination Props
29
28
  - advanced_table_column_headers: Multi-Header Columns
30
29
  - advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
30
+ # - advanced_table_no_subrows: Table with No Subrows
31
+ - advanced_table_selectable_rows: Selectable Rows
32
+ - advanced_table_selectable_rows_no_subrows: Selectable Rows (No Subrows)
33
+ - advanced_table_selectable_rows_actions: Selectable Rows (With Actions)
34
+ - advanced_table_selectable_rows_header: Selectable Rows (No Actions Bar)
@@ -14,4 +14,8 @@ export { default as AdvancedTablePagination } from './_advanced_table_pagination
14
14
  export { default as AdvancedTablePaginationWithProps } from './_advanced_table_pagination_with_props.jsx'
15
15
  export { default as AdvancedTableColumnHeaders } from './_advanced_table_column_headers.jsx'
16
16
  export { default as AdvancedTableColumnHeadersMultiple } from './_advanced_table_column_headers_multiple.jsx'
17
- export { default as AdvancedTableStickyHeaderResponsive } from './_advanced_table_sticky_header_responsive.jsx'
17
+ export { default as AdvancedTableSelectableRows } from './_advanced_table_selectable_rows.jsx'
18
+ export { default as AdvancedTableSelectableRowsNoSubrows } from './_advanced_table_selectable_rows_no_subrows.jsx'
19
+ export { default as AdvancedTableNoSubrows } from './_advanced_table_no_subrows.jsx'
20
+ export { default as AdvancedTableSelectableRowsHeader } from './_advanced_table_selectable_rows_header.jsx'
21
+ export { default as AdvancedTableSelectableRowsActions } from './_advanced_table_selectable_rows_actions.jsx'
@@ -1,6 +1,5 @@
1
- <%= content_tag(object.tag,
2
- object.tag == "button" ? object.options : object.link_options,
3
- **combined_html_options) do %>
1
+ <%= pb_content_tag(object.tag,
2
+ object.tag == "button" ? object.options : object.link_options) do %>
4
3
  <% if object.variant === "reaction" %>
5
4
  <% if icon && object.valid_emoji(object.icon) %>
6
5
  <%= pb_rails("flex", props:{ align: "center" }) do %>
@@ -1,9 +1,4 @@
1
- <%= content_tag(:label, aria: object.aria,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options
6
- ) do %>
1
+ <%= pb_content_tag(:label) do %>
7
2
  <%= content.presence || object.input %>
8
3
  <% if object.indeterminate %>
9
4
  <span data-pb-checkbox-icon-span="true" class="pb_checkbox_indeterminate">
@@ -1,9 +1,5 @@
1
- <%= content_tag(:div,
2
- aria: object.aria,
3
- class: object.classname + object.error_class,
4
- data: object.data,
5
- id: object.id,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag(:div,
2
+ class: object.classname + object.error_class) do %>
7
3
  <div class="input_wrapper">
8
4
  <% if content.present? %>
9
5
  <%= content %>
@@ -2,4 +2,4 @@ The `defaultDate`/`default_date` prop has a null or empty string value by defaul
2
2
 
3
3
  If you use a Date object without UTC time standardization the Date Picker kit may misinterpret that date as yesterdays date (consequence of timezone differentials and the Javascript Date Object constructor). See [this GitHub issue for more information](https://github.com/powerhome/playbook/issues/1167) and the anti-pattern examples below.
4
4
 
5
-
5
+ You can leverage the `defaultDate`/`default_date` prop with custom logic in your filter or controller files where the determination of the default value changes based on user interaction. The page can load with an initial default date picker value or placeholder text, then after filter submission save the submitted values as the "new default" (via state or params).
@@ -6,14 +6,8 @@
6
6
 
7
7
  ] %>
8
8
 
9
- <%= pb_rails("draggable", props: {initial_items: initial_items}) do %>
10
- <%= pb_rails("draggable/draggable_container") do %>
11
- <%= pb_rails("list", props: {ordered: false}) do %>
12
- <% initial_items.each do |item| %>
13
- <%= pb_rails("draggable/draggable_item", props:{drag_id: item[:id]}) do %>
14
- <%= pb_rails("list/item") do %><%= item[:name] %><% end %>
15
- <% end %>
16
- <% end %>
17
- <% end %>
9
+ <%= pb_rails("list", props: { enable_drag: true, items: initial_items }) do %>
10
+ <% initial_items.each do |item| %>
11
+ <%= pb_rails("list/item", props:{drag_id: item[:id]}) do %><%= item[:name] %><% end %>
18
12
  <% end %>
19
13
  <% end %>
@@ -0,0 +1,5 @@
1
+ For a simplified version of the Draggable API for the List kit, you can do the following:
2
+
3
+ The List kit is optimized to work with the draggable kit. To enable drag, use the `enable_drag` prop on List kit with an array of the included items AND `drag_id` prop on ListItems. You will also need to include the `items` prop containing your array of listed items for the Draggable API.
4
+
5
+ An additional optional boolean prop (set to true by default) of `drag_handle` is also available on ListItem kit to show the drag handle icon.
@@ -0,0 +1,38 @@
1
+ <%= pb_rails("selectable_list",
2
+ props: {
3
+ enable_drag: true,
4
+ variant: "radio",
5
+ items: [
6
+ { drag_id: "41",
7
+ text: "Task 1",
8
+ input_options: {
9
+ value: "1",
10
+ name: "radio-name",
11
+ }
12
+ },
13
+ { drag_id: "42",
14
+ text: "Task 2",
15
+ checked: true,
16
+ input_options: {
17
+ value: "2",
18
+ name: "radio-name",
19
+ }
20
+ },
21
+ { drag_id: "43",
22
+ text: "Task 3",
23
+ input_options: {
24
+ value: "3",
25
+ name: "radio-name",
26
+ }
27
+ },
28
+ { drag_id: "44",
29
+ text: "Task 4",
30
+ input_options: {
31
+ value: "4",
32
+ name: "radio-name",
33
+ }
34
+ }
35
+ ]
36
+ }
37
+ )
38
+ %>
@@ -0,0 +1,3 @@
1
+ For a simplified version of the Draggable API for the SelectableList kit, you can do the following:
2
+
3
+ The SelectableList kit is optimized to work with the draggable kit. To enable drag, use the `enable_drag` prop on SelectableList kit AND `drag_id` prop within the SelectableList kit prop. An additional optional boolean prop (set to true by default) of `drag_handle` is also available on SelectableList kit to show the drag handle icon.