playbook_ui 14.3.2.pre.alpha.PBNTR515typeaheadmarginbottomredux3785 → 14.3.2.pre.alpha.pbntr523enablekitsforradiofix3809

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +2 -3
  3. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +245 -23
  4. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +1 -1
  5. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_colors.html.erb +117 -0
  6. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_colors.jsx +227 -0
  7. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_colors.md +1 -0
  8. data/app/pb_kits/playbook/pb_form_pill/docs/example.yml +2 -0
  9. data/app/pb_kits/playbook/pb_form_pill/docs/index.js +1 -0
  10. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +1 -1
  11. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +5 -1
  12. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.html.erb +72 -0
  13. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.jsx +91 -0
  14. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color_rails.md +1 -0
  15. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color_react.md +1 -0
  16. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +2 -0
  17. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
  18. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.rb +4 -0
  19. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +97 -21
  20. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.test.js +166 -0
  21. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.tsx +45 -6
  22. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_multiple_users_stacked_bubble.html.erb +73 -0
  23. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_multiple_users_stacked_bubble.jsx +86 -0
  24. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/example.yml +2 -0
  25. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/index.js +1 -0
  26. data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.html.erb +6 -2
  27. data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.rb +21 -1
  28. data/app/pb_kits/playbook/pb_radio/_radio.tsx +92 -33
  29. data/app/pb_kits/playbook/pb_radio/docs/_radio_custom_children.html.erb +48 -0
  30. data/app/pb_kits/playbook/pb_radio/docs/_radio_custom_children.jsx +59 -0
  31. data/app/pb_kits/playbook/pb_radio/docs/_radio_custom_children.md +1 -0
  32. data/app/pb_kits/playbook/pb_radio/docs/example.yml +2 -0
  33. data/app/pb_kits/playbook/pb_radio/docs/index.js +1 -0
  34. data/app/pb_kits/playbook/pb_radio/index.js +17 -0
  35. data/app/pb_kits/playbook/pb_radio/radio.html.erb +35 -13
  36. data/app/pb_kits/playbook/pb_radio/radio.rb +3 -1
  37. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +1 -0
  38. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +1 -0
  39. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +9 -7
  40. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +4 -3
  41. data/app/pb_kits/playbook/pb_typeahead/components/Control.tsx +5 -6
  42. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +26 -18
  43. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.html.erb +31 -0
  44. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +26 -0
  45. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color_rails.md +1 -0
  46. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color_react.md +1 -0
  47. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +2 -2
  48. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -1
  49. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +1 -2
  50. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +5 -6
  51. data/app/pb_kits/playbook/tokens/_colors.scss +2 -0
  52. data/dist/chunks/{_typeahead-DaDWXuYo.js → _typeahead-468tQVei.js} +2 -2
  53. data/dist/chunks/{_weekday_stacked-Drg1rU0J.js → _weekday_stacked-CODev76A.js} +2 -2
  54. data/dist/chunks/{lib--ErPKv63.js → lib-D2U4I1U6.js} +1 -1
  55. data/dist/chunks/{pb_form_validation-CHMFwDfe.js → pb_form_validation-zV9OpdSt.js} +1 -1
  56. data/dist/chunks/vendor.js +1 -1
  57. data/dist/playbook-doc.js +1 -1
  58. data/dist/playbook-rails-react-bindings.js +1 -1
  59. data/dist/playbook-rails.js +1 -1
  60. data/dist/playbook.css +1 -1
  61. data/lib/playbook/version.rb +1 -1
  62. metadata +23 -8
  63. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.html.erb +0 -88
  64. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.jsx +0 -60
