playbook_ui 14.25.0.pre.alpha.PLAY2425textinputaccessibility9851 → 14.25.0.pre.alpha.PLAY2431fixextragap10276

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 (234) 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 +116 -79
  24. data/app/pb_kits/playbook/pb_card/_card.tsx +26 -11
  25. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -1
  26. data/app/pb_kits/playbook/pb_card/card.rb +8 -7
  27. data/app/pb_kits/playbook/pb_card/card_header.rb +6 -2
  28. data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +1 -1
  29. data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +11 -2
  30. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +7 -7
  31. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +1 -1
  32. data/app/pb_kits/playbook/pb_collapsible/__snapshots__/collapsible.test.js.snap +1 -1
  33. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +4 -4
  34. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +1 -1
  35. data/app/pb_kits/playbook/pb_currency/_currency.scss +124 -39
  36. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.scss +16 -6
  37. data/app/pb_kits/playbook/pb_date/_date.scss +16 -18
  38. data/app/pb_kits/playbook/pb_date/date.test.js +506 -0
  39. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +1 -1
  40. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_inline_styles.scss +12 -12
  41. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +2 -2
  42. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_time_selection_styles.scss +6 -5
  43. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.scss +29 -23
  44. data/app/pb_kits/playbook/pb_date_range_inline/_date_range_inline.tsx +1 -1
  45. data/app/pb_kits/playbook/pb_date_range_stacked/_date_range_stacked.scss +1 -1
  46. data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.test.js +2 -2
  47. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +66 -26
  48. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +1 -1
  49. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.test.js +2 -2
  50. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +8 -15
  51. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +6 -7
  52. data/app/pb_kits/playbook/pb_date_year_stacked/_date_year_stacked.scss +17 -14
  53. data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.test.js +1 -1
  54. data/app/pb_kits/playbook/pb_detail/_detail.scss +86 -21
  55. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +330 -123
  56. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +16 -2
  57. data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +10 -7
  58. data/app/pb_kits/playbook/pb_draggable/draggable.test.jsx +1 -1
  59. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  60. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +6 -6
  61. data/app/pb_kits/playbook/pb_dropdown/index.js +3 -3
  62. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +4 -4
  63. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +20 -9
  64. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +1 -1
  65. data/app/pb_kits/playbook/pb_filter/_filter.scss +8 -8
  66. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +65 -29
  67. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -2
  68. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_props_swift.md +3 -2
  69. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +1 -1
  70. data/app/pb_kits/playbook/pb_flex/_flex.scss +106 -100
  71. data/app/pb_kits/playbook/pb_flex/_flex.tsx +32 -25
  72. data/app/pb_kits/playbook/pb_flex/_flex_item.scss +146 -51
  73. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +19 -8
  74. data/app/pb_kits/playbook/pb_flex/flex.rb +16 -16
  75. data/app/pb_kits/playbook/pb_flex/flex_item.rb +6 -6
  76. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +1 -1
  77. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +381 -344
  78. data/app/pb_kits/playbook/pb_form_pill/_form_pill.test.jsx +4 -4
  79. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +8 -7
  80. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +9 -2
  81. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +5 -5
  82. data/app/pb_kits/playbook/pb_hashtag/_hashtag.scss +1 -1
  83. data/app/pb_kits/playbook/pb_highlight/_highlight.scss +1 -1
  84. data/app/pb_kits/playbook/pb_home_address_street/home_adress_street.test.js +2 -2
  85. data/app/pb_kits/playbook/pb_icon_button/_icon_button.scss +4 -4
  86. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.scss +40 -39
  87. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +1 -1
  88. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +1 -1
  89. data/app/pb_kits/playbook/pb_icon_value/_icon_value.scss +16 -15
  90. data/app/pb_kits/playbook/pb_image/_image.scss +41 -36
  91. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +1 -1
  92. data/app/pb_kits/playbook/pb_label_value/_label_value.scss +3 -2
  93. data/app/pb_kits/playbook/pb_label_value/label_value.test.js +2 -2
  94. data/app/pb_kits/playbook/pb_layout/_layout.scss +336 -305
  95. data/app/pb_kits/playbook/pb_layout/_layout.tsx +14 -11
  96. data/app/pb_kits/playbook/pb_layout/item.rb +1 -7
  97. data/app/pb_kits/playbook/pb_layout/layout.rb +16 -25
  98. data/app/pb_kits/playbook/pb_layout/layout.test.js +3 -3
  99. data/app/pb_kits/playbook/pb_legend/_legend.scss +66 -16
  100. data/app/pb_kits/playbook/pb_legend/legend.test.js +1 -1
  101. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +4 -4
  102. data/app/pb_kits/playbook/pb_lightbox/lightbox.test.jsx +1 -1
  103. data/app/pb_kits/playbook/pb_link/_link.scss +113 -19
  104. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  105. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.scss +13 -11
  106. data/app/pb_kits/playbook/pb_map/_map.scss +1 -1
  107. data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +1 -1
  108. data/app/pb_kits/playbook/pb_map/docs/_map_with_custom_button.jsx +1 -1
  109. data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +1 -1
  110. data/app/pb_kits/playbook/pb_message/_message.scss +21 -16
  111. data/app/pb_kits/playbook/pb_message/_message.tsx +1 -0
  112. data/app/pb_kits/playbook/pb_message/_message_mixins.scss +5 -12
  113. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -1
  114. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +6 -3
  115. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +16 -15
  116. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +1 -1
  117. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -1
  118. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +1 -1
  119. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +19 -15
  120. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -1
  121. data/app/pb_kits/playbook/pb_online_status/online_status.rb +5 -4
  122. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +2 -2
  123. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -1
  124. data/app/pb_kits/playbook/pb_overlay/overlay.rb +1 -1
  125. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +5 -2
  126. data/app/pb_kits/playbook/pb_person/_person.scss +1 -1
  127. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +1 -1
  128. data/app/pb_kits/playbook/pb_pill/_pill.scss +23 -21
  129. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +15 -13
  130. data/app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss +108 -33
  131. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +1 -1
  132. data/app/pb_kits/playbook/pb_radio/_radio.scss +71 -52
  133. data/app/pb_kits/playbook/pb_radio/_radio.tsx +1 -1
  134. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -3
  135. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +4 -4
  136. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +81 -70
  137. data/app/pb_kits/playbook/pb_section_separator/_section_separator.tsx +9 -1
  138. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +1 -1
  139. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_color.jsx +3 -1
  140. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +7 -1
  141. data/app/pb_kits/playbook/pb_select/_select.scss +4 -4
  142. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -2
  143. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +17 -8
  144. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +39 -29
  145. data/app/pb_kits/playbook/pb_selectable_list/_item.tsx +2 -0
  146. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +8 -11
  147. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.test.js +2 -3
  148. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -2
  149. data/app/pb_kits/playbook/pb_source/_source.scss +8 -8
  150. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +1 -1
  151. data/app/pb_kits/playbook/pb_star_rating/star_rating.test.js +1 -1
  152. data/app/pb_kits/playbook/pb_stat_value/_stat_value.scss +2 -2
  153. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +5 -5
  154. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +6 -14
  155. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.html.erb +4 -8
  156. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +0 -5
  157. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +1 -3
  158. data/app/pb_kits/playbook/pb_text_input/text_input.rb +0 -6
  159. data/app/pb_kits/playbook/pb_textarea/_textarea.scss +6 -6
  160. data/app/pb_kits/playbook/pb_time/_time.scss +44 -17
  161. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.scss +44 -23
  162. data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb +1 -1
  163. data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +5 -8
  164. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +16 -10
  165. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +1 -4
  166. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +1 -1
  167. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +2 -2
  168. data/app/pb_kits/playbook/pb_title/_title.scss +44 -39
  169. data/app/pb_kits/playbook/pb_title/_title.tsx +17 -8
  170. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +2 -2
  171. data/app/pb_kits/playbook/pb_title/title.rb +20 -10
  172. data/app/pb_kits/playbook/pb_title/title.test.js +4 -4
  173. data/app/pb_kits/playbook/pb_title_count/_title_count.scss +19 -8
  174. data/app/pb_kits/playbook/pb_title_detail/_title_detail.scss +10 -11
  175. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +4 -1
  176. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +3 -4
  177. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  178. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +3 -3
  179. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
  180. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.jsx +1 -1
  181. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.html.erb +1 -22
  182. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_color.jsx +1 -1
  183. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_without_pills.html.erb +2 -2
  184. data/app/pb_kits/playbook/pb_user/_user.scss +83 -33
  185. data/app/pb_kits/playbook/pb_user/docs/_user_props_table.md +14 -7
  186. data/app/pb_kits/playbook/pb_user/user.test.js +1 -1
  187. data/app/pb_kits/playbook/pb_user_badge/_user_badge.scss +23 -8
  188. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.scss +10 -10
  189. data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.test.jsx +3 -3
  190. data/app/pb_kits/playbook/utilities/_gap.scss +2 -2
  191. data/app/pb_kits/playbook/utilities/globalProps.ts +4 -4
  192. data/dist/chunks/{_line_graph-D94iS5fa.js → _line_graph-CUooRbut.js} +1 -1
  193. data/dist/chunks/_typeahead-Bj9K0Txs.js +6 -0
  194. data/dist/chunks/{_weekday_stacked-DEe6-ZrA.js → _weekday_stacked-C5IaQoRI.js} +2 -2
  195. data/dist/chunks/vendor.js +1 -1
  196. data/dist/menu.yml +0 -6
  197. data/dist/playbook-doc.js +2 -2
  198. data/dist/playbook-rails-react-bindings.js +1 -1
  199. data/dist/playbook-rails.js +1 -1
  200. data/dist/playbook.css +1 -1
  201. data/lib/playbook/spacing.rb +6 -6
  202. data/lib/playbook/version.rb +1 -1
  203. metadata +6 -35
  204. data/app/pb_kits/playbook/pb_drawer/_close_icon.tsx +0 -25
  205. data/app/pb_kits/playbook/pb_drawer/_drawer.scss +0 -381
  206. data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +0 -231
  207. data/app/pb_kits/playbook/pb_drawer/_drawer_context.tsx +0 -3
  208. data/app/pb_kits/playbook/pb_drawer/context.ts +0 -11
  209. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.html.erb +0 -8
  210. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_behavior.jsx +0 -41
  211. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.html.erb +0 -33
  212. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_borders.jsx +0 -78
  213. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.html.erb +0 -3
  214. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +0 -26
  215. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.html.erb +0 -20
  216. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_default.jsx +0 -59
  217. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.html.erb +0 -24
  218. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +0 -61
  219. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.md +0 -24
  220. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.html.erb +0 -21
  221. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.jsx +0 -54
  222. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_overlay.md +0 -1
  223. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.html.erb +0 -49
  224. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_sizes.jsx +0 -99
  225. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +0 -20
  226. data/app/pb_kits/playbook/pb_drawer/docs/index.js +0 -7
  227. data/app/pb_kits/playbook/pb_drawer/drawer.html.erb +0 -20
  228. data/app/pb_kits/playbook/pb_drawer/drawer.rb +0 -56
  229. data/app/pb_kits/playbook/pb_drawer/drawer.test.jsx +0 -81
  230. data/app/pb_kits/playbook/pb_drawer/hooks/useBreakpoint.tsx +0 -60
  231. data/app/pb_kits/playbook/pb_drawer/hooks/useDrawerAnimation.tsx +0 -21
  232. data/app/pb_kits/playbook/pb_drawer/index.js +0 -257
  233. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.md +0 -1
  234. data/dist/chunks/_typeahead-Du4IsS-P.js +0 -6
