playbook_ui 14.12.0.pre.alpha.PBNTR456fixedconftoastrailsautoclose5757 → 14.12.0.pre.alpha.PBNTR779railsdraggablecrosscontainer5863

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +3 -4
  3. data/app/pb_kits/playbook/pb_advanced_table/index.js +9 -6
  4. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +8 -5
  5. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +9 -0
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +11 -7
  7. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +6 -7
  8. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +9 -3
  9. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +6 -2
  10. data/app/pb_kits/playbook/pb_button/button.rb +1 -1
  11. data/app/pb_kits/playbook/pb_date/_date.tsx +14 -4
  12. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +2 -1
  13. data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +13 -5
  14. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.html.erb +193 -0
  15. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +1 -0
  16. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -5
  17. data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +2 -2
  18. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +3 -0
  19. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +2 -0
  20. data/app/pb_kits/playbook/pb_draggable/index.js +88 -16
  21. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -6
  22. data/app/pb_kits/playbook/pb_filter/filter.html.erb +1 -5
  23. data/app/pb_kits/playbook/pb_form_group/form_group.html.erb +1 -6
  24. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
  25. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +11 -7
  26. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.html.erb +11 -0
  27. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.jsx +22 -0
  28. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_rails.md +1 -0
  29. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_react.md +1 -0
  30. data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +2 -0
  31. data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +1 -0
  32. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +11 -2
  33. data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.html.erb +6 -9
  34. data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.jsx +6 -9
  35. data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +26 -0
  36. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +0 -1
  37. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +25 -0
  38. data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +25 -0
  39. data/app/pb_kits/playbook/pb_user/_user.tsx +3 -0
  40. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.html.erb +42 -0
  41. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.jsx +59 -0
  42. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.md +2 -0
  43. data/app/pb_kits/playbook/pb_user/docs/example.yml +2 -0
  44. data/app/pb_kits/playbook/pb_user/docs/index.js +1 -0
  45. data/app/pb_kits/playbook/pb_user/user.html.erb +1 -1
  46. data/app/pb_kits/playbook/pb_user/user.rb +1 -0
  47. data/app/pb_kits/playbook/pb_user/user.test.js +14 -0
  48. data/dist/chunks/{_typeahead-BIhRQo8Q.js → _typeahead-W0hatdPs.js} +2 -2
  49. data/dist/chunks/_weekday_stacked-C98LOqgG.js +45 -0
  50. data/dist/chunks/vendor.js +1 -1
  51. data/dist/playbook-doc.js +1 -1
  52. data/dist/playbook-rails-react-bindings.js +1 -1
  53. data/dist/playbook-rails.js +1 -1
  54. data/dist/playbook.css +1 -1
  55. data/lib/playbook/version.rb +1 -1
  56. metadata +13 -4
  57. data/dist/chunks/_weekday_stacked-VKMYuo6-.js +0 -45
@@ -1,18 +1,14 @@
1
1
  examples:
2
-
3
-
4
2
  react:
5
3
  - draggable_default: Default
6
4
  - draggable_with_list: Draggable with List Kit
7
5
  - draggable_with_selectable_list: Draggable with SelectableList Kit
8
6
  - draggable_with_cards: Draggable with Cards
9
7
  - draggable_multiple_containers: Dragging Across Multiple Containers
10
-
11
8
  rails:
12
9
  - draggable_default_rails: Default
13
10
  - draggable_with_list_rails: Draggable with List Kit
14
11
  - draggable_with_selectable_list_rails: Draggable with SelectableList Kit
15
12
  - draggable_with_cards_rails: Draggable with Cards
13
+ - draggable_multiple_containers_rails: Dragging Across Multiple Containers
16
14
 
17
-
18
-
@@ -1,3 +1,3 @@
1
1
  <%= pb_content_tag do %>
2
- <%= content.presence %>
3
- <% end %>
2
+ <%= content.presence %>
3
+ <% end %>
@@ -3,6 +3,9 @@
3
3
  module Playbook
4
4
  module PbDraggable
