playbook_ui_docs 14.13.0.pre.alpha.PBNTR457formtimezoneselect6219 → 14.13.0.pre.alpha.PBNTR5596029
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +19 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +26 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +10 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +17 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +19 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +16 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +35 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +42 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +13 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml +15 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -2
- data/app/pb_kits/playbook/pb_checkbox/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +1 -4
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -1
- data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +0 -1
- data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_default.html.erb +2 -1
- data/app/pb_kits/playbook/pb_icon_button/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +0 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +0 -7
- data/app/pb_kits/playbook/pb_progress_pills/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_progress_pills/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -5
- data/app/pb_kits/playbook/pb_table/docs/index.js +1 -3
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +0 -14
- data/dist/playbook-doc.js +1 -1
- metadata +14 -26
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_custom_cell.jsx +0 -75
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +0 -33
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +0 -3
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.jsx +0 -69
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.md +0 -1
- data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_sizes.html.erb +0 -27
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional.jsx +0 -37
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional_react.md +0 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +0 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width.html.erb +0 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width.jsx +0 -18
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width_rails.md +0 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width_react.md +0 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.html.erb +0 -47
- data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.jsx +0 -88
- data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.md +0 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -96
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +0 -101
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +0 -1
- /data/app/pb_kits/playbook/pb_table/docs/{_table_with_collapsible_with_custom_click_react.md → _table_with_collapsible_with_custom_click.md} +0 -0
@@ -1,51 +0,0 @@
|
|
1
|
-
<% content = capture do %>
|
2
|
-
<%= pb_rails("card", props: { border_none: true, border_radius: "none", padding: "md" }) do %>
|
3
|
-
<%= pb_rails("body", props: { text: "Nested content inside a Table Row" }) %>
|
4
|
-
<% end %>
|
5
|
-
<% end %>
|
6
|
-
|
7
|
-
<%= pb_rails("table", props: { size: "sm" }) do %>
|
8
|
-
<%= pb_rails("table/table_head") do %>
|
9
|
-
<%= pb_rails("table/table_row") do %>
|
10
|
-
<%= pb_rails("table/table_header", props: { text: "Column 1"}) %>
|
11
|
-
<%= pb_rails("table/table_header", props: { text: "Column 2"}) %>
|
12
|
-
<%= pb_rails("table/table_header", props: { text: "Column 3"}) %>
|
13
|
-
<%= pb_rails("table/table_header", props: { text: "Column 4"}) %>
|
14
|
-
<%= pb_rails("table/table_header", props: { text: "Column 5"}) %>
|
15
|
-
<%= pb_rails("table/table_header", props: { text: ""}) %>
|
16
|
-
<% end %>
|
17
|
-
<% end %>
|
18
|
-
<%= pb_rails("table/table_body") do %>
|
19
|
-
<%= pb_rails("table/table_row", props: { collapsible: true, collapsible_content: content, collapsible_side_highlight: true, toggle_cell_id: "cell-1", id: "5" }) 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
|
-
<%= pb_rails("table/table_cell", props: { text_align: "right", id: "cell-1", cursor: "pointer" }) do %>
|
26
|
-
<%= pb_rails("icon", props: { icon: "chevron-down", fixed_width: true, color: "primary" }) %>
|
27
|
-
<% end %>
|
28
|
-
<% end %>
|
29
|
-
<%= pb_rails("table/table_row", props: { collapsible: true, collapsible_content: content, collapsible_side_highlight: true, toggle_cell_id: "cell-2", id: "6" }) do %>
|
30
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 1"}) %>
|
31
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 2"}) %>
|
32
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 3"}) %>
|
33
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 4"}) %>
|
34
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 5"}) %>
|
35
|
-
<%= pb_rails("table/table_cell", props: { text_align: "right", id: "cell-2", cursor: "pointer" }) do %>
|
36
|
-
<%= pb_rails("icon", props: { icon: "chevron-down", fixed_width: true, color: "primary" }) %>
|
37
|
-
<% end %>
|
38
|
-
<% end %>
|
39
|
-
<%= pb_rails("table/table_row", props: { collapsible: true, collapsible_content: content, collapsible_side_highlight: true, toggle_cell_id: "cell-3", id: "7" }) do %>
|
40
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 1"}) %>
|
41
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 2"}) %>
|
42
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 3"}) %>
|
43
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 4"}) %>
|
44
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 5"}) %>
|
45
|
-
<%= pb_rails("table/table_cell", props: { text_align: "right", id: "cell-3", cursor: "pointer" }) do %>
|
46
|
-
<%= pb_rails("icon", props: { icon: "chevron-down", fixed_width: true, color: "primary" }) %>
|
47
|
-
<% end %>
|
48
|
-
<% end %>
|
49
|
-
<% end %>
|
50
|
-
<% end %>
|
51
|
-
|
@@ -1,2 +0,0 @@
|
|
1
|
-
When using the `collapsible` prop, the default functionality is that the entire Row will be clickable to toggle the Row. To limit the click event to a specific Table Cell, you can use the `toggle_cell_id` prop to pass in the id of the Cell you want to use as the trigger.
|
2
|
-
__NOTE__: `toggle_cell_id` and the `id` on the Cell you want to use as the trigger MUST be the same. Please also be aware that you will need to pass in an `id` to any Table Rows you want to be collapsible. Make sure every `id` is unique if you are using multipe collapsibles.
|
@@ -1,96 +0,0 @@
|
|
1
|
-
<% checkboxes = [
|
2
|
-
{ name: 'Coffee', id: 'coffee', checked: false },
|
3
|
-
{ name: 'Ice Cream', id: 'ice-cream', checked: false },
|
4
|
-
{ name: 'Chocolate', id: 'chocolate', checked: true }
|
5
|
-
] %>
|
6
|
-
|
7
|
-
<%= pb_rails("flex", props: { justify: "end", margin_bottom: "sm" }) do %>
|
8
|
-
<%= pb_rails("flex", props: { justify: "end", margin_bottom: "sm" }) do %>
|
9
|
-
<%= pb_rails("button", props: { text: "Delete", id: "delete-button" }) %>
|
10
|
-
<% end %>
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<%= pb_rails("table", props: { size: "sm" }) do %>
|
14
|
-
<%= pb_rails("table/table_head") do %>
|
15
|
-
<%= pb_rails("table/table_row") do %>
|
16
|
-
<%= pb_rails("table/table_header") do %>
|
17
|
-
<%= pb_rails("checkbox", props: {
|
18
|
-
checked: true,
|
19
|
-
value: "checkbox-value",
|
20
|
-
name: "main-checkbox-selectable",
|
21
|
-
indeterminate: true,
|
22
|
-
id: "checkbox-selectable"
|
23
|
-
}) %>
|
24
|
-
<% end %>
|
25
|
-
<%= pb_rails("table/table_header", props: { text: "Column 1" }) %>
|
26
|
-
<%= pb_rails("table/table_header", props: { text: "Column 2" }) %>
|
27
|
-
<%= pb_rails("table/table_header", props: { text: "Column 3" }) %>
|
28
|
-
<%= pb_rails("table/table_header", props: { text: "Column 4" }) %>
|
29
|
-
<%= pb_rails("table/table_header", props: { text: "Column 5" }) %>
|
30
|
-
<% end %>
|
31
|
-
<% end %>
|
32
|
-
<%= pb_rails("table/table_body") do %>
|
33
|
-
<% checkboxes.each_with_index do |checkbox, index| %>
|
34
|
-
<%= pb_rails("table/table_row") do %>
|
35
|
-
<%= pb_rails("table/table_cell") do %>
|
36
|
-
<%= pb_rails("checkbox", props: { checked: checkbox[:checked], id: "#{checkbox[:id]}-selectable-checkbox", name: "#{checkbox[:id]}-selectable-checkbox", on_change: "updateCheckboxes(#{index})", value: "check-box value" }) %>
|
37
|
-
<% end %>
|
38
|
-
<%= pb_rails("table/table_cell") do %>
|
39
|
-
<%= pb_rails("image", props: { alt: "picture of a misty forest", size: "xs", url: "https://unsplash.it/500/400/?image=634" }) %>
|
40
|
-
<% end %>
|
41
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 2" }) %>
|
42
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 3" }) %>
|
43
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 4" }) %>
|
44
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 5" }) %>
|
45
|
-
<% end %>
|
46
|
-
<% end %>
|
47
|
-
<% end %>
|
48
|
-
<% end %>
|
49
|
-
|
50
|
-
<script>
|
51
|
-
document.addEventListener('DOMContentLoaded', function() {
|
52
|
-
const mainCheckboxWrapper = document.getElementById('checkbox-selectable');
|
53
|
-
const mainCheckbox = document.getElementsByName("main-checkbox-selectable")[0];
|
54
|
-
const childCheckboxes = document.querySelectorAll('input[type="checkbox"][id$="selectable-checkbox"]');
|
55
|
-
const deleteButton = document.getElementById('delete-button');
|
56
|
-
|
57
|
-
const updateDeleteButton = () => {
|
58
|
-
const anyChecked = Array.from(childCheckboxes).some(checkbox => checkbox.checked);
|
59
|
-
deleteButton.style.display = anyChecked ? 'block' : 'none';
|
60
|
-
};
|
61
|
-
|
62
|
-
const updateMainCheckbox = () => {
|
63
|
-
// Count the number of checked child checkboxes
|
64
|
-
const checkedCount = Array.from(childCheckboxes).filter(cb => cb.checked).length;
|
65
|
-
// Determine if the main checkbox should be in an indeterminate state
|
66
|
-
const indeterminate = checkedCount > 0 && checkedCount < childCheckboxes.length;
|
67
|
-
|
68
|
-
// Set the main checkbox states
|
69
|
-
mainCheckbox.indeterminate = indeterminate;
|
70
|
-
mainCheckbox.checked = checkedCount > 0;
|
71
|
-
|
72
|
-
// Determine the icon class to add and remove based on the number of checked checkboxes
|
73
|
-
const iconClassToAdd = checkedCount === 0 ? 'pb_checkbox_checkmark' : 'pb_checkbox_indeterminate';
|
74
|
-
const iconClassToRemove = checkedCount === 0 ? 'pb_checkbox_indeterminate' : 'pb_checkbox_checkmark';
|
75
|
-
|
76
|
-
// Add and remove the icon class to the main checkbox wrapper
|
77
|
-
mainCheckboxWrapper.querySelector('[data-pb-checkbox-icon-span]').classList.add(iconClassToAdd);
|
78
|
-
mainCheckboxWrapper.querySelector('[data-pb-checkbox-icon-span]').classList.remove(iconClassToRemove);
|
79
|
-
|
80
|
-
// Toggle the visibility of the checkbox icon based on the indeterminate state
|
81
|
-
mainCheckboxWrapper.getElementsByClassName("indeterminate_icon")[0].classList.toggle('hidden', !indeterminate);
|
82
|
-
mainCheckboxWrapper.getElementsByClassName("check_icon")[0].classList.toggle('hidden', indeterminate);
|
83
|
-
|
84
|
-
updateDeleteButton();
|
85
|
-
};
|
86
|
-
|
87
|
-
mainCheckbox.addEventListener('change', function() {
|
88
|
-
childCheckboxes.forEach(cb => cb.checked = this.checked);
|
89
|
-
updateMainCheckbox();
|
90
|
-
});
|
91
|
-
|
92
|
-
childCheckboxes.forEach(cb => {
|
93
|
-
cb.addEventListener('change', updateMainCheckbox);
|
94
|
-
});
|
95
|
-
});
|
96
|
-
</script>
|
@@ -1,101 +0,0 @@
|
|
1
|
-
import React, { useState } from 'react'
|
2
|
-
import { Table, Checkbox, Image, Flex, Button } from 'playbook-ui'
|
3
|
-
|
4
|
-
const TableWithSelectableRows = (props) => {
|
5
|
-
const [checkboxes, setCheckboxes] = useState([
|
6
|
-
{ name: "Coffee", checked: false },
|
7
|
-
{ name: "Ice Cream", checked: false },
|
8
|
-
{ name: "Chocolate", checked: true },
|
9
|
-
]);
|
10
|
-
|
11
|
-
const isAllChecked = !checkboxes.find((checkbox) => !checkbox.checked);
|
12
|
-
const isNoneChecked = !checkboxes.find((checkbox) => checkbox.checked);
|
13
|
-
|
14
|
-
const processCheckboxes = (checked) =>
|
15
|
-
checkboxes.slice(0).map((checkbox) => {
|
16
|
-
checkbox.checked = checked;
|
17
|
-
return checkbox;
|
18
|
-
});
|
19
|
-
|
20
|
-
const onToggleAll = () => {
|
21
|
-
setCheckboxes(
|
22
|
-
isNoneChecked ? processCheckboxes(true) : processCheckboxes(false)
|
23
|
-
);
|
24
|
-
};
|
25
|
-
|
26
|
-
const updateCheckboxes = (checkbox, index) => {
|
27
|
-
const newCheckboxes = checkboxes.slice(0);
|
28
|
-
newCheckboxes[index].checked = !checkbox.checked;
|
29
|
-
setCheckboxes(newCheckboxes);
|
30
|
-
};
|
31
|
-
|
32
|
-
return (
|
33
|
-
<>
|
34
|
-
<Flex
|
35
|
-
justify="end"
|
36
|
-
marginBottom="sm"
|
37
|
-
>
|
38
|
-
{!isNoneChecked && (
|
39
|
-
<Flex
|
40
|
-
justify="end"
|
41
|
-
marginBottom="sm"
|
42
|
-
>
|
43
|
-
<Button>Delete</Button>
|
44
|
-
</Flex>
|
45
|
-
)}
|
46
|
-
</Flex>
|
47
|
-
<Table
|
48
|
-
size="sm"
|
49
|
-
{...props}
|
50
|
-
>
|
51
|
-
<Table.Head>
|
52
|
-
<Table.Row>
|
53
|
-
<Table.Header>
|
54
|
-
<Checkbox
|
55
|
-
checked={isAllChecked}
|
56
|
-
indeterminate={!isAllChecked && !isNoneChecked}
|
57
|
-
name="checkbox-name"
|
58
|
-
onChange={onToggleAll}
|
59
|
-
value="check-box value"
|
60
|
-
/>
|
61
|
-
</Table.Header>
|
62
|
-
<Table.Header>{"Column 1"}</Table.Header>
|
63
|
-
<Table.Header>{"Column 2"}</Table.Header>
|
64
|
-
<Table.Header>{"Column 3"}</Table.Header>
|
65
|
-
<Table.Header>{"Column 4"}</Table.Header>
|
66
|
-
<Table.Header>{"Column 5"}</Table.Header>
|
67
|
-
</Table.Row>
|
68
|
-
</Table.Head>
|
69
|
-
<Table.Body>
|
70
|
-
{checkboxes.map((checkbox, index) => (
|
71
|
-
<Table.Row key={index}>
|
72
|
-
<Table.Cell>
|
73
|
-
<Checkbox
|
74
|
-
checked={checkbox.checked}
|
75
|
-
name={checkbox.name}
|
76
|
-
onChange={() => {
|
77
|
-
updateCheckboxes(checkbox, index);
|
78
|
-
}}
|
79
|
-
value="check-box value"
|
80
|
-
/>
|
81
|
-
</Table.Cell>
|
82
|
-
<Table.Cell>
|
83
|
-
<Image
|
84
|
-
alt="picture of a misty forest"
|
85
|
-
size="xs"
|
86
|
-
url="https://unsplash.it/500/400/?image=634"
|
87
|
-
/>
|
88
|
-
</Table.Cell>
|
89
|
-
<Table.Cell>{"Value 2"}</Table.Cell>
|
90
|
-
<Table.Cell>{"Value 3"}</Table.Cell>
|
91
|
-
<Table.Cell>{"Value 4"}</Table.Cell>
|
92
|
-
<Table.Cell>{"Value 5"}</Table.Cell>
|
93
|
-
</Table.Row>
|
94
|
-
))}
|
95
|
-
</Table.Body>
|
96
|
-
</Table>
|
97
|
-
</>
|
98
|
-
)
|
99
|
-
}
|
100
|
-
|
101
|
-
export default TableWithSelectableRows
|
@@ -1 +0,0 @@
|
|
1
|
-
Use the Checkbox kit with the Table to achieve the selectable row functionality seen here.
|