playbook_ui 12.30.1.pre.alpha.PLAY802responsivetitlekit909 → 12.30.1.pre.alpha.PLAY906multilevelselectedidsprop912

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 721bb127babde220f239ae7ba3a8fc3bbbff5c8078e6d58ed0fa3cebd33724db
4
- data.tar.gz: c896e6c5fae4da4004ef5fa234ae930013d31a68b84f93cb3da36f9e31a1f21c
3
+ metadata.gz: 5bb99bff289e00a7d9a4304de6118e54be2349a7d705bd69f07307940b277db5
4
+ data.tar.gz: 34b932013c8f26a6c25afe95e725fc4bac6f62b323e49e134ab0020a312107f6
5
5
  SHA512:
6
- metadata.gz: 65acd0c7af39e80e7157b87e2544216cce50c8ef582a002912d8f56d7a31ce802a543df41d5a31854649bddad6b9bb1def1d3e8eb088866252d4528d9a0926f5
7
- data.tar.gz: d124637fac9f1a5601490420173f81909efcd40f3abeea66f9f2bcb7a1ef97f6211108ebf37cfe3974a6e9f1ed8f2c25cbbe5b1756b59a5ac4ff0ea81e50e813
6
+ metadata.gz: 245aac90b727280ef79d58a04569cc93f559d09b5ad2bd1350260c1eea9c4b02030de75e6ec7ff9a7d6751006c0c32bb7be946bc1ad813032d00a5ced8e240e0
7
+ data.tar.gz: af04cb501838d28a314d6de419fd6a5ca7782ce2f0973f80ba24ca048d82fdbad61041c56d43783f38ec1f77a6b7a56fd5b09eff85528ddab775557d6a0f2a9f
@@ -28,6 +28,7 @@ type MultiLevelSelectProps = {
28
28
  returnAllSelected?: boolean
29
29
  treeData?: { [key: string]: string }[]
30
30
  onSelect?: (prop: { [key: string]: any }) => void
31
+ selectedIds?: string[]
31
32
  } & GlobalProps
32
33
 
33
34
  const MultiLevelSelect = (props: MultiLevelSelectProps) => {
@@ -41,6 +42,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
41
42
  returnAllSelected = false,
42
43
  treeData,
43
44
  onSelect = () => {},
45
+ selectedIds
44
46
  } = props
45
47
 
46
48
  const ariaProps = buildAriaProps(aria)
@@ -70,8 +72,8 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
70
72
 
71
73
 
72
74
  useEffect(() => {
73
- setFormattedData(addCheckedAndParentProperty(treeData))
74
- }, [treeData])
75
+ setFormattedData(addCheckedAndParentProperty(treeData, selectedIds))
76
+ }, [treeData, selectedIds])
75
77
 
