playbook_ui 14.19.0.pre.alpha.PLAY21377811 → 14.19.0.pre.alpha.borderfixadvancedtable7816

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +1 -3
  3. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +16 -8
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +9 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.html.erb +137 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.md +3 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.html.erb +40 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.md +1 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/index.js +355 -52
  11. data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.html.erb +23 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.rb +19 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +4 -0
  14. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  15. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +19 -77
  16. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb +10 -0
  17. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +1 -11
  18. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +0 -5
  19. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +3 -3
  20. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +2 -16
  21. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +13 -34
  22. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +1 -3
  23. data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +6 -0
  24. data/app/pb_kits/playbook/pb_dropdown/index.js +41 -334
  25. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +12 -39
  26. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +12 -16
  27. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +12 -78
  28. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
  29. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +0 -1
  30. data/dist/chunks/_typeahead-B9-s4j4U.js +22 -0
  31. data/dist/chunks/_weekday_stacked-CvzpmXD5.js +45 -0
  32. data/dist/chunks/{lib-BB_ZEriO.js → lib-B20MXZcW.js} +2 -2
  33. data/dist/chunks/{pb_form_validation-C0la9CZR.js → pb_form_validation-WWvUXPKD.js} +1 -1
  34. data/dist/chunks/vendor.js +1 -1
  35. data/dist/playbook-doc.js +1 -1
  36. data/dist/playbook-rails-react-bindings.js +1 -1
  37. data/dist/playbook-rails.js +1 -1
  38. data/dist/playbook.css +1 -1
  39. data/lib/playbook/version.rb +1 -1
  40. metadata +12 -23
  41. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +0 -31
  42. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.md +0 -5
  43. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +0 -56
  44. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.md +0 -3
  45. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +0 -58
  46. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.md +0 -3
  47. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +0 -20
  48. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.md +0 -1
  49. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +0 -19
  50. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.md +0 -3
  51. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +0 -20
  52. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +0 -57
  53. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.md +0 -1
  54. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +0 -50
  55. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +0 -105
  56. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +0 -22
  57. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +0 -67
  58. data/app/pb_kits/playbook/pb_dropdown/subcomponents/MultiSelectTriggerDisplay.tsx +0 -58
  59. data/dist/chunks/_typeahead-CLGxsWj4.js +0 -22
  60. data/dist/chunks/_weekday_stacked-BrJMDrKs.js +0 -45
@@ -10,7 +10,6 @@ import { globalProps } from "../../utilities/globalProps";
10
10
  import { useHandleOnKeyDown } from "../hooks/useHandleOnKeydown";
11
11
 
12
12
  import DropdownContext from "../context";
13
- import MultiSelectTriggerDisplay from "./MultiSelectTriggerDisplay";
14
13
 
15
14
  import Body from "../../pb_body/_body";
16
15
  import Icon from "../../pb_icon/_icon";
