playbook_ui 7.0.0.pre.alpha9 → 7.0.0.pre.alpha10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -4
  3. data/app/pb_kits/playbook/_playbook.scss +1 -0
  4. data/app/pb_kits/playbook/data/menu.yml +1 -0
  5. data/app/pb_kits/playbook/index.js +3 -0
  6. data/app/pb_kits/playbook/pb_button/_button.jsx +1 -0
  7. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -1
  8. data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +3 -7
  9. data/app/pb_kits/playbook/pb_button/docs/_button_default_dark.jsx +3 -0
  10. data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +2 -0
  11. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +2 -0
  12. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_link.html.erb +2 -1
  13. data/app/pb_kits/playbook/pb_date/_date.html.erb +8 -32
  14. data/app/pb_kits/playbook/pb_date/_date.jsx +67 -76
  15. data/app/pb_kits/playbook/pb_date/_date.scss +0 -25
  16. data/app/pb_kits/playbook/pb_date/date.rb +10 -18
  17. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +17 -2
  18. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +28 -0
  19. data/app/pb_kits/playbook/pb_date/docs/example.yml +2 -5
  20. data/app/pb_kits/playbook/pb_date/docs/index.js +1 -3
  21. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +39 -0
  22. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +149 -0
  23. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +33 -0
  24. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +85 -0
  25. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +165 -0
  26. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.html.erb +4 -0
  27. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.jsx +13 -0
  28. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_allow_input.md +1 -0
  29. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.html.erb +4 -0
  30. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dark.jsx +13 -0
  31. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.html.erb +1 -0
  32. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default.jsx +12 -0
  33. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.html.erb +24 -0
  34. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_default_date.jsx +30 -0
  35. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.html.erb +43 -0
  36. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_disabled.jsx +48 -0
  37. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +4 -0
  38. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +13 -0
  39. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.html.erb +19 -0
  40. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.jsx +25 -0
  41. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_format.md +1 -0
  42. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.html.erb +4 -0
  43. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hide_icon.jsx +13 -0
  44. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.html.erb +37 -0
  45. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.jsx +37 -0
  46. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_hooks.md +1 -0
  47. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.html.erb +26 -0
  48. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.jsx +32 -0
  49. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_input.md +3 -0
  50. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.html.erb +9 -0
  51. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.jsx +17 -0
  52. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_label.md +1 -0
  53. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.html.erb +14 -0
  54. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_min_max.jsx +22 -0
  55. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.html.erb +4 -0
  56. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range.jsx +13 -0
  57. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.html.erb +7 -0
  58. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.jsx +16 -0
  59. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_year_range.md +1 -0
  60. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +7 -0
  61. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +35 -0
  62. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +14 -0
  63. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_calendar_input_icon.scss +33 -0
  64. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_day_styles.scss +53 -0
  65. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_flatpickr_styles.scss +785 -0
  66. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_header_styles.scss +108 -0
  67. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_overrides.scss +44 -0
  68. data/app/pb_kits/playbook/pb_filter/_filter.scss +1 -1
  69. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
  70. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
  71. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +2 -0
  72. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +2 -0
  73. data/app/pb_kits/playbook/pb_form/form_builder.rb +1 -0
  74. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +20 -0
  75. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
  76. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +0 -1
  77. data/app/pb_kits/playbook/pb_table/table.rb +3 -3
  78. data/app/pb_kits/playbook/pb_text_input/_text_input.html.erb +1 -0
  79. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +21 -17
  80. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +17 -8
  81. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -0
  82. data/app/pb_kits/playbook/pb_time/_time.html.erb +23 -17
  83. data/app/pb_kits/playbook/pb_time/_time.jsx +20 -11
  84. data/app/pb_kits/playbook/pb_time/_time.scss +16 -8
  85. data/app/pb_kits/playbook/pb_time/docs/_time_align.html.erb +18 -0
  86. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +3 -3
  87. data/app/pb_kits/playbook/pb_time/docs/_time_dark.html.erb +70 -0
  88. data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +1 -6
  89. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +47 -3
  90. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +33 -4
  91. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.html.erb +11 -0
  92. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +19 -0
  93. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.html.erb +2 -1
  94. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -7
  95. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.html.erb +42 -0
  96. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +12 -14
  97. data/app/pb_kits/playbook/pb_time/docs/example.yml +7 -2
  98. data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
  99. data/app/pb_kits/playbook/pb_time/time.rb +14 -2
  100. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +60 -0
  101. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +20 -3
  102. data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +30 -0
  103. data/app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx +13 -0
  104. data/app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx +12 -0
  105. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +51 -0
  106. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +34 -0
  107. data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +13 -0
  108. data/app/pb_kits/playbook/pb_typeahead/components/ValueContainer.jsx +13 -0
  109. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx +22 -0
  110. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +29 -0
  111. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +84 -0
  112. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_summary.jsx +45 -0
  113. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +101 -0
  114. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_summary.jsx +27 -0
  115. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +8 -2
  116. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +4 -0
  117. data/app/pb_kits/playbook/tokens/_typography.scss +4 -4
  118. data/app/pb_kits/playbook/vendor.js +6 -0
  119. data/lib/playbook/version.rb +1 -1
  120. metadata +71 -8
  121. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +0 -24
  122. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +0 -32
  123. data/app/pb_kits/playbook/pb_date/docs/_date_default_react.jsx +0 -20
  124. data/app/pb_kits/playbook/pb_date/docs/_date_default_react.md +0 -3
  125. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +0 -27
  126. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +0 -39