76
78
  useEffect(() => {
77
79
  if (returnAllSelected) {
@@ -160,6 +162,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
160
162
  //function to map over data and add parent_id + depth property to each item
161
163
  const addCheckedAndParentProperty = (
162
164
  treeData: { [key: string]: any }[],
165
+ selectedIds: string[],
163
166
  parent_id: string = null,
164
167
  depth: number = 0,
165
168
  ) => {
@@ -169,6 +172,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
169
172
  return treeData.map((item: { [key: string]: any } | any) => {
170
173
  const newItem = {
171
174
  ...item,
175
+ checked: selectedIds && selectedIds.length && selectedIds.includes(item.id),
172
176
  parent_id,
173
177
  depth,
174
178
  }
@@ -179,6 +183,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
179
183
  : item.children
180
184
  newItem.children = addCheckedAndParentProperty(
181
185
  children,
186
+ selectedIds,
182
187
  newItem.id,
183
188
  depth + 1
184
189
  )
@@ -1,6 +1,5 @@
1
1
  @import "../tokens/titles";
2
2
  @import "../tokens/colors";
3
- @import "../tokens/screen_sizes";
4
3
  @import './title_mixin';
5
4
 
6
5
  [class^=pb_title_kit]{
@@ -34,21 +33,4 @@
34
33
  &[class*=_thin] {
35
34
  @include pb_title_thin;
36
35
  }
37
-
38
- @each $size, $size_value in $breakpoints_grid {
39
- @each $title_size_value in [1, 2, 3, 4] {
40
- $min_size: map-get($size_value, "min");
41
- $max_size: map-get($size_value, "max");
42
- &[class*=_#{$size}_#{$title_size_value}] {
43
- @include break_on($min_size, $max_size) {
44
- @if $title_size_value == 1 { @include pb_title_1; }
45
- @else if $title_size_value == 2 { @include pb_title_2; }
46
- @else if $title_size_value == 3 { @include pb_title_3; }
47
- @else if $title_size_value == 4 { @include pb_title_4; }
48
- @include title_colors;
49
- @if $title_size_value != 4 { @include pb_title_bold; }
50
- }
51
- }
52
- }
53
- }
54
36
  }
@@ -3,9 +3,6 @@ import classnames from 'classnames'
3
3
  import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
4
4
  import { deprecatedProps, GlobalProps, globalProps } from '../utilities/globalProps'
5
5
 
6
- type SizeType = 1 | 2 | 3 | 4 | "1" | "2" | "3" | "4"
7
- type SizeResponsiveType = {[key: string]: SizeType}
8
-
9
6
  type TitleProps = {
10
7
  aria?: {[key: string]: string},
11
8
  bold?: boolean,
@@ -14,7 +11,7 @@ type TitleProps = {
14
11
  color?: "default" | "light" | "lighter" | "success" | "error" | "link",
15
12
  data?: {[key: string]: string},
16
13
  id?: string,
17
- size?: SizeType | SizeResponsiveType,
14
+ size?: 1 | 2| 3| 4 | "1" | "2" | "3" | "4",
18
15
  tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "div" | "span",
19
16
  text?: string,
20
17
  variant?: null | "link",
@@ -39,24 +36,9 @@ const Title = (props: TitleProps): React.ReactElement => {
39
36
  const ariaProps: {[key: string]: string | number} = buildAriaProps(aria)
40
37
  const dataProps: {[key: string]: string | number} = buildDataProps(data)
41
38
  const getBold = bold ? '' : 'thin'
42
- const isSizeNumberOrString = typeof size === "number" || typeof size === "string"
43
-
44
- const buildResponsiveSizeCss = () => {
45
- let css = ''
46
-
47
- if (!isSizeNumberOrString) {
48
- Object.entries(size).forEach((sizeObj) => {
49
- css += `pb_title_kit_${sizeObj[0]}_${sizeObj[1]} `
50
- })
51
- }
52
-
53
- return css.trim()
54
- }
55
-
56
39
  const classes = classnames(
57
- buildCss('pb_title_kit', isSizeNumberOrString ? `size_${size}` : "", variant, color, getBold),
40
+ buildCss('pb_title_kit', `size_${size}`, variant, color, getBold),
58
41
  globalProps(props),
59
- buildResponsiveSizeCss(),
60
42
  className
61
43
  )
62
44
  const Tag: React.ReactElement | any = `${tag}`
@@ -3,10 +3,8 @@ examples:
3
3
  - title_default: Default UI
4
4
  - title_light_weight: Light Weight UI
5
5
  - title_colors: Colors
6
- - title_responsive: Responsive
7
6
 
8
7
  react:
9
8
  - title_default: Default UI
10
9
  - title_light_weight: Light Weight UI
11
10
  - title_colors: Colors
12
- - title_responsive: Responsive
@@ -1,4 +1,3 @@
1
1
  export { default as TitleDefault } from './_title_default.jsx'
2
2
  export { default as TitleLightWeight } from './_title_light_weight.jsx'
3
3
  export { default as TitleColors } from './_title_colors.jsx'
4
- export { default as TitleResponsive } from './_title_responsive.jsx'
@@ -6,7 +6,9 @@ module Playbook
6
6
  prop :color, type: Playbook::Props::Enum,
7
7
  values: [nil, "default", "light", "lighter", "success", "error", "link"],
8
8
  default: nil
9
- prop :size, default: 3
9
+ prop :size, type: Playbook::Props::Enum,
10
+ values: [1, 2, 3, 4],
11
+ default: 3
10
12
  prop :tag, type: Playbook::Props::Enum,
11
13
  values: %w[h1 h2 h3 h4 h5 h6 p div span],
12
14
  default: "h3"
@@ -18,31 +20,12 @@ module Playbook
18
20
  prop :bold, type: Playbook::Props::Boolean, default: true
19
21
 
20
22
  def classname
21
- if is_size_responsive
22
- generate_classname("pb_title_kit", variant, color, is_bold) + generate_responsive_size_classname
23
- else
24
- generate_classname("pb_title_kit", size, variant, color, is_bold)
25
- end
23
+ generate_classname("pb_title_kit", size, variant, color, is_bold)
26
24
  end
27
25
 
28
26
  def is_bold
29
27
  bold ? nil : "thin"
30
28
  end
31
-
32
- def is_size_responsive
33
- try(:size).is_a?(::Hash)
34
- end
35
-
36
- def generate_responsive_size_classname
37
- css = ""
38
- if is_size_responsive
39
- size.each do |key, value|
40
- css += " pb_title_kit_#{key}_#{value}"
41
- end
42
- end
43
-
44
- css unless css.blank?
45
- end
46
29
  end
47
30
  end
48
31
  end
@@ -4,52 +4,39 @@ import { render, screen } from '../utilities/test-utils'
4
4
  import Title from './_title'
5
5
 
6
6
  test('returns namespaced class name', () => {
7
- render(
8
- <Title
9
- data={{ testid: 'primary-test' }}
10
- text="Test colors"
11
- />
12
- )
13
-
14
- const kit = screen.getByTestId('primary-test')
15
- expect(kit).toHaveClass('pb_title_kit_size_3')
7
+ render(
8
+ <Title
9
+ data={{ testid: 'primary-test' }}
10
+ text="Test colors"
11
+ />
12
+ )
13
+
14
+ const kit = screen.getByTestId('primary-test')
15
+ expect(kit).toHaveClass('pb_title_kit_size_3')
16
16
  })
17
17
 
18
18
  test('with thin font weight', () => {
19
- render(
20
- <Title
21
- bold={false}
22
- data={{ testid: 'primary-test' }}
23
- text="Test thin font weight"
24
- />
25
- )
26
-
27
- const kit = screen.getByTestId('primary-test')
28
- expect(kit).toHaveClass('pb_title_kit_size_3_thin')
19
+ render(
20
+ <Title
21
+ bold={false}
22
+ data={{ testid: 'primary-test' }}
23
+ text="Test thin font weight"
24
+ />
25
+ )
26
+
27
+ const kit = screen.getByTestId('primary-test')
28
+ expect(kit).toHaveClass('pb_title_kit_size_3_thin')
29
29
  })
30
30
 
31
31
  test('with colors', () => {
32
- render(
33
- <Title
34
- color="success"
35
- data={{ testid: 'primary-test' }}
36
- text="Test colors"
37
- />
38
- )
39
-
40
- const kit = screen.getByTestId('primary-test')
41
- expect(kit).toHaveClass('pb_title_kit_size_3_success')
42
- })
43
-
44
- test('with responsive title', () => {
45
- render(
46
- <Title
47
- data={{ testid: 'primary-test' }}
48
- size={{ xs: "3", sm: "2", md: "1" }}
49
- text="Responsive Title"
50
- />
51
- )
52
-
53
- const kit = screen.getByTestId('primary-test')
54
- expect(kit).toHaveClass('pb_title_kit pb_title_kit_xs_3 pb_title_kit_sm_2 pb_title_kit_md_1')
32
+ render(
33
+ <Title
34
+ color="success"
35
+ data={{ testid: 'primary-test' }}
36
+ text="Test colors"
37
+ />
38
+ )
39
+
40
+ const kit = screen.getByTestId('primary-test')
41
+ expect(kit).toHaveClass('pb_title_kit_size_3_success')
55
42
  })