playbook_ui 7.6.2.pre.alpha1 → 7.8.1

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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/{sample_screenshot.svg → full_page_samples.svg} +0 -0
  3. data/app/controllers/playbook/application_controller.rb +2 -0
  4. data/app/pb_kits/playbook/_playbook.scss +2 -0
  5. data/app/pb_kits/playbook/data/menu.yml +2 -0
  6. data/app/pb_kits/playbook/index.js +3 -1
  7. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +1 -1
  8. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +27 -0
  9. data/app/pb_kits/playbook/pb_background/_background.html.erb +1 -1
  10. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +8 -2
  11. data/app/pb_kits/playbook/pb_filter/Filter/FilterBackground.jsx +9 -2
  12. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.jsx +17 -6
  13. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.jsx +15 -5
  14. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +2 -1
  15. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.jsx +4 -1
  16. data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +9 -4
  17. data/app/pb_kits/playbook/pb_filter/Filter/index.jsx +0 -1
  18. data/app/pb_kits/playbook/pb_filter/_filter.scss +44 -23
  19. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +3 -2
  20. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +5 -4
  21. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.html.erb +6 -4
  22. data/app/pb_kits/playbook/pb_filter/docs/_filter_no_background.jsx +73 -28
  23. data/app/pb_kits/playbook/pb_filter/docs/_filter_only.jsx +3 -7
  24. data/app/pb_kits/playbook/pb_filter/docs/_filter_single.jsx +4 -3
  25. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.html.erb +1 -2
  26. data/app/pb_kits/playbook/pb_filter/docs/_sort_only.jsx +3 -3
  27. data/app/pb_kits/playbook/pb_filter/docs/example.yml +4 -5
  28. data/app/pb_kits/playbook/pb_form_group/_form_group.jsx +1 -1
  29. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +8 -0
  30. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_button.jsx +2 -0
  31. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_date_picker.jsx +3 -1
  32. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_default.jsx +4 -1
  33. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +1 -1
  34. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +4 -2
  35. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card.jsx +3 -1
  36. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_selectable_card_icon.jsx +3 -1
  37. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.html.erb +32 -4
  38. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_typeahead.jsx +1 -0
  39. data/app/pb_kits/playbook/pb_form_group/docs/example.yml +2 -2
  40. data/app/pb_kits/playbook/pb_form_group/docs/index.js +1 -1
  41. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.html.erb +24 -0
  42. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.jsx +105 -0
  43. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +64 -0
  44. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +49 -0
  45. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +67 -0
  46. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.html.erb +11 -0
  47. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_default.jsx +25 -0
  48. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.html.erb +20 -0
  49. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_sizes.jsx +35 -0
  50. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.html.erb +7 -0
  51. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_vertical.jsx +19 -0
  52. data/app/pb_kits/playbook/pb_icon_stat_value/docs/example.yml +15 -0
  53. data/app/pb_kits/playbook/pb_icon_stat_value/docs/index.js +4 -0
  54. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +52 -0
  55. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +2 -2
  56. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.jsx +2 -2
  57. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.html.erb +1 -0
  58. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.jsx +123 -0
  59. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +216 -0
  60. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.html.erb +1 -0
  61. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_default.jsx +10 -0
  62. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.html.erb +3 -0
  63. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_focus.jsx +11 -0
  64. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.html.erb +1 -0
  65. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_simple.jsx +10 -0
  66. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.html.erb +1 -0
  67. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_sticky.jsx +14 -0
  68. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.html.erb +115 -0
  69. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_templates.jsx +39 -0
  70. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +15 -0
  71. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +5 -0
  72. data/app/pb_kits/playbook/pb_rich_text_editor/docs/templates.js +75 -0
  73. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +55 -0
  74. data/app/pb_kits/playbook/pb_rich_text_editor/useFocus.js +20 -0
  75. data/app/pb_kits/playbook/pb_table/_table.scss +45 -13
  76. data/app/pb_kits/playbook/pb_table/docs/_description.md +1 -0
  77. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.html.erb +34 -0
  78. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.jsx +43 -0
  79. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_column.md +2 -0
  80. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.html.erb +34 -0
  81. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.jsx +43 -0
  82. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_row.md +2 -0
  83. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.html.erb +63 -0
  84. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.jsx +70 -0
  85. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_data.md +2 -0
  86. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.html.erb +52 -0
  87. data/app/pb_kits/playbook/pb_table/docs/_table_alignment_shift_row.jsx +61 -0
  88. data/app/pb_kits/playbook/pb_table/docs/example.yml +9 -1
  89. data/app/pb_kits/playbook/pb_table/docs/index.js +4 -1
  90. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.html.erb +3 -6
  91. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +15 -21
  92. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +0 -17
  93. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.html.erb +4 -1
  94. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx +12 -1
  95. data/app/pb_kits/playbook/pb_time_stacked/docs/example.yml +1 -4
  96. data/app/pb_kits/playbook/pb_time_stacked/docs/index.js +0 -1
  97. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.rb +7 -11
  98. data/app/pb_kits/playbook/react_rails_kits.js +1 -0
  99. data/app/pb_kits/playbook/utilities/globalProps.js +9 -0
  100. data/app/pb_kits/playbook/utilities/test-utils.js +24 -0
  101. data/app/pb_kits/playbook/vendor.js +2 -0
  102. data/lib/playbook/version.rb +1 -1
  103. metadata +53 -10
  104. data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.html.erb +0 -2
  105. 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: 1d8276e5efd84c6c73212b72adf10a80814e22d0093b730c53abd32253536dce
