playbook_ui 16.1.0.pre.alpha.PLAY2737railsaccessnewcolortokens14220 → 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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +2 -12
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +0 -33
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +1 -1
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +0 -17
- data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +1 -10
- data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +0 -2
- data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_checkbox/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +5 -14
- data/app/pb_kits/playbook/pb_dialog/_dialog.scss +6 -8
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +11 -46
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.html.erb +3 -6
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.jsx +0 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_label.md +1 -3
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +5 -11
- data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +0 -9
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +10 -15
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +0 -4
- data/app/pb_kits/playbook/pb_dropdown/index.js +79 -132
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +0 -16
- data/app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx +0 -6
- data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.tsx +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +2 -2
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +9 -16
- data/app/pb_kits/playbook/pb_filter/filter.rb +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +2 -6
- data/app/pb_kits/playbook/pb_form/pb_form_validation.js +2 -9
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +5 -5
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +4 -4
- data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +0 -4
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +0 -7
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +549 -638
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.html.erb +3 -3
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.jsx +7 -4
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.test.jsx +4 -4
- data/app/pb_kits/playbook/pb_nav/_item.tsx +3 -5
- data/app/pb_kits/playbook/pb_nav/_nav.scss +3 -82
- data/app/pb_kits/playbook/pb_nav/docs/example.yml +6 -2
- data/app/pb_kits/playbook/pb_nav/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_nav/item.html.erb +1 -1
- data/app/pb_kits/playbook/pb_nav/item.rb +1 -1
- data/app/pb_kits/playbook/pb_nav/navTypes.ts +0 -1
- data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +7 -40
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.jsx +0 -1
- data/app/pb_kits/playbook/pb_passphrase/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_passphrase/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_passphrase/passphrase.rb +0 -2
- data/app/pb_kits/playbook/pb_passphrase/passphrase.test.jsx +1 -30
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +3 -34
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +16 -51
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_required_indicator.jsx +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_required_indicator.jsx +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_table/index.ts +27 -29
- data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +10 -10
- data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +0 -10
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.html.erb +3 -3
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.jsx +0 -3
- data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +9 -25
- data/app/pb_kits/playbook/pb_textarea/textarea.rb +1 -7
- data/app/pb_kits/playbook/pb_time_picker/_time_picker.tsx +11 -97
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_on_handler.jsx +2 -5
- data/app/pb_kits/playbook/pb_time_picker/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_time_picker/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_time_picker/time_picker.rb +0 -3
- data/app/pb_kits/playbook/pb_time_picker/time_picker.test.jsx +1 -47
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +2 -53
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +324 -413
- data/app/pb_kits/playbook/pb_typeahead/components/Control.tsx +0 -2
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +1 -4
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.jsx +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +21 -22
- data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +2 -3
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +1 -7
- data/app/pb_kits/playbook/tokens/_colors.scss +0 -3
- data/app/pb_kits/playbook/tokens/exports/_colors.module.scss +0 -10
- data/dist/chunks/{_pb_line_graph-CC2Ywwix.js → _pb_line_graph-BgKF_zz1.js} +1 -1
- data/dist/chunks/_typeahead-B9a6ZsEP.js +1 -0
- data/dist/chunks/{globalProps-DYr2qrIf.js → globalProps-BhVYCqRf.js} +1 -1
- data/dist/chunks/lib-DD34ZrWL.js +29 -0
- data/dist/chunks/vendor.js +3 -3
- data/dist/menu.yml +2 -2
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +2 -2
- data/dist/reset.css +1 -1
- data/lib/playbook/align_content.rb +3 -13
- data/lib/playbook/align_items.rb +3 -13
- data/lib/playbook/align_self.rb +3 -13
- data/lib/playbook/display.rb +0 -5
- data/lib/playbook/flex.rb +3 -13
- data/lib/playbook/flex_direction.rb +3 -13
- data/lib/playbook/flex_grow.rb +3 -13
- data/lib/playbook/flex_shrink.rb +3 -13
- data/lib/playbook/flex_wrap.rb +3 -13
- data/lib/playbook/forms/builder/form_field_builder.rb +1 -1
- data/lib/playbook/forms/builder/phone_number_field.rb +0 -9
- data/lib/playbook/forms/builder/typeahead_field.rb +1 -15
- data/lib/playbook/forms/builder.rb +2 -2
- data/lib/playbook/justify_content.rb +3 -13
- data/lib/playbook/justify_self.rb +3 -13
- data/lib/playbook/order.rb +3 -13
- data/lib/playbook/spacing.rb +9 -39
- data/lib/playbook/text_align.rb +3 -13
- data/lib/playbook/truncate.rb +1 -1
- data/lib/playbook/version.rb +1 -1
- data/lib/playbook/vertical_align.rb +3 -13
- data/lib/playbook/z_index.rb +0 -5
- data/lib/playbook.rb +0 -1
- metadata +6 -35
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_background_custom.jsx +0 -71
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_background_custom.md +0 -4
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_required_indicator.html.erb +0 -6
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_required_indicator.jsx +0 -17
- data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.md +0 -1
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.md +0 -3
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_disabled_item.html.erb +0 -24
- data/app/pb_kits/playbook/pb_nav/docs/_collapsible_nav_disabled_item.jsx +0 -87
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.html.erb +0 -7
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.jsx +0 -24
- data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.html.erb +0 -5
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.jsx +0 -14
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_label.jsx +0 -44
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_label.md +0 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.jsx +0 -28
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_label.md +0 -1
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_default.md +0 -1
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.html.erb +0 -6
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.jsx +0 -16
- data/app/pb_kits/playbook/pb_time_picker/docs/_time_picker_required_indicator.md +0 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_required_indicator.html.erb +0 -16
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_required_indicator.jsx +0 -23
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_required_indicator.md +0 -3
- data/app/pb_kits/playbook/tokens/_colors_accessible.scss +0 -250
- data/dist/chunks/_typeahead-CmMqokN8.js +0 -1
- data/dist/chunks/lib-DgqmX9CF.js +0 -29
- data/lib/playbook/tokens/colors.json +0 -99
- data/lib/playbook/tokens.rb +0 -99
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a651c96ee595f7b6a08eea9b91af25f3ac942c55d128dbec4123fa1c0412ec2d
|
|
4
|
+
data.tar.gz: 29e8e76eac8ade8f52d4aa1a6a1af0d7c13e309a08b91c46e7722bbe5035e8ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 335b54761f101a5e30c4622868911d79b0bf396b6d54f6337a807dd9b146face6bc099f0d5d93286ba0fe3115116e749b792313a2ae683ab395372a1e28f57b1
|
|
7
|
+
data.tar.gz: 485f67ff1f34460b1f9f644f96908222a6b543f9ec0b61c7e3b8e0e03848586426b3ea577045b8dd82446926dbd7d5fcad1dca4eb42bce584c9260e5c1d7eb2e
|
|
@@ -66,18 +66,8 @@ const TableCellRenderer = ({
|
|
|
66
66
|
// Find the "owning" colDefinition by accessor. Needed for multi column logic
|
|
67
67
|
const colDef = findColumnDefByAccessor(columnDefinitions ?? [], column.id)
|
|
68
68
|
const cellAlignment = colDef?.columnStyling?.cellAlignment ?? "right"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const cellFontColorValue = colDef?.columnStyling?.fontColor
|
|
72
|
-
const cellFontColor = typeof cellFontColorValue === 'function'
|
|
73
|
-
? cellFontColorValue(row)
|
|
74
|
-
: cellFontColorValue
|
|
75
|
-
|
|
76
|
-
const cellBackgroundColorValue = colDef?.columnStyling?.cellBackgroundColor
|
|
77
|
-
const cellBackgroundColor = typeof cellBackgroundColorValue === 'function'
|
|
78
|
-
? cellBackgroundColorValue(row)
|
|
79
|
-
: cellBackgroundColorValue
|
|
80
|
-
|
|
69
|
+
const cellFontColor = colDef?.columnStyling?.fontColor
|
|
70
|
+
const cellBackgroundColor = colDef?.columnStyling?.cellBackgroundColor
|
|
81
71
|
const paddingValue = colDef?.columnStyling?.cellPadding ?? customRowStyle?.cellPadding
|
|
82
72
|
const paddingClass = paddingValue ? `p_${paddingValue}` : undefined
|
|
83
73
|
|
|
@@ -920,39 +920,6 @@ test("columnStyling.backgroundColor works as excpected", () => {
|
|
|
920
920
|
expect(firstEnrollmentCell).toHaveStyle({ backgroundColor: colors.error_subtle });
|
|
921
921
|
});
|
|
922
922
|
|
|
923
|
-
test("columnStyling.cellBackgroundColor works as expected with function", () => {
|
|
924
|
-
const styledColumnDefs = [
|
|
925
|
-
{
|
|
926
|
-
accessor: "year",
|
|
927
|
-
label: "Year",
|
|
928
|
-
cellAccessors: ["quarter", "month", "day"],
|
|
929
|
-
},
|
|
930
|
-
{
|
|
931
|
-
accessor: "newEnrollments",
|
|
932
|
-
label: "New Enrollments",
|
|
933
|
-
columnStyling:{
|
|
934
|
-
cellBackgroundColor: (row) => row.original.newEnrollments > 15 ? colors.success_subtle : colors.error_subtle,
|
|
935
|
-
fontColor: (row) => row.original.newEnrollments > 15 ? colors.success : colors.error,
|
|
936
|
-
},
|
|
937
|
-
},
|
|
938
|
-
{
|
|
939
|
-
accessor: "scheduledMeetings",
|
|
940
|
-
label: "Scheduled Meetings",
|
|
941
|
-
},
|
|
942
|
-
];
|
|
943
|
-
|
|
944
|
-
render(
|
|
945
|
-
<AdvancedTable
|
|
946
|
-
columnDefinitions={styledColumnDefs}
|
|
947
|
-
data={{ testid: testId }}
|
|
948
|
-
tableData={MOCK_DATA}
|
|
949
|
-
/>
|
|
950
|
-
);
|
|
951
|
-
|
|
952
|
-
const firstEnrollmentCell = screen.getAllByText("20")[0].closest("td");
|
|
953
|
-
expect(firstEnrollmentCell).toHaveStyle({ backgroundColor: colors.success_subtle, color: colors.success });
|
|
954
|
-
});
|
|
955
|
-
|
|
956
923
|
test("columnStyling.headerBackgroundColor works as excpected", () => {
|
|
957
924
|
const styledColumnDefs = [
|
|
958
925
|
{
|
|
@@ -2,4 +2,4 @@ the `enableSorting` prop is a boolean prop set to false by default. If true, the
|
|
|
2
2
|
|
|
3
3
|
### sortIcon
|
|
4
4
|
|
|
5
|
-
An optional prop, `sortIcon` allows you to customize your icon sets by passing it an array of any comma-separated pair of icon values. The first icon value will replace the kit's default icon when sort direction is desc, and the second value will replace the default icon when sort direction is asc. `sortIcon` also allows you to pass it a single icon as a string, in which case the icon will not toggle with the sort state. Default for this prop is `["arrow-up-wide
|
|
5
|
+
An optional prop, `sortIcon` allows you to customize your icon sets by passing it an array of any comma-separated pair of icon values. The first icon value will replace the kit's default icon when sort direction is desc, and the second value will replace the default icon when sort direction is asc. `sortIcon` also allows you to pass it a single icon as a string, in which case the icon will not toggle with the sort state. Default for this prop is `["arrow-up-short-wide", "arrow-down-short-wide"]`. All strings must be valid FA icons.
|
|
@@ -78,7 +78,6 @@ examples:
|
|
|
78
78
|
- advanced_table_column_styling: Column Styling
|
|
79
79
|
- advanced_table_column_styling_column_headers: Column Styling with Multiple Headers
|
|
80
80
|
- advanced_table_column_styling_background: Column Styling Background Color
|
|
81
|
-
- advanced_table_column_styling_background_custom: Column Styling Background Color (Custom)
|
|
82
81
|
- advanced_table_column_styling_background_multi: Column Styling Background Color with Multiple Headers
|
|
83
82
|
- advanced_table_padding_control: Padding Control using Column Styling
|
|
84
83
|
- advanced_table_column_border_color: Column Group Border Color
|
|
@@ -47,5 +47,4 @@ export { default as AdvancedTableSortPerColumnForMultiColumn } from './_advanced
|
|
|
47
47
|
export { default as AdvancedTablePaddingControl } from './_advanced_table_padding_control.jsx'
|
|
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
|
-
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'
|
|
50
|
+
export { default as AdvancedTableColumnStylingBackgroundMulti } from './_advanced_table_column_styling_background_multi.jsx'
|
|
@@ -4,8 +4,6 @@ import Icon from '../pb_icon/_icon'
|
|
|
4
4
|
import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
|
|
5
5
|
import classnames from 'classnames'
|
|
6
6
|
import { globalProps, GlobalProps } from '../utilities/globalProps'
|
|
7
|
-
import colors from '../tokens/exports/_colors.module.scss'
|
|
8
|
-
import spacing from '../tokens/exports/_spacing.module.scss'
|
|
9
7
|
|
|
10
8
|
type CheckboxProps = {
|
|
11
9
|
aria?: {[key: string]: string},
|
|
@@ -21,7 +19,6 @@ type CheckboxProps = {
|
|
|
21
19
|
indeterminate?: boolean,
|
|
22
20
|
name?: string,
|
|
23
21
|
onChange?: (event: React.FormEvent<HTMLInputElement>) => void,
|
|
24
|
-
requiredIndicator?: boolean,
|
|
25
22
|
tabIndex?: number,
|
|
26
23
|
text?: string,
|
|
27
24
|
value?: string,
|
|
@@ -42,7 +39,6 @@ const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {
|
|
|
42
39
|
indeterminate = false,
|
|
43
40
|
name = '',
|
|
44
41
|
onChange = () => { void 0 },
|
|
45
|
-
requiredIndicator = false,
|
|
46
42
|
tabIndex,
|
|
47
43
|
text = '',
|
|
48
44
|
value = '',
|
|
@@ -128,20 +124,7 @@ const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>((props, ref) => {
|
|
|
128
124
|
variant={null}
|
|
129
125
|
>
|
|
130
126
|
{text}
|
|
131
|
-
{requiredIndicator && (
|
|
132
|
-
<span
|
|
133
|
-
aria-hidden="true"
|
|
134
|
-
className="pb_required_indicator"
|
|
135
|
-
style={{
|
|
136
|
-
color: colors.error,
|
|
137
|
-
marginLeft: spacing.space_xs,
|
|
138
|
-
}}
|
|
139
|
-
>
|
|
140
|
-
{'*'}
|
|
141
|
-
</span>
|
|
142
|
-
)}
|
|
143
127
|
</Body>
|
|
144
|
-
|
|
145
128
|
</label>
|
|
146
129
|
)
|
|
147
130
|
})
|
|
@@ -5,15 +5,6 @@
|
|
|
5
5
|
<%= pb_rails("icon", props: { icon: "minus", classname: "indeterminate_icon hidden", fixed_width: true}) %>
|
|
6
6
|
</span>
|
|
7
7
|
<span class="pb_checkbox_label">
|
|
8
|
-
<%= pb_rails("body", props: { status: object.checkbox_label_status, dark: object.dark, margin_right: object.form_spacing ? "xs" : "" })
|
|
9
|
-
<%= object.text%>
|
|
10
|
-
<% if object.required_indicator %>
|
|
11
|
-
<span
|
|
12
|
-
class="pb_checkbox_required_indicator"
|
|
13
|
-
aria-hidden="true"
|
|
14
|
-
style="color: #DA0014;"
|
|
15
|
-
>*</span>
|
|
16
|
-
<% end %>
|
|
17
|
-
<% end %>
|
|
8
|
+
<%= pb_rails("body", props: { status: object.checkbox_label_status, text: object.text, dark: object.dark, margin_right: object.form_spacing ? "xs" : "" }) %>
|
|
18
9
|
</span>
|
|
19
10
|
<% end %>
|
|
@@ -23,8 +23,6 @@ module Playbook
|
|
|
23
23
|
prop :hidden_input, type: Playbook::Props::Boolean,
|
|
24
24
|
default: false
|
|
25
25
|
prop :hidden_value
|
|
26
|
-
prop :required_indicator, type: Playbook::Props::Boolean,
|
|
27
|
-
default: false
|
|
28
26
|
|
|
29
27
|
def classname
|
|
30
28
|
generate_classname("pb_checkbox_kit", checked_class) + error_class
|
|
@@ -8,7 +8,6 @@ examples:
|
|
|
8
8
|
- checkbox_indeterminate: Indeterminate Checkbox
|
|
9
9
|
- checkbox_disabled: Disabled Checkbox
|
|
10
10
|
- checkbox_form: Form and Hidden Input
|
|
11
|
-
# - checkbox_required_indicator: Required Indicator
|
|
12
11
|
|
|
13
12
|
react:
|
|
14
13
|
- checkbox_default: Default
|
|
@@ -18,7 +17,6 @@ examples:
|
|
|
18
17
|
- checkbox_error: Default w/ Error
|
|
19
18
|
- checkbox_indeterminate: Indeterminate Checkbox
|
|
20
19
|
- checkbox_disabled: Disabled Checkbox
|
|
21
|
-
# - checkbox_required_indicator: Required Indicator
|
|
22
20
|
|
|
23
21
|
swift:
|
|
24
22
|
- checkbox_default_swift: Default
|
|
@@ -5,4 +5,3 @@ export { default as CheckboxError } from './_checkbox_error.jsx'
|
|
|
5
5
|
export { default as CheckboxChecked } from './_checkbox_checked.jsx'
|
|
6
6
|
export { default as CheckboxIndeterminate } from './_checkbox_indeterminate.jsx'
|
|
7
7
|
export { default as CheckboxDisabled } from './_checkbox_disabled.jsx'
|
|
8
|
-
export { default as CheckboxRequiredIndicator } from './_checkbox_required_indicator.jsx'
|
|
@@ -40,7 +40,7 @@ type DatePickerProps = {
|
|
|
40
40
|
maxDate: string,
|
|
41
41
|
minDate: string,
|
|
42
42
|
name: string,
|
|
43
|
-
pickerId
|
|
43
|
+
pickerId?: string,
|
|
44
44
|
placeholder?: string,
|
|
45
45
|
positionElement?: HTMLElement | null,
|
|
46
46
|
scrollContainer?: string,
|
|
@@ -196,8 +196,6 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
196
196
|
|
|
197
197
|
const angleDown = getAllIcons()["angleDown"].icon as unknown as { [key: string]: SVGElement }
|
|
198
198
|
|
|
199
|
-
const errorId = error ? `${pickerId}-error` : undefined
|
|
200
|
-
|
|
201
199
|
return (
|
|
202
200
|
<div
|
|
203
201
|
{...ariaProps}
|
|
@@ -213,18 +211,14 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
213
211
|
>
|
|
214
212
|
|
|
215
213
|
{!hideLabel && (
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
/>
|
|
221
|
-
</label>
|
|
214
|
+
<Caption
|
|
215
|
+
className="pb_date_picker_kit_label"
|
|
216
|
+
text={label}
|
|
217
|
+
/>
|
|
222
218
|
)}
|
|
223
219
|
<>
|
|
224
220
|
<div className="date_picker_input_wrapper">
|
|
225
221
|
<input
|
|
226
|
-
aria-describedby={errorId}
|
|
227
|
-
aria-invalid={!!error}
|
|
228
222
|
autoComplete="off"
|
|
229
223
|
className="date_picker_input"
|
|
230
224
|
disabled={disableInput}
|
|
@@ -238,9 +232,6 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
|
|
|
238
232
|
|
|
239
233
|
{error &&
|
|
240
234
|
<Body
|
|
241
|
-
aria={{ atomic: "true", live: "polite" }}
|
|
242
|
-
htmlOptions={{ role: "alert" }}
|
|
243
|
-
id={errorId}
|
|
244
235
|
status="negative"
|
|
245
236
|
text={error}
|
|
246
237
|
variant={null}
|
|
@@ -135,8 +135,6 @@
|
|
|
135
135
|
position: sticky;
|
|
136
136
|
top: 0;
|
|
137
137
|
background-color: $white;
|
|
138
|
-
border-top-left-radius: $border_radius_md;
|
|
139
|
-
border-top-right-radius: $border_radius_md;
|
|
140
138
|
z-index: $z_8;
|
|
141
139
|
}
|
|
142
140
|
|
|
@@ -258,7 +256,7 @@
|
|
|
258
256
|
}
|
|
259
257
|
&.full_height_left {
|
|
260
258
|
justify-content: flex-start;
|
|
261
|
-
|
|
259
|
+
|
|
262
260
|
.pb_dialog {
|
|
263
261
|
border-radius: 0;
|
|
264
262
|
height: 100%;
|
|
@@ -304,7 +302,7 @@
|
|
|
304
302
|
|
|
305
303
|
&.full_height_center {
|
|
306
304
|
justify-content: center;
|
|
307
|
-
|
|
305
|
+
|
|
308
306
|
.pb_dialog {
|
|
309
307
|
border-radius: 0;
|
|
310
308
|
height: 100%;
|
|
@@ -348,7 +346,7 @@
|
|
|
348
346
|
|
|
349
347
|
&.full_height_right {
|
|
350
348
|
justify-content: flex-end;
|
|
351
|
-
|
|
349
|
+
|
|
352
350
|
.pb_dialog {
|
|
353
351
|
border-radius: 0;
|
|
354
352
|
height: 100%;
|
|
@@ -419,7 +417,7 @@
|
|
|
419
417
|
margin: unset !important;
|
|
420
418
|
margin-right: auto !important;
|
|
421
419
|
}
|
|
422
|
-
|
|
420
|
+
|
|
423
421
|
.pb_dialog {
|
|
424
422
|
border-radius: 0;
|
|
425
423
|
height: 100% !important;
|
|
@@ -465,7 +463,7 @@
|
|
|
465
463
|
|
|
466
464
|
&.full_height_center {
|
|
467
465
|
justify-content: center;
|
|
468
|
-
|
|
466
|
+
|
|
469
467
|
.pb_dialog {
|
|
470
468
|
border-radius: 0;
|
|
471
469
|
height: 100% !important;
|
|
@@ -512,7 +510,7 @@
|
|
|
512
510
|
margin: unset !important;
|
|
513
511
|
margin-left: auto !important;
|
|
514
512
|
}
|
|
515
|
-
|
|
513
|
+
|
|
516
514
|
.pb_dialog {
|
|
517
515
|
border-radius: 0;
|
|
518
516
|
height: 100% !important;
|
|
@@ -119,16 +119,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
119
119
|
|
|
120
120
|
const [isDropDownClosed, setIsDropDownClosed, toggleDropdown] = useDropdown(isClosed);
|
|
121
121
|
|
|
122
|
-
// Use a suffix for the trigger ID to avoid conflict with the outer div's id
|
|
123
|
-
const sanitizeForId = (str: string) =>
|
|
124
|
-
str.toLowerCase().replace(/\s+/g, "_").replace(/[^a-z0-9_]/g, "");
|
|
125
|
-
const selectId = id
|
|
126
|
-
? `${id}_trigger`
|
|
127
|
-
: label
|
|
128
|
-
? sanitizeForId(label)
|
|
129
|
-
: undefined;
|
|
130
|
-
const errorId = error ? `${selectId}-error` : undefined;
|
|
131
|
-
|
|
132
122
|
const [filterItem, setFilterItem] = useState("");
|
|
133
123
|
const initialSelected = useMemo(() => {
|
|
134
124
|
// Handle quickpick variant with string defaultValue (e.g., "This Month")
|
|
@@ -161,19 +151,9 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
161
151
|
|
|
162
152
|
const dropdownRef = useRef(null);
|
|
163
153
|
const inputRef = useRef<HTMLInputElement>(null);
|
|
164
|
-
const inputWrapperRef = useRef
|
|
154
|
+
const inputWrapperRef = useRef(null);
|
|
165
155
|
const dropdownContainerRef = useRef(null);
|
|
166
156
|
|
|
167
|
-
const handleLabelClick = (e: React.MouseEvent) => {
|
|
168
|
-
e.stopPropagation();
|
|
169
|
-
if (selectId) {
|
|
170
|
-
const trigger = document.getElementById(selectId);
|
|
171
|
-
if (trigger) trigger.focus();
|
|
172
|
-
}
|
|
173
|
-
setIsInputFocused(true);
|
|
174
|
-
toggleDropdown();
|
|
175
|
-
};
|
|
176
|
-
|
|
177
157
|
const selectedArray = Array.isArray(selected)
|
|
178
158
|
? selected
|
|
179
159
|
: selected && Object.keys(selected).length
|
|
@@ -431,12 +411,9 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
431
411
|
autocomplete,
|
|
432
412
|
clearable,
|
|
433
413
|
dropdownContainerRef,
|
|
434
|
-
error,
|
|
435
|
-
errorId,
|
|
436
|
-
filterItem,
|
|
437
414
|
filteredOptions,
|
|
415
|
+
filterItem,
|
|
438
416
|
focusedOptionIndex,
|
|
439
|
-
label,
|
|
440
417
|
formPillProps,
|
|
441
418
|
handleBackspace,
|
|
442
419
|
handleChange,
|
|
@@ -446,7 +423,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
446
423
|
inputWrapperRef,
|
|
447
424
|
isDropDownClosed,
|
|
448
425
|
isInputFocused,
|
|
449
|
-
selectId,
|
|
450
426
|
multiSelect,
|
|
451
427
|
onSelect,
|
|
452
428
|
optionsWithBlankSelection,
|
|
@@ -458,20 +434,13 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
458
434
|
toggleDropdown
|
|
459
435
|
}}
|
|
460
436
|
>
|
|
461
|
-
{label &&
|
|
462
|
-
<
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
className="pb_dropdown_kit_label"
|
|
469
|
-
dark={dark}
|
|
470
|
-
marginBottom="xs"
|
|
471
|
-
text={label}
|
|
472
|
-
/>
|
|
473
|
-
</label>
|
|
474
|
-
)}
|
|
437
|
+
{label &&
|
|
438
|
+
<Caption
|
|
439
|
+
dark={dark}
|
|
440
|
+
marginBottom="xs"
|
|
441
|
+
text={label}
|
|
442
|
+
/>
|
|
443
|
+
}
|
|
475
444
|
<div className={`dropdown_wrapper ${error ? 'error' : ''}`}
|
|
476
445
|
onBlur={() => {
|
|
477
446
|
// Debounce to delay the execution to prevent jumpiness in Focus state
|
|
@@ -504,16 +473,12 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
|
|
|
504
473
|
</>
|
|
505
474
|
)}
|
|
506
475
|
|
|
507
|
-
{error &&
|
|
476
|
+
{error &&
|
|
508
477
|
<Body
|
|
509
|
-
aria={{ atomic: "true", live: "polite" }}
|
|
510
|
-
dark={dark}
|
|
511
|
-
htmlOptions={{ role: "alert" }}
|
|
512
|
-
id={errorId}
|
|
513
478
|
status="negative"
|
|
514
479
|
text={error}
|
|
515
480
|
/>
|
|
516
|
-
|
|
481
|
+
}
|
|
517
482
|
</div>
|
|
518
483
|
</DropdownContext.Provider>
|
|
519
484
|
</div>
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
const option = e.detail;
|
|
77
77
|
const dropdown = e.target;
|
|
78
78
|
|
|
79
|
-
const display = dropdown.querySelector("
|
|
79
|
+
const display = dropdown.querySelector("#dropdown_trigger_custom_display");
|
|
80
80
|
if (!display) return;
|
|
81
81
|
|
|
82
82
|
const nameEl = display.querySelector("#dropdown-avatar-name");
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
<%
|
|
1
|
+
<%
|
|
2
2
|
options = [
|
|
3
3
|
{ label: 'United States', value: 'unitedStates', id: 'us' },
|
|
4
4
|
{ label: 'Canada', value: 'canada', id: 'ca' },
|
|
5
5
|
{ label: 'Pakistan', value: 'pakistan', id: 'pk' },
|
|
6
6
|
]
|
|
7
|
+
|
|
7
8
|
%>
|
|
8
9
|
|
|
9
|
-
<%= pb_rails("dropdown", props: {
|
|
10
|
-
id: "select_a_country",
|
|
11
|
-
label: "Select a Country",
|
|
12
|
-
options: options
|
|
13
|
-
}) %>
|
|
10
|
+
<%= pb_rails("dropdown", props: {options: options, label: "Select a Country"}) %>
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
The top-level Dropdown component optionally accepts any string through a `label` prop to produce a label above your trigger element.
|
|
2
|
-
|
|
3
|
-
Add an `id` to wire the label to the trigger so that clicking the label will move focus directly to the input, and open the drop-down.
|
|
1
|
+
The top-level Dropdown component optionally accepts any string through a `label` prop to produce a label above your trigger element.
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
<%= pb_content_tag do %>
|
|
2
2
|
<% if object.label.present? %>
|
|
3
|
-
|
|
4
|
-
<%= pb_rails("caption", props: { text: object.label, margin_bottom: "xs", classname: "pb_dropdown_kit_label", dark: object.dark }) %>
|
|
5
|
-
</label>
|
|
3
|
+
<%= pb_rails("caption", props: {text: object.label, margin_bottom:"xs"}) %>
|
|
6
4
|
<% end %>
|
|
7
5
|
<div class="dropdown_wrapper<%= error_class %>" style="position: relative">
|
|
8
6
|
<input
|
|
9
7
|
data-default-value="<%= input_default_value %>"
|
|
10
|
-
|
|
8
|
+
id="dropdown-selected-option"
|
|
11
9
|
name="<%= object.name %><%= '[]' if object.multi_select %>"
|
|
12
10
|
style="display: none"
|
|
13
11
|
<%= object.required ? "required" : ""%>
|
|
@@ -18,11 +16,9 @@
|
|
|
18
16
|
<% end %>
|
|
19
17
|
<% if content.present? %>
|
|
20
18
|
<%= content.presence %>
|
|
21
|
-
|
|
22
|
-
<%= pb_rails("body", props: { status: "negative", text: object.error, id: object.error_id, aria: { atomic: "true", live: "polite" }, html_options: { role: "alert" }, dark: object.dark }) %>
|
|
23
|
-
<% end %>
|
|
19
|
+
<%= pb_rails("body", props: { status: "negative", text: object.error }) %>
|
|
24
20
|
<% else %>
|
|
25
|
-
<%= pb_rails("dropdown/dropdown_trigger", props:
|
|
21
|
+
<%= pb_rails("dropdown/dropdown_trigger", props:{ autocomplete: object.autocomplete, multi_select:object.multi_select, placeholder: object.placeholder }) %>
|
|
26
22
|
<%= pb_rails("dropdown/dropdown_container", props: { searchbar: object.searchbar, constrain_height: object.constrain_height }) do %>
|
|
27
23
|
<% if options_with_blank.present? %>
|
|
28
24
|
<% options_with_blank.each do |option| %>
|
|
@@ -31,9 +27,7 @@
|
|
|
31
27
|
<% end %>
|
|
32
28
|
<% end %>
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
<%= pb_rails("body", props: { status: "negative", text: object.error, id: object.error_id, aria: { atomic: "true", live: "polite" }, html_options: { role: "alert" }, dark: object.dark }) %>
|
|
36
|
-
<% end %>
|
|
30
|
+
<%= pb_rails("body", props: { status: "negative", text: object.error }) %>
|
|
37
31
|
<% end %>
|
|
38
32
|
</div>
|
|
39
33
|
<% end %>
|
|
@@ -10,7 +10,6 @@ module Playbook
|
|
|
10
10
|
prop :label, type: Playbook::Props::String
|
|
11
11
|
prop :name, type: Playbook::Props::String
|
|
12
12
|
prop :error, type: Playbook::Props::String
|
|
13
|
-
prop :id, type: Playbook::Props::String
|
|
14
13
|
prop :required, type: Playbook::Props::Boolean,
|
|
15
14
|
default: false
|
|
16
15
|
prop :default_value
|
|
@@ -69,14 +68,6 @@ module Playbook
|
|
|
69
68
|
generate_classname("pb_dropdown", variant, separators_class)
|
|
70
69
|
end
|
|
71
70
|
|
|
72
|
-
def select_id
|
|
73
|
-
id.presence || (label.present? ? label.downcase.gsub(/\s+/, "_").gsub(/[^a-z0-9_]/, "") : nil)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def error_id
|
|
77
|
-
error.present? ? "#{select_id || 'dropdown_trigger'}-error" : nil
|
|
78
|
-
end
|
|
79
|
-
|
|
80
71
|
private
|
|
81
72
|
|
|
82
73
|
def error_class
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
<%= pb_content_tag do %>
|
|
2
2
|
<% if content.present? %>
|
|
3
|
-
<div style="display: inline-block" tabindex="0" data-dropdown
|
|
4
|
-
<% if object.label.present? %> aria-label="<%= [object.label, object.default_display_placeholder].join(', ') %>"<% end %>
|
|
5
|
-
<% if object.select_id.present? %> id="<%= object.select_id %>"<% end %>
|
|
6
|
-
<% if object.error_id.present? %> aria-describedby="<%= object.error_id %>"<% end %>
|
|
7
|
-
>
|
|
3
|
+
<div style="display: inline-block" tabindex="0" data-dropdown-custom-trigger>
|
|
8
4
|
<%= content.presence %>
|
|
9
5
|
</div>
|
|
10
6
|
<% else %>
|
|
@@ -13,25 +9,24 @@
|
|
|
13
9
|
border_radius:"lg",
|
|
14
10
|
classname: object.trigger_wrapper_classes,
|
|
15
11
|
cursor: object.autocomplete ? "text" : "pointer",
|
|
16
|
-
id: object.select_id,
|
|
17
12
|
justify: "between",
|
|
18
13
|
padding_x:"sm",
|
|
19
14
|
padding_y:"xs",
|
|
20
|
-
html_options: {
|
|
15
|
+
html_options: {tabindex:"0"}
|
|
21
16
|
}) do %>
|
|
22
17
|
<%= pb_rails("flex/flex_item", props: { fixed_size: object.multi_select ? "85%" : "" }) do %>
|
|
23
18
|
<%= pb_rails("flex", props: {align: "center"}) do %>
|
|
24
19
|
<% if object.custom_display.present? %>
|
|
25
20
|
<%= pb_rails("flex", props: {align: "center"}) do %>
|
|
26
|
-
<div
|
|
21
|
+
<div id="dropdown_trigger_custom_display" style="display: none;">
|
|
27
22
|
<%= object.custom_display %>
|
|
28
23
|
</div>
|
|
29
|
-
<%= pb_rails("body", props: {text: object.default_display_placeholder,
|
|
24
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display"}) %>
|
|
30
25
|
<% end %>
|
|
31
26
|
<% else %>
|
|
32
27
|
<% if object.multi_select %>
|
|
33
28
|
<%= pb_rails("flex", props: { align: "center", wrap: true }) do %>
|
|
34
|
-
<%= pb_rails("flex", props: {
|
|
29
|
+
<%= pb_rails("flex", props: { id:"dropdown_pills_wrapper", wrap: true }) do %>
|
|
35
30
|
<% end %>
|
|
36
31
|
<% if object.autocomplete %>
|
|
37
32
|
<input
|
|
@@ -42,7 +37,7 @@
|
|
|
42
37
|
autocomplete="off"
|
|
43
38
|
/>
|
|
44
39
|
<% else %>
|
|
45
|
-
<%= pb_rails("body", props: {text: object.default_display_placeholder,
|
|
40
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display_multi_select"}) %>
|
|
46
41
|
<% end %>
|
|
47
42
|
<% end %>
|
|
48
43
|
<% else %>
|
|
@@ -55,7 +50,7 @@
|
|
|
55
50
|
autocomplete="off"
|
|
56
51
|
/>
|
|
57
52
|
<% else %>
|
|
58
|
-
<%= pb_rails("body", props: {text: object.default_display_placeholder,
|
|
53
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display"}) %>
|
|
59
54
|
<% end %>
|
|
60
55
|
<% end %>
|
|
61
56
|
<% end %>
|
|
@@ -63,9 +58,9 @@
|
|
|
63
58
|
<% end %>
|
|
64
59
|
<%= pb_rails("flex/flex_item") do %>
|
|
65
60
|
<%= pb_rails("body", props: {display: "flex", align_items:"center" }) do %>
|
|
66
|
-
<%= pb_rails("icon", props: {icon: "times", cursor: "pointer", size:"sm",
|
|
67
|
-
<%= pb_rails("icon", props: {icon: "chevron-down", cursor: "pointer", size:"sm",
|
|
68
|
-
<%= pb_rails("icon", props: {icon: "chevron-up", cursor: "pointer", size:"sm",
|
|
61
|
+
<%= pb_rails("icon", props: {icon: "times", cursor: "pointer", size:"sm", id: "dropdown_clear_icon", padding_right:"xs" }) %>
|
|
62
|
+
<%= pb_rails("icon", props: {icon: "chevron-down", cursor: "pointer", size:"sm", id: "dropdown_open_icon"}) %>
|
|
63
|
+
<%= pb_rails("icon", props: {icon: "chevron-up", cursor: "pointer", size:"sm", id: "dropdown_close_icon"}) %>
|
|
69
64
|
<% end %>
|
|
70
65
|
<% end %>
|
|
71
66
|
<% end %>
|
|
@@ -13,10 +13,6 @@ module Playbook
|
|
|
13
13
|
default: false
|
|
14
14
|
prop :multi_select, type: Playbook::Props::Boolean,
|
|
15
15
|
default: false
|
|
16
|
-
prop :select_id, type: Playbook::Props::String
|
|
17
|
-
prop :label, type: Playbook::Props::String
|
|
18
|
-
prop :error_id, type: Playbook::Props::String
|
|
19
|
-
prop :error, type: Playbook::Props::String
|
|
20
16
|
|
|
21
17
|
def data
|
|
22
18
|
Hash(prop(:data)).merge(dropdown_trigger: true, dropdown_placeholder: default_display_placeholder)
|