5
5
  class DraggableContainer < ::Playbook::KitBase
6
+ prop :container, type: Playbook::Props::String,
7
+ default: ""
8
+
6
9
  def data
7
10
  Hash(prop(:data)).merge(pb_draggable_container: true)
8
11
  end
@@ -5,6 +5,8 @@ module Playbook
5
5
  class DraggableItem < ::Playbook::KitBase
6
6
  prop :drag_id, type: Playbook::Props::String,
7
7
  default: ""
8
+ prop :container, type: Playbook::Props::String,
9
+ default: ""
8
10
 
9
11
  def data
10
12
  Hash(prop(:data)).merge(pb_draggable_item: true)
@@ -9,11 +9,32 @@ 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
+
12
19
  this.draggedItem = null;
13
20
  this.draggedItemId = null;
21
+
14
22
  document.addEventListener("DOMContentLoaded", () => this.bindEventListeners());
15
23
  }
16
24
 
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
+
17
38
  bindEventListeners() {
18
39
  // Needed to prevent images within draggable items from being independently draggable
19
40
  // Needed if using Image kit in draggable items
@@ -27,11 +48,11 @@ export default class PbDraggable extends PbEnhancedElement {
27
48
  item.addEventListener("dragenter", this.handleDragEnter.bind(this));
28
49
  });
29
50
 
30
- const container = this.element.querySelector(DRAGGABLE_CONTAINER);
31
- if (container) {
51
+ const containers = this.element.querySelectorAll(DRAGGABLE_CONTAINER);
52
+ containers.forEach(container => {
32
53
  container.addEventListener("dragover", this.handleDragOver.bind(this));
33
54
  container.addEventListener("drop", this.handleDrop.bind(this));
34
- }
55
+ });
35
56
  }
36
57
 
