playbook_ui 14.17.0.pre.alpha.play2065passphrasewithselect7295 → 14.17.0.pre.alpha.playcdntest7233

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +3 -23
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +1 -11
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +128 -60
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +0 -3
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +2 -1
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +2 -2
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +2 -6
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +2 -6
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -6
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -4
  14. data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +45 -19
  15. data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +0 -1
  16. data/app/pb_kits/playbook/pb_copy_button/docs/index.js +1 -2
  17. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +3 -23
  18. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +5 -15
  19. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +6 -39
  20. data/app/pb_kits/playbook/pb_layout/_layout.scss +1 -70
  21. data/app/pb_kits/playbook/pb_layout/_layout.tsx +2 -29
  22. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +118 -322
  23. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.md +1 -1
  24. data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +43 -74
  25. data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +4 -21
  26. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +22 -49
  27. data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +4 -15
  28. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md +7 -1
  29. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -3
  30. data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -3
  31. data/app/pb_kits/playbook/pb_overlay/overlay.test.jsx +1 -39
  32. data/dist/chunks/{_typeahead-CHd0V9EL.js → _typeahead-C2GOKWtm.js} +2 -2
  33. data/dist/chunks/_weekday_stacked-CFGTPT0O.js +45 -0
  34. data/dist/chunks/{lib-BV_AF_eh.js → lib-BGzBzFZX.js} +3 -3
  35. data/dist/chunks/{pb_form_validation-nsvkJU2J.js → pb_form_validation-BvNy9Bd6.js} +1 -1
  36. data/dist/chunks/vendor.js +1 -1
  37. data/dist/playbook-doc.js +1 -1
  38. data/dist/playbook-rails-react-bindings.js +1 -1
  39. data/dist/playbook-rails.js +1 -1
  40. data/dist/playbook.css +1 -1
  41. data/lib/playbook/version.rb +1 -1
  42. metadata +6 -25
  43. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.jsx +0 -58
  44. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.md +0 -6
  45. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.jsx +0 -64
  46. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +0 -8
  47. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +0 -55
  48. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +0 -3
  49. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +0 -33
  50. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +0 -3
  51. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +0 -97
  52. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.jsx +0 -54
  53. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.md +0 -3
  54. data/app/pb_kits/playbook/pb_copy_button/usePBCopy.ts +0 -45
  55. data/app/pb_kits/playbook/pb_layout/subcomponents/_participant.tsx +0 -79
  56. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.jsx +0 -63
  57. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.md +0 -3
  58. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.jsx +0 -39
  59. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.md +0 -1
  60. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.jsx +0 -40
  61. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +0 -5
  62. data/dist/chunks/_weekday_stacked-BatiLk3-.js +0 -45
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Playbook
4
4
  PREVIOUS_VERSION = "14.17.0"
5
- VERSION = "14.17.0.pre.alpha.play2065passphrasewithselect7295"
5
+ VERSION = "14.17.0.pre.alpha.playcdntest7233"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.17.0.pre.alpha.play2065passphrasewithselect7295
4
+ version: 14.17.0.pre.alpha.playcdntest7233
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-04-21 00:00:00.000000000 Z
12
+ date: 2025-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -344,14 +344,6 @@ files:
344
344
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.md
345
345
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx
346
346
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.md
347
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.jsx
348
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.md
349
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.jsx
350
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md
351
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx
352
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md
353
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb
354
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md
355
347
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx
356
348
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.md
357
349
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx
@@ -376,7 +368,6 @@ files:
376
368
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/_chrome_styles.scss
377
369
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/_loading.scss
378
370
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/_pseudo_states.scss
379
- - app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss
380
371
  - app/pb_kits/playbook/pb_advanced_table/table_body.html.erb
381
372
  - app/pb_kits/playbook/pb_advanced_table/table_body.rb
382
373
  - app/pb_kits/playbook/pb_advanced_table/table_header.html.erb
@@ -833,12 +824,9 @@ files:
833
824
  - app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb
834
825
  - app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx
835
826
  - app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.md
836
- - app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.jsx
837
- - app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.md
838
827
  - app/pb_kits/playbook/pb_copy_button/docs/example.yml
