playbook_ui 15.1.0.pre.alpha.typeaheadscss11143 → 15.1.0.pre.rc.0

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 (207) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -3
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +11 -24
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/VirtualizedTableView.tsx +7 -7
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +2 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/Utilities/RowUtils.ts +2 -7
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +13 -67
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_vertical_border.jsx +2 -2
  9. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +1 -0
  10. data/app/pb_kits/playbook/pb_button/docs/example.yml +0 -2
  11. data/app/pb_kits/playbook/pb_card/_card.scss +4 -12
  12. data/app/pb_kits/playbook/pb_card/_card.tsx +3 -3
  13. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +0 -10
  14. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.html.erb +0 -3
  15. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.jsx +0 -8
  16. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +0 -2
  17. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +0 -1
  18. data/app/pb_kits/playbook/pb_contact/_contact.tsx +0 -5
  19. data/app/pb_kits/playbook/pb_contact/contact.rb +0 -4
  20. data/app/pb_kits/playbook/pb_contact/contact.test.js +1 -21
  21. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.html.erb +1 -16
  22. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.jsx +0 -15
  23. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.html.erb +0 -6
  24. data/app/pb_kits/playbook/pb_contact/docs/_contact_with_detail.jsx +0 -6
  25. data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +0 -4
  26. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +4 -6
  27. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +4 -48
  28. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +7 -5
  29. data/app/pb_kits/playbook/pb_dialog/dialogHelper.js +65 -0
  30. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.html.erb +16 -16
  31. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_stacked_alert.jsx +1 -2
  32. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.html.erb +31 -31
  33. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_status.jsx +3 -4
  34. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +0 -9
  35. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +3 -3
  36. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
  37. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +0 -11
  38. data/app/pb_kits/playbook/pb_icon_button/_icon_button.tsx +0 -1
  39. data/app/pb_kits/playbook/pb_icon_button/icon_button.html.erb +1 -2
  40. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +2 -2
  41. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +21 -15
  42. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.tsx +5 -6
  43. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.html.erb +0 -2
  44. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +3 -11
  45. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +8 -9
  46. data/app/pb_kits/playbook/pb_loading_inline/_loading_inline.tsx +1 -1
  47. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +1 -1
  48. data/app/pb_kits/playbook/pb_nav/_item.tsx +5 -19
  49. data/app/pb_kits/playbook/pb_nav/_nav.scss +0 -27
  50. data/app/pb_kits/playbook/pb_nav/_nav.test.js +0 -16
  51. data/app/pb_kits/playbook/pb_nav/_nav.tsx +0 -5
  52. data/app/pb_kits/playbook/pb_nav/docs/example.yml +0 -2
  53. data/app/pb_kits/playbook/pb_nav/docs/index.js +1 -2
  54. data/app/pb_kits/playbook/pb_nav/item.html.erb +2 -6
  55. data/app/pb_kits/playbook/pb_nav/nav.rb +1 -6
  56. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_breached.html.erb +3 -3
  57. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_common.html.erb +3 -3
  58. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_confirmation.html.erb +3 -3
  59. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_meter_settings.html.erb +3 -3
  60. data/app/pb_kits/playbook/pb_passphrase/docs/_passphrase_strength_change.html.erb +3 -3
  61. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_preview.html.erb +2 -2
  62. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +5 -13
  63. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.html.erb +0 -23
  64. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_children.jsx +7 -45
  65. data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +1 -4
  66. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +6 -14
  67. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.html.erb +4 -8
  68. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +0 -5
  69. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +1 -3
  70. data/app/pb_kits/playbook/pb_text_input/text_input.rb +0 -6
  71. data/app/pb_kits/playbook/pb_timestamp/_timestamp.tsx +8 -24
  72. data/app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md +1 -0
  73. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.html.erb +10 -0
  74. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +9 -0
  75. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +17 -3
  76. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +15 -0
  77. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb +2 -0
  78. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +2 -0
  79. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.html.erb +14 -0
  80. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +14 -0
  81. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.html.erb +4 -0
  82. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_unstyled.jsx +4 -0
  83. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +1 -0
  84. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +6 -18
  85. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +0 -6
  86. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +7 -29
  87. data/app/pb_kits/playbook/pb_timestamp/timestamp.test.js +4 -69
  88. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +10 -10
  89. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +1 -39
  90. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +0 -2
  91. data/dist/chunks/{_line_graph-B-1uF3pN.js → _line_graph-CnQWoGfx.js} +1 -1
  92. data/dist/chunks/{_typeahead-C8eN5nhR.js → _typeahead-_Pft9jZd.js} +2 -2
  93. data/dist/chunks/_weekday_stacked-D_gm5opl.js +37 -0
  94. data/dist/chunks/{lib-QZuu1ltS.js → lib-CY5ZPzic.js} +1 -1
  95. data/dist/chunks/{pb_form_validation-CleM960_.js → pb_form_validation-D3b0JKHH.js} +1 -1
  96. data/dist/chunks/vendor.js +1 -1
  97. data/dist/menu.yml +2 -16
  98. data/dist/playbook-doc.js +2 -2
  99. data/dist/playbook-rails-react-bindings.js +1 -1
  100. data/dist/playbook-rails.js +1 -1
  101. data/dist/playbook.css +1 -1
  102. data/lib/playbook/engine.rb +1 -0
  103. data/lib/playbook/forms/builder/form_field_builder.rb +2 -37
  104. data/lib/playbook/kit_base.rb +2 -23
  105. data/lib/playbook/version.rb +2 -2
  106. metadata +28 -112
  107. data/app/pb_kits/playbook/pb_button/docs/_button_managed_disabled.html.erb +0 -31
  108. data/app/pb_kits/playbook/pb_button/docs/_button_managed_disabled.md +0 -7
  109. data/app/pb_kits/playbook/pb_button/docs/_button_managed_disabled_helper.html.erb +0 -21
  110. data/app/pb_kits/playbook/pb_button/docs/_button_managed_disabled_helper.md +0 -7
  111. data/app/pb_kits/playbook/pb_button/index.js +0 -99
  112. data/app/pb_kits/playbook/pb_contact/docs/_contact_default.md +0 -5
  113. data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_extendedunderline.html.erb +0 -6
  114. data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_extendedunderline.jsx +0 -39
  115. data/app/pb_kits/playbook/pb_nav/docs/_horizontal_nav_extendedunderline.md +0 -1
  116. data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.scss +0 -0
  117. data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +0 -62
  118. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors.html.erb +0 -35
  119. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors.jsx +0 -49
  120. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors_rails.md +0 -1
  121. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors_react.md +0 -2
  122. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.html.erb +0 -38
  123. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.jsx +0 -51
  124. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.html.erb +0 -46
  125. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.jsx +0 -62
  126. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.md +0 -3
  127. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_horizontal.html.erb +0 -47
  128. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_horizontal.jsx +0 -60
  129. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend.html.erb +0 -25
  130. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend.jsx +0 -36
  131. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_non_clickable.jsx +0 -44
  132. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.html.erb +0 -100
  133. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.jsx +0 -126
  134. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_negative_numbers.html.erb +0 -32
  135. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_negative_numbers.jsx +0 -48
  136. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_secondary_y_axis.html.erb +0 -68
  137. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_secondary_y_axis.jsx +0 -81
  138. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.html.erb +0 -31
  139. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.jsx +0 -42
  140. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.md +0 -2
  141. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_stacked.html.erb +0 -35
  142. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_stacked.jsx +0 -51
  143. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/example.yml +0 -27
  144. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/index.js +0 -11
  145. data/app/pb_kits/playbook/pb_pb_bar_graph/pbBarGraphTheme.ts +0 -106
  146. data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.html.erb +0 -1
  147. data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +0 -28
  148. data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +0 -31
  149. data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.scss +0 -3
  150. data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +0 -62
  151. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.html.erb +0 -31
  152. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.jsx +0 -81
  153. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.html.erb +0 -25
  154. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.jsx +0 -40
  155. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.md +0 -5
  156. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.html.erb +0 -27
  157. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.jsx +0 -39
  158. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.md +0 -5
  159. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.html.erb +0 -93
  160. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.jsx +0 -131
  161. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.md +0 -14
  162. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.html.erb +0 -42
  163. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.jsx +0 -58
  164. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.html.erb +0 -24
  165. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.jsx +0 -38
  166. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.html.erb +0 -22
  167. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +0 -33
  168. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.html.erb +0 -118
  169. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.jsx +0 -144
  170. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_live_data.jsx +0 -60
  171. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.html.erb +0 -24
  172. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.jsx +0 -42
  173. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.html.erb +0 -38
  174. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.jsx +0 -52
  175. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/example.yml +0 -29
  176. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/index.js +0 -11
  177. data/app/pb_kits/playbook/pb_pb_circle_chart/pbCircleChartTheme.ts +0 -88
  178. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.html.erb +0 -1
  179. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +0 -28
  180. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +0 -51
  181. data/app/pb_kits/playbook/pb_section_separator/section_separator.test.js +0 -165
  182. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.md +0 -1
  183. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.md +0 -1
  184. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.md +0 -1
  185. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.md +0 -5
  186. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.html.erb +0 -12
  187. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.jsx +0 -25
  188. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_current_year.md +0 -1
  189. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.html.erb +0 -4
  190. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.jsx +0 -17
  191. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_date.md +0 -1
  192. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.html.erb +0 -18
  193. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.jsx +0 -44
  194. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_show_time.md +0 -1
  195. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.md +0 -1
  196. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.md +0 -5
  197. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.html.erb +0 -16
  198. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.jsx +0 -30
  199. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_current_year.md +0 -1
  200. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.html.erb +0 -16
  201. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.jsx +0 -30
  202. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_date.md +0 -1
  203. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.html.erb +0 -26
  204. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.jsx +0 -41
  205. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_show_time.md +0 -1
  206. data/dist/chunks/_weekday_stacked-1o7KVL87.js +0 -37
  207. data/dist/chunks/componentRegistry-DzmmLR2x.js +0 -1