@@ -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;
@@ -138,14 +138,10 @@ const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>
138
138
  formattedValue = value
139
139
  }
140
140
 
141
- const errorId = error ? `${id}-error` : undefined
142
-
143
141
  const textInput = (
144
142
  childInput ? React.cloneElement(children, { className: "text_input" }) :
145
143
  (<input
146
144
  {...domSafeProps(props)}
147
- aria-describedby={errorId}
148
- aria-invalid={!!error}
149
145
  className="text_input"
150
146
  disabled={disabled}
151
147
  id={id}
@@ -203,20 +199,16 @@ const TextInput = (props: TextInputProps, ref: React.LegacyRef<HTMLInputElement>
203
199
  {...htmlProps}
204
200
  className={css}
205
201
  >
206
- {label && (
207
- <label htmlFor={id}>
208
- <Caption className="pb_text_input_kit_label"
209
- text={label}
210
- />
211
- </label>
212
- )}
202
+ {label &&
203
+ <Caption
204
+ className="pb_text_input_kit_label"
205
+ text={label}
206
+ />
207
+ }
213
208
  <div className={`${addOnCss} text_input_wrapper`}>
214
209
  {render}
215
210
 
216
211
  {error && <Body
217
- aria={{ atomic: "true", live: "polite" }}
218
- htmlOptions={{ role: "alert" }}
219
- id={errorId}
220
212
  status="negative"
221
213
  text={error}
222
214
  variant={null}
@@ -9,27 +9,23 @@
9
9
 
10
10
  <%= pb_rails("text_input", props: {
11
11
  label: "Last Name",
12
- placeholder: "Enter last name",
13
- id: "last-name"
12
+ placeholder: "Enter last name"
14
13
  }) %>
15
14
 
16
15
  <%= pb_rails("text_input", props: {
17
16
  label: "Phone Number",
18
17
  type: "phone",
19
- placeholder: "Enter phone number",
20
- id: "phone"
18
+ placeholder: "Enter phone number"
21
19
  }) %>
22
20
 
23
21
  <%= pb_rails("text_input", props: {
24
22
  label: "Email Address",
25
23
  type: "email",
26
- placeholder: "Enter email address",
27
- id: "email"
24
+ placeholder: "Enter email address"
28
25
  }) %>
29
26
 
30
27
  <%= pb_rails("text_input", props: {
31
28
  label: "Zip Code",
32
29
  type: "number",
33
- placeholder: "Enter zip code",
34
- id: "zip"
30
+ placeholder: "Enter zip code"
35
31
  }) %>
@@ -38,7 +38,6 @@ const TextInputDefault = (props) => {
38
38
  {...props}
39
39
  />
40
40
  <TextInput
41
- id="last-name"
42
41
  label="Last Name"
43
42
  name="lastName"
44
43
  onChange={handleOnChangeFormField}
@@ -47,7 +46,6 @@ const TextInputDefault = (props) => {
47
46
  {...props}
48
47
  />
49
48
  <TextInput
50
- id="phone"
51
49
  label="Phone Number"
52
50
  name="phone"
53
51
  onChange={handleOnChangeFormField}
@@ -57,7 +55,6 @@ const TextInputDefault = (props) => {
57
55
  {...props}
58
56
  />
59
57
  <TextInput
60
- id="email"
61
58
  label="Email Address"
62
59
  name="email"
63
60
  onChange={handleOnChangeFormField}
@@ -67,7 +64,6 @@ const TextInputDefault = (props) => {
67
64
  {...props}
68
65
  />
69
66
  <TextInput
70
- id="zip"
71
67
  label="Zip Code"
72
68
  name="zip"
73
69
  onChange={handleOnChangeFormField}
@@ -88,7 +84,6 @@ const TextInputDefault = (props) => {
88
84
  <br />
89
85
 
90
86
  <TextInput
91
- id="first-name"
92
87
  label="First Name"
93
88
  onChange={handleOnChangeFirstName}
94
89
  placeholder="Enter first name"
@@ -1,8 +1,6 @@
1
1
  <%= pb_content_tag(:div, id: nil ) do %>
2
2
  <% if object.label.present? %>
3
- <label for="<%= object.input_options[:id] || object.id %>" >
4
3
  <%= pb_rails("caption", props: { text: object.label, dark: object.dark, classname: "pb_text_input_kit_label" }) %>
5
- </label>
6
4
  <% end %>
7
5
  <%= content_tag(:div, class: "#{add_on_class} text_input_wrapper") do %>
8
6
  <% if content.present? %>
@@ -17,7 +15,7 @@
17
15
  <% else %>
18
16
  <%= input_tag %>
19
17
  <% end %>
20
- <%= pb_rails("body", props: {dark: object.dark, status: "negative", text: object.error, id: object.error_id, aria: { atomic: "true", live: "polite" }, html_options: { role: "alert" }}) if object.error %>
18
+ <%= pb_rails("body", props: {dark: object.dark, status: "negative", text: object.error}) if object.error %>
21
19
  <% end %>
22
20
  <% end %>
23
21
 
@@ -65,16 +65,10 @@ module Playbook
65
65
  "#{object.id}-sanitized" if id.present?
66
66
  end
67
67
 
68
- def error_id
69
- "#{id}-error" if error.present?
70
- end
71
-
72
68
  private
73
69
 
74
70
  def all_input_options
75
71
  {
76
- 'aria-describedby': error.present? ? error_id : nil,
77
- 'aria-invalid': error.present?,
78
72
  autocomplete: autocomplete ? nil : "off",
79
73
  class: "text_input #{input_options.dig(:classname) || ''}",
80
74
  data: validation_data,
@@ -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
+ }
@@ -1,35 +1,56 @@
1
1
 
2
- [class^=pb_time_range_inline_kit] {
3
- &[class*=_center] {
4
- & > [class^=pb_caption],
5
- & > [class^=pb_body] {
6
- text-align: center;
7
- }
8
- & > [class*=pb_time_range_inline_wrapper] {
9
- justify-content: center;
10
- }
11
- }
12
- &[class*=_right] {
13
- & > [class^=pb_caption],
14
- & > [class^=pb_body] {
15
- text-align: right;
16
- }
17
- & > [class*=pb_time_range_inline_wrapper] {
18
- justify-content: flex-end;
19
- }
20
- }
21
- [class^=pb_time_range_inline_wrapper] {
2
+ @import "../tokens/spacing";
3
+
4
+ // Base time range inline classes
5
+ .pb_time_range_inline_kit_left,
6
+ .pb_time_range_inline_kit_center,
7
+ .pb_time_range_inline_kit_right,
8
+ .pb_time_range_inline_kit_vertical {
9
+ .pb_time_range_inline_wrapper {
22
10
  display: flex;
23
11
  align-items: center;
24
- [class*=pb_time_range_inline_arrow] {
12
+ .pb_time_range_inline_arrow {
25
13
  margin-left: $space_xs/2;
26
14
  margin-right: $space_xs/2;
27
15
  }
28
- [class*=pb_time_range_inline_timezone] {
16
+ .pb_time_range_inline_timezone {
29
17
  margin-left: $space_xs/2;
30
18
  }
31
- [class*=pb_time_range_inline_icon] {
19
+ .pb_time_range_inline_icon {
32
20
  margin-right: $space_xs/2;
33
21
  }
34
22
  }
35
23
  }
24
+
25
+ // Center alignment
26
+ .pb_time_range_inline_kit_center {
27
+ & > .pb_caption_kit,
28
+ & > .pb_body_kit {
29
+ text-align: center;
30
+ }
31
+ & > .pb_time_range_inline_wrapper {
32
+ justify-content: center;
33
+ }
34
+ }
35
+
36
+ // Right alignment
37
+ .pb_time_range_inline_kit_right {
38
+ & > .pb_caption_kit,
39
+ & > .pb_body_kit {
40
+ text-align: right;
41
+ }
42
+ & > .pb_time_range_inline_wrapper {
43
+ justify-content: flex-end;
44
+ }
45
+ }
46
+
47
+ // Vertical alignment
48
+ .pb_time_range_inline_kit_vertical {
49
+ & > .pb_caption_kit,
50
+ & > .pb_body_kit {
51
+ text-align: center;
52
+ }
53
+ & > .pb_time_range_inline_wrapper {
54
+ justify-content: center;
55
+ }
56
+ }
@@ -16,7 +16,7 @@ module Playbook
16
16
  prop :timezone, default: false
17
17
 
18
18
  def classname
19
- generate_classname("pb_time_range_inline_kit", dark_class, alignment)
19
+ generate_classname("pb_time_range_inline_kit", alignment)
20
20
  end
21
21
 
22
22
  def format_start_time_string
@@ -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,16 +1,22 @@
1
1
  @import "timestamp-mixins";
2
2
  @import "../tokens/colors";
3
3
 
4
- [class^=pb_timestamp_kit]{
4
+ .pb_timestamp_kit_left,
5
+ .pb_timestamp_kit_center,
6
+ .pb_timestamp_kit_right {
5
7
  @include pb_timestamp;
8
+ }
9
+
10
+ .pb_timestamp_kit_center {
11
+ text-align: center;
12
+ }
13
+
14
+ .pb_timestamp_kit_right {
15
+ text-align: right;
16
+ }
6
17
 
7
- &[class*=_center] {
8
- text-align: center;
9
- }
10
- &[class*=_right] {
11
- text-align: right;
12
- }
13
- &[class*=_dark] {
14
- color: $text_dk_default;
15
- }
18
+ .pb_timestamp_kit_left.dark,
19
+ .pb_timestamp_kit_center.dark,
20
+ .pb_timestamp_kit_right.dark {
21
+ color: $text_dk_default;
16
22
  }
@@ -49,10 +49,7 @@ const Timestamp = (props: TimestampProps): React.ReactElement => {
49
49
  const dataProps = buildDataProps(data)
50
50
  const htmlProps = buildHtmlProps(htmlOptions)
51
51
  const classes = classnames(
52
- buildCss('pb_timestamp_kit', align, {
53
- dark: dark,
54
- variant: variant,
55
- }),
52
+ buildCss('pb_timestamp_kit', align),
56
53
  globalProps(props),
57
54
  className
58
55
  )
@@ -40,7 +40,7 @@ module Playbook
40
40
  SECS_PER_CENT = 100 * SECS_PER_YEAR # 3,153,600,000 seconds
41
41
 
42
42
  def classname
43
- generate_classname("pb_timestamp_kit", variant_class, align)
43
+ generate_classname("pb_timestamp_kit", align)
44
44
  end
45
45
 
46
46
  def timestamp_text
@@ -36,7 +36,7 @@ describe("Timestamp Kit", () => {
36
36
  );
37
37
 
38
38
  const kit = screen.getByTestId(testId);
39
- expect(kit).toHaveClass("pb_timestamp_kit_left_variant");
39
+ expect(kit).toHaveClass("pb_timestamp_kit_left");
40
40
  });
41
41
 
42
42
  test("renders Timestamp time", () => {
@@ -79,7 +79,7 @@ describe("Timestamp Kit", () => {
79
79
  );
80
80
 
81
81
  const kit = screen.getByTestId(testId);
82
- expect(kit).toHaveClass("pb_timestamp_kit_center_variant");
82
+ expect(kit).toHaveClass("pb_timestamp_kit_center");
83
83
  });
84
84
 
85
85
  test("renders Timestamp timezone", () => {
@@ -1,73 +1,78 @@
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
+ @include pb_title_bold;
11
+
12
+ // Size-based styles (these will override the base)
13
+ &.pb_title_1 {
8
14
  @include pb_title_1;
9
- @include title_colors;
10
15
  @include pb_title_bold;
11
16
  }
12
17
 
13
- &[class*=_2] {
18
+ &.pb_title_2 {
14
19
  @include pb_title_2;
15
- @include title_colors;
16
20
  @include pb_title_bold;
17
21
  }
18
22
 
19
- &[class*=_3] {
23
+ &.pb_title_3 {
20
24
  @include pb_title_3;
21
- @include title_colors;
22
25
  @include pb_title_bold;
23
26
  }
24
27
 
25
- &[class*=_4] {
28
+ &.pb_title_4 {
26
29
  @include pb_title_4;
27
- @include title_colors;
28
30
  }
29
31
 
30
- &[class*=_thin] {
32
+ &.pb_title_thin {
31
33
  @include pb_title_thin;
32
34
  }
33
35
 
34
- &[class*=_display] {
36
+ // Color classes
37
+ @include title_colors;
38
+
39
+ // Display sizes
40
+ &.pb_title_display {
35
41
  font-size: clamp(24px, calc(1.25vw + 5.3vw), 128px);
42
+ font-weight: $bold;
36
43
  }
37
44
 
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
- }
45
+ // Dynamic sizes
46
+ &.pb_title_dynamic_xs {
47
+ font-size: min(2vw, 80vw / 16);
48
+ }
49
+
50
+ &.pb_title_dynamic_sm {
51
+ font-size: min(2.5vw, 96vw / 16);
52
+ }
53
+
54
+ &.pb_title_dynamic_md {
55
+ font-size: min(4vw, 160vw / 16);
62
56
  }
63
-
64
57
 
58
+ &.pb_title_dynamic_lg {
59
+ font-size: min(5vw, 192vw / 16);
60
+ }
61
+
62
+ &.pb_title_dynamic_xl {
63
+ font-size: min(6vw, 224vw / 16);
64
+ }
65
+
66
+ &.pb_title_dynamic_xxl {
67
+ font-size: min(8vw, 256vw / 16);
68
+ }
65
69
 
70
+ // Responsive breakpoint classes
66
71
  @each $size, $size_value in $breakpoints_grid {
67
72
  @for $title_size_value from 1 through 4 {
68
73
  $min_size: map-get($size_value, "min");
69
74
  $max_size: map-get($size_value, "max");
70
- &[class*=_#{$size}_#{$title_size_value}] {
75
+ &.pb_title_#{$size}_#{$title_size_value} {
71
76
  @include break_on($min_size, $max_size) {
72
77
  @if $title_size_value == 1 { @include pb_title_1; }
73
78
  @else if $title_size_value == 2 { @include pb_title_2; }
@@ -83,9 +88,9 @@
83
88
  &.dark {
84
89
  @include title_dark;
85
90
  @each $name, $color in $pb_dark_title_colors {
86
- &[class*="_#{$name}"] {
91
+ &.pb_title_#{$name} {
87
92
  color: $color;
88
93
  }
89
94
  }
90
95
  }
91
- }
96
+ }
@@ -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
+ }