playbook_ui_docs 16.0.0 → 16.1.0.pre.alpha.PLAY2744dropdownquickpickpt113851

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +2 -2
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading_rails.html.erb +64 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading_rails.md +18 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
  6. data/app/pb_kits/playbook/pb_background/docs/_background_responsive.jsx +30 -0
  7. data/app/pb_kits/playbook/pb_background/docs/_background_responsive.md +1 -0
  8. data/app/pb_kits/playbook/pb_background/docs/example.yml +1 -0
  9. data/app/pb_kits/playbook/pb_background/docs/index.js +1 -0
  10. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection_rails.md +3 -0
  11. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection_react.md +3 -0
  12. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.html.erb +52 -0
  13. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.jsx +72 -0
  14. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_clearable.md +5 -0
  15. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height.jsx +33 -0
  16. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_rails.html.erb +20 -0
  17. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_rails.md +8 -0
  18. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_constrain_height_react.md +8 -0
  19. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.html.erb +9 -0
  20. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.jsx +33 -0
  21. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_placeholder.md +3 -0
  22. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +6 -0
  23. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +4 -1
  24. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +3 -1
  25. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.md +1 -1
  26. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_input_display.html.erb +74 -0
  27. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_input_display.jsx +87 -0
  28. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_input_display.md +3 -0
  29. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_disabled.html.erb +135 -0
  30. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_disabled.jsx +147 -0
  31. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_disabled.md +1 -0
  32. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +35 -31
  33. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +2 -0
  34. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.html.erb +30 -0
  35. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.jsx +1 -1
  36. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_with_tooltip.md +1 -1
  37. data/app/pb_kits/playbook/pb_multiple_users/docs/example.yml +1 -0
  38. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.jsx +35 -0
  39. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.md +3 -0
  40. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.html.erb +10 -0
  41. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +21 -0
  42. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.md +3 -0
  43. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +3 -0
  44. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +2 -0
  45. data/app/pb_kits/playbook/pb_table/docs/_sections.yml +68 -0
  46. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.html.erb +39 -0
  47. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_input_options.md +3 -0
  48. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.html.erb +5 -0
  49. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.jsx +25 -0
  50. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_required_indicator.md +3 -0
  51. data/app/pb_kits/playbook/pb_textarea/docs/example.yml +4 -1
  52. data/app/pb_kits/playbook/pb_textarea/docs/index.js +1 -0
  53. metadata +36 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6979e6789aa5d34bb598b9fb40404ff29658c2109f118497647503414d0aa57
4
- data.tar.gz: fc1f6bfcfac4869de68fdee635d998bba02f6c75f75f05750e527957569cf755
3
+ metadata.gz: b942a4975518f7b174fe75f98021690ce181d0a89ac5338903cc0e3a9b147bf7
4
+ data.tar.gz: bf4e2117d812d3d9842b876c8d9ee403522ecf3ab50ec05a4622587dee83e3e6
5
5
  SHA512:
6
- metadata.gz: 93046e97dbb1c968907098cb73656a55fc7d25e0d43c0f915e37959e57fe745b3cdd2635c4b3403f37ca57060bdf54018c5e1e7fe3babf1fd15caa9bcbdbabac
7
- data.tar.gz: 7442bdffb6f159cc45fa7d64da4cd98df25b700fc88d470b243740e7dbc82e504d7c23ac401c475754b2794b0bd5fc2e7dd0309939397106a761158aefc3fd1c
6
+ metadata.gz: 61582c795df91633ccee14ca44ce83ee0a8b1a461486f92e843302638a77053482e6daf76a6e4b7ff7e4c47c88b3039d31ded1b47b42462e7ca2a1623ca8a63d
7
+ data.tar.gz: bcfe0ce40ddbba8c9bd899e64751d1b01bceb0b5ce8f8797af7ef8f36c3c19f159562791551935f3480dd427439efc20cff93af2d2340d7233fadb4e1a9a6c08
@@ -6,9 +6,9 @@ In the first Advanced Table in this code example, 2021 has an empty children arr
6
6
  This prop is set to `false` by default.
