playbook_ui 4.15.0 → 4.15.1.alpha1

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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -3
  3. data/app/pb_kits/playbook/data/menu.yml +0 -5
  4. data/app/pb_kits/playbook/index.js +1 -4
  5. data/app/pb_kits/playbook/packs/examples.js +0 -2
  6. data/app/pb_kits/playbook/pb_button/_button.jsx +1 -9
  7. data/app/pb_kits/playbook/pb_contact/_contact.jsx +0 -1
  8. data/app/pb_kits/playbook/pb_contact/contact.rb +0 -2
  9. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +0 -5
  10. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +0 -4
  11. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.html.erb +0 -6
  12. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +0 -5
  13. data/app/pb_kits/playbook/pb_dashboard/pbChartsLightTheme.js +1 -26
  14. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.jsx +2 -2
  15. data/app/pb_kits/playbook/pb_filter/_filter.jsx +222 -1
  16. data/app/pb_kits/playbook/pb_filter/_filter.scss +13 -16
  17. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +41 -34
  18. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +9 -13
  19. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +74 -69
  20. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +9 -12
  21. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.html.erb +35 -28
  22. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +6 -5
  23. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.html.erb +41 -35
  24. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +10 -12
  25. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +18 -12
  26. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +44 -14
  27. data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +1 -1
  28. data/app/pb_kits/playbook/pb_layout/_body.jsx +26 -0
  29. data/app/pb_kits/playbook/pb_layout/_layout.jsx +14 -66
  30. data/app/pb_kits/playbook/pb_layout/_sidebar.jsx +26 -0
  31. data/app/pb_kits/playbook/pb_layout/docs/_layout_default.jsx +14 -0
  32. data/app/pb_kits/playbook/pb_layout/docs/example.yml +1 -4
  33. data/app/pb_kits/playbook/pb_layout/docs/index.js +1 -4
  34. data/app/pb_kits/playbook/pb_online_status/_online_status.jsx +14 -31
  35. data/app/pb_kits/playbook/pb_online_status/docs/example.yml +3 -3
  36. data/app/pb_kits/playbook/pb_online_status/docs/index.js +0 -1
  37. data/app/pb_kits/playbook/pb_popover/_popover.jsx +19 -26
  38. data/app/pb_kits/playbook/pb_popover/docs/_popover_portal.jsx +34 -0
  39. data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.html.erb +4 -0
  40. data/app/pb_kits/playbook/pb_popover/docs/example.yml +3 -0
  41. data/app/pb_kits/playbook/pb_popover/docs/index.js +2 -0
  42. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb +1 -1
  43. data/app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.jsx +1 -1
  44. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +1 -1
  45. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +14 -39
  46. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +3 -3
  47. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +0 -1
  48. data/app/pb_kits/playbook/pb_title_detail/_title_detail.jsx +14 -47
  49. data/app/pb_kits/playbook/pb_title_detail/docs/example.yml +3 -3
  50. data/app/pb_kits/playbook/pb_title_detail/docs/index.js +0 -1
  51. data/app/pb_kits/playbook/plugins/pb_chart.js +1 -49
  52. data/app/pb_kits/playbook/tokens/_colors.scss +0 -4
  53. data/app/pb_kits/playbook/vendor.js +0 -3
  54. data/lib/playbook/version.rb +1 -1
  55. metadata +9 -52
  56. data/app/pb_kits/playbook/packs/kits/pb_progress_step.js +0 -2
  57. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.html.erb +0 -12
  58. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.scss +0 -6
  59. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +0 -81
  60. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.html.erb +0 -19
  61. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_inner_sizes.html.erb +0 -136
  62. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_labels.html.erb +0 -37
  63. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_legend_kit.html.erb +0 -22
  64. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_with_title.html.erb +0 -38
  65. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +0 -9
  66. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +0 -56
  67. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +0 -26
  68. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +0 -58
  69. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +0 -46
  70. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +0 -37
  71. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.jsx +0 -34
  72. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +0 -85
  73. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +0 -26
  74. data/app/pb_kits/playbook/pb_layout/docs/_layout_colors.jsx +0 -63
  75. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes.jsx +0 -87
  76. data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.jsx +0 -92
  77. data/app/pb_kits/playbook/pb_layout/docs/_layout_transparent.jsx +0 -24
  78. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_default.jsx +0 -19
  79. data/app/pb_kits/playbook/pb_progress_step/_progress_step.html.erb +0 -6
  80. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +0 -35
  81. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +0 -388
  82. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb +0 -23
  83. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx +0 -44
  84. data/app/pb_kits/playbook/pb_progress_step/docs/_description.md +0 -1
  85. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_dark.html.erb +0 -8
  86. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_dark.jsx +0 -18
  87. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.html.erb +0 -33
  88. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_default.jsx +0 -39
  89. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.html.erb +0 -33
  90. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_vertical.jsx +0 -40
  91. data/app/pb_kits/playbook/pb_progress_step/docs/example.yml +0 -12
  92. data/app/pb_kits/playbook/pb_progress_step/docs/index.js +0 -3
  93. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +0 -33
  94. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +0 -19
  95. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +0 -8
  96. data/app/pb_kits/playbook/pb_title_detail/docs/_title_detail_default.jsx +0 -26
  97. data/app/pb_kits/playbook/pb_tooltip/_tooltip.html.erb +0 -10
  98. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +0 -105
  99. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +0 -10
  100. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +0 -9
  101. data/app/pb_kits/playbook/pb_tooltip/docs/example.yml +0 -5
  102. data/app/pb_kits/playbook/pb_tooltip/index.js +0 -80
  103. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +0 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d06b43573e33c771eb3617100802fa3e8ad15bf58f7037c233725df32d4e447
