playbook_ui 4.18.1.pre.alpha1 → 5.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/helpers/playbook/pb_sample_helper.rb +1 -1
  4. data/app/pb_kits/playbook/_playbook.scss +1 -1
  5. data/app/pb_kits/playbook/data/menu.yml +3 -1
  6. data/app/pb_kits/playbook/packs/examples.js +2 -0
  7. data/app/pb_kits/playbook/packs/samples.js +2 -0
  8. data/app/pb_kits/playbook/pb_caption/_caption.jsx +21 -4
  9. data/app/pb_kits/playbook/pb_card/_card.scss +1 -72
  10. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +72 -0
  11. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +0 -1
  12. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +1 -1
  13. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  14. data/app/pb_kits/playbook/pb_installer/_installer.html.erb +16 -0
  15. data/app/pb_kits/playbook/pb_installer/_installer.jsx +54 -0
  16. data/app/pb_kits/playbook/pb_installer/_installer.scss +7 -0
  17. data/app/pb_kits/playbook/pb_installer/docs/_installer_default.html.erb +8 -0
  18. data/app/pb_kits/playbook/pb_installer/docs/_installer_default.jsx +16 -0
  19. data/app/pb_kits/playbook/pb_installer/docs/example.yml +9 -0
  20. data/app/pb_kits/playbook/pb_installer/docs/index.js +1 -0
  21. data/app/pb_kits/playbook/pb_installer/installer.rb +18 -0
  22. data/app/pb_kits/playbook/pb_layout/_body.html.erb +1 -1
  23. data/app/pb_kits/playbook/pb_layout/_column.html.erb +7 -0
  24. data/app/pb_kits/playbook/pb_layout/_layout.jsx +31 -13
  25. data/app/pb_kits/playbook/pb_layout/_layout.scss +54 -0
  26. data/app/pb_kits/playbook/pb_layout/body.rb +4 -0
  27. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.html.erb +140 -0
  28. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.jsx +1234 -0
  29. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.html.erb +57 -0
  30. data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.jsx +46 -0
  31. data/app/pb_kits/playbook/pb_layout/docs/example.yml +3 -0
  32. data/app/pb_kits/playbook/pb_layout/docs/index.js +2 -0
  33. data/app/pb_kits/playbook/pb_layout/layout.rb +12 -4
  34. data/app/pb_kits/playbook/pb_list/_item.html.erb +3 -2
  35. data/app/pb_kits/playbook/pb_list/_list.html.erb +3 -3
  36. data/app/pb_kits/playbook/pb_list/_list.jsx +55 -10
  37. data/app/pb_kits/playbook/pb_list/_list_item.jsx +41 -18
  38. data/app/pb_kits/playbook/pb_list/docs/_list_borderless.jsx +21 -0
  39. data/app/pb_kits/playbook/pb_list/docs/_list_dark.jsx +0 -5
  40. data/app/pb_kits/playbook/pb_list/docs/_list_dark_borderless.jsx +22 -0
  41. data/app/pb_kits/playbook/pb_list/docs/_list_dark_lg.jsx +22 -0
  42. data/app/pb_kits/playbook/pb_list/docs/_list_dark_ordered.jsx +22 -0
  43. data/app/pb_kits/playbook/pb_list/docs/_list_dark_xpadding.jsx +22 -0
  44. data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.jsx +75 -0
  45. data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.jsx +75 -0
  46. data/app/pb_kits/playbook/pb_list/docs/_list_lg.jsx +21 -0
  47. data/app/pb_kits/playbook/pb_list/docs/_list_ordered.jsx +21 -0
  48. data/app/pb_kits/playbook/pb_list/docs/_list_xpadding.jsx +21 -0
  49. data/app/pb_kits/playbook/pb_list/docs/example.yml +12 -1
  50. data/app/pb_kits/playbook/pb_list/docs/index.js +11 -0
  51. data/app/pb_kits/playbook/pb_popover/_popover.html.erb +4 -4
  52. data/app/pb_kits/playbook/pb_popover/_popover.jsx +41 -8
  53. data/app/pb_kits/playbook/pb_popover/_popover.scss +44 -7
  54. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb +42 -0
  55. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +99 -0
  56. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb +19 -7
  57. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +22 -6
  58. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb +11 -10
  59. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +22 -18
  60. data/app/pb_kits/playbook/pb_popover/docs/_popover_list.md +1 -0
  61. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.html.erb +24 -0
  62. data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +56 -0
  63. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.html.erb +14 -0
  64. data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +50 -0
  65. data/app/pb_kits/playbook/pb_popover/docs/example.yml +12 -8
  66. data/app/pb_kits/playbook/pb_popover/docs/index.js +3 -3
  67. data/app/pb_kits/playbook/pb_popover/index.js +18 -9
  68. data/app/pb_kits/playbook/pb_popover/popover.rb +26 -2
  69. data/app/pb_kits/playbook/pb_title/_title.html.erb +1 -0
  70. data/app/pb_kits/playbook/pb_title/_title.jsx +24 -17
  71. data/app/pb_kits/playbook/props.rb +7 -0
  72. data/app/views/playbook/samples/filter_table/index.html.erb +348 -0
  73. data/app/views/playbook/samples/filter_table/index.jsx +433 -0
  74. data/lib/playbook/version.rb +1 -1
  75. metadata +37 -12
  76. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.html.erb +0 -19
  77. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.jsx +0 -40
  78. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.html.erb +0 -14
  79. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.jsx +0 -40
  80. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.html.erb +0 -14
  81. data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.jsx +0 -40
  82. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.jsx +0 -34
  83. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_circle.html.erb +0 -5
