playbook_ui 14.13.0.pre.alpha.rails8compatible6232 → 14.13.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 (213) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/CustomCell.tsx +1 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +4 -11
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +10 -74
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +26 -43
  7. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +1 -8
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +0 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +1 -3
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -3
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -3
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -3
  14. data/app/pb_kits/playbook/pb_advanced_table/index.js +6 -9
  15. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +5 -8
  16. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +0 -9
  17. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +7 -11
  18. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +7 -6
  19. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_badge_component_overlay.jsx +3 -9
  20. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_circle_icon_component_overlay.jsx +2 -6
  21. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.scss +66 -0
  22. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.tsx +98 -0
  23. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +28 -0
  24. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +42 -0
  25. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +19 -0
  26. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +26 -0
  27. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +10 -0
  28. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +17 -0
  29. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +19 -0
  30. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +16 -0
  31. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +35 -0
  32. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +42 -0
  33. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +13 -0
  34. data/app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml +15 -0
  35. data/app/pb_kits/playbook/pb_avatar_action_button/docs/index.js +4 -0
  36. data/app/pb_kits/playbook/pb_avatar_action_button/pb_avatar_action_button.test.js +31 -0
  37. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -1
  38. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
  39. data/app/pb_kits/playbook/pb_button/button.rb +1 -1
  40. data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +8 -17
  41. data/app/pb_kits/playbook/pb_checkbox/checkbox.test.js +0 -16
  42. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +1 -2
  43. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +0 -1
  44. data/app/pb_kits/playbook/pb_date/_date.tsx +4 -14
  45. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +1 -2
  46. data/app/pb_kits/playbook/pb_date/docs/_date_unstyled.jsx +5 -13
  47. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -3
  48. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +5 -4
  49. data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
  50. data/app/pb_kits/playbook/pb_draggable/draggable_container.html.erb +2 -2
  51. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +0 -5
  52. data/app/pb_kits/playbook/pb_draggable/draggable_item.html.erb +1 -1
  53. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +0 -4
  54. data/app/pb_kits/playbook/pb_draggable/index.js +15 -151
  55. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +4 -7
  56. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +3 -6
  57. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +6 -1
  58. data/app/pb_kits/playbook/pb_filter/filter.html.erb +5 -1
  59. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +0 -1
  60. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/index.js +5 -7
  61. data/app/pb_kits/playbook/pb_form_group/form_group.html.erb +6 -1
  62. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
  63. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +7 -11
  64. data/app/pb_kits/playbook/pb_home_address_street/docs/example.yml +0 -2
  65. data/app/pb_kits/playbook/pb_home_address_street/docs/index.js +0 -1
  66. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +2 -13
  67. data/app/pb_kits/playbook/pb_icon/icon.html.erb +6 -2
  68. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_default.html.erb +2 -1
  69. data/app/pb_kits/playbook/pb_icon_button/docs/example.yml +3 -1
  70. data/app/pb_kits/playbook/pb_icon_button/icon_button.html.erb +1 -1
  71. data/app/pb_kits/playbook/pb_icon_button/icon_button.rb +0 -3
  72. data/app/pb_kits/playbook/pb_layout/body.html.erb +5 -1
  73. data/app/pb_kits/playbook/pb_layout/footer.html.erb +5 -1
  74. data/app/pb_kits/playbook/pb_layout/header.html.erb +5 -1
  75. data/app/pb_kits/playbook/pb_layout/item.html.erb +5 -1
  76. data/app/pb_kits/playbook/pb_layout/layout.html.erb +5 -1
  77. data/app/pb_kits/playbook/pb_layout/sidebar.html.erb +5 -1
  78. data/app/pb_kits/playbook/pb_legend/legend.html.erb +6 -1
  79. data/app/pb_kits/playbook/pb_lightbox/lightbox.scss +6 -7
  80. data/app/pb_kits/playbook/pb_link/_link.tsx +0 -18
  81. data/app/pb_kits/playbook/pb_link/docs/example.yml +3 -5
  82. data/app/pb_kits/playbook/pb_link/docs/index.js +1 -2
  83. data/app/pb_kits/playbook/pb_link/link.html.erb +1 -1
  84. data/app/pb_kits/playbook/pb_link/link.rb +0 -6
  85. data/app/pb_kits/playbook/pb_link/link.test.jsx +0 -30
  86. data/app/pb_kits/playbook/pb_message/message.html.erb +6 -1
  87. data/app/pb_kits/playbook/pb_message/message_mention.html.erb +6 -1
  88. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +6 -1
  89. data/app/pb_kits/playbook/pb_nav/item.html.erb +19 -7
  90. data/app/pb_kits/playbook/pb_nav/nav.html.erb +8 -3
  91. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +6 -1
  92. data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +0 -4
  93. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -1
  94. data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -1
  95. data/app/pb_kits/playbook/pb_overlay/subcomponents/_overlay_token.tsx +10 -48
  96. data/app/pb_kits/playbook/pb_popover/popover.html.erb +6 -1
  97. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +1 -6
  98. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.tsx +5 -7
  99. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +0 -1
  100. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +0 -7
  101. data/app/pb_kits/playbook/pb_progress_pills/docs/example.yml +0 -2
  102. data/app/pb_kits/playbook/pb_progress_pills/docs/index.js +0 -1
  103. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.html.erb +7 -2
  104. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +0 -6
  105. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.test.js +1 -26
  106. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.html.erb +5 -1
  107. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tooltip.html.erb +6 -6
  108. data/app/pb_kits/playbook/pb_progress_step/progress_step.html.erb +5 -1
  109. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.html.erb +5 -1
  110. data/app/pb_kits/playbook/pb_radio/radio.html.erb +11 -6
  111. data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.html.erb +9 -6
  112. data/app/pb_kits/playbook/pb_table/docs/_table_with_background_kit.jsx +9 -6
  113. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  114. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -5
  115. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -3
  116. data/app/pb_kits/playbook/pb_table/index.ts +9 -41
  117. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -4
  118. data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +0 -26
  119. data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +1 -0
  120. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +0 -25
  121. data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +0 -25
  122. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +2 -29
  123. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +3 -31
  124. data/app/pb_kits/playbook/pb_table/table_body.html.erb +7 -13
  125. data/app/pb_kits/playbook/pb_table/table_body.rb +0 -2
  126. data/app/pb_kits/playbook/pb_table/table_row.html.erb +7 -14
  127. data/app/pb_kits/playbook/pb_table/table_row.rb +1 -14
  128. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +1 -15
  129. data/app/pb_kits/playbook/pb_text_input/index.js +82 -60
  130. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -5
  131. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +1 -3
  132. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +1 -1
  133. data/app/pb_kits/playbook/pb_tooltip/index.js +27 -45
  134. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -5
  135. data/app/pb_kits/playbook/pb_user/_user.tsx +0 -3
  136. data/app/pb_kits/playbook/pb_user/docs/example.yml +0 -2
  137. data/app/pb_kits/playbook/pb_user/docs/index.js +0 -1
  138. data/app/pb_kits/playbook/pb_user/user.html.erb +1 -1
  139. data/app/pb_kits/playbook/pb_user/user.rb +0 -1
  140. data/app/pb_kits/playbook/pb_user/user.test.js +0 -14
  141. data/dist/chunks/_typeahead-BWwaAo_0.js +36 -0
  142. data/dist/chunks/_weekday_stacked-zyBCd1s8.js +45 -0
  143. data/dist/chunks/{lib-D3us1bGD.js → lib-kMuhBuU7.js} +2 -2
  144. data/dist/chunks/{pb_form_validation-BpihMSOQ.js → pb_form_validation-DBJ0wZuS.js} +1 -1
  145. data/dist/chunks/vendor.js +1 -1
  146. data/dist/menu.yml +7 -6
  147. data/dist/playbook-doc.js +1 -1
  148. data/dist/playbook-rails-react-bindings.js +1 -1
  149. data/dist/playbook-rails.js +1 -1
  150. data/dist/playbook.css +1 -1
  151. data/lib/playbook/version.rb +2 -2
  152. metadata +38 -79
  153. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ActionBarAnimationHelper.ts +0 -26
  154. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_headers_custom_cell.jsx +0 -75
  155. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +0 -33
  156. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +0 -55
  157. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +0 -3
  158. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +0 -3
  159. data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
  160. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  161. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  162. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.jsx +0 -69
  163. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_react_hook.md +0 -1
  164. data/app/pb_kits/playbook/pb_copy_button/_copy_button.scss +0 -4
  165. data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +0 -92
  166. data/app/pb_kits/playbook/pb_copy_button/copy_button.html.erb +0 -15
  167. data/app/pb_kits/playbook/pb_copy_button/copy_button.rb +0 -28
  168. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +0 -64
  169. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.html.erb +0 -2
  170. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.jsx +0 -21
  171. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb +0 -5
  172. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx +0 -45
  173. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.md +0 -1
  174. data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +0 -8
  175. data/app/pb_kits/playbook/pb_copy_button/docs/index.js +0 -2
  176. data/app/pb_kits/playbook/pb_copy_button/index.js +0 -47
  177. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.html.erb +0 -99
  178. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_multiple_containers_rails.md +0 -1
  179. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +0 -61
  180. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +0 -4
  181. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
  182. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
  183. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_auto_close.html.erb +0 -58
  184. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_auto_close_rails.md +0 -3
  185. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.html.erb +0 -11
  186. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting.jsx +0 -22
  187. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_rails.md +0 -1
  188. data/app/pb_kits/playbook/pb_home_address_street/docs/_home_address_street_formatting_react.md +0 -1
  189. data/app/pb_kits/playbook/pb_icon_button/docs/_icon_button_sizes.html.erb +0 -27
  190. data/app/pb_kits/playbook/pb_link/docs/_link_target.html.erb +0 -15
  191. data/app/pb_kits/playbook/pb_link/docs/_link_target.jsx +0 -29
  192. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional.jsx +0 -37
  193. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional_react.md +0 -1
  194. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +0 -1
  195. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width.html.erb +0 -1
  196. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width.jsx +0 -18
  197. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width_rails.md +0 -1
  198. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_full_width_react.md +0 -1
  199. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.html.erb +0 -47
  200. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.jsx +0 -88
  201. data/app/pb_kits/playbook/pb_table/docs/_table_with_clickable_rows.md +0 -1
  202. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
  203. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
  204. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -96
  205. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +0 -101
  206. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +0 -1
  207. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.html.erb +0 -42
  208. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.jsx +0 -59
  209. data/app/pb_kits/playbook/pb_user/docs/_user_light_weight.md +0 -2
  210. data/dist/chunks/_typeahead-PqkcDf1H.js +0 -36
  211. data/dist/chunks/_weekday_stacked-C7J0S4f7.js +0 -45
  212. /data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/{_fixed_confirmation_toast_auto_close_react.md → _fixed_confirmation_toast_auto_close.md} +0 -0
  213. /data/app/pb_kits/playbook/pb_table/docs/{_table_with_collapsible_with_custom_click_react.md → _table_with_collapsible_with_custom_click.md} +0 -0
