playbook_ui 14.13.0.pre.alpha.play1852reacthookformsupportradio6153 → 14.13.0.pre.alpha.play1884progresspill6064

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -1
  3. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
  4. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -3
  5. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
  6. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +1 -4
  7. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +0 -2
  8. data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
  9. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +4 -7
  10. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +3 -6
  11. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +6 -1
  12. data/app/pb_kits/playbook/pb_nav/item.html.erb +19 -7
  13. data/app/pb_kits/playbook/pb_nav/nav.html.erb +8 -3
  14. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +6 -1
  15. data/app/pb_kits/playbook/pb_popover/popover.html.erb +6 -1
  16. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +2 -1
  17. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
  18. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +7 -0
  19. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +1 -0
  20. data/app/pb_kits/playbook/pb_radio/_radio.tsx +73 -85
  21. data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -2
  22. data/app/pb_kits/playbook/pb_radio/docs/index.js +0 -1
  23. data/app/pb_kits/playbook/pb_radio/radio.test.js +0 -16
  24. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  25. data/app/pb_kits/playbook/pb_table/docs/example.yml +1 -4
  26. data/app/pb_kits/playbook/pb_table/docs/index.js +1 -2
  27. data/app/pb_kits/playbook/pb_table/index.ts +9 -41
  28. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -4
  29. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +2 -29
  30. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +3 -31
  31. data/app/pb_kits/playbook/pb_table/table_body.html.erb +7 -13
  32. data/app/pb_kits/playbook/pb_table/table_body.rb +0 -2
  33. data/app/pb_kits/playbook/pb_table/table_row.html.erb +7 -14
  34. data/app/pb_kits/playbook/pb_table/table_row.rb +1 -14
  35. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +0 -14
  36. data/app/pb_kits/playbook/pb_text_input/index.js +0 -9
  37. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -5
  38. data/dist/chunks/_typeahead-btjo1UN5.js +36 -0
  39. data/dist/chunks/_weekday_stacked-TIh9nTmZ.js +45 -0
  40. data/dist/chunks/{lib-D3us1bGD.js → lib-DjpLC8uO.js} +2 -2
  41. data/dist/chunks/{pb_form_validation-BpihMSOQ.js → pb_form_validation-S56UaHZl.js} +1 -1
  42. data/dist/chunks/vendor.js +1 -1
  43. data/dist/playbook-doc.js +1 -1
  44. data/dist/playbook-rails-react-bindings.js +1 -1
  45. data/dist/playbook-rails.js +1 -1
  46. data/dist/playbook.css +1 -1
  47. data/lib/playbook/version.rb +1 -1
  48. metadata +8 -19
  49. data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
  50. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  51. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  52. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
  53. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
  54. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -60
  55. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.md +0 -1
  56. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
  57. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
  58. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -96
  59. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +0 -101
  60. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +0 -1
  61. data/dist/chunks/_typeahead-B7kfgseZ.js +0 -36
  62. data/dist/chunks/_weekday_stacked-CQggx3_W.js +0 -45
  63. /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
@@ -2,7 +2,6 @@ import PbEnhancedElement from '../pb_enhanced_element'
2
2
 
3
3
  const TABLE_WRAPPER_SELECTOR = "[data-pb-table-wrapper]";
4
4
  const TABLE_COLLAPSIBLE_WRAPPER_SELECTOR = "[data-pb-table-collapsible-wrapper]";
5
- const TABLE_COLLAPSIBLE_CELL_SELECTOR = "[data-pb-table-collapsible-cell-id]";
6
5
 
