playbook_ui 14.25.0.pre.alpha.testingcss9751 → 14.25.0.pre.alpha.testingcss9796

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_card/_card.scss +99 -73
  3. data/app/pb_kits/playbook/pb_card/_card.tsx +26 -11
  4. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +3 -3
  5. data/app/pb_kits/playbook/pb_card/card.rb +8 -7
  6. data/app/pb_kits/playbook/pb_card/card_header.rb +6 -2
  7. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  8. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +19 -19
  9. data/app/pb_kits/playbook/pb_currency/_currency.scss +2 -2
  10. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +2 -2
  11. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +1 -1
  12. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  13. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  14. data/app/pb_kits/playbook/pb_flex/flex.rb +12 -52
  15. data/app/pb_kits/playbook/pb_flex/flex_item.rb +1 -46
  16. data/app/pb_kits/playbook/pb_image/_image.scss +2 -2
  17. data/app/pb_kits/playbook/pb_layout/_layout.scss +14 -8
  18. data/app/pb_kits/playbook/pb_layout/body.rb +1 -1
  19. data/app/pb_kits/playbook/pb_layout/footer.rb +1 -1
  20. data/app/pb_kits/playbook/pb_layout/header.rb +1 -1
  21. data/app/pb_kits/playbook/pb_layout/item.rb +1 -1
  22. data/app/pb_kits/playbook/pb_layout/layout.rb +6 -6
  23. data/app/pb_kits/playbook/pb_layout/sidebar.rb +1 -1
  24. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +1 -1
  25. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +2 -2
  26. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +24 -24
  27. data/app/pb_kits/playbook/pb_source/_source.scss +2 -2
  28. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +44 -23
  29. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  30. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +16 -10
  31. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +1 -4
  32. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  33. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  34. data/app/pb_kits/playbook/pb_title/_title.scss +2 -0
  35. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +4 -1
  36. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +3 -4
  37. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  38. data/app/pb_kits/playbook/pb_user/_user.scss +83 -33
  39. data/dist/chunks/{_line_graph-Dv_ODxW3.js → _line_graph-CApw7aQD.js} +1 -1
  40. data/dist/chunks/_typeahead-J1_avqdO.js +6 -0
  41. data/dist/chunks/{_weekday_stacked-Bv6tOPKC.js → _weekday_stacked-C3QAjEFv.js} +2 -2
  42. data/dist/chunks/vendor.js +1 -1
  43. data/dist/playbook-doc.js +1 -1
  44. data/dist/playbook-rails-react-bindings.js +1 -1
  45. data/dist/playbook-rails.js +1 -1
  46. data/dist/playbook.css +1 -1
  47. data/lib/playbook/version.rb +1 -1
  48. metadata +5 -5
  49. data/dist/chunks/_typeahead-CD5RAaaP.js +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 230cb771b16126875e87e626e53cd633a26cbe4b65e0e9100405e72dd53a4f87
4
- data.tar.gz: 7f513c46accbd0f95a5092ce5f1c60ca2cdec020e413407bfae0ec11ba0d5574
3
+ metadata.gz: 2bedb56f538523718e8f5b7f585a2670de123f7beb3f2fc42224751cc4ce5638
4
+ data.tar.gz: 8228f719bffa4de746fc494c2a38c5e2dbdbe676c7696f3b7566013997c2dd93
5
5
  SHA512:
6
- metadata.gz: 24028e6570bc44e5665a2f6dd2c4b034fbc2dc6fc0d28fa664714540893c344e1246b013d9ee78fb281d503e76440879ceeecdb90c794986b658c03e07b3b2d9
7
- data.tar.gz: 889ea6030813ab4ad291437fb20841beb46eb742c46fed355f74b730ed14f76c1c36bac0004c489c54b6b839806d9fc1de0122b6129d8720160ee58a76017c52
6
+ metadata.gz: ad617882ed8a3ce22a8a824a3ec1b86f8c526bbd57a903d9e116e894bce32833ffc57813fc54f23ddaf3e0a9a6e2be264f9d288d1eacd34aec365126419970b1
7
+ data.tar.gz: a69a24578b65fa9ca6a9c5255e6d9340073acfc7215b2d82fd3ed55c965cd45d7c27fcf4628d4f8bb0ad043d5c9c2752be3debe7378e843dadc5ae05d874fd8e
@@ -1,55 +1,40 @@
1
1
  @import "card_mixin";
