playbook_ui 7.7.0 → 7.8.0

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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/{sample_screenshot.svg → full_page_samples.svg} +0 -0
  3. data/app/pb_kits/playbook/_playbook.scss +3 -1
  4. data/app/pb_kits/playbook/data/menu.yml +3 -0
  5. data/app/pb_kits/playbook/index.js +4 -1
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +1 -1
  7. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +27 -0
  8. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +8 -2
  9. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +9 -2
  10. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +17 -6
  11. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +15 -5
  12. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +2 -1
  13. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.jsx +4 -1
  14. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +9 -4
  15. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +0 -1
  16. data/app/pb_kits/playbook/pb_filter/_filter.scss +44 -23
  17. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +3 -2
  18. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +5 -4
  19. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +6 -4
  20. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +73 -28
  21. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +3 -7
  22. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +4 -3
  23. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +1 -2
  24. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +3 -3
  25. data/app/pb_kits/playbook/pb_filter/docs/example.yml +4 -5
  26. data/app/pb_kits/playbook/pb_form_group/_form_group.html.erb +7 -0
  27. data/app/pb_kits/playbook/pb_form_group/_form_group.jsx +41 -0
  28. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +123 -0
  29. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.html.erb +12 -0
  30. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.jsx +39 -0
  31. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.html.erb +6 -0
  32. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.jsx +21 -0
  33. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.html.erb +7 -0
  34. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.jsx +26 -0
  35. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +19 -0
  36. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +35 -0
  37. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card.html.erb +21 -0
  38. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card.jsx +42 -0
  39. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card_icon.html.erb +19 -0
  40. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card_icon.jsx +35 -0
  41. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.html.erb +42 -0
  42. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.jsx +31 -0
  43. data/app/pb_kits/playbook/pb_form_group/docs/example.yml +20 -0
  44. data/app/pb_kits/playbook/pb_form_group/docs/index.js +7 -0
  45. data/app/pb_kits/playbook/pb_form_group/form_group.rb +15 -0
  46. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.html.erb +24 -0
  47. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.jsx +105 -0
  48. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +64 -0
  49. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +49 -0
  50. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +67 -0
  51. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.html.erb +11 -0
  52. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.jsx +25 -0
  53. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.html.erb +20 -0
  54. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.jsx +35 -0
  55. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.html.erb +7 -0
  56. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.jsx +19 -0
  57. data/app/pb_kits/playbook/pb_icon_stat_value/docs/example.yml +15 -0
  58. data/app/pb_kits/playbook/pb_icon_stat_value/docs/index.js +4 -0
  59. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +52 -0
  60. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.html.erb +1 -0
  61. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.jsx +123 -0
  62. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +216 -0
  63. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +1 -0
  64. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +10 -0
  65. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb +3 -0
  66. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +11 -0
  67. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb +1 -0
  68. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +10 -0
  69. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb +1 -0
  70. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +14 -0
  71. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb +115 -0
  72. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +39 -0
  73. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +15 -0
  74. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +5 -0
  75. data/app/pb_kits/playbook/pb_rich_text_editor/docs/templates.js +75 -0
  76. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +55 -0
  77. data/app/pb_kits/playbook/pb_rich_text_editor/useFocus.js +20 -0
  78. data/app/pb_kits/playbook/pb_table/_table.scss +45 -13
  79. data/app/pb_kits/playbook/pb_table/docs/_description.md +1 -0
  80. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.html.erb +34 -0
  81. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.jsx +43 -0
  82. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.md +2 -0
  83. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.html.erb +34 -0
  84. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.jsx +43 -0
  85. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.md +2 -0
  86. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.html.erb +63 -0
  87. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.jsx +70 -0
  88. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.md +2 -0
  89. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +52 -0
  90. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +61 -0
  91. data/app/pb_kits/playbook/pb_table/docs/example.yml +9 -1
  92. data/app/pb_kits/playbook/pb_table/docs/index.js +4 -1
  93. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.html.erb +3 -6
  94. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +15 -21
  95. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +0 -17
  96. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.html.erb +4 -1
  97. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx +12 -1
  98. data/app/pb_kits/playbook/pb_time_stacked/docs/example.yml +1 -4
  99. data/app/pb_kits/playbook/pb_time_stacked/docs/index.js +0 -1
  100. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.rb +7 -11
  101. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  102. data/app/pb_kits/playbook/utilities/globalProps.js +9 -0
  103. data/app/pb_kits/playbook/utilities/test-utils.js +24 -0
  104. data/app/pb_kits/playbook/vendor.js +2 -0
  105. data/lib/playbook/version.rb +1 -1
  106. metadata +72 -10
  107. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.html.erb +0 -2
  108. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.jsx +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bdb6b278638df86a70f02f1a672ecca497f3d7e521cd7934faf3af5bd199eb7b