7
7
 
8
8
 
9
- ### persistToggleExpansion
9
+ ### persistToggleExpansionButton
10
10
  The `persistToggleExpansionButton` is a boolean prop that renders the toggle-all icon in the top left header cell for complex datasets with empty `children` arrays and advanced querying logic explained in the preceeding doc example. Your logic may require an additional query helper file to update data specifically from requerying via toggle all buttons.
11
11
 
12
12
  In the second and third Advanced Tables in this code example, all 3 rows have empty children arrays. The second Advanced Table demonstrates that the toggle all button does not render (prior to an initial row expansion) without `persistToggleExpansionButton` in place. The third Advanced Table shows the toggle all button due to `persistToggleExpansionButton`.
13
13
 
14
- This prop is set to false by default and should only be used in conjunction with `inlineRowLoading`.
14
+ This prop is set to `false` by default and should only be used in conjunction with `inlineRowLoading`.
@@ -0,0 +1,64 @@
1
+ <% column_definitions = [
2
+ {
3
+ accessor: "year",
4
+ label: "Year",
5
+ cellAccessors: ["quarter", "month", "day"],
6
+ },
7
+ {
8
+ accessor: "newEnrollments",
9
+ label: "New Enrollments",
10
+ },
11
+ {
12
+ accessor: "scheduledMeetings",
13
+ label: "Scheduled Meetings",
14
+ },
15
+ {
16
+ accessor: "attendanceRate",
17
+ label: "Attendance Rate",
18
+ },
19
+ {
20
+ accessor: "completedClasses",
21
+ label: "Completed Classes",
22
+ },
23
+ {
24
+ accessor: "classCompletionRate",
25
+ label: "Class Completion Rate",
26
+ },
27
+ {
28
+ accessor: "graduatedStudents",
29
+ label: "Graduated Students",
30
+ }
31
+ ] %>
32
+
33
+ <%= pb_rails("caption", props: { text: "Inline Row Loading - Demonstrated in Row 1 (Rows 2 and 3 have data)" }) %>
34
+
35
+ <%= pb_rails("advanced_table", props: {
36
+ id: "inline-loading-table-1",
37
+ table_data: @table_data_inline_loading,
38
+ column_definitions: column_definitions,
39
+ enable_toggle_expansion: "all",
40
+ inline_row_loading: true,
41
+ margin_bottom: "md"
42
+ }) %>
43
+
44
+ <%= pb_rails("caption", props: { text: "Inline Row Loading with No Subrow Data - All Rows Display Inline Row Loading and the Toggle All Button is not rendered" }) %>
45
+
46
+ <%= pb_rails("advanced_table", props: {
47
+ id: "inline-loading-table-2",
48
+ table_data: @table_data_inline_loading_empty_children,
49
+ column_definitions: column_definitions,
50
+ enable_toggle_expansion: "all",
51
+ inline_row_loading: true,
52
+ margin_bottom: "md"
53
+ }) %>
54
+
55
+ <%= pb_rails("caption", props: { text: "Inline Row Loading and Persist Toggle Expansion Button with No Subrow Data - All Rows Display Inline Row Loading and the Toggle All Button is rendered" }) %>
56
+
57
+ <%= pb_rails("advanced_table", props: {
58
+ id: "inline-loading-table-3",
59
+ table_data: @table_data_inline_loading_empty_children,
60
+ column_definitions: column_definitions,
61
+ enable_toggle_expansion: "all",
62
+ inline_row_loading: true,
63
+ persist_toggle_expansion_button: true
64
+ }) %>
@@ -0,0 +1,18 @@
1
+ ### inline_row_loading
2
+ By default, the kit assumes that the initial dataset is complete, rendering expansion controls only when children are present. If, however, you want to implement lazy-loading patterns where children are fetched only when a parent is expanded, use the `inline_row_loading` prop.
3
+
4
+ When `inline_row_loading` is set to `true`:
5
+ - Expansion controls are rendered for rows with empty `children` arrays (you must pass `children: []` to any row that will have children loaded later)
6
+ - When such a row is expanded, an inline loading indicator appears until the child data is loaded
7
+ - This enables lazy-loading patterns without one-off hacks
8
+
9
+ In the first table above, row "2021" has an empty `children` array. Click to expand it and see the inline loading state. Rows 2 and 3 have actual child data.
10
+
11
+ This prop is set to `false` by default.
12
+
13
+ ### persist_toggle_expansion_button
14
+ The `persist_toggle_expansion_button` is a boolean prop that renders the toggle-all icon in the top left header cell for complex datasets with empty `children` arrays and advanced querying logic explained in the preceding doc example. Your logic may require an additional query helper file to update data specifically from requerying via toggle all buttons.
15
+
16
+ In the second and third Advanced Tables in this code example, all 3 rows have empty children arrays. The second Advanced Table demonstrates that the toggle all button does not render (prior to an initial row expansion) without `persist_toggle_expansion_button` in place. The third Advanced Table shows the toggle all button due to `persist_toggle_expansion_button`.
17
+
18
+ This prop is set to `false` by default and should only be used in conjunction with `inline_row_loading`.
@@ -29,6 +29,7 @@ examples:
29
29
  - advanced_table_background_control_rails: Column Styling Background Color