839
828
  - app/pb_kits/playbook/pb_copy_button/docs/index.js
840
829
  - app/pb_kits/playbook/pb_copy_button/index.js
841
- - app/pb_kits/playbook/pb_copy_button/usePBCopy.ts
842
830
  - app/pb_kits/playbook/pb_currency/_currency.scss
843
831
  - app/pb_kits/playbook/pb_currency/_currency.tsx
844
832
  - app/pb_kits/playbook/pb_currency/currency.html.erb
@@ -1849,7 +1837,6 @@ files:
1849
1837
  - app/pb_kits/playbook/pb_layout/sidebar.html.erb
1850
1838
  - app/pb_kits/playbook/pb_layout/sidebar.rb
1851
1839
  - app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx
1852
- - app/pb_kits/playbook/pb_layout/subcomponents/_participant.tsx
1853
1840
  - app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx
1854
1841
  - app/pb_kits/playbook/pb_legend/_legend.scss
1855
1842
  - app/pb_kits/playbook/pb_legend/_legend.tsx
@@ -2208,19 +2195,13 @@ files:
2208
2195
  - app/pb_kits/playbook/pb_online_status/online_status.test.js
2209
2196
  - app/pb_kits/playbook/pb_overlay/_overlay.scss
2210
2197
  - app/pb_kits/playbook/pb_overlay/_overlay.tsx
2211
- - app/pb_kits/playbook/pb_overlay/docs/_overlay_color.jsx
2212
- - app/pb_kits/playbook/pb_overlay/docs/_overlay_color.md
2213
2198
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_default.html.erb
2214
2199
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_default.jsx
2215
2200
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md
2216
- - app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.jsx
2217
- - app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.md
2218
2201
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_hide_scroll_bar.html.erb
2219
2202
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_hide_scroll_bar.jsx
2220
2203
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_hide_scroll_bar_rails.md
2221
2204
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_hide_scroll_bar_react.md
2222
- - app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.jsx
2223
- - app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md
2224
2205
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_multi_directional.html.erb
2225
2206
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_multi_directional.jsx
2226
2207
  - app/pb_kits/playbook/pb_overlay/docs/_overlay_multi_directional.md
@@ -3494,11 +3475,11 @@ files:
3494
3475
  - app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
3495
3476
  - app/pb_kits/playbook/utilities/text.ts
3496
3477
  - app/pb_kits/playbook/utilities/validEmojiChecker.ts
3497
- - dist/chunks/_typeahead-CHd0V9EL.js
3498
- - dist/chunks/_weekday_stacked-BatiLk3-.js
3478
+ - dist/chunks/_typeahead-C2GOKWtm.js
3479
+ - dist/chunks/_weekday_stacked-CFGTPT0O.js
3499
3480
  - dist/chunks/lazysizes-B7xYodB-.js
3500
- - dist/chunks/lib-BV_AF_eh.js
3501
- - dist/chunks/pb_form_validation-nsvkJU2J.js
3481
+ - dist/chunks/lib-BGzBzFZX.js
3482
+ - dist/chunks/pb_form_validation-BvNy9Bd6.js
3502
3483
  - dist/chunks/vendor.js
3503
3484
  - dist/menu.yml
3504
3485
  - dist/playbook-doc.js