4
- data.tar.gz: fce202c0f5e57679bd9c674df0d311a7d253e7e859b954c6ee80820d9f61002d
3
+ metadata.gz: a1b2724a9674c38dc8b7333163b4a364812c9d02948df68edc906678e3cc02d2
4
+ data.tar.gz: 42620bbd6d02cbc48a84ee7359166d05737082f1db4dfc63f932b63ee6088e3a
5
5
  SHA512:
6
- metadata.gz: 26dc1013ada3259e4b8afffb76102e450139a5605ef285969e3a1abbb30ee82474ed5673223da64ed737fbb07b58acd1fcd32f4d4e39e0f9bcc4acfa14d95aa8
7
- data.tar.gz: 262c8060f3c940c4d618e06ccae75ff7636d7bb22fee425ab0061f70c8841af0923a8cf4c7441385de1a6e81e880fa6f6c33fc48506ad14521faaf8b9315f9bf
6
+ metadata.gz: dfa9f90ab38030f7adc33e161c81f6641bd18803ece239413c78a1f07fcf22cc9b3ea860052d5141e2206d2d1b8dcb956cbed1f3220f3815cc1cb767b23b8e48
7
+ data.tar.gz: 61e543cbc9d6f841ae8d929de14f753509e4c5d99850c3bba4e52ee7f44e059d73a9239b86f5cbd50da11fceb5776cd3e5a9a5a1a2becf1563d7c5a85eff3192
@@ -29,6 +29,7 @@
29
29
  @import 'pb_filter/filter';
30
30
  @import 'pb_fixed_confirmation_toast/fixed_confirmation_toast';
31
31
  @import 'pb_form/form';
32
+ @import 'pb_form_group/form_group';
32
33
  @import 'pb_form_pill/form_pill';
33
34
  @import 'pb_flex/flex';
34
35
  @import 'pb_gauge/gauge';
@@ -37,6 +38,7 @@
37
38
  @import 'pb_home_address_street/home_address_street';
38
39
  @import 'pb_icon/icon';
39
40
  @import 'pb_icon_circle/icon_circle';
41
+ @import 'pb_icon_stat_value/icon_stat_value';
40
42
  @import 'pb_icon_value/icon_value';
41
43
  @import 'pb_image/image';
42
44
  @import 'pb_label_pill/label_pill';
@@ -59,6 +61,7 @@
59
61
  @import 'pb_progress_simple/progress_simple';
60
62
  @import 'pb_progress_step/progress_step';
61
63
  @import 'pb_radio/radio';
64
+ @import 'pb_rich_text_editor/rich_text_editor';
62
65
  @import 'pb_section_separator/section_separator';
63
66
  @import 'pb_select/select';
64
67
  @import 'pb_selectable_card/selectable_card';
@@ -86,4 +89,3 @@
86
89
  @import 'pb_time_stacked/time_stacked';
87
90
  @import 'pb_weekday_stacked/weekday_stacked';
88
91
  @import './utilities/spacing';
89
-
@@ -22,6 +22,7 @@ kits:
22
22
  - date_picker
23
23
  - file_upload
24
24
  - form
25
+ - form_group
25
26
  - form_pill
26
27
  - radio
27
28
  - select
@@ -36,6 +37,7 @@ kits:
36
37
  - highlight
37
38
  - icon
38
39
  - icon_circle
40
+ - icon_stat_value
39
41
  - icon_value
40
42
  - image
41
43
  - layout
@@ -54,6 +56,7 @@ kits:
54
56
  - progress_pills
55
57
  - progress_simple
56
58
  - progress_step
59
+ - rich_text_editor
57
60
  - section_separator
58
61
  - source
59
62
  - star_rating
@@ -5,7 +5,7 @@ import 'lazysizes'
5
5
  // React Component JSX Imports from the React Kits
6
6
  export Avatar from './pb_avatar/_avatar.jsx'
