playbook_ui 14.13.0.pre.alpha.play1851checkboxreacthook6083 → 14.13.0.pre.alpha.play1884progresspill6064
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_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_picker/_date_picker.tsx +1 -3
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +2 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +7 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_table/docs/index.js +1 -2
- data/dist/chunks/{_typeahead-CR2Xkt-o.js → _typeahead-btjo1UN5.js} +2 -2
- data/dist/chunks/_weekday_stacked-TIh9nTmZ.js +45 -0
- data/dist/chunks/{lib-WQEeEj3t.js → lib-DjpLC8uO.js} +1 -1
- data/dist/chunks/{pb_form_validation-Cq64l4zn.js → pb_form_validation-S56UaHZl.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- 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 +1 -1
- metadata +7 -11
- 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_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/dist/chunks/_weekday_stacked-9LU-xxnS.js +0 -45
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playbook_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 14.13.0.pre.alpha.
|
4
|
+
version: 14.13.0.pre.alpha.play1884progresspill6064
|
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-
|
12
|
+
date: 2025-02-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -682,8 +682,6 @@ files:
|
|
682
682
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_swift.md
|
683
683
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_options.html.erb
|
684
684
|
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_props_swift.md
|
685
|
-
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.jsx
|
686
|
-
- app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.md
|
687
685
|
- app/pb_kits/playbook/pb_checkbox/docs/_description.md
|
688
686
|
- app/pb_kits/playbook/pb_checkbox/docs/example.yml
|
689
687
|
- app/pb_kits/playbook/pb_checkbox/docs/index.js
|
@@ -2278,6 +2276,7 @@ files:
|
|
2278
2276
|
- app/pb_kits/playbook/pb_progress_pills/docs/_description.md
|
2279
2277
|
- app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb
|
2280
2278
|
- app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx
|
2279
|
+
- app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md
|
2281
2280
|
- app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.html.erb
|
2282
2281
|
- app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.jsx
|
2283
2282
|
- app/pb_kits/playbook/pb_progress_pills/docs/example.yml
|
@@ -2767,9 +2766,6 @@ files:
|
|
2767
2766
|
- app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md
|
2768
2767
|
- app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.html.erb
|
2769
2768
|
- app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md
|
2770
|
-
- app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb
|
2771
|
-
- app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx
|
2772
|
-
- app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md
|
2773
2769
|
- app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.jsx
|
2774
2770
|
- app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents.md
|
2775
2771
|
- app/pb_kits/playbook/pb_table/docs/_table_with_subcomponents_as_divs.html.erb
|
@@ -3341,11 +3337,11 @@ files:
|
|
3341
3337
|
- app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
|
3342
3338
|
- app/pb_kits/playbook/utilities/text.ts
|
3343
3339
|
- app/pb_kits/playbook/utilities/validEmojiChecker.ts
|
3344
|
-
- dist/chunks/_typeahead-
|
3345
|
-
- dist/chunks/_weekday_stacked-
|
3340
|
+
- dist/chunks/_typeahead-btjo1UN5.js
|
3341
|
+
- dist/chunks/_weekday_stacked-TIh9nTmZ.js
|
3346
3342
|
- dist/chunks/lazysizes-B7xYodB-.js
|
3347
|
-
- dist/chunks/lib-
|
3348
|
-
- dist/chunks/pb_form_validation-
|
3343
|
+
- dist/chunks/lib-DjpLC8uO.js
|
3344
|
+
- dist/chunks/pb_form_validation-S56UaHZl.js
|
3349
3345
|
- dist/chunks/vendor.js
|
3350
3346
|
- dist/menu.yml
|
3351
3347
|
- dist/playbook-doc.js
|
@@ -1,69 +0,0 @@
|
|
1
|
-
import React, { useState } from "react"
|
2
|
-
import { useForm } from "react-hook-form"
|
3
|
-
import { Button, Checkbox, Flex, Body } from "playbook-ui"
|
4
|
-
|
5
|
-
const CheckboxReactHook = () => {
|
6
|
-
const { register, handleSubmit } = useForm({
|
7
|
-
defaultValues: {
|
8
|
-
Small: false,
|
9
|
-
Medium: false,
|
10
|
-
Large: false,
|
11
|
-
},
|
12
|
-
})
|
13
|
-
|
14
|
-
const [submittedData, setSubmittedData] = useState({
|
15
|
-
Small: false,
|
16
|
-
Medium: false,
|
17
|
-
Large: false,
|
18
|
-
})
|
19
|
-
|
20
|
-
const onSubmit = (data) => {
|
21
|
-
setSubmittedData(data)
|
22
|
-
}
|
23
|
-
|
24
|
-
return (
|
25
|
-
<Flex orientation="row">
|
26
|
-
<Flex align="start"
|
27
|
-
orientation="column"
|
28
|
-
paddingRight="lg"
|
29
|
-
>
|
30
|
-
<form onSubmit={handleSubmit(onSubmit)}>
|
31
|
-
<Checkbox padding="xs"
|
32
|
-
text="Small"
|
33
|
-
{...register("Small")}
|
34
|
-
/>
|
35
|
-
<br />
|
36
|
-
<Checkbox padding="xs"
|
37
|
-
text="Medium"
|
38
|
-
{...register("Medium")}
|
39
|
-
/>
|
40
|
-
<br />
|
41
|
-
<Checkbox padding="xs"
|
42
|
-
text="Large"
|
43
|
-
{...register("Large")}
|
44
|
-
/>
|
45
|
-
<br />
|
46
|
-
<Button htmlType="submit"
|
47
|
-
marginTop="sm"
|
48
|
-
text="submit"
|
49
|
-
/>
|
50
|
-
</form>
|
51
|
-
</Flex>
|
52
|
-
<Flex align="start"
|
53
|
-
orientation="column"
|
54
|
-
>
|
55
|
-
<Body padding="xs"
|
56
|
-
text={`Small: ${submittedData.Small ? "true" : "false"}`}
|
57
|
-
/>
|
58
|
-
<Body padding="xs"
|
59
|
-
text={`Medium: ${submittedData.Medium ? "true" : "false"}`}
|
60
|
-
/>
|
61
|
-
<Body padding="xs"
|
62
|
-
text={`Large: ${submittedData.Large ? "true" : "false"}`}
|
63
|
-
/>
|
64
|
-
</Flex>
|
65
|
-
</Flex>
|
66
|
-
)
|
67
|
-
}
|
68
|
-
|
69
|
-
export default CheckboxReactHook
|
@@ -1 +0,0 @@
|
|
1
|
-
You can pass react hook props to the checkbox kit.
|
@@ -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.
|