playbook_ui 14.12.0.pre.alpha.PBNTR779railsdraggablecrosscontainer5863 → 14.12.0.pre.alpha.PBNTR834advtablemaxHeightstickyheader5932

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +10 -3
  3. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ActionBarAnimationHelper.ts +26 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +58 -7
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +37 -21
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +1 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +3 -1
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +55 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +3 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -1
  12. data/app/pb_kits/playbook/pb_copy_button/_copy_button.scss +2 -1
  13. data/app/pb_kits/playbook/pb_copy_button/copy_button.html.erb +15 -0
  14. data/app/pb_kits/playbook/pb_copy_button/copy_button.rb +28 -0
  15. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.html.erb +2 -0
  16. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb +5 -0
  17. data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +3 -3
  18. data/app/pb_kits/playbook/pb_copy_button/index.js +47 -0
  19. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +5 -1
  20. data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +2 -2
  21. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +0 -3
  22. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +0 -2
  23. data/app/pb_kits/playbook/pb_draggable/index.js +16 -88
  24. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +7 -11
  25. data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +0 -2
  26. data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +0 -1
  27. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +2 -11
  28. data/app/pb_kits/playbook/pb_link/_link.tsx +18 -0
  29. data/app/pb_kits/playbook/pb_link/docs/_link_target.html.erb +15 -0
  30. data/app/pb_kits/playbook/pb_link/docs/_link_target.jsx +29 -0
  31. data/app/pb_kits/playbook/pb_link/docs/example.yml +5 -3
  32. data/app/pb_kits/playbook/pb_link/docs/index.js +2 -1
  33. data/app/pb_kits/playbook/pb_link/link.html.erb +1 -1
  34. data/app/pb_kits/playbook/pb_link/link.rb +6 -0
  35. data/app/pb_kits/playbook/pb_link/link.test.jsx +30 -0
  36. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tooltip.html.erb +6 -6
  37. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +1 -1
  38. data/app/pb_kits/playbook/pb_tooltip/index.js +45 -27
  39. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +5 -1
  40. data/dist/chunks/{_typeahead-W0hatdPs.js → _typeahead-CkemExmL.js} +1 -1
  41. data/dist/chunks/_weekday_stacked-DiNLeUtf.js +45 -0
  42. data/dist/chunks/{lib-kMuhBuU7.js → lib-DjpLC8uO.js} +1 -1
  43. data/dist/chunks/{pb_form_validation-DBJ0wZuS.js → pb_form_validation-S56UaHZl.js} +1 -1
  44. data/dist/chunks/vendor.js +1 -1
  45. data/dist/menu.yml +2 -2
  46. data/dist/playbook-doc.js +1 -1
  47. data/dist/playbook-rails-react-bindings.js +1 -1
  48. data/dist/playbook-rails.js +1 -1
  49. data/dist/playbook.css +1 -1
  50. data/lib/playbook/version.rb +1 -1
  51. metadata +16 -12
  52. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.html.erb +0 -193
  53. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +0 -1
  54. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.html.erb +0 -11
  55. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.jsx +0 -22
  56. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_rails.md +0 -1
  57. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_react.md +0 -1
  58. data/dist/chunks/_weekday_stacked-C98LOqgG.js +0 -45
@@ -9,32 +9,11 @@ export default class PbDraggable extends PbEnhancedElement {
9
9
  }
10
10
 
11
11
  connect() {
12
- this.state = {
13
- items: [],
14
- dragData: { id: "", initialGroup: "" },
15
- isDragging: "",
16
- activeContainer: ""
17
- };
18
-
19
12
  this.draggedItem = null;
20
13
  this.draggedItemId = null;
21
-
22
14
  document.addEventListener("DOMContentLoaded", () => this.bindEventListeners());
23
15
  }
24
16
 
25
- setState(newState) {
26
- this.state = { ...this.state, ...newState };
27
- if (newState.items) {
28
- const customEvent = new CustomEvent('pb-draggable-reorder', {
29
- detail: {
30
- reorderedItems: this.state.items,
31
- containerId: this.element.querySelector(DRAGGABLE_CONTAINER).id
32
- }
33
- });
34
- this.element.dispatchEvent(customEvent);
35
- }
36
- }
37
-
38
17
  bindEventListeners() {
39
18
  // Needed to prevent images within draggable items from being independently draggable
40
19
  // Needed if using Image kit in draggable items
@@ -48,11 +27,11 @@ export default class PbDraggable extends PbEnhancedElement {
48
27
  item.addEventListener("dragenter", this.handleDragEnter.bind(this));
49
28
  });