7
7
  export AvatarActionButton from './pb_avatar_action_button/_avatar_action_button.jsx'
8
- export Background from 'pb_background/_background.jsx'
8
+ export Background from './pb_background/_background.jsx'
9
9
  export Badge from './pb_badge/_badge.jsx'
10
10
  export BarGraph from './pb_bar_graph/_bar_graph.jsx'
11
11
  export Body from './pb_body/_body.jsx'
@@ -33,6 +33,7 @@ export Filter from './pb_filter/_filter.jsx'
33
33
  export FixedConfirmationToast from './pb_fixed_confirmation_toast/_fixed_confirmation_toast.jsx'
34
34
  export Flex from './pb_flex/_flex.jsx'
35
35
  export FlexItem from './pb_flex/_flex_item.jsx'
36
+ export FormGroup from './pb_form_group/_form_group.jsx'
36
37
  export FormPill from './pb_form_pill/_form_pill.jsx'
37
38
  export Gauge from './pb_gauge/_gauge.jsx'
38
39
  export Hashtag from './pb_hashtag/_hashtag.jsx'
@@ -40,6 +41,7 @@ export Highlight from './pb_highlight/_highlight.jsx'
40
41
  export HomeAddressStreet from './pb_home_address_street/_home_address_street.jsx'
41
42
  export Icon from './pb_icon/_icon.jsx'
42
43
  export IconCircle from './pb_icon_circle/_icon_circle.jsx'
44
+ export IconStatValue from './pb_icon_stat_value/_icon_stat_value.jsx'
43
45
  export IconValue from './pb_icon_value/_icon_value.jsx'
44
46
  export Image from './pb_image/_image.jsx'
45
47
  export LabelPill from './pb_label_pill/_label_pill.jsx'
@@ -65,6 +67,7 @@ export ProgressSimple from './pb_progress_simple/_progress_simple.jsx'
65
67
  export ProgressStep from './pb_progress_step/_progress_step.jsx'
66
68
  export ProgressStepItem from './pb_progress_step/_progress_step_item.jsx'
67
69
  export Radio from './pb_radio/_radio.jsx'
70
+ export RichTextEditor from './pb_rich_text_editor/_rich_text_editor.jsx'
68
71
  export SectionSeparator from './pb_section_separator/_section_separator.jsx'
69
72
  export Select from './pb_select/_select.jsx'
70
73
  export SelectableCard from './pb_selectable_card/_selectable_card.jsx'
@@ -27,7 +27,7 @@ const firstTwoInitials = (name) =>
27
27
  .substring(0, 2)
28
28
 
