playbook_ui 14.9.0.pre.alpha.PBNTR746datepickerdefaultbug4903 → 14.9.0.pre.alpha.PBNTR767advancedtablemultiheadercolumns5136

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/CollapsibleTrail.tsx +1 -6
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +32 -19
  4. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +3 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +48 -3
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +33 -19
  7. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +2 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +36 -0
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.md +1 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers.jsx +60 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers.md +1 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.jsx +74 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_multiple.md +1 -0
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
  16. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +4 -2
  17. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +8 -0
  18. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -0
  19. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +8 -0
  20. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.rb +2 -0
  21. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +53 -49
  22. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom_rails.html.erb +29 -36
  23. data/app/pb_kits/playbook/pb_card/_card.tsx +7 -7
  24. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -1
  25. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +21 -1
  26. data/app/pb_kits/playbook/pb_card/docs/_card_header.jsx +50 -0
  27. data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -1
  28. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +9 -4
  29. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +2 -2
  30. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +2 -2
  31. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +2 -4
  32. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +2 -2
  33. data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +57 -0
  34. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +11 -2
  35. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +31 -1
  36. data/app/pb_kits/playbook/pb_gauge/_gauge.tsx +3 -3
  37. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +25 -5
  38. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +17 -1
  39. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_emphasis.html.erb +17 -1
  40. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_emphasis.jsx +15 -0
  41. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_emphasis.md +2 -1
  42. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +15 -1
  43. data/app/pb_kits/playbook/pb_home_address_street/none_emphasis.html.erb +32 -0
  44. data/app/pb_kits/playbook/pb_home_address_street/none_emphasis.rb +29 -0
  45. data/app/pb_kits/playbook/pb_layout/_layout.tsx +30 -11
  46. data/app/pb_kits/playbook/pb_link/_link.scss +3 -3
  47. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_filter.jsx +166 -0
  48. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_height_width.jsx +2 -0
  49. data/app/pb_kits/playbook/pb_skeleton_loading/docs/_skeleton_loading_user.jsx +89 -0
  50. data/app/pb_kits/playbook/pb_skeleton_loading/docs/example.yml +2 -1
  51. data/app/pb_kits/playbook/pb_skeleton_loading/docs/index.js +2 -0
  52. data/app/pb_kits/playbook/pb_table/_table.tsx +6 -6
  53. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.html.erb +30 -48
  54. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns_rails.md +1 -0
  55. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +75 -0
  56. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.md +1 -0
  57. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx +108 -0
  58. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.md +2 -0
  59. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx +94 -0
  60. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.md +0 -0
  61. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.jsx +83 -0
  62. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.md +3 -0
  63. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.jsx +120 -0
  64. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md +1 -0
  65. data/app/pb_kits/playbook/pb_table/docs/example.yml +7 -0
  66. data/app/pb_kits/playbook/pb_table/docs/index.js +5 -0
  67. data/app/pb_kits/playbook/pb_table/index.ts +5 -3
  68. data/app/pb_kits/playbook/pb_table/styles/_all.scss +2 -1
  69. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +35 -0
  70. data/app/pb_kits/playbook/pb_table/styles/_scroll.scss +28 -3
  71. data/app/pb_kits/playbook/pb_table/styles/_sticky_columns.scss +0 -1
  72. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +106 -1
  73. data/app/pb_kits/playbook/pb_table/table.html.erb +7 -1
  74. data/app/pb_kits/playbook/pb_table/table.rb +4 -0
  75. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +35 -3
  76. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.jsx +88 -0
  77. data/app/pb_kits/playbook/pb_text_input/docs/example.yml +1 -0
  78. data/app/pb_kits/playbook/pb_text_input/docs/index.js +1 -0
  79. data/app/pb_kits/playbook/pb_text_input/inputMask.ts +64 -0
  80. data/app/pb_kits/playbook/pb_text_input/text_input.test.js +139 -2
  81. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +115 -46
  82. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_highlight.jsx +9 -2
  83. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +3 -2
  84. data/dist/chunks/_typeahead-C63YYbKQ.js +22 -0
  85. data/dist/chunks/_weekday_stacked-CPOjyT4z.js +45 -0
  86. data/dist/chunks/lib-sMFo2JZy.js +29 -0
  87. data/dist/chunks/{pb_form_validation-DXJs12Hd.js → pb_form_validation-CgvjWbOK.js} +1 -1
  88. data/dist/chunks/vendor.js +1 -1
  89. data/dist/menu.yml +1 -1
  90. data/dist/playbook-doc.js +1 -1
  91. data/dist/playbook-rails-react-bindings.js +1 -1
  92. data/dist/playbook-rails.js +1 -1
  93. data/dist/playbook.css +1 -1
  94. data/lib/playbook/version.rb +1 -1
  95. metadata +31 -6
  96. data/dist/chunks/_typeahead-8iXlv4ii.js +0 -22
  97. data/dist/chunks/_weekday_stacked-QiMNKnzf.js +0 -45
  98. data/dist/chunks/lib-orI4wF5u.js +0 -29
