playbook_ui 14.13.0.pre.alpha.rails8compatible6232 → 14.13.0.pre.rc.0
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/_playbook.scss +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +4 -11
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +10 -74
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +26 -43
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +1 -8
- 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.jsx +0 -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 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -3
- data/app/pb_kits/playbook/pb_advanced_table/index.js +6 -9
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +5 -8
- data/app/pb_kits/playbook/pb_avatar/_avatar.scss +0 -9
- data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +7 -11
- data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +7 -6
- data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +3 -9
- data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +2 -6
- data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.scss +66 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.tsx +98 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +28 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +42 -0
- 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_avatar_action_button/pb_avatar_action_button.test.js +31 -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_button/button.rb +1 -1
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +8 -17
- data/app/pb_kits/playbook/pb_checkbox/checkbox.test.js +0 -16
- 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_date/_date.tsx +4 -14
- data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +1 -2
- data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +5 -13
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -3
- data/app/pb_kits/playbook/pb_draggable/docs/example.yml +5 -4
- data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +2 -2
- data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +0 -5
- data/app/pb_kits/playbook/pb_draggable/draggable_item.html.erb +1 -1
- data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +0 -4
- data/app/pb_kits/playbook/pb_draggable/index.js +15 -151
- data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +4 -7
- data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +3 -6
- data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +6 -1
- data/app/pb_kits/playbook/pb_filter/filter.html.erb +5 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/index.js +5 -7
- data/app/pb_kits/playbook/pb_form_group/form_group.html.erb +6 -1
- data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +7 -11
- data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +2 -13
- data/app/pb_kits/playbook/pb_icon/icon.html.erb +6 -2
- 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_icon_button/icon_button.html.erb +1 -1
- data/app/pb_kits/playbook/pb_icon_button/icon_button.rb +0 -3
- data/app/pb_kits/playbook/pb_layout/body.html.erb +5 -1
- data/app/pb_kits/playbook/pb_layout/footer.html.erb +5 -1
- data/app/pb_kits/playbook/pb_layout/header.html.erb +5 -1
- data/app/pb_kits/playbook/pb_layout/item.html.erb +5 -1
- data/app/pb_kits/playbook/pb_layout/layout.html.erb +5 -1
- data/app/pb_kits/playbook/pb_layout/sidebar.html.erb +5 -1
- data/app/pb_kits/playbook/pb_legend/legend.html.erb +6 -1
- data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +6 -7
- data/app/pb_kits/playbook/pb_link/_link.tsx +0 -18
- data/app/pb_kits/playbook/pb_link/docs/example.yml +3 -5
- data/app/pb_kits/playbook/pb_link/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_link/link.html.erb +1 -1
- data/app/pb_kits/playbook/pb_link/link.rb +0 -6
- data/app/pb_kits/playbook/pb_link/link.test.jsx +0 -30
- data/app/pb_kits/playbook/pb_message/message.html.erb +6 -1
- data/app/pb_kits/playbook/pb_message/message_mention.html.erb +6 -1
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +6 -1
- data/app/pb_kits/playbook/pb_nav/item.html.erb +19 -7
- data/app/pb_kits/playbook/pb_nav/nav.html.erb +8 -3
- data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +6 -1
- data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +0 -4
- 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_overlay/subcomponents/_overlay_token.tsx +10 -48
- data/app/pb_kits/playbook/pb_popover/popover.html.erb +6 -1
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +1 -6
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.tsx +5 -7
- 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_progress_pills/progress_pills.html.erb +7 -2
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +0 -6
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.test.js +1 -26
- data/app/pb_kits/playbook/pb_progress_simple/progress_simple.html.erb +5 -1
- data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tooltip.html.erb +6 -6
- data/app/pb_kits/playbook/pb_progress_step/progress_step.html.erb +5 -1
- data/app/pb_kits/playbook/pb_progress_step/progress_step_item.html.erb +5 -1
- data/app/pb_kits/playbook/pb_radio/radio.html.erb +11 -6
- data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.html.erb +9 -6
- data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.jsx +9 -6
- 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_table/index.ts +9 -41
- data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -4
- data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +0 -26
- data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +1 -0
- data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +0 -25
- data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +0 -25
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +2 -29
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +3 -31
- data/app/pb_kits/playbook/pb_table/table_body.html.erb +7 -13
- data/app/pb_kits/playbook/pb_table/table_body.rb +0 -2
- data/app/pb_kits/playbook/pb_table/table_row.html.erb +7 -14
- data/app/pb_kits/playbook/pb_table/table_row.rb +1 -14
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +1 -15
- data/app/pb_kits/playbook/pb_text_input/index.js +82 -60
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -5
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +1 -3
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_tooltip/index.js +27 -45
- data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -5
- data/app/pb_kits/playbook/pb_user/_user.tsx +0 -3
- data/app/pb_kits/playbook/pb_user/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_user/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_user/user.html.erb +1 -1
- data/app/pb_kits/playbook/pb_user/user.rb +0 -1
- data/app/pb_kits/playbook/pb_user/user.test.js +0 -14
- data/dist/chunks/_typeahead-BWwaAo_0.js +36 -0
- data/dist/chunks/_weekday_stacked-zyBCd1s8.js +45 -0
- data/dist/chunks/{lib-D3us1bGD.js → lib-kMuhBuU7.js} +2 -2
- data/dist/chunks/{pb_form_validation-BpihMSOQ.js → pb_form_validation-DBJ0wZuS.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +7 -6
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +2 -2
- metadata +38 -79
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/ActionBarAnimationHelper.ts +0 -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.jsx +0 -55
- 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_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +0 -3
- data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
- 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_copy_button/_copy_button.scss +0 -4
- data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +0 -92
- data/app/pb_kits/playbook/pb_copy_button/copy_button.html.erb +0 -15
- data/app/pb_kits/playbook/pb_copy_button/copy_button.rb +0 -28
- data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +0 -64
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.html.erb +0 -2
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.jsx +0 -21
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb +0 -5
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx +0 -45
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.md +0 -1
- data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +0 -8
- data/app/pb_kits/playbook/pb_copy_button/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_copy_button/index.js +0 -47
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.html.erb +0 -99
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +0 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +0 -61
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +0 -4
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_auto_close.html.erb +0 -58
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_auto_close_rails.md +0 -3
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.html.erb +0 -11
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.jsx +0 -22
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_rails.md +0 -1
- data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_react.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_link/docs/_link_target.html.erb +0 -15
- data/app/pb_kits/playbook/pb_link/docs/_link_target.jsx +0 -29
- 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_user/docs/_user_light_weight.html.erb +0 -42
- data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.jsx +0 -59
- data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.md +0 -2
- data/dist/chunks/_typeahead-PqkcDf1H.js +0 -36
- data/dist/chunks/_weekday_stacked-C7J0S4f7.js +0 -45
- /data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/{_fixed_confirmation_toast_auto_close_react.md → _fixed_confirmation_toast_auto_close.md} +0 -0
- /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,90 +0,0 @@
|
|
1
|
-
import React, { useState } from "react";
|
2
|
-
import { Flex, Table, Body, Avatar, DraggableProvider } from "playbook-ui";
|
3
|
-
|
4
|
-
// Initial items to be dragged
|
5
|
-
const data = [
|
6
|
-
{
|
7
|
-
id: "1",
|
8
|
-
task: "Task 1",
|
9
|
-
assignee_name: "Terry Miles",
|
10
|
-
assignee_img: "https://randomuser.me/api/portraits/men/44.jpg",
|
11
|
-
},
|
12
|
-
{
|
13
|
-
id: "2",
|
14
|
-
task: "Task 2",
|
15
|
-
assignee_name: "Sophia Miles",
|
16
|
-
assignee_img: "https://randomuser.me/api/portraits/women/8.jpg",
|
17
|
-
},
|
18
|
-
{
|
19
|
-
id: "3",
|
20
|
-
task: "Task 3",
|
21
|
-
assignee_name: "Alice Jones",
|
22
|
-
assignee_img: "https://randomuser.me/api/portraits/women/10.jpg",
|
23
|
-
},
|
24
|
-
{
|
25
|
-
id: "4",
|
26
|
-
task: "Task 4",
|
27
|
-
assignee_name: "Mike James",
|
28
|
-
assignee_img: "https://randomuser.me/api/portraits/men/8.jpg",
|
29
|
-
},
|
30
|
-
{
|
31
|
-
id: "5",
|
32
|
-
task: "Task 5",
|
33
|
-
assignee_name: "James Guy",
|
34
|
-
assignee_img: "https://randomuser.me/api/portraits/men/18.jpg",
|
35
|
-
}
|
36
|
-
];
|
37
|
-
|
38
|
-
const DraggableWithTableReact = (props) => {
|
39
|
-
const [initialState, setInitialState] = useState(data);
|
40
|
-
|
41
|
-
return (
|
42
|
-
<>
|
43
|
-
<DraggableProvider initialItems={data}
|
44
|
-
onReorder={(items) => setInitialState(items)}
|
45
|
-
>
|
46
|
-
<Table
|
47
|
-
responsive="none"
|
48
|
-
size="sm"
|
49
|
-
{...props}
|
50
|
-
>
|
51
|
-
<Table.Head>
|
52
|
-
<Table.Row>
|
53
|
-
<Table.Header>{"id"}</Table.Header>
|
54
|
-
<Table.Header>{"name"}</Table.Header>
|
55
|
-
<Table.Header>{"task number"}</Table.Header>
|
56
|
-
</Table.Row>
|
57
|
-
</Table.Head>
|
58
|
-
<Table.Body draggableContainer>
|
59
|
-
{initialState.map(({ id, task, assignee_name, assignee_img }) => (
|
60
|
-
<Table.Row
|
61
|
-
dragId={id}
|
62
|
-
draggableItem
|
63
|
-
key={id}
|
64
|
-
>
|
65
|
-
<Table.Cell>{id}</Table.Cell>
|
66
|
-
<Table.Cell>
|
67
|
-
<Flex align="center">
|
68
|
-
<Avatar
|
69
|
-
imageUrl={assignee_img}
|
70
|
-
size="xs"
|
71
|
-
/>
|
72
|
-
<Body
|
73
|
-
paddingLeft="xxs"
|
74
|
-
text={assignee_name}
|
75
|
-
{...props}
|
76
|
-
/>
|
77
|
-
</Flex>
|
78
|
-
</Table.Cell>
|
79
|
-
<Table.Cell>{task}</Table.Cell>
|
80
|
-
</Table.Row>
|
81
|
-
))}
|
82
|
-
</Table.Body>
|
83
|
-
</Table>
|
84
|
-
</DraggableProvider>
|
85
|
-
</>
|
86
|
-
|
87
|
-
);
|
88
|
-
};
|
89
|
-
|
90
|
-
export default DraggableWithTableReact;
|
@@ -1,5 +0,0 @@
|
|
1
|
-
The draggable kit can also be used in conjunction with the table kit to create draggable table rows. To do this:
|
2
|
-
|
3
|
-
- Wrap the Table with the `DraggableProvider` and manage state as shown.
|
4
|
-
- use the `draggableContainer` prop on the Table.Body to designate it as the Draggable Container
|
5
|
-
- use the `draggableItem` prop on the Table.Row to designate it as the Draggable Item. Make sure to also pass id to the `dragId` prop here.
|
@@ -1,58 +0,0 @@
|
|
1
|
-
<%= pb_rails("button", props: { text: "Show Auto Close Toast", variant: "secondary", data: { toast: "#toast-auto-close" } }) %>
|
2
|
-
<%= pb_rails("button", props: { text: "Show Closeable Auto Close Toast", variant: "secondary", data: { toast: "#toast-auto-close-closeable" } }) %>
|
3
|
-
|
4
|
-
<%= pb_rails("fixed_confirmation_toast", props: {
|
5
|
-
auto_close: 3000,
|
6
|
-
classname: "toast-to-hide",
|
7
|
-
id: "toast-auto-close",
|
8
|
-
text: "I will disappear in 3 seconds.",
|
9
|
-
status: "tip",
|
10
|
-
vertical: "top",
|
11
|
-
horizontal: "center"
|
12
|
-
}) %>
|
13
|
-
|
14
|
-
<%= pb_rails("fixed_confirmation_toast", props: {
|
15
|
-
auto_close: 10000,
|
16
|
-
closeable: true,
|
17
|
-
id: "toast-auto-close-closeable",
|
18
|
-
text: "I will disappear in 10 seconds.",
|
19
|
-
status: "tip",
|
20
|
-
vertical: "top",
|
21
|
-
horizontal: "center"
|
22
|
-
}) %>
|
23
|
-
|
24
|
-
<script>
|
25
|
-
document.addEventListener('DOMContentLoaded', () => {
|
26
|
-
// Initialize toast elements and buttons
|
27
|
-
const toasts = {
|
28
|
-
'#toast-auto-close': document.querySelector("#toast-auto-close"),
|
29
|
-
'#toast-auto-close-closeable': document.querySelector("#toast-auto-close-closeable")
|
30
|
-
}
|
31
|
-
|
32
|
-
const buttons = {
|
33
|
-
'#toast-auto-close': document.querySelector("button[data-toast='#toast-auto-close']"),
|
34
|
-
'#toast-auto-close-closeable': document.querySelector("button[data-toast='#toast-auto-close-closeable']")
|
35
|
-
}
|
36
|
-
|
37
|
-
// Store original toasts and remove them from DOM
|
38
|
-
const originalToasts = {}
|
39
|
-
Object.entries(toasts).forEach(([id, toast]) => {
|
40
|
-
if (toast) {
|
41
|
-
originalToasts[id] = toast.cloneNode(true)
|
42
|
-
toast.remove()
|
43
|
-
}
|
44
|
-
})
|
45
|
-
|
46
|
-
// Set up button click handlers
|
47
|
-
Object.keys(buttons).forEach((toastId) => {
|
48
|
-
const button = buttons[toastId]
|
49
|
-
if (button) {
|
50
|
-
button.onclick = () => {
|
51
|
-
const newToast = originalToasts[toastId].cloneNode(true)
|
52
|
-
newToast.style.display = "flex"
|
53
|
-
document.body.appendChild(newToast)
|
54
|
-
}
|
55
|
-
}
|
56
|
-
})
|
57
|
-
})
|
58
|
-
</script>
|
@@ -1,3 +0,0 @@
|
|
1
|
-
Auto close is used when you want the confirmation toast to close automatically after a certain time. `auto_close` property will be a delay number in ms.
|
2
|
-
|
3
|
-
The script tag in this code snippet is for demonstration purposes only. It clones the toasts in order to have it appear with a button click prompt and not upon initial page load. In a typical production environment the event triggering a fixed confirmation toast to appear would be handled by a controller or a separate javascript file.
|
data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.html.erb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
<%= pb_rails("home_address_street", props: {
|
2
|
-
address: "70 pRoSpEcT ave",
|
3
|
-
address_cont: "Apt M18",
|
4
|
-
city: "West Chester",
|
5
|
-
home_id: 8250263,
|
6
|
-
home_url: "https://powerhrg.com/",
|
7
|
-
preserve_case: true,
|
8
|
-
state: "pa",
|
9
|
-
zipcode: "19382",
|
10
|
-
territory: "PHL",
|
11
|
-
}) %>
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
|
3
|
-
import HomeAddressStreet from '../_home_address_street'
|
4
|
-
|
5
|
-
const HomeAddressStreetFormatting = (props) => {
|
6
|
-
return (
|
7
|
-
<HomeAddressStreet
|
8
|
-
address="70 pRoSpEcT ave"
|
9
|
-
addressCont="Apt M18"
|
10
|
-
city="West Chester"
|
11
|
-
homeId="8250263"
|
12
|
-
homeUrl="https://powerhrg.com/"
|
13
|
-
preserveCase
|
14
|
-
state="pa"
|
15
|
-
territory="PHL"
|
16
|
-
zipcode="19382"
|
17
|
-
{...props}
|
18
|
-
/>
|
19
|
-
)
|
20
|
-
}
|
21
|
-
|
22
|
-
export default HomeAddressStreetFormatting
|
data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_rails.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
The `state` prop will always capitalize the state name, even if the data entered is in lowercase. For example, when `state="pa"` is passed, it will be rendered as "PA". When you pass `preserve_case: true`, the street address will be rendered exactly as entered, without automatic title capitalization.
|
data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_react.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
The `state` prop will always capitalize the state name, even if the data entered is in lowercase. For example, when `state="pa"` is passed, it will be rendered as "PA". When you pass `preserveCase`, the street address will be rendered exactly as entered, without automatic title capitalization.
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<%= pb_rails("flex", props: { align: "center"}) do %>
|
2
|
-
<%= pb_rails("icon_button", props: {size: "lg"}) %> <span>Large</span>
|
3
|
-
<% end %>
|
4
|
-
|
5
|
-
<%= pb_rails("flex", props: { align: "center" }) do %>
|
6
|
-
<%= pb_rails("icon_button", props: {size: "sm"}) %> <span>Small</span>
|
7
|
-
<% end %>
|
8
|
-
|
9
|
-
<%= pb_rails("flex", props: { align: "center" }) do %>
|
10
|
-
<%= pb_rails("icon_button", props: {size: "xs"}) %> <span>XSmall</span>
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<%= pb_rails("flex", props: { align: "center", margin_top: "md" }) do %>
|
14
|
-
<%= pb_rails("icon_button", props: {size: "1x"}) %> <span>1x</span>
|
15
|
-
<% end %>
|
16
|
-
|
17
|
-
<%= pb_rails("flex", props: { align: "center" }) do %>
|
18
|
-
<%= pb_rails("icon_button", props: {size: "2x"}) %> <span>2x</span>
|
19
|
-
<% end %>
|
20
|
-
|
21
|
-
<%= pb_rails("flex", props: { align: "center" }) do %>
|
22
|
-
<%= pb_rails("icon_button", props: {size: "3x"}) %> <span>3x</span>
|
23
|
-
<% end %>
|
24
|
-
|
25
|
-
<%= pb_rails("flex", props: { align: "center" }) do %>
|
26
|
-
<%= pb_rails("icon_button", props: {size: "4x"}) %> <span>4x</span>
|
27
|
-
<% end %>
|
@@ -1,15 +0,0 @@
|
|
1
|
-
<div>
|
2
|
-
<%= pb_rails("link", props: {
|
3
|
-
href: "http://google.com",
|
4
|
-
target: "blank",
|
5
|
-
text: "Open In New Window"
|
6
|
-
}) %>
|
7
|
-
</div>
|
8
|
-
|
9
|
-
<div>
|
10
|
-
<%= pb_rails("link", props: {
|
11
|
-
href: "https://playbook.powerapp.cloud/",
|
12
|
-
target: "child",
|
13
|
-
text: "Open In Child Tab",
|
14
|
-
}) %>
|
15
|
-
</div>
|
@@ -1,29 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
import { Link } from 'playbook-ui'
|
3
|
-
|
4
|
-
const LinkTarget = (props) => (
|
5
|
-
<div>
|
6
|
-
<div>
|
7
|
-
<Link
|
8
|
-
aria={{ label: 'Link to Google in new window' }}
|
9
|
-
href="https://google.com"
|
10
|
-
tabIndex={0}
|
11
|
-
target='blank'
|
12
|
-
text="Open In New Window"
|
13
|
-
{...props}
|
14
|
-
/>
|
15
|
-
</div>
|
16
|
-
<div>
|
17
|
-
<Link
|
18
|
-
aria={{ label: 'Link to Playbook in a child tab' }}
|
19
|
-
href="https://playbook.powerapp.cloud/"
|
20
|
-
tabIndex={0}
|
21
|
-
target='child'
|
22
|
-
text="Open In Child Tab"
|
23
|
-
{...props}
|
24
|
-
/>
|
25
|
-
</div>
|
26
|
-
</div>
|
27
|
-
)
|
28
|
-
|
29
|
-
export default LinkTarget
|
@@ -1,37 +0,0 @@
|
|
1
|
-
import React, { forwardRef } from 'react'
|
2
|
-
import {
|
3
|
-
Overlay,
|
4
|
-
Card,
|
5
|
-
Flex,
|
6
|
-
FlexItem,
|
7
|
-
} from 'playbook-ui'
|
8
|
-
|
9
|
-
const InlineCardsExample = forwardRef(function InlineCardsExample(ref) {
|
10
|
-
return (
|
11
|
-
<Flex
|
12
|
-
columnGap="lg"
|
13
|
-
orientation="row"
|
14
|
-
ref={ref}
|
15
|
-
>
|
16
|
-
{Array.from({ length: 15 }, (_, index) => (
|
17
|
-
<FlexItem key={index}>
|
18
|
-
<Card>{"Card Content"}</Card>
|
19
|
-
</FlexItem>
|
20
|
-
))}
|
21
|
-
</Flex>
|
22
|
-
)
|
23
|
-
})
|
24
|
-
|
25
|
-
const OverlayVerticalDynamicMultiDirectional = () => (
|
26
|
-
<>
|
27
|
-
<Overlay
|
28
|
-
color="card_light"
|
29
|
-
dynamic
|
30
|
-
layout={{"x": "xl"}}
|
31
|
-
>
|
32
|
-
<InlineCardsExample />
|
33
|
-
</Overlay>
|
34
|
-
</>
|
35
|
-
)
|
36
|
-
|
37
|
-
export default OverlayVerticalDynamicMultiDirectional
|
data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional_react.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Pass the `dynamic` prop to make the overlay render while the scrollbar isn't at either end on the scrollbar. You must also add a `ref` to the child that's being passed through the Overlay.
|
@@ -1 +0,0 @@
|
|
1
|
-
Progress pills start at `45px` wide if the container allows, but will shrink down to `1px` as the container gets smaller. Resize this window to see each pill shrink.
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= pb_rails("progress_pills", props: { aria: { label: "2 out of 5 steps complete" }, steps: 5, active: 2, full_width_pill: true }) %>
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
import ProgressPills from '../_progress_pills'
|
3
|
-
|
4
|
-
const ProgressPillsFullWidth = (props) => {
|
5
|
-
return (
|
6
|
-
<>
|
7
|
-
<ProgressPills
|
8
|
-
active={2}
|
9
|
-
aria={{ label: '2 out of 5 steps complete' }}
|
10
|
-
fullWidthPill
|
11
|
-
steps={5}
|
12
|
-
{...props}
|
13
|
-
/>
|
14
|
-
</>
|
15
|
-
)
|
16
|
-
}
|
17
|
-
|
18
|
-
export default ProgressPillsFullWidth
|
@@ -1 +0,0 @@
|
|
1
|
-
Pass `full_width_pill: true` to the Progress Pill kit to get true 100% full width pills. The kit will take up the full width of the container that it is in.
|
@@ -1 +0,0 @@
|
|
1
|
-
Pass `fullWidthPill` to the Progress Pill kit to get true 100% full width pills. The kit will take up the full width of the container that it is in.
|
@@ -1,47 +0,0 @@
|
|
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
|
-
<%= pb_rails("table/table_header", props: { text: "" }) %>
|
10
|
-
<% end %>
|
11
|
-
<% end %>
|
12
|
-
<%= pb_rails("table/table_body") do %>
|
13
|
-
<%= pb_rails("table/table_row", props: { cursor: "pointer", html_options: { onclick: "alert('Row 1 clicked')" } }) do %>
|
14
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 1" }) %>
|
15
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 2" }) %>
|
16
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 3" }) %>
|
17
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 4" }) %>
|
18
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 5" }) %>
|
19
|
-
<%= pb_rails("table/table_cell", props: { text_align: "right" }) do %>
|
20
|
-
<%= pb_rails("icon", props: { color: "primary_action", fixed_width: true, icon: "chevron-right", size: "xs" }) %>
|
21
|
-
<% end %>
|
22
|
-
<% end %>
|
23
|
-
|
24
|
-
<%= pb_rails("table/table_row", props: { cursor: "pointer", html_options: { onclick: "alert('Row 2 clicked')" } }) do %>
|
25
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 1" }) %>
|
26
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 2" }) %>
|
27
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 3" }) %>
|
28
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 4" }) %>
|
29
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 5" }) %>
|
30
|
-
<%= pb_rails("table/table_cell", props: { text_align: "right" }) do %>
|
31
|
-
<%= pb_rails("icon", props: { color: "primary_action", fixed_width: true, icon: "chevron-right", size: "xs" }) %>
|
32
|
-
<% end %>
|
33
|
-
<% end %>
|
34
|
-
|
35
|
-
<%= pb_rails("table/table_row", props: { cursor: "pointer", html_options: { onclick: "alert('Row 3 clicked')" } }) do %>
|
36
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 1" }) %>
|
37
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 2" }) %>
|
38
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 3" }) %>
|
39
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 4" }) %>
|
40
|
-
<%= pb_rails("table/table_cell", props: { text: "Value 5" }) %>
|
41
|
-
<%= pb_rails("table/table_cell", props: { text_align: "right" }) do %>
|
42
|
-
<%= pb_rails("icon", props: { color: "primary_action", fixed_width: true, icon: "chevron-right", size: "xs" }) %>
|
43
|
-
<% end %>
|
44
|
-
<% end %>
|
45
|
-
<% end %>
|
46
|
-
<% end %>
|
47
|
-
|
@@ -1,88 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
import { Table, Icon } from 'playbook-ui'
|
3
|
-
|
4
|
-
const TableWithClickableRows = (props) => {
|
5
|
-
|
6
|
-
|
7
|
-
return (
|
8
|
-
<Table
|
9
|
-
size="sm"
|
10
|
-
{...props}
|
11
|
-
>
|
12
|
-
<Table.Head>
|
13
|
-
<Table.Row>
|
14
|
-
<Table.Header>{"Column 1"}</Table.Header>
|
15
|
-
<Table.Header>{"Column 2"}</Table.Header>
|
16
|
-
<Table.Header>{"Column 3"}</Table.Header>
|
17
|
-
<Table.Header>{"Column 4"}</Table.Header>
|
18
|
-
<Table.Header>{"Column 5"}</Table.Header>
|
19
|
-
<Table.Header>{""}</Table.Header>
|
20
|
-
</Table.Row>
|
21
|
-
</Table.Head>
|
22
|
-
<Table.Body>
|
23
|
-
<Table.Row
|
24
|
-
cursor="pointer"
|
25
|
-
htmlOptions={{ onClick: () => alert("Row 1 clicked") }}
|
26
|
-
{...props}
|
27
|
-
>
|
28
|
-
<Table.Cell>{"Value 1"}</Table.Cell>
|
29
|
-
<Table.Cell>{"Value 2"}</Table.Cell>
|
30
|
-
<Table.Cell>{"Value 3"}</Table.Cell>
|
31
|
-
<Table.Cell>{"Value 4"}</Table.Cell>
|
32
|
-
<Table.Cell>{"Value 5"}</Table.Cell>
|
33
|
-
<Table.Cell textAlign="right">
|
34
|
-
<Icon
|
35
|
-
color="primary_action"
|
36
|
-
fixedWidth
|
37
|
-
icon="chevron-right"
|
38
|
-
size="xs"
|
39
|
-
{...props}
|
40
|
-
/>
|
41
|
-
</Table.Cell>
|
42
|
-
</Table.Row>
|
43
|
-
<Table.Row
|
44
|
-
cursor="pointer"
|
45
|
-
htmlOptions={{ onClick: () => alert("Row 2 clicked") }}
|
46
|
-
{...props}
|
47
|
-
>
|
48
|
-
<Table.Cell>{"Value 1"}</Table.Cell>
|
49
|
-
<Table.Cell>{"Value 2"}</Table.Cell>
|
50
|
-
<Table.Cell>{"Value 3"}</Table.Cell>
|
51
|
-
<Table.Cell>{"Value 4"}</Table.Cell>
|
52
|
-
<Table.Cell>{"Value 5"}</Table.Cell>
|
53
|
-
<Table.Cell textAlign="right">
|
54
|
-
<Icon
|
55
|
-
color="primary_action"
|
56
|
-
fixedWidth
|
57
|
-
icon="chevron-right"
|
58
|
-
size="xs"
|
59
|
-
{...props}
|
60
|
-
/>
|
61
|
-
</Table.Cell>
|
62
|
-
</Table.Row>
|
63
|
-
<Table.Row
|
64
|
-
cursor="pointer"
|
65
|
-
htmlOptions={{ onClick: () => alert("Row 3 clicked") }}
|
66
|
-
{...props}
|
67
|
-
>
|
68
|
-
<Table.Cell>{"Value 1"}</Table.Cell>
|
69
|
-
<Table.Cell>{"Value 2"}</Table.Cell>
|
70
|
-
<Table.Cell>{"Value 3"}</Table.Cell>
|
71
|
-
<Table.Cell>{"Value 4"}</Table.Cell>
|
72
|
-
<Table.Cell>{"Value 5"}</Table.Cell>
|
73
|
-
<Table.Cell textAlign="right">
|
74
|
-
<Icon
|
75
|
-
color="primary_action"
|
76
|
-
fixedWidth
|
77
|
-
icon="chevron-right"
|
78
|
-
size="xs"
|
79
|
-
{...props}
|
80
|
-
/>
|
81
|
-
</Table.Cell>
|
82
|
-
</Table.Row>
|
83
|
-
</Table.Body>
|
84
|
-
</Table>
|
85
|
-
)
|
86
|
-
}
|
87
|
-
|
88
|
-
export default TableWithClickableRows
|
@@ -1 +0,0 @@
|
|
1
|
-
Clickable table rows do not require any additional props. This doc example showcases how to set them up using `html_options`/`htmlOptions` and click events. Using the global prop for cursor to set it to "pointer" is also recommended for better UX.
|
@@ -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>
|