playbook_ui 14.13.0.pre.alpha.PLAY1856doc6166 → 14.13.0.pre.alpha.PLAY1873rails86087

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.scss +66 -0
  4. data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.tsx +98 -0
  5. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +28 -0
  6. data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.rb +42 -0
  7. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.html.erb +19 -0
  8. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_actions.jsx +26 -0
  9. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.html.erb +10 -0
  10. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_default.jsx +17 -0
  11. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_on_click.jsx +19 -0
  12. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_onclick.html.erb +16 -0
  13. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.html.erb +35 -0
  14. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_placement.jsx +42 -0
  15. data/app/pb_kits/playbook/pb_avatar_action_button/docs/_avatar_action_button_tooltip.html.erb +13 -0
  16. data/app/pb_kits/playbook/pb_avatar_action_button/docs/example.yml +15 -0
  17. data/app/pb_kits/playbook/pb_avatar_action_button/docs/index.js +4 -0
  18. data/app/pb_kits/playbook/pb_avatar_action_button/pb_avatar_action_button.test.js +31 -0
  19. data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +0 -1
  20. data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
  21. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
  22. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +1 -4
  23. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +0 -2
  24. data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
  25. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +4 -7
  26. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +3 -6
  27. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_breakpoints.jsx +36 -71
  28. data/app/pb_kits/playbook/pb_drawer/docs/_drawer_menu.jsx +6 -6
  29. data/app/pb_kits/playbook/pb_drawer/docs/example.yml +0 -1
  30. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +6 -1
  31. data/app/pb_kits/playbook/pb_nav/item.html.erb +19 -7
  32. data/app/pb_kits/playbook/pb_nav/nav.html.erb +8 -3
  33. data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +6 -1
  34. data/app/pb_kits/playbook/pb_popover/popover.html.erb +6 -1
  35. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +1 -2
  36. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +0 -1
  37. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +0 -7
  38. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
  39. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -1
  40. data/app/pb_kits/playbook/pb_table/index.ts +9 -41
  41. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -4
  42. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +2 -29
  43. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +3 -31
  44. data/app/pb_kits/playbook/pb_table/table_body.html.erb +7 -13
  45. data/app/pb_kits/playbook/pb_table/table_body.rb +0 -2
  46. data/app/pb_kits/playbook/pb_table/table_row.html.erb +7 -14
  47. data/app/pb_kits/playbook/pb_table/table_row.rb +1 -14
  48. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +0 -14
  49. data/app/pb_kits/playbook/pb_text_input/index.js +0 -9
  50. data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -5
  51. data/dist/chunks/{_typeahead-CAIQfP7X.js → _typeahead-DQTwAd_2.js} +4 -4
  52. data/dist/chunks/_weekday_stacked-ei-exO-N.js +45 -0
  53. data/dist/chunks/{lib-D3us1bGD.js → lib-WQEeEj3t.js} +1 -1
  54. data/dist/chunks/{pb_form_validation-BpihMSOQ.js → pb_form_validation-Cq64l4zn.js} +1 -1
  55. data/dist/chunks/vendor.js +1 -1
  56. data/dist/menu.yml +7 -0
  57. data/dist/playbook-doc.js +1 -1
  58. data/dist/playbook-rails-react-bindings.js +1 -1
  59. data/dist/playbook-rails.js +1 -1
  60. data/dist/playbook.css +1 -1
  61. data/lib/playbook/version.rb +1 -1
  62. metadata +25 -17
  63. data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
  64. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
  65. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
  66. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
  67. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
  68. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +0 -1
  69. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
  70. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
  71. data/dist/chunks/_weekday_stacked-Dq02Kbeo.js +0 -45
  72. /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
@@ -1,77 +1,42 @@
1
- import React, { useState, useEffect } from "react"
2
- import { Button, Drawer, Icon, Nav, NavItem } from "playbook-ui"
1
+ import React, { useState } from "react";
2
+ import { Button, Drawer, Flex } from "playbook-ui";
3
3
 
