playbook_ui 7.4.0.pre.alpha6 → 7.4.1

Sign up to get free protection for your applications and to get access to all the features.
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