@@ -17,47 +17,60 @@ const GaugeComplex = (props) => (
17
17
  gap="sm"
18
18
  padding="xl"
19
19
  wrap
20
+ {...props}
20
21
  >
21
22
  <FlexItem
22
23
  flex={1}
23
24
  grow
25
+ {...props}
24
26
  >
25
27
  <Card
26
28
  maxWidth="xs"
27
29
  padding="md"
30
+ {...props}
28
31
  >
29
32
  <Title
30
33
  paddingBottom="sm"
31
34
  size={4}
32
35
  text="Abandoned Calls"
36
+ {...props}
33
37
  />
34
- <Flex align="stretch">
38
+ <Flex
39
+ align="stretch"
40
+ {...props}
41
+ >
35
42
  <Flex
36
43
  marginRight="sm"
37
44
  orientation="column"
45
+ {...props}
38
46
  >
39
47
  <Body
40
48
  color="light"
41
49
  paddingBottom="sm"
42
50
  text="Total Abandoned"
51
+ {...props}
43
52
  />
44
53
  <Flex
45
54
  align="baseline"
46
55
  paddingBottom="xs"
56
+ {...props}
47
57
  >
48
58
  <Title
49
59
  size={1}
50
60
  text="39"
61
+ {...props}
51
62
  />
52
63
  <Title
53
64
  color="light"
54
65
  size={3}
55
66
  text="calls"
67
+ {...props}
56
68
  />
57
69
  </Flex>
58
70
  <Caption
59
71
  size="xs"
60
72
  text="of 390"
73
+ {...props}
61
74
  />
62
75
  </Flex>
63
76
 
@@ -65,22 +78,29 @@ const GaugeComplex = (props) => (
65
78
  alignSelf="stretch"
66
79
  marginRight="sm"
67
80
  orientation="vertical"
81
+ {...props}
68
82
  />
69
83
 
70
84
  <Flex
71
85
  orientation="column"
72
86
  wrap
87
+ {...props}
73
88
  >
74
89
  <Body
75
90
  color="light"
76
91
  text="% Abandoned"
77
- />
78
- <Flex wrap>
92
+ {...props}
93
+ />
94
+ <Flex
95
+ wrap
96
+ {...props}
97
+ >
79
98
  <FlexItem
80
99
  fixedSize="150px"
81
100
  overflow="hidden"
82
101
  shrink
83
- >
102
+ {...props}
103
+ >
84
104
  <Gauge
85
105
  chartData={data}
86
106
  disableAnimation
@@ -90,7 +110,7 @@ const GaugeComplex = (props) => (
90
110
  {...props}
91
111
  />
92
112
  </FlexItem>
93
- </Flex>
113
+ </Flex>
94
114
  </Flex>
95
115
  </Flex>
96
116
  </Card>
@@ -18,7 +18,7 @@ type HomeAddressStreetProps = {
18
18
  className?: string,
19
19
  data?: { [key: string]: string },
20
20
  dark?: boolean,
21
- emphasis: "street" | "city",
21
+ emphasis: "street" | "city" | "none",
22
22
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
23
23
  homeId: string,
24
24
  houseStyle: string,
@@ -129,6 +129,22 @@ const HomeAddressStreet = (props: HomeAddressStreetProps): React.ReactElement =>
129
129
  </div>
130
130
  </div>
131
131
  }
132
+ {emphasis == 'none' &&
133
+ <div>
134
+ <Body dark={dark}>
135
+ {joinPresent([titleize(address), houseStyle], ' · ')}
136
+ </Body>
137
+ <Body dark={dark}>{titleize(addressCont)}</Body>
138
+ <div>
139
+ <Body
140
+ color="light"
141
+ dark={dark}
142
+ >
143
+ {`${titleize(city)}, ${state} ${zipcode}`}
144
+ </Body>
145
+ </div>
146
+ </div>
147
+ }
132
148
  {homeId &&
133
149
  <Hashtag
134
150
  classname="home-hashtag"
@@ -24,4 +24,20 @@
24
24
  state: "PA",
25
25
  zipcode: "19382",
26
26
  territory: "PHL",
27
- }) %>
27
+ }) %>
28
+
29
+ <br>
30
+ <br>
31
+
32
+ <%= pb_rails("home_address_street", props: {
33
+ address: "70 Prospect Ave",
34
+ address_cont: "Apt M18",
35
+ city: "West Chester",
36
+ emphasis: "none",
37
+ home_id: 8250263,
38
+ home_url: "https://powerhrg.com/",
39
+ house_style: "Colonial",
40
+ state: "PA",
41
+ zipcode: "19382",
42
+ territory: "PHL",
43
+ }) %>
@@ -32,6 +32,21 @@ const HomeAddressStreetEmphasis = (props) => {
32
32
  zipcode="19382"
33
33
  {...props}
34
34
  />
35
+ <br />
36
+ <br />
37
+ <HomeAddressStreet
38
+ address="70 Prospect Ave"
39
+ addressCont="Apt M18"
40
+ city="West Chester"
41
+ emphasis="none"
42
+ homeId="8250263"
43
+ homeUrl="https://powerhrg.com/"
44
+ houseStyle="Colonial"
45
+ state="PA"
46
+ territory="PHL"
47
+ zipcode="19382"
48
+ {...props}
49
+ />
35
50
  </div>
36
51
  )