@@ -13,42 +13,40 @@ const TimeTimeZone = () => {
13
13
  <div>
14
14
  <h4>{'East Coast'}</h4>
15
15
  <Time
16
- date={new Date().toLocaleString('en-US', { timeZone: zones.east })}
17
- size="lg"
16
+ date={new Date()}
17
+ size="md"
18
18
  timeZone={zones.east}
19
19
  />
20
+
20
21
  <br />
21
- <br />
22
+
22
23
  <h4>{'Central'}</h4>
23
24
  <Time
24
- date={new Date().toLocaleString('en-US', { timeZone: zones.central })}
25
- size="sm"
25
+ date={new Date()}
26
26
  timeZone={zones.central}
27
27
  />
28
+
28
29
  <br />
29
- <br />
30
+
30
31
  <h4>{'Mountain'}</h4>
31
32
  <Time
32
- date={new Date().toLocaleString('en-US', { timeZone: zones.mountain })}
33
- size="sm"
33
+ date={new Date()}
34
34
  timeZone={zones.mountain}
35
35
  />
36
36
 
37
37
  <br />
38
- <br />
38
+
39
39
  <h4>{'West Coast'}</h4>
40
40
  <Time
41
- date={new Date().toLocaleString('en-US', { timeZone: zones.west })}
42
- size="sm"
41
+ date={new Date()}
43
42
  timeZone={zones.west}
44
43
  />
45
44
 
46
45
  <br />
47
- <br />
46
+
48
47
  <h4>{'Tokyo, Japan'}</h4>
49
48
  <Time
50
- date={new Date('2012-08-02T09:49:29Z').toLocaleString('en-US', { timeZone: zones.asia })}
51
- size="sm"
49
+ date={new Date()}
52
50
  timeZone={zones.asia}
53
51
  />
54
52
 
@@ -1,11 +1,16 @@
1
1
  examples:
2
2
 
3
3
  rails:
4
- - time_default: Sizes
4
+ - time_default: Default
5
+ - time_sizes: Sizes
5
6
  - time_timestamp: Timestamp Values
7
+ - time_timezone: Handling Timezones
8
+ - time_align: Alignment
9
+ - time_dark: Dark
6
10
 
7
11
  react:
8
- - time_default: Sizes
12
+ - time_default: Default
13
+ - time_sizes: Sizes
9
14
  - time_timestamp: Timestamp Values
10
15
  - time_timezone: Handling Timezones
11
16
  - time_align: Alignment
@@ -1,4 +1,5 @@
1
1
  export { default as TimeDefault } from './_time_default.jsx'
2
+ export { default as TimeSizes } from './_time_sizes.jsx'
2
3
  export { default as TimeTimestamp } from './_time_timestamp.jsx'
3
4
  export { default as TimeAlign } from './_time_align.jsx'
4
5
  export { default as TimeDark } from './_time_dark.jsx'
@@ -9,12 +9,24 @@ module Playbook
9
9
 
10
10
  prop :time, required: true
11
11
  prop :size, type: Playbook::Props::Enum,
12
- values: %w[lg sm xs],
12
+ values: %w[xs sm md lg],
13
13
  default: "sm"
14
+ prop :align, type: Playbook::Props::Enum,
15
+ values: %w[left center right],
16
+ default: "left"
14
17
  prop :timezone, default: "America/New_York"
18
+ prop :show_icon, type: Playbook::Props::Boolean,
19
+ default: false
20
+ prop :show_timezone, type: Playbook::Props::Boolean,
21
+ default: false
15
22
 
16
23
  def classname
17
- generate_classname("pb_time_kit", size)
24
+ # convert deprecated prop values
25
+ mutated_size = size
26
+ mutated_size = "sm" if mutated_size == "xs"
27
+ mutated_size = "md" if mutated_size == "lg"
28
+
29
+ generate_classname("pb_time_kit", align, mutated_size)
18
30
  end
19
31
 
20
32
  def format_time_string
@@ -0,0 +1,60 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import Select from 'react-select'
5
+ import AsyncSelect from 'react-select/async'
6
+
7
+ import Control from './components/Control'
8
+ import IndicatorsContainer from './components/IndicatorsContainer'
9
+ import MenuList from './components/MenuList'
10
+ import MultiValue from './components/MultiValue'
11
+ import Option from './components/Option'
12
+ import Placeholder from './components/Placeholder'
13
+ import ValueContainer from './components/ValueContainer'
14
+
15
+ /**
16
+ * @typedef {object} Props
17
+ * @prop {boolean} async - whether Typeahead should fetch data from
18
+ * a remote location to populate the options
19
+ * @prop {string} label - the text for the optional typeahead input label
20
+ */
21
+
22
+ type Props = {
23
+ async?: boolean,
24
+ label?: string,
25
+ }
26
+
27
+ /**
28
+ * @constant {React.ReactComponent} Typeahead
29
+ * @param {Props} props - props as described at https://react-select.com/props
30
+ */
31
+
32
+ const Typeahead = (props: Props) => {
33
+ const selectProps = {
34
+ cacheOptions: true,
35
+ defaultOptions: true,
36
+ components: {
37
+ Control,
38
+ IndicatorsContainer,
39
+ IndicatorSeparator: null,
40
+ MenuList,
41
+ MultiValue,
42
+ Option,
43
+ Placeholder,
44
+ ValueContainer,
45
+ },
46
+ isClearable: true,
47
+ isSearchable: true,
48
+ ...props,
49
+ }
50
+
51
+ const Tag = props.async ? AsyncSelect : Select
52
+
53
+ return (
54
+ <div className="pb_typeahead_kit react-select">
55
+ <Tag {...selectProps} />
56
+ </div>
57
+ )
58
+ }
59
+
60
+ export default Typeahead
@@ -1,5 +1,7 @@
1
1
  @import "../tokens/colors";
2
2
  @import "../tokens/border_radius";
3
+ @import "../tokens/spacing";
4
+ @import "../tokens/shadows";
3
5
 
4
6
  [class^=pb_typeahead_kit] {
5
7
  .pb_typeahead_wrapper {
@@ -17,8 +19,10 @@
17
19
  }
18
20
 
19
21
  [class^=pb_text_input_kit] {
20
- .text_input_wrapper > input:first-child {
21
- padding-right: $space_xl;
22
+ .text_input_wrapper {
23
+ & > input:first-child {
24
+ padding-right: $space_xl;
25
+ }
22
26
  }
23
27
  }
24
28
 
@@ -31,7 +35,7 @@
31
35
  }
32
36
  }
33
37
  }
