playbook_ui 15.2.0 → 15.3.0.pre.alpha.PLAY2012currencyallownonstring11930

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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +5 -5
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +3 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +18 -3
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +71 -14
  6. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +3 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +12 -3
  8. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +2 -2
  9. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +59 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.html.erb +39 -0
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_background_control_rails.md +1 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +3 -1
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_sort.html.erb +3 -3
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta_subrow_headers.html.erb +3 -3
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail_rails.html.erb +2 -2
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +1 -1
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers_rails.html.erb +2 -2
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.html.erb +2 -2
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_rails.md +1 -1
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +28 -0
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +11 -2
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.html.erb +51 -0
  23. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_per_row_rails.md +1 -0
  24. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.html.erb +40 -0
  25. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_padding_control_rails.md +1 -0
  26. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +4 -1
  27. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.md +3 -2
  28. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_rails.md +1 -1
  29. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling_react.md +1 -1
  30. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.html.erb +2 -2
  31. data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading_empty_children.js +42 -0
  32. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
  33. data/app/pb_kits/playbook/pb_advanced_table/index.js +5 -1
  34. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +6 -6
  35. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +6 -6
  36. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +3 -2
  37. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +49 -5
  38. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +4 -4
  39. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +4 -0
  40. data/app/pb_kits/playbook/pb_button/_button.scss +6 -0
  41. data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +7 -3
  42. data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +29 -0
  43. data/app/pb_kits/playbook/pb_currency/_currency.tsx +17 -7
  44. data/app/pb_kits/playbook/pb_currency/currency.rb +20 -8
  45. data/app/pb_kits/playbook/pb_currency/currency.test.js +42 -0
  46. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.html.erb +1 -1
  47. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.jsx +1 -1
  48. data/app/pb_kits/playbook/pb_currency/docs/_currency_variants.md +1 -0
  49. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +2 -0
  50. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +1 -1
  51. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_quick_pick_styles.scss +11 -30
  52. data/app/pb_kits/playbook/pb_draggable/_draggable.scss +8 -0
  53. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +0 -1
  54. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +5 -3
  55. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_description.md +2 -0
  56. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +4 -1
  57. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.test.js +10 -0
  58. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.html.erb +1 -1
  59. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  60. data/app/pb_kits/playbook/pb_form/formHelper.js +1 -1
  61. data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color.md +1 -1
  62. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +7 -14
  63. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.jsx +6 -15
  64. data/app/pb_kits/playbook/pb_pb_bar_graph/_pb_bar_graph.tsx +8 -6
  65. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_description.md +3 -0
  66. data/app/pb_kits/playbook/pb_pb_bar_graph/pb_bar_graph.rb +7 -10
  67. data/app/pb_kits/playbook/pb_pb_bar_graph/pbbargraph.test.jsx +73 -1
  68. data/app/pb_kits/playbook/pb_pb_circle_chart/_pb_circle_chart.tsx +1 -1
  69. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_description.md +3 -0
  70. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.rb +7 -10
  71. data/app/pb_kits/playbook/pb_pb_circle_chart/pb_circle_chart.test.jsx +47 -0
  72. data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.scss +3 -0
  73. data/app/pb_kits/playbook/pb_pb_gauge_chart/_pb_gauge_chart.tsx +69 -0
  74. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_description.md +3 -0
  75. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.html.erb +12 -0
  76. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +24 -0
  77. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.md +5 -0
  78. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.html.erb +45 -0
  79. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +119 -0
  80. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.md +1 -0
  81. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.html.erb +5 -0
  82. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_default.jsx +17 -0
  83. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.html.erb +12 -0
  84. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_disable_animation.jsx +24 -0
  85. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.html.erb +23 -0
  86. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +37 -0
  87. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.html.erb +40 -0
  88. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +56 -0
  89. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_live_data.jsx +64 -0
  90. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.html.erb +27 -0
  91. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +40 -0
  92. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.md +1 -0
  93. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.html.erb +19 -0
  94. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.jsx +65 -0
  95. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_sizing.md +3 -0
  96. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.html.erb +14 -0
  97. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_title.jsx +27 -0
  98. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.html.erb +39 -0
  99. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +58 -0
  100. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.md +1 -0
  101. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/example.yml +29 -0
  102. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/index.js +11 -0
  103. data/app/pb_kits/playbook/pb_pb_gauge_chart/pbGaugeGraphTheme.ts +91 -0
  104. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.html.erb +1 -0
  105. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.rb +25 -0
  106. data/app/pb_kits/playbook/pb_pb_gauge_chart/pb_gauge_chart.test.jsx +80 -0
  107. data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.scss +3 -0
  108. data/app/pb_kits/playbook/pb_pb_line_graph/_pb_line_graph.tsx +61 -0
  109. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_description.md +3 -0
  110. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.html.erb +34 -0
  111. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +52 -0
  112. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.md +5 -0
  113. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.html.erb +34 -0
  114. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_default.jsx +45 -0
  115. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.html.erb +47 -0
  116. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.jsx +64 -0
  117. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_height.md +3 -0
  118. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.html.erb +24 -0
  119. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend.jsx +37 -0
  120. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.html.erb +39 -0
  121. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_nonclickable.jsx +45 -0
  122. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.html.erb +86 -0
  123. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.jsx +116 -0
  124. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_legend_position.md +11 -0
  125. data/app/pb_kits/playbook/pb_pb_line_graph/docs/example.yml +20 -0
  126. data/app/pb_kits/playbook/pb_pb_line_graph/docs/index.js +6 -0
  127. data/app/pb_kits/playbook/pb_pb_line_graph/pbLineGraphTheme.ts +125 -0
  128. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.html.erb +1 -0
  129. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.rb +25 -0
  130. data/app/pb_kits/playbook/pb_pb_line_graph/pb_line_graph.test.jsx +110 -0
  131. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +130 -28
  132. data/app/pb_kits/playbook/pb_popover/_popover.tsx +69 -34
  133. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.jsx +68 -0
  134. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to_react.md +1 -0
  135. data/app/pb_kits/playbook/pb_popover/docs/example.yml +1 -0
  136. data/app/pb_kits/playbook/pb_popover/docs/index.js +1 -0
  137. data/app/pb_kits/playbook/pb_popover/popover.test.js +80 -0
  138. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/Toolbar.tsx +41 -2
  139. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +1 -0
  140. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.tsx +60 -20
  141. data/app/pb_kits/playbook/pb_rich_text_editor/_tiptap_styles.scss +36 -0
  142. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.jsx +38 -0
  143. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_attributes.md +1 -0
  144. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.jsx +34 -0
  145. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_focus.md +1 -0
  146. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.jsx +37 -0
  147. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_inline.md +1 -0
  148. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_simple.jsx +37 -0
  149. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.jsx +38 -0
  150. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_sticky.md +1 -0
  151. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.jsx +69 -0
  152. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_templates.md +1 -0
  153. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +8 -2
  154. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +6 -0
  155. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.test.js +127 -1
  156. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +29 -0
  157. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible.html.erb +63 -0
  158. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible.jsx +89 -0
  159. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible_rails.md +4 -0
  160. data/app/pb_kits/playbook/pb_table/docs/_table_with_dynamic_collapsible_react.md +3 -0
  161. data/app/pb_kits/playbook/pb_table/docs/example.yml +2 -0
  162. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -0
  163. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -2
  164. data/app/pb_kits/playbook/pb_timeline/_timeline.scss +250 -233
  165. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
  166. data/app/pb_kits/playbook/pb_timeline/timeline.test.js +2 -2
  167. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +76 -1
  168. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +85 -2
  169. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.html.erb +64 -0
  170. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.jsx +70 -0
  171. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_options.md +1 -0
  172. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.html.erb +102 -0
  173. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_options.md +1 -0
  174. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.jsx +103 -0
  175. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default_value.md +1 -0
  176. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +4 -0
  177. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +2 -0
  178. data/app/pb_kits/playbook/tokens/_positioning.scss +1 -0
  179. data/app/pb_kits/playbook/utilities/_positioning.scss +6 -1
  180. data/app/pb_kits/playbook/utilities/globalProps.ts +3 -1
  181. data/dist/chunks/{_line_graph-ByLTvO72.js → _line_graph-CqE0-dq5.js} +1 -1
  182. data/dist/chunks/_typeahead-3ZAbZUqU.js +6 -0
  183. data/dist/chunks/{_weekday_stacked-CB1Sm0pQ.js → _weekday_stacked-D6fNzH0S.js} +3 -3
  184. data/dist/chunks/{lib-izYrkvOQ.js → lib-CGxXTQ75.js} +2 -2
  185. data/dist/chunks/{pb_form_validation-Cah5Z5J3.js → pb_form_validation-DebqlUKZ.js} +1 -1
  186. data/dist/chunks/vendor.js +1 -1
  187. data/dist/menu.yml +12 -0
  188. data/dist/playbook-doc.js +2 -2
  189. data/dist/playbook-rails-react-bindings.js +1 -1
  190. data/dist/playbook-rails.js +1 -1
  191. data/dist/playbook.css +1 -1
  192. data/lib/playbook/pb_forms_helper.rb +7 -6
  193. data/lib/playbook/version.rb +2 -2
  194. data/lib/playbook/z_index.rb +1 -1
  195. metadata +101 -8
  196. data/dist/chunks/_typeahead-DXZQU3hC.js +0 -6
  197. /data/app/pb_kits/playbook/pb_popover/docs/{_popover_append_to.md → _popover_append_to_rails.md} +0 -0