@@ -1,14 +1,18 @@
1
1
  examples:
2
2
  rails:
3
3
  - popover_default: Default
4
- - popover_list: With any children
5
- - popover_click_outside: Close on click outside
6
- - popover_click_inside: Close on click inside
7
- - popover_click_any: Close on click anywhere
4
+ - popover_list: Example as dropdown
5
+ - popover_close: Close Options
6
+ - popover_z_index: Set Z-Index
7
+ - popover_scroll_height: Scroll and Height Settings
8
8
 
9
9
  react:
10
10
  - popover_default: Default
11
- - popover_list: With any children
12
- - popover_click_outside: Close on click outside
13
- - popover_click_inside: Close on click inside
14
- - popover_click_any: Close on click anywhere
11
+ - popover_list: Dropdown example
12
+ - popover_close: Close Options
13
+ - popover_z_index: Set Z-Index
14
+ - popover_scroll_height: Scroll and Height Settings
15
+
16
+
17
+
18
+
@@ -1,5 +1,5 @@
1
1
  export { default as PopoverDefault } from './_popover_default.jsx'
2
2
  export { default as PopoverList } from './_popover_list.jsx'
3
- export { default as PopoverClickOutside } from './_popover_click_outside.jsx'
4
- export { default as PopoverClickInside } from './_popover_click_inside.jsx'
5
- export { default as PopoverClickAny } from './_popover_click_any.jsx'
3
+ export { default as PopoverClose } from './_popover_close.jsx'
4
+ export { default as PopoverZIndex } from './_popover_z_index.jsx'
5
+ export { default as PopoverScrollHeight } from './_popover_scroll_height.jsx'
@@ -1,21 +1,30 @@
1
1
  import PbEnhancedElement from '../pb_enhanced_element'
2
- import Popper from 'popper.js'
2
+ import { createPopper } from '@popperjs/core'
3
3
 
4
- const POPOVER_OFFSET_Y = '0,8'
4
+ const POPOVER_OFFSET_Y = [0, 20]
5
5
 