4
- data.tar.gz: 005256edb667970f313898e57ede8d2f50cbe9222fd99007a318808e075f3e23
3
+ metadata.gz: d1eaec88d82c53a274c0d92dd7d6a69e63ba22589107395a1cdc0935806ceef8
4
+ data.tar.gz: 68fede97efa40f94dee01360bd6f29f3121969d5e2190c9d80b51b3531951ef1
5
5
  SHA512:
6
- metadata.gz: 33b0a8f35f696aed191bae44c33aa4686864ba89ac73473b88cd749e30d6cc792a7d4fedff7b413857b7ddd3c22959b68df5b34884c0ffe92e6ec319b0af8c2d
7
- data.tar.gz: 1070e81eb6faefd83fe85fa725534a8d5ad2ee16f17fb1b9b920433d045a75e09040a85ac64f33c3789d89de1b4dbb332355950f0289914a9acd65a6b8dc19e7
6
+ metadata.gz: a0f5bf6be6bd1160d6fd1eeb54e806348aa3178470574ef4a18327826e40f145d7cc6af01937b2cf612fd5f5d26f3a7c0805ae896490ab1929c2ef581afba46e
7
+ data.tar.gz: 60a66f8d413244e10d2187c5f7c1465e5310154ddbeb82d630c2fd5b7614fb2a3fd3d4730b501a538f4ad18c26b0a599d2c262cb15410d67cbc712ed33d4e8c9
@@ -7,7 +7,6 @@
7
7
  @import 'pb_badge/badge';
8
8
  @import 'pb_bar_graph/bar_graph';
9
9
  @import 'pb_checkbox/checkbox';
10
- @import 'pb_circle_chart/circle_chart';
11
10
  @import 'pb_circle_icon_button/circle_icon_button';
12
11
  @import 'pb_contact/contact';
13
12
  @import 'pb_currency/currency';
@@ -50,7 +49,6 @@
50
49
  @import 'pb_popover/popover';
51
50
  @import 'pb_progress_pills/progress_pills';
52
51
  @import 'pb_progress_simple/progress_simple';
53
- @import 'pb_progress_step/progress_step';
54
52
  @import 'pb_radio/radio';
55
53
  @import 'pb_section_separator/section_separator';
56
54
  @import 'pb_select/select';
@@ -68,7 +66,6 @@
68
66
  @import 'pb_title_count/title_count';
69
67
  @import 'pb_title_detail/title_detail';
70
68
  @import 'pb_toggle/toggle';
71
- @import 'pb_tooltip/tooltip';
72
69
  @import 'pb_typeahead/typeahead';
73
70
  @import 'pb_user/user';
74
71
  @import 'pb_user_badge/user_badge';