@@ -26,9 +26,3 @@
26
26
  contact_value: "1233",
27
27
  contact_detail: "Ext",
28
28
  }) %>
29
-
30
- <%= pb_rails("contact", props: {
31
- contact_type: "international",
32
- contact_value: "+44 7700 900461",
33
- contact_detail: "International",
34
- }) %>
@@ -33,12 +33,6 @@ const ContactDefault = (props) => {
33
33
  contactValue="1234"
34
34
  {...props}
35
35
  />
36
- <Contact
37
- contactDetail="International"
38
- contactType="international"
39
- contactValue="+44 7700 900461"
40
- {...props}
41
- />
42
36
  </div>
43
37
  )
44
38
  }
@@ -19,10 +19,6 @@
19
19
  @import "./sass_partials/calendar_input_icon";
20
20
  }
21
21
 
22
- label {
23
- display: block !important;
24
- }
25
-
26
22
  &:focus,
27
23
  :focus-within {
28
24
  div.cal_icon_wrapper,
@@ -210,12 +210,10 @@ const DatePicker = (props: DatePickerProps): React.ReactElement => {
210
210
  className="input_wrapper"
211
211
  >
212
212
 
213
- {!hideLabel && (
214
- <Caption
215
- className="pb_date_picker_kit_label"
216
- text={label}
217
- />
218
- )}
213
+ <Caption
214
+ className="pb_date_picker_kit_label"
215
+ text={hideLabel ? null : label}
216
+ />
219
217
  <>
220
218
  <div className="date_picker_input_wrapper">
221
219
  <input
@@ -89,48 +89,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
89
89
  }
90
90
  }