37
52
  }
@@ -1,2 +1,3 @@
1
1
  Emphasis on street happens by default. (no prop needed)
2
- Emphasis on "city" makes the city emphasized, rather than the street.
2
+ Emphasis on "city" makes the city emphasized, rather than the street.
3
+ Adding "none" to emphasis prop will provide no emphasis.
@@ -7,7 +7,7 @@ module Playbook
7
7
  prop :address_cont
8
8
  prop :city
9
9
  prop :emphasis, type: Playbook::Props::Enum,
10
- values: %w[street city],
10
+ values: %w[street city none],
11
11
  default: "street"
12
12
  prop :home_id, type: Playbook::Props::Number
13
13
  prop :home_url
@@ -77,6 +77,20 @@ module Playbook
77
77
  }
78
78
  end
79
79
 
80
+ def none_emphasis_props
81
+ {
82
+ address_house_style: address_house_style,
83
+ address_house_style2: address_house_style2,
84
+ city_state_zip: city_state_zip,
85
+ dark: dark,
86
+ home_id: home_id,
87
+ home_url: home_url,
88
+ target: target_option,
89
+ new_window: new_window,
90
+ territory: territory,
91
+ }
92
+ end
93
+
80
94
  def target_option
81
95
  if target && home_url
82
96
  target
@@ -0,0 +1,32 @@
1
+ <%= pb_rails "body", props: {
2
+ classname: "pb_home_address_street_address",
3
+ size: 4,
4
+ text: object.address_house_style,
5
+ dark: object.dark
6
+ } %>
7
+ <%= pb_rails "body", props: {
8
+ classname: "pb_home_address_street_address",
9
+ size: 4,
10
+ text: object.address_house_style2,
11
+ dark: object.dark
12
+ } %>
13
+ <%= pb_rails "body", props: {
14
+ color: "light",
15
+ text: object.city_state_zip,
16
+ dark: object.dark
17
+ } %>
18
+
19
+ <% if object.home_id %>
20
+ <%= pb_rails("hashtag", props: {
21
+ text: "#{object.home_id}",
22
+ url: object.home_url || "#",
23
+ type: "home",
24
+ dark: object.dark,
25
+ classname: "home-hashtag",
26
+ new_window: object.new_window,
27
+ target: object.target_option}) %>
28
+ <% end %>
29
+
30
+ <%= pb_rails "body", props: { color: "light", tag: "span", dark: object.dark } do %>
31
+ <small><%= object.territory %></small>
32
+ <% end %>
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbHomeAddressStreet
5
+ class NoneEmphasis < Playbook::KitBase
6
+ prop :address_house_style
7
+ prop :address_house_style2
8
+ prop :city_state_zip
9
+ prop :home_id, type: Playbook::Props::Number
10
+ prop :home_url
11
+ prop :new_window, type: Playbook::Props::Boolean,
12
+ default: false
13
+ prop :target
14
+ prop :territory
15
+ prop :dark, type: Playbook::Props::Boolean,
16
+ default: false
17
+
18
+ def target_option
19
+ if target && home_url
20
+ target
21
+ elsif new_window
22
+ "_blank"
23
+ else
24
+ "_self"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -24,34 +24,37 @@ type LayoutPropTypes = {
24
24
  type LayoutSideProps = {
25
25
  children: React.ReactNode[] | React.ReactNode,
26
26
  className?: string,
27
- }
27
+ } & GlobalProps
28
28
 
