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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +3 -23
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -11
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +128 -60
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +0 -3
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +2 -1
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +2 -2
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +2 -6
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +2 -6
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -6
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -4
  14. data/app/pb_kits/playbook/pb_background/_background.scss +0 -26
  15. data/app/pb_kits/playbook/pb_background/_background.tsx +3 -5
  16. data/app/pb_kits/playbook/pb_background/background.test.js +0 -5
  17. data/app/pb_kits/playbook/pb_background/docs/example.yml +0 -1
  18. data/app/pb_kits/playbook/pb_background/docs/index.js +0 -1
  19. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +2 -18
  20. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +5 -15
  21. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +5 -20
  22. data/app/pb_kits/playbook/pb_layout/_layout.scss +2 -36
  23. data/app/pb_kits/playbook/pb_layout/_layout.tsx +2 -27
  24. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +14 -18
  25. data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +21 -35
  26. data/app/pb_kits/playbook/pb_layout/subcomponents/_participant.tsx +6 -12
  27. data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +4 -21
  28. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +22 -49
  29. data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +4 -15
  30. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md +7 -1
  31. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -3
  32. data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -3
  33. data/app/pb_kits/playbook/pb_overlay/overlay.test.jsx +1 -39
  34. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating_react.md +1 -1
  35. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -2
  36. data/app/pb_kits/playbook/pb_table/table.rb +1 -13
  37. data/app/pb_kits/playbook/pb_table/table_header.rb +1 -13
  38. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +5 -13
  39. data/app/pb_kits/playbook/pb_text_input/inputMask.ts +1 -8
  40. data/dist/chunks/_typeahead-DZZ1n1Oe.js +22 -0
  41. data/dist/chunks/_weekday_stacked-P4lpbU7P.js +45 -0
  42. data/dist/chunks/vendor.js +1 -1
  43. data/dist/playbook-doc.js +1 -1
  44. data/dist/playbook-rails-react-bindings.js +1 -1
  45. data/dist/playbook-rails.js +1 -1
  46. data/dist/playbook.css +1 -1
  47. data/lib/playbook/version.rb +1 -1
  48. metadata +4 -25
  49. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.jsx +0 -58
  50. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.md +0 -6
  51. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.jsx +0 -64
  52. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +0 -8
  53. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +0 -55
  54. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +0 -3
  55. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +0 -33
  56. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +0 -3
  57. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +0 -97
  58. data/app/pb_kits/playbook/pb_background/docs/_background_overlay.jsx +0 -35
  59. data/app/pb_kits/playbook/pb_background/docs/_background_overlay.md +0 -1
  60. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.jsx +0 -63
  61. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.md +0 -3
  62. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.jsx +0 -39
  63. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.md +0 -1
  64. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.jsx +0 -40
  65. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +0 -5
  66. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless.html.erb +0 -34
  67. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_borderless_rails.md +0 -1
  68. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating.html.erb +0 -36
  69. data/app/pb_kits/playbook/pb_table/docs/_table_with_header_style_floating_rails.md +0 -1
  70. data/dist/chunks/_typeahead-CtCqFlTG.js +0 -22
  71. data/dist/chunks/_weekday_stacked-DSsdjRl5.js +0 -45
@@ -1 +1,7 @@
1
- Overlays help shift focus by dimming or masking background content. This kit supports gradient and solid color modes, with adjustable opacity to suit the context.
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 `background` or `backgroundColor` for the element in which it is nested).
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}", header_style_class, separator: " "
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, header_style_class) + tag_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>, sanitizedValue?: string) => void,
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
+ }