6
6
  export default class PbPopover extends PbEnhancedElement {
7
7
  static get selector() {
8
8
  return '[data-pb-popover-kit]'
9
9
  }
10
10
 
11
+ moveTooltip() {
12
+ document.querySelector('body').appendChild(this.tooltip)
13
+ }
14
+
11
15
  connect() {
12
- this.popper = new Popper(this.triggerElement, this.tooltip, {
16
+ this.moveTooltip()
17
+ this.popper = createPopper(this.triggerElement, this.tooltip, {
13
18
  placement: this.position,
14
- modifiers: {
15
- offset: {
16
- offset: this.offset,
19
+ strategy: 'fixed',
20
+ modifiers: [
21
+ {
22
+ name: 'offset',
23
+ options: {
24
+ offset: this.offset,
25
+ },
17
26
  },
18
- },
27
+ ],
19
28
  })
20
29
 
21
30
  this.triggerElement.addEventListener('click', (event) => {
@@ -27,7 +36,7 @@ export default class PbPopover extends PbEnhancedElement {
27
36
  }
28
37
 
29
38
  setTimeout(() => {
30
- this.popper.scheduleUpdate()
39
+ this.popper.update()
31
40
  this.tooltip.classList.toggle('show')
32
41
  }, 0)
33
42
  })
@@ -89,7 +98,7 @@ export default class PbPopover extends PbEnhancedElement {
89
98
  }
90
99
 
91
100
  get offset() {
92
- return this.element.dataset.pbPopoverOffset === 'true' ? POPOVER_OFFSET_Y : '0,0'
101
+ return this.element.dataset.pbPopoverOffset === 'true' ? POPOVER_OFFSET_Y : [0, 0]
93
102
  }
94
103
 
95
104
  get closeOnClick() {
@@ -6,16 +6,40 @@ module Playbook
6
6
  include Playbook::Props
7
7
  partial "pb_popover/popover"
8
8
 
9
- prop :position
9
+ prop :position, type: Playbook::Props::Enum,
10
+ values: %w[top bottom left right],
11
+ default: "left"
10
12
  prop :trigger_element_id
11
13
  prop :tooltip_id
14
+ prop :max_height
15
+ prop :max_width
16
+ prop :min_width
17
+ prop :min_height
18
+ prop :z_index, type: Playbook::Props::String
12
19
  prop :offset, type: Playbook::Props::Boolean, default: false
13
20
  prop :close_on_click, type: Playbook::Props::Enum,
14
21
  values: %w[none outside inside any],
15
22
  default: "none"
16
23
 
17
24
  def classname
18
- generate_classname("pb_popover_kit")
25
+ generate_classname_without_spacing("pb_popover_kit")
26
+ end
27
+
28
+ def popover_spacing_helper
29
+ generate_classname(spacing_props.nil? ? "p_sm" : spacing_props)
30
+ end
31
+
32
+ def z_index_helper
33
+ z_index.present? ? "z-index: #{z_index}" : ""
34
+ end
35
+
36
+ def width_height_helper
37
+ out = ""
38
+ out += "max-height: #{max_height}; " if max_height.present?
39
+ out += "max-width: #{max_width}; " if max_width.present?
40
+ out += "min-height: #{min_height}; " if min_height.present?
41
+ out += "min-width: #{min_width};" if min_width.present?
42
+ out
19
43
  end
20
44
 
21
45
  def data
@@ -1,4 +1,5 @@
1
1
  <%= content_tag(object.tag, object.text,
2
+ aria: object.aria,
2
3
  id: object.id,
3
4
  data: object.data,
4
5
  class: object.classname) %>
@@ -2,38 +2,45 @@
2
2
 
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
+ import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
5
6
  import { spacing } from '../utilities/spacing.js'
6
7
 
7
8
  type TitleProps = {
9
+ aria?: object,
8
10
  className?: String,
9
11
  children?: Array<React.ReactNode> | React.ReactNode,
10
12
  dark?: Boolean,
13
+ data?: object,
14
+ id?: String,
11
15
  size?: 1 | 2 | 3 | 4,
16
+ tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "div",
12
17
  text?: String,
13
- tag?: "h1" | "h2" | "h3",
14
- }
15
-
16
- const tagCSS = ({ dark = false, size = 3 }) => {
17
- let css = ''
18
-
19
- css += `_${size}`
20
- css += dark === true ? '_dark' : ''
21
-
22
- return css
23
18
  }
24
19
 
25
20
  const Title = (props: TitleProps) => {
26
- const { children, className, tag = 'h3', text } = props
27
-
21
+ const {
22
+ aria = {},
23
+ children,
24
+ className,
25
+ dark = false,
26
+ data = {},
27
+ id,
28
+ size = 3,
29
+ tag = 'h3',
30
+ text } = props
31
+
32
+ const themeStyle = dark === true ? '_dark' : ''
33
+ const ariaProps = buildAriaProps(aria)
34
+ const dataProps = buildDataProps(data)
35
+ const classes = classnames(buildCss('pb_title_kit', size, themeStyle), className, spacing(props))
28
36
  const Tag = `${tag}`
29
37
 
30
38
  return (
31
39
  <Tag
32
- className={classnames(
33
- `pb_title_kit${tagCSS(props)}`,
34
- className,
35
- spacing(props),
36
- )}
40
+ {...ariaProps}
41
+ {...dataProps}
42
+ className={classes}
43
+ id={id}
37
44
  >
38
45
  {text || children}
39
46
  </Tag>
@@ -51,6 +51,13 @@ module Playbook
51
51
  ].compact.join(" ")
52
52
  end
53
53
 
54
+ def generate_classname_without_spacing(*name_parts, separator: "_")
55
+ [
56
+ name_parts.compact.join(separator),
57
+ prop(:classname),
58
+ ].compact.join(" ")
59
+ end
60
+
54
61
  attr_accessor :values
55
62
  private :values, :values=
56
63
 
@@ -0,0 +1,348 @@
1
+ <!-- START TOP AREA -->
2
+ <%= pb_rails("flex", props: {classname: "flex-container", spacing: "between", margin_top: "md", margin_x: "md" }) do %>
3
+ <%= pb_rails("flex/flex_item") do %>
4
+ <%= pb_rails("title", props: { text: "Prospective Clients", tag: "h3", size: 3 }) %>
5
+ <% end %>
6
+ <%= pb_rails("flex/flex_item") do %>
7
+ <%= pb_rails("button", props: { text: "Add Client" }) %>
8
+ <% end %>
9
+ <% end %>
10
+ <!-- END TOP AREA -->
11
+
12
+ <!-- START FILTER -->
13
+ <%= pb_rails("filter", props: {
14
+ id:"2",
15
+ filters: [
16
+ {name: "start date", value: "Aug 01, 2020"},
17
+ {name: "end date", value: "Aug 03, 2020"}
18
+
19
+ ],
20
+ sort_menu: [
21
+ {item:"Date Created", link:"#", active: true, direction:"desc"},
22
+ {item:"Assignee", link:"#", active: false},
23
+ {item:"Contact", link:"#", active: false},
24
+ {item:"Inquiry Source", link:"#", active: false},
25
+
26
+ ],
27
+ results: 546,
28
+ template: "single",
29
+ margin_y: "md",
30
+ margin_x: "md"
31
+ }) do%>
32
+ <%
33
+ example_collection = [
34
+ OpenStruct.new(name: "Alabama", value: 1),
35
+ OpenStruct.new(name: "Alaska", value: 2),
36
+ OpenStruct.new(name: "Arizona", value: 3),
37
+ OpenStruct.new(name: "Arkansas", value: 4),
38
+ OpenStruct.new(name: "California", value: 5),
39
+ OpenStruct.new(name: "Colorado", value: 6),
40
+ OpenStruct.new(name: "Connecticut", value: 7),
41
+ OpenStruct.new(name: "Delaware", value: 8),
42
+ OpenStruct.new(name: "Florida", value: 9),
43
+ OpenStruct.new(name: "Georgia", value: 10),
44
+ ]
45
+ %>
46
+
47
+ <%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
48
+
49
+ <%= pb_rails("flex") do %>
50
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
51
+ <%= pb_rails("text_input", props: { label: "Start Date", value: "Aug 01, 2020", margin_right: "sm" }) %>
52
+ <% end %>
53
+ <%= pb_rails("body", props: {classname: "flex-item"}) do %>
54
+ <%= pb_rails("text_input", props: { label: "End Date", value: "Aug 3, 2020" }) %>
55
+ <% end %>
56
+ <% end %>
57
+
58
+ <%= form.actions do |action| %>
59
+
60
+ <%= pb_rails("flex", props: {classname: "flex-container", spacing: "between"}) do %>
61
+ <%= pb_rails("flex/flex_item") do %>
62
+ <%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
63
+ <% end %>
64
+ <%= pb_rails("flex/flex_item") do %>
65
+ <%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
66
+ <% end %>
67
+ <% end %>
68
+
69
+
70
+ <% end %>
71
+ <% end %>
72
+
73
+ <% end %>
74
+ <!-- END FILTER -->
75
+
76
+ <!-- START TABlE -->
77
+
78
+ <%= pb_rails("flex", props: {orientation: "column", horizontal: "stretch", margin_x: "md"}) do %>
79
+ <%= pb_rails("table", props: { size: "sm" }) do %>
80
+ <thead>
81
+ <tr>
82
+ <th>Contact</th>
83
+ <th>Date Created</th>
84
+ <th>Inquiry Source</th>
85
+ <th>Lead Status</th>
86
+ <th>Quote</th>
87
+ <th>Assignee</th>
88
+ <th>Actions</th>
89
+ </tr>
90
+ </thead>
91
+ <tbody>
92
+ <tr>
93
+ <td>
94
+ <%= pb_rails("person_contact", props: {
95
+ first_name: "Jesse",
96
+ last_name: "Cortez",
97
+ contacts: [
98
+ {
99
+ contact_type: "cell",
100
+ contact_value: "3832919348"
101
+ },
102
+ {
103
+ contact_type: "email",
104
+ contact_value: "jesse.cortez@gmail.com"
105
+ }
106
+ ]
107
+ }) %>
108
+ </td>
109
+ <td>
110
+ <%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
111
+ </td>
112
+ <td>
113
+ <%= pb_rails("body", props: { text: "Email" }) %>
114
+ <%= pb_rails("caption", props: { text: "hello@companyname.com", size: 'xs' }) %>
115
+ </td>
116
+ <td>
117
+ <%= pb_rails("progress_pills", props: { steps: 4, active: 0, title:"Status:", value:"Not Started" }) %>
118
+ </td>
119
+ <td>
120
+ <%= pb_rails("currency", props: { amount: "729.63", size: "sm" }) %>
121
+ </td>
122
+ <td>
123
+ <%= pb_rails("body", props: { text: "Unassigned" }) %>
124
+ </td>
125
+ <td>
126
+ <%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
127
+ </td>
128
+ </tr>
129
+ <tr>
130
+ <td>
131
+ <%= pb_rails("person_contact", props: {
132
+ first_name: "Bill",
133
+ last_name: "Buchanan",
134
+ contacts: [
135
+ {
136
+ contact_type: "cell",
137
+ contact_value: "8313455824"
138
+ },
139
+ {
140
+ contact_type: "email",
141
+ contact_value: "billbuch@yahoo.com"
142
+ }
143
+ ]
144
+ }) %>
145
+ </td>
146
+ <td>
147
+ <%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
148
+ </td>
149
+ <td>
150
+ <%= pb_rails("body", props: { text: "Social Media" }) %>
151
+ <%= pb_rails("caption", props: { text: "Facebook", size: 'xs' }) %>
152
+ </td>
153
+ <td>
154
+ <%= pb_rails("progress_pills", props: { steps: 4, active: 3, title:"Status:", value:"Negotiation" }) %>
155
+ </td>
156
+ <td>
157
+ <%= pb_rails("currency", props: { amount: "534.40", size: "sm" }) %>
158
+ </td>
159
+ <td>
160
+ <%= pb_rails("user", props: {
161
+ name: "Anna Black",
162
+ title: "Project Coordinator",
163
+ orientation: "horizontal",
164
+ align: "left",
165
+ avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
166
+ }) %>
167
+ </td>
168
+ <td>
169
+ <%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
170
+ </td>
171
+ </tr>
172
+ <tr>
173
+ <td>
174
+ <%= pb_rails("person_contact", props: {
175
+ first_name: "Effie",
176
+ last_name: "Guzman",
177
+ contacts: [
178
+ {
179
+ contact_type: "cell",
180
+ contact_value: "1582430782"
181
+ },
182
+ {
183
+ contact_type: "email",
184
+ contact_value: "effieguzman@comcast.net"
185
+ }
186
+ ]
187
+ }) %>
188
+ </td>
189
+ <td>
190
+ <%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
191
+ </td>
192
+ <td>
193
+ <%= pb_rails("body", props: { text: "Online Quote" }) %>
194
+ <%= pb_rails("caption", props: { text: "Landing Page", size: 'xs' }) %>
195
+ </td>
196
+ <td>
197
+ <%= pb_rails("progress_pills", props: { steps: 4, active: 4, title:"Status:", value:"Contract" }) %>
198
+ </td>
199
+ <td>
200
+ <%= pb_rails("currency", props: { amount: "392.26", size: "sm" }) %>
201
+ </td>
202
+ <td>
203
+ <%= pb_rails("user", props: {
204
+ name: "Anna Black",
205
+ title: "Project Coordinator",
206
+ orientation: "horizontal",
207
+ align: "left",
208
+ avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
209
+ }) %>
210
+ </td>
211
+ <td>
212
+ <%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
213
+ </td>
214
+ </tr>
215
+ <tr>
216
+ <td>
217
+ <%= pb_rails("person_contact", props: {
218
+ first_name: "Rodney",
219
+ last_name: "Boone",
220
+ contacts: [
221
+ {
222
+ contact_type: "cell",
223
+ contact_value: "3859275970"
224
+ },
225
+ {
226
+ contact_type: "email",
227
+ contact_value: "rodneyboone@gmail.com"
228
+ }
229
+ ]
230
+ }) %>
231
+ </td>
232
+ <td>
233
+ <%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
234
+ </td>
235
+ <td>
236
+ <%= pb_rails("body", props: { text: "Internal" }) %>
237
+ <%= pb_rails("caption", props: { text: "Referral", size: 'xs' }) %>
238
+ </td>
239
+ <td>
240
+ <%= pb_rails("progress_pills", props: { steps: 4, active: 4, title:"Status:", value:"Contract" }) %>
241
+ </td>
242
+ <td>
243
+ <%= pb_rails("currency", props: { amount: "342.86", size: "sm" }) %>
244
+ </td>
245
+ <td>
246
+ <%= pb_rails("user", props: {
247
+ name: "Anna Black",
248
+ title: "Project Coordinator",
249
+ orientation: "horizontal",
250
+ align: "left",
251
+ avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
252
+ }) %>
253
+ </td>
254
+ <td>
255
+ <%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
256
+ </td>
257
+ </tr>
258
+ <tr>
259
+ <td>
260
+ <%= pb_rails("person_contact", props: {
261
+ first_name: "Barbara",
262
+ last_name: "Maxwell",
263
+ contacts: [
264
+ {
265
+ contact_type: "cell",
266
+ contact_value: "2849186943"
267
+ },
268
+ {
269
+ contact_type: "email",
270
+ contact_value: "barbaramaxwell4@yahoo.com"
271
+ }
272
+ ]
273
+ }) %>
274
+ </td>
275
+ <td>
276
+ <%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
277
+ </td>
278
+ <td>
279
+ <%= pb_rails("body", props: { text: "Online Quote" }) %>
280
+ <%= pb_rails("caption", props: { text: "Main Website", size: 'xs' }) %>
281
+ </td>
282
+ <td>
283
+ <%= pb_rails("progress_pills", props: { steps: 4, active: 3, title:"Status:", value:"Negotiation" }) %>
284
+ </td>
285
+ <td>
286
+ <%= pb_rails("currency", props: { amount: "145.01", size: "sm" }) %>
287
+ </td>
288
+ <td>
289
+ <%= pb_rails("user", props: {
290
+ name: "Anna Black",
291
+ title: "Project Coordinator",
292
+ orientation: "horizontal",
293
+ align: "left",
294
+ avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
295
+ }) %>
296
+ </td>
297
+ <td>
298
+ <%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
299
+ </td>
300
+ </tr>
301
+ <tr>
302
+ <td>
303
+ <%= pb_rails("person_contact", props: {
304
+ first_name: "Ellen",
305
+ last_name: "Thornton",
306
+ contacts: [
307
+ {
308
+ contact_type: "cell",
309
+ contact_value: "6884927492"
310
+ },
311
+ {
312
+ contact_type: "email",
313
+ contact_value: "ellen.thornton@gmail.com"
314
+ }
315
+ ]
316
+ }) %>
317
+ </td>
318
+ <td>
319
+ <%= pb_rails("date", props: { date: "2012-08-02T15:49:29Z", size: "xs" }) %>
320
+ </td>
321
+ <td>
322
+ <%= pb_rails("body", props: { text: "Social Media" }) %>
323
+ <%= pb_rails("caption", props: { text: "Instagram", size: 'xs' }) %>
324
+ </td>
325
+ <td>
326
+ <%= pb_rails("progress_pills", props: { steps: 4, active: 3, title:"Status:", value:"Negotiation" }) %>
327
+ </td>
328
+ <td>
329
+ <%= pb_rails("currency", props: { amount: "25.27", size: "sm" }) %>
330
+ </td>
331
+ <td>
332
+ <%= pb_rails("user", props: {
333
+ name: "Anna Black",
334
+ title: "Project Coordinator",
335
+ orientation: "horizontal",
336
+ align: "left",
337
+ avatar_url: "https://randomuser.me/api/portraits/women/44.jpg"
338
+ }) %>
339
+ </td>
340
+ <td>
341
+ <%= pb_rails("circle_icon_button", props: { variant: "secondary", icon: "ellipsis-h" }) %>
342
+ </td>
343
+ </tr>
344
+ </tbody>
345
+ <% end %>
346
+ <% end %>
347
+
348
+ <!-- END TABLE -->