playbook_ui_docs 16.2.0.pre.alpha.PLAY2828alphafortempo14533 → 16.2.0.pre.alpha.advancedtablecascadingcollapsereact14676
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.jsx +50 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_reset_key.jsx +100 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_reset_key.md +1 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.jsx +68 -0
- data/app/pb_kits/playbook/pb_textarea/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_textarea/docs/index.js +9 -8
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 73e2f8cce80f7ddc8558342b713df9cb8e2c412dc6f0e20ab7938f6a87fbb5d8
|
|
4
|
+
data.tar.gz: 77c66654417cc37daadc19a69929edbbf7377e0a0b3bd8a21122830198541e8d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 475ec9994431041e30b8e62b3fd8641da128a00306c2e9a257b75cb97ce7f6854037db6c533cfb3c464ebbda945d461cd540a656680c6e28904cc3ec8f82e234
|
|
7
|
+
data.tar.gz: 6723887c0ae7938db6332aac37f29ed6691e20736241eadcf62de368a58a61c74aedba47d98b395869a4bb9839fc874ec2474c564e85d554151abe638cfb6131
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import AdvancedTable from '../../pb_advanced_table/_advanced_table'
|
|
3
|
+
import MOCK_DATA from "./advanced_table_mock_data.json"
|
|
4
|
+
|
|
5
|
+
const AdvancedTableCascadeCollapse = (props) => {
|
|
6
|
+
const columnDefinitions = [
|
|
7
|
+
{
|
|
8
|
+
accessor: "year",
|
|
9
|
+
label: "Year",
|
|
10
|
+
cellAccessors: ["quarter", "month", "day"],
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
accessor: "newEnrollments",
|
|
14
|
+
label: "New Enrollments",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
accessor: "scheduledMeetings",
|
|
18
|
+
label: "Scheduled Meetings",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
accessor: "attendanceRate",
|
|
22
|
+
label: "Attendance Rate",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
accessor: "completedClasses",
|
|
26
|
+
label: "Completed Classes",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
accessor: "classCompletionRate",
|
|
30
|
+
label: "Class Completion Rate",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
accessor: "graduatedStudents",
|
|
34
|
+
label: "Graduated Students",
|
|
35
|
+
},
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<div>
|
|
40
|
+
<AdvancedTable
|
|
41
|
+
cascadeCollapse
|
|
42
|
+
columnDefinitions={columnDefinitions}
|
|
43
|
+
tableData={MOCK_DATA}
|
|
44
|
+
{...props}
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default AdvancedTableCascadeCollapse
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
`cascadeCollapse` is an optional prop that is set to 'false' by default. If set to 'true', collapsing any parent row itself or by using the toggle exapansion buttons in any header or subheader row also collapses all descendants and clears their expansion state. Re-expanding then shows only direct children until the user expands deeper levels again.
|
|
@@ -42,6 +42,7 @@ examples:
|
|
|
42
42
|
- advanced_table_expanded_control: Expanded Control
|
|
43
43
|
- advanced_table_expand_by_depth: Expand by Depth
|
|
44
44
|
- advanced_table_subrow_headers: SubRow Headers
|
|
45
|
+
- advanced_table_cascade_collapse: Cascade Collapse
|
|
45
46
|
- advanced_table_collapsible_trail: Collapsible Trail
|
|
46
47
|
- advanced_table_table_options: Table Options
|
|
47
48
|
- advanced_table_table_props: Table Props
|
|
@@ -48,4 +48,5 @@ export { default as AdvancedTablePaddingControl } from './_advanced_table_paddin
|
|
|
48
48
|
export { default as AdvancedTablePaddingControlPerRow } from './_advanced_table_padding_control_per_row.jsx'
|
|
49
49
|
export { default as AdvancedTableColumnStylingBackground } from './_advanced_table_column_styling_background.jsx'
|
|
50
50
|
export { default as AdvancedTableColumnStylingBackgroundMulti } from './_advanced_table_column_styling_background_multi.jsx'
|
|
51
|
-
export { default as AdvancedTableColumnStylingBackgroundCustom } from './_advanced_table_column_styling_background_custom.jsx'
|
|
51
|
+
export { default as AdvancedTableColumnStylingBackgroundCustom } from './_advanced_table_column_styling_background_custom.jsx'
|
|
52
|
+
export { default as AdvancedTableCascadeCollapse } from './_advanced_table_cascade_collapse.jsx'
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import MultiLevelSelect from "../_multi_level_select";
|
|
3
|
+
import { Button } from "playbook-ui";
|
|
4
|
+
|
|
5
|
+
const treeData = [
|
|
6
|
+
{
|
|
7
|
+
label: "Power Home Remodeling",
|
|
8
|
+
value: "powerHomeRemodeling",
|
|
9
|
+
id: "100",
|
|
10
|
+
expanded: true,
|
|
11
|
+
children: [
|
|
12
|
+
{
|
|
13
|
+
label: "People",
|
|
14
|
+
value: "people",
|
|
15
|
+
id: "101",
|
|
16
|
+
expanded: true,
|
|
17
|
+
children: [
|
|
18
|
+
{
|
|
19
|
+
label: "Talent Acquisition",
|
|
20
|
+
value: "talentAcquisition",
|
|
21
|
+
id: "102",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
label: "Business Affairs",
|
|
25
|
+
value: "businessAffairs",
|
|
26
|
+
id: "103",
|
|
27
|
+
children: [
|
|
28
|
+
{
|
|
29
|
+
label: "Initiatives",
|
|
30
|
+
value: "initiatives",
|
|
31
|
+
id: "104",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: "Learning & Development",
|
|
35
|
+
value: "learningAndDevelopment",
|
|
36
|
+
id: "105",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: "People Experience",
|
|
42
|
+
value: "peopleExperience",
|
|
43
|
+
id: "106",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: "Contact Center",
|
|
49
|
+
value: "contactCenter",
|
|
50
|
+
id: "107",
|
|
51
|
+
children: [
|
|
52
|
+
{
|
|
53
|
+
label: "Appointment Management",
|
|
54
|
+
value: "appointmentManagement",
|
|
55
|
+
id: "108",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
label: "Customer Service",
|
|
59
|
+
value: "customerService",
|
|
60
|
+
id: "109",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: "Energy",
|
|
64
|
+
value: "energy",
|
|
65
|
+
id: "110",
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
const MultiLevelSelectReactResetKey = (props) => {
|
|
74
|
+
const [resetKey, setResetKey] = useState(0);
|
|
75
|
+
|
|
76
|
+
const handleReset = () => {
|
|
77
|
+
setResetKey((k) => k + 1);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<>
|
|
82
|
+
<MultiLevelSelect
|
|
83
|
+
{...props}
|
|
84
|
+
id="multi-level-select-reset-example"
|
|
85
|
+
key={`multi-level-select-reset-${resetKey}`}
|
|
86
|
+
name="my_array"
|
|
87
|
+
returnAllSelected
|
|
88
|
+
treeData={treeData}
|
|
89
|
+
/>
|
|
90
|
+
<Button
|
|
91
|
+
id="multilevelselect-reset-button"
|
|
92
|
+
marginTop="lg"
|
|
93
|
+
onClick={handleReset}
|
|
94
|
+
text="Reset"
|
|
95
|
+
/>
|
|
96
|
+
</>
|
|
97
|
+
);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export default MultiLevelSelectReactResetKey;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
When a parent resets a Multi Level Select (e.g., “Default” or “Clear”), the kit needs a `key` that changes with the selection because React uses the `key` to determine component identity and whether to preserve internal state. If the `key` doesn’t change, React reuses the existing instance and may keep showing the old selection instead of resetting to the new one.
|
|
@@ -39,3 +39,4 @@ examples:
|
|
|
39
39
|
- multi_level_select_disabled_options_parent: Disabled Parent Option (Return All Selected)
|
|
40
40
|
- multi_level_select_single_disabled: Disabled Options (Single Select)
|
|
41
41
|
- multi_level_select_required_indicator: Required Indicator
|
|
42
|
+
- multi_level_select_react_reset_key: Reset with Key (React)
|
|
@@ -17,3 +17,4 @@ export { default as MultiLevelSelectDisabledOptionsDefault } from "./_multi_leve
|
|
|
17
17
|
export { default as MultiLevelSelectLabel } from "./_multi_level_select_label.jsx"
|
|
18
18
|
export { default as MultiLevelSelectSingleDisabled } from "./_multi_level_select_single_disabled.jsx"
|
|
19
19
|
export { default as MultiLevelSelectRequiredIndicator } from "./_multi_level_select_required_indicator.jsx"
|
|
20
|
+
export { default as MultiLevelSelectReactResetKey } from "./_multi_level_select_react_reset_key.jsx"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import React, { useState } from "react"
|
|
2
|
+
|
|
3
|
+
import Textarea from "../_textarea"
|
|
4
|
+
|
|
5
|
+
const TextareaInputOptions = (props) => {
|
|
6
|
+
const [value1, setValue1] = useState("")
|
|
7
|
+
const [value2, setValue2] = useState("")
|
|
8
|
+
const [value3, setValue3] = useState("")
|
|
9
|
+
const [value4, setValue4] = useState("")
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<div>
|
|
13
|
+
<Textarea
|
|
14
|
+
id="container-id"
|
|
15
|
+
label="ID on Container"
|
|
16
|
+
name="comment"
|
|
17
|
+
onChange={(e) => setValue1(e.target.value)}
|
|
18
|
+
rows={4}
|
|
19
|
+
value={value1}
|
|
20
|
+
{...props}
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
<br />
|
|
24
|
+
|
|
25
|
+
<Textarea
|
|
26
|
+
inputOptions={{ id: "textarea-id" }}
|
|
27
|
+
label="ID on Textarea via inputOptions"
|
|
28
|
+
name="comment"
|
|
29
|
+
onChange={(e) => setValue2(e.target.value)}
|
|
30
|
+
rows={4}
|
|
31
|
+
value={value2}
|
|
32
|
+
{...props}
|
|
33
|
+
/>
|
|
34
|
+
|
|
35
|
+
<br />
|
|
36
|
+
|
|
37
|
+
<Textarea
|
|
38
|
+
id="container-id-2"
|
|
39
|
+
inputOptions={{ id: "textarea-id-2" }}
|
|
40
|
+
label="Both Container and Textarea IDs"
|
|
41
|
+
name="comment"
|
|
42
|
+
onChange={(e) => setValue3(e.target.value)}
|
|
43
|
+
rows={4}
|
|
44
|
+
value={value3}
|
|
45
|
+
{...props}
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<br />
|
|
49
|
+
|
|
50
|
+
<Textarea
|
|
51
|
+
inputOptions={{
|
|
52
|
+
"aria-label": "Enter description",
|
|
53
|
+
"aria-describedby": "help-text",
|
|
54
|
+
data: { controller: "textarea", action: "focus->handleFocus" },
|
|
55
|
+
id: "description-textarea"
|
|
56
|
+
}}
|
|
57
|
+
label="Data and ARIA Attributes"
|
|
58
|
+
name="description"
|
|
59
|
+
onChange={(e) => setValue4(e.target.value)}
|
|
60
|
+
rows={4}
|
|
61
|
+
value={value4}
|
|
62
|
+
{...props}
|
|
63
|
+
/>
|
|
64
|
+
</div>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export default TextareaInputOptions
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export { default as TextareaDefault } from
|
|
1
|
+
export { default as TextareaDefault } from "./_textarea_default.jsx"
|
|
2
2
|
export { default as TextareaDisabled } from './_textarea_disabled.jsx'
|
|
3
|
-
export { default as TextareaResize } from
|
|
4
|
-
export { default as TextareaCustom } from
|
|
5
|
-
export { default as TextareaError } from
|
|
6
|
-
export { default as TextareaCharacterCounter } from
|
|
7
|
-
export { default as TextareaInline } from
|
|
8
|
-
export { default as TextareaEmojiMask } from
|
|
9
|
-
export { default as TextareaRequiredIndicator } from
|
|
3
|
+
export { default as TextareaResize } from "./_textarea_resize.jsx"
|
|
4
|
+
export { default as TextareaCustom } from "./_textarea_custom.jsx"
|
|
5
|
+
export { default as TextareaError } from "./_textarea_error.jsx"
|
|
6
|
+
export { default as TextareaCharacterCounter } from "./_textarea_character_counter.jsx"
|
|
7
|
+
export { default as TextareaInline } from "./_textarea_inline.jsx"
|
|
8
|
+
export { default as TextareaEmojiMask } from "./_textarea_emoji_mask.jsx"
|
|
9
|
+
export { default as TextareaRequiredIndicator } from "./_textarea_required_indicator.jsx"
|
|
10
|
+
export { default as TextareaInputOptions } from "./_textarea_input_options.jsx"
|
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: 16.2.0.pre.alpha.
|
|
4
|
+
version: 16.2.0.pre.alpha.advancedtablecascadingcollapsereact14676
|
|
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: 2026-02-
|
|
12
|
+
date: 2026-02-25 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: playbook_ui
|
|
@@ -43,6 +43,8 @@ files:
|
|
|
43
43
|
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.md
|
|
44
44
|
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb
|
|
45
45
|
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.md
|
|
46
|
+
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.jsx
|
|
47
|
+
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_cascade_collapse.md
|
|
46
48
|
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx
|
|
47
49
|
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.md
|
|
48
50
|
- app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb
|
|
@@ -1449,6 +1451,8 @@ files:
|
|
|
1449
1451
|
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.md
|
|
1450
1452
|
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.jsx
|
|
1451
1453
|
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.md
|
|
1454
|
+
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_reset_key.jsx
|
|
1455
|
+
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_reset_key.md
|
|
1452
1456
|
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_required_indicator.html.erb
|
|
1453
1457
|
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_required_indicator.jsx
|
|
1454
1458
|
- app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_required_indicator.md
|
|
@@ -2389,6 +2393,7 @@ files:
|
|
|
2389
2393
|
- app/pb_kits/playbook/pb_textarea/docs/_textarea_inline.html.erb
|
|
2390
2394
|
- app/pb_kits/playbook/pb_textarea/docs/_textarea_inline.jsx
|
|
2391
2395
|
- app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.html.erb
|
|
2396
|
+
- app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.jsx
|
|
2392
2397
|
- app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.md
|
|
2393
2398
|
- app/pb_kits/playbook/pb_textarea/docs/_textarea_props_swift.md
|
|
2394
2399
|
- app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.html.erb
|