34
-
38
+
35
39
  [class^=pb_list_kit] {
36
40
  max-height: 18em;
37
41
  overflow-y: auto;
@@ -86,4 +90,17 @@
86
90
  color: $text_dk_light;
87
91
  }
88
92
  }
93
+
94
+ &.react-select {
95
+ .text_input {
96
+ display: inherit;
97
+ padding: 3px 4px;
98
+ &_indicators {
99
+ max-width: 70px;
100
+ }
101
+ &_value_container {
102
+ flex-grow: 1;
103
+ }
104
+ }
105
+ }
89
106
  }
@@ -0,0 +1,30 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ import {
7
+ Flex,
8
+ TextInput,
9
+ } from '../..'
10
+
11
+ type Props = {
12
+ selectProps: any,
13
+ }
14
+
15
+ const TypeaheadControl = (props: Props) => (
16
+ <div className="pb_typeahead_wrapper">
17
+ <TextInput
18
+ label={props.selectProps.label}
19
+ >
20
+ <Flex>
21
+ <components.Control
22
+ className="text_input"
23
+ {...props}
24
+ />
25
+ </Flex>
26
+ </TextInput>
27
+ </div>
28
+ )
29
+
30
+ export default TypeaheadControl
@@ -0,0 +1,13 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const IndicatorsContainer = (props: any) => (
7
+ <components.IndicatorsContainer
8
+ className="text_input_indicators"
9
+ {...props}
10
+ />
11
+ )
12
+
13
+ export default IndicatorsContainer
@@ -0,0 +1,12 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const MenuList = (props: any) => (
7
+ <components.MenuList {...props}>
8
+ {props.children}
9
+ </components.MenuList>
10
+ )
11
+
12
+ export default MenuList
@@ -0,0 +1,51 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ import { FormPill } from '../../'
7
+
8
+ type Props = {
9
+ data: object,
10
+ multiValueTemplate: any,
11
+ removeProps: any,
12
+ selectProps: any,
13
+ }
14
+
15
+ const MultiValue = (props: Props) => {
16
+ const {
17
+ data,
18
+ removeProps,
19
+ selectProps,
20
+ } = props
21
+
22
+ const handleOnClick = () => {
23
+ if (selectProps.onMultiValueClick) selectProps.onMultiValueClick(data)
24
+ removeProps.onClick()
25
+ }
26
+ const { imageUrl, label } = data
27
+
28
+ return (
29
+ <components.MultiValueContainer
30
+ className="text_input_multivalue_container"
31
+ {...props}
32
+ >
33
+ <If condition={imageUrl}>
34
+ <FormPill
35
+ avatarUrl={imageUrl}
36
+ marginRight="xs"
37
+ name={label}
38
+ onClick={handleOnClick}
39
+ />
40
+ <Else />
41
+ <FormPill
42
+ marginRight="xs"
43
+ onClick={handleOnClick}
44
+ text={label}
45
+ />
46
+ </If>
47
+ </components.MultiValueContainer>
48
+ )
49
+ }
50
+
51
+ export default MultiValue
@@ -0,0 +1,34 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ import {
7
+ User,
8
+ } from '../../'
9
+
10
+ const Option = (props: any) => {
11
+ const {
12
+ imageUrl,
13
+ label,
14
+ } = props.data
15
+ return (
16
+ <components.Option {...props}>
17
+ <Choose>
18
+ <When condition={imageUrl}>
19
+ <User
20
+ align="left"
21
+ avatarUrl={imageUrl}
22
+ name={label}
23
+ orientation="horizontal"
24
+ />
25
+ </When>
26
+ <When condition={!imageUrl}>
27
+ {label}
28
+ </When>
29
+ </Choose>
30
+ </components.Option>
31
+ )
32
+ }
33
+
34
+ export default Option
@@ -0,0 +1,13 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const Placeholder = (props: any) => (
7
+ <components.IndicatorsContainer
8
+ className="placeholder"
9
+ {...props}
10
+ />
11
+ )
12
+
13
+ export default Placeholder
@@ -0,0 +1,13 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const ValueContainer = (props: Props) => (
7
+ <components.ValueContainer
8
+ className="text_input_value_container"
9
+ {...props}
10
+ />
11
+ )
12
+
13
+ export default ValueContainer
@@ -0,0 +1,22 @@
1
+ // @flow
2
+
3
+ import React from 'react'
4
+ import { Typeahead } from '../../'
5
+
6
+ const options = [
7
+ { label: 'Orange', value: '#FFA500' },
8
+ { label: 'Red', value: '#FF0000' },
9
+ { label: 'Green', value: '#00FF00' },
10
+ { label: 'Blue', value: '#0000FF' },
11
+ ]
12
+
13
+ const TypeaheadDefault = () => {
14
+ return (
15
+ <Typeahead
16
+ label="Colors"
17
+ options={options}
18
+ />
19
+ )
20
+ }
21
+
22
+ export default TypeaheadDefault
@@ -0,0 +1,29 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import { Typeahead } from '../..'
5
+
6
+ const options = [
7
+ { label: 'Windows', value: '#FFA500' },
8
+ { label: 'Siding', value: '#FF0000' },
9
+ { label: 'Doors', value: '#00FF00' },
10
+ { label: 'Roofs', value: '#0000FF' },
11
+ ]
12
+
13
+ import TypeaheadWithPillsSummary from './_typeahead_with_pills_summary'
14
+
15
+ const TypeaheadWithPills = () => {
16
+ return (
17
+ <>
18
+ <TypeaheadWithPillsSummary />
19
+ <Typeahead
20
+ isMulti
21
+ label="Colors"
22
+ options={options}
23
+ placeholder=""
24
+ />
25
+ </>
26
+ )
27
+ }
28
+
29
+ export default TypeaheadWithPills