playbook_ui 14.25.0.pre.alpha.testingcss9700 → 14.25.0.pre.alpha.testingcss9751

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 (228) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +6 -6
  4. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +60 -65
  6. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +1 -1
  7. data/app/pb_kits/playbook/pb_background/_background.scss +3 -3
  8. data/app/pb_kits/playbook/pb_badge/_badge.scss +135 -29
  9. data/app/pb_kits/playbook/pb_body/_body.scss +108 -35
  10. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +1 -1
  11. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +17 -30
  12. data/app/pb_kits/playbook/pb_button/_button.scss +39 -31
  13. data/app/pb_kits/playbook/pb_button/_button.tsx +12 -12
  14. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +1 -1
  15. data/app/pb_kits/playbook/pb_button/button.rb +11 -18
  16. data/app/pb_kits/playbook/pb_button/button.test.js +3 -3
  17. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +82 -73
  18. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_dark.scss +32 -33
  19. data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar_mixins.scss +1 -1
  20. data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.test.js +2 -2
  21. data/app/pb_kits/playbook/pb_caption/_caption.scss +100 -17
  22. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +1 -8
  23. data/app/pb_kits/playbook/pb_card/_card.scss +79 -68
  24. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +4 -4
  25. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +11 -2
  26. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +7 -7
  27. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +1 -1
  28. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -1
  29. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +4 -4
  30. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +19 -19
  31. data/app/pb_kits/playbook/pb_currency/_currency.scss +124 -39
  32. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +16 -6
  33. data/app/pb_kits/playbook/pb_date/_date.scss +16 -18
  34. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +1 -1
  35. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +19 -0
  36. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +1 -0
  37. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +12 -12
  38. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +2 -2
  39. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +5 -5
  40. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +29 -23
  41. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +1 -1
  42. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.scss +1 -1
  43. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.test.js +2 -2
  44. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +66 -26
  45. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +2 -2
  46. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +8 -15
  47. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +6 -7
  48. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +17 -14
  49. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -1
  50. data/app/pb_kits/playbook/pb_detail/_detail.scss +86 -21
  51. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +330 -123
  52. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +16 -2
  53. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +10 -7
  54. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  55. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  56. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  57. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +20 -9
  58. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  59. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  60. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +65 -29
  61. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -2
  62. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  63. data/app/pb_kits/playbook/pb_flex/_flex.scss +106 -100
  64. data/app/pb_kits/playbook/pb_flex/_flex.tsx +38 -28
  65. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +146 -51
  66. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +19 -8
  67. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.html.erb +12 -1
  68. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +26 -1
  69. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_rails.md +11 -0
  70. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap_react.md +11 -0
  71. data/app/pb_kits/playbook/pb_flex/flex.rb +73 -39
  72. data/app/pb_kits/playbook/pb_flex/flex_item.rb +51 -6
  73. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  74. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +381 -344
  75. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  76. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +8 -7
  77. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +9 -2
  78. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  79. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  80. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  81. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  82. data/app/pb_kits/playbook/pb_icon/_icon.scss +4 -0
  83. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  84. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +40 -39
  85. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  86. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  87. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +16 -15
  88. data/app/pb_kits/playbook/pb_image/_image.scss +41 -36
  89. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  90. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +3 -2
  91. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  92. data/app/pb_kits/playbook/pb_layout/_layout.scss +330 -305
  93. data/app/pb_kits/playbook/pb_layout/_layout.tsx +14 -11
  94. data/app/pb_kits/playbook/pb_layout/body.rb +1 -1
  95. data/app/pb_kits/playbook/pb_layout/footer.rb +1 -1
  96. data/app/pb_kits/playbook/pb_layout/header.rb +1 -1
  97. data/app/pb_kits/playbook/pb_layout/item.rb +1 -7
  98. data/app/pb_kits/playbook/pb_layout/layout.rb +16 -25
  99. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  100. data/app/pb_kits/playbook/pb_layout/sidebar.rb +1 -1
  101. data/app/pb_kits/playbook/pb_legend/_legend.scss +66 -16
  102. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  103. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  104. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  105. data/app/pb_kits/playbook/pb_link/_link.scss +113 -19
  106. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  107. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +13 -11
  108. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  109. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  110. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  111. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  112. data/app/pb_kits/playbook/pb_message/_message.scss +21 -16
  113. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -0
  114. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +5 -12
  115. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  116. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +6 -3
  117. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +16 -15
  118. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  119. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  120. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  121. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +19 -15
  122. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  123. data/app/pb_kits/playbook/pb_online_status/online_status.rb +5 -4
  124. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  125. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  126. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  127. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +5 -2
  128. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  129. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  130. data/app/pb_kits/playbook/pb_pill/_pill.scss +23 -21
  131. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +15 -13
  132. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +108 -33
  133. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  134. data/app/pb_kits/playbook/pb_radio/_radio.scss +71 -52
  135. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  136. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -3
  137. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  138. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +81 -70
  139. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +9 -1
  140. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  141. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +3 -1
  142. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +7 -1
  143. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  144. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -2
  145. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +17 -8
  146. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +39 -29
  147. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +2 -0
  148. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +8 -11
  149. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +24 -25
  150. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  151. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  152. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  153. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  154. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  155. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  156. data/app/pb_kits/playbook/pb_text_input/text_input.rb +15 -0
  157. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  158. data/app/pb_kits/playbook/pb_time/_time.scss +44 -17
  159. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +1 -1
  160. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +5 -8
  161. data/app/pb_kits/playbook/pb_title/_title.scss +42 -39
  162. data/app/pb_kits/playbook/pb_title/_title.tsx +17 -8
  163. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  164. data/app/pb_kits/playbook/pb_title/title.rb +20 -10
  165. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  166. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +19 -8
  167. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +10 -11
  168. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  169. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  170. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +23 -8
  171. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  172. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  173. data/app/pb_kits/playbook/utilities/_gap.scss +12 -24
  174. data/app/pb_kits/playbook/utilities/globalPropNames.mjs +2 -0
  175. data/app/pb_kits/playbook/utilities/globalProps.ts +28 -4
  176. data/dist/chunks/_line_graph-Dv_ODxW3.js +1 -0
  177. data/dist/chunks/_typeahead-CD5RAaaP.js +6 -0
  178. data/dist/chunks/_weekday_stacked-Bv6tOPKC.js +37 -0
  179. data/dist/chunks/lazysizes-B7xYodB-.js +1 -0
  180. data/dist/chunks/lib-CY5ZPzic.js +29 -0
  181. data/dist/chunks/pb_form_validation-D3b0JKHH.js +1 -0
  182. data/dist/chunks/vendor.js +1 -11
  183. data/dist/menu.yml +0 -6
  184. data/dist/playbook-doc.js +3 -67243
  185. data/dist/playbook-rails-react-bindings.js +1 -112
  186. data/dist/playbook-rails.js +1 -2464
  187. data/dist/playbook.css +2 -92354
  188. data/dist/reset.css +1 -89
  189. data/lib/playbook/classnames.rb +2 -0
  190. data/lib/playbook/spacing.rb +53 -1
  191. data/lib/playbook/version.rb +1 -1
  192. metadata +10 -38
  193. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +0 -25
  194. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +0 -381
  195. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +0 -231
  196. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +0 -3
  197. data/app/pb_kits/playbook/pb_drawer/context.ts +0 -11
  198. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +0 -8
  199. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +0 -41
  200. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +0 -33
  201. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +0 -78
  202. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +0 -3
  203. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +0 -26
  204. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +0 -20
  205. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +0 -59
  206. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +0 -24
  207. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +0 -61
  208. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +0 -24
  209. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +0 -21
  210. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +0 -54
  211. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +0 -1
  212. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +0 -49
  213. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +0 -99
  214. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +0 -20
  215. data/app/pb_kits/playbook/pb_drawer/docs/index.js +0 -7
  216. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +0 -20
  217. data/app/pb_kits/playbook/pb_drawer/drawer.rb +0 -56
  218. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +0 -81
  219. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +0 -60
  220. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +0 -21
  221. data/app/pb_kits/playbook/pb_drawer/index.js +0 -257
  222. data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.md +0 -9
  223. data/dist/chunks/_line_graph-DPTwfQR-.js +0 -544
  224. data/dist/chunks/_typeahead-CEqlHw0H.js +0 -30978
  225. data/dist/chunks/_weekday_stacked-D3dG14OB.js +0 -20894
  226. data/dist/chunks/lazysizes-BUUj27EF.js +0 -611
  227. data/dist/chunks/lib-CIetbXpr.js +0 -9609
  228. data/dist/chunks/pb_form_validation-D_g9rOE9.js +0 -60