30
30
  - advanced_table_background_colors_rails: Column Styling Individual Cell Background Color
31
31
  - advanced_table_column_border_color_rails: Column Group Border Color
32
+ - advanced_table_inline_row_loading_rails: Inline Row Loading
32
33
 
33
34
 
34
35
  react:
@@ -0,0 +1,30 @@
1
+ import React from 'react'
2
+ import Background from '../../pb_background/_background'
3
+
4
+ const BackgroundResponsive = (props) => (
5
+ <>
6
+ <Background
7
+ alt="colorful background"
8
+ backgroundColor={{ xs: "primary", sm: "warning", md: "success", lg: "error", xl: "category_1" }}
9
+ className="background lazyload"
10
+ padding="xl"
11
+ {...props}
12
+ />
13
+ <br/>
14
+ <Background
15
+ alt="colorful background"
16
+ className="background lazyload"
17
+ imageUrl={{
18
+ xs: "https://unsplash.it/500/400/?image=633",
19
+ sm: "https://images.unsplash.com/photo-1528459801416-a9e53bbf4e17?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1000&q=80",
20
+ md: "https://unsplash.it/500/400/?image=633",
21
+ lg: "https://images.unsplash.com/photo-1528459801416-a9e53bbf4e17?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1000&q=80",
22
+ xl: "https://unsplash.it/500/400/?image=633"
23
+ }}
24
+ padding="xl"
25
+ {...props}
26
+ />
27
+ </>
28
+ )
29
+
30
+ export default BackgroundResponsive
@@ -0,0 +1 @@
1
+ The `backgroundColor`, `backgroundSize`, `backgroundPosition`, `backgroundRepeat`, and `imageUrl` props support responsive sizes. To use them, pass an object to the prop containing your values relative to responsive break points. To test this here, resize your browser window to responsively change these Backgrounds' `backgroundColor` and `imageUrl`.
@@ -20,3 +20,4 @@ examples:
20
20
  - background_category: Category
21
21
  - background_size: Size
22
22
  - background_overlay: Overlay
23
+ - background_responsive: Responsive
@@ -7,3 +7,4 @@ export { default as BackgroundStatusSubtle } from './_background_status_subtle.j
7
7
  export { default as BackgroundCategory } from './_background_category.jsx'
