playbook_ui 14.25.0.pre.alpha.testingcss9713 → 14.25.0.pre.alpha.testingcss9752

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 (190) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +1 -1
  3. data/app/pb_kits/playbook/pb_badge/_badge.scss +120 -12
  4. data/app/pb_kits/playbook/pb_body/_body.scss +108 -35
  5. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +1 -1
  6. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +16 -29
  7. data/app/pb_kits/playbook/pb_button/_button.scss +39 -31
  8. data/app/pb_kits/playbook/pb_button/_button.tsx +12 -12
  9. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +2 -2
  10. data/app/pb_kits/playbook/pb_button/button.rb +11 -18
  11. data/app/pb_kits/playbook/pb_button/button.test.js +3 -3
  12. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +82 -73
  13. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_dark.scss +32 -33
  14. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_mixins.scss +1 -1
  15. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.test.js +2 -2
  16. data/app/pb_kits/playbook/pb_caption/_caption.scss +100 -17
  17. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +1 -8
  18. data/app/pb_kits/playbook/pb_card/_card.scss +99 -73
  19. data/app/pb_kits/playbook/pb_card/_card.tsx +26 -11
  20. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +3 -3
  21. data/app/pb_kits/playbook/pb_card/card.rb +8 -7
  22. data/app/pb_kits/playbook/pb_card/card_header.rb +6 -2
  23. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  24. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +11 -2
  25. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +6 -6
  26. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +1 -1
  27. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +1 -1
  28. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +19 -19
  29. data/app/pb_kits/playbook/pb_currency/_currency.scss +118 -33
  30. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +16 -6
  31. data/app/pb_kits/playbook/pb_date/_date.scss +14 -16
  32. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +10 -10
  33. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +25 -19
  34. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +1 -1
  35. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.test.js +2 -2
  36. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +66 -26
  37. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +1 -1
  38. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +2 -2
  39. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +5 -12
  40. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +2 -3
  41. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +17 -14
  42. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -1
  43. data/app/pb_kits/playbook/pb_detail/_detail.scss +86 -21
  44. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +463 -65
  45. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +16 -2
  46. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +10 -7
  47. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  48. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +2 -2
  49. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  50. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  51. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  52. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +20 -9
  53. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  54. data/app/pb_kits/playbook/pb_filter/_filter.scss +3 -3
  55. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +65 -29
  56. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -2
  57. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  58. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +1 -1
  59. data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +1 -1
  60. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +48 -48
  61. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +381 -344
  62. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  63. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +8 -7
  64. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +9 -2
  65. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  66. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  67. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +40 -39
  68. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  69. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +15 -15
  70. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  71. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +16 -15
  72. data/app/pb_kits/playbook/pb_image/_image.scss +41 -36
  73. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +3 -2
  74. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  75. data/app/pb_kits/playbook/pb_layout/_layout.scss +14 -8
  76. data/app/pb_kits/playbook/pb_layout/body.rb +1 -1
  77. data/app/pb_kits/playbook/pb_layout/footer.rb +1 -1
  78. data/app/pb_kits/playbook/pb_layout/header.rb +1 -1
  79. data/app/pb_kits/playbook/pb_layout/item.rb +1 -1
  80. data/app/pb_kits/playbook/pb_layout/layout.rb +6 -6
  81. data/app/pb_kits/playbook/pb_layout/sidebar.rb +1 -1
  82. data/app/pb_kits/playbook/pb_legend/_legend.scss +66 -16
  83. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  84. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  85. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  86. data/app/pb_kits/playbook/pb_link/_link.scss +113 -19
  87. data/app/pb_kits/playbook/pb_list/_list.scss +9 -9
  88. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +13 -11
  89. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  90. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  91. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  92. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  93. data/app/pb_kits/playbook/pb_message/_message.scss +20 -15
  94. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -0
  95. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +5 -12
  96. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  97. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +4 -1
  98. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +16 -15
  99. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +10 -10
  100. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +9 -9
  101. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  102. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +19 -15
  103. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  104. data/app/pb_kits/playbook/pb_online_status/online_status.rb +5 -4
  105. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  106. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  107. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  108. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +5 -2
  109. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  110. data/app/pb_kits/playbook/pb_pill/_pill.scss +23 -21
  111. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +12 -10
  112. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +106 -31
  113. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +37 -37
  114. data/app/pb_kits/playbook/pb_radio/_radio.scss +71 -52
  115. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  116. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -3
  117. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +80 -69
  118. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +9 -1
  119. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  120. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +3 -1
  121. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +7 -1
  122. data/app/pb_kits/playbook/pb_select/_select.scss +2 -2
  123. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -2
  124. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +13 -4
  125. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +39 -29
  126. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +2 -0
  127. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +8 -11
  128. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +24 -25
  129. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  130. data/app/pb_kits/playbook/pb_source/_source.scss +5 -5
  131. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  132. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +1 -1
  133. data/app/pb_kits/playbook/pb_table/styles/_alignment.scss +1 -1
  134. data/app/pb_kits/playbook/pb_table/styles/_content.scss +1 -1
  135. data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +1 -1
  136. data/app/pb_kits/playbook/pb_table/styles/_headers.scss +1 -1
  137. data/app/pb_kits/playbook/pb_table/styles/_hover.scss +1 -1
  138. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +1 -1
  139. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +1 -1
  140. data/app/pb_kits/playbook/pb_table/styles/_outer_padding.scss +1 -1
  141. data/app/pb_kits/playbook/pb_table/styles/_reset.scss +1 -1
  142. data/app/pb_kits/playbook/pb_table/styles/_scroll.scss +12 -12
  143. data/app/pb_kits/playbook/pb_table/styles/_side_highlight.scss +2 -2
  144. data/app/pb_kits/playbook/pb_table/styles/_single-line.scss +1 -1
  145. data/app/pb_kits/playbook/pb_table/styles/_striped.scss +1 -1
  146. data/app/pb_kits/playbook/pb_table/styles/_structure.scss +1 -1
  147. data/app/pb_kits/playbook/pb_table/styles/_table-card.scss +1 -1
  148. data/app/pb_kits/playbook/pb_table/styles/_table-dark.scss +2 -2
  149. data/app/pb_kits/playbook/pb_table/styles/_table_header.scss +4 -4
  150. data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +1 -1
  151. data/app/pb_kits/playbook/pb_table/styles/_vertical_border.scss +1 -1
  152. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +4 -4
  153. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +5 -5
  154. data/app/pb_kits/playbook/pb_time/_time.scss +43 -16
  155. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +40 -19
  156. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  157. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +5 -8
  158. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +41 -41
  159. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +16 -10
  160. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +1 -4
  161. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  162. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  163. data/app/pb_kits/playbook/pb_title/_title.scss +42 -38
  164. data/app/pb_kits/playbook/pb_title/_title.tsx +17 -8
  165. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  166. data/app/pb_kits/playbook/pb_title/title.rb +20 -10
  167. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  168. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +19 -8
  169. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +10 -11
  170. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +4 -1
  171. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +3 -4
  172. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  173. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +10 -10
  174. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  175. data/app/pb_kits/playbook/pb_user/_user.scss +83 -33
  176. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  177. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +23 -8
  178. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  179. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  180. data/dist/chunks/{_line_graph-0Y0wuiB9.js → _line_graph-CApw7aQD.js} +1 -1
  181. data/dist/chunks/_typeahead-J1_avqdO.js +6 -0
  182. data/dist/chunks/{_weekday_stacked-Dblcf2V8.js → _weekday_stacked-BWNmT-C6.js} +2 -2
  183. data/dist/chunks/vendor.js +1 -1
  184. data/dist/playbook-doc.js +2 -2
  185. data/dist/playbook-rails-react-bindings.js +1 -1
  186. data/dist/playbook-rails.js +1 -1
  187. data/dist/playbook.css +1 -1
  188. data/lib/playbook/version.rb +1 -1
  189. metadata +5 -5
  190. data/dist/chunks/_typeahead-B2gV75O0.js +0 -6
