playbook_ui_docs 14.10.0.pre.alpha.PBNTR775formmatingmaskdefaultvalue5137 → 14.10.0.pre.alpha.play1465attempt25272
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers.html.erb +43 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers.jsx +60 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.html.erb +58 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.jsx +74 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +6 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +18 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_header.jsx +40 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +8 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.jsx +9 -0
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.md +1 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.html.erb +10 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +42 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.md +3 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_section_separator/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius.html.erb +9 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_border_radius_rails.md +1 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_color.html.erb +7 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_filter.html.erb +119 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_filter.jsx +10 -2
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.html.erb +15 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.jsx +6 -2
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width_rails.md +3 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_layout.html.erb +3 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_user.html.erb +63 -0
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_user.jsx +11 -3
- data/app/pb_kits/playbook/pb_skeleton_loading/docs/example.yml +7 -2
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns.jsx +88 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_columns_react.md +3 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_rails.md +2 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_react.md +4 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns.jsx +87 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_sticky_right_columns_react.md +5 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx +2 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +4 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.jsx +5 -5
- data/dist/playbook-doc.js +1 -1
- metadata +27 -4
- /data/app/pb_kits/playbook/pb_skeleton_loading/docs/{_skeleton_loading_border_radius.md → _skeleton_loading_border_radius_react.md} +0 -0
- /data/app/pb_kits/playbook/pb_skeleton_loading/docs/{_skeleton_loading_height_width.md → _skeleton_loading_height_width_react.md} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b7fecce4978cd084fbb5b38e490ff59e2bb2cae9e4ad3c31df947795a7c77fe
|
4
|
+
data.tar.gz: 291b7a3dc26c0e6d21f7a34b7fe0c419c8e5cc6a4bf225373b504e60a9a8841e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eba273c321e515386c948aae00fbde3b17c31fa5f038cfd2627d1c234efb26d4dda9ed5dc0b67d29c06e11497da24eda490d15f060f1419d5c09d3304117002c
|
7
|
+
data.tar.gz: 70eab09d4b00d5479800fb7709d1273e6744e0d5ab3f8d327a86fed2b381b1585f3cc7e00e90337dc3de32b11f7205e3417a78e81230d6bc23df09aa07ace9dd
|
@@ -49,11 +49,9 @@
|
|
49
49
|
label: "Graduated Students",
|
50
50
|
}
|
51
51
|
]
|
52
|
-
|
53
|
-
subrow_headers = ["Quarter", "Month", "Day"]
|
54
52
|
%>
|
55
53
|
|
56
54
|
<%= pb_rails("advanced_table", props: { table_data: @table_data, column_definitions: column_definitions }) do %>
|
57
55
|
<%= pb_rails("advanced_table/table_header", props: { column_definitions: column_definitions }) %>
|
58
|
-
<%= pb_rails("advanced_table/table_body", props: { id: "beta_sort", table_data: @table_data, column_definitions: column_definitions,
|
56
|
+
<%= pb_rails("advanced_table/table_body", props: { id: "beta_sort", table_data: @table_data, column_definitions: column_definitions, enable_toggle_expansion: "all" }) %>
|
59
57
|
<% end %>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<% column_definitions = [
|
2
|
+
{
|
3
|
+
accessor: "year",
|
4
|
+
label: "Year",
|
5
|
+
cellAccessors: ["quarter", "month", "day"],
|
6
|
+
},
|
7
|
+
{
|
8
|
+
label: "Enrollment Data",
|
9
|
+
columns: [
|
10
|
+
{
|
11
|
+
accessor: "newEnrollments",
|
12
|
+
label: "New Enrollments",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
accessor: "scheduledMeetings",
|
16
|
+
label: "Scheduled Meetings",
|
17
|
+
},
|
18
|
+
],
|
19
|
+
},
|
20
|
+
{
|
21
|
+
label: "Performance Data",
|
22
|
+
columns: [
|
23
|
+
{
|
24
|
+
accessor: "attendanceRate",
|
25
|
+
label: "Attendance Rate",
|
26
|
+
},
|
27
|
+
{
|
28
|
+
accessor: "completedClasses",
|
29
|
+
label: "Completed Classes",
|
30
|
+
},
|
31
|
+
{
|
32
|
+
accessor: "classCompletionRate",
|
33
|
+
label: "Class Completion Rate",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
accessor: "graduatedStudents",
|
37
|
+
label: "Graduated Students",
|
38
|
+
},
|
39
|
+
],
|
40
|
+
},
|
41
|
+
] %>
|
42
|
+
|
43
|
+
<%= pb_rails("advanced_table", props: { id: "beta_table_with_headers", table_data: @table_data, column_definitions: column_definitions }) %>
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "playbook-ui"
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data.json"
|
4
|
+
|
5
|
+
const AdvancedTableColumnHeaders = (props) => {
|
6
|
+
const columnDefinitions = [
|
7
|
+
{
|
8
|
+
accessor: "year",
|
9
|
+
label: "Year",
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
label: "Enrollment Data",
|
14
|
+
columns: [
|
15
|
+
{
|
16
|
+
accessor: "newEnrollments",
|
17
|
+
label: "New Enrollments",
|
18
|
+
},
|
19
|
+
{
|
20
|
+
accessor: "scheduledMeetings",
|
21
|
+
label: "Scheduled Meetings",
|
22
|
+
},
|
23
|
+
],
|
24
|
+
},
|
25
|
+
{
|
26
|
+
label: "Performance Data",
|
27
|
+
columns: [
|
28
|
+
{
|
29
|
+
accessor: "attendanceRate",
|
30
|
+
label: "Attendance Rate",
|
31
|
+
},
|
32
|
+
{
|
33
|
+
accessor: "completedClasses",
|
34
|
+
label: "Completed Classes",
|
35
|
+
},
|
36
|
+
{
|
37
|
+
accessor: "classCompletionRate",
|
38
|
+
label: "Class Completion Rate",
|
39
|
+
},
|
40
|
+
{
|
41
|
+
accessor: "graduatedStudents",
|
42
|
+
label: "Graduated Students",
|
43
|
+
},
|
44
|
+
],
|
45
|
+
},
|
46
|
+
];
|
47
|
+
|
48
|
+
|
49
|
+
return (
|
50
|
+
<>
|
51
|
+
<AdvancedTable
|
52
|
+
columnDefinitions={columnDefinitions}
|
53
|
+
tableData={MOCK_DATA}
|
54
|
+
{...props}
|
55
|
+
/>
|
56
|
+
</>
|
57
|
+
)
|
58
|
+
}
|
59
|
+
|
60
|
+
export default AdvancedTableColumnHeaders
|
@@ -0,0 +1 @@
|
|
1
|
+
Use a nested `columns` array in your columnDefinitions to create multiple header rows. Any column with `columns` is treated as a grouped header, and its child columns are displayed beneath it.
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.html.erb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
<% column_definitions = [
|
2
|
+
{
|
3
|
+
accessor: "year",
|
4
|
+
label: "Year",
|
5
|
+
cellAccessors: ["quarter", "month", "day"],
|
6
|
+
},
|
7
|
+
{
|
8
|
+
label: "Enrollment Data",
|
9
|
+
columns: [
|
10
|
+
{
|
11
|
+
label: "Enrollment Stats",
|
12
|
+
columns: [
|
13
|
+
{
|
14
|
+
accessor: "newEnrollments",
|
15
|
+
label: "New Enrollments",
|
16
|
+
},
|
17
|
+
{
|
18
|
+
accessor: "scheduledMeetings",
|
19
|
+
label: "Scheduled Meetings",
|
20
|
+
},
|
21
|
+
],
|
22
|
+
},
|
23
|
+
],
|
24
|
+
},
|
25
|
+
{
|
26
|
+
label: "Performance Data",
|
27
|
+
columns: [
|
28
|
+
{
|
29
|
+
label: "Completion Metrics",
|
30
|
+
columns: [
|
31
|
+
{
|
32
|
+
accessor: "completedClasses",
|
33
|
+
label: "Completed Classes",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
accessor: "classCompletionRate",
|
37
|
+
label: "Class Completion Rate",
|
38
|
+
},
|
39
|
+
],
|
40
|
+
},
|
41
|
+
{
|
42
|
+
label: "Attendance",
|
43
|
+
columns: [
|
44
|
+
{
|
45
|
+
accessor: "attendanceRate",
|
46
|
+
label: "Attendance Rate",
|
47
|
+
},
|
48
|
+
{
|
49
|
+
accessor: "scheduledMeetings",
|
50
|
+
label: "Scheduled Meetings",
|
51
|
+
},
|
52
|
+
],
|
53
|
+
},
|
54
|
+
],
|
55
|
+
},
|
56
|
+
] %>
|
57
|
+
|
58
|
+
<%= pb_rails("advanced_table", props: { id: "beta_table_with_muilti_headers", table_data: @table_data, column_definitions: column_definitions }) %>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { AdvancedTable } from "playbook-ui";
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data.json";
|
4
|
+
|
5
|
+
const AdvancedTableColumnHeadersMultiple = (props) => {
|
6
|
+
const columnDefinitions = [
|
7
|
+
{
|
8
|
+
accessor: "year",
|
9
|
+
label: "Year",
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
11
|
+
},
|
12
|
+
{
|
13
|
+
label: "Enrollment Data",
|
14
|
+
columns: [
|
15
|
+
{
|
16
|
+
label: "Enrollment Stats",
|
17
|
+
columns: [
|
18
|
+
{
|
19
|
+
accessor: "newEnrollments",
|
20
|
+
label: "New Enrollments",
|
21
|
+
},
|
22
|
+
{
|
23
|
+
accessor: "scheduledMeetings",
|
24
|
+
label: "Scheduled Meetings",
|
25
|
+
},
|
26
|
+
],
|
27
|
+
},
|
28
|
+
],
|
29
|
+
},
|
30
|
+
{
|
31
|
+
label: "Performance Data",
|
32
|
+
columns: [
|
33
|
+
{
|
34
|
+
label: "Completion Metrics",
|
35
|
+
columns: [
|
36
|
+
{
|
37
|
+
accessor: "completedClasses",
|
38
|
+
label: "Completed Classes",
|
39
|
+
},
|
40
|
+
{
|
41
|
+
accessor: "classCompletionRate",
|
42
|
+
label: "Class Completion Rate",
|
43
|
+
},
|
44
|
+
],
|
45
|
+
},
|
46
|
+
{
|
47
|
+
label: "Attendance",
|
48
|
+
columns: [
|
49
|
+
{
|
50
|
+
accessor: "attendanceRate",
|
51
|
+
label: "Attendance Rate",
|
52
|
+
},
|
53
|
+
{
|
54
|
+
accessor: "scheduledMeetings",
|
55
|
+
label: "Scheduled Meetings",
|
56
|
+
},
|
57
|
+
],
|
58
|
+
},
|
59
|
+
],
|
60
|
+
},
|
61
|
+
];
|
62
|
+
|
63
|
+
return (
|
64
|
+
<>
|
65
|
+
<AdvancedTable
|
66
|
+
columnDefinitions={columnDefinitions}
|
67
|
+
tableData={MOCK_DATA}
|
68
|
+
{...props}
|
69
|
+
/>
|
70
|
+
</>
|
71
|
+
);
|
72
|
+
};
|
73
|
+
|
74
|
+
export default AdvancedTableColumnHeadersMultiple;
|
@@ -0,0 +1 @@
|
|
1
|
+
Multiple levels of column headers can also be rendered as seen here.
|
@@ -1,10 +1,13 @@
|
|
1
1
|
examples:
|
2
2
|
rails:
|
3
3
|
- advanced_table_beta: Default (Required Props)
|
4
|
-
- advanced_table_beta_subrow_headers: SubRow Headers
|
4
|
+
# - advanced_table_beta_subrow_headers: SubRow Headers
|
5
5
|
- advanced_table_collapsible_trail_rails: Collapsible Trail
|
6
6
|
- advanced_table_beta_sort: Enable Sorting
|
7
7
|
- advanced_table_custom_cell_rails: Custom Components for Cells
|
8
|
+
- advanced_table_column_headers: Multi-Header Columns
|
9
|
+
- advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
|
10
|
+
|
8
11
|
|
9
12
|
react:
|
10
13
|
- advanced_table_default: Default (Required Props)
|
@@ -21,3 +24,5 @@ examples:
|
|
21
24
|
- advanced_table_custom_cell: Custom Components for Cells
|
22
25
|
- advanced_table_pagination: Pagination
|
23
26
|
- advanced_table_pagination_with_props: Pagination Props
|
27
|
+
- advanced_table_column_headers: Multi-Header Columns
|
28
|
+
- advanced_table_column_headers_multiple: Multi-Header Columns (Multiple Levels)
|
@@ -12,3 +12,5 @@ export { default as AdvancedTableResponsive } from './_advanced_table_responsive
|
|
12
12
|
export { default as AdvancedTableCustomCell } from './_advanced_table_custom_cell.jsx'
|
13
13
|
export { default as AdvancedTablePagination } from './_advanced_table_pagination.jsx'
|
14
14
|
export { default as AdvancedTablePaginationWithProps } from './_advanced_table_pagination_with_props.jsx'
|
15
|
+
export { default as AdvancedTableColumnHeaders } from './_advanced_table_column_headers.jsx'
|
16
|
+
export { default as AdvancedTableColumnHeadersMultiple } from './_advanced_table_column_headers_multiple.jsx'
|
@@ -88,3 +88,21 @@
|
|
88
88
|
Body
|
89
89
|
<% end %>
|
90
90
|
<% end %>
|
91
|
+
|
92
|
+
<%= pb_rails("card", props: { padding: "none", header: true, margin_bottom: "sm"}) do %>
|
93
|
+
<%= pb_rails("card/card_header", props: { padding: "sm", header_color: "success_subtle" }) do %>
|
94
|
+
<%= pb_rails("body", props: { text: "Success Subtle" }) %>
|
95
|
+
<% end %>
|
96
|
+
<%= pb_rails("card/card_body", props: { padding: "md" }) do %>
|
97
|
+
Body
|
98
|
+
<% end %>
|
99
|
+
<% end %>
|
100
|
+
|
101
|
+
<%= pb_rails("card", props: { padding: "none", header: true, margin_bottom: "sm"}) do %>
|
102
|
+
<%= pb_rails("card/card_header", props: { padding: "sm", header_color: "error_subtle" }) do %>
|
103
|
+
<%= pb_rails("body", props: { text: "Error Subtle"}) %>
|
104
|
+
<% end %>
|
105
|
+
<%= pb_rails("card/card_body", props: { padding: "md" }) do %>
|
106
|
+
Body
|
107
|
+
<% end %>
|
108
|
+
<% end %>
|
@@ -231,6 +231,46 @@ const CardHeader = (props) => {
|
|
231
231
|
/>
|
232
232
|
</Card.Body>
|
233
233
|
</Card>
|
234
|
+
|
235
|
+
<Card
|
236
|
+
{...props}
|
237
|
+
marginBottom='sm'
|
238
|
+
padding="none"
|
239
|
+
>
|
240
|
+
<Card.Header
|
241
|
+
headerColor="success_subtle"
|
242
|
+
>
|
243
|
+
<Body
|
244
|
+
text="Success Subtle"
|
245
|
+
/>
|
246
|
+
</Card.Header>
|
247
|
+
<Card.Body>
|
248
|
+
<Body
|
249
|
+
{...props}
|
250
|
+
text="Body"
|
251
|
+
/>
|
252
|
+
</Card.Body>
|
253
|
+
</Card>
|
254
|
+
|
255
|
+
<Card
|
256
|
+
{...props}
|
257
|
+
marginBottom='sm'
|
258
|
+
padding="none"
|
259
|
+
>
|
260
|
+
<Card.Header
|
261
|
+
headerColor="error_subtle"
|
262
|
+
>
|
263
|
+
<Body
|
264
|
+
text="Error Subtle"
|
265
|
+
/>
|
266
|
+
</Card.Header>
|
267
|
+
<Card.Body>
|
268
|
+
<Body
|
269
|
+
{...props}
|
270
|
+
text="Body"
|
271
|
+
/>
|
272
|
+
</Card.Body>
|
273
|
+
</Card>
|
234
274
|
</>
|
235
275
|
)
|
236
276
|
}
|
@@ -10,3 +10,11 @@
|
|
10
10
|
link: "https://google.com",
|
11
11
|
new_window: true
|
12
12
|
}) %>
|
13
|
+
<br/>
|
14
|
+
<%= pb_rails("circle_icon_button", props: {
|
15
|
+
icon: "info",
|
16
|
+
variant: "secondary",
|
17
|
+
aria: { label: "Link to Playbook in new window" },
|
18
|
+
link: "https://playbook.powerapp.cloud/",
|
19
|
+
target: "child"
|
20
|
+
}) %>
|
@@ -21,6 +21,15 @@ const CircleIconButtonLink = (props) => (
|
|
21
21
|
{...props}
|
22
22
|
/>
|
23
23
|
|
24
|
+
<br/>
|
25
|
+
|
26
|
+
<CircleIconButton
|
27
|
+
aria={{ label: "Link to Playbook in new window" }}
|
28
|
+
icon="info"
|
29
|
+
link="https://playbook.powerapp.cloud/"
|
30
|
+
target="child"
|
31
|
+
variant="secondary"
|
32
|
+
/>
|
24
33
|
</div>
|
25
34
|
)
|
26
35
|
|
@@ -0,0 +1 @@
|
|
1
|
+
The `link` prop accepts a string that is used as an href value and causes the button to act as a link. The default behavior of a link is to open in the current window. You can optionally alter the link behavior by adding the `newWindow` prop (boolean), which will open the link in a new window, or by calling the `target` prop, which accepts `_self`, `_blank`, `_parent`, `_top`, `child`, or any string, allowing you to specify any link target.
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<%= pb_rails("section_separator", props: { text: "Default Separator" }) %>
|
2
|
+
<%= pb_rails("section_separator", props: { color: "primary", text: "Primary Separator" }) %>
|
3
|
+
<%= pb_rails("section_separator", props: { color: "primary", line_style: "dashed", text: "Primary Dashed Separator" }) %>
|
4
|
+
<%= pb_rails("section_separator", props: { color: "primary" }) do %>
|
5
|
+
<%= pb_rails("flex", props: { padding: "xs" }) do %>
|
6
|
+
<%= pb_rails("icon", props: { color: "primary", icon: "arrow-down" }) %>
|
7
|
+
<%= pb_rails("detail", props: { text: "Children", size: "sm", color: "link" }) %>
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
10
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { SectionSeparator, Flex, Detail, Icon } from "playbook-ui"
|
3
|
+
|
4
|
+
const children = (
|
5
|
+
<Flex padding="xs">
|
6
|
+
<Icon color="primary"
|
7
|
+
icon="arrow-down"
|
8
|
+
/>
|
9
|
+
<Detail
|
10
|
+
color="link"
|
11
|
+
size="sm"
|
12
|
+
text="Children"
|
13
|
+
/>
|
14
|
+
</Flex>
|
15
|
+
)
|
16
|
+
|
17
|
+
const SectionSeparatorColor = (props) => {
|
18
|
+
return (
|
19
|
+
<div>
|
20
|
+
<SectionSeparator text="Default Separator"
|
21
|
+
{...props}
|
22
|
+
/>
|
23
|
+
<SectionSeparator color="primary"
|
24
|
+
text="Primary Separator"
|
25
|
+
{...props}
|
26
|
+
/>
|
27
|
+
<SectionSeparator
|
28
|
+
color="primary"
|
29
|
+
lineStyle="dashed"
|
30
|
+
text="Primary Dashed Separator"
|
31
|
+
{...props}
|
32
|
+
/>
|
33
|
+
<SectionSeparator color="primary"
|
34
|
+
{...props}
|
35
|
+
>
|
36
|
+
{children}
|
37
|
+
</SectionSeparator>
|
38
|
+
</div>
|
39
|
+
)
|
40
|
+
}
|
41
|
+
|
42
|
+
export default SectionSeparatorColor
|
@@ -0,0 +1,3 @@
|
|
1
|
+
Pass "primary" to the `color` prop to change any section separator color.
|
2
|
+
|
3
|
+
**NOTE:** Passing `children` overrides any content provided via the `text` prop. The `color` prop does not affect the `text` prop's color, and the color of `children` is determined by the children's individual props. For greater control over text color customization, consider using a separator with `children`.
|
@@ -6,6 +6,7 @@ examples:
|
|
6
6
|
- section_separator_text: Text Separator
|
7
7
|
- section_separator_vertical: Vertical
|
8
8
|
- section_separator_children: Children
|
9
|
+
- section_separator_color: Color
|
9
10
|
|
10
11
|
react:
|
11
12
|
- section_separator_line: Line Separator
|
@@ -13,6 +14,7 @@ examples:
|
|
13
14
|
- section_separator_text: Text Separator
|
14
15
|
- section_separator_vertical: Vertical
|
15
16
|
- section_separator_children: Children
|
17
|
+
- section_separator_color: Color
|
16
18
|
|
17
19
|
swift:
|
18
20
|
- section_separator_line_swift: Line Separator
|
@@ -3,3 +3,4 @@ export { default as SectionSeparatorText } from './_section_separator_text.jsx'
|
|
3
3
|
export { default as SectionSeparatorVertical } from './_section_separator_vertical.jsx'
|
4
4
|
export { default as SectionSeparatorDashed } from './_section_separator_dashed.jsx'
|
5
5
|
export { default as SectionSeparatorChildren } from './_section_separator_children.jsx'
|
6
|
+
export { default as SectionSeparatorColor } from './_section_separator_color.jsx'
|
@@ -0,0 +1,3 @@
|
|
1
|
+
The Skeleton Loading kit can be used an intermediate loading state to give users a visual indication that content is loading.
|
2
|
+
|
3
|
+
**Please Note**: this kit is not meant to be integrated interally within other Playbook kits as a loading prop; rather, it can be used to create a composite of the section/kit/page with loading intermediataries, as demonstrated in the the "example component" doc examples.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= pb_rails("flex", props: { justify: "evenly" }) do %>
|
2
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "rounded", height: "50px", width: "100px"}) %>
|
3
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "xl", height: "50px", width: "100px"}) %>
|
4
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "lg", height: "50px", width: "100px"}) %>
|
5
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "md", height: "50px", width: "100px"}) %>
|
6
|
+
<%= pb_rails("skeleton_loading", props: { height: "50px", width: "100px"}) %>
|
7
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "xs", height: "50px", width: "100px"}) %>
|
8
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "none", height: "50px", width: "100px"}) %>
|
9
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
The `border_radius` prop accepts all of our [BorderRadius](https://playbook.powerapp.cloud/visual_guidelines/border_radius) tokens, with `sm` as default.
|
@@ -1 +1 @@
|
|
1
|
-
<%= pb_rails("skeleton_loading") %>
|
1
|
+
<%= pb_rails("skeleton_loading") %>
|
@@ -0,0 +1,119 @@
|
|
1
|
+
<%= pb_rails("button", props: { id: "toggle-filter-button", margin_bottom: "md", text: "Show Filter", variant: "secondary" }) %>
|
2
|
+
|
3
|
+
<div id="skeleton-loading-filter-content">
|
4
|
+
<%= pb_rails("card", props: { margin_bottom: "lg" }) do %>
|
5
|
+
<%= pb_rails("flex", props: { align_items: "center", justify: "between", orientation: "row" }) do %>
|
6
|
+
<%= pb_rails("flex", props: { align_items: "center", justify: "start", orientation: "row" }) do %>
|
7
|
+
<%= pb_rails("skeleton_loading", props: { border_radius: "rounded", height: "40px", margin_right: "sm", width: "40px" }) %>
|
8
|
+
<%= pb_rails("skeleton_loading", props: { height: "16px", margin_right: "md", width: "80px" }) %>
|
9
|
+
<% end %>
|
10
|
+
<%= pb_rails("flex", props: { align_items: "center", justify: "end", orientation: "row" }) do %>
|
11
|
+
<%= pb_rails("skeleton_loading", props: { height: "18px", width: "120px" }) %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<%= pb_rails("skeleton_loading", props: { height: "127px", width: "100%" }) %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div id="filter-content" style="display: none;">
|
20
|
+
<%= pb_rails("filter", props: {
|
21
|
+
margin_bottom: "xl",
|
22
|
+
min_width: "360px",
|
23
|
+
id: "2",
|
24
|
+
filters: [
|
25
|
+
{ name: "name", value: "John Wick" }
|
26
|
+
],
|
27
|
+
sort_menu: [
|
28
|
+
{ item: "Popularity", link: "?q[sorts]=managers_popularity+asc", active: true, direction: "desc" },
|
29
|
+
{ item: "Mananger's Title", link: "?q[sorts]=managers_title+asc", active: false },
|
30
|
+
{ item: "Manager's Name", link: "?q[sorts]=managers_name+asc", active: false },
|
31
|
+
],
|
32
|
+
results: 546,
|
33
|
+
template: "single"
|
34
|
+
}) do %>
|
35
|
+
<% example_collection = [
|
36
|
+
OpenStruct.new(name: "USA", value: 1),
|
37
|
+
OpenStruct.new(name: "Canada", value: 2),
|
38
|
+
OpenStruct.new(name: "Brazil", value: 3),
|
39
|
+
OpenStruct.new(name: "Philippines", value: 4),
|
40
|
+
OpenStruct.new(name: "A galaxy far far away...", value: 5)
|
41
|
+
] %>
|
42
|
+
|
43
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
44
|
+
<%= form.text_field :example_text_field, props: { label: true } %>
|
45
|
+
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
46
|
+
|
47
|
+
<%= form.actions do |action| %>
|
48
|
+
<%= action.submit props: {
|
49
|
+
text: "Apply",
|
50
|
+
data: {
|
51
|
+
disable_with: "pb_rails('icon', props: { icon: 'spinner', spin: true, fixed_width: true })Searching...".html_safe
|
52
|
+
},}%>
|
53
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
54
|
+
<% end %>
|
55
|
+
<% end %>
|
56
|
+
<% end %>
|
57
|
+
|
58
|
+
<%= pb_rails("filter", props: {
|
59
|
+
min_width: "360px",
|
60
|
+
id: "1",
|
61
|
+
filters: [
|
62
|
+
{ name: "name", value: "John Wick" },
|
63
|
+
{ name: "city", value: "San Francisco"}
|
64
|
+
],
|
65
|
+
sort_menu: [
|
66
|
+
{ item: "Popularity", link: "?q[sorts]=managers_popularity+asc", active: true, direction: "desc" },
|
67
|
+
{ item: "Mananger's Title", link: "?q[sorts]=managers_title+asc", active: false },
|
68
|
+
{ item: "Manager's Name", link: "?q[sorts]=managers_name+asc", active: false },
|
69
|
+
],
|
70
|
+
template: "default",
|
71
|
+
results: 1,
|
72
|
+
}) do %>
|
73
|
+
<% example_collection = [
|
74
|
+
OpenStruct.new(name: "USA", value: 1),
|
75
|
+
OpenStruct.new(name: "Canada", value: 2),
|
76
|
+
OpenStruct.new(name: "Brazil", value: 3),
|
77
|
+
OpenStruct.new(name: "Philippines", value: 4),
|
78
|
+
OpenStruct.new(name: "A galaxy far far away...", value: 5)
|
79
|
+
] %>
|
80
|
+
<%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
|
81
|
+
<%= form.text_field :example_text_field, props: { label: true } %>
|
82
|
+
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
|
83
|
+
|
84
|
+
<%= form.actions do |action| %>
|
85
|
+
<%= action.submit props: {
|
86
|
+
text: "Apply",
|
87
|
+
data: {
|
88
|
+
disable_with: "pb_rails('icon', props: { icon: 'spinner', spin: true, fixed_width: true })Searching...".html_safe
|
89
|
+
},}%>
|
90
|
+
<%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
|
91
|
+
<% end %>
|
92
|
+
<% end %>
|
93
|
+
<% end %>
|
94
|
+
</div>
|
95
|
+
|
96
|
+
<script>
|
97
|
+
document.addEventListener("DOMContentLoaded", function() {
|
98
|
+
const toggleButton = document.getElementById('toggle-filter-button')
|
99
|
+
const skeletonFilterContentDiv = document.getElementById('skeleton-loading-filter-content')
|
100
|
+
const filterContentDiv = document.getElementById('filter-content')
|
101
|
+
const secondFilterContentDiv = document.getElementById('second-filter-content')
|
102
|
+
|
103
|
+
let isLoading = true
|
104
|
+
|
105
|
+
toggleButton.addEventListener('click', function() {
|
106
|
+
isLoading = !isLoading
|
107
|
+
|
108
|
+
if (isLoading) {
|
109
|
+
skeletonFilterContentDiv.style.display = 'block'
|
110
|
+
filterContentDiv.style.display = 'none'
|
111
|
+
toggleButton.textContent = 'Show Filter'
|
112
|
+
} else {
|
113
|
+
skeletonFilterContentDiv.style.display = 'none'
|
114
|
+
filterContentDiv.style.display = 'block'
|
115
|
+
toggleButton.textContent = 'Show Skeleton Loading'
|
116
|
+
}
|
117
|
+
})
|
118
|
+
})
|
119
|
+
</script>
|