@@ -43,270 +43,287 @@ $gap_lg: $height_from_top + $space_lg;
43
43
  flex-direction: $flex_direction;
44
44
  }
45
45
 
46
- [class^=pb_timeline_kit] {
47
- &[class*=_horizontal] {
48
- @include flex_wrapper(row);
49
- width: 100%;
50
- >div {
51
- &:last-child {
52
- flex-basis: auto !important;
53
- [class^=pb_timeline_item_step] {
54
- [class=pb_timeline_item_connector] {
55
- opacity: 0;
56
- }
57
- }
58
- [class=pb_timeline_item_right_block] {
59
- display: block;
60
- width: 100%;
61
- overflow: hidden;
62
- white-space: nowrap;
63
- }
46
+ @mixin timeline_item_step_base($direction: row, $align: center, $margin_v: $space_xs, $margin_h: 0) {
47
+ @include flex_wrapper($direction);
48
+ align-items: $align;
49
+
50
+ @if $direction == row {
51
+ margin-top: $margin_v;
52
+ margin-bottom: $margin_v;
53
+ } @else {
54
+ margin-right: $margin_h;
55
+ margin-left: $margin_h;
56
+ }
57
+ }
58
+
59
+ @mixin timeline_gap_height($height) {
60
+ .pb_timeline_item_kit_solid,
61
+ .pb_timeline_item_kit_dotted {
62
+ .pb_timeline_item_step {
63
+ .pb_timeline_item_connector {
64
+ height: $height !important;
64
65
  }
65
66
  }
66
- [class*=pb_timeline_item_kit] {
67
- &[class*=_solid] {
68
- flex-basis: 100%;
69
- [class^=pb_timeline_item_step] {
70
- @include flex_wrapper(row);
71
- align-items: center;
72
- margin-top: $space_xs;
73
- margin-bottom: $space_xs;
74
- [class=pb_timeline_item_connector] {
75
- @include pb_timeline_line_solid($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
76
- }
67
+ }
68
+ }
69
+
70
+ @mixin timeline_left_block($margin_bottom: $space_lg, $width: auto, $min_width: auto, $height: auto, $display: block) {
71
+ .pb_timeline_item_left_block {
72
+ margin-bottom: $margin_bottom;
73
+
74
+ @if $width != auto {
75
+ width: $width;
76
+ }
77
+
78
+ @if $min_width != auto {
79
+ min-width: $min_width;
80
+ }
81
+
82
+ @if $height != auto {
83
+ height: $height;
84
+ }
85
+
86
+ @if $display != block {
87
+ display: $display;
88
+ }
89
+ }
90
+ }
91
+
92
+ @mixin timeline_right_block($margin_bottom: $space_lg) {
93
+ .pb_timeline_item_right_block {
94
+ @include flex_wrapper(column);
95
+ margin-bottom: $margin_bottom;
96
+ }
97
+ }
98
+
99
+ .pb_timeline_kit_horizontal,
100
+ .pb_timeline_kit_horizontal_with_date {
101
+ @include flex_wrapper(row);
102
+ width: 100%;
103
+
104
+ >div {
105
+ &:last-child {
106
+ flex-basis: auto !important;
107
+
108
+ .pb_timeline_item_step {
109
+ .pb_timeline_item_connector {
110
+ opacity: 0;
77
111
  }
78
112
  }
79
- &[class*=_dotted] {
80
- flex-basis: 100%;
81
- [class^=pb_timeline_item_step] {
82
- @include flex_wrapper(row);
83
- align-items: center;
84
- margin-top: $space_xs;
85
- margin-bottom: $space_xs;
86
- [class=pb_timeline_item_connector] {
87
- @include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
88
- }
89
- }
113
+
114
+ .pb_timeline_item_right_block {
115
+ display: block;
116
+ width: 100%;
117
+ overflow: hidden;
118
+ white-space: nowrap;
90
119
  }
91
120
  }
92
- &[class*=_with_date] {
93
- @include flex_wrapper(row);
94
- width: 100%;
95
- >div {
96
- &:last-child {
97
- flex-basis: auto !important;
98
- [class^=pb_timeline_item_step] {
99
- [class=pb_timeline_item_connector] {
100
- opacity: 0;
101
- }
102
- }
103
- [class=pb_timeline_item_right_block] {
104
- display: block;
105
- width: 100%;
106
- overflow: hidden;
107
- white-space: nowrap;
108
- }
109
- }
110
- }
111
- [class*=pb_timeline_item_kit] {
112
- &[class*=_solid] {
113
- flex-basis: 100%;
114
- [class=pb_timeline_item_left_block] {
115
- display: flex;
116
- height: 55px;
117
- [class=pb_date_stacked_kit_center_sm] {
118
- [class=pb_date_stacked_day_month] {
119
- [class=pb_caption_kit_md] {
120
- text-align: left;
121
- }
122
- [class=pb_title_kit_4] {
123
- text-align: left;
124
- }
125
- }
126
- }
127
- }
128
- [class^=pb_timeline_item_step] {
129
- @include flex_wrapper(row);
130
- margin-top: $space_xs;
131
- margin-bottom: $space_xs;
132
- [class=pb_timeline_item_connector] {
133
- @include pb_timeline_line_solid($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
134
- }
135
- }
136
- }
137
- &[class*=_dotted] {
138
- flex-basis: 100%;
139
- [class=pb_timeline_item_left_block] {
140
- height: 55px;
141
- [class=pb_date_stacked_kit_center_sm] {
142
- [class=pb_date_stacked_day_month] {
143
- [class=pb_caption_kit_md] {
144
- text-align: left;
145
- }
146
- [class=pb_title_kit_4] {
147
- text-align: left;
148
- }
149
- }
150
- }
151
- }
152
- [class^=pb_timeline_item_step] {
153
- @include flex_wrapper(row);
154
- margin-top: $space_xs;
155
- margin-bottom: $space_xs;
156
- [class=pb_timeline_item_connector] {
157
- @include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, 0 $icon_margin 0 $icon_margin );
158
- }
159
- }
160
- }
121
+ }
122
+
123
+ .pb_timeline_item_kit_solid {
124
+ flex-basis: 100%;
125
+
126
+ .pb_timeline_item_step {
127
+ @include timeline_item_step_base(row, center, $space_xs);
128
+
129
+ .pb_timeline_item_connector {
130
+ @include pb_timeline_line_solid($connector_width,
131
+ $connector_width,
132
+ 0 $icon_margin 0 $icon_margin );
161
133
  }
162
134
  }
163
135
  }
164
- &[class*=_vertical] {
165
- @include flex_wrapper(column);
166
- align-items: flex-start;
167
- align-self: auto;
168
- >div:last-child {
169
- [class^=pb_timeline_item_step] {
170
- [class=pb_timeline_item_connector] {
171
- opacity: 0;
172
- }
136
+
137
+ .pb_timeline_item_kit_dotted {
138
+ flex-basis: 100%;
139
+
140
+ .pb_timeline_item_step {
141
+ @include timeline_item_step_base(row, center, $space_xs);
142
+
143
+ .pb_timeline_item_connector {
144
+ @include pb_timeline_line_dotted_horizontal($connector_width,
145
+ $connector_width,
146
+ 0 $icon_margin 0 $icon_margin );
173
147
  }
174
148
  }
175
- [class*=pb_timeline_item_kit] {
176
- @include flex_wrapper(row);
177
- &[class*=_solid] {
178
- flex-basis: 100%;
179
- [class^=pb_timeline_item_step] {
180
- @include flex_wrapper(column);
181
- align-items: center;
182
- align-content: flex-start;
183
- margin-right: $space_sm;
184
- margin-left: $space_sm;
185
- [class=pb_timeline_item_connector] {
186
- @include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
149
+ }
150
+ }
151
+
152
+ .pb_timeline_kit_horizontal_with_date {
153
+ .pb_timeline_item_kit_solid {
154
+ @include timeline_left_block(auto, auto, auto, 55px, flex);
155
+
156
+ .pb_timeline_item_left_block {
157
+ .pb_date_stacked_kit_center_sm {
158
+ .pb_date_stacked_day_month {
159
+ .pb_caption_kit_md {
160
+ text-align: left;
187
161
  }
188
162
  }
189
- [class=pb_timeline_item_left_block] {
190
- margin-bottom: $space_lg;
191
- width: 0px;
192
- }
193
- [class=pb_timeline_item_right_block] {
194
- @include flex_wrapper(column);
195
- margin-bottom: $space_lg;
196
- }
197
163
  }
198
- &[class*=_dotted] {
199
- flex-basis: 100%;
200
- [class^=pb_timeline_item_step] {
201
- @include flex_wrapper(column);
202
- align-items: center;
203
- margin-right: $space_sm;
204
- margin-left: $space_sm;
205
- [class=pb_timeline_item_connector] {
206
- @include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
164
+ }
165
+ }
166
+
167
+ .pb_timeline_item_kit_dotted {
168
+ @include timeline_left_block(auto, auto, auto, 55px);
169
+
170
+ .pb_timeline_item_left_block {
171
+ .pb_date_stacked_kit_center_sm {
172
+ .pb_date_stacked_day_month {
173
+ .pb_caption_kit_md {
174
+ text-align: left;
207
175
  }
208
176
  }
209
- [class=pb_timeline_item_left_block] {
210
- margin-bottom: $space_lg;
211
- width: 0px;
212
- }
213
- [class=pb_timeline_item_right_block] {
214
- @include flex_wrapper(column);
215
- margin-bottom: $space_lg;
216
- }
217
177
  }
218
178
  }
219
- &[class*=_with_date] {
220
- @include flex_wrapper(column);
221
- align-items: flex-start;
222
- align-self: auto;
223
- >div:last-child {
224
- [class^=pb_timeline_item_step] {
225
- [class=pb_timeline_item_connector] {
226
- opacity: 0;
227
- }
228
- }
179
+
180
+ .pb_timeline_item_step {
181
+ @include timeline_item_step_base(row, center, $space_xs);
182
+
183
+ .pb_timeline_item_connector {
184
+ @include pb_timeline_line_dotted_horizontal($connector_width,
185
+ $connector_width,
186
+ 0 $icon_margin 0 $icon_margin );
229
187
  }
230
- [class*=pb_timeline_item_kit] {
231
- @include flex_wrapper(row);
232
- &[class*=_solid] {
233
- flex-basis: 100%;
234
- [class^=pb_timeline_item_step] {
235
- @include flex_wrapper(column);
236
- align-items: center;
237
- align-content: flex-start;
238
- margin-right: $space_sm;
239
- margin-left: $space_sm;
240
- [class=pb_timeline_item_connector] {
241
- @include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
242
- }
243
- }
244
- [class=pb_timeline_item_left_block] {
245
- margin-bottom: $space_lg;
246
- min-width: $space_lg;
247
- }
248
- [class=pb_timeline_item_right_block] {
249
- @include flex_wrapper(column);
250
- margin-bottom: $space_lg;
251
- }
252
- }
253
- &[class*=_dotted] {
254
- flex-basis: 100%;
255
- [class^=pb_timeline_item_step] {
256
- @include flex_wrapper(column);
257
- align-items: center;
258
- margin-right: $space_sm;
259
- margin-left: $space_sm;
260
- [class=pb_timeline_item_connector] {
261
- @include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin 0);
262
- }
263
- }
264
- [class=pb_timeline_item_left_block] {
265
- margin-bottom: $space_lg;
266
- min-width: $space_lg;
267
- }
268
- [class=pb_timeline_item_right_block] {
269
- @include flex_wrapper(column);
270
- margin-bottom: $space_lg;
271
- }
272
- }
188
+ }
189
+ }
190
+ }
191
+
192
+ .pb_timeline_kit_vertical,
193
+ .pb_timeline_kit_vertical_with_date,
194
+ .pb_timeline_kit_vertical_gap_xs,
195
+ .pb_timeline_kit_vertical_gap_sm,
196
+ .pb_timeline_kit_vertical_gap_md,
197
+ .pb_timeline_kit_vertical_gap_lg,
198
+ .pb_timeline_kit_vertical_with_date_gap_xs,
199
+ .pb_timeline_kit_vertical_with_date_gap_sm,
200
+ .pb_timeline_kit_vertical_with_date_gap_md,
201
+ .pb_timeline_kit_vertical_with_date_gap_lg {
202
+ @include flex_wrapper(column);
203
+ align-items: flex-start;
204
+ align-self: auto;
205
+
206
+ >div:last-child {
207
+ .pb_timeline_item_step {
208
+ .pb_timeline_item_connector {
209
+ opacity: 0;
273
210
  }
274
211
  }
275
- &[class*=_gap_xs] {
276
- [class*=pb_timeline_item_kit] {
277
- [class^=pb_timeline_item_step] {
278
- [class=pb_timeline_item_connector] {
279
- height: $gap_xs !important;
280
- }
281
- }
212
+ }
213
+
214
+
215
+ .pb_timeline_item_kit_solid {
216
+ @include flex_wrapper(row);
217
+ flex-basis: 100%;
218
+
219
+ .pb_timeline_item_step {
220
+ @include timeline_item_step_base(column, center, 0, $space_sm);
221
+ align-content: flex-start;
222
+
223
+ .pb_timeline_item_connector {
224
+ @include pb_timeline_line_solid($connector_width,
225
+ $connector_width,
226
+ $icon_margin 0 $icon_margin 0);
282
227
  }
283
228
  }
284
- &[class*=_gap_sm] {
285
- [class*=pb_timeline_item_kit] {
286
- [class^=pb_timeline_item_step] {
287
- [class=pb_timeline_item_connector] {
288
- height: $gap_sm !important;
289
- }
229
+
230
+ @include timeline_left_block($space_lg, 0px);
231
+ @include timeline_right_block($space_lg);
232
+ }
233
+
234
+
235
+ .pb_timeline_item_kit_dotted {
236
+ @include flex_wrapper(row);
237
+ flex-basis: 100%;
238
+
239
+ .pb_timeline_item_step {
240
+ @include timeline_item_step_base(column, center, 0, $space_sm);
241
+
242
+ .pb_timeline_item_connector {
243
+ @include pb_timeline_line_dotted_vertical($connector_width,
244
+ $connector_width,
245
+ $icon_margin 0 $icon_margin 0);
246
+ }
247
+ }
248
+
249
+ @include timeline_left_block($space_lg, 0px);
250
+ @include timeline_right_block($space_lg);
251
+ }
252
+
253
+ &.pb_timeline_kit_vertical_with_date,
254
+ &.pb_timeline_kit_vertical_with_date_gap_xs,
255
+ &.pb_timeline_kit_vertical_with_date_gap_sm,
256
+ &.pb_timeline_kit_vertical_with_date_gap_md,
257
+ &.pb_timeline_kit_vertical_with_date_gap_lg {
258
+ @include flex_wrapper(column);
259
+ align-items: flex-start;
260
+ align-self: auto;
261
+
262
+ >div:last-child {
263
+ .pb_timeline_item_step {
264
+ .pb_timeline_item_connector {
265
+ opacity: 0;
290
266
  }
291
267
  }
292
268
  }
293
- &[class*=_gap_md] {
294
- [class*=pb_timeline_item_kit] {
295
- [class^=pb_timeline_item_step] {
296
- [class=pb_timeline_item_connector] {
297
- height: $gap_md !important;
298
- }
269
+
270
+ .pb_timeline_item_kit_solid {
271
+ @include flex_wrapper(row);
272
+
273
+ flex-basis: 100%;
274
+
275
+ .pb_timeline_item_step {
276
+ @include timeline_item_step_base(column, center, 0, $space_sm);
277
+ align-content: flex-start;
278
+
279
+ .pb_timeline_item_connector {
280
+ @include pb_timeline_line_solid($connector_width,
281
+ $connector_width,
282
+ $icon_margin 0 $icon_margin 0);
299
283
  }
300
284
  }
285
+
286
+ @include timeline_left_block($space_lg, auto, $space_lg);
287
+ @include timeline_right_block($space_lg);
301
288
  }
302
- &[class*=_gap_lg] {
303
- [class*=pb_timeline_item_kit] {
304
- [class^=pb_timeline_item_step] {
305
- [class=pb_timeline_item_connector] {
306
- height: $gap_lg !important;
307
- }
289
+
290
+ .pb_timeline_item_kit_dotted {
291
+ flex-basis: 100%;
292
+
293
+ .pb_timeline_item_step {
294
+ @include timeline_item_step_base(column, center, 0, $space_sm);
295
+
296
+ .pb_timeline_item_connector {
297
+ @include pb_timeline_line_dotted_vertical($connector_width,
298
+ $connector_width,
299
+ $icon_margin 0 $icon_margin 0);
308
300
  }
309
301
  }
302
+
303
+ @include timeline_left_block($space_lg, auto, $space_lg);
304
+ @include timeline_right_block($space_lg);
310
305
  }
311
306
  }
312
307
  }
308
+
309
+
310
+
311
+ .pb_timeline_kit_vertical_gap_xs,
312
+ .pb_timeline_kit_vertical_with_date_gap_xs {
313
+ @include timeline_gap_height($gap_xs);
314
+ }
315
+
316
+ .pb_timeline_kit_vertical_gap_sm,
317
+ .pb_timeline_kit_vertical__with_date_gap_sm {
318
+ @include timeline_gap_height($gap_sm);
319
+ }
320
+
321
+ .pb_timeline_kit_vertical_gap_md,
322
+ .pb_timeline_kit_vertical_with_date_gap_md {
323
+ @include timeline_gap_height($gap_md);
324
+ }
325
+
326
+ .pb_timeline_kit_vertical_gap_lg,
327
+ .pb_timeline_kit_vertical_with_date_gap_lg {
328
+ @include timeline_gap_height($gap_lg);
329
+ }
@@ -38,7 +38,7 @@ const Timeline = ({
38
38
  const ariaProps = buildAriaProps(aria)
39
39
  const dataProps = buildDataProps(data)
40
40
  const htmlProps = buildHtmlProps(htmlOptions)
41
- const dateStyle = showDate === true ? '_with_date' : ''
41
+ const dateStyle = showDate === true ? 'with_date' : ''
42
42
  const itemGapStyle = itemGap === 'none' ? '' : `gap_${itemGap}`
43
43
  const timelineCss = buildCss('pb_timeline_kit', `${orientation}`, dateStyle, itemGapStyle)
44
44
 
@@ -161,12 +161,12 @@ test('should pass showDate prop', () => {
161
161
  const props = { showDate: true }
162
162
  render(<TimelineDefault {...props} />)
163
163
  const kit = screen.getByTestId(testId)
164
- expect(kit).toHaveClass('pb_timeline_kit_horizontal__with_date')
164
+ expect(kit).toHaveClass('pb_timeline_kit_horizontal_with_date')
165
165
  })
166
166
 
167
167
  test('should pass showDate prop with Children', () => {
168
168
  const props = { showDate: true }
169
169
  render(<TimelineWithChildren {...props} />)
170
170
  const kit = screen.getByTestId(testId)
171
- expect(kit).toHaveClass('pb_timeline_kit_horizontal__with_date')
171
+ expect(kit).toHaveClass('pb_timeline_kit_horizontal_with_date')
172
172
  })
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { render, screen } from '../utilities/test-utils'
2
+ import { render, screen, fireEvent, waitFor } from '../utilities/test-utils'
3
3
  import Typeahead from './_typeahead'
4
4
 
5
5
  const options = [
@@ -137,4 +137,79 @@ test('typeahead with colored pills', () => {
137
137
  const kit = screen.getByTestId('pills-color-test')
138
138
  const pill = kit.querySelector(".pb_form_pill_kit.pb_form_pill_neutral")
139
139
  expect(pill).toBeInTheDocument()
140
+ })
141
+
142
+ test('typeahead with defaultValue with focus behavior', async () => {
143
+ render(
144
+ <Typeahead
145
+ data={{ testid: 'default-value-focus-test' }}
146
+ defaultValue={[options[1]]}
147
+ options={options}
148
+ />
149
+ )
150
+
151
+ const kit = screen.getByTestId('default-value-focus-test')
152
+ const inputDiv = kit.querySelector(".typeahead-kit-select__single-value")
153
+ expect(inputDiv).toHaveTextContent("Red")
154
+
155
+ // Test that the control can receive focus
156
+ const control = kit.querySelector('.typeahead-kit-select__control')
157
+ expect(control).toBeInTheDocument()
158
+
159
+ // Simulate opening the menu by clicking the control
160
+ fireEvent.mouseDown(control)
161
+
162
+ // Wait for menu to appear
163
+ await waitFor(() => {
164
+ const menu = kit.querySelector('.typeahead-kit-select__menu')
165
+ expect(menu).toBeInTheDocument()
166
+ })
167
+
168
+ // Check that the correct option has the focused class
169
+ await waitFor(() => {
170
+ const focusedOption = kit.querySelector('.typeahead-kit-select__option--is-focused')
171
+ expect(focusedOption).toBeInTheDocument()
172
+ expect(focusedOption).toHaveTextContent('Red')
173
+ })
174
+ })
175
+
176
+ test('typeahead with grouped options and defaultValue focus behavior', async () => {
177
+ const groupedOptions = [
178
+ {
179
+ label: "Warm Colors",
180
+ options: [
181
+ { label: "Red", value: "#FF0000" },
182
+ { label: "Orange", value: "#FFA500" },
183
+ { label: "Yellow", value: "#FFFF00" }
184
+ ]
185
+ },
186
+ {
187
+ label: "Cool Colors",
188
+ options: [
189
+ { label: "Blue", value: "#0000FF" },
190
+ { label: "Teal", value: "#008080" },
191
+ { label: "Cyan", value: "#00FFFF" }
192
+ ]
193
+ },
194
+ {
195
+ label: "Fun Shades",
196
+ options: [
197
+ { label: "Pink", value: "#FFC0CB" },
198
+ { label: "Magenta", value: "#FF00FF" },
199
+ { label: "Purple", value: "#800080" }
200
+ ]
201
+ }
202
+ ]
203
+
204
+ render(
205
+ <Typeahead
206
+ data={{ testid: 'grouped-options-focus-test' }}
207
+ defaultValue={[{ label: "Pink", value: "#FFC0CB" }]}
208
+ options={groupedOptions}
209
+ />
210
+ )
211
+
212
+ const kit = screen.getByTestId('grouped-options-focus-test')
213
+ const inputDiv = kit.querySelector(".typeahead-kit-select__single-value")
214
+ expect(inputDiv).toHaveTextContent("Pink")
140
215
  })