4
- data.tar.gz: '08c66668a20b92f1b125564e583a7378796eb3dbd7b6a4b26c0a8912f58f4424'
3
+ metadata.gz: 7f1b20f99582094b211e94e5de1f615e7e7948e8e618062e2b77a224d7ffb69b
4
+ data.tar.gz: 2d3195399d5eb4a17b30f9b9e26c1420ff7cb7263d95fc3e32c2a7800a3f9e58
5
5
  SHA512:
6
- metadata.gz: 9142a13e427313917314ad4429f09e26e8c64149fc7d044e364bfa29a2ded5832b4e779a6089f97249edf844458bc3d5f7c6cadd0b1bd22671c42138b0fbf175
7
- data.tar.gz: f75d162c03bdad07f27791ec047bb48dba310adb11ca2eb1b4d98e02d4e3697d9a339ad7344b655ad0c5de9abe0edefd53dd4524bfcc34797246d072af848d85
6
+ metadata.gz: 264ab30755326f86f13566ff437797dc37775801c31bee01584c9fc2cc607656cc00f8fb045dea32bf89582b437f2e1efaca4f68c339be12c39b081351b94f8f
7
+ data.tar.gz: a8fa83550b31847d8739f1248e800305969ff698ea198a05becb7cd5299bc2e3057309ad30be2b3bd7120fec1a6e16c592d0169d281947a5b2bf79090b8ebb9f
@@ -8,4 +8,6 @@ module Playbook
8
8
  helper Playbook::PbSampleHelper
9
9
  append_view_path Playbook::Engine.root + "app/pb_kits"
10
10
  end
11
+
12
+
11
13
  end
@@ -38,6 +38,7 @@
38
38
  @import 'pb_home_address_street/home_address_street';
39
39
  @import 'pb_icon/icon';
40
40
  @import 'pb_icon_circle/icon_circle';
41
+ @import 'pb_icon_stat_value/icon_stat_value';
41
42
  @import 'pb_icon_value/icon_value';
42
43
  @import 'pb_image/image';
43
44
  @import 'pb_label_pill/label_pill';
@@ -60,6 +61,7 @@
60
61
  @import 'pb_progress_simple/progress_simple';
61
62
  @import 'pb_progress_step/progress_step';
62
63
  @import 'pb_radio/radio';
64
+ @import 'pb_rich_text_editor/rich_text_editor';
63
65
  @import 'pb_section_separator/section_separator';
64
66
  @import 'pb_select/select';
65
67
  @import 'pb_selectable_card/selectable_card';
@@ -37,6 +37,7 @@ kits:
37
37
  - highlight
38
38
  - icon
39
39
  - icon_circle
40
+ - icon_stat_value
40
41
  - icon_value
41
42
  - image
42
43
  - layout
@@ -55,6 +56,7 @@ kits:
55
56
  - progress_pills
56
57
  - progress_simple
57
58
  - progress_step
59
+ - rich_text_editor
58
60
  - section_separator
59
61
  - source
60
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'
@@ -41,6 +41,7 @@ export Highlight from './pb_highlight/_highlight.jsx'
41
41
  export HomeAddressStreet from './pb_home_address_street/_home_address_street.jsx'
42
42
  export Icon from './pb_icon/_icon.jsx'
43
43
  export IconCircle from './pb_icon_circle/_icon_circle.jsx'
44
+ export IconStatValue from './pb_icon_stat_value/_icon_stat_value.jsx'
44
45
  export IconValue from './pb_icon_value/_icon_value.jsx'
45
46
  export Image from './pb_image/_image.jsx'
46
47
  export LabelPill from './pb_label_pill/_label_pill.jsx'
@@ -66,6 +67,7 @@ export ProgressSimple from './pb_progress_simple/_progress_simple.jsx'
66
67
  export ProgressStep from './pb_progress_step/_progress_step.jsx'
67
68
  export ProgressStepItem from './pb_progress_step/_progress_step_item.jsx'
68
69
  export Radio from './pb_radio/_radio.jsx'
70
+ export RichTextEditor from './pb_rich_text_editor/_rich_text_editor.jsx'
69
71
  export SectionSeparator from './pb_section_separator/_section_separator.jsx'
70
72
  export Select from './pb_select/_select.jsx'
71
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
+ })
@@ -4,7 +4,7 @@
4
4
  data: object.data,
5
5
  id: object.id,
6
6
  class: object.classname,
7
- style: `background-image: url(#{object.image_url});`
7
+ style: "background-image: url('#{object.image_url}');"
8
8
  ) do %>
9
9
  <%= capture(&object.children) %>
10
10
  <% end %>
@@ -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
  }