@@ -1,58 +0,0 @@
1
- import React from "react"
2
- import AdvancedTable from '../../pb_advanced_table/_advanced_table'
3
- import MOCK_DATA from "./advanced_table_mock_data.json"
4
-
5
- const AdvancedTableStickyColumns = (props) => {
6
- const columnDefinitions = [
7
- {
8
- accessor: "year",
9
- label: "Year",
10
- id: "year",
11
- cellAccessors: ["quarter", "month", "day"],
12
- },
13
- {
14
- accessor: "newEnrollments",
15
- label: "New Enrollments",
16
- id: "newEnrollments",
17
- },
18
- {
19
- accessor: "scheduledMeetings",
20
- label: "Scheduled Meetings",
21
- id: "scheduledMeetings",
22
- },
23
- {
24
- accessor: "attendanceRate",
25
- label: "Attendance Rate",
26
- id: "attendanceRate",
27
- },
28
- {
29
- accessor: "completedClasses",
30
- label: "Completed Classes",
31
- id: "completedClasses",
32
- },
33
- {
34
- accessor: "classCompletionRate",
35
- label: "Class Completion Rate",
36
- id: "classCompletionRate",
37
- },
38
- {
39
- accessor: "graduatedStudents",
40
- label: "Graduated Students",
41
- id: "graduatedStudents",
42
- },
43
- ]
44
-
45
- return (
46
- <div>
47
- <AdvancedTable
48
- columnDefinitions={columnDefinitions}
49
- responsive="none"
50
- stickyLeftColumn={["year"]}
51
- tableData={MOCK_DATA}
52
- {...props}
53
- />
54
- </div>
55
- )
56
- }
57
-
58
- export default AdvancedTableStickyColumns
@@ -1,6 +0,0 @@
1
- To render sticky columns for the Advanced Table, you can use the `stickyLeftColumn` prop. This prop expects an array of the column ids you want to be sticky.
2
-
3
- To achieve this:
4
- - Make sure to provide an id for each column via columnDefinitions as shown below. Id can be any string.
5
- - One or multiple columns can be made sticky, it is recommended to set the ids within `stickyLeftColumn` in the order in which the columns are rendered.
6
- - It is recommended to set `responsive` to none when using `stickyLeftColumn` since responsive just makes the first column sticky and the slightly different styling for `responsive` and `stickyLeftColumn` may override each other in unexpected ways.
@@ -1,64 +0,0 @@
1
- import React from "react"
2
- import AdvancedTable from '../../pb_advanced_table/_advanced_table'
3
- import MOCK_DATA from "./advanced_table_mock_data.json"
4
-
5
- const AdvancedTableStickyColumnsAndHeader = (props) => {
6
- const columnDefinitions = [
7
- {
8
- accessor: "year",
9
- label: "Year",
10
- id: "year",
11
- cellAccessors: ["quarter", "month", "day"],
12
- },
13
- {
14
- accessor: "newEnrollments",
15
- label: "New Enrollments",
16
- id: "newEnrollments",
17
- },
18
- {
19
- accessor: "scheduledMeetings",
20
- label: "Scheduled Meetings",
21
- id: "scheduledMeetings",
22
- },
23
- {
24
- accessor: "attendanceRate",
25
- label: "Attendance Rate",
26
- id: "attendanceRate",
27
- },
28
- {
29
- accessor: "completedClasses",
30
- label: "Completed Classes",
31
- id: "completedClasses",
32
- },
33
- {
34
- accessor: "classCompletionRate",
35
- label: "Class Completion Rate",
36
- id: "classCompletionRate",
37
- },
38
- {
39
- accessor: "graduatedStudents",
40
- label: "Graduated Students",
41
- id: "graduatedStudents",
42
- },
43
- ]
44
-
45
- const tableProps = {
46
- sticky: true
47
- }
48
-
49
- return (
50
- <div>
51
- <AdvancedTable
52
- columnDefinitions={columnDefinitions}
53
- maxHeight="xs"
54
- responsive="none"
55
- stickyLeftColumn={["year"]}
56
- tableData={MOCK_DATA}
57
- tableProps={tableProps}
58
- {...props}
59
- />
60
- </div>
61
- )
62
- }
63
-
64
- export default AdvancedTableStickyColumnsAndHeader
@@ -1,8 +0,0 @@
1
- To achieve a sticky header AND sticky columns together, in addition to the `stickyLeftColumn` logic outlined above, you can:
2
-
3
- - Set `sticky: true` via `tableProps`
4
- - Give the AdvancedTable a `maxHeight` using our [Max Height](https://playbook.powerapp.cloud/visual_guidelines/max_height) global prop.
5
-
6
- **NOTE**: This behavior requires a `maxHeight` to work. The header is sticky within the table container, allowing for it to work along with the column stickiness.
7
-
8
- Expand the table above to see this in action.
@@ -1,55 +0,0 @@
1
- import React from "react"
2
- import AdvancedTable from '../../pb_advanced_table/_advanced_table'
3
- import MOCK_DATA from "./advanced_table_mock_data.json"
4
-
5
- const AdvancedTableStickyHeader = (props) => {
6
- const columnDefinitions = [
7
- {
8
- accessor: "year",
9
- label: "Year",
10
- cellAccessors: ["quarter", "month", "day"],
11
- },
12
- {
13
- accessor: "newEnrollments",
14
- label: "New Enrollments",
15
- },
16
- {
17
- accessor: "scheduledMeetings",
18
- label: "Scheduled Meetings",
19
- },
20
- {
21
- accessor: "attendanceRate",
22
- label: "Attendance Rate",
23
- },
24
- {
25
- accessor: "completedClasses",
26
- label: "Completed Classes",
27
- },
28
- {
29
- accessor: "classCompletionRate",
30
- label: "Class Completion Rate",
31
- },
32
- {
33
- accessor: "graduatedStudents",
34
- label: "Graduated Students",
35
- },
36
- ]
37
-
38
- const tableProps = {
39
- sticky: true
40
- }
41
-
42
- return (
43
- <div>
44
- <AdvancedTable
45
- columnDefinitions={columnDefinitions}
46
- responsive="none"
47
- tableData={MOCK_DATA}
48
- tableProps={tableProps}
49
- {...props}
50
- />
51
- </div>
52
- )
53
- }
54
-
55
- export default AdvancedTableStickyHeader
@@ -1,3 +0,0 @@
1
- The `TableProps` prop can also be used to render a sticky header for the Advanced Table.
2
-
3
- This doc example showcases how to set a sticky header for a nonresponsive table (see the `responsive` prop set to "none"). To achieve sticky header AND responsive functionality, see the "Sticky Header for Responsive Table" doc example below.
@@ -1,33 +0,0 @@
1
- <% column_definitions = [
2
- {
3
- accessor: "year",
4
- label: "Year",
5
- cellAccessors: ["quarter", "month", "day"],
6
- },
7
- {
8
- accessor: "newEnrollments",
9
- label: "New Enrollments",
10
- },
11
- {
12
- accessor: "scheduledMeetings",
13
- label: "Scheduled Meetings",
14
- },
15
- {
16
- accessor: "attendanceRate",
17
- label: "Attendance Rate",
18
- },
19
- {
20
- accessor: "completedClasses",
21
- label: "Completed Classes",
22
- },
23
- {
24
- accessor: "classCompletionRate",
25
- label: "Class Completion Rate",
26
- },
27
- {
28
- accessor: "graduatedStudents",
29
- label: "Graduated Students",
30
- }
31
- ] %>
32
-
33
- <%= pb_rails("advanced_table", props: { id: "sticky_header_table", table_data: @table_data, column_definitions: column_definitions, responsive: "none", table_props: { sticky: true }}) %>
@@ -1,3 +0,0 @@
1
- The `table_props` prop can also be used to render a sticky header for the Advanced Table.
2
-
3
- This doc example showcases how to set a sticky header for a nonresponsive table (see the `responsive` prop set to "none"). To achieve sticky header AND responsive functionality, see the "[Sticky Header for Responsive Table](https://playbook.powerapp.cloud/kits/advanced_table/react#sticky-header-for-responsive-table)" doc example below.
@@ -1,97 +0,0 @@
1
- @mixin advanced-table-sticky-mixin(
2
- $border-color,
3
- $bg-main,
4
- $bg-secondary,
5
- $highlight: $info_subtle
6
- ) {
7
- border-radius: 4px;
8
- box-shadow: 1px 0 0 0px $border-color, -1px 0 0 0px $border-color;
9
- display: block;
10
- [class^="pb_table"].table-sm.table-card thead tr th:first-child,
11
- [class^="pb_table"].table-sm:not(.no-hover).table-card
12
- tbody
13
- tr
14
- td:first-child {
15
- border-left-width: 0px !important;
16
- }
17
- [class^="pb_table"].table-sm.table-card thead tr th:last-child,
18
- [class^="pb_table"].table-sm:not(.no-hover).table-card
19
- tbody
20
- tr
21
- td:last-child {
22
- border-right-width: 0px;
23
- }
24
- [class^="pb_table"].table-sm.table-card tbody tr:last-child td:first-child,
25
- [class^="pb_table"].table-sm.table-card tbody tr:last-child td:last-child {
26
- border-radius: 0 0 0 0;
27
- }
28
- .table-header-cells:first-child,
29
- td:first-child,
30
- .pb_table_td:first-child,
31
- .checkbox-cell.checkbox-cell-header:first-child,
32
- .table-header-cells.sticky-left,
33
- [class*="pinned-left"] {
34
- background-color: $bg-main;
35
- box-shadow: $shadow_deep !important;
36
- position: sticky !important;
37
- left: 0;
38
- z-index: 2;
39
- }
40
-
41
- .bg-silver {
42
- td:first-child,
43
- .sticky-left {
44
- background-color: $bg-secondary;
45
- }
46
- }
47
- .bg-row-selection {
48
- td:first-child,
49
- .sticky-left {
50
- background-color: $highlight;
51
- }
52
- }
53
-
54
- .bg-white {
55
- td:first-child,
56
- .sticky-left {
57
- background-color: $bg-main;
58
- }
59
- }
60
-
61
- .virtualized-table-row {
62
- &.bg-silver td:first-child {
63
- background-color: $bg-secondary;
64
- }
65
- &.bg-white td:first-child {
66
- background-color: $bg-main;
67
- }
68
- &.bg-row-selection td:first-child {
69
- background-color: $highlight;
70
- }
71
- }
72
-
73
- .row-selection-actions-card {
74
- border-right-width: 0px;
75
- border-left-width: 0px;
76
- position: sticky;
77
- top: 0;
78
- left: 0;
79
- border-radius: unset;
80
- }
81
-
82
- .checkbox-cell {
83
- display: table-cell !important;
84
- }
85
-
86
- .sticky-header {
87
- thead {
88
- th:first-child {
89
- box-shadow: 1px 0 10px -2px $border-color !important;
90
- }
91
- }
92
-
93
- .pb_advanced_table_header {
94
- box-shadow: none !important;
95
- }
96
- }
97
- }
@@ -1,54 +0,0 @@
1
- import React, { useEffect, useState } from 'react'
2
- import usePBCopy from '../../pb_copy_button/usePBCopy'
3
- import Body from '../../pb_body/_body'
4
- import Textarea from '../../pb_textarea/_textarea'
5
- import Tooltip from '../../pb_tooltip/_tooltip'
6
-
7
- const CopyButtonHook = ({...props}) => {
8
- // This is how you can use the copy button hook to copy text to the clipboard
9
- // eslint-disable-next-line no-unused-vars
10
- const [copied, copyToClipboard] = usePBCopy({ from: 'hookbody' })
11
- // I added a tooltip so it looks better in the ui
12
- const [showTooltip, setShowTooltip] = useState(false)
13
-
14
- const handleCopy = () => {
15
- copyToClipboard()
16
- setShowTooltip(true)
17
- setTimeout(() => setShowTooltip(false), 1500)
18
- }
19
-
20
- useEffect(() => {
21
- const el = document.getElementById('hookbody')
22
- if (!el) return
23
-
24
- el.addEventListener('click', handleCopy)
25
- return () => {
26
- el.removeEventListener('click', handleCopy)
27
- }
28
- }, [copyToClipboard])
29
-
30
- return (
31
- <div>
32
- <Tooltip
33
- delay={{ close: 1000 }}
34
- forceOpenTooltip={showTooltip}
35
- placement="top"
36
- showTooltip={false}
37
- text="Copied!"
38
- >
39
- <Body
40
- cursor="pointer"
41
- id="hookbody"
42
- text="I'm a custom copy hook! Click this body to copy this text!"
43
- />
44
- </Tooltip>
45
-
46
- <Textarea
47
- {...props}
48
- placeholder="Paste here"
49
- />
50
- </div>
51
- )
52
- }
53
-
54
- export default CopyButtonHook
@@ -1,3 +0,0 @@
1
- We provide a `usePBCopy` hook that you can import to your project. This hook will return a function that you can call to copy the text to the clipboard.
2
-
3
- `usePBCopy({ from: 'your_id' })` will grab the `innerText` from `your_id` element, or `value` if it is an input element.
@@ -1,45 +0,0 @@
1
- import { useState, useRef, useEffect } from 'react'
2
-
3
- type UsePBCopyProps = {
4
- value?: string
5
- from?: string
6
- timeout?: number
7
- }
8
-
9
- export default function usePBCopy({
10
- value = '',
11
- from = '',
12
- timeout = 0,
13
- }: UsePBCopyProps) {
14
- const [copied, setCopied] = useState(false)
15
- const timerRef = useRef<number>()
16
-
17
- const copy = () => {
18
- if (!value && !from) return
19
-
20
- if (value) {
21
- navigator.clipboard.writeText(value)
22
- } else {
23
- const el = document.getElementById(from)
24
- let text = el?.innerText
25
- if (el instanceof HTMLTextAreaElement || el instanceof HTMLInputElement) {
26
- text = el.value
27
- }
28
- if (text) navigator.clipboard.writeText(text)
29
- }
30
-
31
- setCopied(true)
32
- window.clearTimeout(timerRef.current)
33
- timerRef.current = window.setTimeout(() => {
34
- setCopied(false)
35
- }, timeout)
36
- }
37
-
38
- useEffect(() => {
39
- return () => {
40
- window.clearTimeout(timerRef.current)
41
- }
42
- }, [])
43
-
44
- return [copied, copy] as const
45
- }
@@ -1,79 +0,0 @@
1
- import React from 'react'
2
- import classnames from 'classnames'
3
-
4
- import { buildCss } from '../../utilities/props'
5
- import { GlobalProps, globalProps, globalInlineProps } from '../../utilities/globalProps'
6
-
7
- import Avatar from "../../pb_avatar/_avatar";
8
- import Body from "../../pb_body/_body";
9
- import Flex from "../../pb_flex/_flex";
10
- import Badge from "../../pb_badge/_badge";
11
- import Detail from "../../pb_detail/_detail";
12
- import Background from "../../pb_background/_background";
13
-
14
- type LayoutParticipantProps = {
15
- className?: string,
16
- name?: string,
17
- territory?: string,
18
- points?: string,
19
- rank?: string,
20
- avatar?: string,
21
- winner?: boolean,
22
- self?: boolean,
23
- } & GlobalProps
24
-
25
- export const Participant = (props: LayoutParticipantProps) => {
26
- const { className, name = 'To be determined...', territory = '', points, rank, avatar, winner, self, hasLastWinnerAndSelf } = props
27
- const dynamicInlineProps = globalInlineProps(props)
28
- const isLastWinnerAndSelf = hasLastWinnerAndSelf && self && winner
29
- const classes = classnames(buildCss('layout_participant', winner ? 'winner' : '', self ? 'self' : '', isLastWinnerAndSelf ? 'last' : ''), globalProps(props), className)
30
- return (
31
- <Background
32
- backgroundColor={winner ? "success_subtle" : "white"}
33
- className={classes}
34
- padding="xs"
35
- style={dynamicInlineProps}
36
- >
37
- <Flex justify="between">
38
- <Avatar
39
- imageUrl={avatar}
40
- marginRight="sm"
41
- name={name}
42
- size="sm"
43
- />
44
- <Body flexGrow={1}>
45
- <Flex justify="between">
46
- <Body
47
- color={winner && !isLastWinnerAndSelf ? "success" : "default"}
48
- truncate={1}
49
- >
50
- {winner ? <strong>{name}{self ? ' (You)' : ''}</strong> : name + (self && !isLastWinnerAndSelf ? ' (You)' : '')}
51
- </Body>
52
- <Body
53
- color={winner && !isLastWinnerAndSelf ? "success" : "light"}
54
- display="flex"
55
- >
56
- {points && (<>
57
- <strong>{points}</strong>
58
- <Detail
59
- color={winner && !isLastWinnerAndSelf ? "success" : "light"}
60
- text="pts"
61
- />
62
- </>)}
63
- </Body>
64
- </Flex>
65
- <Body color="light">
66
- {territory}
67
- &nbsp;
68
- <Badge
69
- text={rank}
70
- variant={winner && !isLastWinnerAndSelf ? "success" : self ? "notification" : "neutral"}
71
- />
72
- </Body>
73
- </Body>
74
- </Flex>
75
- </Background>
76
- )
77
- }
78
-
79
- export default Participant