29
29
  type LayoutBodyProps = {
30
30
  children: React.ReactNode[] | React.ReactNode,
31
31
  className?: string,
32
- }
32
+ } & GlobalProps
33
33
 
34
34
  type LayoutItemProps = {
35
35
  children: React.ReactNode[] | React.ReactNode,
36
36
  className?: string,
37
37
  size?: "sm" | "md" | "lg"
38
- }
38
+ } & GlobalProps
39
39
 
40
40
  type LayoutHeaderProps = {
41
41
  children: React.ReactNode[] | React.ReactNode,
42
42
  className?: string,
43
- }
43
+ } & GlobalProps
44
44
 
45
45
  type LayoutFooterProps = {
46
46
  children: React.ReactNode[] | React.ReactNode,
47
47
  className?: string,
48
- }
48
+ } & GlobalProps
49
49
 
50
- // Side component
51
50
  const Side = (props: LayoutSideProps) => {
52
51
  const { children, className } = props
52
+ const dynamicInlineProps = globalInlineProps(props)
53
53
  return (
54
- <div className={classnames('layout_sidebar', globalProps(props), className)}>
54
+ <div
55
+ className={classnames('layout_sidebar', globalProps(props), className)}
56
+ style={dynamicInlineProps}
57
+ >
55
58
  {children}
56
59
  </div>
57
60
  )
@@ -60,8 +63,12 @@ const Side = (props: LayoutSideProps) => {
60
63
  // Body component
61
64
  const Body = (props: LayoutBodyProps) => {
62
65
  const { children, className } = props
66
+ const dynamicInlineProps = globalInlineProps(props)
63
67
  return (
64
- <div className={classnames('layout_body', globalProps(props), className)}>
68
+ <div
69
+ className={classnames('layout_body', globalProps(props), className)}
70
+ style={dynamicInlineProps}
71
+ >
65
72
  {children}
66
73
  </div>
67
74
  )
@@ -71,8 +78,12 @@ const Body = (props: LayoutBodyProps) => {
71
78
  const Item = (props: LayoutItemProps) => {
72
79
  const { children, className, size = 'sm' } = props
73
80
  const sizeClass = `size_${size}`
81
+ const dynamicInlineProps = globalInlineProps(props)
74
82
  return (
75
- <div className={classnames('layout_item', sizeClass, globalProps(props), className)}>
83
+ <div
84
+ className={classnames('layout_item', sizeClass, globalProps(props), className)}
85
+ style={dynamicInlineProps}
86
+ >
76
87
  {children}
77
88
  </div>
78
89
  )
@@ -81,8 +92,12 @@ const Item = (props: LayoutItemProps) => {
81
92
  // Header component
82
93
  const Header = (props: LayoutHeaderProps) => {
83
94
  const { children, className } = props
95
+ const dynamicInlineProps = globalInlineProps(props)
84
96
  return (
85
- <div className={classnames('layout_header', globalProps(props), className)}>
97
+ <div
98
+ className={classnames('layout_header', globalProps(props), className)}
99
+ style={dynamicInlineProps}
100
+ >
86
101
  {children}
87
102
  </div>
88
103
  )
@@ -91,8 +106,12 @@ const Header = (props: LayoutHeaderProps) => {
91
106
  // Footer component
92
107
  const Footer = (props: LayoutFooterProps) => {
93
108
  const { children, className } = props
109
+ const dynamicInlineProps = globalInlineProps(props)
94
110
  return (
95
- <div className={classnames('layout_footer', globalProps(props), className)}>
111
+ <div
112
+ className={classnames('layout_footer', globalProps(props), className)}
113
+ style={dynamicInlineProps}
114
+ >
96
115
  {children}
97
116
  </div>
98
117
  )
@@ -17,7 +17,7 @@
17
17
  outline-offset: 2px;
18
18
  }
19
19
  &:visited {
20
- color: $data_3;
20
+ color: darken($primary_action, 10%);
21
21
  }
22
22
  &.dark {
23
23
  @include pb_link($active_dark);
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  &:visited {
37
- color: $data_3;
37
+ color: darken($primary_action, 10%);
38
38
  }
39
39
  }
40
40
  }
@@ -48,7 +48,7 @@
48
48
  }
49
49
 
50
50
  &:visited {
51
- color: $data_3;
51
+ color: darken($primary_action, 10%);
52
52
  }
53
53
  }
54
54
  }
@@ -0,0 +1,166 @@
1
+ import React from 'react';
2
+ import { Button, Card, Filter, Flex, Select, SkeletonLoading, TextInput } from "playbook-ui";
3
+
4
+ const SortingChangeCallback = (sortOptions) => {
5
+ alert(JSON.stringify(sortOptions[0]))
6
+ }
7
+
8
+ const SkeletonLoadingFilter = (props) => {
9
+ const isLoading = true
10
+
11
+ const options = [
12
+ { value: 'USA' },
13
+ { value: 'Canada' },
14
+ { value: 'Brazil' },
15
+ { value: 'Philippines' },
16
+ { value: 'A galaxy far far away, like really far away...' },
17
+ ]
18
+
19
+ return (
20
+ <div>
21
+ <div>
22
+ {isLoading ? (
23
+ <Card
24
+ marginBottom="lg"
25
+ {...props}
26
+ >
27
+ <Flex
28
+ alignItems="center"
29
+ justify="between"
30
+ orientation="row"
31
+ >
32
+ <Flex
33
+ alignItems="center"
34
+ justify="start"
35
+ orientation="row"
36
+ >
37
+ <SkeletonLoading
38
+ borderRadius="rounded"
39
+ height="40px"
40
+ marginRight="sm"
41
+ width="40px"
42
+ {...props}
43
+ />
44
+ <SkeletonLoading
45
+ height="16px"
46
+ marginRight="md"
47
+ width="80px"
48
+ {...props}
49
+ />
50
+ </Flex>
51
+ <Flex
52
+ alignItems="center"
53
+ justify="end"
54
+ orientation="row"
55
+ >
56
+ <SkeletonLoading
57
+ height="18px"
58
+ width="120px"
59
+ {...props}
60
+ />
61
+ </Flex>
62
+ </Flex>
63
+ </Card>
64
+ ) : (
65
+ <Filter
66
+ filters={{ 'Full Name': 'John Wick' }}
67
+ marginBottom="lg"
68
+ minWidth="375px"
69
+ results={546}
70
+ sortOptions={{
71
+ popularity: 'Popularity',
72
+ // eslint-disable-next-line
73
+ manager_title: 'Manager\'s Title',
74
+ // eslint-disable-next-line
75
+ manager_name: 'Manager\'s Name',
76
+ }}
77
+ sortValue={[{ name: 'popularity', dir: 'desc' }]}
78
+ >
79
+ {({ closePopover }) => (
80
+ <form>
81
+ <TextInput
82
+ label="Example Text Field"
83
+ placeholder="Enter Text"
84
+ />
85
+ <Select
86
+ blankSelection="Select One..."
87
+ label="Example Collection Select"
88
+ name="Collection Select"
89
+ options={options}
90
+ />
91
+ <Flex spacing="between">
92
+ <Button
93
+ onClick={closePopover}
94
+ text="Filter"
95
+ />
96
+ <Button
97
+ text="Defaults"
98
+ variant="secondary"
99
+ />
100
+ </Flex>
101
+ </form>
102
+ )}
103
+ </Filter>
104
+ )}
105
+ </div>
106
+ <div>
107
+ {isLoading ? (
108
+ <SkeletonLoading
109
+ height="127px"
110
+ marginBottom="lg"
111
+ width="100%"
112
+ {...props}
113
+ />
114
+ ) : (
115
+ <Filter
116
+ double
117
+ filters={{
118
+ 'Full Name': 'John Wick',
119
+ 'City': 'San Francisco',
120
+ }}
121
+ marginBottom="xl"
122
+ minWidth="375px"
123
+ onSortChange={SortingChangeCallback}
124
+ results={1}
125
+ sortOptions={{
126
+ popularity: 'Popularity',
127
+ // eslint-disable-next-line
128
+ manager_title: 'Manager\'s Title',
129
+ // eslint-disable-next-line
130
+ manager_name: 'Manager\'s Name',
131
+ }}
132
+ sortValue={[{ name: 'popularity', dir: 'desc' }]}
133
+ >
134
+ {({ closePopover }) => (
135
+ <form>
136
+ <TextInput
137
+ label="Full Name"
138
+ placeholder="Enter name"
139
+ />
140
+ <Select
141
+ blankSelection="Select One..."
142
+ label="Territory"
143
+ maxWidth="sm"
144
+ name="location"
145
+ options={options}
146
+ />
147
+ <Flex spacing="between">
148
+ <Button
149
+ onClick={closePopover}
150
+ text="Filter"
151
+ />
152
+ <Button
153
+ text="Defaults"
154
+ variant="secondary"
155
+ />
156
+ </Flex>
157
+ </form>
158
+ )}
159
+ </Filter>
160
+ )}
161
+ </div>
162
+ </div>
163
+ )
164
+ }
165
+
166
+ export default SkeletonLoadingFilter;
@@ -20,6 +20,7 @@ const SkeletonLoadingHeightWidth = (props) => (
20
20
  <Card htmlOptions={{ style: { height: '200px', width: '100%' }}}
21
21
  marginBottom="md"
22
22
  padding="none"
23
+ {...props}
23
24
  >
24
25
  <SkeletonLoading
25
26
  borderRadius="md"
@@ -31,6 +32,7 @@ const SkeletonLoadingHeightWidth = (props) => (
31
32
  </Card>
32
33
  <Card htmlOptions={{ style: { height: '200px', width: '100%' }}}
33
34
  padding="none"
35
+ {...props}
34
36
  >
35
37
  <SkeletonLoading
36
38
  borderRadius="md"
@@ -0,0 +1,89 @@
1
+ import React from 'react';
2
+ import { Flex, SkeletonLoading, User } from "playbook-ui";
3
+
4
+ const SkeletonLoadingUser = (props) => {
5
+ const isLoading = true
6
+
7
+ return (
8
+ <div>
9
+ <div>
10
+ {isLoading ? (
11
+ <Flex alignItems="center">
12
+ <SkeletonLoading
13
+ borderRadius="rounded"
14
+ height="38px"
15
+ paddingRight="sm"
16
+ width="38px"
17
+ {...props}
18
+ />
19
+ <SkeletonLoading
20
+ gap="xxs"
21
+ height="18px"
22
+ stack="2"
23
+ width="161px"
24
+ {...props}
25
+ />
26
+ </Flex>
27
+ ) : (
28
+ <User
29
+ align="left"
30
+ avatarUrl="https://randomuser.me/api/portraits/women/44.jpg"
31
+ name="Anna Black"
32
+ orientation="horizontal"
33
+ title="Remodeling Consultant"
34
+ {...props}
35
+ />
36
+ )}
37
+ </div>
38
+ <div>
39
+ {isLoading ? (
40
+ <Flex
41
+ alignItems="start"
42
+ paddingTop="md"
43
+ >
44
+ <Flex
45
+ alignItems="center"
46
+ flexDirection="column"
47
+ >
48
+ <SkeletonLoading
49
+ borderRadius="rounded"
50
+ height="80px"
51
+ paddingBottom="xs"
52
+ width="80px"
53
+ {...props}
54
+ />
55
+ <SkeletonLoading
56
+ height="32px"
57
+ paddingBottom="xxs"
58
+ width="144px"
59
+ {...props}
60
+ />
61
+ <SkeletonLoading
62
+ height="21px"
63
+ width="164px"
64
+ {...props}
65
+ />
66
+ </Flex>
67
+ </Flex>
68
+ ) : (
69
+ <Flex
70
+ alignItems="start"
71
+ paddingTop="md"
72
+ >
73
+ <User
74
+ align="center"
75
+ avatarUrl="https://randomuser.me/api/portraits/women/44.jpg"
76
+ name="Anna Black"
77
+ orientation="vertical"
78
+ size="lg"
79
+ title="Remodeling Consultant"
80
+ {...props}
81
+ />
82
+ </Flex>
83
+ )}
84
+ </div>
85
+ </div>
86
+ )
87
+ }
88
+
89
+ export default SkeletonLoadingUser;
@@ -10,4 +10,5 @@ examples:
10
10
  - skeleton_loading_layout: Layout
11
11
  - skeleton_loading_border_radius: Border Radius
12
12
  - skeleton_loading_height_width: Height & Width
13
-
13
+ - skeleton_loading_user: User Component Example
14
+ - skeleton_loading_filter: Filter Component Example