playbook_ui 14.0.0.pre.alpha.updateviewcomponentgem3527 → 14.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +2 -5
  3. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +20 -24
  4. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +12 -17
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +1 -86
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +1 -5
  7. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +0 -30
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
  10. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +30 -0
  11. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +1 -19
  12. data/app/pb_kits/playbook/pb_avatar/avatar.rb +1 -44
  13. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +0 -17
  14. data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +1 -3
  15. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +1 -1
  16. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
  17. data/app/pb_kits/playbook/pb_icon/_icon.tsx +0 -3
  18. data/app/pb_kits/playbook/pb_icon/icon.rb +0 -2
  19. data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +1 -2
  20. data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +2 -2
  21. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +11 -0
  22. data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.tsx +2 -3
  23. data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +0 -1
  24. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +2 -2
  25. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +4 -5
  26. data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +1 -1
  27. data/app/pb_kits/playbook/pb_online_status/_online_status.scss +5 -52
  28. data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -6
  29. data/app/pb_kits/playbook/pb_online_status/_online_status_mixins.scss +32 -0
  30. data/app/pb_kits/playbook/pb_online_status/docs/example.yml +2 -6
  31. data/app/pb_kits/playbook/pb_online_status/docs/index.js +0 -2
  32. data/app/pb_kits/playbook/pb_online_status/online_status.rb +1 -11
  33. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +2 -4
  34. data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -1
  35. data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +6 -83
  36. data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +1 -3
  37. data/app/pb_kits/playbook/pb_star_rating/index.js +4 -73
  38. data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +1 -1
  39. data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +2 -2
  40. data/app/pb_kits/playbook/pb_star_rating/stars/utils.tsx +1 -5
  41. data/app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_interactive.tsx +21 -50
  42. data/app/pb_kits/playbook/pb_table/_table.tsx +1 -1
  43. data/app/pb_kits/playbook/pb_table/index.ts +4 -4
  44. data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +1 -1
  45. data/app/pb_kits/playbook/pb_table/subcomponents/_table_cell.tsx +1 -1
  46. data/app/pb_kits/playbook/pb_table/subcomponents/_table_head.tsx +1 -1
  47. data/app/pb_kits/playbook/pb_table/subcomponents/_table_header.tsx +1 -1
  48. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +1 -1
  49. data/app/pb_kits/playbook/pb_table/table.test.js +0 -2
  50. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
  51. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +1 -1
  52. data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +27 -45
  53. data/app/pb_kits/playbook/pb_textarea/index.ts +3 -3
  54. data/app/pb_kits/playbook/pb_time/_time.tsx +3 -3
  55. data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +1 -1
  56. data/app/pb_kits/playbook/pb_timeline/_item.tsx +1 -1
  57. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
  58. data/app/pb_kits/playbook/pb_title_detail/_title_detail.tsx +10 -10
  59. data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +1 -1
  60. data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +2 -2
  61. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +2 -1
  62. data/app/pb_kits/playbook/pb_treemap_chart/treemapChart.test.js +0 -2
  63. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +2 -2
  64. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb +1 -1
  65. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +0 -1
  66. data/app/pb_kits/playbook/pb_user/_user.tsx +1 -1
  67. data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +6 -6
  68. data/app/pb_kits/playbook/pb_user_badge/badges/million-dollar.tsx +235 -236
  69. data/app/pb_kits/playbook/pb_user_badge/badges/veteran.tsx +1 -1
  70. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +63 -68
  71. data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +1 -1
  72. data/app/pb_kits/playbook/utilities/_positioning.scss +15 -26
  73. data/dist/chunks/_typeahead-COUJ88EA.js +22 -0
  74. data/dist/chunks/_weekday_stacked-BAkwel5p.js +45 -0
  75. data/dist/chunks/{lib-BE0Z3F7x.js → lib-Bf_E03gc.js} +1 -1
  76. data/dist/chunks/{pb_form_validation-TzZQ0Flx.js → pb_form_validation-D0dhqeN2.js} +1 -1
  77. data/dist/chunks/vendor.js +1 -1
  78. data/dist/playbook-doc.js +1 -1
  79. data/dist/playbook-rails-react-bindings.js +1 -1
  80. data/dist/playbook-rails.js +1 -1
  81. data/dist/playbook.css +1 -1
  82. data/lib/playbook/version.rb +2 -2
  83. metadata +12 -21
  84. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.jsx +0 -67
  85. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.md +0 -1
  86. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_no_border.html.erb +0 -1
  87. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_no_border.jsx +0 -14
  88. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_size.html.erb +0 -3
  89. data/app/pb_kits/playbook/pb_online_status/docs/_online_status_size.jsx +0 -25
  90. data/app/pb_kits/playbook/pb_online_status/online_status.test.js +0 -31
  91. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.html.erb +0 -61
  92. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.jsx +0 -70
  93. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.md +0 -1
  94. data/dist/chunks/_typeahead-D-4y9pbv.js +0 -22
  95. data/dist/chunks/_weekday_stacked-D5SswkOC.js +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c09fa4d6a77cf3fae3d0a17468d79c364053fdd8609d8f1faeec5290dc59c9f2
