playbook_ui 14.13.0.pre.alpha.PLAY1873rails86087 → 14.13.0.pre.alpha.pbntr799collapsiblerowswithcustomclick6117

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
  3. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +4 -1
  4. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +90 -0
  5. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +5 -0
  6. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +2 -0
  7. data/app/pb_kits/playbook/pb_draggable/docs/index.js +2 -1
  8. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +7 -4
  9. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +6 -3
  10. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +1 -6
  11. data/app/pb_kits/playbook/pb_nav/item.html.erb +7 -19
  12. data/app/pb_kits/playbook/pb_nav/nav.html.erb +3 -8
  13. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +1 -6
  14. data/app/pb_kits/playbook/pb_popover/popover.html.erb +1 -6
  15. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  16. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +51 -0
  17. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +2 -0
  18. data/app/pb_kits/playbook/pb_table/docs/example.yml +1 -0
  19. data/app/pb_kits/playbook/pb_table/index.ts +41 -9
  20. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +4 -0
  21. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +29 -2
  22. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +31 -3
  23. data/app/pb_kits/playbook/pb_table/table_body.html.erb +13 -7
  24. data/app/pb_kits/playbook/pb_table/table_body.rb +2 -0
  25. data/app/pb_kits/playbook/pb_table/table_row.html.erb +14 -7
  26. data/app/pb_kits/playbook/pb_table/table_row.rb +14 -1
  27. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +14 -0
  28. data/app/pb_kits/playbook/pb_text_input/index.js +9 -0
  29. data/app/pb_kits/playbook/pb_text_input/text_input.rb +5 -2
  30. data/dist/chunks/{_typeahead-DQTwAd_2.js → _typeahead-B9UYfqxU.js} +4 -4
  31. data/dist/chunks/_weekday_stacked-BoCeTceb.js +45 -0
  32. data/dist/chunks/{lib-WQEeEj3t.js → lib-D3us1bGD.js} +1 -1
  33. data/dist/chunks/{pb_form_validation-Cq64l4zn.js → pb_form_validation-BpihMSOQ.js} +1 -1
  34. data/dist/chunks/vendor.js +1 -1
  35. data/dist/playbook-doc.js +1 -1
  36. data/dist/playbook-rails-react-bindings.js +1 -1
  37. data/dist/playbook-rails.js +1 -1
  38. data/dist/playbook.css +1 -1
  39. data/lib/playbook/version.rb +1 -1
  40. metadata +13 -9
  41. data/dist/chunks/_weekday_stacked-ei-exO-N.js +0 -45
  42. /data/app/pb_kits/playbook/pb_table/docs/{_table_with_collapsible_with_custom_click.md → _table_with_collapsible_with_custom_click_react.md} +0 -0
@@ -5,6 +5,7 @@
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,
8
9
  **combined_html_options) do %>
9
10
  <%= content.presence %>
10
11
  <% end %>
@@ -18,13 +19,19 @@
18
19
  <% end %>
19
20
  </tr>
20
21
  <% elsif object.tag == "table" %>
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 %>
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 %>
28
35
  <% end %>
29
36
  <% else %>
30
37
  <%= content_tag(:div,
@@ -13,9 +13,14 @@ 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
16
21
 
17
22
  def classname
18
- generate_classname("pb_table_row_kit", side_highlight_class) + tag_class
23
+ generate_classname("pb_table_row_kit", side_highlight_class) + tag_class + collapsible_cell_class
19
24
  end
20
25
 
21
26
  def side_highlight_class
@@ -25,6 +30,14 @@ module Playbook
25
30
  def tag_class
26
31
  " pb_table_tr"
27
32
  end
33
+
34
+ def collapsible_cell_class
35
+ if toggle_cell_id
36
+ " collapsible_cell"
37
+ else
38
+ ""
39
+ end
40
+ end
28
41
  end
29
42
  end
30
43
  end
@@ -27,6 +27,20 @@
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
+
30
44
  <%= pb_rails("title" , props: {
31
45
  text: "Hidden Input Under The Hood",
32
46
  padding_bottom: "sm"
@@ -27,6 +27,8 @@ export default class PbTextInput extends PbEnhancedElement {
27
27
  ssn: 'ssn',
28
28
  postal_code: 'postalCode',
29
29
  zip_code: 'zipCode',
30
+ credit_card: 'creditCard',
31
+ cvv: 'cvv',
30
32
  }[maskType];
31
33
 
32
34
  if (maskKey && INPUTMASKS[maskKey]) {
@@ -45,6 +47,9 @@ export default class PbTextInput extends PbEnhancedElement {
45
47
  case "currency":
46
48
  sanitizedInput.value = sanitizeCurrency(formattedValue);
47
49
  break;
50
+ case "credit_card":
51
+ sanitizedInput.value = sanitizeCreditCard(formattedValue);
52
+ break;
48
53
  default:
49
54
  sanitizedInput.value = formattedValue;
50
55
  }
@@ -63,6 +68,10 @@ function sanitizeCurrency(input) {
63
68
  return input.replace(/[$,]/g, "");
64
69
  }
65
70
 
71
+ function sanitizeCreditCard(input) {
72
+ return input.replace(/\D/g, "");
73
+ }
74
+
66
75
  function setCursorPosition(inputElement, cursorPosition, rawValue, formattedValue) {
67
76
  const difference = formattedValue.length - rawValue.length;
68
77
  const newPosition = Math.max(0, cursorPosition + difference);
@@ -4,13 +4,15 @@
4
4
  module Playbook
5
5
  module PbTextInput
6
6
  class TextInput < Playbook::KitBase
7
- VALID_MASKS = %w[currency zipCode postalCode ssn].freeze
7
+ VALID_MASKS = %w[currency zip_code postal_code ssn credit_card cvv].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}',
14
16
  }.freeze
15
17
 
16
18
  prop :autocomplete, type: Playbook::Props::Boolean,
@@ -34,7 +36,8 @@ module Playbook
34
36
  prop :add_on, type: Playbook::Props::NestedProps,
35
37
  nested_kit: Playbook::PbTextInput::AddOn
36
38
 
37
- prop :mask, type: Playbook::Props::String,
39
+ prop :mask, type: Playbook::Props::Enum,
40
+ values: ["currency", "zip_code", "postal_code", "ssn", "credit_card", "cvv", nil],
38
41
  default: nil
39
42
 
40
43
  def classname