playbook_ui 14.19.0.pre.alpha.PLAY2182formgroupselectpassphraseerror7759 → 14.19.0.pre.alpha.PLAY20937693

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +1 -11
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +15 -148
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +3 -20
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +13 -23
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +0 -9
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +2 -7
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -4
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -5
  10. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +0 -1
  11. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +0 -11
  12. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.md +1 -1
  13. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +2 -33
  14. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.md +1 -3
  15. data/app/pb_kits/playbook/pb_dropdown/index.js +1 -14
  16. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +2 -2
  17. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +1 -1
  18. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +0 -13
  19. data/app/pb_kits/playbook/pb_file_upload/_file_upload.tsx +1 -11
  20. data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +0 -2
  21. data/app/pb_kits/playbook/pb_file_upload/docs/index.js +0 -1
  22. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +0 -1
  23. data/app/pb_kits/playbook/pb_file_upload/file_upload.rb +1 -7
  24. data/app/pb_kits/playbook/pb_file_upload/fileupload.test.js +0 -18
  25. data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +2 -2
  26. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +12 -19
  27. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +7 -13
  28. data/app/pb_kits/playbook/pb_person/_person.tsx +2 -12
  29. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +9 -9
  30. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +2 -2
  31. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +2 -4
  32. data/dist/chunks/{_typeahead-BPSIWtFT.js → _typeahead-BQV04mOl.js} +3 -3
  33. data/dist/chunks/_weekday_stacked-CVwWr8B2.js +45 -0
  34. data/dist/chunks/{lib-B20MXZcW.js → lib-DwFasxbk.js} +2 -2
  35. data/dist/chunks/{pb_form_validation-WWvUXPKD.js → pb_form_validation-nnXW3T-3.js} +1 -1
  36. data/dist/chunks/vendor.js +1 -1
  37. data/dist/playbook-doc.js +1 -1
  38. data/dist/playbook-rails-react-bindings.js +1 -1
  39. data/dist/playbook-rails.js +1 -1
  40. data/dist/playbook.css +1 -1
  41. data/lib/playbook/version.rb +1 -1
  42. metadata +6 -17
  43. data/app/pb_kits/playbook/pb_advanced_table/Utilities/VisibilityTree.ts +0 -47
  44. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.jsx +0 -57
  45. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.md +0 -4
  46. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_custom.jsx +0 -62
  47. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_custom.md +0 -1
  48. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi.jsx +0 -82
  49. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi.md +0 -1
  50. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.jsx +0 -65
  51. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md +0 -1
  52. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_error.html.erb +0 -1
  53. data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_error.jsx +0 -41
  54. data/dist/chunks/_weekday_stacked-CaTzIguf.js +0 -45