@@ -45,14 +44,12 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
45
44
  const {
46
45
  autocomplete,
47
46
  filterItem,
48
- handleBackspace,
49
47
  handleChange,
50
48
  handleWrapperClick,
51
49
  inputRef,
52
50
  inputWrapperRef,
53
51
  isDropDownClosed,
54
52
  isInputFocused,
55
- multiSelect,
56
53
  selected,
57
54
  setIsInputFocused,
58
55
  toggleDropdown,
@@ -72,19 +69,9 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
72
69
  const triggerWrapperClasses = buildCss(
73
70
  "dropdown_trigger_wrapper",
74
71
  isInputFocused && "focus",
75
- !autocomplete && !multiSelect && "select_only"
72
+ !autocomplete && "select_only"
76
73
  );
77
74
 
78
- const selectedArray = Array.isArray(selected)
79
- ? selected
80
- : selected && Object.keys(selected).length
81
- ? [selected]
82
- : [];
83
-
84
- const joinedLabels = multiSelect
85
- ? ""
86
- : selectedArray.map((option) => option.label).join(", ");
87
-
88
75
  const customDisplayPlaceholder = selected?.label ? (
89
76
  ""
90
77
  ) : autocomplete ? (
@@ -95,8 +82,8 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
95
82
  "Select..."
96
83
  );
97
84
 
98
- const defaultDisplayPlaceholder = joinedLabels
99
- ? joinedLabels
85
+ const defaultDisplayPlaceholder = selected?.label
86
+ ? selected.label
100
87
  : autocomplete
101
88
  ? ""
102
89
  : placeholder
@@ -138,60 +125,23 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
138
125
  paddingX="sm"
139
126
  paddingY="xs"
140
127
  >
141
- <FlexItem fixedSize={multiSelect ? "85%" : ""}>
142
- <Flex align="center"
143
- wrap
144
- >
128
+ <FlexItem>
129
+ <Flex align="center">
145
130
  {customDisplay ? (
146
131
  <Flex align="center">
147
132
  {customDisplay}
148
133
  <Body dark={dark}
149
- paddingLeft={`${joinedLabels ? "xs" : "none"}`}
134
+ paddingLeft={`${selected.label ? "xs" : "none"}`}
150
135
  >
151
136
  {customDisplayPlaceholder}
152
137
  </Body>
153
138
  </Flex>
154
139
  ) : (
155
- multiSelect ? (
156
- <>
157
- <MultiSelectTriggerDisplay
158
- autocomplete={autocomplete}
159
- dark={dark}
160
- placeholder={placeholder}
161
- selected={selectedArray}
162
- />
163
- {autocomplete && (
164
- <input
165
- className="dropdown_input"
166
- onChange={handleChange}
167
- onClick={(e) => {
168
- e.stopPropagation();// keep the wrapper’s handler from firing
169
- toggleDropdown();
170
- }}
171
- onFocus={() => setIsInputFocused(true)}
172
- onKeyDown={(e) => {
173
- handleKeyDown(e);
174
- e.stopPropagation(); //Fixes issue with keyboard accessibility
175
- }}
176
- placeholder={
177
- joinedLabels
178
- ? ""
179
- : placeholder
180
- ? placeholder
181
- : "Select..."
182
- }
183
- ref={inputRef}
184
- value={filterItem}
185
- />
186
- )}
187
- </>
188
- ) : (
189
- <Body dark={dark}
190
- text={defaultDisplayPlaceholder}
191
- />
192
- )
140
+ <Body dark={dark}
141
+ text={defaultDisplayPlaceholder}
142
+ />
193
143
  )}
194
- {autocomplete && !multiSelect && (
144
+ {autocomplete && (
195
145
  <input
196
146
  className="dropdown_input"
197
147
  onChange={handleChange}
@@ -202,7 +152,7 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
202
152
  onFocus={() => setIsInputFocused(true)}
203
153
  onKeyDown={handleKeyDown}
204
154
  placeholder={
205
- joinedLabels
155
+ selected.label
206
156
  ? ""
207
157
  : placeholder
208
158
  ? placeholder
@@ -214,29 +164,14 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
214
164
  )}
215
165
  </Flex>
216
166
  </FlexItem>
217
- <FlexItem>
218
167
  <Body
219
- alignItems="center"
220
168
  dark={dark}
221
169
  display="flex"
222
170
  htmlOptions={{
223
171
  onClick: (e: Event) => {e.stopPropagation();handleWrapperClick()}
224
172
  }}
225
173
  key={`${isDropDownClosed ? "chevron-down" : "chevron-up"}`}
226
- >
227
- {
228
- selectedArray.length > 0 && (
229
- <div onClick={(e)=>{e.stopPropagation();handleBackspace()}}>
230
- <Icon
231
- cursor="pointer"
232
- dark={dark}
233
- icon="times"
234
- paddingRight="xs"
235
- size="sm"
236
- />
237
- </div>
238
- )
239
- }
174
+ >
240
175
  <Icon
241
176
  cursor="pointer"
242
177
  dark={dark}
@@ -244,7 +179,6 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
244
179
  size="sm"
245
180
  />
246
181
  </Body>
247
- </FlexItem>
248
182
  </Flex>
249
183
  </>
250
184
  )
@@ -99,7 +99,6 @@
99
99
  <%= form.url_field :example_url_field, props: { label: true } %>
100
100
  <%= form.text_area :example_text_area, props: { label: true } %>
101
101
  <%= form.dropdown_field :example_dropdown, props: { label: true, options: example_dropdown_options } %>
102
- <%= form.dropdown_field :example_dropdown_multi, props: { label: true, options: example_dropdown_options, multi_select: true } %>
103
102
  <%= form.select :example_select, [ ["Yes", 1], ["No", 2] ], props: { label: true } %>
104
103
  <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
105
104
  <%= form.check_box :example_checkbox,
@@ -98,7 +98,6 @@
98
98
  <%= form.url_field :example_url_field_validation, props: { label: true, required: true } %>
99
99
  <%= form.text_area :example_text_area_validation, props: { label: true, required: true } %>
100
100
  <%= form.dropdown_field :example_dropdown_validation, props: { label: true, options: example_dropdown_options, required: true } %>
101
- <%= form.dropdown_field :example_dropdown_validation_multi, props: { label: true, options: example_dropdown_options, multi_select: true, required: true } %>
102
101
  <%= form.select :example_select_validation, [ ["Yes", 1], ["No", 2] ], props: { label: true, blank_selection: "Select One...", required: true, validation_message: "Please, select an option." } %>
103
102
  <%= form.collection_select :example_collection_select_validation, example_collection, :value, :name, props: { label: true, blank_selection: "Select One...", required: true } %>
104
103
  <%= form.check_box :example_checkbox, props: { text: "Example Checkbox", label: true, required: true } %>