@@ -1,6 +1,5 @@
1
1
  samples:
2
2
  - dashboards
3
- - something
4
3
  kits:
5
4
  - avatar
6
5
  - badge
@@ -14,8 +13,6 @@ kits:
14
13
  - legend
15
14
  - line_graph
16
15
  - distribution_bar
17
- - circle_chart
18
-
19
16
  - filter
20
17
  - fixed_confirmation_toast
21
18
  - flex
@@ -48,13 +45,11 @@ kits:
48
45
  - popover
49
46
  - progress_pills
50
47
  - progress_simple
51
- - progress_step
52
48
  - section_separator
53
49
  - source
54
50
  - star_rating
55
51
  - stat_change
56
52
  - table
57
- - tooltip
58
53
  - typography:
59
54
  - body
60
55
  - caption
@@ -52,7 +52,6 @@ export PersonContact from './pb_person_contact/_person_contact.jsx'
52
52
  export Pill from './pb_pill/_pill.jsx'
53
53
  export ProgressPills from './pb_progress_pills/_progress_pills.jsx'
54
54
  export ProgressSimple from './pb_progress_simple/_progress_simple.jsx'
55
- export ProgressStep from './pb_progress_step/_progress_step.jsx'
56
55
  export Radio from './pb_radio/_radio.jsx'
57
56
  export SectionSeparator from './pb_section_separator/_section_separator.jsx'
58
57
  export Select from './pb_select/_select.jsx'
@@ -67,11 +66,10 @@ export Textarea from './pb_textarea/_textarea.jsx'
67
66
  export TextInput from './pb_text_input/_text_input.jsx'
68
67
  export Time from './pb_time/_time.jsx'
69
68
  export TimeStacked from './pb_time_stacked/_time_stacked.jsx'
70
- export Timestamp from './pb_timestamp/_timestamp.jsx'
69
+ export TimeStamp from './pb_timestamp/_timestamp.jsx'
71
70
  export TimeRangeInline from './pb_time_range_inline/_time_range_inline.jsx'
72
71
  export Title from './pb_title/_title.jsx'
73
72
  export TitleCount from './pb_title_count/_title_count.jsx'
74
- export TitleDetail from './pb_title_detail/_title_detail.jsx'
75
73
  export Toggle from './pb_toggle/_toggle.jsx'
76
74
  export User from './pb_user/_user.jsx'
77
75
  export UserBadge from './pb_user_badge/_user_badge.jsx'
@@ -88,4 +86,3 @@ export pbChart from './plugins/pb_chart.js'
88
86
  export PbTypeahead from './pb_typeahead'
89
87
  export PbPopover from './pb_popover'
90
88
  export PbTable from './pb_table'
91
- export PbTooltip from './pb_tooltip'
@@ -63,7 +63,6 @@ import * as PersonContact from 'pb_person_contact/docs'
63
63
  import * as Pill from 'pb_pill/docs'
64
64
  import * as ProgressPills from 'pb_progress_pills/docs'
65
65
  import * as ProgressSimple from 'pb_progress_simple/docs'
66
- import * as ProgressStep from 'pb_progress_step/docs'
67
66
  import * as Radio from 'pb_radio/docs'
68
67
  import * as SectionSeparator from 'pb_section_separator/docs'
69
68
  import * as Select from 'pb_select/docs'