@@ -0,0 +1,48 @@
1
+ <%
2
+ options = [
3
+ { label: "Orange", value: "Orange" },
4
+ { label: "Red", value: "Red" },
5
+ { label: "Green", value: "Green" },
6
+ { label: "Blue", value: "Blue" },
7
+ ]
8
+ %>
9
+
10
+ <%= pb_rails("radio", props: {
11
+ custom_children: true,
12
+ label: "Select",
13
+ name: "Group1",
14
+ value: "Select",
15
+ }) do %>
16
+ <%= pb_rails("select", props: {
17
+ min_width: "xs",
18
+ options: options,
19
+ }) %>
20
+ <% end %>
21
+
22
+ <%= pb_rails("radio", props: {
23
+ custom_children: true,
24
+ label: "Typeahead",
25
+ name: "Group1",
26
+ value: "Typeahead",
27
+ }) do %>
28
+ <%= pb_rails("typeahead", props: {
29
+ id: "typeahead-radio",
30
+ is_multi: false,
31
+ min_width: "xs",
32
+ options: options,
33
+ placeholder: "Select...",
34
+ })
35
+ %>
36
+ <% end %>
37
+
38
+ <%= pb_rails("radio", props: {
39
+ custom_children: true,
40
+ label: "Typography",
41
+ name: "Group1",
42
+ value: "Typography",
43
+ }) do %>
44
+ <%= pb_rails("title", props: {
45
+ text: "Custom Typography",
46
+ })
47
+ %>
48
+ <% end %>
@@ -0,0 +1,59 @@
1
+ import React from 'react'
2
+ import Radio from '../_radio'
3
+ import Select from '../../pb_select/_select'
4
+ import Typeahead from '../../pb_typeahead/_typeahead'
5
+ import Title from '../../pb_title/_title'
6
+
7
+ const RadioChildren = (props) => {
8
+
9
+
10
+ const options = [
11
+ { label: 'Orange', value: 'Orange' },
12
+ { label: 'Red', value: 'Red' },
13
+ { label: 'Green', value: 'Green' },
14
+ { label: 'Blue', value: 'Blue' },
15
+ ]
16
+
17
+ return (
18
+ <div>
19
+ <Radio
20
+ customChildren
21
+ label="Select"
22
+ name="Group1"
23
+ tabIndex={0}
24
+ value="Select"
25
+ {...props}
26
+ >
27
+ <Select
28
+ minWidth="xs"
29
+ options={options}
30
+ />
31
+ </Radio>
32
+ <Radio
33
+ customChildren
34
+ label="Typeahead"
35
+ name="Group1"
36
+ tabIndex={0}
37
+ value="Typeahead"
38
+ {...props}
39
+ >
40
+ <Typeahead
41
+ minWidth="xs"
42
+ options={options}
43
+ />
44
+ </Radio>
45
+ <br />
46
+ <Radio
47
+ customChildren
48
+ defaultChecked={false}
49
+ label="Typography"
50
+ name="Group1"
51
+ value="Typography"
52
+ {...props}
53
+ >
54
+ <Title text="Custom Typography" />
55
+ </Radio>
56
+ </div>
57
+ )
58
+ }
59
+ export default RadioChildren
@@ -0,0 +1 @@
1
+ Use the `custom_children` prop to enable the use of kits instead of text labels.
@@ -7,6 +7,7 @@ examples:
7
7
  - radio_options: With Options
8
8
  - radio_alignment: Alignment
9
9
  - radio_disabled: Disabled
10
+ - radio_custom_children: Custom Children
10
11
 
11
12
  react:
12
13
  - radio_default: Default
@@ -14,6 +15,7 @@ examples:
14
15
  - radio_error: With Error
15
16
  - radio_alignment: Alignment
16
17
  - radio_disabled: Disabled
18
+ - radio_custom_children: Custom Children
17
19
 
18
20
  swift:
19
21
  - radio_default_swift: Default
@@ -3,3 +3,4 @@ export { default as RadioCustom } from './_radio_custom.jsx'
3
3
  export { default as RadioError } from './_radio_error.jsx'
4
4
  export { default as RadioAlignment } from './_radio_alignment.jsx'
5
5
  export { default as RadioDisabled } from './_radio_disabled.jsx'
