playbook_ui_docs 14.13.0.pre.alpha.play1754pbtagprogressradio6160 → 14.13.0.pre.alpha.play1834depupdatesass6024

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -1
  3. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
  4. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
  5. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +1 -4
  6. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +0 -2
  7. data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
  8. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_default.html.erb +2 -1
  9. data/app/pb_kits/playbook/pb_icon_button/docs/example.yml +3 -1
  10. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  11. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -5
  12. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -3
  13. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +0 -14
  14. data/dist/playbook-doc.js +1 -1
  15. metadata +3 -16
  16. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  17. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  18. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
  19. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
  20. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_sizes.html.erb +0 -27
  21. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.html.erb +0 -47
  22. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.jsx +0 -88
  23. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.md +0 -1
  24. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
  25. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
  26. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -96
  27. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +0 -101
  28. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +0 -1
  29. /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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui_docs
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.13.0.pre.alpha.play1754pbtagprogressradio6160
4
+ version: 14.13.0.pre.alpha.play1834depupdatesass6024
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-02-18 00:00:00.000000000 Z
12
+ date: 2025-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: playbook_ui
@@ -197,8 +197,6 @@ files:
197
197
  - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_position.md
198
198
  - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.html.erb
199
199
  - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_negative_numbers.jsx
200
- - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx
201
- - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md
202
200
  - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.html.erb
203
201
  - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.jsx
204
202
  - app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_secondary_y_axis.md
@@ -718,8 +716,6 @@ files:
718
716
  - app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_rails.md
719
717
  - app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb
720
718
  - app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md
721
- - app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx
722
- - app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md
723
719
  - app/pb_kits/playbook/pb_draggable/docs/example.yml
724
720
  - app/pb_kits/playbook/pb_draggable/docs/index.js
725
721
  - app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx
@@ -1036,7 +1032,6 @@ files:
1036
1032
  - app/pb_kits/playbook/pb_icon/docs/example.yml
1037
1033
  - app/pb_kits/playbook/pb_icon/docs/index.js
1038
1034
  - app/pb_kits/playbook/pb_icon_button/docs/_icon_button_default.html.erb
1039
- - app/pb_kits/playbook/pb_icon_button/docs/_icon_button_sizes.html.erb
1040
1035
  - app/pb_kits/playbook/pb_icon_button/docs/example.yml
1041
1036
  - app/pb_kits/playbook/pb_icon_circle/docs/_description.md
1042
1037
  - app/pb_kits/playbook/pb_icon_circle/docs/_footer.md
@@ -1847,17 +1842,12 @@ files:
1847
1842
  - app/pb_kits/playbook/pb_table/docs/_table_vertical_border.jsx
1848
1843
  - app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.html.erb
1849
1844
  - app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.jsx
1850
- - app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.html.erb
1851
- - app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.jsx
1852
- - app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.md
1853
1845
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.html.erb
1854
1846
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx
1855
1847
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_rails.md
1856
1848
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_react.md
1857
- - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb
1858
1849
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx
1859
- - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md
1860
- - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_react.md
1850
+ - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.md
1861
1851
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx
1862
1852
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.md
1863
1853
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content_rails.html.erb
@@ -1870,9 +1860,6 @@ files:
1870
1860
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md
1871
1861
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.html.erb
1872
1862
  - app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md
1873
- - app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb
1874
- - app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx
1875
- - app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md
1876
1863
  - app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.jsx
1877
1864
  - app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.md
1878
1865
  - app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_as_divs.html.erb
@@ -1,64 +0,0 @@
1
- import React from 'react'
2
- import Highcharts from "highcharts";
3
- import HighchartsReact from "highcharts-react-official";
4
-
5
- import "../BarGraphStyles.scss";
6
- // Your path might look more like this
7
- //import "playbook-ui/dist/pb_bar_graph/BarGraphStyles.scss";
8
-
9
- const columnChartData = [
10
- {
11
- name: "Installation",
12
- data: [1475, 200, 3000, 654, 656],
13
- },
14
- {
15
- name: "Manufacturing",
16
- data: [4434, 524, 2320, 440, 500],
17
- },
18
- {
19
- name: "Sales & Distribution",
20
- data: [3387, 743, 1344, 434, 440],
21
- },
22
- {
23
- name: "Project Development",
24
- data: [3227, 878, 999, 780, 1000],
25
- },
26
- {
27
- name: "Other",
28
- data: [1111, 677, 3245, 500, 200],
29
- },
30
- ];
31
-
32
- const columnOptions = {
33
- chart: {
34
- type: "column",
35
- },
36
- series: columnChartData,
37
- title: {
38
- text: "Solar Employment Growth by Sector, 2010-2016",
39
- },
40
- subtitle: {
41
- text: "Source: thesolarfoundation.com",
42
- },
43
- xAxis: {
44
- categories: ["Jan", "Feb", "Mar", "Apr", "May"],
45
- },
46
- yAxis: {
47
- min: 0,
48
- title: {
49
- text: "Number of Employees",
50
- },
51
- },
52
- legend: { enabled: false },
53
- credits: { enabled: false },
54
- };
55
-
56
- const BarGraphPbStyles = () => (
57
- <div>
58
- <HighchartsReact highcharts={Highcharts}
59
- options={columnOptions}
60
- />
61
- </div>
62
- )
63
-
64
- export default BarGraphPbStyles
@@ -1 +0,0 @@
1
- You don't need to use the bar graph kit to apply the styles to your Highcharts bar graph. Just import the BarGraphStyles.scss to your component and the styles will apply automatically.
@@ -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,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,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>