4
- data.tar.gz: dba1bfc2f20c46e0b1e06c2eced847950ca47000c0c28a500df58f7235168607
3
+ metadata.gz: e0b8c603b0b4f4c71fd994ae5fb34628441b8b6d79e7b0995d52ee6eb2244cd1
4
+ data.tar.gz: 66abcf68e967f3e108752d9986ecbe171cf2e6519e004da35969c7c063c3a21b
5
5
  SHA512:
6
- metadata.gz: d3cb6404115a1f67d6a95d5af7f03dd483062aefc974d36337421518e62b55fd65cb57433944ce43497266902c860d39e65d7c9cc0c77276f7d1ef51f2bfa637
7
- data.tar.gz: 1dfc7c13e94bbf61e7ff2468fa2f8a4afb350001ee620ad063798bdcfdebb44c587ef967413916e2b5bd84248ab28694abbb5215c98fb2b0ad611a4c55580adc
6
+ metadata.gz: 8b1946c68440d581a88ab423422ee820721f90654e8102a007b9cf25df953fa7d7128e3a1eb5a6a053d651c568c5e2b341fccf6ef01a600f4c55041ec3fc5ead
7
+ data.tar.gz: 71c868e78a015e782f2631bf95c87b182a805b659d35e1b6df4a41ce264a9ec58ffbe05393389b421919cd23f5f6f5b34d1a020784c3fcef1845cf8c6b2008c0
@@ -21,7 +21,6 @@ type TableHeaderCellProps = {
21
21
  handleExpandOrCollapse?: () => void
22
22
  header?: Header<GenericObject, unknown>
23
23
  headerChildren?: React.ReactNode | React.ReactNode[]
24
- isPinnedLeft?: boolean
25
24
  loading?: boolean
26
25
  sortIcon?: string | string[]
27
26
  } & GlobalProps
