playbook_ui 7.4.0.pre.alpha6 → 7.4.1

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/github-brands.svg +1 -0
  3. data/app/assets/images/landing-background.svg +36 -0
  4. data/app/assets/images/landing-image.svg +203 -0
  5. data/app/assets/images/{pb.logo.svg → pb-logo.svg} +2 -2
  6. data/app/assets/images/pb-white-logo.svg +15 -0
  7. data/app/pb_kits/playbook/_playbook.scss +3 -1
  8. data/app/pb_kits/playbook/data/menu.yml +2 -2
  9. data/app/pb_kits/playbook/index.js +2 -2
  10. data/app/pb_kits/playbook/pb_background/_background.html.erb +14 -0
  11. data/app/pb_kits/playbook/pb_background/_background.jsx +63 -0
  12. data/app/pb_kits/playbook/pb_background/_background.scss +35 -0
  13. data/app/pb_kits/playbook/pb_background/background.rb +35 -0
  14. data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +3 -0
  15. data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +13 -0
  16. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb +3 -0
  17. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +13 -0
  18. data/app/pb_kits/playbook/pb_background/docs/_background_image.html.erb +13 -0
  19. data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +30 -0
  20. data/app/pb_kits/playbook/pb_background/docs/_background_light.html.erb +3 -0
  21. data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +13 -0
  22. data/app/pb_kits/playbook/pb_background/docs/_background_white.html.erb +3 -0
  23. data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +14 -0
  24. data/app/pb_kits/playbook/pb_background/docs/_description.md +1 -0
  25. data/app/pb_kits/playbook/pb_background/docs/example.yml +15 -0
  26. data/app/pb_kits/playbook/pb_background/docs/index.js +6 -0
  27. data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +2 -3
  28. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +1 -2
  29. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +1 -4
  30. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default.html.erb +2 -5
  31. data/app/pb_kits/playbook/pb_date/_date.html.erb +64 -8
  32. data/app/pb_kits/playbook/pb_date/_date.jsx +115 -66
  33. data/app/pb_kits/playbook/pb_date/_date.scss +30 -0
  34. data/app/pb_kits/playbook/pb_date/date.rb +20 -9
  35. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +24 -0
  36. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +35 -0
  37. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +21 -6
  38. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +43 -12
  39. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +27 -0
  40. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +43 -0
  41. data/app/pb_kits/playbook/pb_date/docs/example.yml +4 -0
  42. data/app/pb_kits/playbook/pb_date/docs/index.js +2 -0
  43. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +19 -14
  44. data/app/pb_kits/playbook/pb_date_time/_date_time.html.erb +31 -0
  45. data/app/pb_kits/playbook/pb_date_time/_date_time.jsx +73 -0
  46. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +26 -0
  47. data/app/pb_kits/playbook/pb_date_time/date_time.rb +29 -0
  48. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb +17 -0
  49. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx +35 -0
  50. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb +20 -0
  51. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx +38 -0
  52. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb +26 -0
  53. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx +75 -0
  54. data/app/pb_kits/playbook/pb_date_time/docs/_description.md +1 -0
  55. data/app/pb_kits/playbook/pb_date_time/docs/example.yml +11 -0
  56. data/app/pb_kits/playbook/pb_date_time/docs/index.js +3 -0
  57. data/app/pb_kits/playbook/pb_flex/_flex.jsx +1 -1
  58. data/app/pb_kits/playbook/pb_flex/_flex.scss +4 -0
  59. data/app/pb_kits/playbook/pb_flex/flex.rb +1 -1
  60. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +52 -1
  61. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  62. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -1
  63. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +1 -1
  64. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +19 -1
  65. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +1 -1
  66. data/app/pb_kits/playbook/pb_list/_list.jsx +2 -9
  67. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +3 -1
  68. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +13 -4
  69. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb +1 -1
  70. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx +5 -7
  71. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_custom_icon.html.erb +12 -0
  72. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker_click_events.jsx +48 -0
  73. data/app/pb_kits/playbook/pb_progress_step/docs/example.yml +2 -0
  74. data/app/pb_kits/playbook/pb_progress_step/docs/index.js +1 -0
  75. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +5 -3
  76. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +6 -0
  77. data/app/pb_kits/playbook/pb_radio/_radio.jsx +3 -0
  78. data/app/pb_kits/playbook/pb_timestamp/_timestamp.html.erb +13 -1
  79. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +96 -20
  80. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +12 -1
  81. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.html.erb +69 -0
  82. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +91 -0
  83. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +21 -1
  84. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +31 -4
  85. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb +14 -0
  86. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +27 -0
  87. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.html.erb +54 -0
  88. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.jsx +73 -0
  89. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.html.erb +59 -0
  90. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +74 -0
  91. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.html.erb +177 -0
  92. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.jsx +209 -0
  93. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.html.erb +35 -0
  94. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +51 -0
  95. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.html.erb +123 -0
  96. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.jsx +146 -0
  97. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +14 -0
  98. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +7 -0
  99. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +67 -1
  100. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +46 -19
  101. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +46 -10
  102. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +4 -4
  103. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -2
  104. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +14 -2
  105. data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx +20 -0
  106. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +8 -15
  107. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +1 -6
  108. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +10 -4
  109. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.md +20 -4
  110. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +4 -0
  111. data/lib/playbook/version.rb +1 -1
  112. metadata +60 -22
  113. data/app/assets/images/clark.jpg +0 -0
  114. data/app/assets/images/giant.jpg +0 -0
  115. data/app/pb_kits/playbook/pb_selectable_list/_item.jsx +0 -90
  116. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.html.erb +0 -11
  117. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx +0 -47
  118. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +0 -17
  119. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list_item.html.erb +0 -18
  120. data/app/pb_kits/playbook/pb_selectable_list/docs/_description.md +0 -3
  121. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.html.erb +0 -30
  122. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx +0 -32
  123. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.html.erb +0 -30
  124. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx +0 -32
  125. data/app/pb_kits/playbook/pb_selectable_list/docs/example.yml +0 -12
  126. data/app/pb_kits/playbook/pb_selectable_list/docs/index.js +0 -2
  127. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +0 -24
  128. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +0 -28
