playbook_ui 14.17.0.pre.alpha.PLAY1823maskedsanitizedtextinput7271 → 14.17.0.pre.alpha.PLAY1967bracketlayoutphase27198
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 +3 -23
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -11
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +128 -60
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +2 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +2 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -4
- data/app/pb_kits/playbook/pb_background/_background.scss +0 -26
- data/app/pb_kits/playbook/pb_background/_background.tsx +3 -5
- data/app/pb_kits/playbook/pb_background/background.test.js +0 -5
- data/app/pb_kits/playbook/pb_background/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_background/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_form_group/_form_group.scss +2 -18
- data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +5 -15
- data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +5 -20
- data/app/pb_kits/playbook/pb_layout/_layout.scss +2 -36
- data/app/pb_kits/playbook/pb_layout/_layout.tsx +2 -27
- data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +14 -18
- data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +21 -35
- data/app/pb_kits/playbook/pb_layout/subcomponents/_participant.tsx +6 -12
- data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +4 -21
- data/app/pb_kits/playbook/pb_overlay/_overlay.scss +22 -49
- data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +4 -15
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md +7 -1
- data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -3
- data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -3
- data/app/pb_kits/playbook/pb_overlay/overlay.test.jsx +1 -39
- data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating_react.md +1 -1
- data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_table/table.rb +1 -13
- data/app/pb_kits/playbook/pb_table/table_header.rb +1 -13
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +5 -13
- data/app/pb_kits/playbook/pb_text_input/inputMask.ts +1 -8
- data/dist/chunks/_typeahead-DZZ1n1Oe.js +22 -0
- data/dist/chunks/_weekday_stacked-P4lpbU7P.js +45 -0
- 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 +4 -25
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.jsx +0 -58
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.md +0 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.jsx +0 -64
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +0 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +0 -55
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +0 -33
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +0 -97
- data/app/pb_kits/playbook/pb_background/docs/_background_overlay.jsx +0 -35
- data/app/pb_kits/playbook/pb_background/docs/_background_overlay.md +0 -1
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.jsx +0 -63
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.md +0 -3
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.jsx +0 -39
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.md +0 -1
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.jsx +0 -40
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +0 -5
- data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless.html.erb +0 -34
- data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless_rails.md +0 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating.html.erb +0 -36
- data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating_rails.md +0 -1
- data/dist/chunks/_typeahead-CtCqFlTG.js +0 -22
- data/dist/chunks/_weekday_stacked-DSsdjRl5.js +0 -45
@@ -1 +1,7 @@
|
|
1
|
-
Overlays
|
1
|
+
Overlays optionally accept a `color`, which sets the "start" (opaque) color of a gradient mask. Because this overlay is intended to reveal underlying content, the "end" color is fixed to transparent.
|
2
|
+
|
3
|
+
The optional `layout` prop accepts the `position` and `size` of the overlay as a key:value pair.
|
4
|
+
|
5
|
+
The `position` key accepts `bottom` (default), `top`, `y` (for both top and bottom) `right`, `left`, or `x` (for both left and right), which sets the side(s) where the `color` overlay starts. The direction of the overlay is always toward the opposite side of the position. For example, the default position of `bottom` starts the overlay on the bottom edge of your container and extends it toward the opposite side: the top.
|
6
|
+
|
7
|
+
The `size` value is `full` (100%) by default, but accepts our [spacing tokens](https://playbook.powerapp.cloud/visual_guidelines/spacing) or a percentage value as a string, and literally translates to how much of the container is covered by the overlay(s).
|
@@ -1,9 +1,6 @@
|
|
1
1
|
examples:
|
2
2
|
react:
|
3
3
|
- overlay_default: Default
|
4
|
-
- overlay_gradient_opacity: Gradient & Opacity
|
5
|
-
- overlay_color: Color
|
6
|
-
- overlay_layout: Layout
|
7
4
|
- overlay_multi_directional: Multi-directional
|
8
5
|
- overlay_vertical_dynamic_multi_directional: Vertical Dynamic Multi-directional
|
9
6
|
- overlay_toggle: Toggle
|
@@ -1,7 +1,4 @@
|
|
1
1
|
export { default as OverlayDefault } from './_overlay_default.jsx'
|
2
|
-
export { default as OverlayGradientOpacity } from './_overlay_gradient_opacity.jsx'
|
3
|
-
export { default as OverlayColor } from './_overlay_color.jsx'
|
4
|
-
export { default as OverlayLayout } from './_overlay_layout.jsx'
|
5
2
|
export { default as OverlayMultiDirectional } from './_overlay_multi_directional.jsx'
|
6
3
|
export { default as OverlayToggle } from './_overlay_toggle.jsx'
|
7
4
|
export { default as OverlayVerticalDynamicMultiDirectional } from './_overlay_vertical_dynamic_multi_directional.jsx'
|
@@ -71,46 +71,8 @@ test('should add overlay-hide-scrollbar class when scrollBarNone is true', () =>
|
|
71
71
|
data: { testid: testId },
|
72
72
|
scrollBarNone: true
|
73
73
|
}
|
74
|
-
|
74
|
+
|
75
75
|
render(<Overlay {...props} />)
|
76
76
|
const kit = screen.getByTestId(testId)
|
77
77
|
expect(kit).toHaveClass('overlay-hide-scrollbar')
|
78
78
|
})
|
79
|
-
|
80
|
-
test('should have no_gradient class if gradient prop is false', () => {
|
81
|
-
const props = {
|
82
|
-
children,
|
83
|
-
data: { testid: testId },
|
84
|
-
id: testId,
|
85
|
-
gradient: false
|
86
|
-
}
|
87
|
-
|
88
|
-
render(<Overlay {...props} />)
|
89
|
-
const kit = screen.getByTestId(testId)
|
90
|
-
expect(kit).toHaveClass('no_gradient')
|
91
|
-
})
|
92
|
-
|
93
|
-
test('should not have no_gradient class if gradient is not passed', () => {
|
94
|
-
const props = {
|
95
|
-
children,
|
96
|
-
data: { testid: testId },
|
97
|
-
id: testId
|
98
|
-
}
|
99
|
-
|
100
|
-
render(<Overlay {...props} />)
|
101
|
-
const kit = screen.getByTestId(testId)
|
102
|
-
expect(kit).not.toHaveClass('no_gradient')
|
103
|
-
})
|
104
|
-
|
105
|
-
test('should have the correct opacity class if opacity prop is passed', () => {
|
106
|
-
const props = {
|
107
|
-
children,
|
108
|
-
data: { testid: testId },
|
109
|
-
id: testId,
|
110
|
-
opacity: "opacity_5"
|
111
|
-
}
|
112
|
-
|
113
|
-
render(<Overlay {...props} />)
|
114
|
-
const kit = screen.getByTestId(testId)
|
115
|
-
expect(kit).toHaveClass('opacity_5')
|
116
|
-
})
|
@@ -1 +1 @@
|
|
1
|
-
Further customize your header by using the [table with background kit](https://playbook.powerapp.cloud/kits/table/react#table-with-background-kit) logic to give your table header a custom background color. Use the `headerStyle="floating"` prop to visually nest the borderless table within a card or collapsible with a matching background color (the `backgroundColor` passed to Background kit should match the `
|
1
|
+
Further customize your header by using the [table with background kit](https://playbook.powerapp.cloud/kits/table/react#table-with-background-kit) logic to give your table header a custom background color. Use the `headerStyle="floating"` prop to visually nest the borderless table within a card or collapsible with a matching background color (the `backgroundColor` passed to Background kit should match the `backgroundColor` for the element in which it is nested).
|
@@ -37,8 +37,6 @@ examples:
|
|
37
37
|
- table_with_collapsible_with_nested_table_rails: Table with Collapsible with Nested Table
|
38
38
|
- table_with_clickable_rows: Table with Clickable Rows
|
39
39
|
- table_with_selectable_rows: Table with Selectable Rows
|
40
|
-
- table_with_header_style_borderless: Header Style Borderless
|
41
|
-
- table_with_header_style_floating: Header Style Floating
|
42
40
|
|
43
41
|
react:
|
44
42
|
- table_sm: Small
|
@@ -37,16 +37,13 @@ module Playbook
|
|
37
37
|
prop :outer_padding, type: Playbook::Props::Enum,
|
38
38
|
values: ["none", "xxs", "xs", "sm", "md", "lg", "xl", nil],
|
39
39
|
default: nil
|
40
|
-
prop :header_style, type: Playbook::Props::Enum,
|
41
|
-
values: %w[default borderless floating],
|
42
|
-
default: "default"
|
43
40
|
|
44
41
|
def classname
|
45
42
|
generate_classname(
|
46
43
|
"pb_table", "table-#{size}", single_line_class, dark_class,
|
47
44
|
disable_hover_class, container_class, data_table_class, sticky_class, sticky_left_column_class,
|
48
45
|
sticky_right_column_class, collapse_class, vertical_border_class, striped_class, outer_padding_class,
|
49
|
-
"table-responsive-#{responsive}",
|
46
|
+
"table-responsive-#{responsive}", separator: " "
|
50
47
|
)
|
51
48
|
end
|
52
49
|
|
@@ -126,15 +123,6 @@ module Playbook
|
|
126
123
|
outer_padding.present? ? "outer_padding_#{space_css_name}#{outer_padding}" : nil
|
127
124
|
end
|
128
125
|
end
|
129
|
-
|
130
|
-
def header_style_class
|
131
|
-
case header_style
|
132
|
-
when "borderless"
|
133
|
-
"header-borderless"
|
134
|
-
when "floating"
|
135
|
-
"header-floating"
|
136
|
-
end
|
137
|
-
end
|
138
126
|
end
|
139
127
|
end
|
140
128
|
end
|
@@ -26,12 +26,9 @@ module Playbook
|
|
26
26
|
prop :tag, type: Playbook::Props::Enum,
|
27
27
|
values: %w[table div],
|
28
28
|
default: "table"
|
29
|
-
prop :header_style, type: Playbook::Props::Enum,
|
30
|
-
values: %w[default borderless floating],
|
31
|
-
default: "default"
|
32
29
|
|
33
30
|
def classname
|
34
|
-
generate_classname("pb_table_header_kit", align_class
|
31
|
+
generate_classname("pb_table_header_kit", align_class) + tag_class
|
35
32
|
end
|
36
33
|
|
37
34
|
def tag_class
|
@@ -109,15 +106,6 @@ module Playbook
|
|
109
106
|
end
|
110
107
|
active_item
|
111
108
|
end
|
112
|
-
|
113
|
-
def header_style_class
|
114
|
-
case header_style
|
115
|
-
when "borderless"
|
116
|
-
"header-borderless"
|
117
|
-
when "floating"
|
118
|
-
"header-floating"
|
119
|
-
end
|
120
|
-
end
|
121
109
|
end
|
122
110
|
end
|
123
111
|
end
|
@@ -25,7 +25,7 @@ type TextInputProps = {
|
|
25
25
|
name: string,
|
26
26
|
label: string,
|
27
27
|
mask?: 'currency' | 'zipCode' | 'postalCode' | 'ssn',
|
28
|
-
onChange: (e: React.FormEvent<HTMLInputElement
|
28
|
+
onChange: (e: React.FormEvent<HTMLInputElement>) => void,
|
29
29
|
placeholder: string,
|
30
30
|
required?: boolean,
|
31
31
|
type: string,
|
@@ -102,16 +102,10 @@ const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>
|
|
102
102
|
|
103
103
|
let cursorPosition = e.target.selectionStart;
|
104
104
|
const isAtEnd = cursorPosition === inputValue.length;
|
105
|
-
|
105
|
+
|
106
106
|
const formattedValue = INPUTMASKS[mask].format(inputValue)
|
107
|
-
|
108
|
-
let sanitizedValue = formattedValue;
|
109
|
-
if (INPUTMASKS[mask].sanitize) {
|
110
|
-
sanitizedValue = INPUTMASKS[mask].sanitize(formattedValue)
|
111
|
-
}
|
112
|
-
|
113
107
|
e.target.value = formattedValue
|
114
|
-
|
108
|
+
|
115
109
|
// Keep cursor position
|
116
110
|
if (!isAtEnd) {
|
117
111
|
// Account for extra characters (e.g., commas added/removed in currency)
|
@@ -122,11 +116,9 @@ const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>
|
|
122
116
|
}
|
123
117
|
e.target.selectionStart = e.target.selectionEnd = cursorPosition
|
124
118
|
}
|
125
|
-
|
126
|
-
onChange(e, sanitizedValue);
|
127
|
-
} else {
|
128
|
-
onChange(e)
|
129
119
|
}
|
120
|
+
|
121
|
+
onChange(e)
|
130
122
|
}
|
131
123
|
|
132
124
|
const childInput = children ? children.type === "input" : undefined
|
@@ -3,7 +3,6 @@ type InputMask = {
|
|
3
3
|
formatDefaultValue: (value: string) => string
|
4
4
|
pattern: string
|
5
5
|
placeholder: string
|
6
|
-
sanitize?: (value: string) => string;
|
7
6
|
}
|
8
7
|
|
9
8
|
type InputMaskDictionary = {
|
@@ -74,41 +73,35 @@ export const INPUTMASKS: InputMaskDictionary = {
|
|
74
73
|
// eslint-disable-next-line no-useless-escape
|
75
74
|
pattern: '^\\$\\d{1,3}(?:,\\d{3})*(?:\\.\\d{2})?$',
|
76
75
|
placeholder: '$0.00',
|
77
|
-
sanitize: (value: string) => value.replace(/[$,]/g, ''),
|
78
76
|
},
|
79
77
|
zipCode: {
|
80
78
|
format: formatBasicPostal,
|
81
79
|
formatDefaultValue: formatBasicPostal,
|
82
80
|
pattern: '\\d{5}',
|
83
81
|
placeholder: '12345',
|
84
|
-
sanitize: (value: string) => value,
|
85
82
|
},
|
86
83
|
postalCode: {
|
87
84
|
format: formatExtendedPostal,
|
88
85
|
formatDefaultValue: formatExtendedPostal,
|
89
86
|
pattern: '\\d{5}-\\d{4}',
|
90
87
|
placeholder: '12345-6789',
|
91
|
-
sanitize: (value: string) => value.replace(/-/g, ''),
|
92
88
|
},
|
93
89
|
ssn: {
|
94
90
|
format: formatSSN,
|
95
91
|
formatDefaultValue: formatSSN,
|
96
92
|
pattern: '\\d{3}-\\d{2}-\\d{4}',
|
97
93
|
placeholder: '123-45-6789',
|
98
|
-
sanitize: (value: string) => value.replace(/-/g, ''),
|
99
94
|
},
|
100
95
|
creditCard: {
|
101
96
|
format: formatCreditCard,
|
102
97
|
formatDefaultValue: formatCreditCard,
|
103
98
|
pattern: '\\d{4} \\d{4} \\d{4} \\d{4}',
|
104
99
|
placeholder: '1234 5678 9012 3456',
|
105
|
-
sanitize: (value: string) => value.replace(/\s/g, ''),
|
106
100
|
},
|
107
101
|
cvv: {
|
108
102
|
format: formatCVV,
|
109
103
|
formatDefaultValue: formatCVV,
|
110
104
|
pattern: '\\d{3,4}',
|
111
105
|
placeholder: '123',
|
112
|
-
sanitize: (value: string) => value,
|
113
106
|
},
|
114
|
-
}
|
107
|
+
}
|