playbook_ui 14.9.0.pre.alpha.PLAY16264952 → 14.9.0.pre.alpha.pbntr700newresettodefaultprop4736

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +17 -61
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -2
  5. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +3 -5
  6. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +2 -0
  7. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom.jsx +49 -53
  8. data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_custom_rails.html.erb +36 -29
  9. data/app/pb_kits/playbook/pb_body/_body.scss +13 -14
  10. data/app/pb_kits/playbook/pb_body/_body_mixins.scss +16 -22
  11. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +0 -6
  12. data/app/pb_kits/playbook/pb_caption/_caption_mixin.scss +1 -2
  13. data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -1
  14. data/app/pb_kits/playbook/pb_checkbox/_checkbox.tsx +26 -33
  15. data/app/pb_kits/playbook/pb_checkbox/docs/example.yml +6 -7
  16. data/app/pb_kits/playbook/pb_checkbox/docs/index.js +0 -1
  17. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +4 -9
  18. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleContent.tsx +2 -2
  19. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +2 -2
  20. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +5 -0
  21. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +10 -0
  22. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +1 -0
  23. data/app/pb_kits/playbook/pb_file_upload/_file_upload.scss +0 -5
  24. data/app/pb_kits/playbook/pb_file_upload/_file_upload.tsx +2 -7
  25. data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +2 -8
  26. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +2 -1
  27. data/app/pb_kits/playbook/pb_link/_link.scss +3 -3
  28. data/app/pb_kits/playbook/pb_nav/_bold_mixin.scss +1 -11
  29. data/app/pb_kits/playbook/pb_nav/_collapsible_nav.scss +2 -16
  30. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +1 -1
  31. data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +2 -2
  32. data/app/pb_kits/playbook/pb_select/_select.tsx +14 -20
  33. data/app/pb_kits/playbook/pb_select/docs/example.yml +0 -1
  34. data/app/pb_kits/playbook/pb_select/docs/index.js +0 -1
  35. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +4 -4
  36. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.html.erb +1 -1
  37. data/app/pb_kits/playbook/pb_stat_change/_stat_change.tsx +36 -44
  38. data/app/pb_kits/playbook/pb_stat_change/stat_change.html.erb +4 -4
  39. data/app/pb_kits/playbook/pb_table/docs/example.yml +0 -5
  40. data/app/pb_kits/playbook/pb_table/docs/index.js +0 -5
  41. data/app/pb_kits/playbook/pb_table/index.ts +26 -100
  42. data/app/pb_kits/playbook/pb_table/styles/_all.scss +1 -2
  43. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +1 -106
  44. data/app/pb_kits/playbook/pb_table/table.html.erb +1 -1
  45. data/app/pb_kits/playbook/pb_table/table.rb +2 -17
  46. data/app/pb_kits/playbook/pb_title/_title.scss +5 -6
  47. data/app/pb_kits/playbook/pb_title/_title_mixin.scss +0 -13
  48. data/app/pb_kits/playbook/tokens/_titles.scss +8 -0
  49. data/app/pb_kits/playbook/utilities/_hover.scss +2 -11
  50. data/app/pb_kits/playbook/utilities/globalProps.ts +0 -2
  51. data/app/pb_kits/playbook/utilities/test/globalProps/hover.test.js +0 -15
  52. data/dist/chunks/_typeahead-DU1QgR52.js +22 -0
  53. data/dist/chunks/_weekday_stacked-BLOmRNnB.js +45 -0
  54. data/dist/chunks/lib-Ce7MLbJk.js +29 -0
  55. data/dist/chunks/{pb_form_validation-D37k10a0.js → pb_form_validation-kPWA1Z2g.js} +1 -1
  56. data/dist/chunks/vendor.js +1 -1
  57. data/dist/menu.yml +1 -1
  58. data/dist/playbook-doc.js +1 -1
  59. data/dist/playbook-rails-react-bindings.js +1 -1
  60. data/dist/playbook-rails.js +1 -1
  61. data/dist/playbook.css +1 -1
  62. data/lib/playbook/hover.rb +1 -7
  63. data/lib/playbook/version.rb +1 -1
  64. metadata +6 -27
  65. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx +0 -50
  66. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.md +0 -1
  67. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +0 -57
  68. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.md +0 -5
  69. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_pagination_mock_data.json +0 -5600
  70. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_form.jsx +0 -138
  71. data/app/pb_kits/playbook/pb_select/docs/_select_form.jsx +0 -109
  72. data/app/pb_kits/playbook/pb_table/docs/_table_sticky_left_columns.html.erb +0 -95
  73. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +0 -75
  74. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.md +0 -1
  75. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx +0 -108
  76. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.md +0 -2
  77. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.jsx +0 -94
  78. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_content.md +0 -0
  79. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.jsx +0 -83
  80. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.md +0 -3
  81. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.jsx +0 -120
  82. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md +0 -1
  83. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -35
  84. data/app/pb_kits/playbook/utilities/hookFormProps.ts +0 -22
  85. data/app/pb_kits/playbook/utilities/withReactHookForm.tsx +0 -64
  86. data/dist/chunks/_typeahead-BqHgiHoJ.js +0 -22
  87. data/dist/chunks/_weekday_stacked-BAk0aNPW.js +0 -45
  88. data/dist/chunks/lib-CuCy3_xO.js +0 -29