50
29
 
51
- const containers = this.element.querySelectorAll(DRAGGABLE_CONTAINER);
52
- containers.forEach(container => {
30
+ const container = this.element.querySelector(DRAGGABLE_CONTAINER);
31
+ if (container) {
53
32
  container.addEventListener("dragover", this.handleDragOver.bind(this));
54
33
  container.addEventListener("drop", this.handleDrop.bind(this));
55
- });
34
+ }
56
35
  }
57
36
 
58
37
  handleDragStart(event) {
@@ -62,17 +41,11 @@ export default class PbDraggable extends PbEnhancedElement {
62
41
  event.preventDefault();
63
42
  return;
64
43
  }
65
-
66
- const container = event.target.closest(DRAGGABLE_CONTAINER);
44
+
67
45
  this.draggedItem = event.target;
68
46
  this.draggedItemId = event.target.id;
69
-
70
- this.setState({
71
- dragData: { id: this.draggedItemId, initialGroup: container.id },
72
- isDragging: this.draggedItemId
73
- });
74
-
75
47
  event.target.classList.add("is_dragging");
48
+
76
49
  if (event.dataTransfer) {
77
50
  event.dataTransfer.effectAllowed = 'move';
78
51
  event.dataTransfer.setData('text/plain', this.draggedItemId);
@@ -91,14 +64,6 @@ export default class PbDraggable extends PbEnhancedElement {
91
64
 
92
65
  const container = targetItem.parentNode;
93
66
  const items = Array.from(container.children);
94
-
95
- const newItems = [...items].map(item => ({
96
- id: item.id,
97
- container: container.id
98
- }));
99
-
100
- this.setState({ items: newItems });
101
-
102
67
  const draggedIndex = items.indexOf(this.draggedItem);
103
68
  const targetIndex = items.indexOf(targetItem);
104
69
 
@@ -111,82 +76,45 @@ export default class PbDraggable extends PbEnhancedElement {
111
76
 
112
77
  handleDragOver(event) {
113
78
  event.preventDefault();
114
- event.stopPropagation();
115
-
116
- let container;
117
- if (event.target.matches(DRAGGABLE_CONTAINER)) {
118
- container = event.target;
119
- } else {
120
- container = event.target.closest(DRAGGABLE_CONTAINER);
121
- }
79
+ const container = event.target.closest(DRAGGABLE_CONTAINER);
122
80
 
123
81
  if (container) {
124
- this.setState({ activeContainer: container.id });
125
82
  container.classList.add("active_container");
126
83
  }
127
84
  }
128
85
 
129
86
  handleDrop(event) {
130
87
  event.preventDefault();
131
- event.stopPropagation();
132
-
133
- let container;
134
-
135
- if (event.target.matches(DRAGGABLE_CONTAINER)) {
136
- container = event.target;
137
- } else {
138
- container = event.target.closest(DRAGGABLE_CONTAINER);
139
- }
140
-
88
+ const container = event.target.closest(DRAGGABLE_CONTAINER);
141
89
  if (!container || !this.draggedItem) return;
142
-
90
+
143
91
  container.classList.remove("active_container");
144
92
  this.draggedItem.style.opacity = '1';
145
-
146
- // Handle empty containers
147
- if (!container.querySelector('.pb_draggable_item')) {
148
- container.appendChild(this.draggedItem);
149
- }
150
-
93
+
151
94
  // Updated order of items as an array of item IDs
152
- const reorderedItems = Array.from(
153
- this.element.querySelectorAll('.pb_draggable_item')
154
- ).map(item => ({
155
- id: item.id,
156
- container: item.closest(DRAGGABLE_CONTAINER).id
157
- }));
158
-
95
+ const reorderedItems = Array.from(container.children)
96
+ .filter(item => item.classList.contains("pb_draggable_item"))
97
+ .map(item => item.id.replace("item_", ""));
98
+
159
99
  // Store reordered items in a data attribute on the container
160
100
  container.setAttribute("data-reordered-items", JSON.stringify(reorderedItems));
161
-
101
+
162
102
  const customEvent = new CustomEvent('pb-draggable-reorder', {
163
103
  detail: {
164
104
  reorderedItems,
165
105
  containerId: container.id,
166
106
  }
167
107
  });
168
-
169
108
  this.element.dispatchEvent(customEvent);
170
-
171
- this.setState({
172
- items: reorderedItems, // Changed from reorderedItems to items to match setState
173
- isDragging: "",
174
- activeContainer: ""
175
- });
176
-
109
+
177
110
  this.draggedItem = null;
178
111
  this.draggedItemId = null;
179
112
  }
113
+
180
114
 
181
115
  handleDragEnd(event) {
182
116
  event.target.classList.remove("is_dragging");
183
117
  event.target.style.opacity = '1';
184
-
185
- this.setState({
186
- isDragging: "",
187
- activeContainer: ""
188
- });
189
-
190
118
  this.draggedItem = null;
191
119
  this.draggedItemId = null;
192
120
 
@@ -18,7 +18,6 @@ type HomeAddressStreetProps = {
18
18
  className?: string,
19
19
  data?: { [key: string]: string },
20
20
  dark?: boolean,
21
- preserveCase?: boolean,
22
21
  emphasis: "street" | "city" | "none",
23
22
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
24
23
  homeId: string,
@@ -44,7 +43,6 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
44
43
  htmlOptions = {},
45
44
  homeId,
46
45
  homeUrl,
47
- preserveCase = false,
48
46
  target,
49
47
  newWindow,
50
48
  houseStyle,
@@ -79,8 +77,6 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
79
77
  return null
80
78
  }
81
79
 
82
- const formatStreetAdr = (address: string): string => preserveCase ? address : titleize(address)
83
-
84
80
  return (
85
81
  <div
86
82
  className={classes(className, dark)}
@@ -95,7 +91,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
95
91
  dark={dark}
96
92
  size={4}
97
93
  >
98
- {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
94
+ {joinPresent([titleize(address), houseStyle], ' · ')}
99
95
  </Title>
100
96
  <Title
101
97
  className="pb_home_address_street_address"
@@ -105,14 +101,14 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
105
101
  {titleize(addressCont)}
106
102
  </Title>
107
103
  <Body color="light">
108
- {`${titleize(city)}, ${state.toUpperCase()} ${zipcode}`}
104
+ {`${titleize(city)}, ${state} ${zipcode}`}
109
105
  </Body>
110
106
  </div>
111
107
  }
112
108
  {emphasis == 'city' &&
113
109
  <div>
114
110
  <Body color="light">
115
- {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
111
+ {joinPresent([titleize(address), houseStyle], ' · ')}
116
112
  </Body>
117
113
  <Body color="light">{titleize(addressCont)}</Body>
118
114
  <div>
@@ -122,7 +118,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
122
118
  size={4}
123
119
  tag="span"
124
120
  >
125
- {`${titleize(city)}, ${state.toUpperCase()}`}
121
+ {`${titleize(city)}, ${state}`}
126
122
  </Title>
127
123
  <Body
128
124
  color="light"
@@ -136,15 +132,15 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
136
132
  {emphasis == 'none' &&
137
133
  <div>
138
134
  <Body dark={dark}>
139
- {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
135
+ {joinPresent([titleize(address), houseStyle], ' · ')}
140
136
  </Body>
141
- <Body dark={dark}>{formatStreetAdr(addressCont)}</Body>
137
+ <Body dark={dark}>{titleize(addressCont)}</Body>
142
138
  <div>
143
139
  <Body
144
140
  color="light"
145
141
  dark={dark}
146
142
  >
147
- {`${titleize(city)}, ${state.toUpperCase()} ${zipcode}`}
143
+ {`${titleize(city)}, ${state} ${zipcode}`}
148
144
  </Body>
149
145
  </div>
150
146
  </div>
@@ -5,14 +5,12 @@ examples:
5
5
  - home_address_street_emphasis: Emphasis
6
6
  - home_address_street_modified: Modified
7
7
  - home_address_street_link: Link
8
- - home_address_street_formatting: Formatting
9
8
 
10
9
  react:
11
10
  - home_address_street_default: Default
12
11
  - home_address_street_emphasis: Emphasis
13
12
  - home_address_street_modified: Modified
14
13
  - home_address_street_link: Link
15
- - home_address_street_formatting: Formatting
16
14
 
17
15
  swift:
18
16
  - home_address_street_default_swift: Default
@@ -2,4 +2,3 @@ export { default as HomeAddressStreetDefault } from './_home_address_street_defa
2
2
  export { default as HomeAddressStreetEmphasis } from './_home_address_street_emphasis.jsx'
3
3
  export { default as HomeAddressStreetModified } from './_home_address_street_modified.jsx'
4
4
  export { default as HomeAddressStreetLink } from './_home_address_street_link.jsx'
5
- export { default as HomeAddressStreetFormatting } from './_home_address_street_formatting.jsx'
@@ -18,7 +18,6 @@ module Playbook
18
18
  prop :state
19
19
  prop :zipcode
20
20
  prop :territory
21
- prop :preserve_case, default: false
22
21
  prop :dark, type: Playbook::Props::Boolean, default: false
23
22
 
24
23
  def classname
@@ -30,7 +29,7 @@ module Playbook
30
29
  end
31
30
 
32
31
  def city_state
33
- [city&.titleize, state&.upcase].join(", ")
32
+ [city&.titleize, state].join(", ")
34
33
  end
35
34
 
36
35
  def zip
@@ -38,7 +37,7 @@ module Playbook
38
37
  end
39
38
 
40
39
  def address_house_style
41
- [format_street_address, house_style].join(separator)
40
+ [address&.titleize, house_style].join(separator)
42
41
  end
43
42
 
44
43
  def address_house_style2
@@ -49,14 +48,6 @@ module Playbook
49
48
  house_style ? " \u00b7 " : ""
50
49
  end
51
50
 
52
- def format_street_address
53
- preserve_case ? address : custom_titleize(address)
54
- end
55
-
56
- def custom_titleize(str)
57
- str.split(" ").map(&:capitalize).join(" ")
58
- end
59
-
60
51
  def city_emphasis_props
61
52
  {
62
53
  address_house_style: address_house_style,
@@ -19,7 +19,9 @@ type LinkProps = {
19
19
  icon?: string,
20
20
  iconRight?: string,
21
21
  id?: string,
22
+ tabIndex?: number,
22
23
  tag?: 'a' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div',
24
+ target?: string,
23
25
  text?: string,
24
26
  underline?: boolean,
25
27
  } & GlobalProps
@@ -37,7 +39,9 @@ const Link = (props: LinkProps): React.ReactElement => {
37
39
  icon = '',
38
40
  iconRight = '',
39
41
  id = '',
42
+ tabIndex,
40
43
  tag = 'a',
44
+ target = '',
41
45
  text = '',
42
46
  underline = false,
43
47
  } = props
@@ -52,6 +56,14 @@ const Link = (props: LinkProps): React.ReactElement => {
52
56
  )
53
57
  const Tag = tag as keyof JSX.IntrinsicElements
54
58
 
59
+ const getTargetAttribute = () => {
60
+ if (target && href) {
61
+ return target
62
+ }
63
+
64
+ return undefined
65
+ }
66
+
55
67
  const renderContent = () => (
56
68
  <>
57
69
  {icon && (
@@ -87,6 +99,9 @@ const Link = (props: LinkProps): React.ReactElement => {
87
99
  <a
88
100
  {...commonProps}
89
101
  href={href}
102
+ rel={target !== 'child' ? 'noreferrer' : undefined}
103
+ tabIndex={tabIndex}
104
+ target={getTargetAttribute()}
90
105
  >
91
106
  {renderContent()}
92
107
  </a>
@@ -96,6 +111,9 @@ const Link = (props: LinkProps): React.ReactElement => {
96
111
  <a
97
112
  {...commonProps}
98
113
  href={href}
114
+ rel={target !== 'child' ? 'noreferrer' : undefined}
115
+ tabIndex={tabIndex}
116
+ target={getTargetAttribute()}
99
117
  >
100
118
  <Tag>{renderContent()}</Tag>
101
119
  </a>
@@ -0,0 +1,15 @@
1
+ <div>
2
+ <%= pb_rails("link", props: {
3
+ href: "http://google.com",
4
+ target: "blank",
5
+ text: "Open In New Window"
6
+ }) %>
7
+ </div>
8
+
9
+ <div>
10
+ <%= pb_rails("link", props: {
11
+ href: "https://playbook.powerapp.cloud/",
12
+ target: "child",
13
+ text: "Open In Child Tab",
14
+ }) %>
15
+ </div>
@@ -0,0 +1,29 @@
1
+ import React from 'react'
2
+ import { Link } from 'playbook-ui'
3
+
4
+ const LinkTarget = (props) => (
5
+ <div>
6
+ <div>
7
+ <Link
8
+ aria={{ label: 'Link to Google in new window' }}
9
+ href="https://google.com"
10
+ tabIndex={0}
11
+ target='blank'
12
+ text="Open In New Window"
13
+ {...props}
14
+ />
15
+ </div>
16
+ <div>
17
+ <Link
18
+ aria={{ label: 'Link to Playbook in a child tab' }}
19
+ href="https://playbook.powerapp.cloud/"
20
+ tabIndex={0}
21
+ target='child'
22
+ text="Open In Child Tab"
23
+ {...props}
24
+ />
25
+ </div>
26
+ </div>
27
+ )
28
+
29
+ export default LinkTarget
@@ -1,16 +1,18 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - link_color: Color
5
5
  - link_underline: Underline
6
6
  - link_icon: Icon
7
7
  - link_disabled: Disabled
8
8
  - link_tag: Tag
9
-
10
-
9
+ - link_target: Target
10
+
11
+
11
12
  react:
12
13
  - link_color: Color
13
14
  - link_underline: Underline
14
15
  - link_icon: Icon
15
16
  - link_disabled: Disabled
16
17
  - link_tag: Tag
18
+ - link_target: Target
@@ -2,4 +2,5 @@ export { default as LinkColor } from './_link_color.jsx'
2
2
  export { default as LinkUnderline } from './_link_underline.jsx'
3
3
  export { default as LinkIcon } from './_link_icon.jsx'
4
4
  export { default as LinkDisabled } from './_link_disabled.jsx'
5
- export { default as LinkTag } from './_link_tag.jsx'
5
+ export { default as LinkTag } from './_link_tag.jsx'
6
+ export { default as LinkTarget } from './_link_target.jsx'
@@ -9,7 +9,7 @@
9
9
  <% end %>
10
10
 
11
11
  <% if object.tag == "a" %>
12
- <%= pb_content_tag(object.tag, { href: object.href }) do %>
12
+ <%= pb_content_tag(object.tag, { href: object.href, target: object.target }) do %>
13
13
  <%= link_content.call %>
14
14
  <% end %>
15
15
  <% else %>
@@ -11,9 +11,11 @@ module Playbook
11
11
  prop :href
12
12
  prop :icon
13
13
  prop :icon_right
14
+ prop :tabindex
14
15
  prop :tag, type: Playbook::Props::Enum,
15
16
  values: %w[a h1 h2 h3 h4 h5 h6 p span div],
16
17
  default: "a"
18
+ prop :target
17
19
  prop :text
18
20
  prop :underline, type: Playbook::Props::Boolean,
19
21
  default: false
@@ -26,6 +28,10 @@ module Playbook
26
28
  text
27
29
  end
28
30
 
31
+ def target_attribute
32
+ target if target && href
33
+ end
34
+
29
35
  private
30
36
 
31
37
  def color_class
@@ -90,3 +90,33 @@ test('adds icon right', () => {
90
90
  const icon = kit.querySelector('.pb_icon_kit')
91
91
  expect(icon).toBeInTheDocument();
92
92
  })
93
+
94
+ test('should render target prop', () => {
95
+ render(
96
+ <Link
97
+ data={{ testid: 'target-test' }}
98
+ href="https://playbook.powerapp.cloud/"
99
+ target="blank"
100
+ />
101
+ )
102
+
103
+ const kit = screen.getByTestId('target-test')
104
+
105
+ expect(kit).toHaveAttribute('target', 'blank')
106
+ })
107
+
108
+
109
+ test('should render child target prop', () => {
110
+ render(
111
+ <Link
112
+ data={{ testid: 'target-test' }}
113
+ href="https://playbook.powerapp.cloud/"
114
+ tabIndex={0}
115
+ target="child"
116
+ />
117
+ )
118
+
119
+ const kit = screen.getByTestId('target-test')
120
+
121
+ expect(kit).toHaveAttribute('target', 'child')
122
+ })
@@ -2,7 +2,7 @@
2
2
  <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-1", tooltip: "Tooltip for step 1", tooltip_position: "right", step_direction: "horizontal" }) do %>
3
3
  step 1
4
4
  <% end %>
5
- <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-2", tooltip: "Tooltip for step 2", step_direction: "horizontal" }) do %>
5
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-2", tooltip: "Tooltip for step 2", tooltip_position: "left", step_direction: "horizontal" }) do %>
6
6
  step 2
7
7
  <% end %>
8
8
  <%= pb_rails("progress_step/progress_step_item", props: {status: "active", classname: "tooltip-trigger-3", tooltip: "Tooltip for step 3", tooltip_position: "left", step_direction: "horizontal" }) do %>
@@ -11,7 +11,7 @@
11
11
  <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-4", tooltip: "Tooltip for step 4", tooltip_position: "bottom" }) do %>
12
12
  step 4
13
13
  <% end %>
14
- <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-5", tooltip: "Tooltip for step 5" }) do %>
14
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-5", tooltip: "Tooltip for step 5", tooltip_position: "left" }) do %>
15
15
  step 5
16
16
  <% end %>
17
17
  <% end %>
@@ -19,7 +19,7 @@
19
19
  <br /><br />
20
20
 
21
21
  <%= pb_rails("progress_step", props: {orientation: "vertical"}) do %>
22
- <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-6", tooltip: "Tooltip step 1", step_direction: "vertical" }) do %>
22
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-6", tooltip: "Tooltip step 1", step_direction: "vertical", tooltip_position: "left" }) do %>
23
23
  <% end %>
24
24
  <%= pb_rails("progress_step/progress_step_item", props: {status: "active", classname: "tooltip-trigger-7", tooltip: "Tooltip step 2", tooltip_position: "left"}) do %>
25
25
  <% end %>
@@ -31,10 +31,10 @@
31
31
 
32
32
  <br /><br>
33
33
  <%= pb_rails("progress_step",props:{ variant:"tracker", icon:true}) do %>
34
- <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-10", tooltip: "The order has been received", step_direction: "horizontal" , tooltip_position: "right" }) do %>
34
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "complete", classname: "tooltip-trigger-10", tooltip: "The order has been received", step_direction: "horizontal" , tooltip_position: "right" }) do %>
35
35
  <%= pb_rails("caption", props:{text: "Ordered"})%>
36
36
  <% end %>
37
- <%= pb_rails("progress_step/progress_step_item", props: {status: "active", classname: "tooltip-trigger-11", tooltip:"Item(s) have been shipped" }) do %>
37
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "active", classname: "tooltip-trigger-11", tooltip:"Item(s) have been shipped", tooltip_position: "right" }) do %>
38
38
  <%= pb_rails("caption", props:{text: "Shipped"})%>
39
39
  <% end %>
40
40
  <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-12", tooltip:"This step has not been reached", tooltip_position: "left" }) do %>
@@ -50,7 +50,7 @@
50
50
  <%= pb_rails("progress_step/progress_step_item", props: {status: "active", icon: "exclamation-triangle", classname: "tooltip-trigger-14", tooltip: "More details needed before shipment", tooltip_position: "bottom" }) do %>
51
51
  <%= pb_rails("caption", props:{text: "Shipped"})%>
52
52
  <% end %>
53
- <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-15", tooltip: "This step is inactive"}) do %>
53
+ <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-15", tooltip: "This step is inactive", tooltip_position: "bottom"}) do %>
54
54
  <%= pb_rails("caption", props:{text: "Out for Delivery"})%>
55
55
  <% end %>
56
56
  <%= pb_rails("progress_step/progress_step_item", props: {status: "inactive", classname: "tooltip-trigger-16", tooltip: "Estimated delivery: Jun 27", tooltip_position: "left"}) do %>
@@ -43,4 +43,4 @@
43
43
  Whoa. I'm a tooltip.
44
44
  <% end %>
45
45
  <% end %>
46
- <% end %>
46
+ <% end %>