6
+ export { default as RadioCustomChildren } from './_radio_custom_children.jsx'
@@ -0,0 +1,17 @@
1
+ import PbEnhancedElement from "../pb_enhanced_element"
2
+
3
+ const RADIO_SELECTOR = "[data-pb-radio-children]"
4
+ const RADIO_WRAPPER_SELECTOR = "[data-pb-radio-children-wrapper]"
5
+
6
+ export default class PbRadio extends PbEnhancedElement {
7
+ static get selector() {
8
+ return RADIO_SELECTOR
9
+ }
10
+
11
+ connect() {
12
+ const radioWrapperElement = this.element.parentElement.querySelector(RADIO_WRAPPER_SELECTOR)
13
+ radioWrapperElement.addEventListener("click", () => {
14
+ this.element.querySelector("input[type='radio']").click()
15
+ })
16
+ }
17
+ }
@@ -1,18 +1,40 @@
1
- <%= content_tag(:label,
1
+ <% if object.custom_children %>
2
+ <%= pb_rails("flex", props: {
2
3
  aria: object.aria,
3
- checked: object.checked,
4
+ align: "center",
4
5
  class: object.classname,
6
+ cursor: "pointer",
5
7
  data: object.data,
6
- id: object.id,
7
- value: object.value,
8
- **combined_html_options) do %>
9
-
10
- <% if content.present? %>
11
- <%= content %>
12
- <% else %>
13
- <%= radio_button_tag object.name, object.value, object.selected, object.input_options %>
8
+ **combined_html_options
9
+ }) do %>
10
+ <%= content_tag(:label,
11
+ 'data-pb-radio-children': 'true',
12
+ checked: object.checked,
13
+ class: object.classname,
14
+ id: object.id,
15
+ value: object.value) do %>
16
+ <%= input %>
17
+ <span class="pb_radio_button"></span>
14
18
  <% end %>
19
+ <div data-pb-radio-children-wrapper="true"> <%= content %> </div>
20
+ <% end %>
21
+ <% else %>
22
+ <%= content_tag(:label,
23
+ aria: object.aria,
24
+ checked: object.checked,
25
+ class: object.classname,
26
+ data: object.data,
27
+ id: object.id,
28
+ value: object.value,
29
+ **combined_html_options) do %>
30
+
31
+ <% if content.present? %>
32
+ <%= content %>
33
+ <% else %>
34
+ <%= radio_button_tag object.name, object.value, object.selected, object.input_options %>
35
+ <% end %>
15
36
 
16
- <span class="pb_radio_button"></span>
17
- <%= pb_rails("body", props: { status: object.body_status, text: object.text, dark: object.dark }) %>
18
- <% end %>
37
+ <span class="pb_radio_button"></span>
38
+ <%= pb_rails("body", props: { status: object.body_status, text: object.text, dark: object.dark }) %>
39
+ <% end %>
40
+ <% end %>
@@ -20,6 +20,8 @@ module Playbook
20
20
  default: "Radio Text"
21
21
  prop :value, type: Playbook::Props::String,
22
22
  default: "radio_text"
23
+ prop :custom_children, type: Playbook::Props::Boolean,
24
+ default: false
23
25
 
24
26
  def classname
25
27
  generate_classname("pb_radio_kit") + error_class + alignment_class
@@ -34,7 +36,7 @@ module Playbook
34
36
  end
35
37
 
36
38
  def input
37
- radio_button_tag(name, value, checked, input_options.merge(disabled: disabled))
39
+ radio_button_tag(name, value, checked, input_options.merge(disabled: disabled || input_options[:disabled]))
38
40
  end
39
41
 
40
42
  private
@@ -45,6 +45,7 @@
45
45
  }
46
46
  }