@@ -1,46 +1,40 @@
1
- import React from "react"
2
- import classnames from "classnames"
1
+ import React from 'react'
2
+ import classnames from 'classnames'
3
3
 
4
- import { buildCss, buildHtmlProps } from "../utilities/props"
5
- import { globalProps } from "../utilities/globalProps"
4
+ import { buildCss, buildHtmlProps } from '../utilities/props'
5
+ import { globalProps } from '../utilities/globalProps'
6
6
 
7
- import Body from "../pb_body/_body"
8
- import Icon from "../pb_icon/_icon"
7
+ import Body from '../pb_body/_body'
8
+ import Icon from '../pb_icon/_icon'
9
9
 
10
- const statusMap: {
11
- neutral: "neutral"
12
- decrease: "negative"
13
- increase: "positive"
14
- } = {
15
- increase: "positive",
16
- decrease: "negative",
17
- neutral: "neutral",
10
+ const statusMap: {neutral: 'neutral', decrease: 'negative' ,increase: 'positive'} = {
11
+ increase: 'positive',
12
+ decrease: 'negative',
13
+ neutral: 'neutral',
18
14
  }
19
15
 
20
16
  const iconMap = {
21
- increase: "arrow-up",
22
- decrease: "arrow-down",
17
+ increase: 'arrow-up',
18
+ decrease: 'arrow-down',
23
19
  }
24
20
 
25
21
  type StatChangeProps = {
26
- change?: "increase" | "decrease" | "neutral"
27
- className?: string
28
- dark?: boolean
29
- icon?: string
30
- id?: string
31
- htmlOptions?: { [key: string]: string | number | boolean | (() => void) }
32
- value?: string | number
22
+ change?: 'increase' | 'decrease' | 'neutral',
23
+ className?: string,
24
+ icon?: string,
25
+ htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
26
+ id?: string,
27
+ value?: string | number,
33
28
  }
34
29
 
35
30
  const StatChange = (props: StatChangeProps): React.ReactElement => {
36
- const {
37
- change = "neutral",
38
- className,
39
- dark = false,
31
+ const {
32
+ change = 'neutral',
33
+ className,
40
34
  htmlOptions = {},
41
- icon,
42
- id,
43
- value,
35
+ icon,
36
+ id,
37
+ value
44
38
  } = props
45
39
 
46
40
  const status = statusMap[change as keyof typeof statusMap]
@@ -53,32 +47,30 @@ const StatChange = (props: StatChangeProps): React.ReactElement => {
53
47
 
54
48
  return (
55
49
  <>
56
- {value && (
50
+ {value &&
57
51
  <div
58
52
  className={classnames(
59
- buildCss("pb_stat_change_kit", status),
60
- globalProps(props),
61
- className
62
- )}
53
+ buildCss('pb_stat_change_kit', status),
54
+ globalProps(props),
55
+ className
56
+ )}
63
57
  id={id}
64
58
  {...htmlProps}
65
59
  >
66
- <Body dark={dark}
67
- status={status}
68
- >
69
- {" "}
70
- {returnedIcon && (
60
+ <Body status={status}>
61
+ {returnedIcon &&
71
62
  <>
72
- <Icon dark={dark}
63
+ <Icon
73
64
  fixed_width
74
65
  icon={returnedIcon}
75
- />{" "}
66
+ />
67
+ {' '}
76
68
  </>
77
- )}
69
+ }
78
70
  {`${value}%`}
79
71
  </Body>
80
72
  </div>
81
- )}
73
+ }
82
74
  </>
83
75
  )
84
76
  }
@@ -1,6 +1,6 @@
1
1
  <%= pb_content_tag do %>
2
- <%= pb_rails("body", props: { status: object.status, dark: object.dark }) do %>
3
- <%= pb_rails("icon", props: { fixed_width: true, icon: object.returned_icon, dark: object.dark }) if object.returned_icon %>
4
- <%= "#{object.value}%" if object.value %>
5
- <% end %>
2
+ <%= pb_rails("body", props: { status: object.status }) do %>
3
+ <%= pb_rails("icon", props: { fixed_width: true, icon: object.returned_icon }) if object.returned_icon %>
4
+ <%= "#{object.value}%" if object.value %>
5
+ <% end %>
6
6
  <% end %>
@@ -55,8 +55,3 @@ examples:
55
55
  - table_with_subcomponents: Table with Sub Components (Table Elements)
56
56
  - table_with_subcomponents_as_divs: Table with Sub Components (Divs)
57
57
  - table_outer_padding: Outer Padding
58
- - table_with_collapsible: Table with Collapsible
59
- - table_with_collapsible_with_custom_click: Table with Collapsible with Custom Click
60
- - table_with_collapsible_with_custom_content: Table with Collapsible with Custom Content
61
- - table_with_collapsible_with_nested_rows: Table with Collapsible with Nested Rows
62
- - table_with_collapsible_with_nested_table: Table with Collapsible with Nested Table
@@ -26,8 +26,3 @@ export { default as TableWithSubcomponents } from './_table_with_subcomponents.j
26
26
  export { default as TableWithSubcomponentsAsDivs } from './_table_with_subcomponents_as_divs.jsx'
27
27
  export { default as TableOuterPadding } from './_table_outer_padding.jsx'
28
28
  export { default as TableStickyLeftColumns } from './_table_sticky_left_columns.jsx'
29
- export { default as TableWithCollapsible } from './_table_with_collapsible.jsx'
30
- export { default as TableWithCollapsibleWithCustomContent } from './_table_with_collapsible_with_custom_content.jsx'
31
- export { default as TableWithCollapsibleWithNestedTable } from './_table_with_collapsible_with_nested_table.jsx'
32
- export { default as TableWithCollapsibleWithNestedRows } from './_table_with_collapsible_with_nested_rows.jsx'
33
- export { default as TableWithCollapsibleWithCustomClick } from './_table_with_collapsible_with_custom_click.jsx'
@@ -1,106 +1,32 @@
1
1
  import PbEnhancedElement from '../pb_enhanced_element'
2
2
 
3
3
  export default class PbTable extends PbEnhancedElement {
4
- private stickyLeftColumns: string[] = [];
5
- private handleStickyColumnsRef: () => void;
6
-
7
- static get selector(): string {
8
- return '.table-responsive-collapse'
9
- }
10
-
11
- connect(): void {
12
- const tables = document.querySelectorAll('.table-responsive-collapse');
13
- // Each Table
14
- [].forEach.call(tables, (table: HTMLTableElement) => {
15
- // Header Titles
16
- const headers: string[] = [];
17
- [].forEach.call(table.querySelectorAll('th'), (header: HTMLTableCellElement) => {
18
- const colSpan = header.colSpan
19
- for (let i = 0; i < colSpan; i++) {
20
- headers.push(header.textContent.replace(/\r?\n|\r/, ''));
21
- }
22
- });
23
- // for each row in tbody
24
- [].forEach.call(table.querySelectorAll('tbody tr'), (row: HTMLTableRowElement) => {
25
- // for each cell
26
- [].forEach.call(row.cells, (cell: HTMLTableCellElement, headerIndex: number) => {
27
- // apply the attribute
28
- cell.setAttribute('data-title', headers[headerIndex])
29
- })
30
- })
31
- });
32
-
33
- // New sticky columns logic
34
- this.initStickyColumns();
35
- }
36
-
37
- private initStickyColumns(): void {
38
- // Find tables with sticky-left-column class
39
- const tables = document.querySelectorAll('.sticky-left-column');
40
-
41
- tables.forEach((table) => {
42
- // Extract sticky left column IDs by looking at the component's class
43
- const classList = Array.from(table.classList);
44
-
45
- // Look for classes in the format sticky-left-column-{ids}
46
- const stickyColumnClass = classList.find(cls => cls.startsWith('sticky-columns-'));
47
- if (stickyColumnClass) {
48
- // Extract the IDs from the class name
49
- this.stickyLeftColumns = stickyColumnClass
50
- .replace('sticky-columns-', '')
51
- .split('-');
52
-
53
- if (this.stickyLeftColumns.length > 0) {
54
- this.handleStickyColumnsRef = this.handleStickyColumns.bind(this);
55
- this.handleStickyColumns();
56
- window.addEventListener('resize', this.handleStickyColumnsRef);
57
- }
4
+ static get selector(): string {
5
+ return '.table-responsive-collapse'
6
+ }
7
+
8
+ connect(): void {
9
+ const tables = document.querySelectorAll('.table-responsive-collapse');
10
+
11
+ // Each Table
12
+ [].forEach.call(tables, (table: HTMLTableElement) => {
13
+ // Header Titles
14
+ const headers: string[] = [];
15
+ [].forEach.call(table.querySelectorAll('th'), (header: HTMLTableCellElement) => {
16
+ const colSpan = header.colSpan
17
+ for (let i = 0; i < colSpan; i++) {
18
+ headers.push(header.textContent.replace(/\r?\n|\r/, ''));
58
19
  }
59
20
  });
60
- }
61
-
62
- private handleStickyColumns(): void {
63
- let accumulatedWidth = 0;
64
21
 
65
- this.stickyLeftColumns.forEach((colId, index) => {
66
- const isLastColumn = index === this.stickyLeftColumns.length - 1;
67
- const header = document.querySelector(`th[id="${colId}"]`);
68
- const cells = document.querySelectorAll(`td[id="${colId}"]`);
69
-
70
- if (header) {
71
- header.classList.add('sticky');
72
- (header as HTMLElement).style.left = `${accumulatedWidth}px`;
73
-
74
- if (!isLastColumn) {
75
- header.classList.add('with-border');
76
- header.classList.remove('sticky-shadow');
77
- } else {
78
- header.classList.remove('with-border');
79
- header.classList.add('sticky-shadow');
80
- }
81
-
82
- accumulatedWidth += (header as HTMLElement).offsetWidth;
83
- }
84
-
85
- cells.forEach((cell) => {
86
- cell.classList.add('sticky');
87
- (cell as HTMLElement).style.left = `${accumulatedWidth - (header as HTMLElement).offsetWidth}px`;
88
-
89
- if (!isLastColumn) {
90
- cell.classList.add('with-border');
91
- cell.classList.remove('sticky-shadow');
92
- } else {
93
- cell.classList.remove('with-border');
94
- cell.classList.add('sticky-shadow');
95
- }
96
- });
97
- });
98
- }
99
-
100
- // Cleanup method to remove event listener
101
- disconnect(): void {
102
- if (this.handleStickyColumnsRef) {
103
- window.removeEventListener('resize', this.handleStickyColumnsRef);
104
- }
105
- }
106
- }
22
+ // for each row in tbody
23
+ [].forEach.call(table.querySelectorAll('tbody tr'), (row: HTMLTableRowElement) => {
24
+ // for each cell
25
+ [].forEach.call(row.cells, (cell: HTMLTableCellElement, headerIndex: number) => {
26
+ // apply the attribute
27
+ cell.setAttribute('data-title', headers[headerIndex])
28
+ })
29
+ })
30
+ })
31
+ }
32
+ }
@@ -21,5 +21,4 @@
21
21
  @import "striped";
22
22
  @import "outer_padding";
23
23
  @import "sticky_columns";
24
- @import "scroll";
25
- @import "collapsible";
24
+ @import "scroll";
@@ -7,21 +7,14 @@ import {
7
7
  buildHtmlProps,
8
8
  } from "../../utilities/props";
9
9
  import { globalProps } from "../../utilities/globalProps";
10
- import Collapsible from "../../pb_collapsible/_collapsible";
11
- import useCollapsible from "../../pb_collapsible/useCollapsible";
12
10
 
13
11
  type TableRowPropTypes = {
14
12
  aria?: { [key: string]: string };
15
13
  children: React.ReactNode[] | React.ReactNode;
16
14
  className: string;
17
- collapsible?: boolean;
18
- collapsibleContent?: React.ReactNode[] | React.ReactNode;
19
- collapsibleSideHighlight?: boolean;
20
15
  data?: { [key: string]: string };
21
- dark?: boolean;
22
16
  htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
23
17
  id?: string;
24
- toggleCellId?: string;
25
18
  sideHighlightColor: string;
26
19
  tag?: "table" | "div";
27
20
  };
@@ -30,15 +23,10 @@ const TableRow = (props: TableRowPropTypes): React.ReactElement => {
30
23
  const {
31
24
  aria = {},
32
25
  children,
33
- collapsible,
34
- collapsibleContent,
35
- collapsibleSideHighlight = true,
36
26
  className,
37
27
  data = {},
38
- dark = false,
39
28
  htmlOptions = {},
40
29
  id,
41
- toggleCellId,
42
30
  sideHighlightColor = "none",
43
31
  tag = "table",
44
32
  } = props;
@@ -48,110 +36,17 @@ const TableRow = (props: TableRowPropTypes): React.ReactElement => {
48
36
  const htmlProps = buildHtmlProps(htmlOptions);
49
37
  const sideHighlightClass =
50
38
  sideHighlightColor != "" ? `side_highlight_${sideHighlightColor}` : null;
51
-
52
- const [isCollapsed, setIsCollapsed] = useCollapsible(true);
53
-
54
- const collapsibleRow = collapsible && isCollapsed === true ? "collapsible_table_row" : null;
55
39
  const classes = classnames(
56
40
  buildCss("pb_table_row_kit", sideHighlightClass),
57
41
  "pb_table_tr",
58
- collapsibleRow,
59
42
  globalProps(props),
60
43
  className
61
44
  );
62
45
  const isTableTag = tag === "table";
63
46
 
64
- // const [isCollapsed, setIsCollapsed] = useCollapsible(true);
65
-
66
- const colSpan = React.Children.count(children);
67
-
68
- const handleRowClick = (event: React.MouseEvent) => {
69
- if (toggleCellId) {
70
- const target = event.target as HTMLElement;
71
- const clickedCell = target.closest(`#${toggleCellId}`);
72
- const isIconClick =
73
- target instanceof SVGElement &&
74
- (target.matches("svg.pb_custom_icon") || target.closest("svg.pb_custom_icon"));
75
-
76
- if (clickedCell || isIconClick) {
77
- setIsCollapsed(!isCollapsed);
78
- }
79
- } else {
80
- setIsCollapsed(!isCollapsed);
81
- }
82
- };
83
-
84
47
  return (
85
48
  <>
86
- {collapsible ? (
87
- isTableTag ? (
88
- <>
89
- <tr
90
- {...ariaProps}
91
- {...dataProps}
92
- {...htmlProps}
93
- className={classes}
94
- id={id}
95
- onClick={(e)=>handleRowClick(e)}
96
- style={{ cursor: toggleCellId ? "default" : "pointer" }}
97
- >
98
- {children}
99
- </tr>
100
- <tr>
101
- <Collapsible
102
- collapsed={isCollapsed}
103
- dark={dark}
104
- htmlOptions={{ colSpan: colSpan }}
105
- padding="none"
106
- tag="td"
107
- >
108
- <tr/>
109
- <Collapsible.Content
110
- className={collapsibleSideHighlight ? `table_collapsible_side_highlight` : ''}
111
- dark={dark}
112
- margin="none"
113
- padding="none"
114
- >
115
- {collapsibleContent}
116
- </Collapsible.Content>
117
- </Collapsible>
118
- </tr>
119
- </>
120
- ) : (
121
- <>
122
- <div
123
- {...ariaProps}
124
- {...dataProps}
125
- {...htmlProps}
126
- className={classes}
127
- id={id}
128
- onClick={handleRowClick}
129
- style={{ cursor: "pointer" }}
130
- >
131
- {children}
132
- </div>
133
- <tr>
134
- <Collapsible
135
- collapsed={isCollapsed}
136
- dark={dark}
137
- htmlOptions={{ colSpan: colSpan }}
138
- padding="none"
139
- tag="td"
140
- >
141
- <tr/>
142
- <Collapsible.Content
143
- className={collapsibleSideHighlight ? `table_collapsible_side_highlight` : ''}
144
- dark={dark}
145
- margin="none"
146
- padding="none"
147
- >
148
- {collapsibleContent}
149
- </Collapsible.Content>
150
- </Collapsible>
151
- </tr>
152
- </>
153
- )
154
- ) : isTableTag ? (
49
+ {isTableTag ? (
155
50
  <tr
156
51
  {...ariaProps}
157
52
  {...dataProps}
@@ -18,4 +18,4 @@
18
18
  <%= content.presence %>
19
19
  <% end %>
20
20
  <% end %>
21
- <% end %>
21
+ <% end %>
@@ -23,8 +23,6 @@ module Playbook
23
23
  prop :text
24
24
  prop :sticky, type: Playbook::Props::Boolean,
25
25
  default: false
26
- prop :sticky_left_column, type: Playbook::Props::Array,
27
- default: []
28
26
  prop :vertical_border, type: Playbook::Props::Boolean,
29
27
  default: false
30
28
  prop :striped, type: Playbook::Props::Boolean,
@@ -39,8 +37,8 @@ module Playbook
39
37
  def classname
40
38
  generate_classname(
41
39
  "pb_table", "table-#{size}", single_line_class, dark_class,
42
- disable_hover_class, container_class, data_table_class, sticky_class, sticky_left_column_class,
43
- collapse_class, vertical_border_class, striped_class, outer_padding_class,
40
+ disable_hover_class, container_class, data_table_class, sticky_class, collapse_class,
41
+ vertical_border_class, striped_class, outer_padding_class,
44
42
  "table-responsive-#{responsive}", separator: " "
45
43
  )
46
44
  end
@@ -75,19 +73,6 @@ module Playbook
75
73
  sticky ? "sticky-header" : nil
76
74
  end
77
75
 
78
- def sticky_left_column_class
79
- if sticky_left_column.empty?
80
- nil
81
- else
82
- sticky_col_classname = "sticky-left-column sticky-columns"
83
- sticky_left_column.each do |id|
84
- sticky_col_classname += "-#{id}"
85
- end
86
-
87
- sticky_col_classname
88
- end
89
- end
90
-
91
76
  def striped_class
92
77
  striped ? "striped" : nil
93
78
  end
@@ -49,11 +49,10 @@
49
49
  }
50
50
 
51
51
  &.dark {
52
- @include title_dark;
53
- @each $name, $color in $pb_dark_title_colors {
54
- &[class*="_#{$name}"] {
55
- color: $color;
56
- }
57
- }
52
+ @include pb_title_dark;
53
+ }
54
+
55
+ &.dark[class*=_link] {
56
+ @include pb_title_dark_link;
58
57
  }
59
58
  }
@@ -9,15 +9,6 @@ $pb_title_colors: (
9
9
  link: $primary
10
10
  );
11
11
 
12
- $pb_dark_title_colors: (
13
- default: $text_dk_default,
14
- light: $text_dk_light,
15
- lighter: $text_dk_lighter,
16
- success: $success,
17
- error: $error_dark,
18
- link: $active_dark
19
- );
20
-
21
12
  @mixin title_colors {
22
13
  @each $name, $color in $pb_title_colors {
23
14
  &[class*=_#{$name}] {
@@ -25,7 +16,3 @@ $pb_dark_title_colors: (
25
16
  }
26
17
  }
27
18
  }
28
-
29
- @mixin title_dark {
30
- color: $text_dk_default;
31
- }
@@ -33,6 +33,14 @@
33
33
  @include pb_title($heading_4, $bolder, $letterSpacing: $lspace_normal);
34
34
  }
35
35
 
36
+ @mixin pb_title_dark {
37
+ color: $text_dk_default;
38
+ }
39
+
40
+ @mixin pb_title_dark_link {
41
+ color: $active_dark;
42
+ }
43
+
36
44
  @mixin pb_title_bold {
37
45
  font-weight: $bolder;
38
46
  }
@@ -20,13 +20,6 @@
20
20
  }
21
21
  }
22
22
 
23
- @mixin hover-underline {
24
- .hover_underline:hover {
25
- text-decoration: underline;
26
- transition: text-decoration $transition-speed ease;
27
- }
28
- }
29
-
30
23
  @mixin hover-color-classes($colors-list) {
31
24
  @each $name, $color in $colors-list {
32
25
  .hover_background-#{"" + $name}:hover {
@@ -39,9 +32,7 @@
39
32
  }
40
33
  }
41
34
  }
42
-
43
-
44
- @include hover-underline;
35
+
45
36
  @include hover-scale-classes($scales);
46
37
  @include hover-shadow-classes($box_shadows);
47
38
  @include hover-color-classes($product_colors);
@@ -73,4 +64,4 @@
73
64
  .group_hover.hover_visibility {
74
65
  opacity: 1;
75
66
  }
76
- }
67
+ }
@@ -64,7 +64,6 @@ type Hover = Shadow & {
64
64
  background?: string,
65
65
  color?: string,
66
66
  scale?: "sm" | "md" | "lg",
67
- underline?: boolean,
68
67
  visibility?: boolean,
69
68
  }
70
69
 
@@ -237,7 +236,6 @@ const PROP_CATEGORIES: {[key:string]: (props: {[key: string]: any}) => string} =
237
236
  if (!hover) return css;
238
237
  css += hover.shadow ? `hover_shadow_${hover.shadow} ` : '';
239
238
  css += hover.background ? `hover_background-${hover.background } ` : '';
240
- css += hover.underline ? `hover_underline ` : '';
241
239
  css += hover.scale ? `hover_scale_${hover.scale} ` : '';
242
240
  css += hover.color ? `hover_color-${hover.color } ` : '';
243
241
  css += hover.visibility ? `hover_visibility` : '';
@@ -57,19 +57,6 @@ test('Hover Props: returns proper class name', () => {
57
57
  expectedClassName = `hover_scale_xl`;
58
58
  expect(kit).toHaveClass(expectedClassName);
59
59
 
60
- const testIdUnderline = `${testSubject}-hover-underline`;
61
- render(
62
- <Body
63
- data={{ testid: testIdUnderline }}
64
- hover={{ underline: true }}
65
- text="Hi"
66
- />
67
- );
68
-
69
- kit = screen.getByTestId(testIdUnderline);
70
- expectedClassName = `hover_underline`;
71
- expect(kit).toHaveClass(expectedClassName);
72
-
73
60
  const testIdMultiple = `${testSubject}-hover-multiple`;
74
61
  render(
75
62
  <Body
@@ -79,7 +66,6 @@ test('Hover Props: returns proper class name', () => {
79
66
  background: 'error',
80
67
  shadow: 'deeper',
81
68
  scale: 'xl',
82
- underline: true,
83
69
  }}
84
70
  text="Hi"
85
71
  />
@@ -90,5 +76,4 @@ test('Hover Props: returns proper class name', () => {
90
76
  expect(kit).toHaveClass('hover_background-error');
91
77
  expect(kit).toHaveClass('hover_shadow_deeper');
92
78
  expect(kit).toHaveClass('hover_scale_xl');
93
- expect(kit).toHaveClass('hover_underline');
94
79
  });