4
- const DrawerMenu = () => {
5
- const [isSmallScreen, setIsSmallScreen] = useState(false)
6
- const navItems = ["Overview", "Albums", "Similar Artists"]
4
+ const useDrawer = (visible = false) => {
5
+ const [opened, setOpened] = useState(visible);
6
+ const toggle = () => setOpened(!opened);
7
7
 
8
- useEffect(() => {
9
- const mediaQuery = window.matchMedia("(max-width: 992px)")
10
- const updateScreen = (e) => setIsSmallScreen(e.matches)
11
- updateScreen(mediaQuery)
12
- mediaQuery.addEventListener('change', updateScreen)
13
- return () => mediaQuery.removeEventListener('change', updateScreen)
14
- }, [])
8
+ return [opened, toggle];
9
+ };
10
+
11
+ const DrawerBreakpoints = () => {
12
+ const [smallDrawerOpened, toggleSmallDrawer] = useDrawer();
15
13
 
16
14
  return (
17
- <div>
18
- <Button id='sidebar'
19
- padding='xs'
20
- >
21
- <Icon icon='bars'
22
- size='2x'
23
- />
24
- </Button>
25
- <Drawer
26
- behavior={"push"}
27
- breakpoint='md'
28
- overlay={isSmallScreen ? true : false}
29
- placement='left'
30
- size='md'
31
- triggerId='sidebar'
32
- >
33
- <Nav
34
- link='#'
35
- orientation='vertical'
36
- padding={isSmallScreen ? "none" : "sm"}
37
- variant='bold'
15
+ <>
16
+ <Flex wrap>
17
+ <Button
18
+ id="sm"
19
+ marginRight="md"
20
+ onClick={toggleSmallDrawer}
21
+ >
22
+ {"Will open at small breakpoint"}
23
+ </Button>
24
+ </Flex>
25
+ <Flex>
26
+ <Drawer
27
+ behavior={"push"}
28
+ breakpoint="sm"
29
+ onClose={toggleSmallDrawer}
30
+ opened={smallDrawerOpened}
31
+ overlay={false}
32
+ placement={"right"}
33
+ size={"lg"}
38
34
  >
39
- {navItems.map((text, index) => {
40
- return (
41
- <NavItem
42
- collapsible
43
- collapsibleTrail
44
- fontWeight='bolder'
45
- iconLeft='city'
46
- iconRight={["plus", "minus"]}
47
- key={index}
48
- link='#'
49
- text={text}
50
- >
51
- <NavItem fontSize='small'
52
- link='#'
53
- marginY='none'
54
- text='City'
55
- />
56
- <NavItem
57
- fontSize='small'
58
- link='#'
59
- marginY='none'
60
- text='People'
61
- />
62
- <NavItem
63
- fontSize='small'
64
- link='#'
65
- marginY='none'
66
- text='Business'
67
- />
68
- </NavItem>
69
- )
70
- })}
71
- </Nav>
72
- </Drawer>
73
- </div>
74
- )
75
- }
35
+ Open because small breakpoint
36
+ </Drawer>
37
+ </Flex>
38
+ </>
39
+ );
40
+ };
76
41
 
77
- export default DrawerMenu
42
+ export default DrawerBreakpoints;
@@ -8,8 +8,8 @@ const DrawerMenu = () => {
8
8
  const mediaQuery = window.matchMedia("(max-width: 600px)")
9
9
  setIsSmallScreen(mediaQuery.matches)
10
10
  const handler = (e) => setIsSmallScreen(e.matches)
11
- mediaQuery.addEventListener("change", handler)
12
- return () => mediaQuery.removeEventListener("change", handler)
11
+ mediaQuery.addEventListener('change', handler)
12
+ return () => mediaQuery.removeEventListener('change', handler)
13
13
  }, [])
14
14
 