8
8
  export { default as BackgroundSize } from './_background_size.jsx'
9
9
  export { default as BackgroundOverlay } from './_background_overlay.jsx'
10
+ export { default as BackgroundResponsive } from './_background_responsive.jsx'
@@ -0,0 +1,3 @@
1
+ The `blank_selection` prop adds a blank option at the top of the dropdown options list. This allows users to explicitly clear their selection by choosing the blank option.
2
+
3
+ The blank selection option appears as the first item in the dropdown and has an empty value (`id: ""`, `value: ""`). When selected, it effectively clears the dropdown selection.
@@ -0,0 +1,3 @@
1
+ The `blankSelection` prop adds a blank option at the top of the dropdown options list. This allows users to explicitly clear their selection by choosing the blank option.
2
+
3
+ The blank selection option appears as the first item in the dropdown and has an empty value (`id: ""`, `value: ""`). When selected, it effectively clears the dropdown selection.
@@ -0,0 +1,52 @@
1
+ <%
2
+ options = [
3
+ { label: 'United States', value: 'unitedStates', id: 'us' },
4
+ { label: 'Canada', value: 'canada', id: 'ca' },
5
+ { label: 'Pakistan', value: 'pakistan', id: 'pk' },
6
+ ]
7
+ %>
8
+
9
+ <%= pb_rails("dropdown", props: {
10
+ id: "date-range-quickpick-reset-closeable",
11
+ label: "Quick Pick",
12
+ variant: "quickpick",
13
+ clearable: false
14
+ }) %>
15
+
16
+ <%= pb_rails("button", props: {
17
+ margin_y: "md",
18
+ text: "Reset",
19
+ html_options: {
20
+ onclick: "handleReset()"
21
+ }
22
+ }) %>
23
+
24
+ <%= pb_rails("dropdown", props: {
25
+ id: "closeable-default",
26
+ options: options,
27
+ clearable: false,
28
+ default_value: options.last,
29
+ margin_bottom: "md",
30
+ label: "Default"
31
+ }) %>
32
+
33
+ <%= pb_rails("dropdown", props: {
34
+ id: "closeable-subtle",
35
+ options: options,
36
+ clearable: false,
37
+ default_value: options.second,
38
+ variant: "subtle",
39
+ separators: false,
40
+ label: "Subtle"
41
+ }) %>
42
+
43
+ <script>
44
+ function handleReset() {
45
+ const dropdown = document.querySelector("#date-range-quickpick-reset-closeable[data-pb-dropdown]");
46
+ const instance = dropdown?._pbDropdownInstance;
47
+
48
+ if (instance) {
49
+ instance.clearSelection();
50
+ }
51
+ }
52
+ </script>
@@ -0,0 +1,72 @@
1
+ import React, { useRef } from 'react'
2
+
3
+ import Button from '../../pb_button/_button'
4
+ import Dropdown from '../../pb_dropdown/_dropdown'
5
+
6
+ const DropdownWithClearable = (props) => {
7
+ const dropdownRef = useRef(null)
8
+
9
+ const options = [
10
+ {
11
+ label: "United States",
12
+ value: "unitedStates",
13
+ id: "us"
14
+ },
15
+ {
16
+ label: "Canada",
17
+ value: "canada",
18
+ id: "ca"
19
+ },
20
+ {
21
+ label: "Pakistan",
22
+ value: "pakistan",
23
+ id: "pk"
24
+ }
25
+ ]
26
+
27
+ const handleReset = () => {
28
+ if (dropdownRef.current) {
29
+ dropdownRef.current.clearSelected()
30
+ }
31
+ }
32
+
33
+ return (
34
+ <>
35
+ <Dropdown
36
+ clearable={false}
37
+ label="Quick Pick"
38
+ onSelect={() => {}}
39
+ ref={dropdownRef}
40
+ variant="quickpick"
41
+ {...props}
42
+ />
43
+ <Button
44
+ marginY="md"
45
+ onClick={handleReset}
46
+ text="Reset"
47
+ />
48
+
49
+ <Dropdown
50
+ clearable={false}
51
+ defaultValue={options[options.length - 1]}
52
+ label="Default"
53
+ marginBottom="md"
54
+ options={options}
55
+ variant="default"
56
+ {...props}
57
+ />
58
+
59
+ <Dropdown
60
+ clearable={false}
61
+ defaultValue={options[1]}
62
+ label="Subtle"
63
+ options={options}
64
+ separators={false}
65
+ variant="subtle"
66
+ {...props}
67
+ />
68
+ </>
69
+ )
70
+ }
71
+
72
+ export default DropdownWithClearable
@@ -0,0 +1,5 @@
1
+ The `clearable` prop controls whether the clear (X) button appears in the dropdown. When set to `false`, the clear button is hidden.
2
+
3
+ This is useful in two scenarios:
4
+ 1. When you have a separate "Reset" or "Defaults" button that handles clearing the selection (as shown in the Quick Pick example)
5
+ 2. When you don't want to provide any way to clear the selection (as shown in the Default and Subtle examples)
@@ -0,0 +1,33 @@
1
+ import React from 'react'
2
+ import Dropdown from '../../pb_dropdown/_dropdown'
3
+
4
+ const DropdownWithConstrainHeight = (props) => {
5
+ // Create a long list of options to demonstrate height constraint
6
+ const options = Array.from({ length: 30 }, (_, i) => ({
7
+ label: `Option ${i + 1}`,
8
+ value: `option_${i + 1}`,
9
+ id: `opt_${i + 1}`
10
+ }))
11
+
12
+ return (
13
+ <>
14
+ <Dropdown
15
+ data={{ testid: "dropdown-no-constrain" }}
16
+ label="Without Constrain Height (Default)"
17
+ marginBottom="md"
18
+ options={options}
19
+ {...props}
20
+ />
21
+
22
+ <Dropdown
23
+ constrainHeight
24
+ data={{ testid: "dropdown-constrain" }}
25
+ label="With Constrain Height"
26
+ options={options}
27
+ {...props}
28
+ />
29
+ </>
30
+ )
31
+ }
32
+
33
+ export default DropdownWithConstrainHeight
@@ -0,0 +1,20 @@
1
+ <%
2
+ # Create a long list of options to demonstrate height constraint
3
+ options = (1..30).map do |i|
4
+ { label: "Option #{i}", value: "option_#{i}", id: "opt_#{i}" }
5
+ end
6
+ %>
7
+
8
+ <%= pb_rails("dropdown", props: {
9
+ id: "dropdown-no-constrain",
10
+ options: options,
11
+ label: "Without Constrain Height (Default)",
12
+ margin_bottom: "md"
13
+ }) %>
14
+
15
+ <%= pb_rails("dropdown", props: {
16
+ id: "dropdown-constrain",
17
+ options: options,
18
+ constrain_height: true,
19
+ label: "With Constrain Height"
20
+ }) %>
@@ -0,0 +1,8 @@
1
+ The `constrain_height` prop limits the dropdown container height to 18em and enables vertical scrolling when the content exceeds this height. This prevents long dropdown lists from rendering off-screen.
2
+
3
+ When `constrain_height` is `true`, the dropdown will:
4
+ - Have a maximum height of 18em
5
+ - Show a scrollbar when content exceeds the max height
6
+ - Prevent the dropdown from extending beyond the viewport
7
+
8
+ This is particularly useful for dropdowns with many options, such as long lists or quickpick variants with many date range options.
@@ -0,0 +1,8 @@
1
+ The `constrainHeight` prop limits the dropdown container height to 18em and enables vertical scrolling when the content exceeds this height. This prevents long dropdown lists from rendering off-screen.
2
+
3
+ When `constrainHeight` is `true`, the dropdown will:
4
+ - Have a maximum height of 18em
5
+ - Show a scrollbar when content exceeds the max height
6
+ - Prevent the dropdown from extending beyond the viewport
7
+
8
+ This is particularly useful for dropdowns with many options, such as long lists or quickpick variants with many date range options.
@@ -0,0 +1,9 @@
1
+ <%
2
+ options = [
3
+ { label: 'United States', value: 'unitedStates', id: 'us' },
4
+ { label: 'Canada', value: 'canada', id: 'ca' },
5
+ { label: 'Pakistan', value: 'pakistan', id: 'pk' },
6
+ ]
7
+ %>
8
+
9
+ <%= pb_rails("dropdown", props: { options: options, placeholder: "Choose a country" }) %>
@@ -0,0 +1,33 @@
1
+ import React from 'react'
2
+ import Dropdown from '../../pb_dropdown/_dropdown'
3
+
4
+ const DropdownWithPlaceholder = (props) => {
5
+
6
+ const options = [
7
+ {
8
+ label: "United States",
9
+ value: "unitedStates",
10
+ id: "us"
11
+ },
12
+ {
13
+ label: "Canada",
14
+ value: "canada",
15
+ id: "ca"
16
+ },
17
+ {
18
+ label: "Pakistan",
19
+ value: "pakistan",
20
+ id: "pk"
21
+ }
22
+ ];
23
+
24
+ return (
25
+ <Dropdown
26
+ options={options}
27
+ placeholder="Choose a country"
28
+ {...props}
29
+ />
30
+ )
31
+ }
32
+
33
+ export default DropdownWithPlaceholder
@@ -0,0 +1,3 @@
1
+ The `placeholder` prop allows you to customize the placeholder text that appears when no option is selected in the dropdown.
2
+
3
+ The placeholder prop works with all dropdown variants (`default`, `subtle`, and `quickpick`). When no option is selected, the placeholder text is displayed. When an option is selected, the placeholder is replaced by the selected option's label. The default placeholder text is "Select..." if no placeholder is provided.
@@ -21,7 +21,10 @@ examples:
21
21
  - dropdown_default_value: Default Value