7
6
  export default class PbTable extends PbEnhancedElement {
8
7
  stickyLeftColumns: string[] = [];
@@ -159,49 +158,18 @@ export default class PbTable extends PbEnhancedElement {
159
158
  }
160
159
 
161
160
  handleCollapsibleClick() {
162
- const cells = this.element.querySelectorAll(TABLE_COLLAPSIBLE_CELL_SELECTOR);
163
161
  const collapsibleElements = this.element.querySelectorAll(TABLE_COLLAPSIBLE_WRAPPER_SELECTOR);
164
-
165
- if (cells.length > 0) {
166
- cells.forEach((cell) => {
167
- const cellId = (cell as HTMLElement).dataset.pbTableCollapsibleCellId;
168
-
169
- Array.from(cell.children).forEach((child) => {
170
- if (child.id === cellId) {
171
- Array.from(child.children).forEach((svgChild) => {
172
- svgChild.id = cellId; // Assign cellId to SVG child
173
- Array.from(svgChild.children).forEach((pathChild) => {
174
- pathChild.id = cellId; // Assign cellId to path child
175
- });
176
- });
177
- }
178
- });
179
- cell.addEventListener('click', (event) => {
180
- if ((event.target as HTMLElement).id) {
181
- document.dispatchEvent(new CustomEvent(`collapsed-toggle${(event.currentTarget as HTMLElement).id}`));
182
-
183
- const toggleElements = this.element.querySelectorAll(`.collapsible_border_toggle${(event.currentTarget as HTMLElement).id}`);
184
- toggleElements.forEach((element) => {
185
- element.classList.toggle('no-border');
186
- element.classList.toggle('border-active');
187
- });
188
- }
162
+ collapsibleElements.forEach((collapsibleElement) => {
163
+ collapsibleElement.addEventListener('click', (event) => {
164
+ document.dispatchEvent(new CustomEvent(`collapsed-toggle${(event.currentTarget as HTMLElement).id}`))
165
+
166
+ const toggleElements = this.element.querySelectorAll(`.collapsible_border_toggle${(event.currentTarget as HTMLElement).id}`);
167
+ toggleElements.forEach(element => {
168
+ element.classList.toggle('no-border');
169
+ element.classList.toggle('border-active');
189
170
  });
190
- });
191
-
192
- } else {
193
- collapsibleElements.forEach((collapsibleElement) => {
194
- collapsibleElement.addEventListener('click', (event) => {
195
- document.dispatchEvent(new CustomEvent(`collapsed-toggle${(event.currentTarget as HTMLElement).id}`))
196
-
197
- const toggleElements = this.element.querySelectorAll(`.collapsible_border_toggle${(event.currentTarget as HTMLElement).id}`);
198
- toggleElements.forEach(element => {
199
- element.classList.toggle('no-border');
200
- element.classList.toggle('border-active');
201
- });
202
- })
203
171
  })
204
- }
172
+ })
205
173
  }
206
174
 
207
175
  handleCollapsibleRow() {
@@ -37,10 +37,6 @@
37
37
  cursor: pointer;
38
38
  }
39
39
 
40
- .collapsible_cell {
41
- cursor: default;
42
- }
43
-
44
40
  .no-border {
45
41
  border-bottom: none !important;
46
42
  }
@@ -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"
@@ -27,8 +27,6 @@ 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',
32
30
  }[maskType];
33
31
 
34
32
  if (maskKey && INPUTMASKS[maskKey]) {
@@ -47,9 +45,6 @@ export default class PbTextInput extends PbEnhancedElement {
47
45
  case "currency":
48
46
  sanitizedInput.value = sanitizeCurrency(formattedValue);
49
47
  break;
50
- case "credit_card":
51
- sanitizedInput.value = sanitizeCreditCard(formattedValue);
52
- break;
53
48
  default:
54
49
  sanitizedInput.value = formattedValue;
55
50
  }
@@ -68,10 +63,6 @@ function sanitizeCurrency(input) {
68
63
  return input.replace(/[$,]/g, "");
69
64
  }
70
65
 
71
- function sanitizeCreditCard(input) {
72
- return input.replace(/\D/g, "");
73
- }
74
-
75
66
  function setCursorPosition(inputElement, cursorPosition, rawValue, formattedValue) {
76
67
  const difference = formattedValue.length - rawValue.length;
77
68
  const newPosition = Math.max(0, cursorPosition + difference);
@@ -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