@@ -9,7 +9,6 @@
9
9
  <%= pb_rails("text_input", props: {
10
10
  type: "file",
11
11
  dark: object.dark,
12
- error: object.error.presence,
13
12
  input_options: {
14
13
  id: "upload-#{object.id}",
15
14
  classname: "cursor_pointer",
@@ -21,20 +21,14 @@ module Playbook
21
21
  prop :input_options, type: Playbook::Props::HashProp,
22
22
  default: {}
23
23
 
24
- prop :error, type: Playbook::Props::String
25
-
26
24
  def classname
27
25
  file_upload_class = generate_classname("pb_file_upload_kit")
28
- file_upload_class + error_class + full_width_class
26
+ file_upload_class + full_width_class
29
27
  end
30
28
 
31
29
  def full_width_class
32
30
  full_width ? " full_width" : ""
33
31
  end
34
-
35
- def error_class
36
- error.present? ? "_error" : ""
37
- end
38
32
  end
39
33
  end
40
34
  end
@@ -50,21 +50,3 @@ test('displays custom message', () => {
50
50
  const kit = screen.getByTestId(testid)
51
51
  expect(kit).toHaveTextContent('Hello world!')
52
52
  })
53
-
54
- test('handles error state with error prop', () => {
55
- const errorText = "Test error message"
56
- render(
57
- <FileUpload
58
- data={{ testid: testid }}
59
- error={errorText}
60
- />
61
- )
62
-
63
- const kit = screen.getByTestId(testid)
64
-
65
- expect(kit).toHaveClass('pb_file_upload_kit')
66
- expect(kit).toHaveClass('error')
67
-
68
- const errorElement = screen.getByText(errorText)
69
- expect(errorElement).toBeInTheDocument()
70
- })
@@ -23,7 +23,7 @@
23
23
  @mixin error-state-right-side-select-kit {
24
24
  &:has(.pb_text_input_kit:not(.error)):has(.pb_text_input_kit_label):has(.pb_select_kit_wrapper.error),
25
25
  &:has(.pb_text_input_kit.error):has(.pb_text_input_kit_label):has(.pb_select_kit_wrapper) {
26
- &:not(:has(.pb_phone_number_input)):not(:has(.passphrase-text-input)) {
26
+ &:not(:has(.pb_phone_number_input)) {
27
27
  align-items: flex-start;
28
28
 
29
29
  .pb_select_kit_wrapper {
@@ -49,7 +49,7 @@
49
49
 
50
50
  @mixin error-state-left-side-select-kit {
51
51
  &:has(.pb_select_kit_label):has(.pb_select_kit_wrapper):has(.pb_text_input_kit.error) {
52
- &:not(:has(.pb_phone_number_input)):not(:has(.passphrase-text-input)) {
52
+ &:not(:has(.pb_phone_number_input)) {
53
53
  align-items: flex-start;
54
54
 
55
55
  .pb_text_input_kit.error {
@@ -20,12 +20,9 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
20
20
  margin-bottom: 2px;
21
21
  margin-top: 2px;
22
22
  cursor: pointer;
23
- .pb_form_pill_text, .pb_form_pill_tag {
23
+ .pb_form_pill_text, .pb_form_pill_close, .pb_form_pill_tag{
24
24
  font-size: $font_small !important;
25
25
  }
26
- .pb_form_pill_close {
27
- font-size: 17px;
28
- }
29
26
 
30
27
  &[class*=wrapped] {
31
28
  height: max-content;
@@ -99,9 +96,7 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
99
96
  display: flex;
100
97
  align-items: center;
101
98
  height: 17px;
102
- width: 17px;
103
- justify-content: center;
104
- border-radius: 50%;
99
+ border-radius: calc(50%);
105
100
  cursor: pointer;
106
101
  @if ($color_name == "neutral") {
107
102
  color: $text_lt_default;
@@ -151,7 +146,8 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
151
146
  outline-offset: -1px;
152
147
  }
153
148
  .pb_form_pill_icon {
154
- height: 0.875em;
149
+ height: 12px !important;
150
+ width: 12px !important;
155
151
  padding-right: $space_xs;
156
152
  + .pb_form_pill_text, + .pb_form_pill_tag,
157
153
  + .pb_tooltip_kit .pb_form_pill_text, + .pb_tooltip_kit .pb_form_pill_tag,
@@ -162,7 +158,7 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
162
158
  &.small {
163
159
  height: 17px;
164
160
  padding: 0 $space-xs;
165
- .pb_form_pill_text, .pb_form_pill_tag {
161
+ .pb_form_pill_text, .pb_form_pill_close, .pb_form_pill_tag {
166
162
  font-size: $font_smallest !important;
167
163
  }
168
164
  .pb_form_pill_text, .pb_form_pill_tag {
@@ -170,20 +166,17 @@ $form_pill_colors: map-merge($status_color_text, map-merge($data_colors, $produc
170
166
  padding: 0 $space_xxs;
171
167
  }
172
168
  .pb_form_pill_close {
173
- height: 14px;
174
- width: 14px;
175
- font-size: 15px;
176
- border-radius: 50%;
169
+ height: 10px;
170
+ border-radius: calc(50%);
177
171
  }
178
172
  [class^=pb_avatar_kit] .avatar_wrapper {
179
- flex-basis: 14px;
180
- height: 14px;
181
- margin-top: 3px;
182
- width: 14px;
183
- &::before { line-height: 15px; }
173
+ flex-basis: 16px;
174
+ height: 16px;
175
+ margin-top: 2px;
176
+ width: 16px;
177
+ &::before { line-height: 16.5px; }
184
178
  }
185
179
  .pb_form_pill_icon {
186
- height: 0.75em;
187
180
  padding-right: $space_xxs;
188
181
  + .pb_form_pill_text, + .pb_form_pill_tag,
189
182
  + .pb_tooltip_kit .pb_form_pill_text, + .pb_tooltip_kit .pb_form_pill_tag,
@@ -81,11 +81,6 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
81
81
 
82
82
  const formatStreetAdr = (address: string): string => preserveCase ? address : titleize(address)
83
83
 
84
- const uppercaseState = state?.toUpperCase() ?? ''
85
-
86
- const fields = [address, addressCont, city, homeId, homeUrl, houseStyle, state, territory, zipcode]
87
- const hasAllEmptyProps = fields.every(field => field === undefined || field === null || field === '')
88
-
89
84
  return (
90
85
  <div
91
86
  className={classes(className, dark)}
@@ -93,8 +88,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
93
88
  {...dataProps}
94
89
  {...htmlProps}
95
90
  >
96
- {hasAllEmptyProps && ''}
97
- {emphasis == 'street' && !hasAllEmptyProps &&
91
+ {emphasis == 'street' &&
98
92
  <div>
99
93
  <Title
100
94
  className="pb_home_address_street_address"
@@ -111,11 +105,11 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
111
105
  {titleize(addressCont)}
112
106
  </Title>
113
107
  <Body color="light">
114
- {`${city ? `${titleize(city)}, ` : ''}${uppercaseState}${zipcode ? ` ${zipcode}` : ''}`}
108
+ {`${titleize(city)}, ${state.toUpperCase()} ${zipcode}`}
115
109
  </Body>
116
110
  </div>
117
111
  }
118
- {emphasis == 'city' && !hasAllEmptyProps &&
112
+ {emphasis == 'city' &&
119
113
  <div>
120
114
  <Body color="light">
121
115
  {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
@@ -128,18 +122,18 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
128
122
  size={4}
129
123
  tag="span"
130
124
  >
131
- {`${city ? `${titleize(city)}, ` : ''}${uppercaseState}`}
125
+ {`${titleize(city)}, ${state.toUpperCase()}`}
132
126
  </Title>
133
127
  <Body
134
128
  color="light"
135
129
  tag="span"
136
130
  >
137
- {` ${zipcode ?? ''}`}
131
+ {` ${zipcode}`}
138
132
  </Body>
139
133
  </div>
140
134
  </div>
141
135
  }
142
- {emphasis == 'none' && !hasAllEmptyProps &&
136
+ {emphasis == 'none' &&
143
137
  <div>
144
138
  <Body dark={dark}>
145
139
  {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
@@ -150,7 +144,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
150
144
  color="light"
151
145
  dark={dark}
152
146
  >
153
- {`${city ? `${titleize(city)}, ` : ''}${uppercaseState}${zipcode ? ` ${zipcode}` : ''}`}
147
+ {`${titleize(city)}, ${state.toUpperCase()} ${zipcode}`}
154
148
  </Body>
155
149
  </div>
156
150
  </div>
@@ -41,16 +41,6 @@ const Person = (props: PersonProps): React.ReactElement => {
41
41
  className
42
42
  )
43
43
 
44
- const hasAllEmptyProps = [firstName, lastName].every(field => field === undefined || field === null || field === '')
45
-
46
- if (hasAllEmptyProps) {
47
- return (
48
- <>
49
-
50
- </>
51
- )
52
- }
53
-
54
44
  return (
55
45
  <div
56
46
  {...ariaProps}
@@ -63,13 +53,13 @@ const Person = (props: PersonProps): React.ReactElement => {
63
53
  className="pb_person_first"
64
54
  tag="span"
65
55
  >
66
- {firstName ?? ''}
56
+ {firstName}
67
57
  </Body>
68
58
  {lastName &&
69
59
  <Title
70
60
  className="pb_person_first"
71
61
  size={4}
72
- text={lastName ? ` ${lastName}` : ''}
62
+ text={` ${lastName}`}
73
63
  />
74
64
  }
75
65
  </div>
@@ -42,7 +42,7 @@ $flag-min-resolution: 192dpi;
42
42
  .iti__country-list {
43
43
  min-width: $dropdown-min-width;
44
44
  }
45
- // iti-spacer-horizontal's default is 8px, or $space_xs
45
+ // iti-spacer-horizontal's default is 8px, or $space_xs
46
46
  .iti__country-list .iti__flag, .iti__country-name {
47
47
  margin-right: $space_xs;
48
48
  }
@@ -60,7 +60,7 @@ $flag-min-resolution: 192dpi;
60
60
  color: $focus_input_light;
61
61
  }
62
62
 
63
- .dropdown_open:not(.error) {
63
+ .dropdown_open {
64
64
  .text_input {
65
65
  border-color: $primary !important;
66
66
  }
@@ -76,7 +76,7 @@ $flag-min-resolution: 192dpi;
76
76
  }
77
77
 
78
78
  .iti__divider {
79
- border-bottom: 1px solid $border_light !important;
79
+ border-bottom: 1px solid $border_light !important;
80
80
  }
81
81
 
82
82
  .iti__selected-country-primary {
@@ -96,7 +96,7 @@ $flag-min-resolution: 192dpi;
96
96
  justify-content: center;
97
97
  align-items: center;
98
98
  border-width: 0;
99
- border-radius: $space_xxs;
99
+ border-radius: $space_xxs;
100
100
 
101
101
  &[aria-expanded="true"] {
102
102
  color: $primary_action;
@@ -199,7 +199,7 @@ $flag-min-resolution: 192dpi;
199
199
  }
200
200
 
201
201
  .iti__dropdown-content {
202
- border-radius: $space_xs;
202
+ border-radius: $space_xs;
203
203
  border: 1px solid $border_light !important;
204
204
  position: absolute;
205
205
  top: 100%;
@@ -228,13 +228,13 @@ $flag-min-resolution: 192dpi;
228
228
  }
229
229
 
230
230
  .iti__dropdown-content {
231
- border-radius: $space_xs;
231
+ border-radius: $space_xs;
232
232
  border: 1px solid $border_dark !important;
233
233
  .iti__search-input {
234
234
  background-color: $bg_dark_card;
235
235
  &:hover {
236
236
  background-color: $bg_dark_card;
237
- }
237
+ }
238
238
  &:active,
239
239
  &:focus {
240
240
  background-color: $card_dark;
@@ -243,7 +243,7 @@ $flag-min-resolution: 192dpi;
243
243
  }
244
244
 
245
245
  .iti__divider {
246
- border-bottom: 1px solid $border_dark !important;
246
+ border-bottom: 1px solid $border_dark !important;
247
247
  }
248
248
 
249
249
  .iti__country-list {
@@ -278,7 +278,7 @@ $flag-min-resolution: 192dpi;
278
278
  color: $white;
279
279
  }
280
280
  }
281
-
281
+
282
282
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: $flag-min-resolution) {
283
283
  .iti__flag {
284
284
  background-image: url("https://unpkg.com/intl-tel-input@24.6.0/build/img/flags@2x.png");
@@ -2,7 +2,7 @@ import React from 'react'
2
2
  import classnames from 'classnames'
3
3
 
4
4
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
5
- import { globalProps, globalInlineProps, GlobalProps } from '../utilities/globalProps'
5
+ import { globalProps, globalInlineProps } from '../utilities/globalProps'
6
6
 
7
7
  import Caption from '../pb_caption/_caption'
8
8
 
@@ -19,7 +19,7 @@ type SectionSeparatorProps = {
19
19
  orientation?: "horizontal" | "vertical",
20
20
  text?: string,
21
21
  variant?: "card" | "background",
22
- } & GlobalProps
22
+ }
23
23
 
24
24
  const SectionSeparator = (props: SectionSeparatorProps): React.ReactElement => {
25
25
  const {
@@ -71,8 +71,7 @@
71
71
  }
72
72
  &.error {
73
73
  .text_input_wrapper {
74
- // The `:not` here prevents error styling from affecting the country search input in the Phone Number Input Kit.
75
- input:not(.iti__search-input),
74
+ input,
76
75
  .text_input {
77
76
  border-color: $error_dark;
78
77
  }
@@ -103,8 +102,7 @@
103
102
  [class*="pb_body_kit"] {
104
103
  margin-top: $space_xs / 2;
105
104
  }
106
- // The `:not` here prevents error styling from affecting the country search input in the Phone Number Input Kit.
107
- input:not(.iti__search-input),
105
+ input,
108
106
  .text_input {
109
107
  border-color: $error;
110
108
  }