@@ -1,20 +1,17 @@
1
1
  @import "../tokens/colors";
2
2
  @import "../tokens/spacing";
3
3
 
4
- [class^=pb_selectable_list]{
4
+ .pb_selectable_list_kit {
5
5
  margin-bottom: 0px;
6
- [class^=pb_item_kit] {
6
+
7
+ .pb_item_kit,
8
+ .pb_item_kit_checked_item {
7
9
  &:hover {
8
10
  background-color: $bg_light;
9
11
  }
10
- &[class*=checked_item] {
11
- background-color: $active_light;
12
- }
13
- }
14
- [class^=pb_radio_kit] {
15
- margin-left: $space_xs;
16
12
  }
17
- [class^=pb_checkbox_kit] {
18
- margin-left: $space_xs;
13
+
14
+ .pb_item_kit_checked_item {
15
+ background-color: $active_light;
19
16
  }
20
- }
17
+ }
@@ -24,25 +24,24 @@ const SelectableListCheckbox = () => {
24
24
  )
25
25
  }
26
26
 
27
- const SelectableListRadio = () => {
28
- return (
29
- <SelectableList
30
- data={{ testid: testId }}
31
- variant="radio">
32
- <SelectableList.Item
33
- label="Small"
34
- name="radio"
35
- value="1"
36
- />
37
- <SelectableList.Item
38
- defaultChecked
39
- label="Medium"
40
- name="radio"
41
- value="2"
42
- />
43
- </SelectableList>
44
- )
45
- }
27
+ // const SelectableListRadio = () => {
28
+ // return (
29
+ // <SelectableList
30
+ // data={{ testid: testId }}
31
+ // variant="radio">
32
+ // <SelectableList.Item
33
+ // label="Small"
34
+ // name="radio"
35
+ // value="1"
36
+ // />
37
+ // <SelectableList.Item
38
+ // label="Medium"
39
+ // name="radio"
40
+ // value="2"
41
+ // />
42
+ // </SelectableList>
43
+ // )
44
+ // }
46
45
 
47
46
 
48
47
  test("classname renders as expected", () => {
@@ -59,10 +58,10 @@ test("renders variant checkbox", () => {
59
58
  expect(checkbox).toBeInTheDocument()
60
59
  })
61
60
 
62
- test("renders variant radio", () => {
63
- render(<SelectableListRadio />)
64
- const kit = screen.getByTestId("selectable-list-test")
65
- const checkbox = kit.querySelector(".pb_radio_kit")
66
- expect(checkbox).toBeInTheDocument()
61
+ // test("renders variant radio", () => {
62
+ // render(<SelectableListRadio />)
63
+ // const kit = screen.getByTestId("selectable-list-test")
64
+ // const radio = kit.querySelector("input[type='radio']")
65
+ // expect(radio).toBeInTheDocument()
67
66
 
68
- })
67
+ // })
@@ -12,12 +12,12 @@
12
12
  </span>
13
13
  <% end %>
14
14
  <% if object.variant == "radio"%>
15
- <%= pb_rails("radio", props: { text: object.text, checked: object.checked, input_options: object.input_options } ) %>
15
+ <%= pb_rails("radio", props: { margin_left:"xs", text: object.text, checked: object.checked, input_options: object.input_options } ) %>
16
16
  <% if content.present? %>
17
17
  <%= content %>
18
18
  <% end %>
19
19
  <% else %>
20
- <%= pb_rails("checkbox", props: { text: object.text, checked: object.checked, input_options: object.input_options } ) %>
20
+ <%= pb_rails("checkbox", props: { margin_left:"xs", text: object.text, checked: object.checked, input_options: object.input_options } ) %>
21
21
  <% if content.present? %>
22
22
  <%= content %>
23
23
  <% end %>
@@ -1,29 +1,29 @@
1
1
  @import "../tokens/spacing";
2
2
 
3
- [class^=pb_source] {
4
- [class^=pb__source_layout] {
3
+ .pb_source_kit {
4
+ .pb__source_layout {
5
5
  display: flex;
6
6
  justify-content: flex-start;
7
7
  align-items: flex-start;
8
8
  }
9
9
 
10
- [class^=pb_icon_circle],
11
- [class^=pb_avatar] {
10
+ .pb_icon_circle_kit,
11
+ .pb_avatar_kit {
12
12
  margin-right: $space-sm;
13
13
  }
14
14
 
15
- [class^=pb__source_content] {
15
+ .pb__source_content {
16
16
  display: block;
17
17
  flex-grow: 1;
18
18
 
19
- [class^=pb__source_value] {
19
+ .pb__source_value {
20
20
  display: flex;
21
21
  justify-content: flex-start;
22
22
  align-items: baseline;
23
23
 
24
- [class^=pb_body] {
24
+ .pb_body_kit {
25
25
  margin-right: $space-xs;
26
26
  }
27
27
  }
28
28
  }
29
- }
29
+ }
@@ -3,7 +3,7 @@
3
3
  @import "../tokens/spacing";
4
4
 
5
5
 
6
- [class*=pb_star_rating_kit] {
6
+ .pb_star_rating_kit {
7
7
  display: flex;
8
8
  align-items: flex-end;
9
9
  justify-content: flex-start;
@@ -65,7 +65,7 @@ describe("Star Rating Kit", () => {
65
65
  const stars = highlight.querySelectorAll(".pb_star_lg")
66
66
  const count = stars.length
67
67
 
68
- expect(title.className).toBe("pb_title_kit_size_2_light_thin pr_sm pb_star_rating_number_lg")
68
+ expect(title.className).toBe("pb_title_kit pb_title_2 pb_title_light pb_title_thin pr_sm pb_star_rating_number_lg")
69
69
  expect(count).toBe(5)
70
70
  })
71
71
  })
@@ -1,7 +1,7 @@
1
1
  @import "../pb_title/title";
2
2
 
3
- [class^=pb_stat_value_kit]{
4
- [class^=pb_stat_value_wrapper] {
3
+ .pb_stat_value_kit {
4
+ .pb_stat_value_wrapper {
5
5
  display: flex;
6
6
  justify-content: flex-start;
7
7
  align-items: baseline;
@@ -2,7 +2,7 @@
2
2
  @import "../tokens/titles";
3
3
  @import "../tokens/colors";
4
4
 
5
- [class^="pb_text_input_kit"] {
5
+ .pb_text_input_kit {
6
6
  .pb_text_input_kit_label {
7
7
  margin-bottom: $space_xs;
8
8
  display: block;
@@ -76,7 +76,7 @@
76
76
  .text_input {
77
77
  border-color: $error_dark;
78
78
  }
79
- [class*=pb_body_kit_negative] {
79
+ .pb_body_kit_negative {
80
80
  color: $error_dark;
81
81
  }
82
82
  }
@@ -100,7 +100,7 @@
100
100
  }
101
101
  &.error {
102
102
  .text_input_wrapper {
103
- [class*="pb_body_kit"] {
103
+ .pb_body_kit_negative {
104
104
  margin-top: $space_xs / 2;
105
105
  }
106
106
  // The `:not` here prevents error styling from affecting the country search input in the Phone Number Input Kit.
@@ -174,9 +174,9 @@
174
174
  }
175
175
 
176
176
  .text_input_wrapper_add_on {
177
- & > [class^="pb_text_input_kit"]:not(:last-child) {
177
+ & > .pb_text_input_kit:not(:last-child) {
178
178
  .text_input_wrapper_add_on input,
179
- [class^="pb_text_input_kit"] .text_input_wrapper_add_on .text_input {
179
+ .pb_text_input_kit .text_input_wrapper_add_on .text_input {
180
180
  border-bottom-right-radius: 0;
181
181
  border-top-right-radius: 0;
182
182
  border-right-width: 0;
@@ -77,6 +77,7 @@ module Playbook
77
77
  name: mask.present? ? "" : name,
78
78
  pattern: validation_pattern || mask_pattern,
79
79
  placeholder: placeholder,
80
+ style: "cursor: #{cursor_style}",
80
81
  required: required,
81
82
  type: type,
82
83
  value: value,
@@ -84,6 +85,20 @@ module Playbook
84
85
  }.merge(input_options)
85
86
  end
86
87
 
88
+ def cursor_style
89
+ # If input is disabled, always use 'not-allowed'
90
+ return "not-allowed" if disabled
91
+
92
+ # If cursor prop is provided, convert it to kebab-case
93
+ if cursor.present?
94
+ # Convert camelCase (ex. notAllowed) to kebab-case (ex. not-allowed)
95
+ cursor.to_s.gsub(/([a-z\d])([A-Z])/, '\1-\2').downcase
96
+ else
97
+ # Default to 'pointer'
98
+ "pointer"
99
+ end
100
+ end
101
+
87
102
  def validation_message
88
103
  validation[:message] || ""
89
104
  end
@@ -3,11 +3,11 @@
3
3
  @import "../tokens/spacing";
4
4
  @import "../tokens/titles";
5
5
 
6
- [class^=pb_textarea_kit] {
6
+ .pb_textarea_kit {
7
7
  margin-bottom: $space_sm;
8
8
 
9
- [class^=pb_caption_kit] {
10
- margin-bottom: $space_xs;
9
+ .pb_caption_kit_md {
10
+ margin-bottom: $space_xs !important;
11
11
  display: block;
12
12
  }
13
13
  textarea::placeholder,
@@ -59,8 +59,8 @@
59
59
  }
60
60
 
61
61
  &.error {
62
- [class*=pb_body_kit] {
63
- margin-top: $space_xs / 2;
62
+ .pb_body_kit_negative {
63
+ margin-top: $space_xs / 2 !important;
64
64
  }
65
65
  textarea {
66
66
  border-color: $error;
@@ -81,4 +81,4 @@
81
81
  .pb_caption_kit_xs {
82
82
  text-align: right;
83
83
  }
84
- }
84
+ }
@@ -4,16 +4,20 @@
4
4
  @import "../pb_body/body";
5
5
  @import "../pb_caption/caption";
6
6
 
7
- [class^=pb_time_kit] {
8
- &[class*=_center] {
9
- text-align: center;
10
- }
11
-
12
- &[class*=_right] {
13
- text-align: right;
14
- }
7
+ .pb_time_kit,
8
+ .pb_time_kit_left,
9
+ .pb_time_kit_center,
10
+ .pb_time_kit_right,
11
+ .pb_time_kit_sm,
12
+ .pb_time_kit_md,
13
+ .pb_time_kit_left_sm,
14
+ .pb_time_kit_left_md,
15
+ .pb_time_kit_center_sm,
16
+ .pb_time_kit_center_md,
17
+ .pb_time_kit_right_sm,
18
+ .pb_time_kit_right_md {
15
19
 
16
- [class^=pb_time_timezone] {
20
+ .pb_time_timezone {
17
21
  color: $text_lt_light;
18
22
  font-weight: $bold;
19
23
 
@@ -21,13 +25,36 @@
21
25
  content: " ";
22
26
  }
23
27
  }
28
+ }
24
29
 
25
- &[class*=dark] {
26
- & * {
27
- @include caption_dark;
28
- }
29
- .pb_time {
30
- color: $text_dk_default;
31
- }
32
- }
30
+ .pb_time_kit_center,
31
+ .pb_time_kit_center_sm,
32
+ .pb_time_kit_center_md {
33
+ text-align: center;
34
+ }
35
+
36
+ .pb_time_kit_right,
37
+ .pb_time_kit_right_sm,
38
+ .pb_time_kit_right_md {
39
+ text-align: right;
33
40
  }
41
+
42
+ .pb_time_kit.dark,
43
+ .pb_time_kit_left.dark,
44
+ .pb_time_kit_center.dark,
45
+ .pb_time_kit_right.dark,
46
+ .pb_time_kit_sm.dark,
47
+ .pb_time_kit_md.dark,
48
+ .pb_time_kit_left_sm.dark,
49
+ .pb_time_kit_left_md.dark,
50
+ .pb_time_kit_center_sm.dark,
51
+ .pb_time_kit_center_md.dark,
52
+ .pb_time_kit_right_sm.dark,
53
+ .pb_time_kit_right_md.dark {
54
+ & * {
55
+ @include caption_dark;
56
+ }
57
+ .pb_time {
58
+ color: $text_dk_default;
59
+ }
60
+ }
@@ -32,4 +32,4 @@
32
32
  margin-right: $space_xs/2;
33
33
  }
34
34
  }
35
- }
35
+ }
@@ -2,15 +2,12 @@
2
2
  @import "../pb_caption/caption";
3
3
  @import "../tokens/colors";
4
4
 
5
- [class^=pb_time_stacked_kit] {
6
- &[class*=_center] {
7
- text-align: center;
8
- }
9
-
10
- &[class*=_right] {
11
- text-align: right;
12
- }
5
+ .pb_time_stacked_kit_center {
6
+ text-align: center;
7
+ }
13
8
 
9
+ .pb_time_stacked_kit_right {
10
+ text-align: right;
14
11
  }
15
12
 
16
13
  .time-spacing {
@@ -1,73 +1,76 @@
1
1
  @import "../tokens/titles";
2
2
  @import "../tokens/colors";
3
+ @import "../tokens/typography";
3
4
  @import "../tokens/screen_sizes";
4
5
  @import './title_mixin';
5
6
 
6
- [class^=pb_title_kit] {
7
- &[class*=_1] {
7
+ .pb_title_kit {
8
+ // Base title styles - default to title 3 styling
9
+ @include pb_title_3;
10
+
11
+ // Size-based styles (these will override the base)
12
+ &.pb_title_1 {
8
13
  @include pb_title_1;
9
- @include title_colors;
10
14
  @include pb_title_bold;
11
15
  }
12
16
 
13
- &[class*=_2] {
17
+ &.pb_title_2 {
14
18
  @include pb_title_2;
15
- @include title_colors;
16
19
  @include pb_title_bold;
17
20
  }
18
21
 
19
- &[class*=_3] {
22
+ &.pb_title_3 {
20
23
  @include pb_title_3;
21
- @include title_colors;
22
24
  @include pb_title_bold;
23
25
  }
24
26
 
25
- &[class*=_4] {
27
+ &.pb_title_4 {
26
28
  @include pb_title_4;
27
- @include title_colors;
28
29
  }
29
30
 
30
- &[class*=_thin] {
31
+ &.pb_title_thin {
31
32
  @include pb_title_thin;
32
33
  }
33
34
 
34
- &[class*=_display] {
35
+ // Color classes
36
+ @include title_colors;
37
+
38
+ // Display sizes
39
+ &.pb_title_display {
35
40
  font-size: clamp(24px, calc(1.25vw + 5.3vw), 128px);
36
41
  }
37
42
 
38
- &[class*=_dynamic] {
39
- &[class*=_xs] {
40
- font-size: min(2vw, 80vw / 16);
41
- }
42
-
43
- &[class*=_sm] {
44
- font-size: min(2.5vw, 96vw / 16);
45
- }
46
-
47
- &[class*=_md] {
48
- font-size: min(4vw, 160vw / 16);
49
- }
50
-
51
- &[class*=_lg] {
52
- font-size: min(5vw, 192vw / 16);
53
- }
54
-
55
- &[class*=_xl] {
56
- font-size: min(6vw, 224vw / 16);
57
- }
58
-
59
- &[class*=_xxl] {
60
- font-size: min(8vw, 256vw / 16);
61
- }
43
+ // Dynamic sizes
44
+ &.pb_title_dynamic_xs {
45
+ font-size: min(2vw, 80vw / 16);
46
+ }
47
+
48
+ &.pb_title_dynamic_sm {
49
+ font-size: min(2.5vw, 96vw / 16);
50
+ }
51
+
52
+ &.pb_title_dynamic_md {
53
+ font-size: min(4vw, 160vw / 16);
62
54
  }
63
-
64
55
 
56
+ &.pb_title_dynamic_lg {
57
+ font-size: min(5vw, 192vw / 16);
58
+ }
59
+
60
+ &.pb_title_dynamic_xl {
61
+ font-size: min(6vw, 224vw / 16);
62
+ }
63
+
64
+ &.pb_title_dynamic_xxl {
65
+ font-size: min(8vw, 256vw / 16);
66
+ }
65
67
 
68
+ // Responsive breakpoint classes
66
69
  @each $size, $size_value in $breakpoints_grid {
67
70
  @for $title_size_value from 1 through 4 {
68
71
  $min_size: map-get($size_value, "min");
69
72
  $max_size: map-get($size_value, "max");
70
- &[class*=_#{$size}_#{$title_size_value}] {
73
+ &.pb_title_#{$size}_#{$title_size_value} {
71
74
  @include break_on($min_size, $max_size) {
72
75
  @if $title_size_value == 1 { @include pb_title_1; }
73
76
  @else if $title_size_value == 2 { @include pb_title_2; }
@@ -83,9 +86,9 @@
83
86
  &.dark {
84
87
  @include title_dark;
85
88
  @each $name, $color in $pb_dark_title_colors {
86
- &[class*="_#{$name}"] {
89
+ &.pb_title_#{$name} {
87
90
  color: $color;
88
91
  }
89
92
  }
90
93
  }
91
- }
94
+ }
@@ -43,32 +43,41 @@ const Title = (props: TitleProps): React.ReactElement => {
43
43
  const ariaProps: {[key: string]: string | number} = buildAriaProps(aria)
44
44
  const dataProps: {[key: string]: string | number} = buildDataProps(data)
45
45
  const htmlProps = buildHtmlProps(htmlOptions)
46
- const getBold = bold ? '' : 'thin'
47
46
  const isSizeNumberOrString = typeof size === "number" || typeof size === "string"
48
47
 
49
48
  const buildResponsiveSizeCss = () => {
50
- let css = ''
49
+ const classes: string[] = []
51
50
 
52
51
  if (!isSizeNumberOrString) {
53
52
  Object.entries(size).forEach((sizeObj) => {
54
- css += `pb_title_kit_${sizeObj[0]}_${sizeObj[1]} `
53
+ classes.push(`pb_title_${sizeObj[0]}_${sizeObj[1]}`)
55
54
  })
56
55
  }
57
56
 
58
- return css.trim()
57
+ return classes
59
58
  }
60
59
 
61
60
  const buildDisplaySize = () => {
62
61
  if (displaySize) {
63
- return `pb_title_kit_dynamic_${displaySize}`
62
+ return [`pb_title_dynamic_${displaySize}`]
64
63
  }
64
+ return []
65
65
  }
66
66
 
67
+ const titleClasses = ['pb_title_kit']
68
+
69
+ if (isSizeNumberOrString) {
70
+ titleClasses.push(`pb_title_${size}`)
71
+ }
72
+ if (variant) titleClasses.push(`pb_title_${variant}`)
73
+ if (color) titleClasses.push(`pb_title_${color}`)
74
+ if (!bold) titleClasses.push('pb_title_thin')
75
+ titleClasses.push(...buildDisplaySize())
76
+ titleClasses.push(...buildResponsiveSizeCss())
77
+
67
78
  const classes = classnames(
68
- buildCss('pb_title_kit', isSizeNumberOrString ? `size_${size}` : "", variant, color, getBold),
79
+ titleClasses.join(' '),
69
80
  globalProps(props),
70
- buildDisplaySize(),
71
- buildResponsiveSizeCss(),
72
81
  className
73
82
  )
74
83
  const Tag: React.ReactElement | any = `${tag}`
@@ -20,7 +20,7 @@ $pb_dark_title_colors: (
20
20
 
21
21
  @mixin title_colors {
22
22
  @each $name, $color in $pb_title_colors {
23
- &[class*=_#{$name}] {
23
+ &.pb_title_#{$name} {
24
24
  color: $color
25
25
  }
26
26
  }
@@ -28,4 +28,4 @@ $pb_dark_title_colors: (
28
28
 
29
29
  @mixin title_dark {
30
30
  color: $text_dk_default;
31
- }
31
+ }
@@ -21,36 +21,46 @@ module Playbook
21
21
  default: nil
22
22
 
23
23
  def classname
24
+ title_classes = ["pb_title_kit"]
25
+
24
26
  if is_size_responsive
25
- generate_classname("pb_title_kit", variant, color, is_bold) + generate_responsive_size_classname
27
+ title_classes << "pb_title_#{variant}" if variant.present?
28
+ title_classes << "pb_title_#{color}" if color.present?
29
+ title_classes << "pb_title_#{is_bold}" if is_bold.present?
30
+ title_classes += generate_responsive_size_classes
26
31
  else
27
- generate_classname("pb_title_kit", size, variant, color, is_bold) + generate_display_size
32
+ title_classes << "pb_title_#{size}" if size.present?
33
+ title_classes << "pb_title_#{variant}" if variant.present?
34
+ title_classes << "pb_title_#{color}" if color.present?
35
+ title_classes << "pb_title_#{is_bold}" if is_bold.present?
36
+ title_classes += generate_display_size_classes
28
37
  end
38
+
39
+ generate_classname(title_classes.compact.join(" "), separator: " ")
29
40
  end
30
41
 
31
42
  def is_bold
32
43
  bold ? nil : "thin"
33
44
  end
34
45
 
35
- def generate_display_size
36
- return "" if display_size.nil?
46
+ def generate_display_size_classes
47
+ return [] if display_size.nil?
37
48
 
38
- " pb_title_kit_dynamic_#{display_size}"
49
+ ["pb_title_dynamic_#{display_size}"]
39
50
  end
40
51
 
41
52
  def is_size_responsive
42
53
  try(:size).is_a?(::Hash)
43
54
  end
44
55
 
45
- def generate_responsive_size_classname
46
- css = ""
56
+ def generate_responsive_size_classes
57
+ classes = []
47
58
  if is_size_responsive
48
59
  size.each do |key, value|
49
- css += " pb_title_kit_#{key}_#{value}"
60
+ classes << "pb_title_#{key}_#{value}"
50
61
  end
51
62
  end
52
-
53
- css unless css.blank?
63
+ classes
54
64
  end
55
65
  end
56
66
  end
@@ -12,7 +12,7 @@ test('returns namespaced class name', () => {
12
12
  )
13
13
 
14
14
  const kit = screen.getByTestId('primary-test')
15
- expect(kit).toHaveClass('pb_title_kit_size_3')
15
+ expect(kit).toHaveClass('pb_title_kit pb_title_3')
16
16
  })
17
17
 
18
18
  test('with thin font weight', () => {
@@ -25,7 +25,7 @@ test('with thin font weight', () => {
25
25
  )
26
26
 
27
27
  const kit = screen.getByTestId('primary-test')
28
- expect(kit).toHaveClass('pb_title_kit_size_3_thin')
28
+ expect(kit).toHaveClass('pb_title_kit pb_title_3 pb_title_thin')
29
29
  })
30
30
 
31
31
  test('with colors', () => {
@@ -38,7 +38,7 @@ test('with colors', () => {
38
38
  )
39
39
 
40
40
  const kit = screen.getByTestId('primary-test')
41
- expect(kit).toHaveClass('pb_title_kit_size_3_success')
41
+ expect(kit).toHaveClass('pb_title_kit pb_title_3 pb_title_success')
42
42
  })
43
43
 
44
44
  test('with responsive title', () => {
@@ -51,5 +51,5 @@ test('with responsive title', () => {
51
51
  )
52
52
 
53
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')
54
+ expect(kit).toHaveClass('pb_title_kit pb_title_xs_3 pb_title_sm_2 pb_title_md_1')
55
55
  })