91
91
 
92
- // Helper function to get min/max years based on yearRange. If minDate/maxDate provided, grab year from those values
93
- const getMinMaxYears = () => {
94
- const [minYear, maxYear] = yearRange;
95
-
96
- const extractYear = (dateOption: typeof minDate | typeof maxDate): number | null => {
97
- if (!dateOption) return null;
98
-
99
- // If it's already a number, assume it's a year
100
- if (typeof dateOption === 'number') {
101
- return dateOption;
102
- }
103
-
104
- // If it's a string, extract year with regex
105
- if (typeof dateOption === 'string') {
106
- const match = dateOption.match(/\b(19|20)\d{2}\b/);
107
- return match ? parseInt(match[0], 10) : null;
108
- }
109
-
110
- // If it's a Date object, get the year directly
111
- if (dateOption instanceof Date) {
112
- return dateOption.getFullYear();
113
- }
114
-
115
- return null;
116
- };
117
-
118
- const setMinYear = minDate ? (extractYear(minDate) ?? minYear) : minYear;
119
- const setMaxYear = maxDate ? (extractYear(maxDate) ?? maxYear) : maxYear;
120
-
121
- return { setMinYear, setMaxYear };
122
- };
123
-
124
- const { setMinYear, setMaxYear } = getMinMaxYears()
125
-
126
- // Helper function to get min/max dates based on yearRange
127
- const getMinMaxDates = () => {
128
- const setMinDate = minDate || `01/01/${setMinYear}`
129
- const setMaxDate = maxDate || `12/31/${setMaxYear}`
130
-
131
- return { setMinDate, setMaxDate }
132
- }
133
-
134
92
  const disabledWeekDays = () => {
135
93
  return (
136
94
  [
@@ -243,8 +201,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
243
201
  // | Flatpickr initializer w/ config |
244
202
  // ===========================================================
245
203
 
246
- const { setMinDate, setMaxDate } = getMinMaxDates()
247
-
248
204
  flatpickr(`#${pickerId}`, {
249
205
  allowInput,
250
206
  closeOnSelect,
@@ -256,8 +212,8 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
256
212
  locale: {
257
213
  rangeSeparator: ' to '
258
214
  },
259
- maxDate: setMaxDate,
260
- minDate: setMinDate,
215
+ maxDate,
216
+ minDate,
261
217
  mode,
262
218
  nextArrow: '<i class="far fa-angle-right"></i>',
263
219
  onOpen: [() => {
@@ -294,7 +250,7 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
294
250
 
295
251
  // create html option tags for desired years
296
252
  let years = ''
297
- for (let year = setMaxYear; year >= setMinYear; year--) {
253
+ for (let year = yearRange[1]; year >= yearRange[0]; year--) {
298
254
  years += `<option value="${year}">${year}</option>`
299
255
  }
300
256
 
@@ -367,7 +323,7 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
367
323
  }
368
324
  // === End of Automatic Sync Logic ===
369
325
 
370
-
326
+
371
327
  // Adding dropdown icons to year and month select
372
328
  dropdown.insertAdjacentHTML('afterend', `<i class="year-dropdown-icon">${angleDown}</i>`)
373
329
  if (picker.monthElements[0].parentElement) {
@@ -73,8 +73,8 @@ const Dialog = (props: DialogProps): React.ReactElement => {
73
73
  const ariaProps = buildAriaProps(aria);
74
74
  const dataProps = buildDataProps(data)
75
75
  const htmlProps = buildHtmlProps(htmlOptions);
76
- const classes = {
77
- base: classnames("pb_dialog", buildCss("pb_dialog", size, placement), globalProps(props), className),
76
+ const dialogClassNames = {
77
+ base: classnames("pb_dialog", buildCss("pb_dialog", size, placement)),
78
78
  afterOpen: "pb_dialog_after_open",
79
79
  beforeClose: "pb_dialog_before_close",
80
80
  };
@@ -93,8 +93,10 @@ const Dialog = (props: DialogProps): React.ReactElement => {
93
93
 
94
94
  const dynamicInlineProps = globalInlineProps(props);
95
95
 
96
- const wrapperClasses = classnames(
96
+ const classes = classnames(
97
97
  buildCss("pb_dialog_wrapper"),
98
+ globalProps(props),
99
+ className
98
100
  );
99
101
 
100
102
  const [triggerOpened, setTriggerOpened] = useState(false),
@@ -171,11 +173,11 @@ const Dialog = (props: DialogProps): React.ReactElement => {
171
173
  {...ariaProps}
172
174
  {...dataProps}
173
175
  {...htmlProps}
174
- className={wrapperClasses}
176
+ className={classes}
175
177
  >
176
178
  <Modal
177
179
  ariaHideApp={false}
178
- className={classes}
180
+ className={dialogClassNames}
179
181
  closeTimeoutMS={200}
180
182
  contentLabel="Dialog"
181
183
  id={id}
@@ -0,0 +1,65 @@
1
+ // Three places in Nitro depend on this function inside the window scope.
2
+ // We will keep this file until we remove this dependency from Nitro.
3
+ const dialogHelper = () => {
4
+ const openTrigger = document.querySelectorAll("[data-open-dialog]");
5
+ const closeTrigger = document.querySelectorAll("[data-close-dialog]");
6
+ const dialogs = document.querySelectorAll(".pb_dialog_rails")
7
+
8
+ const loadingButton = document.querySelector('[data-disable-with="Loading"]');
9
+ if (loadingButton) {
10
+ loadingButton.addEventListener("click", function() {
11
+ const okayLoadingButton = document.querySelector('[data-disable-with="Loading"]');
12
+ const cancelButton = document.querySelector('[data-disable-cancel-with="Loading"]');
13
+ let currentClass = okayLoadingButton.className;
14
+ let cancelClass = cancelButton ? cancelButton.className : "";
15
+
16
+ let newClass = currentClass.replace("_enabled", "_disabled_loading");
17
+ let newCancelClass = cancelClass.replace("_enabled", "_disabled");
18
+
19
+ // Disable the buttons
20
+ okayLoadingButton.disabled = true;
21
+ if (cancelButton) cancelButton.disabled = true;
22
+
23
+ okayLoadingButton.className = newClass;
24
+ if (cancelButton) cancelButton.className = newCancelClass;
25
+ });
26
+ }
27
+
28
+
29
+ openTrigger.forEach((open) => {
30
+ open.addEventListener("click", () => {
31
+ var openTriggerData = open.dataset.openDialog;
32
+ var targetDialog = document.getElementById(openTriggerData)
33
+ if (targetDialog.open) return;
34
+ targetDialog.showModal();
35
+ });
36
+ });
37
+
38
+ closeTrigger.forEach((close) => {
39
+ close.addEventListener("click", () => {
40
+ var closeTriggerData = close.dataset.closeDialog;
41
+ document.getElementById(closeTriggerData).close();
42
+ });
43
+ });
44
+
45
+ // Close dialog box on outside click
46
+ dialogs.forEach((dialogElement) => {
47
+ dialogElement.addEventListener("mousedown", (event) => {
48
+ const dialogParentDataset = dialogElement.parentElement.dataset
49
+ if (dialogParentDataset.overlayClick === "overlay_close") return
50
+
51
+ const dialogModal = event.target.getBoundingClientRect()
52
+ const clickedOutsideDialogModal = event.clientX < dialogModal.left ||
53
+ event.clientX > dialogModal.right ||
54
+ event.clientY < dialogModal.top ||
55
+ event.clientY > dialogModal.bottom
56
+
57
+ if (clickedOutsideDialogModal) {
58
+ dialogElement.close()
59
+ event.stopPropagation()
60
+ }
61
+ })
62
+ })
63
+ };
64
+
65
+ export default dialogHelper;
@@ -3,12 +3,12 @@
3
3
  <%= pb_rails("button", props: { text: "Delete Status", data: {"open-dialog": "dialog-stacked-delete"}, margin_right: "md" }) %>
4
4
 
5
5
 
6
- <%= pb_rails("dialog", props: {
7
- id:"dialog-stacked-default",
6
+ <%= pb_rails("dialog", props: {
7
+ id:"dialog-stacked-default",
8
8
  status: "default",
9
- size: "sm",
10
- title: "Are you sure?",
11
- text: "Text explaining why there is an alert",
9
+ size: "sm",
10
+ title: "Are you sure?",
11
+ text: "Text explaining why there is an alert",
12
12
  }) do %>
13
13
  <%= pb_rails("dialog/dialog_footer") do %>
14
14
  <%= pb_rails("flex", props: { orientation: "column", padding_x:"md", padding: "sm" }) do %>
@@ -18,12 +18,12 @@
18
18
  <% end %>
19
19
  <% end %>
20
20
 
21
- <%= pb_rails("dialog", props: {
22
- id:"dialog-stacked-caution",
21
+ <%= pb_rails("dialog", props: {
22
+ id:"dialog-stacked-caution",
23
23
  status: "caution",
24
- size: "sm",
25
- title: "Are you sure?",
26
- text: "This is the action you will be taking",
24
+ size: "sm",
25
+ title: "Are you sure?",
26
+ text: "This is the action you will be taking",
27
27
  }) do %>
28
28
  <%= pb_rails("dialog/dialog_footer") do %>
29
29
  <%= pb_rails("flex", props: { orientation: "column", padding_x:"md", padding: "sm" }) do %>
@@ -33,16 +33,16 @@
33
33
  <% end %>
34
34
  <% end %>
35
35
 
36
- <%= pb_rails("dialog", props: {
37
- id:"dialog-stacked-delete",
36
+ <%= pb_rails("dialog", props: {
37
+ id:"dialog-stacked-delete",
38
38
  status: "delete",
39
- size: "sm",
40
- title: "Delete",
41
- text: "You are about to delete ...",
39
+ size: "sm",
40
+ title: "Delete",
41
+ text: "You are about to delete ...",
42
42
  }) do %>
43
43
  <%= pb_rails("dialog/dialog_footer") do %>
44
44
  <%= pb_rails("flex", props: { orientation: "column", padding_x:"md", padding: "sm" }) do %>
45
- <%= pb_rails("button", props: { text: "Yes, Action", variant: "danger", full_width: true }) %>
45
+ <%= pb_rails("button", props: { text: "Yes, Action", full_width: true }) %>
46
46
  <%= pb_rails("button", props: { text: "No, Cancel", variant: "secondary", full_width: true, margin_top: "sm", data: {"close-dialog": "dialog-stacked-delete" } }) %>
47
47
  <% end %>
48
48
  <% end %>
@@ -51,7 +51,7 @@ const DialogStackedAlert = () => {
51
51
  return (
52
52
  <div>
53
53
  <Flex
54
- rowGap="xs"
54
+ rowGap="xs"
55
55
  wrap
56
56
  >
57
57
  <Button
@@ -93,7 +93,6 @@ const DialogStackedAlert = () => {
93
93
  <Button
94
94
  fullWidth
95
95
  onClick={dialog.toggle}
96
- variant= {dialog.status == "delete" ? "danger" : "primary"}
97
96
  >
98
97
  {dialog.buttonOneText}
99
98
  </Button>
@@ -8,12 +8,12 @@
8
8
  <%= pb_rails("button", props: { text: "Success Status", data: {"open-dialog": "dialog-status-success"}, margin_right: "md" }) %>
9
9
  <% end %>
10
10
 
11
- <%= pb_rails("dialog", props: {
12
- id:"dialog-status-default",
11
+ <%= pb_rails("dialog", props: {
12
+ id:"dialog-status-default",
13
13
  status: "default",
14
- size: "status_size",
15
- title: "Are you sure?",
16
- text: "Text explaining why there is an alert",
14
+ size: "status_size",
15
+ title: "Are you sure?",
16
+ text: "Text explaining why there is an alert",
17
17
  }) do %>
18
18
  <%= pb_rails("dialog/dialog_footer") do %>
19
19
  <%= pb_rails("flex", props: { spacing:"between", padding_x:"md", padding_bottom:"md", padding: "sm" }) do %>
@@ -23,12 +23,12 @@
23
23
  <% end %>
24
24
  <% end %>
25
25
 
26
- <%= pb_rails("dialog", props: {
27
- id:"dialog-status-info",
26
+ <%= pb_rails("dialog", props: {
27
+ id:"dialog-status-info",
28
28
  status: "info",
29
- size: "status_size",
30
- title: "Information",
31
- text: "Text explaining why there is an alert",
29
+ size: "status_size",
30
+ title: "Information",
31
+ text: "Text explaining why there is an alert",
32
32
  }) do %>
33
33
  <%= pb_rails("dialog/dialog_footer") do %>
34
34
  <%= pb_rails("flex", props: { spacing:"between", padding_x:"md", padding_bottom:"md", padding: "sm" }) do %>
@@ -37,12 +37,12 @@
37
37
  <% end %>
38
38
  <% end %>
39
39
 
40
- <%= pb_rails("dialog", props: {
41
- id:"dialog-status-caution",
40
+ <%= pb_rails("dialog", props: {
41
+ id:"dialog-status-caution",
42
42
  status: "caution",
43
- size: "status_size",
44
- title: "Are you Sure?",
45
- text: "This is the action you will be taking",
43
+ size: "status_size",
44
+ title: "Are you Sure?",
45
+ text: "This is the action you will be taking",
46
46
  }) do %>
47
47
  <%= pb_rails("dialog/dialog_footer") do %>
48
48
  <%= pb_rails("flex", props: { spacing:"between", padding_x:"md", padding_bottom:"md", padding: "sm" }) do %>
@@ -52,27 +52,27 @@
52
52
  <% end %>
53
53
  <% end %>
54
54
 
55
- <%= pb_rails("dialog", props: {
56
- id:"dialog-status-delete",
55
+ <%= pb_rails("dialog", props: {
56
+ id:"dialog-status-delete",
57
57
  status: "delete",
58
- size: "status_size",
59
- title: "Delete",
60
- text: "You are about to delete ...",
58
+ size: "status_size",
59
+ title: "Delete",
60
+ text: "You are about to delete ...",
61
61
  }) do %>
62
62
  <%= pb_rails("dialog/dialog_footer") do %>
63
63
  <%= pb_rails("flex", props: { spacing:"between", padding_x:"md", padding_bottom:"md", padding: "sm" }) do %>
64
- <%= pb_rails("button", props: { text: "Yes, Delete", variant: "danger" }) %>
64
+ <%= pb_rails("button", props: { text: "Yes, Delete" }) %>
65
65
  <%= pb_rails("button", props: { text: "No, Cancel", variant: "secondary", data: {"close-dialog": "dialog-status-delete" } }) %>
66
66
  <% end %>
67
67
  <% end %>
68
68
  <% end %>
69
69
 
70
- <%= pb_rails("dialog", props: {
71
- id:"dialog-status-error",
70
+ <%= pb_rails("dialog", props: {
71
+ id:"dialog-status-error",
72
72
  status: "error",
73
- size: "status_size",
74
- title: "Error Message",
75
- text: "Text explaining the error",
73
+ size: "status_size",
74
+ title: "Error Message",
75
+ text: "Text explaining the error",
76
76
  }) do %>
77
77
  <%= pb_rails("dialog/dialog_footer") do %>
78
78
  <%= pb_rails("flex", props: { spacing:"between", padding_x:"md", padding_bottom:"md", padding: "sm" }) do %>
@@ -81,12 +81,12 @@
81
81
  <% end %>
82
82
  <% end %>
83
83
 
84
- <%= pb_rails("dialog", props: {
85
- id:"dialog-status-success",
84
+ <%= pb_rails("dialog", props: {
85
+ id:"dialog-status-success",
86
86
  status: "success",
87
- size: "status_size",
88
- title: "Success!",
89
- text: "Text explaining what is successful",
87
+ size: "status_size",
88
+ title: "Success!",
89
+ text: "Text explaining what is successful",
90
90
  }) do %>
91
91
  <%= pb_rails("dialog/dialog_footer") do %>
92
92
  <%= pb_rails("flex", props: { spacing:"between", padding_x:"md", padding_bottom:"md", padding: "sm" }) do %>
@@ -83,8 +83,8 @@ const DialogStatus = () => {
83
83
 
84
84
  return (
85
85
  <div>
86
- <Flex
87
- rowGap="xs"
86
+ <Flex
87
+ rowGap="xs"
88
88
  wrap
89
89
  >
90
90
  <Button
@@ -117,7 +117,7 @@ const DialogStatus = () => {
117
117
  >
118
118
  {"Success Status"}
119
119
  </Button>
120
- <Button
120
+ <Button
121
121
  marginRight="md"
122
122
  onClick={toggleErrorAlert}
123
123
  >
@@ -152,7 +152,6 @@ const DialogStatus = () => {
152
152
  <Button
153
153
  onClick={dialog.toggle}
154
154
  paddingRight="xl"
155
- variant={dialog.status == "delete" ? "danger" : "primary"}
156
155
  >
157
156
  {dialog.buttonOneText}
158
157
  </Button>
@@ -35,7 +35,6 @@ type FixedConfirmationToastProps = {
35
35
 
36
36
  const FixedConfirmationToast = (props: FixedConfirmationToastProps): React.ReactElement => {
37
37
  const [showToast, toggleToast] = useState(true);
38
-
39
38
  const {
40
39
  autoClose = 0,
41
40
  children,
@@ -88,15 +87,8 @@ const FixedConfirmationToast = (props: FixedConfirmationToastProps): React.React
88
87
  <>
89
88
  {showToast && (
90
89
  <div
91
- aria-atomic="true"
92
- aria-live="polite"
93
90
  className={css}
94
91
  onClick={handleClick}
95
- onKeyDown={(e) => {
96
- if (e.key === "Enter" || e.key === " ") handleClick();
97
- }}
98
- role="status"
99
- tabIndex={0}
100
92
  {...htmlProps}
101
93
  >
102
94
  {returnedIcon && icon !== "none" && (
@@ -119,7 +111,6 @@ const FixedConfirmationToast = (props: FixedConfirmationToastProps): React.React
119
111
 
120
112
  {closeable && (
121
113
  <Icon
122
- aria={{ "label": "Close Toast" }}
123
114
  className="pb_icon"
124
115
  cursor="pointer"
125
116
  fixedWidth={false}
@@ -1,6 +1,6 @@
1
- <%= pb_content_tag(:div, "aria-atomic": "true", "aria-live": "polite", role: "status", tabindex: 0, onkeydown: "if(event.key==='Enter'||event.key===' '){ this.remove(); }" ) do %>
1
+ <%= pb_content_tag do %>
2
2
  <% if object.icon_value && object.icon_value != "none" %>
3
- <%= pb_rails("icon", props: { icon: object.icon_value, classname: "pb_icon", fixed_width: true, aria: { "aria-label": "#{object.icon_value} icon" } }) %>
3
+ <%= pb_rails("icon", props: { icon: object.icon_value, classname: "pb_icon", fixed_width: true }) %>
4
4
  <% end %>
5
5
  <% if content %>
6
6
  <%= content %>
@@ -8,5 +8,5 @@
8
8
  <%= pb_rails("title", props: { text: object.text, size: 4, flex: "1", classname: "pb_fixed_confirmation_toast_text" }) %>
9
9
  <% end %>
10
10
 
11
- <%= pb_rails("icon", props: { icon: "times", classname: "pb_icon", cursor: "pointer", fixed_width: true, aria: { "aria-label": "Close Toast" } }) if object.closeable %>
11
+ <%= pb_rails("icon", props: { icon: "times", classname: "pb_icon", cursor: "pointer", fixed_width: true }) if object.closeable %>
12
12
  <% end %>
@@ -91,7 +91,6 @@
91
91
  <%= pb_form_with(scope: :example, url: "", method: :get) do |form| %>
92
92
  <%= form.typeahead :example_typeahead, props: { data: { typeahead_example1: true, user: {} }, label: true, placeholder: "Search for a user" } %>
93
93
  <%= form.text_field :example_text_field, props: { label: true } %>
94
- <%= form.text_field :example_text_field_2, props: { label: "Text Field Custom Label" } %>
95
94
  <%= form.phone_number_field :example_phone_number_field, props: { label: "Example phone field", hidden_inputs: true } %>
96
95
  <%= form.email_field :example_email_field, props: { label: true } %>
97
96
  <%= form.number_field :example_number_field, props: { label: true } %>
@@ -21,15 +21,6 @@
21
21
  ]
22
22
  %>
23
23
 
24
- <%
25
- example_typeahead_options = [
26
- { label: 'Orange', value: '#FFA500' },
27
- { label: 'Red', value: '#FF0000' },
28
- { label: 'Green', value: '#00FF00' },
29
- { label: 'Blue', value: '#0000FF' },
30
- ]
31
- %>
32
-
33
24
  <% treeData = [{
34
25
  label: "Power Home Remodeling",
35
26
  value: "Power Home Remodeling",
@@ -98,8 +89,6 @@
98
89
 
99
90
  <%= pb_form_with(scope: :example, method: :get, url: "", validate: true) do |form| %>
100
91
  <%= form.typeahead :example_typeahead_validation, props: { data: { typeahead_example2: true, user: {} }, label: true, placeholder: "Search for a user", required: true, validation: { message: "Please select a user." } } %>
101
- <%= form.typeahead :example_typeahead_validation_react, props: { options: example_typeahead_options, pills: true, label: "Example Typeahead (React Rendered)", placeholder: "Search for a user", required: true, validation: { message: "Please select a color." } } %>
102
- <%= form.typeahead :example_typeahead_validation_react_2, props: { options: example_typeahead_options, pills: true, label: "Example Typeahead 2 (React Rendered)", placeholder: "Search for a user", required: true } %>
103
92
  <%= form.text_field :example_text_field_validation, props: { label: true, required: true } %>
104
93
  <%= form.phone_number_field :example_phone_number_field_validation, props: { label: "Example phone field", hidden_inputs: true } %>
105
94
  <%= form.email_field :example_email_field_validation, props: { label: true, required: true } %>
@@ -51,7 +51,6 @@ const IconButton = (props: IconButtonProps) => {
51
51
  id={id}
52
52
  >
53
53
  <Button
54
- aria={aria}
55
54
  borderRadius="xs"
56
55
  htmlType={htmlType}
57
56
  link={link}
@@ -1,6 +1,5 @@
1
1
  <%= pb_content_tag do %>
2
- <%= pb_rails("button", props: { aria: object.aria,
3
- type: object.type,
2
+ <%= pb_rails("button", props: { type: object.type,
4
3
  link: object.link,
5
4
  new_window:object.new_window,
6
5
  target: object.target,
@@ -3,7 +3,7 @@ import React from 'react'
3
3
  import classnames from 'classnames'
4
4
 
5
5
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
6
- import { globalProps, GlobalProps } from '../utilities/globalProps'
6
+ import { globalProps } from '../utilities/globalProps'
7
7
 
8
8
  import Icon from '../pb_icon/_icon'
9
9
 
@@ -26,7 +26,7 @@ type IconCircleProps = {
26
26
  | "orange"
27
27
  | "green"
28
28
  | "lighter",
29
- } & GlobalProps
29
+ }
30
30
 
31
31
  const IconCircle = (props: IconCircleProps) => {
32
32
  const {
@@ -3,45 +3,51 @@
3
3
  @import "../tokens/spacing";
4
4
  @import "../pb_icon_circle/icon_circle";
5
5
 
6
- .pb_icon_stat_value_kit_horizontal,
7
- .pb_icon_stat_value_kit_vertical
8
- {
6
+ [class^=pb_icon_stat_value_kit]{
9
7
  display: flex;
10
8
  align-items: baseline;
11
9
 
12
- &.pb_icon_stat_value_kit_vertical {
10
+ &[class*=_vertical] {
13
11
  flex-direction: column;
14
12
 
15
- &.text_align_center {
13
+ &[class*=_center] {
16
14
  align-items: center;
17
15
 
18
- .pb_title_kit,
19
- .pb_body_kit,
20
- .pb_caption_kit_md {
16
+ [class^=pb_title],
17
+ [class^=pb_body],
18
+ [class^=pb_caption] {
21
19
  text-align: center;
22
20
  }
23
21
  }
24
22
 
25
- &.text_align_right {
23
+ &[class*=_right] {
26
24
  align-items: flex-end;
27
25
 
28
- .pb_title_kit,
29
- .pb_body_kit,
30
- .pb_caption_kit_md {
26
+ [class^=pb_title],
27
+ [class^=pb_body],
28
+ [class^=pb_caption] {
31
29
  text-align: right;
32
30
  }
33
31
  }
32
+
33
+ [class^=pb_icon_circle] {
34
+ margin-bottom: $space-xs;
35
+ }
34
36
  }
35
37
 
36
- &.pb_icon_stat_value_kit_horizontal {
38
+ &[class*=_horizontal] {
37
39
  align-items: center;
38
40
 
39
- &.text_align_center {
41
+ &[class*=_center] {
40
42
  justify-content: center;
41
43
  }
42
44
 
43
- &.text_align_right {
45
+ &[class*=_right] {
44
46
  justify-content: flex-end;
45
47
  }
48
+
49
+ [class^=pb_icon_circle] {
50
+ margin-right: $space-sm;
51
+ }
46
52
  }
47
53
  }