2
2
  @import "../utilities/colors";
3
+ @import "../tokens/border_radius";
3
4
 
4
- // Main card selector - matches all pb_card_kit classes
5
- [class^="pb_card_kit"] {
5
+ .pb_card_kit {
6
6
  @include pb_card;
7
7
  padding: $space_md;
8
8
 
9
- // Selected state
10
- &[class*="_selected"] {
11
- @include pb_card_selected;
12
- }
13
-
14
- // Dark theme
15
- &.dark {
16
- @include pb_card_dark;
17
-
18
- &[class*="_selected"] {
19
- @include pb_card_selected_dark;
20
- }
21
- }
22
-
23
- // Border none variants
24
- &[class*="_border_none"] {
25
- border-width: 0px;
9
+ .card_draggable_handle {
10
+ align-self: center;
11
+ color: $text_lt_light;
26
12
  }
13
+ }
27
14
 
28
- // Highlight variants
29
- &[class*="_highlight"] {
30
- overflow: hidden;
31
- }
15
+ // Selected state
16
+ .pb_card_kit_selected {
17
+ @include pb_card_selected;
18
+ }
32
19
 
33
- &[class*="_highlight_top"] {
34
- @each $color_name, $color_value in $pb_card_highlight_colors {
35
- &[class*="_highlight_#{$color_name}"]::before {
36
- @include pb_card_highlight(100%, $pb_card_highlight_size, $color_value);
37
- }
38
- }
20
+ // Dark mode
21
+ .pb_card_kit.dark {
22
+ @include pb_card_dark;
23
+
24
+ &.pb_card_kit_selected {
25
+ @include pb_card_selected_dark;
39
26
  }
27
+ }
40
28
 
41
- &[class*="_highlight_side"] {
42
- @each $color_name, $color_value in $pb_card_highlight_colors {
43
- &[class*="_highlight_#{$color_name}"]::before {
44
- @include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
45
- }
46
- }
47
- }
29
+ // Border styles
30
+ .pb_card_kit_border_none {
31
+ border-width: 0px;
32
+ }
48
33
 
49
- .card_draggable_handle {
50
- align-self: center;
51
- color: $text_lt_light;
52
- }
34
+ // Highlight styles
35
+ .pb_card_kit_highlight_top,
36
+ .pb_card_kit_highlight_side {
37
+ overflow: hidden;
53
38
  }
54
39
 
55
40
  @function ends-with($string, $suffix) {
@@ -60,8 +45,22 @@
60
45
  @return str-slice($string, -$suffix-length) == $suffix;
61
46
  }
62
47
 
63
- // Header styles
64
- [class^="pb_card_header_kit"] {
48
+ // Highlight top variants
49
+ @each $color_name, $color_value in $pb_card_highlight_colors {
50
+ .pb_card_kit_highlight_top.pb_card_kit_highlight_#{$color_name}::before {
51
+ @include pb_card_highlight(100%, $pb_card_highlight_size, $color_value);
52
+ }
53
+ }
54
+
55
+ // Highlight side variants
56
+ @each $color_name, $color_value in $pb_card_highlight_colors {
57
+ .pb_card_kit_highlight_side.pb_card_kit_highlight_#{$color_name}::before {
58
+ @include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
59
+ }
60
+ }
61
+
62
+ // Card Header
63
+ .pb_card_header_kit {
65
64
  flex-grow: 0;
66
65
  flex-shrink: 0;
67
66
  flex-basis: auto;
@@ -70,45 +69,72 @@
70
69
  border: 0;
71
70
  border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
72
71
 
73
- @each $color_name, $color_value in $pb_card_header_colors {
74
- @if not ends-with($color_name, '_subtle') {
75
- &[class*="_#{$color_name}"] {
76
- @include pb_card_header_color($color_value);
77
- color: lightenText($color_value);
78
- }
79
- }
72
+ // Inherit border radius from parent card
73
+ .pb_card_kit_border_radius_xs & {
74
+ border-radius: $border_radius_xs $border_radius_xs 0px 0px;
80
75
  }
81
-
82
- @each $color_name, $color_value in $pb_card_header_colors {
83
- @if ends-with($color_name, '_subtle') {
84
- &[class*="_#{$color_name}"] {
85
- @include pb_card_header_color($color_value);
86
- color: lightenText($color_value);
87
- }
76
+ .pb_card_kit_border_radius_sm & {
77
+ border-radius: $border_radius_sm $border_radius_sm 0px 0px;
78
+ }
79
+ .pb_card_kit_border_radius_md & {
80
+ border-radius: $border_radius_md $border_radius_md 0px 0px;
81
+ }
82
+ .pb_card_kit_border_radius_lg & {
83
+ border-radius: $border_radius_lg $border_radius_lg 0px 0px;
84
+ }
85
+ .pb_card_kit_border_radius_xl & {
86
+ border-radius: $border_radius_xl $border_radius_xl 0px 0px;
87
+ }
88
+ .pb_card_kit_border_radius_rounded & {
89
+ border-radius: $border_radius_rounded $border_radius_rounded 0px 0px;
90
+ }
91
+ .pb_card_kit_border_radius_none & {
92
+ border-radius: 0px;
93
+ }
94
+ }
95
+
96
+ // Header colors (non-subtle)
97
+ @each $color_name, $color_value in $pb_card_header_colors {
98
+ @if not ends-with($color_name, '_subtle') {
99
+ .pb_card_header_kit_#{$color_name} {
100
+ @include pb_card_header_color($color_value);
101
+ color: lightenText($color_value);
88
102
  }
89
103
  }
90
-
91
- @each $color_name, $color_value in $pb_card_header_colors {
92
- &[class*="_#{$color_name}_striped"] {
93
- @if ((type-of($color_value) == color)) {
94
- background: repeating-linear-gradient(
95
- 45deg,
96
- $color_value,
97
- $color_value 10px,
98
- lighten( $color_value, 5% ) 10px,
99
- lighten( $color_value, 5% ) 20px
100
- );
101
- }
104
+ }
105
+
106
+ // Header colors (subtle)
107
+ @each $color_name, $color_value in $pb_card_header_colors {
108
+ @if ends-with($color_name, '_subtle') {
109
+ .pb_card_header_kit_#{$color_name} {
110
+ @include pb_card_header_color($color_value);
111
+ color: lightenText($color_value);
102
112
  }
103
113
  }
104
-
105
- &[class*="_white"] {
106
- border-bottom: 1px solid $border_light;
114
+ }
115
+
116
+ // Header striped patterns
117
+ @each $color_name, $color_value in $pb_card_header_colors {
118
+ .pb_card_header_kit_#{$color_name}_striped {
119
+ @if ((type-of($color_value) == color)) {
120
+ background: repeating-linear-gradient(
121
+ 45deg,
122
+ $color_value,
123
+ $color_value 10px,
124
+ lighten( $color_value, 5% ) 10px,
125
+ lighten( $color_value, 5% ) 20px
126
+ );
127
+ }
107
128
  }
108
129
  }
109
130
 
110
- // Body styles
111
- [class^="pb_card_body_kit"] {
131
+ // White header special case
132
+ .pb_card_header_kit_white {
133
+ border-bottom: 1px solid $border_light;
134
+ }
135
+
136
+ // Card Body
137
+ .pb_card_body_kit {
112
138
  flex-grow: 0;
113
139
  flex-shrink: 0;
114
140
  flex-basis: auto;
@@ -5,7 +5,7 @@ import { get } from '../utilities/object'
5
5
 
6
6
  import classnames from 'classnames'
7
7
 
8
- import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
8
+ import { buildAriaProps, buildDataProps, buildHtmlProps } from '../utilities/props'
9
9
  import { GlobalProps, globalProps, globalInlineProps } from '../utilities/globalProps'
10
10
  import type { ProductColors, CategoryColors, BackgroundColors, StatusColors } from '../types/colors'
11
11
 
@@ -54,7 +54,14 @@ type CardBodyProps = {
54
54
  // Header component
55
55
  const Header = (props: CardHeaderProps) => {
56
56
  const { children, className, headerColor = 'category_1', headerColorStriped = false } = props
57
- const headerCSS = buildCss('pb_card_header_kit', `${headerColor}`, headerColorStriped ? 'striped' : '')
57
+ const headerColorCSS = `pb_card_header_kit_${headerColor}`
58
+ const headerStripedCSS = headerColorStriped ? `pb_card_header_kit_${headerColor}_striped` : ''
59
+
60
+ const headerCSS = classnames(
61
+ 'pb_card_header_kit',
62
+ headerColorCSS,
63
+ headerStripedCSS
64
+ )
58
65
 
59
66
  const headerSpacing = globalProps(props)
60
67
 
@@ -69,11 +76,10 @@ const Header = (props: CardHeaderProps) => {
69
76
  // Body component
70
77
  const Body = (props: CardBodyProps) => {
71
78
  const { children, className } = props
72
- const bodyCSS = buildCss('pb_card_body_kit')
73
79
  const bodySpacing = globalProps(props)
74
80
 
75
81
  return (
76
- <div className={classnames(bodyCSS, bodySpacing, className)}>
82
+ <div className={classnames('pb_card_body_kit', bodySpacing, className)}>
77
83
  {children}
78
84
  </div>
79
85
  )
@@ -96,13 +102,22 @@ const Card = (props: CardPropTypes): React.ReactElement => {
96
102
  selected = false,
97
103
  tag = 'div',
98
104
  } = props
99
- const borderCSS = borderNone == true ? 'border_none' : ''
100
- const selectedCSS = selected == true ? 'selected' : 'deselected'
101
- const backgroundCSS = background == 'none' ? '' : `background_${background}`
102
- const cardCss = buildCss('pb_card_kit', selectedCSS, borderCSS, `border_radius_${borderRadius}`, backgroundCSS, {
103
- [`highlight_${highlight.position}`]: highlight.position,
104
- [`highlight_${highlight.color}`]: highlight.color,
105
- })
105
+ const borderCSS = borderNone == true ? 'pb_card_kit_border_none' : ''
106
+ const selectedCSS = selected == true ? 'pb_card_kit_selected' : ''
107
+ const backgroundCSS = background == 'none' ? '' : `pb_card_kit_background_${background}`
108
+ const borderRadiusCSS = borderRadius !== 'md' ? `pb_card_kit_border_radius_${borderRadius}` : ''
109
+ const highlightPositionCSS = highlight.position ? `pb_card_kit_highlight_${highlight.position}` : ''
110
+ const highlightColorCSS = highlight.color ? `pb_card_kit_highlight_${highlight.color}` : ''
111
+
112
+ const cardCss = classnames(
113
+ 'pb_card_kit', // Base class
114
+ selectedCSS,
115
+ borderCSS,
116
+ borderRadiusCSS,
117
+ backgroundCSS,
118
+ highlightPositionCSS,
119
+ highlightColorCSS
120
+ )
106
121
  const ariaProps: {[key: string]: string} = buildAriaProps(aria)
107
122
  const dataProps: {[key: string]: string} = buildDataProps(data)
108
123
  const htmlProps = buildHtmlProps(htmlOptions);
@@ -52,19 +52,19 @@ $pb_card_header_colors: map-merge(map-merge(map-merge($product_colors, $addition
52
52
  background-color: $white;
53
53
 
54
54
  @each $name, $color in $background_colors {
55
- &[class*="_background_#{$name}"] {
55
+ &[class*=background_#{$name}] {
56
56
  background-color: $color;
57
57
  }
58
58
  };
59
59
 
60
60
  @each $name, $shadow in $box_shadows {
61
- &[class*="_#{$name}"] {
61
+ &[class^=_#{$name}] {
62
62
  box-shadow: $shadow;
63
63
  }
64
64
  }
65
65
 
66
66
  @each $name, $radius in $border_radius {
67
- &[class*="_border_radius_#{$name}"] {
67
+ &[class*=_#{$name}] {
68
68
  border-radius: $radius;
69
69
  }
70
70
  }
@@ -29,13 +29,14 @@ module Playbook
29
29
  default: nil
30
30
 
31
31
  def classname
32
- generate_classname("pb_card_kit",
33
- selected_class,
34
- border_class,
35
- border_radius_class,
36
- background_class,
37
- highlight_position_class,
38
- highlight_color_class)
32
+ classes = ["pb_card_kit"]
33
+ classes << "pb_card_kit_selected" if selected
34
+ classes << "pb_card_kit_border_none" if border_none
35
+ classes << "pb_card_kit_border_radius_#{border_radius}" if border_radius != "md"
36
+ classes << "pb_card_kit_background_#{background}" if background != "none"
37
+ classes << "pb_card_kit_highlight_#{highlight[:position]}" if highlight[:position].present?
38
+ classes << "pb_card_kit_highlight_#{highlight[:color]}" if highlight[:color].present?
39
+ generate_classname(classes.compact.join(" "))
39
40
  end
40
41
 
41
42
  private
@@ -9,13 +9,17 @@ module Playbook
9
9
  default: false
10
10
 
11
11
  def classname
12
- generate_classname("pb_card_header_kit", header_color, color_striped_classname)
12
+ generate_classname("pb_card_header_kit", header_color_classname, color_striped_classname, separator: " ")
13
13
  end
14
14
 
15
15
  private
16
16
 
17
17
  def color_striped_classname
18
- header_color_striped ? "striped" : nil
18
+ header_color_striped ? "pb_card_header_kit_#{header_color}_striped" : nil
19
+ end
20
+
21
+ def header_color_classname
22
+ header_color ? "pb_card_header_kit_#{header_color}" : nil
19
23
  end
20
24
  end
21
25
  end
@@ -50,7 +50,7 @@
50
50
  <% end %>
51
51
 
52
52
  <%= pb_rails("card", props: { padding: "none", header: true, margin_bottom: "sm"}) do %>
53
- <%= pb_rails("card/card_header", props: { padding: "sm", header_color: "bg_dark" }) do %>
53
+ <%= pb_rails("card/card_header", props: { padding: "sm", header_color: "dark" }) do %>
54
54
  <%= pb_rails("body", props: { text: "Dark", dark: true }) %>
55
55
  <% end %>
56
56
  <%= pb_rails("card/card_body", props: { padding: "md" }) do %>
@@ -38,27 +38,27 @@ it('copies the value to clipboard and pastes it into an input', async () => {
38
38
  })
39
39
 
40
40
  test('passes text and tooltip props to button', () => {
41
- // render(
42
- // <CopyButton
43
- // data={{ testid: 'text-test' }}
44
- // text={"text"}
45
- // tooltipPlacement="right"
46
- // tooltipText="Text copied!"
47
- // value="copy"
48
- // />
49
- // )
41
+ render(
42
+ <CopyButton
43
+ data={{ testid: 'text-test' }}
44
+ text={"text"}
45
+ tooltipPlacement="right"
46
+ tooltipText="Text copied!"
47
+ value="copy"
48
+ />
49
+ )
50
50
 
51
- // const content = screen.getByText("text")
52
- // expect(content).toHaveTextContent("text")
51
+ const content = screen.getByText("text")
52
+ expect(content).toHaveTextContent("text")
53
53
 
54
- // const kit = screen.getByTestId('text-test')
55
- // const button = kit.querySelector('.pb_button_kit_primary_inline_enabled')
56
- // expect(button).toBeInTheDocument()
54
+ const kit = screen.getByTestId('text-test')
55
+ const button = kit.querySelector('.pb_button_kit.pb_button_primary.pb_button_inline.pb_button_enabled')
56
+ expect(button).toBeInTheDocument()
57
57
 
58
- // fireEvent.click(button)
59
- // const tooltipContent = screen.getByText("Text copied!")
60
- // expect(tooltipContent).toHaveTextContent("Text copied!")
58
+ fireEvent.click(button)
59
+ const tooltipContent = screen.getByText("Text copied!")
60
+ expect(tooltipContent).toHaveTextContent("Text copied!")
61
61
 
62
- // const tooltip = kit.querySelector('.pb_tooltip_kit')
63
- // expect(tooltip).toBeInTheDocument()
62
+ const tooltip = kit.querySelector('.pb_tooltip_kit')
63
+ expect(tooltip).toBeInTheDocument()
64
64
  })
@@ -14,7 +14,7 @@
14
14
  &.pb_currency_kit_center_md,
15
15
  &.pb_currency_kit_center_lg {
16
16
  text-align: center;
17
- & > .pb_caption_kit,
17
+ & > .pb_caption_kit,font-weight
18
18
  & > .pb_title_kit,
19
19
  & > .pb_body_kit {
20
20
  text-align: center;
@@ -82,7 +82,7 @@
82
82
 
83
83
  &.pb_currency_wrapper_bold {
84
84
  .pb_body_kit,
85
- .pb_body_light {
85
+ .pb_body_kit_light {
86
86
  color: $text_lt_default;
87
87
  font-weight: $bolder;
88
88
  }
@@ -12,7 +12,7 @@
12
12
  .pb_date_stacked_kit_center_sm_dark_reverse,
13
13
  .pb_date_stacked_kit_center_md_dark_reverse {
14
14
  & > * .pb_title_kit,
15
- & > * .pb_caption_kit,
15
+ & > * .pb_caption_kit_md,
16
16
  & > .pb_date_stacked_year_kit {
17
17
  text-align: center;
18
18
  }
@@ -28,7 +28,7 @@
28
28
  .pb_date_stacked_kit_right_sm_dark_reverse,
29
29
  .pb_date_stacked_kit_right_md_dark_reverse {
30
30
  & > * .pb_title_kit,
31
- & > * .pb_caption_kit,
31
+ & > * .pb_caption_kit_md,
32
32
  & > .pb_date_stacked_year {
33
33
  text-align: right;
34
34
  }
@@ -18,7 +18,7 @@ module Playbook
18
18
  default: false
19
19
 
20
20
  def classname
21
- generate_classname("pb_date_stacked_kit", align, size, bold, reverse_class, dark_class)
21
+ generate_classname("pb_date_stacked_kit", align, size, reverse_class, dark_class)
22
22
  end
23
23
 
24
24
  def title_size
@@ -235,7 +235,7 @@ test("generated dragHandle with Card", () => {
235
235
  render(<DraggableKitWithCard />);
236
236
  const kit = screen.getByTestId(testId);
237
237
 
238
- const card = kit.querySelector(".pb_card_kit_deselected_border_radius_md");
238
+ const card = kit.querySelector(".pb_card_kit");
239
239
  expect(card).toBeInTheDocument();
240
240
  const dragHandle = card.querySelector(".pb_custom_icon");
241
241
  expect(dragHandle).toBeInTheDocument();
@@ -507,14 +507,14 @@ export default class PbDropdown extends PbEnhancedElement {
507
507
  // Create a form pill for each selected option
508
508
  const pill = document.createElement("div");
509
509
  const color = this.formPillProps.color || "primary";
510
- pill.classList.add(`pb_form_pill_kit_${color}`, "mr_xs");
510
+ pill.classList.add("pb_form_pill_kit", `pb_form_pill_${color}`, "pb_form_pill_none", "mr_xs");
511
511
  if (this.formPillProps.size === "small") {
512
- pill.classList.add("small");
512
+ pill.classList.add("pb_form_pill_small");
513
513
  }
514
514
  pill.tabIndex = 0;
515
515
  pill.dataset.pillId = JSON.parse(option).id;
516
516
  const innerDiv = document.createElement("h3");
517
- innerDiv.className = "pb_title_kit_size_4 pb_form_pill_text";
517
+ innerDiv.className = "pb_title_kit pb_title_4 pb_form_pill_text";
518
518
  innerDiv.textContent = JSON.parse(option).label;
519
519
  pill.appendChild(innerDiv);
520
520
 
@@ -50,58 +50,18 @@ module Playbook
50
50
  default: false
51
51
 
52
52
  def classname
53
- [
54
- "pb_flex_kit",
55
- orientation_class,
56
- justify_class,
57
- align_class,
58
- inline_class,
59
- reverse_class,
60
- wrap_class,
61
- spacing_class,
62
- gap_class,
63
- row_gap_class,
64
- column_gap_class,
65
- align_self_class,
66
- prop(:classname),
67
- spacing_props,
68
- dark_props,
69
- width_props,
70
- min_width_props,
71
- max_width_props,
72
- gap_props,
73
- z_index_props,
74
- number_spacing_props,
75
- shadow_props,
76
- line_height_props,
77
- display_props,
78
- cursor_props,
79
- flex_direction_props,
80
- flex_wrap_props,
81
- justify_content_props,
82
- justify_self_props,
83
- align_items_props,
84
- align_content_props,
85
- align_self_props,
86
- flex_props,
87
- flex_grow_props,
88
- flex_shrink_props,
89
- order_props,
90
- position_props,
91
- hover_props,
92
- border_radius_props,
93
- text_align_props,
94
- overflow_props,
95
- truncate_props,
96
- left_props,
97
- top_props,
98
- right_props,
99
- bottom_props,
100
- vertical_align_props,
101
- height_props,
102
- min_height_props,
103
- max_height_props,
104
- ].compact.flatten.join(" ")
53
+ generate_classname("pb_flex_kit",
54
+ orientation_class,
55
+ justify_class,
56
+ align_class,
57
+ inline_class,
58
+ reverse_class,
59
+ wrap_class,
60
+ spacing_class,
61
+ gap_class,
62
+ row_gap_class,
63
+ column_gap_class,
64
+ align_self_class, separator: " ")
105
65
  end
106
66
 
107
67
  private
@@ -17,52 +17,7 @@ module Playbook
17
17
  default: false
18
18
 
19
19
  def classname
20
- [
21
- "pb_flex_item_kit",
22
- fixed_size_class,
23
- grow_class,
24
- shrink_class,
25
- display_flex_class,
26
- align_self_class,
27
- prop(:classname),
28
- spacing_props,
29
- dark_props,
30
- width_props,
31
- min_width_props,
32
- max_width_props,
33
- gap_props,
34
- z_index_props,
35
- number_spacing_props,
36
- shadow_props,
37
- line_height_props,
38
- display_props,
39
- cursor_props,
40
- flex_direction_props,
41
- flex_wrap_props,
42
- justify_content_props,
43
- justify_self_props,
44
- align_items_props,
45
- align_content_props,
46
- align_self_props,
47
- flex_props,
48
- flex_grow_props,
49
- flex_shrink_props,
50
- order_props,
51
- position_props,
52
- hover_props,
53
- border_radius_props,
54
- text_align_props,
55
- overflow_props,
56
- truncate_props,
57
- left_props,
58
- top_props,
59
- right_props,
60
- bottom_props,
61
- vertical_align_props,
62
- height_props,
63
- min_height_props,
64
- max_height_props,
65
- ].compact.flatten.join(" ")
20
+ generate_classname("pb_flex_item_kit", fixed_size_class, grow_class, shrink_class, display_flex_class, align_self_class, separator: " ")
66
21
  end
67
22
 
68
23
  def inline_styles
@@ -52,8 +52,8 @@ $image-sizes: (
52
52
 
53
53
  @each $name, $size in $image-sizes {
54
54
  .pb_image_kit_size_#{$name} {
55
- width: $size;
56
- height: $size;
55
+ width: $size !important;
56
+ height: $size !important;
57
57
  object-fit: cover;
58
58
  position: relative;
59
59
  flex-shrink: 0;
@@ -81,14 +81,20 @@ $bracket-border-width: 4px;
81
81
 
82
82
  // Collection detail layout
83
83
  .pb_layout_kit_collection_detail {
84
- display: grid;
85
- width: 100%;
86
- height: 100%;
87
- padding: $space_lg;
88
- grid-template-areas:
89
- "side-bar collection";
90
- grid-template-columns: .25fr 1fr;
91
- grid-column-gap: $space_sm;
84
+ display: grid;
85
+ width: 100%;
86
+ height: 100%;
87
+ padding: $space_lg;
88
+ grid-template-areas: "side-bar collection";
89
+ grid-template-columns: .25fr 1fr;
90
+ grid-column-gap: $space_sm;
91
+ .layout_body {
92
+ display: grid;
93
+ grid-auto-rows: max-content;
94
+ grid-column-gap: $space_sm;
95
+ grid-row-gap: $space_sm;
96
+ grid-template-columns: repeat(4, 1fr);
97
+ }
92
98
 
93
99
  div.layout_body {
94
100
  @media screen and (min-width: $screen-md-min) {