29
29
  const Avatar = (props: AvatarProps) => {
30
- const { aria = {}, className, data = {}, name = null, id = id, imageUrl, size = 'md', status = null, dark = false } = props
30
+ const { aria = {}, className, data = {}, name = null, id = '', imageUrl, size = 'md', status = null, dark = false } = props
31
31
  const dataProps = buildDataProps(data)
32
32
  const ariaProps = buildAriaProps(aria)
33
33
  const classes = classnames(
@@ -0,0 +1,27 @@
1
+ import React from 'react'
2
+ import { render, screen } from '../utilities/test-utils'
3
+
4
+ import Avatar from './_avatar'
5
+
6
+ const imageUrl = 'https://randomuser.me/api/portraits/men/44.jpg',
7
+ testId = 'tjohnson',
8
+ name = 'Terry Johnson'
9
+
10
+ test('loads the given image url and name', () => {
11
+ render(
12
+ <Avatar
13
+ data={{ testid: testId }}
14
+ imageUrl={imageUrl}
15
+ name={name}
16
+ />
17
+ )
18
+
19
+ const kit = screen.getByTestId(testId)
20
+ const image = screen.getByAltText(name)
21
+ const initials = name.split(/\s/)[0].substr(0, 1) + name.split(/\s/)[1].substr(0, 1)
22
+
23
+ expect(kit).toHaveClass('pb_avatar_kit_md')
24
+ expect(kit).toHaveAttribute('data-initials', initials)
25
+ expect(image).toHaveAttribute('data-src', imageUrl)
26
+ expect(image).toHaveAttribute('src', imageUrl)
27
+ })
@@ -9,12 +9,13 @@ export type FilterDescription = {
9
9
  }
10
10
 
11
11
  export type CurrentFiltersProps = {
12
+ dark: boolean,
12
13
  filters: FilterDescription,
13
14
  }
14
15
 
15
16
  const hiddenFilters = (value) => isEmpty(value) && value !== true
16
17
 
17
- const CurrentFilters = ({ filters }: CurrentFiltersProps) => {
18
+ const CurrentFilters = ({ dark, filters }: CurrentFiltersProps) => {
18
19
  const displayableFilters = omitBy(filters, hiddenFilters)
19
20
 
20
21
  return (
@@ -30,14 +31,19 @@ const CurrentFilters = ({ filters }: CurrentFiltersProps) => {
30
31
  <Choose>
31
32
  <When condition={value === true}>
32
33
  <Title
34
+ dark={dark}
33
35
  size={4}
34
36
  tag="h4"
35
37
  text={name}
36
38
  />
37
39
  </When>
38
40
  <Otherwise>
39
- <Caption text={name} />
41
+ <Caption
42
+ dark={dark}
43
+ text={name}
44
+ />
40
45
  <Title
46
+ dark={dark}
41
47
  size={4}
42
48
  tag="h4"
43
49
  text={value}
@@ -9,15 +9,22 @@ type FilterBackgroundProps = {
9
9
  background: boolean,
10
10
  className: string,
11
11
  children: Node,
12
+ dark: boolean,
12
13
  }
14
+
13
15
  const FilterBackground = (props: FilterBackgroundProps) => {
14
- const { background = true, className, children } = props
16
+ const { background = true, className, children, dark } = props
15
17
 
16
18
  return (
17
19
  <div className={classnames(`pb_filter_kit ${className}`, globalProps(props))}>
18
20
  <Choose>
19
21
  <When condition={background}>
20
- <Card padding="none">{children}</Card>
22
+ <Card
23
+ dark={dark}
24
+ padding="none"
25
+ >
26
+ {children}
27
+ </Card>
21
28
  </When>
22
29
  <Otherwise>{children}</Otherwise>
23
30
  </Choose>
@@ -18,18 +18,24 @@ export type FilterDoubleProps = {
18
18
  sortValue?: SortValue,
19
19
  } & FilterBackgroundProps
20
20
 
21
- const FilterDouble = ({ onSortChange, sortOptions, sortValue, filters, results, children, ...bgProps }: FilterDoubleProps) => (
22
- <FilterBackground {...bgProps}>
21
+ const FilterDouble = ({ onSortChange, sortOptions, sortValue, filters, results, children, dark, ...bgProps }: FilterDoubleProps) => (
22
+ <FilterBackground
23
+ dark={dark}
24
+ {...bgProps}
25
+ >
23
26
  <Flex
24
27
  orientation="row"
25
28
  vertical="center"
26
29
  >
27
- <FiltersPopover>
30
+ <FiltersPopover dark={dark}>
28
31
  {children}
29
32
  </FiltersPopover>
30
- <CurrentFilters filters={filters} />
33
+ <CurrentFilters
34
+ dark={dark}
35
+ filters={filters}
36
+ />
31
37
  </Flex>
32
- <SectionSeparator />
38
+ <SectionSeparator dark={dark} />
33
39
  <Flex
34
40
  className="filter-bottom"
35
41
  orientation="row"
@@ -37,6 +43,7 @@ const FilterDouble = ({ onSortChange, sortOptions, sortValue, filters, results,
37
43
  vertical="center"
38
44
  >
39
45
  <ResultsCount
46
+ dark={dark}
40
47
  results={results}
41
48
  title
42
49
  />
@@ -44,8 +51,12 @@ const FilterDouble = ({ onSortChange, sortOptions, sortValue, filters, results,
44
51
  orientation="row"
45
52
  vertical="center"
46
53
  >
47
- <Caption text="sort by:" />
54
+ <Caption
55
+ dark={dark}
56
+ text="sort by:"
57
+ />
48
58
  <SortMenu
59
+ dark={dark}
49
60
  onChange={onSortChange}
50
61
  options={sortOptions}
51
62
  value={sortValue}
@@ -19,21 +19,31 @@ export type FilterSingleProps = {
19
19
  sortValue?: SortValue,
20
20
  } & FilterBackgroundProps
21
21
 
22
- const FilterSingle = ({ onSortChange, sortOptions, sortValue, filters, results, children, ...bgProps }: FilterSingleProps) => (
23
- <FilterBackground {...bgProps}>
22
+ const FilterSingle = ({ onSortChange, sortOptions, sortValue, filters, results, children, dark, ...bgProps }: FilterSingleProps) => (
23
+ <FilterBackground
24
+ dark={dark}
25
+ {...bgProps}
26
+ >
24
27
  <Flex
25
28
  orientation="row"
26
29
  vertical="center"
27
30
  >
28
31
  <If condition={children}>
29
- <FiltersPopover>
32
+ <FiltersPopover dark={dark}>
30
33
  {children}
31
34
  </FiltersPopover>
32
- <CurrentFilters filters={filters} />
35
+ <CurrentFilters
36
+ dark={dark}
37
+ filters={filters}
38
+ />
33
39
  </If>
34
- <ResultsCount results={results} />
40
+ <ResultsCount
41
+ dark={dark}
42
+ results={results}
43
+ />
35
44
  <If condition={!isEmpty(sortOptions)}>
36
45
  <SortMenu
46
+ dark={dark}
37
47
  onChange={onSortChange}
38
48
  options={sortOptions}
39
49
  value={sortValue}
@@ -4,12 +4,13 @@ import React, { Node, useState } from 'react'
4
4
  import { CircleIconButton, PbReactPopover } from '../../'
5
5
 
6
6
  const FiltersPopoverProps = { children: Node }
7
- const FiltersPopover = ({ children }: FiltersPopoverProps) => {
7
+ const FiltersPopover = ({ children, dark }: FiltersPopoverProps) => {
8
8
  const [hide, updateHide] = useState(true)
9
9
  const toggle = () => updateHide(!hide)
10
10
 
11
11
  const filterButton = (
12
12
  <CircleIconButton
13
+ dark={dark}
13
14
  icon="filter"
14
15
  id="filter"
15
16
  onClick={toggle}
@@ -6,21 +6,24 @@ import { Caption, TitleCount } from '../../'
6
6
  const resultsText = (results: number): string => results == 1 ? 'Result' : 'Results'
7
7
 
8
8
  type ResultsCountProps = {
9
+ dark?: boolean,
9
10
  results?: ?number,
10
11
  title?: boolean,
11
12
  }
12
- const ResultsCount = ({ results, title }: ResultsCountProps) => (
13
+ const ResultsCount = ({ dark, results, title }: ResultsCountProps) => (
13
14
  <Choose>
14
15
  <When condition={results && title}>
15
16
  <TitleCount
16
17
  align="center"
17
18
  count={results}
19
+ dark={dark}
18
20
  title={`${resultsText(results)}:`}
19
21
  />
20
22
  </When>
21
23
  <When condition={results}>
22
24
  <Caption
23
25
  className="filter-results"
26
+ dark={dark}
24
27
  size="xs"
25
28
  text={`${results} ${resultsText(results)}`}
26
29
  />
@@ -38,11 +38,12 @@ const renderOptions = (options: SortOptions, value: SortValue[], handleChange: (
38
38
  )
39
39
 
40
40
  export type SortMenuProps = {
41
- value?: SortValue[],
42
- options: SortOptions,
41
+ dark?: boolean,
43
42
  onChange: SortingChangeCallback,
43
+ options: SortOptions,
44
+ value?: SortValue[],
44
45
  }
45
- const SortMenu = ({ options, value, onChange }: SortMenuProps) => {
46
+ const SortMenu = ({ dark, options, value, onChange }: SortMenuProps) => {
46
47
  const [hide, updateHide] = useState(true)
47
48
  const toggle = () => updateHide(!hide)
48
49
  const handleChange = (value: SortValue) => {
@@ -52,13 +53,17 @@ const SortMenu = ({ options, value, onChange }: SortMenuProps) => {
52
53
 
53
54
  const sortButton = (
54
55
  <Button
56
+ dark={dark}
55
57
  id="sort-button"
56
58
  onClick={toggle}
57
59
  variant="link"
58
60
  >
59
61
  {map(value, ({ dir, name }) => (
60
62
  <span key={`current-sort-${name}-${dir}`}>
61
- <Icon icon={directionIcon(dir)} />
63
+ <Icon
64
+ dark={dark}
65
+ icon={directionIcon(dir)}
66
+ />
62
67
  {` ${options[name]}`}
63
68
  </span>
64
69
  ))}
@@ -1,7 +1,6 @@
1
1
  /* @flow */
2
2
 
3
3
  import React from 'react'
4
-
5
4
  import FilterSingle, { FilterSingleProps } from './FilterSingle'
6
5
  import FilterDouble, { FilterDoubleProps } from './FilterDouble'
7
6
 
@@ -5,46 +5,54 @@
5
5
  li {
6
6
  padding: 0 $space_sm !important;
7
7
  }
8
- [class^=pb_button_kit][class*=_link]{
8
+
9
+ [class^=pb_button_kit][class*=_link] {
9
10
  flex-shrink:0;
10
11
  padding: 0 $space_xs !important;
11
- [id^="sort"]{
12
+ [id^="sort"] {
12
13
  margin-left: $space_xs !important;
13
14
  }
14
15
  }
15
- [class^=pb_card_body_kit][class*=_md]{
16
+
17
+ [class^=pb_card_body_kit][class*=_md] {
16
18
  padding: 0 !important;
17
19
  }
18
20
  }
19
21
 
20
22
  [class^=pb_filter_kit] {
21
- [class^=pb_circle_icon_button_kit]{
23
+ [class^=pb_circle_icon_button_kit] {
22
24
  padding-left: $space_sm !important;
23
25
  padding-top: $space_sm !important;
24
26
  padding-bottom: $space_sm !important;
25
27
  }
26
- [class^=pb-form]{
28
+
29
+ [class^=pb-form] {
27
30
  padding: $space_sm ;
28
31
  }
29
- .sort-by{
32
+
33
+ .sort-by {
30
34
  flex-shrink:0;
31
35
  margin-left: $space_xs !important;
32
36
  }
33
- .filter-results{
37
+
38
+ .filter-results {
34
39
  margin-left: $space_xs !important;
35
40
  margin-right: $space_xs !important;
36
41
  flex-shrink:0 !important;
37
42
  }
38
- .filter-bottom{
43
+
44
+ .filter-bottom {
39
45
  padding-left: $space_sm !important;
40
46
  padding-right: $space_sm !important;
41
47
  }
42
- .maskContainer{
43
- display: flex;
44
- overflow-x: hidden;
45
- align-items: center;
46
- flex-grow: 1;
48
+
49
+ .maskContainer {
50
+ display: flex;
51
+ overflow-x: hidden;
52
+ align-items: center;
53
+ flex-grow: 1;
47
54
  }
55
+
48
56
  .filters {
49
57
  display: flex;
50
58
  flex-shrink: 1;
@@ -54,32 +62,45 @@
54
62
  padding-top: $space_md;
55
63
  padding-bottom: $space_md;
56
64
 
57
- &::-webkit-scrollbar{
58
- display: none;
59
- }
65
+ &::-webkit-scrollbar {
66
+ display: none;
67
+ }
68
+
60
69
  .filter {
61
70
  flex: 0 0 auto;
62
71
  padding-left: $space_xs;
63
72
  padding-right: $space_xs;
64
73
  border-right: 1px solid $border_light !important;
65
74
  }
75
+ }
66
76
 
67
- }
68
- .maskContainer::after {
69
- content: " ";
77
+ .maskContainer::after {
70
78
  background-image: linear-gradient(to right, rgba($card_light,.3) , rgba($card_light,1));
79
+ content: " ";
71
80
  height: 48px;
72
81
  padding-left: $space_xl;
73
82
  margin-left: -$space_lg;
74
83
  z-index: 1;
75
- }
76
- .maskContainer::before {
84
+ }
85
+
86
+ .maskContainer::before {
87
+ background-image: linear-gradient(to right, rgba($card_light,.3) , rgba($card_light,1));
77
88
  content: " ";
78
- background-image: linear-gradient(to left, rgba($card_light,.3) , rgba($card_light,1));
79
89
  height: 48px;
80
90
  padding-right: $space_sm;
81
91
  margin-right: -$space_xs;
82
92
  z-index: 1;
83
- }
93
+ }
84
94
 
95
+ &[class*=dark] {
96
+ .filters .filter {
97
+ border-right: 1px solid $border_dark !important;
98
+ }
99
+ .maskContainer::before {
100
+ opacity:0;
101
+ }
102
+ .maskContainer::after {
103
+ opacity:0;
104
+ }
105
+ }
85
106
  }