22
22
  - dropdown_multi_select_with_default: Multi Select Default Value
23
23
  - dropdown_blank_selection: Blank Selection
24
+ - dropdown_with_placeholder: Placeholder
24
25
  - dropdown_separators_hidden: Separators Hidden
26
+ - dropdown_with_clearable: Clearable
27
+ - dropdown_with_constrain_height_rails: Constrain Height
25
28
  - dropdown_quickpick_rails: Quick Pick Variant
26
29
  - dropdown_quickpick_range_end_rails: Quick Pick Variant (Range Ends Today)
27
30
  - dropdown_quickpick_default_dates: Quick Pick Variant (Default Dates)
@@ -52,7 +55,10 @@ examples:
52
55
  - dropdown_default_value: Default Value
53
56
  - dropdown_multi_select_with_default: Multi Select Default Value
54
57
  - dropdown_blank_selection: Blank Selection
58
+ - dropdown_with_placeholder: Placeholder
55
59
  - dropdown_clear_selection: Clear Selection
60
+ - dropdown_with_clearable: Clearable
61
+ - dropdown_with_constrain_height: Constrain Height
56
62
  - dropdown_separators_hidden: Separators Hidden
57
63
  - dropdown_with_external_control: useDropdown Hook
58
64
  - dropdown_quickpick: Quick Pick Variant