@@ -138,7 +137,6 @@ WebpackerReact.setup({
138
137
  ...Pill,
139
138
  ...ProgressPills,
140
139
  ...ProgressSimple,
141
- ...ProgressStep,
142
140
  ...Radio,
143
141
  ...SectionSeparator,
144
142
  ...Select,
@@ -3,8 +3,6 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
 
6
- import Icon from '../pb_icon/_icon.jsx'
7
-
8
6
  type EventHandler = (SyntheticInputEvent<HTMLInputElement>) => void
9
7
  type ButtonPropTypes = {
10
8
  aria?: {
@@ -85,13 +83,7 @@ const Button = (props: ButtonPropTypes) => {
85
83
  const buttonAria = buttonAriaProps(props)
86
84
  const css = classnames(buttonClassName(props), className)
87
85
  const loadingIcon = (
88
- <div className="loading-icon">
89
- <Icon
90
- fixedWidth
91
- icon="spinner"
92
- pulse
93
- />
94
- </div>
86
+ <i className="pb_icon_kit far fa-spinner fa-fw fa-pulse loading-icon" />
95
87
  )
96
88
 
97
89
  const content = (
@@ -9,7 +9,6 @@ const contactTypeMap = {
9
9
  'cell': 'mobile',
10
10
  'home': 'phone',
11
11
  'work': 'phone-office',
12
- 'work-cell': 'phone-laptop',
13
12
  'email': 'envelope',
14
13
  'wrong number': 'slash-phone',
15
14
  }
@@ -28,8 +28,6 @@ module Playbook
28
28
  "phone-office"
29
29
  when "email"
30
30
  "envelope"
31
- when "work-cell"
32
- "phone-laptop"
33
31
  when "wrong-phone"
34
32
  "phone-slash"
35
33
  else # "unknown" || "other"
@@ -16,8 +16,3 @@
16
16
  contact_type: "wrong number",
17
17
  contact_value: "3245627482",
18
18
  }) %>
19
-
20
- <%= pb_rails("contact", props: {
21
- contact_type: "work-cell",
22
- contact_value: "349-185-9988",
23
- }) %>
@@ -19,10 +19,6 @@ const ContactDefault = () => {
19
19
  contactType="work"
20
20
  contactValue="3245627482"
21
21
  />
22
- <Contact
23
- contactType="work-cell"
24
- contactValue="3245627482"
25
- />
26
22
  </div>
27
23
  )
28
24
  }
@@ -14,9 +14,3 @@
14
14
  contact_value: "3245627482",
15
15
  contact_detail: "Work",
16
16
  }) %>
17
-
18
- <%= pb_rails("contact", props: {
19
- contact_type: "work-cell",
20
- contact_value: "3245627482",
21
- contact_detail: "Work-Cell",
22
- }) %>
@@ -18,11 +18,6 @@ const ContactDefault = () => {
18
18
  contactType="work"
19
19
  contactValue="3245627482"
20
20
  />
21
- <Contact
22
- contactDetail="Work-Cell"
23
- contactType="work-cell"
24
- contactValue="3245627482"
25
- />
26
21
  </div>
27
22
  )
28
23
  }
@@ -4,9 +4,6 @@ import typography from '../tokens/_typography.scss'
4
4
  import Highcharts from 'highcharts'
5
5
 