@@ -32,11 +31,10 @@ export const TableHeaderCell = ({
32
31
  handleExpandOrCollapse,
33
32
  header,
34
33
  headerChildren,
35
- isPinnedLeft = false,
36
34
  loading,
37
35
  sortIcon,
38
36
  }: TableHeaderCellProps) => {
39
- const { sortControl, responsive } = useContext(AdvancedTableContext)
37
+ const { sortControl } = useContext(AdvancedTableContext)
40
38
 
41
39
  const toggleSortButton = (event: React.SyntheticEvent) => {
42
40
  if (sortControl) {
@@ -51,8 +49,7 @@ export const TableHeaderCell = ({
51
49
 
52
50
  const cellClassName = classnames("table-header-cells",
53
51
  `${isChrome() ? "chrome-styles" : ""}`,
54
- `${enableSorting ? "table-header-cells-active" : ""}`,
55
- { 'pinned-left': responsive === "scroll" && isPinnedLeft },
52
+ `${enableSorting ? "table-header-cells-active" : ""}`
56
53
  )
57
54
 
58
55
  const cellId = `${loading ?
@@ -37,22 +37,17 @@ export const TableBody = ({
37
37
  columnDefinitions,
38
38
  enableToggleExpansion,
39
39
  handleExpandOrCollapse,
40
- isPinnedLeft = false,
41
40
  inlineRowLoading,
42
41
  loading,
43
- responsive,
44
42
  table,
45
43
  } = useContext(AdvancedTableContext)
46
44
 
47
45
  const classes = classnames(
48
46
  buildCss("pb_advanced_table_body"),
49
- { 'pinned-left': responsive === "scroll" && isPinnedLeft },
50
47
  globalProps(props),
51
48
  className
52
49
  )
53
50
 
54
- const columnPinning = table.getState().columnPinning;
55
-
56
51
  return (
57
52
  <>
58
53
  <tbody className={classes}
@@ -78,37 +73,38 @@ export const TableBody = ({
78
73
  table={table}
79
74
  />
80
75
  )}
81
- <tr
82
- className={`${rowBackground ? "bg-silver" : "bg-white"} ${
83
- row.depth > 0 ? `depth-sub-row-${row.depth}` : ""
84
- }`}
85
- id={`${row.index}-${row.id}-${row.depth}-row`}
86
- >
87
- {row.getVisibleCells().map((cell, i) => {
88
- const isPinnedLeft = columnPinning.left.includes(cell.column.id)
89
76
 
90
- return (
77
+ <tr
78
+ className={`${rowBackground ? "bg-silver" : "bg-white"} ${
79
+ row.depth > 0 ? `depth-sub-row-${row.depth}` : ""
80
+ }`}
81
+ id={`${row.index}-${row.id}-${row.depth}-row`}
82
+ >
83
+ {row.getVisibleCells().map((cell, i) => (
91
84
  <td
92
85
  align="right"
93
- className={classnames(
94
- `${cell.id}-cell position_relative`,
95
- isChrome() ? "chrome-styles" : "",
96
- isPinnedLeft && 'pinned-left'
97
- )}
86
+ className={`${cell.id}-cell position_relative ${
87
+ isChrome() ? "chrome-styles" : ""
88
+ }`}
98
89
  key={`${cell.id}-data`}
99
90
  >
100
- {collapsibleTrail && i === 0 && row.depth > 0 && renderCollapsibleTrail(row.depth)}
91
+ {collapsibleTrail &&
92
+ i === 0 &&
93
+ row.depth > 0 &&
94
+ renderCollapsibleTrail(row.depth)}
101
95
  <span id={`${cell.id}-span`}>
102
96
  {loading ? (
103
97
  <LoadingCell />
104
98
  ) : (
105
- flexRender(cell.column.columnDef.cell, cell.getContext())
99
+ flexRender(
100
+ cell.column.columnDef.cell,
101
+ cell.getContext()
102
+ )
106
103
  )}
107
104
  </span>
108
105
  </td>
109
- )
110
- })}
111
- </tr>
106
+ ))}
107
+ </tr>
112
108
 
113
109
  {/* Display LoadingInline if Row Data is querying and there are no children already */}
114
110
  {isDataLoading ? (
@@ -42,7 +42,6 @@ export const TableHeader = ({
42
42
  className
43
43
  )
44
44
 
45
- const columnPinning = table.getState().columnPinning;
46
45
 
47
46
  return (
48
47
  <>
@@ -52,22 +51,18 @@ export const TableHeader = ({
52
51
  {/* Get the header groups (only one in this example) */}
53
52
  {table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>) => (
54
53
  <tr key={`${headerGroup.id}-headerGroup`}>
55
- {headerGroup.headers.map(header => {
56
- const isPinnedLeft = columnPinning.left.includes(header.id)
57
- return (
58
- <TableHeaderCell
59
- enableSorting={enableSorting}
60
- enableToggleExpansion={enableToggleExpansion}
61
- handleExpandOrCollapse={handleExpandOrCollapse}
62
- header={header}
63
- headerChildren={children}
64
- isPinnedLeft={isPinnedLeft}
65
- key={`${header.id}-header`}
66
- loading={loading}
67
- sortIcon={sortIcon}
68
- />
69
- )
70
- })}
54
+ {headerGroup.headers.map(header => (
55
+ <TableHeaderCell
56
+ enableSorting={enableSorting}
57
+ enableToggleExpansion={enableToggleExpansion}
58
+ handleExpandOrCollapse={handleExpandOrCollapse}
59
+ header={header}
60
+ headerChildren={children}
61
+ key={`${header.id}-header`}
62
+ loading={loading}
63
+ sortIcon={sortIcon}
64
+ />
65
+ ))}
71
66
  </tr>
72
67
  ))}
73
68
  </thead>
@@ -5,11 +5,9 @@
5
5
  @import "./scss_partials/loading";
6
6
  @import "./scss_partials/pseudo_states";
7
7
  @import "./scss_partials/chrome_styles";
8
- @import "../tokens/screen_sizes";
9
- @import "../tokens/shadows";
10
8
 
11
9
  .pb_advanced_table {
12
- $border-color: 1px solid $border_light;
10
+ $border-color: 1px solid $border_light !important;
13
11
 
14
12
  [id$="-span"] {
15
13
  word-wrap: normal;
@@ -110,51 +108,6 @@
110
108
  height: auto;
111
109
  }
112
110
 
113
- // Responsive Styles
114
- @media only screen and (max-width: $screen-xl-min) {
115
- &[class*="table-responsive-scroll"] {
116
- border-radius: 4px;
117
- box-shadow: 1px 0 0 0px $border_light,
118
- -1px 0 0 0px $border_light;
119
- display: block;
120
- overflow-x: auto;
121
- width: 100%;
122
- [class^=pb_table].table-sm.table-card thead tr th:first-child,
123
- [class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:first-child {
124
- border-left-width: 0px;
125
- }
126
- [class^=pb_table].table-sm.table-card thead tr th:last-child,
127
- [class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:last-child {
128
- border-right-width: 0px;
129
- }
130
- [class^=pb_table].table-sm.table-card tbody tr:last-child td:first-child,
131
- [class^=pb_table].table-sm.table-card tbody tr:last-child td:last-child {
132
- border-radius: 0 0 0 0;
133
- }
134
- .table-header-cells:first-child,
135
- td:first-child,
136
- .pb_table_td:first-child,
137
- [class*="pinned-left"] {
138
- background-color: $white;
139
- box-shadow: $shadow_deep !important;
140
- position: sticky !important;
141
- left: 0;
142
- z-index: 2;
143
- }
144
- .bg-silver td:first-child {
145
- background-color: lighten($silver, $opacity_7);
146
- }
147
- .bg-white td:first-child {
148
- background-color: $white;
149
- }
150
- }
151
- }
152
- @media only screen and (min-width: $screen-xl-min) {
153
- &[class*="table-responsive-scroll"] {
154
- overflow-x: visible;
155
- }
156
- }
157
-
158
111
  &.dark {
159
112
  .bg-white {
160
113
  background: $bg_dark_card;
@@ -198,43 +151,5 @@
198
151
  ) !important;
199
152
  }
200
153
  }
201
- // Dark Mode Responsive Styles
202
- @media only screen and (max-width: $screen-xl-min) {
203
- &[class*="table-responsive-scroll"] {
204
- border-radius: 4px;
205
- box-shadow: 1px 0 0 0px $border_dark,
206
- -1px 0 0 0px $border_dark;
207
- display: block;
208
- overflow-x: scroll;
209
- width: 100%;
210
- [class^=pb_table].table-sm.table-card thead tr th:first-child,
211
- [class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:first-child {
212
- border-left-width: 0px;
213
- }
214
- [class^=pb_table].table-sm.table-card thead tr th:last-child,
215
- [class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:last-child {
216
- border-right-width: 0px;
217
- }
218
- [class^=pb_table].table-sm.table-card tbody tr:last-child td:first-child,
219
- [class^=pb_table].table-sm.table-card tbody tr:last-child td:last-child {
220
- border-radius: 0 0 0 0;
221
- }
222
- .table-header-cells:first-child,
223
- td:first-child,
224
- .pb_table_td:first-child,
225
- [class*="pinned-left"] {
226
- background: $bg_dark_card;
227
- border-right: $border_dark;
228
- box-shadow: $shadow_deep !important;
229
- position: sticky !important;
230
- }
231
- .bg-silver td:first-child {
232
- background-color: $bg_dark;
233
- }
234
- .bg-white td:first-child {
235
- background-color: $bg_dark_card;
236
- }
237
- }
238
- }
239
154
  }
240
155
  }
@@ -42,7 +42,6 @@ type AdvancedTableProps = {
42
42
  loading?: boolean | string
43
43
  onRowToggleClick?: (arg: Row<GenericObject>) => void
44
44
  onToggleExpansionClick?: (arg: Row<GenericObject>) => void
45
- responsive?: "scroll" | "none",
46
45
  sortControl?: GenericObject
47
46
  tableData: GenericObject[]
48
47
  tableOptions?: GenericObject
@@ -67,7 +66,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
67
66
  loading,
68
67
  onRowToggleClick,
69
68
  onToggleExpansionClick,
70
- responsive = "scroll",
71
69
  sortControl,
72
70
  tableData,
73
71
  tableOptions,
@@ -134,7 +132,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
134
132
  //Create column array in format needed by Tanstack
135
133
  const columns =
136
134
  columnDefinitions &&
137
- columnDefinitions.map((column) => {
135
+ columnDefinitions.map((column) => {
138
136
  // Define the base column structure
139
137
  const columnStructure = {
140
138
  ...columnHelper.accessor(column.accessor, {
@@ -211,7 +209,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
211
209
  const htmlProps = buildHtmlProps(htmlOptions)
212
210
  const classes = classnames(
213
211
  buildCss("pb_advanced_table"),
214
- `table-responsive-${responsive}`,
215
212
  globalProps(props),
216
213
  className
217
214
  )
@@ -232,7 +229,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
232
229
  handleExpandOrCollapse,
233
230
  inlineRowLoading,
234
231
  loading,
235
- responsive,
236
232
  setExpanded,
237
233
  sortControl,
238
234
  table,
@@ -432,34 +432,4 @@ test("inlineRowLoading prop renders inline loading if true", () => {
432
432
  rowButton.click()
433
433
  const inlineLoading = kit.querySelector(".fa-spinner")
434
434
  expect(inlineLoading).toBeInTheDocument()
435
- })
436
-
437
- test("responsive prop functions as expected", () => {
438
- render(
439
- <AdvancedTable
440
- columnDefinitions={columnDefinitions}
441
- data={{ testid: testId }}
442
- responsive="scroll"
443
- tableData={MOCK_DATA}
444
- tableProps={tableProps}
445
- />
446
- )
447
-
448
- const kit = screen.getByTestId(testId)
449
- expect(kit).toHaveClass("pb_advanced_table table-responsive-scroll")
450
- })
451
-
452
- test("responsive none prop functions as expected", () => {
453
- render(
454
- <AdvancedTable
455
- columnDefinitions={columnDefinitions}
456
- data={{ testid: testId }}
457
- responsive="none"
458
- tableData={MOCK_DATA}
459
- tableProps={tableProps}
460
- />
461
- )
462
-
463
- const kit = screen.getByTestId(testId)
464
- expect(kit).toHaveClass("pb_advanced_table table-responsive-none")
465
435
  })
@@ -14,4 +14,3 @@ examples:
14
14
  - advanced_table_table_options: Table Options
15
15
  - advanced_table_table_props: Table Props
16
16
  - advanced_table_inline_row_loading: Inline Row Loading
17
- - advanced_table_responsive: Responsive Tables
@@ -7,5 +7,4 @@ export { default as AdvancedTableSubrowHeaders } from './_advanced_table_subrow_
7
7
  export { default as AdvancedTableCollapsibleTrail } from './_advanced_table_collapsible_trail.jsx'
8
8
  export { default as AdvancedTableTableOptions } from './_advanced_table_table_options.jsx'
9
9
  export { default as AdvancedTableTableProps } from './_advanced_table_table_props.jsx'
10
- export { default as AdvancedTableInlineRowLoading } from './_advanced_table_inline_row_loading.jsx'
11
- export { default as AdvancedTableResponsive } from './_advanced_table_responsive.jsx'
10
+ export { default as AdvancedTableInlineRowLoading } from './_advanced_table_inline_row_loading.jsx'
@@ -78,6 +78,36 @@ $avatar-sizes: (
78
78
  display: block;
79
79
  }
80
80
  }
81
+ [class^=pb_online_status] {
82
+ position: absolute;
83
+ right: 0;
84
+ top: 0;
85
+ bottom: auto;
86
+ left: auto;
87
+
88
+ &.size_xxs {
89
+ right: -5px;
90
+ }
91
+
92
+ &.size_xs {
93
+ right: -4px;
94
+ }
95
+
96
+ &.size_md {
97
+ top: auto;
98
+ bottom: 6px;
99
+ }
100
+
101
+ &.size_lg {
102
+ top: auto;
103
+ bottom: 14px;
104
+ }
105
+
106
+ &.size_xl {
107
+ top: auto;
108
+ bottom: 22px;
109
+ }
110
+ }
81
111
  }
82
112
  }
83
113
  }
@@ -71,22 +71,6 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
71
71
 
72
72
  const canShowImage = imageUrl && !error
73
73
 
74
- const onlineStatusSize =
75
- ['xxs', 'xs'].includes(size) ? 'sm' :
76
- ['sm', 'md'].includes(size) ? 'md' :
77
- ['lg', 'xl'].includes(size) ? 'lg' :
78
- 'sm';
79
-
80
- const onlineStatusPositionProps = (["xxs", "xs", "sm"].includes(size)) ?
81
- {
82
- top: { inset: true, value: "0" },
83
- right: { inset: false, value: "xxs" }
84
- }
85
- : {
86
- bottom: { inset: true, value: "0" },
87
- right: { inset: true, value: size === "xl" ? "sm" : size === "lg" ? "xs" : "xxs" }
88
- };
89
-
90
74
  return (
91
75
  <div
92
76
  {...ariaProps}
@@ -158,11 +142,9 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
158
142
  </div>
159
143
  {status && (
160
144
  <OnlineStatus
145
+ className={`size_${size}`}
161
146
  dark={dark}
162
- position="absolute"
163
- size={onlineStatusSize}
164
147
  status={status}
165
- {...onlineStatusPositionProps}
166
148
  />
167
149
  )}
168
150
  </>
@@ -4,8 +4,6 @@ module Playbook
4
4
  module PbAvatar
5
5
  class Avatar < Playbook::KitBase
6
6
  prop :component_overlay
7
- prop :dark, type: Playbook::Props::Boolean,
8
- default: false
9
7
  prop :image_url, type: Playbook::Props::String
10
8
  prop :image_alt, type: Playbook::Props::String,
11
9
  default: ""
@@ -25,22 +23,7 @@ module Playbook
25
23
  end
26
24
 
27
25
  def online_status_props
28
- props = {
29
- dark: dark,
30
- status: status,
31
- size: online_status_size,
32
- position: "absolute",
33
- right: online_status_right_position,
34
- }
35
-
36
- case size
37
- when "xxs", "xs", "sm"
38
- props[:top] = { value: "0", inset: true }
39
- else
40
- props[:bottom] = { value: "0", inset: true }
41
- end
42
-
43
- props
26
+ { status: status, classname: "size_#{size}" }
44
27
  end
45
28
 
46
29
  def alt_text
@@ -74,32 +57,6 @@ module Playbook
74
57
  }
75
58
  end
76
59
 
77
- def online_status_size
78
- case size
79
- when "xxs", "xs"
80
- "sm"
81
- when "sm", "md"
82
- "md"
83
- when "lg", "xl"
84
- "lg"
85
- else
86
- "sm"
87
- end
88
- end
89
-
90
- def online_status_right_position
91
- case size
92
- when "xxs", "xs", "sm"
93
- "xxs"
94
- when "md"
95
- { value: "xxs", inset: true }
96
- when "lg"
97
- { value: "xs", inset: true }
98
- when "xl"
99
- { value: "sm", inset: true }
100
- end
101
- end
102
-
103
60
  def placement_styles(offset)
104
61
  top_bottom_offset = if offset == "xs"
105
62
  "xs"
@@ -89,20 +89,3 @@ test('renders with iconCircle overlay', () => {
89
89
  expect(iconCircleOverlay).toBeInTheDocument();
90
90
  expect(iconCircleOverlay).toHaveClass('pb_avatar_kit_size_md');
91
91
  });
92
-
93
-
94
- test('renders with online status', () => {
95
- render(
96
- <Avatar
97
- data={{ testid: testId }}
98
- imageAlt={imageAlt}
99
- imageUrl={imageUrl}
100
- name={name}
101
- status="online"
102
- />
103
- );
104
-
105
- const onlineStatusAvatar = screen.getByTestId(testId);
106
- const onlineStatus = onlineStatusAvatar.querySelector('.pb_online_status_kit_online_size_md')
107
- expect(onlineStatus).toBeInTheDocument();
108
- });
@@ -6,6 +6,4 @@ Playbook's date picker is built using [flatpickr](https://flatpickr.js.org/), a
6
6
 
7
7
  To learn more [visit flatpickr's docs](https://flatpickr.js.org/instance-methods-properties-elements/) or see the hook doc section below for an applied example.
8
8
 
9
- The Date Picker works best with Javascript Date Objects or ISO Date strings. If you're programming in js use Date Objects. If you're using rails convert your date object (with timezone) to UTC and then to an ISO Date string. For example, `DateTime.now.utc.iso8601`. This ensures that the string passed to the Date Picker kit behaves as expected.
10
-
11
- The Date Picker expects a date format of `MM/DD/YYYY` by default. If a different date format (e.g. `DD/MM/YYYY`, `m/d/y`, etc.) is used, the component will not know how to handle it and use a default date instead. To change the date format used, read more [here](#format).
9
+ The Date Picker works best with Javascript Date Objects or ISO Date strings. If you're programming in js use Date Objects. If you're using rails convert your date object (with timezone) to UTC and then to an ISO Date string. For example, `DateTime.now.utc.iso8601`. This ensures that the string passed to the Date Picker kit behaves as expected.
@@ -33,7 +33,7 @@ $confirmation_toast_colors: (
33
33
 
34
34
  &.positioned_toast {
35
35
  position: fixed;
36
- z-index: $z_10 !important;
36
+ z-index: $z_9;
37
37
  display: flex;
38
38
  justify-content: space-around;
39
39
  max-width: max-content;
@@ -45,7 +45,6 @@
45
45
  class: "checkbox-class"
46
46
  %>
47
47
  <%= form.date_picker :example_date_picker_1, props: { label: true } %>
48
- <%= form.star_rating_field :example_star_rating, props: { variant: "interactive", label: true } %>
49
48
 
50
49
  <%= form.actions do |action| %>
51
50
  <%= action.submit %>
@@ -39,7 +39,6 @@ type IconProps = {
39
39
  size?: IconSizes,
40
40
  fontStyle?: 'far' | 'fas' | 'fab' | 'fak',
41
41
  spin?: boolean,
42
- tabIndex?: number,
43
42
  } & GlobalProps
44
43
 
45
44
  const flipMap = {
@@ -139,7 +138,6 @@ const Icon = (props: IconProps) => {
139
138
  size,
140
139
  fontStyle = 'far',
141
140
  spin = false,
142
- tabIndex,
143
141
  } = props
144
142
 
145
143
  let iconElement: ReactSVGElement | null = typeof(icon) === "object" ? icon : null
@@ -228,7 +226,6 @@ const Icon = (props: IconProps) => {
228
226
  id,
229
227
  width: 'auto',
230
228
  height: 'auto',
231
- ...(props.tabIndex !== undefined && { tabIndex }),
232
229
  })
233
230
  }
234
231
  </>
@@ -37,7 +37,6 @@ module Playbook
37
37
  prop :spin, type: Playbook::Props::Boolean,
38
38
  default: false
39
39
  prop :color, type: Playbook::Props::String
40
- prop :tabindex
41
40
 
42
41
  def valid_emoji?
43
42
  emoji_regex = /\p{Emoji}/
@@ -108,7 +107,6 @@ module Playbook
108
107
  svg["aria"] = object.aria
109
108
  svg["height"] = "auto"
110
109
  svg["width"] = "auto"
111
- svg["tabindex"] = object.tabindex
112
110
  fill_color = object.color || "currentColor"
113
111
  doc.at_css("path")["fill"] = fill_color
114
112
  raw doc
@@ -24,8 +24,7 @@ type IconCircleProps = {
24
24
  | "red"
25
25
  | "yellow"
26
26
  | "orange"
27
- | "green"
28
- | "lighter",
27
+ | "green",
29
28
  }
30
29
 
31
30
  const IconCircle = (props: IconCircleProps) => {
@@ -10,8 +10,8 @@ module Playbook
10
10
  values: %w[xxs xs sm md base lg xl],
11
11
  default: "md"
12
12
  prop :variant, type: Playbook::Props::Enum,
13
- values: %w[default royal blue orange purple teal red yellow green orange lighter],
14
- default: "lighter"
13
+ values: %w[default royal blue orange purple teal red yellow green orange],
14
+ default: "default"
15
15
 
16
16
  def classname
17
17
  generate_classname("pb_icon_circle_kit", "size_#{size}", variant)
@@ -50,4 +50,15 @@
50
50
  margin-right: $space-sm;
51
51
  }
52
52
  }
53
+ [class^=pb_title_kit_1] + [class^=pb_body_kit] {
54
+ font-size: 36px;
55
+ }
56
+
57
+ [class^=pb_title_kit_2] + [class^=pb_body_kit] {
58
+ font-size: 24px
59
+ }
60
+
61
+ [class^=pb_title_kit_3] + [class^=pb_body_kit] {
62
+ font-size: 20px;
63
+ }
53
64
  }
@@ -32,8 +32,7 @@ type IconStatValueProps = {
32
32
  | "red"
33
33
  | "yellow"
34
34
  | "orange"
35
- | "green"
36
- | "lighter",
35
+ | "green",
37
36
  }
38
37
 
39
38
  const IconStatValue = (props: IconStatValueProps): React.ReactElement => {
@@ -50,7 +49,7 @@ const IconStatValue = (props: IconStatValueProps): React.ReactElement => {
50
49
  text = '',
51
50
  unit = '',
52
51
  value = 0,
53
- variant = 'lighter',
52
+ variant = 'default',
54
53
  } = props
55
54
  const ariaProps = buildAriaProps(aria)
56
55
  const dataProps = buildDataProps(data)
@@ -47,7 +47,6 @@
47
47
  value: 19.18,
48
48
  variant:"green"
49
49
  }) %>
50
- <br>
51
50
  <%= pb_rails("icon_stat_value", props: { icon: "globe",
52
51
  text: "Uranus",
53
52
  unit: "AU",