@@ -11,6 +11,7 @@ export { default as DropdownSubcomponentStructure } from './_dropdown_subcompone
11
11
  export { default as DropdownError } from './_dropdown_error.jsx'
12
12
  export { default as DropdownDefaultValue } from './_dropdown_default_value.jsx'
13
13
  export { default as DropdownBlankSelection } from './_dropdown_blank_selection.jsx'
14
+ export { default as DropdownWithPlaceholder } from './_dropdown_with_placeholder.jsx'
14
15
  export { default as DropdownClearSelection } from './_dropdown_clear_selection.jsx'
15
16
  export { default as DropdownSubtleVariant } from './_dropdown_subtle_variant.jsx'
16
17
  export { default as DropdownSeparatorsHidden } from './_dropdown_separators_hidden.jsx'
@@ -27,4 +28,6 @@ export { default as DropdownQuickpick } from './_dropdown_quickpick.jsx'
27
28
  export { default as DropdownQuickpickRangeEnd } from './_dropdown_quickpick_range_end.jsx'
28
29
  export { default as DropdownQuickpickDefaultDates } from './_dropdown_quickpick_default_dates.jsx'
29
30
  export { default as DropdownQuickpickWithDatePickers } from './_dropdown_quickpick_with_date_pickers.jsx'
30
- export { default as DropdownQuickpickCustom } from './_dropdown_quickpick_custom.jsx'
31
+ export { default as DropdownQuickpickCustom } from './_dropdown_quickpick_custom.jsx'
32
+ export { default as DropdownWithClearable } from './_dropdown_with_clearable.jsx'
33
+ export { default as DropdownWithConstrainHeight } from './_dropdown_with_constrain_height.jsx'
@@ -1,6 +1,8 @@
1
1
  <%= pb_form_with(scope: :example, url: "", method: :get, validate: true) do |form| %>