15
15
  return (
@@ -22,17 +22,17 @@ const DrawerMenu = () => {
22
22
  />
23
23
  </Button>
24
24
  <Drawer
25
- breakpoint='md'
25
+ breakpoint="md"
26
26
  placement='bottom'
27
27
  size='full'
28
28
  triggerId='menuButton'
29
29
  withinElement
30
30
  >
31
- <Nav
31
+ <Nav
32
32
  highlight={false}
33
33
  link='#'
34
- orientation={isSmallScreen ? "vertical" : "horizontal"}
35
- padding={isSmallScreen ? "none" : "sm"}
34
+ orientation={isSmallScreen ? 'vertical' : 'horizontal'}
35
+ padding={isSmallScreen ? 'none' : 'sm'}
36
36
  >
37
37
  <NavItem link='#'
38
38
  text='About'
@@ -10,5 +10,4 @@ examples:
10
10
  - drawer_menu: Within Element
11
11
  - drawer_sizes: Sizes
12
12
  - drawer_overlay: Overlay
13
- - drawer_breakpoints: Breakpoints
14
13
  - drawer_borders: Borders
@@ -1,3 +1,8 @@
1
- <%= pb_content_tag do %>
1
+ <%= content_tag(:div,
2
+ aria: object.aria,
3
+ data: object.data,
4
+ id: object.id,
5
+ class: object.classname,
6
+ **combined_html_options) do %>
2
7
  <%= react_component("MultiLevelSelect", object.multi_level_select_options) %>
3
8
  <% end %>
@@ -1,9 +1,15 @@
1
1
  <% if object.collapsible %>
2
2
  <%= pb_rails("collapsible", props: { name: "collapsible-nav-example", classname: object.collapsible_nav_classname }) do %>
3
3
  <%= pb_rails("collapsible/collapsible_main", props: { name: "default-collapsible-nav", icon: object.collapsible_icons, size: "xs", dark: object.dark, classname:object.margin_classes }) do %>
4
- <%= pb_content_tag( object.tag,
5
- href: object.link && object.link,
6
- target: object.link && object.target
4
+ <%= content_tag(object.tag,
5
+ aria: object.aria,
6
+ class: object.classname,
7
+ data: object.data,
8
+ dark: object.dark,
9
+ id: object.id,
10
+ href: object.link && object.link,
11
+ target: object.link && object.target,
12
+ **combined_html_options
7
13
  ) do %>
8
14
  <% if object.image_url %>
9
15
  <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper_collapsible" }) %>
@@ -14,16 +20,22 @@
14
20
  <span class="pb_nav_list_item_text_collapsible">
15
21
  <%= object.text %>
16
22
  </span>
17
- <% end %>
23
+ <% end %>
18
24
  <% end %>
19
25
  <%= pb_rails("collapsible/collapsible_content", props: {collapsed: object.collapsed}) do %>
20
26
  <%= content.presence %>
21
27
  <% end %>
22
28
  <% end %>
23
29
  <% else %>
24
- <%= pb_content_tag( object.tag,
25
- href: object.link && object.link,
26
- target: object.link && object.target
30
+ <%= content_tag(object.tag,
31
+ aria: object.aria,
32
+ class: object.classname,
33
+ **combined_html_options,
34
+ data: object.data,
35
+ dark: object.dark,
36
+ id: object.id,
37
+ href: object.link && object.link,
38
+ target: object.link && object.target
27
39
  ) do %>
28
40
  <% if object.image_url %>
29
41
  <%= pb_rails("image", props: { url: object.image_url, classname: "pb_nav_img_wrapper" }) %>
@@ -1,7 +1,12 @@
1
- <%= pb_content_tag(:nav) do %>
1
+ <%= content_tag(:nav,
2
+ aria: object.aria,
3
+ class: object.classname,
4
+ data: object.data,
5
+ id: object.id,
6
+ **combined_html_options) do %>
2
7
  <% if object.title %>
3
- <%= pb_content_tag do %>
4
- <%= pb_content_tag(:a) do %>
8
+ <%= content_tag(:div, class: "pb_nav_list_title") do %>
9
+ <%= content_tag(:a, class: "pb_nav_list_item_link_text", href: object.link) do %>
5
10
  <%= pb_rails("caption", props: { text: object.title, dark: dark }) %>
6
11
  <% end %>
7
12
  <% end %>
@@ -1,2 +1,7 @@
1
- <%= pb_content_tag do %>
1
+ <%= content_tag(:div,
2
+ aria: object.aria.merge!(label: object.status),
3
+ class: object.classname,
4
+ data: object.data,
5
+ id: object.id,
6
+ **combined_html_options) do %>
2
7
  <% end %>
@@ -1,4 +1,9 @@
1
- <%= pb_content_tag do %>
1
+ <%= content_tag(:div,
2
+ aria: object.aria,
3
+ class: object.classname,
4
+ data: object.data,
5
+ id: object.id,
6
+ **combined_html_options) do %>
2
7
  <div class="pb_popover_tooltip hide" id="<%= object.tooltip_id %>" role="tooltip" style="<%= object.z_index_helper %>">
3
8
  <div class="pb_popover_body <%= object.width_height_class_helper %> <%= object.popover_spacing_helper %>" style="<%= object.width_height_helper %>">
4
9
  <%= content.presence %>
@@ -3,8 +3,7 @@
3
3
  @import "../tokens/border_radius";
4
4
 
5
5
  @mixin pb_progress_pill {
6
- width: 100%;
7
- max-width: 45px;
6
+ width: 45px;
8
7
  height: 4px;
9
8
  border-radius: $border_rad_light;
10
9
  margin-right: $space_xs;
@@ -1,2 +1 @@
1
1
  <%= pb_rails("progress_pills", props: { aria: { label: "2 out of 3 steps complete" }, steps: 3, active: 2 }) %>
2
- <%= pb_rails("progress_pills", props: { aria: { label: "9 out of 18 steps complete" }, steps: 18, active: 9, margin_top: "md" }) %>
@@ -10,13 +10,6 @@ const ProgressPillsDefault = (props) => {
10
10
  steps={3}
11
11
  {...props}
12
12
  />
13
- <ProgressPills
14
- active={9}
15
- aria={{ label: '9 out of 18 steps complete' }}
16
- marginTop="md"
17
- steps={18}
18
- {...props}
19
- />
20
13
  </>
21
14
  )
22
15
  }
@@ -16,7 +16,7 @@ const TableWithCollapsible = (props) => {
16
16
  );
17
17
  };
18
18
 
19
- return (
19
+ return (
20
20
  <Table
21
21
  size="sm"
22
22
  {...props}
@@ -31,7 +31,6 @@ examples:
31
31
  - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
32
32
  - table_outer_padding: Outer Padding
33
33
  - table_with_collapsible: Table with Collapsible
34
- - table_with_collapsible_with_custom_click: Table with Collapsible with Custom Click
35
34
  - table_with_collapsible_with_custom_content_rails: Table with Collapsible with Custom Content
36
35
  - table_with_collapsible_with_nested_rows_rails: Table with Collapsible with Nested Rows
37
36
  - table_with_collapsible_with_nested_table_rails: Table with Collapsible with Nested Table
@@ -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);