@@ -74,31 +74,6 @@
74
74
  &.table-card {
75
75
  background: none !important;
76
76
 
77
- &.dark {
78
- tbody, .pb_table_tbody {
79
- tr, .pb_table_tr {
80
- td, .pb_table_td {
81
- background: $bg_dark_card !important;
82
- border-color: $border_dark !important;
83
- &:before {
84
- color: $text_dk_light !important;
85
- }
86
- &:after {
87
- height: 0;
88
- background-color: transparent;
89
- }
90
-
91
- &:first-child {
92
- border-radius: $border_rad_light $border_rad_light 0 0 !important;
93
- }
94
- &:last-child {
95
- border-radius: 0 0 $border_rad_light $border_rad_light !important;
96
- }
97
- }
98
- }
99
- }
100
- }
101
-
102
77
  tbody, .pb_table_tbody {
103
78
  tr, .pb_table_tr {
104
79
  td, .pb_table_td {
@@ -74,31 +74,6 @@
74
74
  &.table-card {
75
75
  background: none !important;
76
76
 
77
- &.dark {
78
- tbody, .pb_table_tbody {
79
- tr, .pb_table_tr {
80
- td, .pb_table_td {
81
- background: $bg_dark_card !important;
82
- border-color: $border_dark !important;
83
- &:before {
84
- color: $text_dk_light !important;
85
- }
86
- &:after {
87
- height: 0;
88
- background-color: transparent;
89
- }
90
-
91
- &:first-child {
92
- border-radius: $border_rad_light $border_rad_light 0 0 !important;
93
- }
94
- &:last-child {
95
- border-radius: 0 0 $border_rad_light $border_rad_light !important;
96
- }
97
- }
98
- }
99
- }
100
- }
101
-
102
77
  tbody, .pb_table_tbody {
103
78
  tr, .pb_table_tr {
104
79
  td, .pb_table_td {
@@ -7,14 +7,11 @@ import {
7
7
  } from "../../utilities/props";
8
8
  import { globalProps } from "../../utilities/globalProps";
9
9
 
10
- import Draggable from "../../pb_draggable/_draggable"
11
-
12
10
  type TableBodyPropTypes = {
13
11
  aria?: { [key: string]: string };
14
12
  children: React.ReactNode[] | React.ReactNode;
15
13
  className: string;
16
14
  data?: { [key: string]: string };
17
- draggableContainer?: boolean;
18
15
  htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
19
16
  id?: string;
20
17
  tag?: "table" | "div";
@@ -26,7 +23,6 @@ const TableBody = (props: TableBodyPropTypes): React.ReactElement => {
26
23
  children,
27
24
  className,
28
25
  data = {},
29
- draggableContainer = false,
30
26
  htmlOptions = {},
31
27
  id,
32
28
  tag = "table",
@@ -41,30 +37,7 @@ const TableBody = (props: TableBodyPropTypes): React.ReactElement => {
41
37
  return (
42
38
  <>
43
39
  {isTableTag ? (
44
- draggableContainer ? (
45
- <Draggable.Container
46
- {...ariaProps}
47
- {...dataProps}
48
- {...htmlProps}
49
- className={classes}
50
- id={id}
51
- tag="tbody"
52
- >
53
- {children}
54
- </Draggable.Container>
55
- ) : (
56
- <tbody
57
- {...ariaProps}
58
- {...dataProps}
59
- {...htmlProps}
60
- className={classes}
61
- id={id}
62
- >
63
- {children}
64
- </tbody>
65
- )
66
- ) : draggableContainer ? (
67
- <Draggable.Container
40
+ <tbody
68
41
  {...ariaProps}
69
42
  {...dataProps}
70
43
  {...htmlProps}
@@ -72,7 +45,7 @@ const TableBody = (props: TableBodyPropTypes): React.ReactElement => {
72
45
  id={id}
73
46
  >
74
47
  {children}
75
- </Draggable.Container>
48
+ </tbody>
76
49
  ) : (
77
50
  <div
78
51
  {...ariaProps}
@@ -9,7 +9,6 @@ import {
9
9
  import { globalProps } from "../../utilities/globalProps";
10
10
  import Collapsible from "../../pb_collapsible/_collapsible";
11
11
  import useCollapsible from "../../pb_collapsible/useCollapsible";
12
- import Draggable from "../../pb_draggable/_draggable";
13
12
 
14
13
  type TableRowPropTypes = {
15
14
  aria?: { [key: string]: string };
@@ -20,8 +19,6 @@ type TableRowPropTypes = {
20
19
  collapsibleSideHighlight?: boolean;
21
20
  data?: { [key: string]: string };
22
21
  dark?: boolean;
23
- dragId?: string;
24
- draggableItem?: boolean;
25
22
  htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
26
23
  id?: string;
27
24
  toggleCellId?: string;
@@ -39,8 +36,6 @@ const TableRow = (props: TableRowPropTypes): React.ReactElement => {
39
36
  className,
40
37
  data = {},
41
38
  dark = false,
42
- dragId,
43
- draggableItem = false,
44
39
  htmlOptions = {},
45
40
  id,
46
41
  toggleCellId,
@@ -157,38 +152,15 @@ const TableRow = (props: TableRowPropTypes): React.ReactElement => {
157
152
  </>
158
153
  )
159
154
  ) : isTableTag ? (
160
- draggableItem ? (
161
- <Draggable.Item
162
- {...ariaProps}
163
- {...dataProps}
164
- {...htmlProps}
165
- className={classes}
166
- dragId={dragId}
167
- tag="tr"
168
- >
169
- {children}
170
- </Draggable.Item>
171
- ) : (
172
- <tr
173
- {...ariaProps}
174
- {...dataProps}
175
- {...htmlProps}
176
- className={classes}
177
- id={id}
178
- >
179
- {children}
180
- </tr>
181
- )
182
- ) : draggableItem ? (
183
- <Draggable.Item
155
+ <tr
184
156
  {...ariaProps}
185
157
  {...dataProps}
186
158
  {...htmlProps}
187
159
  className={classes}
188
- dragId={dragId}
160
+ id={id}
189
161
  >
190
162
  {children}
191
- </Draggable.Item>
163
+ </tr>
192
164
  ) : (
193
165
  <div
194
166
  {...ariaProps}
@@ -1,17 +1,11 @@
1
1
  <% if object.tag == "table" %>
2
- <% if object.draggable_container %>
3
- <%= pb_rails("draggable/draggable_container", props: { tag: "tbody", classname: object.classname, data: object.data }) do %>
4
- <%= content.presence %>
5
- <% end %>
6
- <% else %>
7
- <%= content_tag(:tbody,
8
- aria: object.aria,
9
- class: object.classname,
10
- data: object.data,
11
- id: object.id,
12
- **combined_html_options) do %>
13
- <%= content.presence %>
14
- <% end %>
2
+ <%= content_tag(:tbody,
3
+ aria: object.aria,
4
+ class: object.classname,
5
+ data: object.data,
6
+ id: object.id,
7
+ **combined_html_options) do %>
8
+ <%= content.presence %>
15
9
  <% end %>
16
10
  <% else %>
17
11
  <%= content_tag(:div,
@@ -6,8 +6,6 @@ module Playbook
6
6
  prop :tag, type: Playbook::Props::Enum,
7
7
  values: %w[table div],
8
8
  default: "table"
9
- prop :draggable_container, type: Playbook::Props::Boolean,
10
- default: false
11
9
 
12
10
  def classname
13
11
  generate_classname("pb_table_tbody")
@@ -5,7 +5,6 @@
5
5
  data: object.data.merge(id: object.id),
6
6
  id: object.id,
7
7
  'data-pb-table-collapsible-wrapper' => true,
8
- 'data-pb-table-collapsible-cell-id' => object.toggle_cell_id,
9
8
  **combined_html_options) do %>
10
9
  <%= content.presence %>
11
10
  <% end %>
@@ -19,19 +18,13 @@
19
18
  <% end %>
20
19
  </tr>
21
20
  <% elsif object.tag == "table" %>
22
- <% if object.draggable_item %>
23
- <%= pb_rails("draggable/draggable_item", props:{ drag_id: object.drag_id, tag: "tr", classname: object.classname, data: object.data }) do %>
24
- <%= content.presence %>
25
- <% end %>
26
- <% else %>
27
- <%= content_tag(:tr,
28
- aria: object.aria,
29
- class: object.classname,
30
- data: object.data,
31
- id: object.id,
32
- **combined_html_options) do %>
33
- <%= content.presence %>
34
- <% end %>
21
+ <%= content_tag(:tr,
22
+ aria: object.aria,
23
+ class: object.classname,
24
+ data: object.data,
25
+ id: object.id,
26
+ **combined_html_options) do %>
27
+ <%= content.presence %>
35
28
  <% end %>
36
29
  <% else %>
37
30
  <%= content_tag(:div,
@@ -13,14 +13,9 @@ module Playbook
13
13
  prop :collapsible_content
14
14
  prop :collapsible_side_highlight, type: Playbook::Props::Boolean,
15
15
  default: true
16
- prop :toggle_cell_id, type: Playbook::Props::String
17
- prop :draggable_item, type: Playbook::Props::Boolean,
18
- default: false
19
- prop :drag_id, type: Playbook::Props::String,
20
- default: nil
21
16
 
22
17
  def classname
23
- generate_classname("pb_table_row_kit", side_highlight_class) + tag_class + collapsible_cell_class
18
+ generate_classname("pb_table_row_kit", side_highlight_class) + tag_class
24
19
  end
25
20
 
26
21
  def side_highlight_class
@@ -30,14 +25,6 @@ module Playbook
30
25
  def tag_class
31
26
  " pb_table_tr"
32
27
  end
33
-
34
- def collapsible_cell_class
35
- if toggle_cell_id
36
- " collapsible_cell"
37
- else
38
- ""
39
- end
40
- end
41
28
  end
42
29
  end
43
30
  end
@@ -27,20 +27,6 @@
27
27
  placeholder: "123-45-6789"
28
28
  }) %>
29
29
 
30
- <%= pb_rails("text_input", props: {
31
- label: "Credit Card",
32
- mask: "credit_card",
33
- margin_bottom: "md",
34
- placeholder: "1234 5678 9012 3456"
35
- }) %>
36
-
37
- <%= pb_rails("text_input", props: {
38
- label: "CVV",
39
- mask: "cvv",
40
- margin_bottom: "md",
41
- placeholder: "123"
42
- }) %>
43
-
44
30
  <%= pb_rails("title" , props: {
45
31
  text: "Hidden Input Under The Hood",
46
32
  padding_bottom: "sm"
@@ -52,7 +38,7 @@
52
38
  margin_bottom: "md",
53
39
  name: "currency_name",
54
40
  id: "example-currency",
55
- value: "$99.99",
41
+ placeholder: "$0.00",
56
42
  }) %>
57
43
 
58
44
  <style>
@@ -1,80 +1,102 @@
1
- import PbEnhancedElement from "../pb_enhanced_element"
2
- import { INPUTMASKS } from "./inputMask"
1
+ export default class PbTextInput {
2
+ static start() {
3
+ const inputElements = document.querySelectorAll('[data-pb-input-mask="true"]');
3
4
 
4
- export default class PbTextInput extends PbEnhancedElement {
5
- static get selector() {
6
- return '[data-pb-input-mask="true"]';
7
- }
5
+ inputElements.forEach((inputElement) => {
6
+ inputElement.addEventListener("input", (event) => {
7
+ const maskType = inputElement.getAttribute("mask");
8
+ const cursorPosition = inputElement.selectionStart;
8
9
 
9
- connect() {
10
- this.handleInput = this.handleInput.bind(this);
11
- this.element.addEventListener("input", this.handleInput);
12
- this.handleInput();
13
- }
10
+ let rawValue = event.target.value;
11
+ let formattedValue = rawValue;
14
12
 
15
- disconnect() {
16
- this.element.removeEventListener("input", this.handleInput);
17
- }
13
+ // Apply formatting based on the mask type
14
+ switch (maskType) {
15
+ case "currency":
16
+ formattedValue = formatCurrency(rawValue);
17
+ break;
18
+ case "ssn":
19
+ formattedValue = formatSSN(rawValue);
20
+ break;
21
+ case "postal_code":
22
+ formattedValue = formatPostalCode(rawValue);
23
+ break;
24
+ case "zip_code":
25
+ formattedValue = formatZipCode(rawValue);
26
+ break;
27
+ }
28
+
29
+ // Update the sanitized input field in the same wrapper
30
+ const sanitizedInput = inputElement
31
+ .closest(".text_input_wrapper")
32
+ ?.querySelector('[data="sanitized-pb-input"]');
33
+
34
+ if (sanitizedInput) {
35
+ switch (maskType) {
36
+ case "ssn":
37
+ sanitizedInput.value = sanitizeSSN(formattedValue);
38
+ break;
39
+ case "currency":
40
+ sanitizedInput.value = sanitizeCurrency(formattedValue);
41
+ break;
42
+ default:
43
+ sanitizedInput.value = formattedValue;
44
+ }
45
+ }
46
+
47
+ inputElement.value = formattedValue;
48
+ setCursorPosition(inputElement, cursorPosition, rawValue, formattedValue);
49
+ });
50
+ });
18
51
 
19
- handleInput() {
20
- const maskType = this.element.getAttribute("mask");
21
- const cursorPosition = this.element.selectionStart;
22
- const rawValue = this.element.value;
23
- let formattedValue = rawValue;
24
-
25
- const maskKey = {
26
- currency: 'currency',
27
- ssn: 'ssn',
28
- postal_code: 'postalCode',
29
- zip_code: 'zipCode',
30
- credit_card: 'creditCard',
31
- cvv: 'cvv',
32
- }[maskType];
33
-
34
- if (maskKey && INPUTMASKS[maskKey]) {
35
- formattedValue = INPUTMASKS[maskKey].format(rawValue);
36
- }
37
-
38
- const sanitizedInput = this.element
39
- .closest(".text_input_wrapper")
40
- ?.querySelector('[data="sanitized-pb-input"]');
41
-
42
- if (sanitizedInput) {
43
- switch (maskType) {
44
- case "ssn":
45
- sanitizedInput.value = sanitizeSSN(formattedValue);
46
- break;
47
- case "currency":
48
- sanitizedInput.value = sanitizeCurrency(formattedValue);
49
- break;
50
- case "credit_card":
51
- sanitizedInput.value = sanitizeCreditCard(formattedValue);
52
- break;
53
- default:
54
- sanitizedInput.value = formattedValue;
55
- }
56
- }
57
-
58
- this.element.value = formattedValue;
59
- setCursorPosition(this.element, cursorPosition, rawValue, formattedValue);
60
52
  }
61
53
  }
62
54
 
63
- function sanitizeSSN(input) {
64
- return input.replace(/\D/g, "");
55
+ function formatCurrency(value) {
56
+ const numericValue = value.replace(/[^0-9]/g, "").slice(0, 15);
57
+
58
+ if (!numericValue) return "";
59
+
60
+ const dollars = parseFloat((parseInt(numericValue) / 100).toFixed(2));
61
+ if (dollars === 0) return "";
62
+
63
+ return new Intl.NumberFormat("en-US", {
64
+ style: "currency",
65
+ currency: "USD",
66
+ maximumFractionDigits: 2,
67
+ }).format(dollars);
65
68
  }
66
69
 
67
- function sanitizeCurrency(input) {
68
- return input.replace(/[$,]/g, "");
70
+ function formatSSN(value) {
71
+ const cleaned = value.replace(/\D/g, "").slice(0, 9);
72
+ return cleaned
73
+ .replace(/(\d{5})(?=\d)/, "$1-")
74
+ .replace(/(\d{3})(?=\d)/, "$1-");
69
75
  }
70
76
 
71
- function sanitizeCreditCard(input) {
77
+ function formatZipCode(value) {
78
+ return value.replace(/\D/g, "").slice(0, 5);
79
+ }
80
+
81
+ function formatPostalCode(value) {
82
+ const cleaned = value.replace(/\D/g, "").slice(0, 9);
83
+ return cleaned.replace(/(\d{5})(?=\d)/, "$1-");
84
+ }
85
+
86
+ function sanitizeSSN(input) {
72
87
  return input.replace(/\D/g, "");
73
88
  }
74
89
 
90
+ function sanitizeCurrency(input) {
91
+ return input.replace(/[$,]/g, "");
92
+ }
93
+
94
+ // function to set cursor position
75
95
  function setCursorPosition(inputElement, cursorPosition, rawValue, formattedValue) {
76
96
  const difference = formattedValue.length - rawValue.length;
97
+
77
98
  const newPosition = Math.max(0, cursorPosition + difference);
99
+
78
100
  requestAnimationFrame(() => {
79
101
  inputElement.setSelectionRange(newPosition, newPosition);
80
102
  });
@@ -4,15 +4,13 @@
4
4
  module Playbook
5
5
  module PbTextInput
6
6
  class TextInput < Playbook::KitBase
7
- VALID_MASKS = %w[currency zip_code postal_code ssn credit_card cvv].freeze
7
+ VALID_MASKS = %w[currency zipCode postalCode ssn].freeze
8
8
 
9
9
  MASK_PATTERNS = {
10
10
  "currency" => '^\$\d{1,3}(?:,\d{3})*(?:\.\d{2})?$',
11
11
  "zip_code" => '\d{5}',
12
12
  "postal_code" => '\d{5}-\d{4}',
13
13
  "ssn" => '\d{3}-\d{2}-\d{4}',
14
- "credit_card" => '\d{4} \d{4} \d{4} \d{4}',
15
- "cvv" => '\d{3,4}',
16
14
  }.freeze
17
15
 
18
16
  prop :autocomplete, type: Playbook::Props::Boolean,
@@ -36,8 +34,7 @@ module Playbook
36
34
  prop :add_on, type: Playbook::Props::NestedProps,
37
35
  nested_kit: Playbook::PbTextInput::AddOn
38
36
 
39
- prop :mask, type: Playbook::Props::Enum,
40
- values: ["currency", "zip_code", "postal_code", "ssn", "credit_card", "cvv", nil],
37
+ prop :mask, type: Playbook::Props::String,
41
38
  default: nil
42
39
 
43
40
  def classname
@@ -32,7 +32,6 @@ type TooltipProps = {
32
32
  position?: "absolute" | "fixed";
33
33
  text: string,
34
34
  showTooltip?: boolean,
35
- forceOpenTooltip?: boolean,
36
35
  } & GlobalProps
37
36
 
38
37
  const Tooltip = forwardRef((props: TooltipProps, ref: ForwardedRef<unknown>): React.ReactElement => {
@@ -50,7 +49,6 @@ const Tooltip = forwardRef((props: TooltipProps, ref: ForwardedRef<unknown>): Re
50
49
  text,
51
50
  showTooltip = true,
52
51
  zIndex,
53
- forceOpenTooltip = false,
54
52
  ...rest
55
53
  } = props
56
54
 
@@ -137,7 +135,7 @@ const Tooltip = forwardRef((props: TooltipProps, ref: ForwardedRef<unknown>): Re
137
135
  >
138
136
  {children}
139
137
  </div>
140
- {(open || forceOpenTooltip) && (
138
+ {open && (
141
139
  <div
142
140
  {...getFloatingProps({
143
141
  className: `tooltip_tooltip ${placement} visible`,
@@ -43,4 +43,4 @@
43
43
  Whoa. I'm a tooltip.
44
44
  <% end %>
45
45
  <% end %>
46
- <% end %>
46
+ <% end %>
@@ -1,4 +1,5 @@
1
1
  import PbEnhancedElement from '../pb_enhanced_element'
2
+
2
3
  import {
3
4
  createPopperLite as createPopper,
4
5
  flip,
@@ -16,34 +17,27 @@ export default class PbTooltip extends PbEnhancedElement {
16
17
 
17
18
  connect() {
18
19
  this.triggerElements.forEach((trigger) => {
19
- const method = this.triggerMethod
20
-
21
- if (method === 'click') {
22
- trigger.addEventListener('click', () => {
20
+ trigger.addEventListener('mouseenter', () => {
21
+ this.mouseenterTimeout = setTimeout(() => {
23
22
  this.showTooltip(trigger)
24
- })
25
- } else {
26
- trigger.addEventListener('mouseenter', () => {
27
- this.mouseenterTimeout = setTimeout(() => {
28
- this.showTooltip(trigger)
29
- this.checkCloseTooltip(trigger)
30
- }, TOOLTIP_TIMEOUT)
31
-
32
- trigger.addEventListener('mouseleave', () => {
33
- clearTimeout(this.mouseenterTimeout)
34
- setTimeout(() => {
35
- this.hideTooltip()
36
- }, 0)
37
- }, { once: true })
38
- })
39
-
40
- this.tooltip.addEventListener('mouseenter', () => {
23
+ this.checkCloseTooltip(trigger)
24
+ }, TOOLTIP_TIMEOUT)
25
+
26
+ trigger.addEventListener('mouseleave', () => {
41
27
  clearTimeout(this.mouseenterTimeout)
42
- })
43
- this.tooltip.addEventListener('mouseleave', () => {
44
- this.hideTooltip()
45
- })
46
- }
28
+
29
+ setTimeout(() => {
30
+ this.hideTooltip()
31
+ }, 0)
32
+ }, { once: true })
33
+ })
34
+ })
35
+
36
+ this.tooltip.addEventListener('mouseenter', () => {
37
+ clearTimeout(this.mouseenterTimeout)
38
+ })
39
+ this.tooltip.addEventListener('mouseleave', () => {
40
+ this.hideTooltip()
47
41
  })
48
42
  }
49
43
 
@@ -60,7 +54,7 @@ export default class PbTooltip extends PbEnhancedElement {
60
54
  }
61
55
 
62
56
  showTooltip(trigger) {
63
- if (this.shouldShowTooltip === 'false') return
57
+ if (this.shouldShowTooltip === "false") return
64
58
 
65
59
  this.popper = createPopper(trigger, this.tooltip, {
66
60
  placement: this.position,
@@ -84,13 +78,6 @@ export default class PbTooltip extends PbEnhancedElement {
84
78
  ],
85
79
  })
86
80
  this.tooltip.classList.add('show')
87
-
88
- if (this.triggerMethod === 'click') {
89
- clearTimeout(this.autoHideTimeout)
90
- this.autoHideTimeout = setTimeout(() => {
91
- this.hideTooltip()
92
- }, 1000)
93
- }
94
81
  }
95
82
 
96
83
  hideTooltip() {
@@ -107,26 +94,25 @@ export default class PbTooltip extends PbEnhancedElement {
107
94
  let triggerEl
108
95
 
109
96
  if (this.triggerElementId) {
110
- triggerEl = document.querySelector(`#${this.triggerElementId}`)
97
+ triggerEl = document.querySelector(`#${this.triggerElementId}`) //deprecated
111
98
  } else {
112
99
  const selectorIsId = this.triggerElementSelector.indexOf('#') > -1
113
- triggerEl = selectorIsId
114
- ? document.querySelector(`${this.triggerElementSelector}`)
115
- : document.querySelectorAll(`${this.triggerElementSelector}`)
100
+ triggerEl = selectorIsId ? document.querySelector(`${this.triggerElementSelector}`) :
101
+ document.querySelectorAll(`${this.triggerElementSelector}`)
116
102
  }
117
103
 
118
104
  if (!triggerEl) {
105
+ /* eslint no-console: ["error", { allow: ["warn", "error"] }] */
119
106
  console.error('Tooltip Kit: an invalid or unavailable DOM reference was provided!')
120
107
  return []
121
108
  }
122
109
 
123
110
  if (!triggerEl.length) triggerEl = [triggerEl]
124
- return (this._triggerElements = this._triggerElements || triggerEl)
111
+ return this._triggerElements = (this._triggerElements || triggerEl)
125
112
  }
126
113
 
127
114
  get tooltip() {
128
- return (this._tooltip =
129
- this._tooltip || this.element.querySelector(`#${this.tooltipId}`))
115
+ return this._tooltip = (this._tooltip || this.element.querySelector(`#${this.tooltipId}`))
130
116
  }
131
117
 
132
118
  get position() {
@@ -148,8 +134,4 @@ export default class PbTooltip extends PbEnhancedElement {
148
134
  get shouldShowTooltip() {
149
135
  return this.element.dataset.pbTooltipShowTooltip
150
136
  }
151
-
152
- get triggerMethod() {
153
- return this.element.dataset.pbTooltipTriggerMethod || 'hover'
154
- }
155
137
  }