2
2
  <%= form.text_field :example_text_field, props: { label: true, required: true, required_indicator: true } %>
3
3
  <%= form.text_field :example_text_field_2, props: { label: "Text Field Custom Label", required: true, required_indicator: true } %>
4
+ <%= form.text_area :example_text_area, props: { label: true, required: true, required_indicator: true } %>
5
+ <%= form.text_area :example_text_area_2, props: { label: "Textarea Custom Label", required: true, required_indicator: true } %>
4
6
  <%= form.email_field :example_email_field, props: { label: true, required: true, required_indicator: true } %>
5
7
  <%= form.number_field :example_number_field, props: { label: true, required: true, required_indicator: true } %>
6
8
  <%= form.search_field :example_search_field, props: { label: true, required: true, required_indicator: true } %>
@@ -11,4 +13,4 @@
11
13
  <%= action.submit %>
12
14
  <%= action.button props: { type: "reset", text: "Cancel", variant: "secondary" } %>
13
15
  <% end %>
14
- <% end %>
16
+ <% end %>
@@ -1 +1 @@
1
- individual items can also be disabled by including the `disabled:true` within the object on the treeData for the `returnAllSelected`/`return_all_selected` variant. As noted above, this variant will return data on all checked nodes from the dropdown, irrespective of whether it is a parent or child node.
1
+ Individual items can also be disabled by including the `disabled:true` within the object on the treeData for the `returnAllSelected`/`return_all_selected` variant. As noted above, this variant will return data on all checked nodes from the dropdown, irrespective of whether it is a parent or child node.
@@ -0,0 +1,74 @@
1
+ <% treeData = [{
2
+ label: "Power Home Remodeling",
3
+ value: "powerHomeRemodeling",
4
+ id: "100",
5
+ expanded: true,
6
+ children: [
7
+ {
8
+ label: "People",
9
+ value: "people",
10
+ id: "101",
11
+ expanded: true,
12
+ children: [
13
+ {
14
+ label: "Talent Acquisition",
15
+ value: "talentAcquisition",
16
+ id: "102",
17
+ },
18
+ {
19
+ label: "Business Affairs",
20
+ value: "businessAffairs",
21
+ id: "103",
22
+ children: [
23
+ {
24
+ label: "Initiatives",
25
+ value: "initiatives",
26
+ id: "104",
27
+ },
28
+ {
29
+ label: "Learning & Development",
30
+ value: "learningAndDevelopment",
31
+ id: "105",
32
+ },
33
+ ],
34
+ },
35
+ {
36
+ label: "People Experience",
37
+ value: "peopleExperience",
38
+ id: "106",
39
+ },
40
+ ],
41
+ },
42
+ {
43
+ label: "Contact Center",
44
+ value: "contactCenter",
45
+ id: "107",
46
+ children: [
47
+ {
48
+ label: "Appointment Management",
49
+ value: "appointmentManagement",
50
+ id: "108",
51
+ },
52
+ {
53
+ label: "Customer Service",
54
+ value: "customerService",
55
+ id: "109",
56
+ },
57
+ {
58
+ label: "Energy",
59
+ value: "energy",
60
+ id: "110",
61
+ },
62
+ ],
63
+ },
64
+ ],
65
+ }] %>
66
+
67
+ <%= pb_rails("multi_level_select", props: {
68
+ id: "multi-level-select-input-display-none",
69
+ name: :foo,
70
+ tree_data: treeData,
71
+ input_display: "none",
72
+ return_all_selected: true,
73
+ })
74
+ %>
@@ -0,0 +1,87 @@
1
+ import React from "react";
2
+ import MultiLevelSelect from "../_multi_level_select";
3
+
4
+ const treeData = [
5
+ {
6
+ label: "Power Home Remodeling",
7
+ value: "powerHomeRemodeling",
8
+ id: "powerhome1",
9
+ expanded: true,
10
+ children: [
11
+ {
12
+ label: "People",
13
+ value: "people",
14
+ id: "people1",
15
+ expanded: true,
16
+ children: [
17
+ {
18
+ label: "Talent Acquisition",
19
+ value: "talentAcquisition",
20
+ id: "talent1",
21
+ },
22
+ {
23
+ label: "Business Affairs",
24
+ value: "businessAffairs",
25
+ id: "business1",
26
+ children: [
27
+ {
28
+ label: "Initiatives",
29
+ value: "initiatives",
30
+ id: "initiative1",
31
+ },
32
+ {
33
+ label: "Learning & Development",
34
+ value: "learningAndDevelopment",
35
+ id: "development1",
36
+ },
37
+ ],
38
+ },
39
+ {
40
+ label: "People Experience",
41
+ value: "peopleExperience",
42
+ id: "experience1",
43
+ },
44
+ ],
45
+ },
46
+ {
47
+ label: "Contact Center",
48
+ value: "contactCenter",
49
+ id: "contact1",
50
+ children: [
51
+ {
52
+ label: "Appointment Management",
53
+ value: "appointmentManagement",
54
+ id: "appointment1",
55
+ },
56
+ {
57
+ label: "Customer Service",
58
+ value: "customerService",
59
+ id: "customer1",
60
+ },
61
+ {
62
+ label: "Energy",
63
+ value: "energy",
64
+ id: "energy1",
65
+ },
66
+ ],
67
+ },
68
+ ],
69
+ },
70
+ ];
71
+
72
+ const MultiLevelSelectInputDisplay = (props) => {
73
+ return (
74
+ <MultiLevelSelect
75
+ id="multi-level-select-input-display-none"
76
+ inputDisplay="none"
77
+ onSelect={(selectedNodes) =>
78
+ console.log("Selected Items", selectedNodes)
79
+ }
80
+ returnAllSelected
81
+ treeData={treeData}
82
+ {...props}
83
+ />
84
+ );
85
+ };
86
+
87
+ export default MultiLevelSelectInputDisplay;
@@ -0,0 +1,3 @@
1
+ Use the `inputDisplay`/`input_display` prop to optionally display only the count in the display as opposed to multiple pills. This prop is set to 'pills' by default.
2
+
3
+ **NOTE**: `inputDisplay`/`input_display` is particularly useful for larger trees that may return many pill selections, helping to keep the input field clean and compact. This prop should not be used with the Single Select variant.