47
47
  .text_input_wrapper {
48
+ margin-bottom: 1rem;
48
49
  input::placeholder,
49
50
  .text_input .placeholder {
50
51
  @include pb_body_light_dark;
@@ -68,6 +68,7 @@
68
68
  opacity: 0;
69
69
  }
70
70
  [class^=pb_list_kit] {
71
+ margin-top: -$space-sm;
71
72
  li {
72
73
  transition: background-color .25s ease-in-out;
73
74
  }
@@ -109,16 +109,18 @@ test('should pass className prop', () => {
109
109
  expect(kit).toHaveClass(className)
110
110
  })
111
111
 
112
- test('typeahead textinput has mb_sm class by default', () => {
112
+ test('typeahead with colored pills', () => {
113
113
  render(
114
114
  <Typeahead
115
- data={{ testid: 'default-mb-test' }}
116
- options={options}
115
+ data={{ testid: 'pills-color-test' }}
116
+ defaultValue={[options[0]]}
117
+ isMulti
118
+ options={options}
119
+ pillColor="neutral"
117
120
  />
118
121
  )
119
122
 
120
- const kit = screen.getByTestId('default-mb-test')
121
- expect(kit).toHaveClass("pb_typeahead_kit mb_sm")
122
- const textInput = kit.querySelector(".pb_text_input_kit")
123
- expect(textInput).toHaveClass("mb_none")
123
+ const kit = screen.getByTestId('pills-color-test')
124
+ const pill = kit.querySelector(".pb_form_pill_kit_neutral")
125
+ expect(pill).toBeInTheDocument()
124
126
  })
@@ -45,13 +45,14 @@ type TypeaheadProps = {
45
45
  getOptionLabel?: string | (() => any),
46
46
  getOptionValue?: string | (() => any),
47
47
  name?: string,
48
- marginBottom?: "none" | "xxs" | "xs" | "sm" | "md" | "lg" | "xl",
48
+ pillColor?: "primary" | "neutral" | "success" | "warning" | "error" | "info" | "data_1" | "data_2" | "data_3" | "data_4" | "data_5" | "data_6" | "data_7" | "data_8" | "windows" | "siding" | "roofing" | "doors" | "gutters" | "solar" | "insulation" | "accessories",
49
49
  } & GlobalProps
50
50
 
51
51
  export type SelectValueType = {
52
52
  label: string,
53
53
  value: string,
54
54
  imageUrl?: string,
55
+ pillColor?: string,
55
56
  }
56
57
 
57
58
  type TagOnChangeValues = {
@@ -77,7 +78,7 @@ const Typeahead = ({
77
78
  htmlOptions = {},
78
79
  id,
79
80
  loadOptions = noop,
80
- marginBottom = "sm",
81
+ pillColor,
81
82
  ...props
82
83
  }: TypeaheadProps) => {
83
84
  const selectProps = {
@@ -107,6 +108,7 @@ const Typeahead = ({
107
108
  onCreateOption: null as null,
108
109
  plusIcon: false,
109
110
  onMultiValueClick: (_option: SelectValueType): any => undefined,
111
+ pillColor: pillColor,
110
112
  ...props,
111
113
  }
112
114
 
@@ -136,7 +138,6 @@ const Typeahead = ({
136
138
  const htmlProps = buildHtmlProps(htmlOptions)
137
139
  const classes = classnames(
138
140
  'pb_typeahead_kit react-select',
139
- `mb_${marginBottom}`,
140
141
  globalProps(props),
141
142
  className
142
143
  )
@@ -11,15 +11,14 @@ type Props = {
11
11
  const TypeaheadControl = (props: Props) => (
12
12
  <div className="pb_typeahead_wrapper">
13
13
  <TextInput
14
- dark={props.selectProps.dark}
15
- error={props.selectProps.error}
16
- label={props.selectProps.label}
17
- marginBottom="none"
14
+ dark={props.selectProps.dark}
15
+ error={props.selectProps.error}
16
+ label={props.selectProps.label}
18
17
  >
19
18
  <Flex>
20
19
  <components.Control
21
- className="text_input"
22
- {...props}
20
+ className="text_input"
21
+ {...props}
23
22
  />
24
23
  </Flex>
25
24
  </TextInput>
@@ -8,6 +8,7 @@ import { SelectValueType } from '../_typeahead'
8
8
  type Props = {
9
9
  data: SelectValueType,
10
10
  multiValueTemplate: any,
11
+ pillColor?: "primary" | "neutral" | "success" | "warning" | "error" | "info" | "data_1" | "data_2" | "data_3" | "data_4" | "data_5" | "data_6" | "data_7" | "data_8" | "windows" | "siding" | "roofing" | "doors" | "gutters" | "solar" | "insulation" | "accessories",
11
12
  removeProps: any,
12
13
  selectProps: any,
13
14
  }
@@ -15,48 +16,55 @@ type Props = {
15
16
  const MultiValue = (props: Props) => {
16
17
  const { removeProps } = props
17
18
  const { imageUrl, label } = props.data
18
- const { multiKit } = props.selectProps
19
+ const { dark, multiKit, pillColor } = props.selectProps
19
20
 
20
21
  const formPillProps = {
21
22
  marginRight: 'xs',
22
23
  name: label,
23
24
  avatarUrl: '',
25
+ dark,
24
26
  }
25
27
 
26
28
  if (typeof imageUrl === 'string') formPillProps.avatarUrl = imageUrl
27
29
 
28
30
  return (
29
31
  <components.MultiValueContainer
30
- className="text_input_multivalue_container"
31
- {...props}
32
+ className="text_input_multivalue_container"
33
+ {...props}
32
34
  >
33
35
  {multiKit === 'badge' &&
34
36
  <Badge
35
- closeProps={removeProps}
36
- removeIcon
37
- text={label}
38
- variant="primary"
37
+ closeProps={removeProps}
38
+ removeIcon
39
+ text={label}
40
+ variant="primary"
39
41
  />
40
42
  }
41
43
 
42
44
  {multiKit !== 'badge' && imageUrl &&
43
45
  <FormPill
44
- avatarUrl={imageUrl}
45
- closeProps={removeProps}
46
- marginRight="xs"
47
- name={label}
48
- size={multiKit === 'smallPill' ? 'small' : ''}
49
- text=''
46
+ avatarUrl={imageUrl}
47
+ closeProps={removeProps}
48
+ color={pillColor}
49
+ dark={dark}
50
+ marginRight="xs"
51
+ name={label}
52
+ size={multiKit === 'smallPill' ? 'small' : ''}
53
+ text=''
54
+ {...props}
50
55
  />
51
56
  }
52
57
 
53
58
  {multiKit !== 'badge' && !imageUrl &&
54
59
  <FormPill
55
- closeProps={removeProps}
56
- marginRight="xs"
57
- name=''
58
- size={multiKit === 'smallPill' ? 'small' : ''}
59
- text={label}
60
+ closeProps={removeProps}
61
+ color={pillColor}
62
+ dark={dark}
63
+ marginRight="xs"
64
+ name=''
65
+ size={multiKit === 'smallPill' ? 'small' : ''}
66
+ text={label}
67
+ {...props}
60
68
  />
61
69
  }
62
70
  </components.MultiValueContainer>
@@ -0,0 +1,31 @@
1
+ <%
2
+ options = [
3
+ { label: 'Windows', value: '#FFA500' },
4
+ { label: 'Siding', value: '#FF0000' },
5
+ { label: 'Doors', value: '#00FF00' },
6
+ { label: 'Roofs', value: '#0000FF' },
7
+ ]
8
+ %>
9
+
10
+ <%= pb_rails("typeahead", props: { id: "typeahead-pills-example1", pill_color: "neutral", default_options: [options.first], options: options, label: "Colors", name: :foo, pills: true }) %>
11
+
12
+ <%= pb_rails("button", props: {id: "clear-pills", text: "Clear All Options", variant: "secondary"}) %>
13
+
14
+ <!-- This section is an example of the available JavaScript event hooks -->
15
+ <%= javascript_tag defer: "defer" do %>
16
+ document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-option-select", function(event) {
17
+ console.log('Option selected')
18
+ console.dir(event.detail)
19
+ })
20
+ document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-option-remove", function(event) {
21
+ console.log('Option removed')
22
+ console.dir(event.detail)
23
+ })
24
+ document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-clear", function() {
25
+ console.log('All options cleared')
26
+ })
27
+
28
+ document.querySelector('#clear-pills').addEventListener('click', function() {
29
+ document.dispatchEvent(new CustomEvent('pb-typeahead-kit-typeahead-pills-example1:clear'))
30
+ })
31
+ <% end %>
@@ -0,0 +1,26 @@
1
+ import React from 'react'
2
+ import { Typeahead } from 'playbook-ui'
3
+
4
+ const options = [
5
+ { label: 'Windows', value: '#FFA500' },
6
+ { label: 'Siding', value: '#FF0000' },
7
+ { label: 'Doors', value: '#00FF00' },
8
+ { label: 'Roofs', value: '#0000FF' },
9
+ ]
10
+
11
+ const TypeaheadWithPills = (props) => {
12
+ return (
13
+ <>
14
+ <Typeahead
15
+ isMulti
16
+ label="Colors"
17
+ options={options}
18
+ pillColor="neutral"
19
+ placeholder=""
20
+ {...props}
21
+ />
22
+ </>
23
+ )
24
+ }
25
+
26
+ export default TypeaheadWithPills
@@ -0,0 +1 @@
1
+ Change the form pill color by passing the optional `pill_color` prop. Product, Data, and Status colors are available options. Check them out <a href="https://playbook.powerapp.cloud/kits/form_pill#form-pill-colors" target="_blank">here</a> in the Form Pill colors example.
@@ -0,0 +1 @@
1
+ Change the form pill color by passing the optional `pillColor` prop. Product, Data, and Status colors are available options. Check them out <a href="https://playbook.powerapp.cloud/kits/form_pill/react#form-pill-colors" target="_blank">here</a> in the Form Pill colors example.
@@ -9,7 +9,7 @@ examples:
9
9
  - typeahead_inline: Inline
10
10
  - typeahead_multi_kit: Multi Kit Options
11
11
  - typeahead_error_state: Error State
12
- - typeahead_margin_bottom: Margin Bottom
12
+ - typeahead_with_pills_color: With Pills (Custom Color)
13
13
 
14
14
  react:
15
15
  - typeahead_default: Default
@@ -24,4 +24,4 @@ examples:
24
24
  - typeahead_async_createable: Createable (+ Async Data)
25
25
  - typeahead_error_state: Error State
26
26
  - typeahead_custom_menu_list: Custom MenuList
27
- - typeahead_margin_bottom: Margin Bottom
27
+ - typeahead_with_pills_color: With Pills (Custom Color)
@@ -10,4 +10,4 @@ export { default as TypeaheadCreateable } from './_typeahead_createable.jsx'
10
10
  export { default as TypeaheadAsyncCreateable } from './_typeahead_async_createable.jsx'
11
11
  export { default as TypeaheadErrorState } from './_typeahead_error_state.jsx'
12
12
  export { default as TypeaheadCustomMenuList } from './_typeahead_custom_menu_list.jsx'
13
- export { default as TypeaheadMarginBottom } from './_typeahead_margin_bottom.jsx'
13
+ export { default as TypeaheadWithPillsColor } from './_typeahead_with_pills_color.jsx'
@@ -20,8 +20,7 @@
20
20
  label: object.label,
21
21
  name: object.name,
22
22
  value: object.value,
23
- placeholder: object.placeholder,
24
- margin_bottom: "none",
23
+ placeholder: object.placeholder
25
24
  }) %>
26
25
  <%= pb_rails("list", props: { ordered: false, borderless: false, xpadding: true, role: "status", aria: { live: "polite" }, data: { pb_typeahead_kit_results: true } }) do %>
27
26
  <% end %>
@@ -34,13 +34,12 @@ module Playbook
34
34
  prop :search_term_minimum_length, default: 3
35
35
  prop :search_debounce_timeout, default: 250
36
36
  prop :value
37
- prop :margin_bottom, type: Playbook::Props::Enum,
38
- values: %w[none xxs xs sm md lg xl],
39
- default: "sm"
37
+ prop :pill_color, type: Playbook::Props::Enum,
38
+ values: %w[primary neutral success warning error info data_1 data_2 data_3 data_4 data_5 data_6 data_7 data_8 windows siding roofing doors gutters solar insulation accessories],
39
+ default: "primary"
40
40
 
41
41
  def classname
42
- default_margin_bottom = margin_bottom.present? ? "" : " mb_sm"
43
- generate_classname("pb_typeahead_kit") + default_margin_bottom
42
+ generate_classname("pb_typeahead_kit")
44
43
  end
45
44
 
46
45
  def inline_class
@@ -62,6 +61,7 @@ module Playbook
62
61
  def typeahead_react_options
63
62
  base_options = {
64
63
  className: classname,
64
+ pillColor: pill_color,
65
65
  dark: dark,
66
66
  defaultValue: default_options,
67
67
  error: error,
@@ -69,7 +69,6 @@ module Playbook
69
69
  inline: inline,
70
70
  isMulti: is_multi,
71
71
  label: label,
72
- marginBottom: margin_bottom,
73
72
  multiKit: multi_kit,
74
73
  name: name,
75
74
  options: options,
@@ -259,6 +259,7 @@ $solar: $product_4_background !default; // deprecated
259
259
  $roofing: $product_5_background !default; // deprecated
260
260
  $gutters: $product_6_background !default; // deprecated
261
261
  $insulation: $product_7_background !default; // deprecated
262
+ $accessories: $product_8_background !default; // added specifically for form_pill product map
262
263
  $product_colors: (
263
264
  windows: $windows,
264
265
  siding: $siding,
@@ -267,6 +268,7 @@ $product_colors: (
267
268
  roofing: $roofing,
268
269
  gutters: $gutters,
269
270
  insulation: $insulation,
271
+ accessories: $accessories,
270
272
  product_1_background: $product_1_background,
271
273
  product_1_highlight: $product_1_highlight,
272
274
  product_2_background: $product_2_background,