6
6
  const highchartsTheme = {
7
- lang: {
8
- thousandsSep: ',',
9
- },
10
7
  colors: [
11
8
  colors.data_1,
12
9
  colors.data_2,
@@ -22,6 +19,7 @@ const highchartsTheme = {
22
19
  plotBackgroundColor: null,
23
20
  plotShadow: false,
24
21
  plotBorderWidth: 0,
22
+
25
23
  },
26
24
  title: {
27
25
  style: {
@@ -143,29 +141,6 @@ const highchartsTheme = {
143
141
  },
144
142
  threshold: null,
145
143
  },
146
-
147
- // PIE STYLES
148
- pie: {
149
- colors: [
150
- colors.data_1,
151
- colors.data_2,
152
- colors.data_3,
153
- colors.data_4,
154
- colors.data_5,
155
- colors.data_6,
156
- colors.data_7,
157
- ],
158
- dataLabels: {
159
- style: {
160
- fontFamily: typography.font_family_base,
161
- fontSize: typography.text_smaller,
162
- color: colors.text_lt_light,
163
- fontWeight: typography.regular,
164
- },
165
- },
166
- },
167
-
168
- // LINE CHART STYLES
169
144
  line: {
170
145
  dataLabels: {
171
146
  color: '#CCC',
@@ -12,7 +12,7 @@ import {
12
12
  } from '../'
13
13
 
14
14
  type DateYearStackedProps = {
15
- align?: 'left' | 'center' | 'right',
15
+ align?: 'center' | 'right',
16
16
  className?: String | Array<String>,
17
17
  dark?: Boolean,
18
18
  data?: String,
@@ -21,7 +21,7 @@ type DateYearStackedProps = {
21
21
  }
22
22
 
23
23
  const DateYearStacked = ({
24
- align = 'left',
24
+ align,
25
25
  className,
26
26
  dark = false,
27
27
  date,
@@ -1,3 +1,224 @@
1
1
  /* @flow */
2
2
 
3
- export { default } from './Filter'
3
+ import React, { useState } from 'react'
4
+ import {
5
+ Button,
6
+ Caption,
7
+ Card,
8
+ CircleIconButton,
9
+ Flex,
10
+ Icon,
11
+ List,
12
+ ListItem,
13
+ PbReactPopover,
14
+ SectionSeparator,
15
+ Title,
16
+ TitleCount,
17
+ } from '../'
18
+
19
+ type FilterProps = {
20
+ background?: Boolean,
21
+ className?: String,
22
+ data?: String,
23
+ id?: String,
24
+ children?: React.Node,
25
+ filters?: Array<Hash>,
26
+ results?: Number,
27
+ sortMenu?: Array<Hash>,
28
+ template?: 'default' | 'filter_only' | 'sort_only' | 'single'
29
+ }
30
+
31
+ const Filter = ({
32
+ background = true,
33
+ className = 'pb_filter_kit',
34
+ data,
35
+ filters = [{}],
36
+ id,
37
+ children,
38
+ results,
39
+ sortMenu = null,
40
+ template = 'default',
41
+ }: FilterProps) => {
42
+ const [showFilterOptions, setShowFilterOptions] = useState(false)
43
+ const [showSortOptions, setShowSortOptions] = useState(false)
44
+ const handleToggleFilters = () => {
45
+ setShowFilterOptions(!showFilterOptions)
46
+ }
47
+ const handleToggleSort = () => {
48
+ setShowSortOptions(!showSortOptions)
49
+ }
50
+
51
+ const filterButton = (
52
+ <CircleIconButton
53
+ icon="filter"
54
+ id="filter"
55
+ onClick={handleToggleFilters}
56
+ text="filter"
57
+ variant="secondary"
58
+ />
59
+ )
60
+
61
+ const Filters = () => (
62
+ <If condition={template != 'sort_only' && filters != null}>
63
+ <PbReactPopover
64
+ closeOnClick="outside"
65
+ offset
66
+ placement="bottom"
67
+ reference={filterButton}
68
+ show={showFilterOptions}
69
+ >
70
+ <div className="pb-form">
71
+ {children}
72
+ </div>
73
+
74
+ </PbReactPopover>
75
+ <div className="maskContainer">
76
+ <div className="filters">
77
+ <div className="left_gradient" />
78
+ { filters.map((item, index) => (
79
+ <div
80
+ className="filter"
81
+ key={index}
82
+ >
83
+ <Caption text={item.name} />
84
+ <Title
85
+ size={4}
86
+ tag="h4"
87
+ text={item.value}
88
+ />
89
+ </div>
90
+ ))}
91
+ <div className="right_gradient" />
92
+ </div>
93
+ </div>
94
+ </If>
95
+ )
96
+
97
+ const activeSort = () => {
98
+ return (
99
+ sortMenu.map((item) => (
100
+ item.active ? item.item : null
101
+ ))
102
+ )
103
+ }
104
+
105
+ const activeDirection = () => {
106
+ let direction
107
+ sortMenu.map((item) => {
108
+ item.active ? direction = item.direction : null
109
+ })
110
+ const icon = direction == 'asc' ? 'sort-amount-up' : 'sort-amount-down'
111
+ return icon
112
+ }
113
+
114
+ const sortButton = (
115
+ <If condition={sortMenu != null}>
116
+ <Button
117
+ id="sort-button"
118
+ onClick={handleToggleSort}
119
+ variant="link"
120
+ >
121
+ {activeSort()}
122
+ <Icon
123
+ fixedWidth
124
+ icon={`${activeDirection()}`}
125
+ />
126
+ </Button>
127
+ </If>
128
+ )
129
+ const Results = () => {
130
+ const resultsText = results > 1 ? 'Results' : 'Result'
131
+ return (
132
+ <If condition={results != undefined}>
133
+ <If condition={template != 'default'}>
134
+ <Caption
135
+ className="filter-results"
136
+ size="xs"
137
+ text={`${results} ${resultsText}`}
138
+ />
139
+ <Else />
140
+ <TitleCount
141
+ align="center"
142
+ count={results}
143
+ title={`${resultsText}:`}
144
+ />
145
+ </If>
146
+ </If>
147
+ )
148
+ }
149
+ const Sort = () => (
150
+ <If condition={template != 'filter_only'}>
151
+ <Flex
152
+ orientation="row"
153
+ vertical="center"
154
+ >
155
+ <If condition={template == 'default'}>
156
+ <Caption text="sort by:" />
157
+ </If>
158
+ <PbReactPopover
159
+ closeOnClick="outside"
160
+ offset
161
+ placement="bottom"
162
+ reference={sortButton}
163
+ show={showSortOptions}
164
+ >
165
+ <List>
166
+ {sortMenu ? sortMenu.map((item) => (
167
+ <ListItem key={item.item}>
168
+ <Button
169
+ link={item.link}
170
+ text={item.item}
171
+ variant="link"
172
+ />
173
+ </ListItem>
174
+ )) : null}
175
+
176
+ </List>
177
+ </PbReactPopover>
178
+ </Flex>
179
+ </If>
180
+ )
181
+ const Core = () => (
182
+ <>
183
+ <Flex
184
+ orientation="row"
185
+ vertical="center"
186
+ >
187
+ <Filters />
188
+ <If condition={template != 'default'}>
189
+ <Results />
190
+ <Sort />
191
+ </If>
192
+ </Flex>
193
+ <If condition={template == 'default'}>
194
+ <SectionSeparator />
195
+ <Flex
196
+ className="filter-bottom"
197
+ orientation="row"
198
+ spacing="between"
199
+ vertical="center"
200
+ >
201
+ <Results />
202
+ <Sort />
203
+ </Flex>
204
+ </If>
205
+ </>
206
+ )
207
+ return (
208
+ <div
209
+ className={className}
210
+ data={data}
211
+ id={id}
212
+ >
213
+ <If condition={background}>
214
+ <Card padding="none">
215
+ <Core />
216
+ </Card>
217
+ <Else />
218
+ <Core />
219
+ </If>
220
+ </div>
221
+ )
222
+ }
223
+
224
+ export default Filter
@@ -1,30 +1,27 @@
1
1
  @import "../tokens/spacing";
2
2
  @import "../tokens/colors";
3
3
 
4
- .pb_filter_sort_menu {
5
- li {
6
- padding: 0 $space_sm !important;
7
- }
8
- [class^=pb_button_kit][class*=_link]{
9
- flex-shrink:0;
10
- padding: 0 $space_xs !important;
11
- [id^="sort"]{
12
- margin-left: $space_xs !important;
13
- }
14
- }
15
- [class^=pb_card_body_kit][class*=_md]{
16
- padding: 0 !important;
17
- }
18
- }
19
-
20
4
  [class^=pb_filter_kit] {
21
5
  [class^=pb_circle_icon_button_kit]{
22
6
  padding-left: $space_sm !important;
23
7
  padding-top: $space_sm !important;
24
8
  padding-bottom: $space_sm !important;
25
9
  }
10
+ [class^=pb_card_body_kit][class*=_md]{
11
+ padding: 0 !important;
12
+ }
13
+ [class^=pb_list_kit] li{
14
+ padding: 0 $space_sm !important;
15
+ }
26
16
  [class^=pb-form]{
27
17
  padding: $space_sm ;
18
+ }
19
+ [class^=pb_button_kit][class*=_link]{
20
+ flex-shrink:0;
21
+ padding: 0 $space_xs !important;
22
+ [id^="sort"]{
23
+ margin-left: $space_xs !important;
24
+ }
28
25
  }
29
26
  .sort-by{
30
27
  flex-shrink:0;
@@ -1,39 +1,46 @@
1
- <%=
2
- pb_rails("filter", props: {
3
- id: "1",
4
- filters: [
5
- { name: "name", value: "John Wick" }
6
- ],
7
- sort_menu: [
8
- { item: "Popularity", link: "?q[sorts]=managers_popularity+asc", active: true, direction: "desc" },
9
- { item: "Mananger's Title", link: "?q[sorts]=managers_title+asc", active: false },
10
- { item: "Manager's Name", link: "?q[sorts]=managers_name+asc", active: false },
1
+ <% 5.times do%>
2
+ <br>
3
+ <%end%>
4
+
5
+ <%= pb_rails("filter", props: {
6
+ id: "1",
7
+ filters: [
8
+ {name: "name", value: "John Wick"}
11
9
  ],
12
- template: "default",
13
- results: 546,
14
- }) do
10
+ sort_menu: [
11
+ {item:"Popularity", link:"#", active: true, direction:"desc"},
12
+ {item:"Title", link:"#", active: false},
13
+ {item:"Name", link:"#", active: false},
14
+ ],
15
+ template:"default",
16
+ results: 546,
17
+ }) do%>
18
+ <%
19
+ example_collection = [
20
+ OpenStruct.new(name: "Alabama", value: 1),
21
+ OpenStruct.new(name: "Alaska", value: 2),
22
+ OpenStruct.new(name: "Arizona", value: 3),
23
+ OpenStruct.new(name: "Arkansas", value: 4),
24
+ OpenStruct.new(name: "California", value: 5),
25
+ OpenStruct.new(name: "Colorado", value: 6),
26
+ OpenStruct.new(name: "Connecticut", value: 7),
27
+ OpenStruct.new(name: "Delaware", value: 8),
28
+ OpenStruct.new(name: "Florida", value: 9),
29
+ OpenStruct.new(name: "Georgia", value: 10),
30
+ ]
15
31
  %>
16
- <%
17
- example_collection = [
18
- OpenStruct.new(name: "Alabama", value: 1),
19
- OpenStruct.new(name: "Alaska", value: 2),
20
- OpenStruct.new(name: "Arizona", value: 3),
21
- OpenStruct.new(name: "Arkansas", value: 4),
22
- OpenStruct.new(name: "California", value: 5),
23
- OpenStruct.new(name: "Colorado", value: 6),
24
- OpenStruct.new(name: "Connecticut", value: 7),
25
- OpenStruct.new(name: "Delaware", value: 8),
26
- OpenStruct.new(name: "Florida", value: 9),
27
- OpenStruct.new(name: "Georgia", value: 10),
28
- ]
29
- %>
30
- <%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
31
- <%= form.text_field :example_text_field, props: { label: true } %>
32
- <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
33
32
 
34
- <%= form.actions do |action| %>
35
- <%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
36
- <%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
37
- <% end %>
33
+ <%= pb_rails("form", props: { form_system_options: { scope: :example, method: :get } }) do |form| %>
34
+ <%= form.text_field :example_text_field, props: { label: true } %>
35
+ <%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true } %>
36
+
37
+ <%= form.actions do |action| %>
38
+ <%= action.submit props: { text: "Apply", data: { disable_with: "<i class='far fa-spinner fa-spin mr-3'></i>Searching...".html_safe },}%>
39
+ <%= action.button props: { type: "reset", text: "Clear", variant: "secondary" } %>
38
40
  <% end %>
39
41
  <% end %>
42
+
43
+ <% end %>
44
+ <% 5.times do%>
45
+ <br>
46
+ <%end%>
@@ -11,20 +11,16 @@ const FilterDefault = () => {
11
11
  ]
12
12
  return (
13
13
  <Filter
14
- double
15
- filters={{
16
- 'Full Name': 'John Wick',
17
- 'Territory': 'San Francisco',
18
- }}
14
+ filters={[
15
+ { name: 'Full Name', value: 'John Wick' },
16
+ { name: 'Territory', value: 'San Francisco' },
17
+ ]}
19
18
  results={256}
20
- sortOptions={{
21
- popularity: 'Popularity',
22
- // eslint-disable-next-line
23
- manager_title: 'Manager\'s Title',
24
- // eslint-disable-next-line
25
- manager_name: 'Manager\'s Name',
26
- }}
27
- sortValue={[{ name: 'popularity', dir: 'asc' }]}
19
+ sortMenu={[
20
+ { item: 'Popularity', link: '#', active: true, direction: 'desc' },
21
+ { item: 'Title', link: '#', active: false },
22
+ { item: 'Name', link: '#', active: false },
23
+ ]}
28
24
  >
29
25
  <TextInput
30
26
  label="Full Name"