@@ -1,6 +1,8 @@
1
1
  @import "../tokens/positioning";
2
2
  @import "../tokens/colors";
3
3
 
4
+ $tooltip_shadow: rgba(60, 106, 172, 0.18);
5
+
4
6
  @keyframes fadeIn {
5
7
  from {
6
8
  opacity: 0;
@@ -33,19 +35,8 @@
33
35
  &.flipped {
34
36
  margin-top: 15px;
35
37
  .arrow {
36
- top: -35%;
37
38
  border-color: transparent transparent $white transparent;
38
- }
39
- }
40
-
41
- &.react {
42
- .arrow {
43
- top: 78%;
44
- }
45
- &.flipped {
46
- .arrow {
47
- top: -8%;
48
- }
39
+ transform: rotate(180deg);
49
40
  }
50
41
  }
51
42
 
@@ -66,7 +57,7 @@
66
57
  z-index: $z_9;
67
58
  margin-bottom: $space_sm;
68
59
  background-color: $white;
69
- padding: $space_xs $space_sm $space_xs $space_sm;
60
+ padding: $space_xs $space_sm;
70
61
  box-shadow: $shadow_deeper;
71
62
  border-radius: $border_rad_light;
72
63
 
@@ -82,10 +73,6 @@
82
73
  .tooltip_tooltip{
83
74
  color: $white;
84
75
  background-color: rgba($black, $opacity_9);
85
-
86
-
87
- &.show {
88
- }
89
76
  .arrow {
90
77
  border-color: $black transparent transparent transparent;
91
78
  opacity: $opacity_9;
@@ -100,6 +87,46 @@
100
87
  }
101
88
  }
102
89
 
103
- .tooltip_tooltip.top {
104
- padding: ($space_xs - 3px) 0;
90
+ // Right
91
+ [class^="pb_tooltip_kit"] .tooltip_tooltip {
92
+
93
+ &[x-placement="right"] {
94
+ box-shadow: -8px 0 28px 0 $tooltip_shadow;
95
+ margin: 0 0 0 $space_sm;
96
+ .arrow {
97
+ left: -#{$space_xs};
98
+ margin-bottom: 0;
99
+ transform: rotate(90deg);
100
+ }
101
+ &.flipped .arrow {
102
+ transform: rotate(270deg);
103
+ }
104
+ }
105
+
106
+ &[x-placement="bottom"] {
107
+ box-shadow: 0 -12px 28px 0 $tooltip_shadow;
108
+ margin: $space_sm 0 0 0;
109
+ .arrow {
110
+ top: -18px;
111
+ margin-bottom: 0;
112
+ transform: rotate(180deg);
113
+ }
114
+ &.flipped .arrow {
115
+ transform: rotate(0deg);
116
+ }
117
+ }
118
+
119
+ &[x-placement="left"] {
120
+ box-shadow: 8px 0 28px 0 $tooltip_shadow;
121
+ margin: 0 $space_sm 0 0;
122
+ .arrow {
123
+ margin-bottom: 0;
124
+ right: -18px;
125
+ left: auto;
126
+ transform: rotate(270deg);
127
+ }
128
+ &.flipped .arrow {
129
+ transform: rotate(90deg);
130
+ }
131
+ }
105
132
  }
@@ -1,10 +1,46 @@
1
- <span id='regular-tooltip-2'>Hover over me.</span>
2
-
3
- <%= pb_rails("tooltip", props: {
4
- trigger_element_id: "regular-tooltip-2",
5
- tooltip_id: "tooltip-2",
6
- position: 'top',
7
- dark: true,
8
- }) do %>
9
- Whoa. I'm a tooltip.
10
- <% end %>
1
+ <%= pb_rails("flex", props: { horizontal: "center", orientation: "column" }) do %>
2
+ <%= pb_rails("flex/flex_item") do %>
3
+ <span id='regular-tooltip-1'>Hover here (Top)</span>
4
+
5
+ <%= pb_rails("tooltip", props: {
6
+ trigger_element_id: "regular-tooltip-1",
7
+ tooltip_id: "tooltip-1",
8
+ position: 'top'
9
+ }) do %>
10
+ Whoa. I'm a tooltip.
11
+ <% end %>
12
+ <% end %>
13
+
14
+ <%= pb_rails("flex/flex_item", props: {margin_top: "md"}) do %>
15
+ <span id='regular-tooltip-2'>Hover here (Bottom)</span>
16
+ <%= pb_rails("tooltip", props: {
17
+ trigger_element_id: "regular-tooltip-2",
18
+ tooltip_id: "tooltip-2",
19
+ position: 'bottom'
20
+ }) do %>
21
+ Whoa. I'm a tooltip.
22
+ <% end %>
23
+ <% end %>
24
+
25
+ <%= pb_rails("flex/flex_item", props: {margin_top: "md"}) do %>
26
+ <span id='regular-tooltip-3'>Hover here (Right)</span>
27
+ <%= pb_rails("tooltip", props: {
28
+ trigger_element_id: "regular-tooltip-3",
29
+ tooltip_id: "tooltip-3",
30
+ position: 'right'
31
+ }) do %>
32
+ Whoa. I'm a tooltip.
33
+ <% end %>
34
+ <% end %>
35
+
36
+ <%= pb_rails("flex/flex_item", props: {margin_top: "md"}) do %>
37
+ <span id='regular-tooltip-4'>Hover here (Left)</span>
38
+ <%= pb_rails("tooltip", props: {
39
+ trigger_element_id: "regular-tooltip-4",
40
+ tooltip_id: "tooltip-4",
41
+ position: 'left'
42
+ }) do %>
43
+ Whoa. I'm a tooltip.
44
+ <% end %>
45
+ <% end %>
46
+ <% end %>
@@ -1,9 +1,9 @@
1
- <span id='regular-tooltip-1'>I am a white tooltip.</span>
1
+ <span id='regular-tooltip-5'>I am a white tooltip.</span>
2
2
 
3
3
  <%= pb_rails("tooltip", props: {
4
- trigger_element_id: "regular-tooltip-1",
5
- tooltip_id: "tooltip-1",
4
+ trigger_element_id: "regular-tooltip-5",
5
+ tooltip_id: "tooltip-5",
6
6
  position: 'top'
7
7
  }) do %>
8
8
  Whoa. I'm a white tooltip.
9
- <% end %>
9
+ <% end %>
@@ -10,7 +10,7 @@ module Playbook
10
10
  prop :trigger_element_id
11
11
  prop :tooltip_id
12
12
  prop :dark, type: Playbook::Props::Boolean,
13
- default: false
13
+ default: false
14
14
 
15
15
  def classname
16
16
  generate_classname("pb_tooltip_kit", dark_class)
@@ -25,7 +25,8 @@ module Playbook
25
25
  )
26
26
  end
27
27
 
28
- private
28
+ private
29
+
29
30
  def dark_class
30
31
  dark ? "dark" : nil
31
32
  end
@@ -6,6 +6,7 @@ import AsyncSelect from 'react-select/async'
6
6
  import { get } from 'lodash'
7
7
 
8
8
  import Control from './components/Control'
9
+ import ClearIndicator from './components/ClearIndicator'
9
10
  import IndicatorsContainer from './components/IndicatorsContainer'
10
11
  import MenuList from './components/MenuList'
11
12
  import MultiValue from './components/MultiValue'
@@ -40,6 +41,7 @@ const Typeahead = (props: Props) => {
40
41
  defaultOptions: true,
41
42
  components: {
42
43
  Control,
44
+ ClearIndicator,
43
45
  IndicatorsContainer,
44
46
  IndicatorSeparator: null,
45
47
  MenuList,
@@ -48,6 +50,7 @@ const Typeahead = (props: Props) => {
48
50
  Placeholder,
49
51
  ValueContainer,
50
52
  },
53
+ id: 'react-select-input',
51
54
  isClearable: true,
52
55
  isSearchable: true,
53
56
  name,
@@ -58,9 +61,18 @@ const Typeahead = (props: Props) => {
58
61
 
59
62
  const Tag = props.async ? AsyncSelect : Select
60
63
 
61
- const handleOnChange = (data, { action }) => {
64
+ const handleOnChange = (data, { action, option, removedValue }) => {
65
+ if (action === 'select-option') {
66
+ if (selectProps.onMultiValueClick) selectProps.onMultiValueClick(option)
67
+ const multiValueClearEvent = new CustomEvent(`pb-typeahead-kit-${selectProps.id}-result-option-select`, { detail: option })
68
+ document.dispatchEvent(multiValueClearEvent)
69
+ }
70
+ if (action === 'remove-value' || action === 'pop-value') {
71
+ const multiValueRemoveEvent = new CustomEvent(`pb-typeahead-kit-${selectProps.id}-result-option-remove`, { detail: removedValue })
72
+ document.dispatchEvent(multiValueRemoveEvent)
73
+ }
62
74
  if (action === 'clear') {
63
- const multiValueClearEvent = new CustomEvent('pb-typeahead-kit-result-clear')
75
+ const multiValueClearEvent = new CustomEvent(`pb-typeahead-kit-${selectProps.id}-result-clear`)
64
76
  document.dispatchEvent(multiValueClearEvent)
65
77
  }
66
78
  }
@@ -0,0 +1,20 @@
1
+ /* @flow */
2
+
3
+ import React, { useEffect } from 'react'
4
+ import { components } from 'react-select'
5
+
6
+ const ClearContainer = (props: any) => {
7
+ const { selectProps, clearValue } = props
8
+ useEffect(() => {
9
+ document.addEventListener(`pb-typeahead-kit-${selectProps.id}:clear`, clearValue)
10
+ }, true)
11
+
12
+ return (
13
+ <components.ClearIndicator
14
+ className="clear_indicator"
15
+ {...props}
16
+ />
17
+ )
18
+ }
19
+
20
+ export default ClearContainer
@@ -13,24 +13,17 @@ type Props = {
13
13
  }
14
14
 
15
15
  const MultiValue = (props: Props) => {
16
- const {
17
- data,
18
- removeProps,
19
- selectProps,
20
- } = props
16
+ const { removeProps } = props
17
+ const { imageUrl, label } = props.data
21
18
 
22
- const { imageUrl, label } = data
23
-
24
- const handleOnMultiValueRemove = () => {
25
- const multiValueRemoveEvent = new CustomEvent('pb-typeahead-kit-result-option-remove', { detail: data })
26
- document.dispatchEvent(multiValueRemoveEvent)
19
+ const formPillProps = {
20
+ marginRight: 'xs',
21
+ name: label,
27
22
  }
28
23
 
29
- const handleOnClick = () => {
30
- if (selectProps.onMultiValueClick) selectProps.onMultiValueClick(data)
31
- handleOnMultiValueRemove()
32
- removeProps.onClick()
33
- }
24
+ if (typeof imageUrl === 'string') formPillProps.avatarUrl = imageUrl
25
+
26
+ const handleOnClick = removeProps.onClick
34
27
 
35
28
  return (
36
29
  <components.MultiValueContainer
@@ -13,14 +13,9 @@ const Option = (props: any) => {
13
13
  label,
14
14
  } = props.data
15
15
 
16
- const handleOptionClicked = () => {
17
- const resultSelectedEvent = new CustomEvent('pb-typeahead-kit-result-option-select', { detail: props.data })
18
- document.dispatchEvent(resultSelectedEvent)
19
- }
20
-
21
16
  return (
22
17
  <components.Option {...props}>
23
- <div onClick={handleOptionClicked}>
18
+ <div>
24
19
  <Choose>
25
20
  <When condition={imageUrl}>
26
21
  <User
@@ -7,19 +7,25 @@
7
7
  ]
8
8
  %>
9
9
 
10
- <%= pb_rails("typeahead", props: { options: options, label: "Colors", name: :foo, pills: true }) %>
10
+ <%= pb_rails("typeahead", props: { id: "typeahead-pills-example1", 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"}) %>
11
13
 
12
14
  <!-- This section is an example of the available JavaScript event hooks -->
13
15
  <%= javascript_tag defer: "defer" do %>
14
- document.addEventListener("pb-typeahead-kit-result-option-select", function(event) {
16
+ document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-option-select", function(event) {
15
17
  console.log('Option selected')
16
18
  console.dir(event.detail)
17
19
  })
18
- document.addEventListener("pb-typeahead-kit-result-option-remove", function(event) {
20
+ document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-option-remove", function(event) {
19
21
  console.log('Option removed')
20
22
  console.dir(event.detail)
21
23
  })
22
- document.addEventListener("pb-typeahead-kit-result-clear", function() {
24
+ document.addEventListener("pb-typeahead-kit-typeahead-pills-example1-result-clear", function() {
23
25
  console.log('All options cleared')
24
26
  })
27
+
28
+ document.querySelector('#clear-pills').addEventListener('click', function() {
29
+ document.dispatchEvent(new CustomEvent('pb-typeahead-kit-typeahead-pills-example1:clear'))
30
+ })
25
31
  <% end %>
@@ -1,8 +1,24 @@
1
1
  Typeahead kit is data-driven. The minimum default fields are `label` and `value`.
2
2
 
3
- `{ label: "Foo", value: "bar" }`
3
+ This is an example of an option: `{ label: 'Windows', value: '#FFA500' }`
4
+
5
+ #### Rails: Default Options
6
+
7
+ You can also pass `default_options` which will populate the initial pill selections:
8
+
9
+ `default_options: [{ label: 'Windows', value: '#FFA500' }]`
4
10
 
5
11
  #### Rails: Subscribing to JS Events
6
- `pb-typeahead-kit-result-option-select` event to perform custom work when an option is clicked.
7
- `pb-typeahead-kit-result-option-remove` event to perform custom work when a pill is clicked.
8
- `pb-typeahead-kit-result-option-clear` event to perform custom work when all pills are removed upon clicking the X.
12
+
13
+ JavaScript events are triggered based on actions you take within the kit such as selection, removal and clearing.
14
+ This kit utilizes a default `id` prop named `react-select-input`. It is **highly advised** to send your own unique `id` prop when using this kit to ensure these events do not unintentionally affect other instances of the kit in the same view. The examples below will use the unique `id` prop named `typeahead-pills-example1`:
15
+
16
+ `pb-typeahead-kit-typeahead-pills-example1-result-option-select` event to perform custom work when an option is clicked.
17
+ `pb-typeahead-kit-typeahead-pills-example1-result-option-remove` event to perform custom work when a pill is clicked.
18
+ `pb-typeahead-kit-typeahead-pills-example1-result-option-clear` event to perform custom work when all pills are removed upon clicking the X.
19
+
20
+ #### Rails: Publishing JS Events
21
+
22
+ The same rule regarding the `id` prop applies to publishing JS events. The examples below will use the unique `id` prop named `typeahead-pills-example1`:
23
+
24
+ `pb-typeahead-kit-typeahead-pills-example1:clear` event to clear all options.
@@ -7,6 +7,8 @@ module Playbook
7
7
 
8
8
  prop :async, type: Playbook::Props::Boolean,
9
9
  default: false
10
+ prop :default_options, type: Playbook::Props::HashArray, default: []
11
+ prop :id
10
12
  prop :label
11
13
  prop :load_options
12
14
  prop :name
@@ -35,6 +37,8 @@ module Playbook
35
37
 
36
38
  def typeahead_with_pills_options
37
39
  base_options = {
40
+ defaultValue: default_options,
41
+ id: id,
38
42
  isMulti: true,
39
43
  label: label,
40
44
  options: options,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "7.4.0.pre.alpha6"
4
+ VERSION = "7.4.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.4.0.pre.alpha6
4
+ version: 7.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -395,11 +395,13 @@ extra_rdoc_files: []
395
395
  files:
396
396
  - README.md
397
397
  - Rakefile
398
- - app/assets/images/clark.jpg
399
- - app/assets/images/giant.jpg
398
+ - app/assets/images/github-brands.svg
399
+ - app/assets/images/landing-background.svg
400
+ - app/assets/images/landing-image.svg
400
401
  - app/assets/images/pb-caret.svg
401
402
  - app/assets/images/pb-check.svg
402
- - app/assets/images/pb.logo.svg
403
+ - app/assets/images/pb-logo.svg
404
+ - app/assets/images/pb-white-logo.svg
403
405
  - app/controllers/playbook/application_controller.rb
404
406
  - app/helpers/playbook/application_helper.rb
405
407
  - app/helpers/playbook/layout_helper.rb
@@ -445,6 +447,23 @@ files:
445
447
  - app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb
446
448
  - app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml
447
449
  - app/pb_kits/playbook/pb_avatar_action_button/docs/index.js
450
+ - app/pb_kits/playbook/pb_background/_background.html.erb
451
+ - app/pb_kits/playbook/pb_background/_background.jsx
452
+ - app/pb_kits/playbook/pb_background/_background.scss
453
+ - app/pb_kits/playbook/pb_background/background.rb
454
+ - app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb
455
+ - app/pb_kits/playbook/pb_background/docs/_background_dark.jsx
456
+ - app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb
457
+ - app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx
458
+ - app/pb_kits/playbook/pb_background/docs/_background_image.html.erb
459
+ - app/pb_kits/playbook/pb_background/docs/_background_image.jsx
460
+ - app/pb_kits/playbook/pb_background/docs/_background_light.html.erb
461
+ - app/pb_kits/playbook/pb_background/docs/_background_light.jsx
462
+ - app/pb_kits/playbook/pb_background/docs/_background_white.html.erb
463
+ - app/pb_kits/playbook/pb_background/docs/_background_white.jsx
464
+ - app/pb_kits/playbook/pb_background/docs/_description.md
465
+ - app/pb_kits/playbook/pb_background/docs/example.yml
466
+ - app/pb_kits/playbook/pb_background/docs/index.js
448
467
  - app/pb_kits/playbook/pb_badge/_badge.html.erb
449
468
  - app/pb_kits/playbook/pb_badge/_badge.jsx
450
469
  - app/pb_kits/playbook/pb_badge/_badge.scss
@@ -668,10 +687,14 @@ files:
668
687
  - app/pb_kits/playbook/pb_date/_date.jsx
669
688
  - app/pb_kits/playbook/pb_date/_date.scss
670
689
  - app/pb_kits/playbook/pb_date/date.rb
690
+ - app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb
691
+ - app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx
671
692
  - app/pb_kits/playbook/pb_date/docs/_date_default.html.erb
672
693
  - app/pb_kits/playbook/pb_date/docs/_date_default.jsx
673
694
  - app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb
674
695
  - app/pb_kits/playbook/pb_date/docs/_date_timezone.md
696
+ - app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb
697
+ - app/pb_kits/playbook/pb_date/docs/_date_variants.jsx
675
698
  - app/pb_kits/playbook/pb_date/docs/_description.md
676
699
  - app/pb_kits/playbook/pb_date/docs/example.yml
677
700
  - app/pb_kits/playbook/pb_date/docs/index.js
@@ -759,6 +782,19 @@ files:
759
782
  - app/pb_kits/playbook/pb_date_stacked/docs/_footer.md
760
783
  - app/pb_kits/playbook/pb_date_stacked/docs/example.yml
761
784
  - app/pb_kits/playbook/pb_date_stacked/docs/index.js
785
+ - app/pb_kits/playbook/pb_date_time/_date_time.html.erb
786
+ - app/pb_kits/playbook/pb_date_time/_date_time.jsx
787
+ - app/pb_kits/playbook/pb_date_time/_date_time.scss
788
+ - app/pb_kits/playbook/pb_date_time/date_time.rb
789
+ - app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb
790
+ - app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx
791
+ - app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb
792
+ - app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx
793
+ - app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb
794
+ - app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx
795
+ - app/pb_kits/playbook/pb_date_time/docs/_description.md
796
+ - app/pb_kits/playbook/pb_date_time/docs/example.yml
797
+ - app/pb_kits/playbook/pb_date_time/docs/index.js
762
798
  - app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.html.erb
763
799
  - app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx
764
800
  - app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss
@@ -1352,10 +1388,12 @@ files:
1352
1388
  - app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb
1353
1389
  - app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx
1354
1390
  - app/pb_kits/playbook/pb_progress_step/docs/_description.md
1391
+ - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_custom_icon.html.erb
1355
1392
  - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.html.erb
1356
1393
  - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.jsx
1357
1394
  - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker.html.erb
1358
1395
  - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker.jsx
1396
+ - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker_click_events.jsx
1359
1397
  - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.html.erb
1360
1398
  - app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.jsx
1361
1399
  - app/pb_kits/playbook/pb_progress_step/docs/example.yml
@@ -1462,20 +1500,6 @@ files:
1462
1500
  - app/pb_kits/playbook/pb_selectable_icon/docs/example.yml
1463
1501
  - app/pb_kits/playbook/pb_selectable_icon/docs/index.js
1464
1502
  - app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb
1465
- - app/pb_kits/playbook/pb_selectable_list/_item.jsx
1466
- - app/pb_kits/playbook/pb_selectable_list/_selectable_list.html.erb
1467
- - app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx
1468
- - app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss
1469
- - app/pb_kits/playbook/pb_selectable_list/_selectable_list_item.html.erb
1470
- - app/pb_kits/playbook/pb_selectable_list/docs/_description.md
1471
- - app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.html.erb
1472
- - app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx
1473
- - app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.html.erb
1474
- - app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx
1475
- - app/pb_kits/playbook/pb_selectable_list/docs/example.yml
1476
- - app/pb_kits/playbook/pb_selectable_list/docs/index.js
1477
- - app/pb_kits/playbook/pb_selectable_list/selectable_list.rb
1478
- - app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb
1479
1503
  - app/pb_kits/playbook/pb_source/_source.html.erb
1480
1504
  - app/pb_kits/playbook/pb_source/_source.jsx
1481
1505
  - app/pb_kits/playbook/pb_source/_source.scss
@@ -1681,8 +1705,22 @@ files:
1681
1705
  - app/pb_kits/playbook/pb_timestamp/docs/_description.md
1682
1706
  - app/pb_kits/playbook/pb_timestamp/docs/_footer.md
1683
1707
  - app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md
1708
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.html.erb
1709
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx
1684
1710
  - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb
1685
1711
  - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx
1712
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb
1713
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx
1714
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.html.erb
1715
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.jsx
1716
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.html.erb
1717
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx
1718
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.html.erb
1719
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.jsx
1720
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.html.erb
1721
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx
1722
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.html.erb
1723
+ - app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.jsx
1686
1724
  - app/pb_kits/playbook/pb_timestamp/docs/example.yml
1687
1725
  - app/pb_kits/playbook/pb_timestamp/docs/index.js
1688
1726
  - app/pb_kits/playbook/pb_timestamp/timestamp.rb
@@ -1750,6 +1788,7 @@ files:
1750
1788
  - app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb
1751
1789
  - app/pb_kits/playbook/pb_typeahead/_typeahead.jsx
1752
1790
  - app/pb_kits/playbook/pb_typeahead/_typeahead.scss
1791
+ - app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx
1753
1792
  - app/pb_kits/playbook/pb_typeahead/components/Control.jsx
1754
1793
  - app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx
1755
1794
  - app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx
@@ -1880,12 +1919,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
1880
1919
  version: '0'
1881
1920
  required_rubygems_version: !ruby/object:Gem::Requirement
1882
1921
  requirements:
1883
- - - ">"
1922
+ - - ">="
1884
1923
  - !ruby/object:Gem::Version
1885
- version: 1.3.1
1924
+ version: '0'
1886
1925
  requirements: []
1887
- rubyforge_project:
1888
- rubygems_version: 2.7.3
1926
+ rubygems_version: 3.1.4
1889
1927
  signing_key:
1890
1928
  specification_version: 4
1891
1929
  summary: Playbook Design System