37
58
  handleDragStart(event) {
@@ -41,11 +62,17 @@ export default class PbDraggable extends PbEnhancedElement {
41
62
  event.preventDefault();
42
63
  return;
43
64
  }
44
-
65
+
66
+ const container = event.target.closest(DRAGGABLE_CONTAINER);
45
67
  this.draggedItem = event.target;
46
68
  this.draggedItemId = event.target.id;
47
- event.target.classList.add("is_dragging");
48
69
 
70
+ this.setState({
71
+ dragData: { id: this.draggedItemId, initialGroup: container.id },
72
+ isDragging: this.draggedItemId
73
+ });
74
+
75
+ event.target.classList.add("is_dragging");
49
76
  if (event.dataTransfer) {
50
77
  event.dataTransfer.effectAllowed = 'move';
51
78
  event.dataTransfer.setData('text/plain', this.draggedItemId);
@@ -64,6 +91,14 @@ export default class PbDraggable extends PbEnhancedElement {
64
91
 
65
92
  const container = targetItem.parentNode;
66
93
  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
+
67
102
  const draggedIndex = items.indexOf(this.draggedItem);
68
103
  const targetIndex = items.indexOf(targetItem);
69
104
 
@@ -76,45 +111,82 @@ export default class PbDraggable extends PbEnhancedElement {
76
111
 
77
112
  handleDragOver(event) {
78
113
  event.preventDefault();
79
- const container = event.target.closest(DRAGGABLE_CONTAINER);
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
+ }
80
122
 
81
123
  if (container) {
124
+ this.setState({ activeContainer: container.id });
82
125
  container.classList.add("active_container");
83
126
  }
84
127
  }
85
128
 
86
129
  handleDrop(event) {
87
130
  event.preventDefault();
88
- const container = event.target.closest(DRAGGABLE_CONTAINER);
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
+
89
141
  if (!container || !this.draggedItem) return;
90
-
142
+
91
143
  container.classList.remove("active_container");
92
144
  this.draggedItem.style.opacity = '1';
93
-
145
+
146
+ // Handle empty containers
147
+ if (!container.querySelector('.pb_draggable_item')) {
148
+ container.appendChild(this.draggedItem);
149
+ }
150
+
94
151
  // Updated order of items as an array of item IDs
95
- const reorderedItems = Array.from(container.children)
96
- .filter(item => item.classList.contains("pb_draggable_item"))
97
- .map(item => item.id.replace("item_", ""));
98
-
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
+
99
159
  // Store reordered items in a data attribute on the container
100
160
  container.setAttribute("data-reordered-items", JSON.stringify(reorderedItems));
101
-
161
+
102
162
  const customEvent = new CustomEvent('pb-draggable-reorder', {
103
163
  detail: {
104
164
  reorderedItems,
105
165
  containerId: container.id,
106
166
  }
107
167
  });
168
+
108
169
  this.element.dispatchEvent(customEvent);
109
-
170
+
171
+ this.setState({
172
+ items: reorderedItems, // Changed from reorderedItems to items to match setState
173
+ isDragging: "",
174
+ activeContainer: ""
175
+ });
176
+
110
177
  this.draggedItem = null;
111
178
  this.draggedItemId = null;
112
179
  }
113
-
114
180
 
115
181
  handleDragEnd(event) {
116
182
  event.target.classList.remove("is_dragging");
117
183
  event.target.style.opacity = '1';
184
+
185
+ this.setState({
186
+ isDragging: "",
187
+ activeContainer: ""
188
+ });
189
+
118
190
  this.draggedItem = null;
119
191
  this.draggedItemId = null;
120
192
 
@@ -1,9 +1,4 @@
1
- <%= content_tag("div",
2
- aria: object.aria,
3
- class: object.classname,
4
- data: object.data,
5
- id: object.id,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag(:div) do %>
7
2
  <%= pb_rails("form_group", props: {cursor: "pointer", full_width: object.full_width}) do %>
8
3
  <label
9
4
  for="upload-<%= object.id %>"
@@ -1,8 +1,4 @@
1
- <%= content_tag(:div,
2
- id: object.id,
3
- data: object.data,
4
- class: object.classname,
5
- **combined_html_options) do %>
1
+ <%= pb_content_tag(:div) do %>
6
2
  <%= object.wrapper do %>
7
3
  <%= pb_rails("flex", props: { orientation: "row", padding_right: "lg", vertical: "center" }) do %>
8
4
  <% if (object.template != "sort_only") %>
@@ -1,8 +1,3 @@
1
- <%= content_tag(:div,
2
- aria: object.aria,
3
- class: object.classname,
4
- data: object.data,
5
- id: object.id,
6
- **combined_html_options) do %>
1
+ <%= pb_content_tag(:div) do %>
7
2
  <%= content.presence %>
8
3
  <% end %>
@@ -1,4 +1,4 @@
1
- <%= content_tag(:div, id: object.id, data: object.data, class: object.classname + object.size_class, tabindex: object.tabindex, **combined_html_options) do %>
1
+ <%= pb_content_tag(:div, class: object.classname + object.size_class, tabindex: object.tabindex) do %>
2
2
  <% if object.name.present? %>
3
3
  <%= pb_rails("avatar", props: { name: object.name, image_url: object.avatar_url, size: "xxs" }) %>
4
4
  <% if object.truncate %>
@@ -18,6 +18,7 @@ type HomeAddressStreetProps = {
18
18
  className?: string,
19
19
  data?: { [key: string]: string },
20
20
  dark?: boolean,
21
+ preserveCase?: boolean,
21
22
  emphasis: "street" | "city" | "none",
22
23
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
23
24
  homeId: string,
@@ -43,6 +44,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
43
44
  htmlOptions = {},
44
45
  homeId,
45
46
  homeUrl,
47
+ preserveCase = false,
46
48
  target,
47
49
  newWindow,
48
50
  houseStyle,
@@ -77,6 +79,8 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
77
79
  return null
78
80
  }
79
81
 
82
+ const formatStreetAdr = (address: string): string => preserveCase ? address : titleize(address)
83
+
80
84
  return (
81
85
  <div
82
86
  className={classes(className, dark)}
@@ -91,7 +95,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
91
95
  dark={dark}
92
96
  size={4}
93
97
  >
94
- {joinPresent([titleize(address), houseStyle], ' · ')}
98
+ {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
95
99
  </Title>
96
100
  <Title
97
101
  className="pb_home_address_street_address"
@@ -101,14 +105,14 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
101
105
  {titleize(addressCont)}
102
106
  </Title>
103
107
  <Body color="light">
104
- {`${titleize(city)}, ${state} ${zipcode}`}
108
+ {`${titleize(city)}, ${state.toUpperCase()} ${zipcode}`}
105
109
  </Body>
106
110
  </div>
107
111
  }
108
112
  {emphasis == 'city' &&
109
113
  <div>
110
114
  <Body color="light">
111
- {joinPresent([titleize(address), houseStyle], ' · ')}
115
+ {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
112
116
  </Body>
113
117
  <Body color="light">{titleize(addressCont)}</Body>
114
118
  <div>
@@ -118,7 +122,7 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
118
122
  size={4}
119
123
  tag="span"
120
124
  >
121
- {`${titleize(city)}, ${state}`}
125
+ {`${titleize(city)}, ${state.toUpperCase()}`}
122
126
  </Title>
123
127
  <Body
124
128
  color="light"
@@ -132,15 +136,15 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
132
136
  {emphasis == 'none' &&
133
137
  <div>
134
138
  <Body dark={dark}>
135
- {joinPresent([titleize(address), houseStyle], ' · ')}
139
+ {joinPresent([formatStreetAdr(address), houseStyle], ' · ')}
136
140
  </Body>
137
- <Body dark={dark}>{titleize(addressCont)}</Body>
141
+ <Body dark={dark}>{formatStreetAdr(addressCont)}</Body>
138
142
  <div>
139
143
  <Body
140
144
  color="light"
141
145
  dark={dark}
142
146
  >
143
- {`${titleize(city)}, ${state} ${zipcode}`}
147
+ {`${titleize(city)}, ${state.toUpperCase()} ${zipcode}`}
144
148
  </Body>
145
149
  </div>
146
150
  </div>
@@ -0,0 +1,11 @@
1
+ <%= pb_rails("home_address_street", props: {
2
+ address: "70 pRoSpEcT ave",
3
+ address_cont: "Apt M18",
4
+ city: "West Chester",
5
+ home_id: 8250263,
6
+ home_url: "https://powerhrg.com/",
7
+ preserve_case: true,
8
+ state: "pa",
9
+ zipcode: "19382",
10
+ territory: "PHL",
11
+ }) %>
@@ -0,0 +1,22 @@
1
+ import React from 'react'
2
+
3
+ import HomeAddressStreet from '../_home_address_street'
4
+
5
+ const HomeAddressStreetFormatting = (props) => {
6
+ return (
7
+ <HomeAddressStreet
8
+ address="70 pRoSpEcT ave"
9
+ addressCont="Apt M18"
10
+ city="West Chester"
11
+ homeId="8250263"
12
+ homeUrl="https://powerhrg.com/"
13
+ preserveCase
14
+ state="pa"
15
+ territory="PHL"
16
+ zipcode="19382"
17
+ {...props}
18
+ />
19
+ )
20
+ }
21
+
22
+ export default HomeAddressStreetFormatting
@@ -0,0 +1 @@
1
+ The `state` prop will always capitalize the state name, even if the data entered is in lowercase. For example, when `state="pa"` is passed, it will be rendered as "PA". When you pass `preserve_case: true`, the street address will be rendered exactly as entered, without automatic title capitalization.
@@ -0,0 +1 @@
1
+ The `state` prop will always capitalize the state name, even if the data entered is in lowercase. For example, when `state="pa"` is passed, it will be rendered as "PA". When you pass `preserveCase`, the street address will be rendered exactly as entered, without automatic title capitalization.
@@ -5,12 +5,14 @@ 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
8
9
 
9
10
  react:
10
11
  - home_address_street_default: Default
11
12
  - home_address_street_emphasis: Emphasis
12
13
  - home_address_street_modified: Modified
13
14
  - home_address_street_link: Link
15
+ - home_address_street_formatting: Formatting
14
16
 
15
17
  swift:
16
18
  - home_address_street_default_swift: Default
@@ -2,3 +2,4 @@ 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,6 +18,7 @@ module Playbook
18
18
  prop :state
19
19
  prop :zipcode
20
20
  prop :territory
21
+ prop :preserve_case, default: false
21
22
  prop :dark, type: Playbook::Props::Boolean, default: false
22
23
 
23
24
  def classname
@@ -29,7 +30,7 @@ module Playbook
29
30
  end
30
31
 
31
32
  def city_state
32
- [city&.titleize, state].join(", ")
33
+ [city&.titleize, state&.upcase].join(", ")
33
34
  end
34
35
 
35
36
  def zip
@@ -37,7 +38,7 @@ module Playbook
37
38
  end
38
39
 
39
40
  def address_house_style
40
- [address&.titleize, house_style].join(separator)
41
+ [format_street_address, house_style].join(separator)
41
42
  end
42
43
 
43
44
  def address_house_style2
@@ -48,6 +49,14 @@ module Playbook
48
49
  house_style ? " \u00b7 " : ""
49
50
  end
50
51
 
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
+
51
60
  def city_emphasis_props
52
61
  {
53
62
  address_house_style: address_house_style,
@@ -39,20 +39,17 @@
39
39
  </tr>
40
40
  </tbody>
41
41
  <% end %>
42
-
43
42
  <%= pb_rails("table", props: { size: "sm", margin_bottom: "lg" }) do %>
44
43
  <colgroup>
45
44
  <%= pb_rails("background", props: { background_color: "error_subtle", tag: "col" }) %>
46
- <%= pb_rails("background", props: { background_color: "card_light", tag: "col" }) %>
45
+ <%= pb_rails("background", props: { background_color: "info_subtle", tag: "col" }) %>
47
46
  <%= pb_rails("background", props: { background_color: "warning_subtle", tag: "col" }) %>
48
47
  </colgroup>
49
- <%= pb_rails("background", props: { background_color: "card_light", tag: "thead" }) do %>
50
- <tr>
51
- <th>Column 1</th>
52
- <th>Column 2</th>
53
- <th>Column 3</th>
54
- </tr>
55
- <% end %>
48
+ <thead>
49
+ <th>Column 1</th>
50
+ <th>Column 2</th>
51
+ <th>Column 3</th>
52
+ </thead>
56
53
  <tbody>
57
54
  <tr>
58
55
  <td>Value 1</td>
@@ -68,7 +68,7 @@ const TableWithBackgroundKit = (props) => {
68
68
  tag='col'
69
69
  />
70
70
  <Background
71
- backgroundColor="card_light"
71
+ backgroundColor="info_subtle"
72
72
  tag='col'
73
73
  />
74
74
  <Background
@@ -76,16 +76,13 @@ const TableWithBackgroundKit = (props) => {
76
76
  tag='col'
77
77
  />
78
78
  </colgroup>
79
- <Background
80
- backgroundColor="card_light"
81
- tag='thead'
82
- >
79
+ <thead>
83
80
  <tr>
84
- <th>{'Column 1'}</th>
85
- <th>{'Column 2'}</th>
86
- <th>{'Column 3'}</th>
81
+ <th>{'Column 1'}</th>
82
+ <th>{'Column 2'}</th>
83
+ <th>{'Column 3'}</th>
87
84
  </tr>
88
- </Background>
85
+ </thead>
89
86
  <tbody>
90
87
  <tr>
91
88
  <td>{'Value 1'}</td>
@@ -74,6 +74,31 @@
74
74
  &.table-card {
75
75
  background: none !important;
76
76
 
77
+ &.dark {
78
+ tbody, .pb_table_tbody {
79
+ tr, .pb_table_tr {
80
+ td, .pb_table_td {
81
+ background: $bg_dark_card !important;
82
+ border-color: $border_dark !important;
83
+ &:before {
84
+ color: $text_dk_light !important;
85
+ }
86
+ &:after {
87
+ height: 0;
88
+ background-color: transparent;
89
+ }
90
+
91
+ &:first-child {
92
+ border-radius: $border_rad_light $border_rad_light 0 0 !important;
93
+ }
94
+ &:last-child {
95
+ border-radius: 0 0 $border_rad_light $border_rad_light !important;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+
77
102
  tbody, .pb_table_tbody {
78
103
  tr, .pb_table_tr {
79
104
  td, .pb_table_td {
@@ -81,6 +106,7 @@
81
106
  border-left-width: 1px !important;
82
107
  border-right-width: 1px !important;
83
108
  border-top-width: 1px !important;
109
+
84
110
  &:after {
85
111
  height: 0;
86
112
  background-color: transparent;
@@ -77,7 +77,6 @@
77
77
  tbody, .pb_table_tbody {
78
78
  tr, .pb_table_tr {
79
79
  td, .pb_table_td {
80
- background: $white !important;
81
80
  border-left-width: 1px !important;
82
81
  border-right-width: 1px !important;
83
82
  border-top-width: 1px !important;
@@ -74,6 +74,31 @@
74
74
  &.table-card {
75
75
  background: none !important;
76
76
 
77
+ &.dark {
78
+ tbody, .pb_table_tbody {
79
+ tr, .pb_table_tr {
80
+ td, .pb_table_td {
81
+ background: $bg_dark_card !important;
82
+ border-color: $border_dark !important;
83
+ &:before {
84
+ color: $text_dk_light !important;
85
+ }
86
+ &:after {
87
+ height: 0;
88
+ background-color: transparent;
89
+ }
90
+
91
+ &:first-child {
92
+ border-radius: $border_rad_light $border_rad_light 0 0 !important;
93
+ }
94
+ &:last-child {
95
+ border-radius: 0 0 $border_rad_light $border_rad_light !important;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+
77
102
  tbody, .pb_table_tbody {
78
103
  tr, .pb_table_tr {
79
104
  td, .pb_table_td {
@@ -74,6 +74,31 @@
74
74
  &.table-card {
75
75
  background: none !important;
76
76
 
77
+ &.dark {
78
+ tbody, .pb_table_tbody {
79
+ tr, .pb_table_tr {
80
+ td, .pb_table_td {
81
+ background: $bg_dark_card !important;
82
+ border-color: $border_dark !important;
83
+ &:before {
84
+ color: $text_dk_light !important;
85
+ }
86
+ &:after {
87
+ height: 0;
88
+ background-color: transparent;
89
+ }
90
+
91
+ &:first-child {
92
+ border-radius: $border_rad_light $border_rad_light 0 0 !important;
93
+ }
94
+ &:last-child {
95
+ border-radius: 0 0 $border_rad_light $border_rad_light !important;
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+
77
102
  tbody, .pb_table_tbody {
78
103
  tr, .pb_table_tr {
79
104
  td, .pb_table_td {
@@ -13,6 +13,7 @@ type UserProps = {
13
13
  aria?: {[key: string]: string},
14
14
  avatar?: boolean,
15
15
  avatarUrl?: string,
16
+ bold?: boolean,
16
17
  className?: string,
17
18
  dark?: boolean,
18
19
  data?: {[key: string]: string},
@@ -32,6 +33,7 @@ const User = (props: UserProps): React.ReactElement => {
32
33
  aria = {},
33
34
  avatar = false,
34
35
  avatarUrl,
36
+ bold = true,
35
37
  className,
36
38
  dark = false,
37
39
  data = {},
@@ -75,6 +77,7 @@ const User = (props: UserProps): React.ReactElement => {
75
77
  }
76
78
  <div className="content_wrapper">
77
79
  <Title
80
+ bold={bold}
78
81
  dark={dark}
79
82
  size={size == 'lg' ? 3 : 4}
80
83
  text={name}