@@ -13,7 +13,7 @@ test('should render classname', () => {
13
13
  )
14
14
 
15
15
  const kit = screen.getByTestId(testId)
16
- expect(kit).toHaveClass('pb_form_pill_kit_primary none')
16
+ expect(kit).toHaveClass('pb_form_pill_kit pb_form_pill_primary pb_form_pill_none')
17
17
  });
18
18
 
19
19
  test('displays text content', () => {
@@ -37,7 +37,7 @@ test('displays color variant', () => {
37
37
  />
38
38
  )
39
39
  const kit = screen.getByTestId(testId)
40
- expect(kit).toHaveClass(`pb_form_pill_kit_neutral none`)
40
+ expect(kit).toHaveClass(`pb_form_pill_kit pb_form_pill_neutral pb_form_pill_none`)
41
41
  });
42
42
 
43
43
  test('displays size variant', () => {
@@ -49,7 +49,7 @@ test('displays size variant', () => {
49
49
  />
50
50
  )
51
51
  const kit = screen.getByTestId('formpill')
52
- expect(kit).toHaveClass(`pb_form_pill_kit_primary small none`)
52
+ expect(kit).toHaveClass(`pb_form_pill_kit pb_form_pill_small pb_form_pill_primary pb_form_pill_none`)
53
53
  });
54
54
 
55
55
  test('displays icon', () => {
@@ -60,5 +60,5 @@ test('displays icon', () => {
60
60
  />
61
61
  )
62
62
  const kit = screen.getByTestId('formpill')
63
- expect(kit).toHaveClass(`pb_form_pill_kit_primary_icon none`)
63
+ expect(kit).toHaveClass(`pb_form_pill_kit_icon pb_form_pill_primary pb_form_pill_none`)
64
64
  });
@@ -48,7 +48,7 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
48
48
  icon = "",
49
49
  } = props
50
50
 
51
- const iconClass = icon ? "_icon" : ""
51
+ const iconClass = icon ? "icon" : ""
52
52
  const closeIconSize = size === "small" ? "xs" : "sm"
53
53
  const wrappedClass = wrapped ? "wrapped" : ""
54
54
 
@@ -56,12 +56,13 @@ const FormPill = (props: FormPillProps): React.ReactElement => {
56
56
  delete filteredProps.truncate
57
57
 
58
58
  const css = classnames(
59
- `pb_form_pill_kit_${color}${iconClass}`,
60
- globalProps(filteredProps),
61
- wrappedClass,
62
- className,
63
- size === 'small' ? 'small' : null,
64
- textTransform,
59
+ icon ? 'pb_form_pill_kit_icon' : 'pb_form_pill_kit',
60
+ wrapped ? 'pb_form_pill_wrapped' : null,
61
+ size === 'small' ? 'pb_form_pill_small' : null,
62
+ `pb_form_pill_${color}`,
63
+ `pb_form_pill_${textTransform}`,
64
+ globalProps(filteredProps),
65
+ className,
65
66
  )
66
67
 
67
68
  const dataProps = buildDataProps(data)
@@ -20,7 +20,14 @@ module Playbook
20
20
  default: false
21
21
 
22
22
  def classname
23
- generate_classname("pb_form_pill_kit", color, icon_class, name, text, text_transform, wrapped_class)
23
+ classes = []
24
+ classes << (icon ? "pb_form_pill_kit_icon" : "pb_form_pill_kit")
25
+ classes << "pb_form_pill_wrapped" if wrapped
26
+ classes << "pb_form_pill_small" if size == "small"
27
+ classes << "pb_form_pill_#{color}"
28
+ classes << "pb_form_pill_#{text_transform}"
29
+ classes.join(" ")
30
+ generate_classname(classes.join(" "), separator: " ")
24
31
  end
25
32
 
26
33
  def display_text
@@ -32,7 +39,7 @@ module Playbook
32
39
  end
33
40
 
34
41
  def icon_class
35
- icon ? "icon" : nil
42
+ icon ? "icon" : ""
36
43
  end
37
44
 
38
45
  def close_icon_size
@@ -38,14 +38,14 @@ function HomeAdressStreetTest(props) {
38
38
 
39
39
  test("emphasize street by not setting a prop", () => {
40
40
  const { container } = render(<HomeAdressStreetTest />);
41
- expect(container.getElementsByClassName("pb_title_kit_size_4 pb_home_address_street_address")[0]).toHaveTextContent(address);
41
+ expect(container.querySelector(".pb_title_kit.pb_title_4.pb_home_address_street_address")).toHaveTextContent(address);
42
42
 
43
43
  cleanup()
44
44
  });
45
45
 
46
46
  test("emphasize city", () => {
47
47
  const { container } = render(<HomeAdressStreetTest emphasis="city" />);
48
- expect(container.getElementsByClassName("pb_title_kit_size_4 pb_home_address_street_address")[0]).toHaveTextContent(city);
48
+ expect(container.querySelector(".pb_title_kit.pb_title_4.pb_home_address_street_address")).toHaveTextContent(city);
49
49
 
50
50
  cleanup()
51
51
  });
@@ -15,7 +15,7 @@ $icon_colors: (
15
15
  height: fit-content;
16
16
 
17
17
  &:hover {
18
- [class*="pb_button_kit"] {
18
+ .pb_button_kit {
19
19
  background-color: $bg_light;
20
20
  }
21
21
  .icon_button_icon {
@@ -24,7 +24,7 @@ $icon_colors: (
24
24
  }
25
25
 
26
26
  &:active {
27
- [class*="pb_button_kit"] {
27
+ .pb_button_kit {
28
28
  background-color: $bg_light;
29
29
  }
30
30
  .icon_button_icon {
@@ -33,7 +33,7 @@ $icon_colors: (
33
33
  }
34
34
 
35
35
  &:hover:active {
36
- [class*="pb_button_kit"] {
36
+ .pb_button_kit {
37
37
  background-color: $bg_light;
38
38
  }
39
39
  .icon_button_icon {
@@ -46,7 +46,7 @@ $icon_colors: (
46
46
  border-radius: 8px;
47
47
  }
48
48
 
49
- [class*="pb_button_kit"] {
49
+ .pb_button_kit {
50
50
  min-height: 0;
51
51
  background: none;
52
52
  position: relative;
@@ -14,55 +14,56 @@ $pb_icon_circle_sizes: (
14
14
  "xl": 100px,
15
15
  );
16
16
 
17
- .pb_icon_circle_kit {
18
- display: flex;
19
- justify-content: center;
20
- align-items: center;
21
- object-fit: cover;
22
- overflow: hidden;
23
- position: relative;
24
- // font-family set to sans-serif ONLY for emojis.
25
- //Needed to fix misalignment issue caused by Proxima font
26
- .icon_circle_emoji {
27
- font-family: monospace;
28
- }
29
-
30
- i,
31
- svg {
32
- &.pb_icon_kit {
33
- width: 100%;
34
- height: 100%;
35
- display: block;
36
- text-align: center;
37
- text-transform: uppercase;
17
+ // All icon circle variations with complete styling
18
+ @each $size_name, $size_value in $pb_icon_circle_sizes {
19
+ @each $color_name, $color_value in $colors {
20
+ .pb_icon_circle_kit_size_#{$size_name}_#{$color_name} {
21
+ // Base styles
22
+ display: flex;
23
+ justify-content: center;
24
+ align-items: center;
25
+ object-fit: cover;
26
+ overflow: hidden;
38
27
  position: relative;
39
- z-index: 0;
40
- }
41
- }
42
-
43
- @each $name, $size in $pb_icon_circle_sizes {
44
- &[class*=_size_#{$name}] {
45
- width: $size;
46
- height: $size;
47
- border-radius: $size/2;
28
+
29
+ // Size-specific styles
30
+ width: $size_value;
31
+ height: $size_value;
32
+ border-radius: $size_value/2;
48
33
  background: $silver;
49
34
  color: $text_lt_light;
50
- font-size: if($name == "xxs", $size - 6px, $size * 0.38);
51
- line-height: $size;
35
+ font-size: if($size_name == "xxs", $size_value - 6px, $size_value * 0.38);
36
+ line-height: $size_value;
52
37
  flex-shrink: 0;
53
38
  flex-grow: 0;
54
- flex-basis: $size;
55
- }
56
- }
57
-
58
- @each $color_name, $color_value in $colors {
59
- &[class*=_#{"" + $color_name}] {
39
+ flex-basis: $size_value;
40
+
41
+ // Color/variant-specific styles
60
42
  color: $color_value;
61
43
  background: rgba(mix($bg_dark, $color_value, 10%), $opacity_1);
44
+
45
+ // font-family set to sans-serif ONLY for emojis.
46
+ // Needed to fix misalignment issue caused by Proxima font
47
+ .icon_circle_emoji {
48
+ font-family: monospace;
49
+ }
50
+
51
+ i,
52
+ svg {
53
+ &[class^=pb_icon_kit] {
54
+ width: 100%;
55
+ height: 100%;
56
+ display: block;
57
+ text-align: center;
58
+ text-transform: uppercase;
59
+ position: relative;
60
+ z-index: 0;
61
+ }
62
+ }
63
+
62
64
  &.dark {
63
65
  background: rgba(mix($bg_dark, $color_value, 10%), $opacity_2);
64
66
  }
65
67
  }
66
68
  }
67
69
  }
68
-
@@ -11,7 +11,7 @@ module Playbook
11
11
  default: "md"
12
12
  prop :variant, type: Playbook::Props::Enum,
13
13
  values: %w[default royal blue orange purple teal red yellow green orange lighter],
14
- default: "lighter"
14
+ default: "default"
15
15
 
16
16
  def classname
17
17
  generate_classname("pb_icon_circle_kit", "size_#{size}", variant)
@@ -3,50 +3,50 @@
3
3
  @import "../tokens/spacing";
4
4
  @import "../pb_icon_circle/icon_circle";
5
5
 
6
- .pb_icon_stat_value_kit{
6
+ [class^=pb_icon_stat_value_kit]{
7
7
  display: flex;
8
8
  align-items: baseline;
9
9
 
10
- &._vertical {
10
+ &[class*=_vertical] {
11
11
  flex-direction: column;
12
12
 
13
- &._center {
13
+ &[class*=_center] {
14
14
  align-items: center;
15
15
 
16
- .pb_title,
17
- .pb_body,
18
- .pb_caption {
16
+ [class^=pb_title],
17
+ [class^=pb_body],
18
+ [class^=pb_caption] {
19
19
  text-align: center;
20
20
  }
21
21
  }
22
22
 
23
- &._right {
23
+ &[class*=_right] {
24
24
  align-items: flex-end;
25
25
 
26
- .pb_title,
27
- .pb_body,
28
- .pb_caption {
26
+ [class^=pb_title],
27
+ [class^=pb_body],
28
+ [class^=pb_caption] {
29
29
  text-align: right;
30
30
  }
31
31
  }
32
32
 
33
- .pb_icon_circle {
33
+ [class^=pb_icon_circle] {
34
34
  margin-bottom: $space-xs;
35
35
  }
36
36
  }
37
37
 
38
- &._horizontal {
38
+ &[class*=_horizontal] {
39
39
  align-items: center;
40
40
 
41
- &._center {
41
+ &[class*=_center] {
42
42
  justify-content: center;
43
43
  }
44
44
 
45
- &._right {
45
+ &[class*=_right] {
46
46
  justify-content: flex-end;
47
47
  }
48
48
 
49
- .pb_icon_circle {
49
+ [class^=pb_icon_circle] {
50
50
  margin-right: $space-sm;
51
51
  }
52
52
  }
@@ -81,7 +81,7 @@ describe("IconStatValue Kit", () => {
81
81
  )
82
82
 
83
83
  const kit = screen.getByTestId(testId)
84
- const value = kit.querySelector(".pb_title_kit_size_3")
84
+ const value = kit.querySelector(".pb_title_kit.pb_title_3")
85
85
  expect(value.textContent).toEqual("64.18")
86
86
  })
87
87
 
@@ -3,33 +3,34 @@
3
3
  @import "../pb_icon/icon";
4
4
  @import "../pb_body/body";
5
5
 
6
- .pb_icon_value_kit {
6
+ .pb_icon_value_kit_left,
7
+ .pb_icon_value_kit_center,
8
+ .pb_icon_value_kit_right {
7
9
  display: flex;
8
10
  align-items: center;
9
11
 
10
- .pb_body_kit {
12
+ .pb_body_kit_light {
11
13
  font-size: $font-small !important;
12
14
  display: inline-flex;
13
15
  justify-content: flex-start;
14
16
  align-items: center;
15
17
 
16
- .pb_icon_kit {
18
+ svg {
17
19
  font-size: $font-large !important;
18
20
  margin-right: $space-xs !important;
19
21
  flex-shrink: 0;
20
22
  }
21
- &.dark {
22
-
23
- }
24
23
  }
24
+ }
25
25
 
26
- &._left {
27
- justify-content: flex-start;
28
- }
29
- &._center {
30
- justify-content: center;
31
- }
32
- &._right {
33
- justify-content: flex-end;
34
- }
26
+ .pb_icon_value_kit_left {
27
+ justify-content: flex-start;
28
+ }
29
+
30
+ .pb_icon_value_kit_center {
31
+ justify-content: center;
35
32
  }
33
+
34
+ .pb_icon_value_kit_right {
35
+ justify-content: flex-end;
36
+ }
@@ -9,50 +9,55 @@ $image-sizes: (
9
9
  "xl": 140px,
10
10
  );
11
11
 
12
- .pb_image_kit {
12
+ .pb_image_kit,
13
+ .pb_image_kit_size_xs,
14
+ .pb_image_kit_size_sm,
15
+ .pb_image_kit_size_md,
16
+ .pb_image_kit_size_lg,
17
+ .pb_image_kit_size_xl {
13
18
  position: relative;
14
19
  object-fit: cover;
15
20
 
16
- @each $name, $size in $image-sizes {
17
- &[class*=size_#{$name}] {
18
- width: $size;
19
- height: $size;
20
- object-fit: cover;
21
- position: relative;
22
- flex-shrink: 0;
23
- flex-grow: 0;
24
- flex-basis: $size;
25
- }
26
-
27
- &[class*= rounded] {
28
- border-radius: $border-rad-heaviest;
29
- }
21
+ &.rounded {
22
+ border-radius: $border-rad-heaviest;
23
+ }
30
24
 
31
- &.fade {
32
- opacity: 0;
33
- &.lazyloaded {
34
- opacity: 1;
35
- transition: opacity 300ms ease-in;
36
- }
25
+ &.fade {
26
+ opacity: 0;
27
+ &.lazyloaded {
28
+ opacity: 1;
29
+ transition: opacity 300ms ease-in;
37
30
  }
31
+ }
38
32
 
39
- &.blur {
40
- filter: blur(5px);
41
- &.lazyloaded {
42
- -webkit-filter: blur(0);
43
- filter: blur(0);
44
- transition: filter 300ms ease-in;
45
- }
33
+ &.blur {
34
+ filter: blur(5px);
35
+ &.lazyloaded {
36
+ -webkit-filter: blur(0);
37
+ filter: blur(0);
38
+ transition: filter 300ms ease-in;
46
39
  }
40
+ }
47
41
 
48
- &.scale {
49
- opacity: 0;
50
- transform: scale(0.9);
51
- &.lazyloaded {
52
- opacity: 1;
53
- transform: scale(1);
54
- transition: 700ms ease-in;
55
- }
42
+ &.scale {
43
+ opacity: 0;
44
+ transform: scale(0.9);
45
+ &.lazyloaded {
46
+ opacity: 1;
47
+ transform: scale(1);
48
+ transition: 700ms ease-in;
56
49
  }
57
50
  }
58
51
  }
52
+
53
+ @each $name, $size in $image-sizes {
54
+ .pb_image_kit_size_#{$name} {
55
+ width: $size;
56
+ height: $size;
57
+ object-fit: cover;
58
+ position: relative;
59
+ flex-shrink: 0;
60
+ flex-grow: 0;
61
+ flex-basis: $size;
62
+ }
63
+ }
@@ -1,7 +1,8 @@
1
1
  @import "../tokens/spacing";
2
2
 
3
- .pb_label_value_kit {
4
- .pb_caption_kit {
3
+ .pb_label_value_kit,
4
+ .pb_label_value_kit_details {
5
+ .pb_caption_kit_md {
5
6
  margin-bottom: $space-xs/1.5;
6
7
  }
7
8
  }
@@ -71,7 +71,7 @@ describe("LabelValue Kit", () => {
71
71
  />
72
72
  )
73
73
  const kit = screen.getByTestId(testId)
74
- const text = kit.querySelector(".pb_title_kit_size_4")
74
+ const text = kit.querySelector(".pb_title_kit.pb_title_4")
75
75
  expect(text.textContent).toEqual("JD Installations LLC")
76
76
  })
77
77
 
@@ -103,7 +103,7 @@ describe("LabelValue Kit", () => {
103
103
  />
104
104
  )
105
105
  const kit = screen.getByTestId(testId)
106
- const activeProp = kit.querySelector(".pb_title_kit_size_4_link")
106
+ const activeProp = kit.querySelector(".pb_title_kit.pb_title_4.pb_title_link")
107
107
  expect(activeProp).toBeInTheDocument()
108
108
  })
109
109
  })
@@ -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) {
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "div"
9
9
 
10
10
  def classname
11
- "layout_body"
11
+ generate_classname("layout_body")
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "div"
9
9
 
10
10
  def classname
11
- "layout_footer"
11
+ generate_classname("layout_footer")
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "div"
9
9
 
10
10
  def classname
11
- "layout_header"
11
+ generate_classname("layout_header")
12
12
  end
13
13
  end
14
14
  end
@@ -8,7 +8,7 @@ module Playbook
8
8
  default: "sm"
9
9
 
10
10
  def classname
11
- "layout_item layout_item_size_#{size}"
11
+ generate_classname("layout_item") + " layout_item_size_#{size}"
12
12
  end
13
13
  end
14
14
  end
@@ -25,17 +25,17 @@ module Playbook
25
25
  def classname
26
26
  case layout
27
27
  when "collection"
28
- "pb_layout_kit_collection"
28
+ generate_classname("pb_layout_kit_collection")
29
29
  when "kanban"
30
30
  classes = ["pb_layout_kit_kanban"]
31
31
  classes << "pb_layout_kit_kanban_responsive" if responsive
32
- classes.join(" ")
32
+ generate_classname(classes.join(" "))
33
33
  when "collection_detail"
34
- "pb_layout_kit_collection_detail"
34
+ generate_classname("pb_layout_kit_collection_detail")
35
35
  when "content"
36
- "pb_layout_kit_content"
36
+ generate_classname("pb_layout_kit_content")
37
37
  when "masonry"
38
- "pb_layout_kit_masonry"
38
+ generate_classname("pb_layout_kit_masonry")
39
39
  else
40
40
  # Sidebar layout
41
41
  classes = [
@@ -45,7 +45,7 @@ module Playbook
45
45
  classes << "pb_layout_kit_sidebar_transparent" if transparent
46
46
  classes << "pb_layout_kit_sidebar_full" if full
47
47
  classes << "layout_#{position}_collapse_#{collapse}"
48
- classes.join(" ")
48
+ generate_classname(classes.join(" "))
49
49
  end
50
50
  end
51
51
  end
@@ -4,7 +4,7 @@ module Playbook
4
4
  module PbLayout
5
5
  class Sidebar < Playbook::KitBase
6
6
  def classname
7
- "layout_sidebar"
7
+ generate_classname("layout_sidebar")
8
8
  end
9
9
  end
10
10
  end