playbook_ui 14.19.0 → 14.20.0.pre.alpha.PLAY22297977
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 +11 -1
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +175 -16
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +56 -25
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +23 -13
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/VisibilityTree.ts +47 -0
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +6 -10
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +7 -2
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +16 -8
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +9 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +6 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.jsx +57 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility.md +4 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_custom.jsx +62 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_custom.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi.jsx +82 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_multi.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.jsx +66 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.html.erb +137 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.md +3 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.html.erb +40 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +6 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +5 -1
- data/app/pb_kits/playbook/pb_advanced_table/index.js +155 -12
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.html.erb +23 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.rb +19 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +4 -0
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +77 -19
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +31 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.md +5 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +56 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.md +3 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +58 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.md +3 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +20 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +19 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.md +3 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +20 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +57 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.md +1 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +50 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +105 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +22 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +67 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +11 -0
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.md +1 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +33 -2
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.md +3 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +11 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/index.js +5 -0
- data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +3 -3
- data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +16 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +108 -2
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +34 -13
- data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +3 -1
- data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +0 -6
- data/app/pb_kits/playbook/pb_dropdown/index.js +336 -30
- data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +39 -12
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +2 -2
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +16 -12
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +79 -13
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/MultiSelectTriggerDisplay.tsx +58 -0
- data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +13 -0
- data/app/pb_kits/playbook/pb_file_upload/_file_upload.tsx +11 -1
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_error.html.erb +1 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/_file_upload_error.jsx +41 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_file_upload/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -0
- data/app/pb_kits/playbook/pb_file_upload/file_upload.rb +7 -1
- data/app/pb_kits/playbook/pb_file_upload/fileupload.test.js +18 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +2 -2
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +19 -12
- data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +13 -7
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +2 -2
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_reset.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.md +2 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.md +3 -1
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.html.erb +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.jsx +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.html.erb +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.jsx +22 -22
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children_with_radios.jsx +11 -11
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_form.html.erb +11 -11
- data/app/pb_kits/playbook/pb_person/_person.tsx +12 -2
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +9 -9
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +4 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_exclude_countries.html.erb +4 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_exclude_countries.jsx +15 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_exclude_countries.md +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.jsx +1 -1
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +4 -3
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +3 -0
- data/app/pb_kits/playbook/pb_popover/index.ts +9 -4
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +2 -2
- data/app/pb_kits/playbook/pb_select/docs/_select_custom_select_subheaders.html.erb +12 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_custom_select_subheaders.jsx +31 -0
- data/app/pb_kits/playbook/pb_select/docs/_select_custom_select_subheaders.md +1 -0
- data/app/pb_kits/playbook/pb_select/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_select/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +4 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +73 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.jsx +23 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/dist/chunks/_typeahead-VzsSrRRE.js +22 -0
- data/dist/chunks/_weekday_stacked-CJXn2tIy.js +45 -0
- data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
- data/dist/chunks/lib-DidmRoMy.js +29 -0
- data/dist/chunks/{pb_form_validation-BioH7DWv.js → pb_form_validation-pZDU9eKo.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +2 -2
- 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/kit_base.rb +3 -3
- data/lib/playbook/version.rb +2 -2
- metadata +50 -8
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb +0 -10
- data/dist/chunks/_typeahead-D62OcwsT.js +0 -22
- data/dist/chunks/_weekday_stacked-Ceh9N0ow.js +0 -45
- data/dist/chunks/lazysizes-DHz07jlL.js +0 -1
- data/dist/chunks/lib-CeKZrPmu.js +0 -29
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from "react"
|
2
|
-
import { render, screen } from "../utilities/test-utils"
|
2
|
+
import { render, screen, fireEvent } from "../utilities/test-utils"
|
3
3
|
|
4
4
|
import { Dropdown, Icon, IconCircle } from 'playbook-ui'
|
5
5
|
|
@@ -263,4 +263,110 @@ test("searchbar prop to render TextInput in container", () => {
|
|
263
263
|
const kit = screen.getByTestId(testId)
|
264
264
|
const searchbar = kit.querySelector('.pb_text_input_kit')
|
265
265
|
expect(searchbar).toBeInTheDocument()
|
266
|
-
})
|
266
|
+
})
|
267
|
+
|
268
|
+
test("MultiSelect prop to allow multiple selections + add correct Form Pills", () => {
|
269
|
+
render(
|
270
|
+
<Dropdown
|
271
|
+
data={{ testid: testId }}
|
272
|
+
multiSelect
|
273
|
+
options={options}
|
274
|
+
/>
|
275
|
+
);
|
276
|
+
|
277
|
+
const kit = screen.getByTestId(testId);
|
278
|
+
const option = Array.from(kit.querySelectorAll(".pb_dropdown_option_list"));
|
279
|
+
fireEvent.click(option[0]); // Select first option
|
280
|
+
fireEvent.click(option[1]); // Select second option
|
281
|
+
const formPills = kit.querySelectorAll(".pb_form_pill_kit_primary");
|
282
|
+
expect(formPills.length).toBe(2);
|
283
|
+
expect(formPills[0]).toHaveTextContent("United States");
|
284
|
+
expect(formPills[1]).toHaveTextContent("Canada");
|
285
|
+
});
|
286
|
+
|
287
|
+
test("hides each selected option from the dropdown", () => {
|
288
|
+
|
289
|
+
render(
|
290
|
+
<Dropdown
|
291
|
+
data={{ testid: testId }}
|
292
|
+
multiSelect
|
293
|
+
options={options}
|
294
|
+
/>
|
295
|
+
);
|
296
|
+
|
297
|
+
const kit = screen.getByTestId(testId);
|
298
|
+
const option = Array.from(kit.querySelectorAll(".pb_dropdown_option_list"));
|
299
|
+
const firstOpt = options[0].label
|
300
|
+
fireEvent.click(option[0]);
|
301
|
+
const option2 = Array.from(kit.querySelectorAll(".pb_dropdown_option_list"));
|
302
|
+
expect(option2[0]).not.toHaveTextContent(firstOpt)
|
303
|
+
})
|
304
|
+
|
305
|
+
test("renders form pills inside trigger", () => {
|
306
|
+
render(
|
307
|
+
<Dropdown
|
308
|
+
data={{ testid: testId }}
|
309
|
+
multiSelect
|
310
|
+
options={options}
|
311
|
+
/>
|
312
|
+
);
|
313
|
+
|
314
|
+
const kit = screen.getByTestId(testId)
|
315
|
+
const option = kit.querySelector('.pb_dropdown_option_list')
|
316
|
+
fireEvent.click(option)
|
317
|
+
const formPill = kit.querySelector(".pb_form_pill_kit_primary")
|
318
|
+
expect(formPill).toBeInTheDocument()
|
319
|
+
})
|
320
|
+
|
321
|
+
test("multiSelect and autocomplete to work together", () => {
|
322
|
+
render (
|
323
|
+
<Dropdown
|
324
|
+
autocomplete
|
325
|
+
data={{ testid: testId }}
|
326
|
+
multiSelect
|
327
|
+
options={options}
|
328
|
+
/>
|
329
|
+
)
|
330
|
+
|
331
|
+
const kit = screen.getByTestId(testId)
|
332
|
+
const input = kit.querySelector('.dropdown_input')
|
333
|
+
expect(input).toBeInTheDocument()
|
334
|
+
const option = kit.querySelector('.pb_dropdown_option_list')
|
335
|
+
fireEvent.click(option)
|
336
|
+
const formPill = kit.querySelector(".pb_form_pill_kit_primary")
|
337
|
+
expect(formPill).toBeInTheDocument()
|
338
|
+
})
|
339
|
+
|
340
|
+
test("renders form pills with size and color", () => {
|
341
|
+
render(
|
342
|
+
<Dropdown
|
343
|
+
data={{ testid: testId }}
|
344
|
+
formPillProps={{ size: "small", color: "neutral" }}
|
345
|
+
multiSelect
|
346
|
+
options={options}
|
347
|
+
/>
|
348
|
+
);
|
349
|
+
|
350
|
+
const kit = screen.getByTestId(testId)
|
351
|
+
const option = kit.querySelector('.pb_dropdown_option_list')
|
352
|
+
fireEvent.click(option)
|
353
|
+
const formPill = kit.querySelector(".pb_form_pill_kit_neutral")
|
354
|
+
expect(formPill).toBeInTheDocument()
|
355
|
+
expect(formPill).toHaveClass("small")
|
356
|
+
})
|
357
|
+
|
358
|
+
test("defaultValue works with multiSelect", () => {
|
359
|
+
render(
|
360
|
+
<Dropdown
|
361
|
+
data={{ testid: testId }}
|
362
|
+
defaultValue={[options[0], options[2]]}
|
363
|
+
multiSelect
|
364
|
+
options={options}
|
365
|
+
/>
|
366
|
+
)
|
367
|
+
const kit = screen.getByTestId(testId)
|
368
|
+
expect(kit.querySelectorAll(".pb_form_pill_kit_primary")).toHaveLength(2)
|
369
|
+
const option2 = Array.from(kit.querySelectorAll(".pb_dropdown_option_list"));
|
370
|
+
const firstOpt = options[0].label
|
371
|
+
expect(option2[0]).not.toHaveTextContent(firstOpt)
|
372
|
+
})
|
@@ -14,7 +14,7 @@
|
|
14
14
|
padding_y:"xs",
|
15
15
|
html_options: {tabindex:"0"}
|
16
16
|
}) do %>
|
17
|
-
<%= pb_rails("flex/flex_item") do %>
|
17
|
+
<%= pb_rails("flex/flex_item", props: { fixed_size: object.multi_select ? "85%" : "" }) do %>
|
18
18
|
<%= pb_rails("flex", props: {align: "center"}) do %>
|
19
19
|
<% if object.custom_display.present? %>
|
20
20
|
<%= pb_rails("flex", props: {align: "center"}) do %>
|
@@ -24,23 +24,44 @@
|
|
24
24
|
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display"}) %>
|
25
25
|
<% end %>
|
26
26
|
<% else %>
|
27
|
-
<% if object.
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
<% if object.multi_select %>
|
28
|
+
<%= pb_rails("flex", props: { align: "center", wrap: true }) do %>
|
29
|
+
<%= pb_rails("flex", props: { id:"dropdown_pills_wrapper", wrap: true }) do %>
|
30
|
+
<% end %>
|
31
|
+
<% if object.autocomplete %>
|
32
|
+
<input
|
33
|
+
data-dropdown-autocomplete
|
34
|
+
class="dropdown_input"
|
35
|
+
type="text"
|
36
|
+
placeholder="<%= object.placeholder || 'Select…' %>"
|
37
|
+
autocomplete="off"
|
38
|
+
/>
|
39
|
+
<% else %>
|
40
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display_multi_select"}) %>
|
41
|
+
<% end %>
|
42
|
+
<% end %>
|
35
43
|
<% else %>
|
36
|
-
|
44
|
+
<% if object.autocomplete %>
|
45
|
+
<input
|
46
|
+
data-dropdown-autocomplete
|
47
|
+
class="dropdown_input"
|
48
|
+
type="text"
|
49
|
+
placeholder="<%= object.placeholder || 'Select…' %>"
|
50
|
+
autocomplete="off"
|
51
|
+
/>
|
52
|
+
<% else %>
|
53
|
+
<%= pb_rails("body", props: {text: object.default_display_placeholder, id: "dropdown_trigger_display"}) %>
|
54
|
+
<% end %>
|
37
55
|
<% end %>
|
38
56
|
<% end %>
|
39
57
|
<% end %>
|
40
58
|
<% end %>
|
41
|
-
<%= pb_rails("
|
42
|
-
<%= pb_rails("
|
43
|
-
|
59
|
+
<%= pb_rails("flex/flex_item") do %>
|
60
|
+
<%= pb_rails("body", props: {display: "flex", align_items:"center" }) do %>
|
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"}) %>
|
64
|
+
<% end %>
|
44
65
|
<% end %>
|
45
66
|
<% end %>
|
46
67
|
<% end %>
|
@@ -11,6 +11,8 @@ module Playbook
|
|
11
11
|
prop :custom_display
|
12
12
|
prop :autocomplete, type: Playbook::Props::Boolean,
|
13
13
|
default: false
|
14
|
+
prop :multi_select, type: Playbook::Props::Boolean,
|
15
|
+
default: false
|
14
16
|
|
15
17
|
def data
|
16
18
|
Hash(prop(:data)).merge(dropdown_trigger: true, dropdown_placeholder: default_display_placeholder)
|
@@ -25,7 +27,7 @@ module Playbook
|
|
25
27
|
end
|
26
28
|
|
27
29
|
def trigger_wrapper_classes
|
28
|
-
generate_classname("dropdown_trigger_wrapper", ("select_only" unless autocomplete))
|
30
|
+
generate_classname("dropdown_trigger_wrapper", ("select_only" unless autocomplete || multi_select))
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|