playbook_ui_docs 16.7.0 → 16.8.0.pre.alpha.PLAY2935formbuilderrequiredindicatorbug16780

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +1 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.md +6 -0
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_width.jsx +57 -0
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_width.md +66 -0
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_enable_toggle_expansion_rails.html.erb +62 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_enable_toggle_expansion_rails.md +7 -0
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +12 -4
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +4 -0
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +16 -2
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +4 -0
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_scroll_limitation.jsx +68 -0
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_scroll_limitation.md +7 -0
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.html.erb +16 -2
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header.jsx +12 -5
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +4 -0
  17. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +5 -3
  18. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.json +180 -5839
  19. data/app/pb_kits/playbook/pb_advanced_table/docs/_playground.overrides.json +5 -30
  20. data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_column_definitions_styling.json +4 -1
  21. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -0
  22. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
  23. data/app/pb_kits/playbook/pb_date/docs/_playground.json +13 -17
  24. data/app/pb_kits/playbook/pb_date/docs/_playground.overrides.json +13 -16
  25. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_dialog_submission.jsx +2 -2
  26. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.html.erb +0 -2
  27. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.jsx +0 -2
  28. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.json +136 -42
  29. data/app/pb_kits/playbook/pb_date_picker/docs/_playground.overrides.json +113 -45
  30. data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.json +48 -6
  31. data/app/pb_kits/playbook/pb_date_range_inline/docs/_playground.overrides.json +57 -0
  32. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_playground.json +28 -5
  33. data/app/pb_kits/playbook/pb_date_range_stacked/docs/_playground.overrides.json +38 -0
  34. data/app/pb_kits/playbook/pb_date_stacked/docs/_playground.json +1 -1
  35. data/app/pb_kits/playbook/pb_date_stacked/docs/_playground.overrides.json +1 -1
  36. data/app/pb_kits/playbook/pb_date_time/docs/_playground.json +16 -3
  37. data/app/pb_kits/playbook/pb_date_time/docs/_playground.overrides.json +16 -3
  38. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.json +11 -15
  39. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_playground.overrides.json +11 -15
  40. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_playground.json +4 -4
  41. data/app/pb_kits/playbook/pb_date_year_stacked/docs/_playground.overrides.json +4 -4
  42. data/app/pb_kits/playbook/pb_detail/docs/_playground.json +12 -18
  43. data/app/pb_kits/playbook/pb_detail/docs/_playground.overrides.json +13 -12
  44. data/app/pb_kits/playbook/pb_dialog/docs/_playground.json +108 -42
  45. data/app/pb_kits/playbook/pb_dialog/docs/_playground.overrides.json +88 -40
  46. data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.json +65 -7
  47. data/app/pb_kits/playbook/pb_distribution_bar/docs/_playground.overrides.json +45 -0
  48. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_rails.md +2 -0
  49. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_cards_react.md +1 -0
  50. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_rails.md +2 -0
  51. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_list_react.md +3 -1
  52. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_rails.md +3 -1
  53. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_selectable_list_react.md +3 -1
  54. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.json +318 -21
  55. data/app/pb_kits/playbook/pb_dropdown/docs/_playground.overrides.json +192 -19
  56. data/app/pb_kits/playbook/pb_empty_state/docs/_playground.json +77 -12
  57. data/app/pb_kits/playbook/pb_empty_state/docs/_playground.overrides.json +79 -0
  58. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.json +98 -13
  59. data/app/pb_kits/playbook/pb_file_upload/docs/_playground.overrides.json +99 -0
  60. data/app/pb_kits/playbook/pb_form/docs/_form_with_required_indicator.html.erb +20 -19
  61. data/app/pb_kits/playbook/pb_icon/docs/example.yml +0 -2
  62. data/app/pb_kits/playbook/pb_icon/docs/index.js +0 -1
  63. data/app/pb_kits/playbook/pb_link/docs/_playground.json +81 -40
  64. data/app/pb_kits/playbook/pb_link/docs/_playground.overrides.json +88 -30
  65. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_centered_data.html.erb +90 -0
  66. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_centered_data.jsx +100 -0
  67. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_centered_data.md +1 -0
  68. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +1 -1
  69. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/example.yml +2 -0
  70. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/index.js +2 -1
  71. data/app/pb_kits/playbook/pb_phone_number_input/docs/_playground.json +4 -2
  72. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_default.html.erb +1 -0
  73. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_default.md +12 -0
  74. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_simple.html.erb +9 -0
  75. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_rails_simple.md +8 -0
  76. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +2 -0
  77. data/app/pb_kits/playbook/pb_table/docs/_table_sticky.html.erb +85 -83
  78. data/app/pb_kits/playbook/pb_table/docs/_table_sticky.jsx +88 -86
  79. data/app/pb_kits/playbook/pb_table/docs/_table_sticky.md +3 -1
  80. data/app/pb_kits/playbook/pb_table/docs/_table_with_filter_variant_external_filter_rails.md +1 -1
  81. data/app/pb_kits/playbook/pb_title/docs/_playground.json +72 -23
  82. data/app/pb_kits/playbook/pb_title/docs/_playground.overrides.json +80 -16
  83. metadata +21 -6
  84. data/app/pb_kits/playbook/pb_icon/docs/_icon_fa_kit.html.erb +0 -1
  85. data/app/pb_kits/playbook/pb_icon/docs/_icon_fa_kit.jsx +0 -21
  86. data/app/pb_kits/playbook/pb_icon/docs/_icon_fa_kit.md +0 -7
@@ -0,0 +1,100 @@
1
+ import React from "react";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
+
4
+ const data = [
5
+ {
6
+ name: "EV",
7
+ y: 23.9,
8
+ },
9
+ {
10
+ name: "Hybrids",
11
+ y: 12.6,
12
+ },
13
+ {
14
+ name: "Diesel",
15
+ y: 37.0,
16
+ },
17
+ {
18
+ name: "Petrol",
19
+ y: 26.4,
20
+ },
21
+ ];
22
+
23
+ const total = data.reduce((sum, point) => sum + point.y, 0);
24
+ const subtitleRows = data.map((point) => `${point.name}: ${point.y}%`).join("<br>");
25
+
26
+ const chartOptions = {
27
+ chart: {
28
+ type: "pie",
29
+ },
30
+ accessibility: {
31
+ point: {
32
+ valueSuffix: "%",
33
+ },
34
+ },
35
+ title: {
36
+ text: "2023 Norway car registrations",
37
+ floating: true,
38
+ align: "center",
39
+ verticalAlign: "top",
40
+ y: 8,
41
+ },
42
+ subtitle: {
43
+ text: `Total<br><strong>${total.toFixed(1)}</strong><br><br>${subtitleRows}`,
44
+ useHTML: true,
45
+ floating: true,
46
+ align: "center",
47
+ verticalAlign: "middle",
48
+ y: 8,
49
+ style: {
50
+ textAlign: "center",
51
+ },
52
+ },
53
+ tooltip: {
54
+ pointFormat: "{series.name}: <b>{point.percentage:.0f}%</b>",
55
+ },
56
+ legend: {
57
+ enabled: false,
58
+ },
59
+ plotOptions: {
60
+ series: {
61
+ allowPointSelect: true,
62
+ cursor: "pointer",
63
+ borderRadius: 8,
64
+ dataLabels: [
65
+ {
66
+ enabled: true,
67
+ distance: 20,
68
+ format: "{point.name}",
69
+ },
70
+ {
71
+ enabled: true,
72
+ distance: -15,
73
+ format: "{point.percentage:.0f}%",
74
+ style: {
75
+ fontSize: "0.9em",
76
+ },
77
+ },
78
+ ],
79
+ showInLegend: true,
80
+ },
81
+ },
82
+ series: [
83
+ {
84
+ name: "Registrations",
85
+ colorByPoint: true,
86
+ center: ["50%", "50%"],
87
+ innerSize: "75%",
88
+ data,
89
+ },
90
+ ],
91
+ };
92
+
93
+ const PbCircleChartCenteredData = (props) => (
94
+ <PbCircleChart
95
+ options={chartOptions}
96
+ {...props}
97
+ />
98
+ );
99
+
100
+ export default PbCircleChartCenteredData;
@@ -0,0 +1 @@
1
+ This example shows how to achieve centered data. This data will remain in the center of all screen sizes.
@@ -30,4 +30,4 @@ const PbCircleChartDefault = (props) => (
30
30
  </div>
31
31
  );
32
32
 
33
- export default PbCircleChartDefault;
33
+ export default PbCircleChartDefault;
@@ -11,6 +11,7 @@ examples:
11
11
  - pb_circle_chart_with_title: With Title
12
12
  - pb_circle_chart_inner_sizes: Inner Circle Size Options
13
13
  - pb_circle_chart_custom_tooltip: Tooltip Customization
14
+ - pb_circle_chart_centered_data: Centered Data
14
15
 
15
16
 
16
17
  react:
@@ -25,5 +26,6 @@ examples:
25
26
  - pb_circle_chart_with_title: With Title
26
27
  - pb_circle_chart_inner_sizes: Inner Circle Size Options
27
28
  - pb_circle_chart_custom_tooltip: Tooltip Customization
29
+ - pb_circle_chart_centered_data: Centered Data
28
30
 
29
31
 
@@ -8,4 +8,5 @@ export { default as PbCircleChartDataWithLegend } from './_pb_circle_chart_data_
8
8
  export { default as PbCircleChartDataLegendPosition } from './_pb_circle_chart_data_legend_position.jsx'
9
9
  export { default as PbCircleChartWithTitle } from './_pb_circle_chart_with_title.jsx'
10
10
  export { default as PbCircleChartInnerSizes } from './_pb_circle_chart_inner_sizes.jsx'
11
- export { default as PbCircleChartCustomTooltip } from './_pb_circle_chart_custom_tooltip.jsx'
11
+ export { default as PbCircleChartCustomTooltip } from './_pb_circle_chart_custom_tooltip.jsx'
12
+ export { default as PbCircleChartCenteredData } from './_pb_circle_chart_centered_data.jsx'
@@ -13,7 +13,8 @@
13
13
  "value": "",
14
14
  "formatAsYouType": false,
15
15
  "strictMode": false,
16
- "countrySearch": false
16
+ "countrySearch": false,
17
+ "showPlaceholder": false
17
18
  },
18
19
  "groups": [
19
20
  {
@@ -37,7 +38,8 @@
37
38
  "value",
38
39
  "formatAsYouType",
39
40
  "strictMode",
40
- "countrySearch"
41
+ "countrySearch",
42
+ "showPlaceholder"
41
43
  ]
42
44
  }
43
45
  ],
@@ -0,0 +1 @@
1
+ <%= pb_rails("rich_text_editor", props: { input_options: { id: 'hidden_input_id', name: "hidden_input_name" }, value: "Add your text here. You can format your text, add links, quotes, and bullets." }) %>
@@ -0,0 +1,12 @@
1
+ The Rails rich text editor is a TipTap surface with no React. The UI (toolbar, block-style menu, formatting actions) is rendered with Playbook Rails kits (`pb_rails`). The editor document is a vanilla TipTap `Editor` instance; HTML is synced to a hidden `<input>` so standard Rails forms can submit the value.
2
+
3
+ ### How TipTap is loaded (Rails)
4
+
5
+ - The kit’s module script (`rich_text_editor_rails.js`) uses `import()` with **full URLs** on [esm.sh](https://esm.sh) (e.g. `@tiptap/core@2.8.0`). esm.sh resolves dependencies server-side, so **no `<script type="importmap">`** is required—this avoids conflicts when the host page already has an import map (e.g. Vite in dev, or another app map) because Firefox only applies one native map.
6
+ - You do not need TipTap in your app’s npm dependencies or Gemfile for this kit; the browser loads modules from esm.sh when the page runs.
7
+ - Ensure **CSP** allows loading scripts from `https://esm.sh` (and esm.sh’s redirected module URLs) if you use a strict `script-src` / `connect-src`.
8
+
9
+ ### Relation to the React implementation
10
+
11
+ - Same core: both use TipTap v2 on top of ProseMirror; styling lives in Playbook SCSS (`_tiptap_styles.scss`) so the editor chrome lines up between platforms.
12
+ - Different shell: Rails uses ERB + Playbook Rails components + inline module script. React uses `RichTextEditor` / `_tiptap_editor.tsx` and TipTap wired through the bundled Playbook React package—see Advanced Default for that stack and when you need TipTap installed in your JavaScript bundle.
@@ -0,0 +1,9 @@
1
+ <%= pb_rails("rich_text_editor", props: {
2
+ simple: true,
3
+ label: "Notes",
4
+ input_options: {
5
+ id: "rails_rte_simple_demo",
6
+ name: "content",
7
+ },
8
+ value: "<p>Use <strong>Bold</strong> and <em>Italic</em> from the toolbar.</p>",
9
+ }) %>
@@ -0,0 +1,8 @@
1
+ ### Simple toolbar (`simple: true`)
2
+
3
+ Pass **`simple: true`** for a compact toolbar: **Bold**, **Italic**, **Undo**, and **Redo** (same history controls as the full toolbar—plain buttons, not popovers).
4
+
5
+ - No block-style dropdown (no “Paragraph” / headings / lists in the menu).
6
+ - No **`pb_popover`** on the toolbar—useful in **native `<dialog>`** modals, turbo-loaded panels, or other tight layouts where the full block menu is awkward to position.
7
+
8
+ The underlying TipTap document still accepts the same HTML as the default Rails editor; `simple` only changes which **toolbar controls** are shown.
@@ -1,6 +1,8 @@
1
1
  examples:
2
2
 
3
3
  rails:
4
+ - rich_text_editor_rails_default: "Rails (TipTap)"
5
+ - rich_text_editor_rails_simple: "Rails (TipTap — Simple toolbar)"
4
6
 
5
7
  react:
6
8
  - rich_text_editor_advanced_default: Advanced Default
@@ -1,83 +1,85 @@
1
- <%= pb_rails("table", props: { sticky: true }) do %>
2
- <thead>
3
- <tr>
4
- <th>Column 1</th>
5
- <th>Column 2</th>
6
- <th>Column 3</th>
7
- <th>Column 4</th>
8
- <th>Column 5</th>
9
- </tr>
10
- </thead>
11
- <tbody>
12
- <tr>
13
- <td>Value 1</td>
14
- <td>Value 2</td>
15
- <td>Value 3</td>
16
- <td>Value 4</td>
17
- <td>Value 5</td>
18
- </tr>
19
- <tr>
20
- <td>Value 1</td>
21
- <td>Value 2</td>
22
- <td>Value 3</td>
23
- <td>Value 4</td>
24
- <td>Value 5</td>
25
- </tr>
26
- <tr>
27
- <td>Value 1</td>
28
- <td>Value 2</td>
29
- <td>Value 3</td>
30
- <td>Value 4</td>
31
- <td>Value 5</td>
32
- </tr>
33
- <tr>
34
- <td>Value 1</td>
35
- <td>Value 2</td>
36
- <td>Value 3</td>
37
- <td>Value 4</td>
38
- <td>Value 5</td>
39
- </tr>
40
- <tr>
41
- <td>Value 1</td>
42
- <td>Value 2</td>
43
- <td>Value 3</td>
44
- <td>Value 4</td>
45
- <td>Value 5</td>
46
- </tr>
47
- <tr>
48
- <td>Value 1</td>
49
- <td>Value 2</td>
50
- <td>Value 3</td>
51
- <td>Value 4</td>
52
- <td>Value 5</td>
53
- </tr>
54
- <tr>
55
- <td>Value 1</td>
56
- <td>Value 2</td>
57
- <td>Value 3</td>
58
- <td>Value 4</td>
59
- <td>Value 5</td>
60
- </tr>
61
- <tr>
62
- <td>Value 1</td>
63
- <td>Value 2</td>
64
- <td>Value 3</td>
65
- <td>Value 4</td>
66
- <td>Value 5</td>
67
- </tr>
68
- <tr>
69
- <td>Value 1</td>
70
- <td>Value 2</td>
71
- <td>Value 3</td>
72
- <td>Value 4</td>
73
- <td>Value 5</td>
74
- </tr>
75
- <tr>
76
- <td>Value 1</td>
77
- <td>Value 2</td>
78
- <td>Value 3</td>
79
- <td>Value 4</td>
80
- <td>Value 5</td>
81
- </tr>
82
- </tbody>
83
- <% end %>
1
+ <div style="max-height: 320px; overflow-y: auto;">
2
+ <%= pb_rails("table", props: { sticky: true }) do %>
3
+ <thead>
4
+ <tr>
5
+ <th>Column 1</th>
6
+ <th>Column 2</th>
7
+ <th>Column 3</th>
8
+ <th>Column 4</th>
9
+ <th>Column 5</th>
10
+ </tr>
11
+ </thead>
12
+ <tbody>
13
+ <tr>
14
+ <td>Value 1</td>
15
+ <td>Value 2</td>
16
+ <td>Value 3</td>
17
+ <td>Value 4</td>
18
+ <td>Value 5</td>
19
+ </tr>
20
+ <tr>
21
+ <td>Value 1</td>
22
+ <td>Value 2</td>
23
+ <td>Value 3</td>
24
+ <td>Value 4</td>
25
+ <td>Value 5</td>
26
+ </tr>
27
+ <tr>
28
+ <td>Value 1</td>
29
+ <td>Value 2</td>
30
+ <td>Value 3</td>
31
+ <td>Value 4</td>
32
+ <td>Value 5</td>
33
+ </tr>
34
+ <tr>
35
+ <td>Value 1</td>
36
+ <td>Value 2</td>
37
+ <td>Value 3</td>
38
+ <td>Value 4</td>
39
+ <td>Value 5</td>
40
+ </tr>
41
+ <tr>
42
+ <td>Value 1</td>
43
+ <td>Value 2</td>
44
+ <td>Value 3</td>
45
+ <td>Value 4</td>
46
+ <td>Value 5</td>
47
+ </tr>
48
+ <tr>
49
+ <td>Value 1</td>
50
+ <td>Value 2</td>
51
+ <td>Value 3</td>
52
+ <td>Value 4</td>
53
+ <td>Value 5</td>
54
+ </tr>
55
+ <tr>
56
+ <td>Value 1</td>
57
+ <td>Value 2</td>
58
+ <td>Value 3</td>
59
+ <td>Value 4</td>
60
+ <td>Value 5</td>
61
+ </tr>
62
+ <tr>
63
+ <td>Value 1</td>
64
+ <td>Value 2</td>
65
+ <td>Value 3</td>
66
+ <td>Value 4</td>
67
+ <td>Value 5</td>
68
+ </tr>
69
+ <tr>
70
+ <td>Value 1</td>
71
+ <td>Value 2</td>
72
+ <td>Value 3</td>
73
+ <td>Value 4</td>
74
+ <td>Value 5</td>
75
+ </tr>
76
+ <tr>
77
+ <td>Value 1</td>
78
+ <td>Value 2</td>
79
+ <td>Value 3</td>
80
+ <td>Value 4</td>
81
+ <td>Value 5</td>
82
+ </tr>
83
+ </tbody>
84
+ <% end %>
85
+ </div>
@@ -3,92 +3,94 @@ import React from "react"
3
3
  import Table from "../_table"
4
4
 
5
5
  const TableSticky = (props) => (
6
- <Table
7
- sticky
8
- {...props}
9
- >
10
- <thead>
11
- <tr>
12
- <th>{'Column 1'}</th>
13
- <th>{'Column 2'}</th>
14
- <th>{'Column 3'}</th>
15
- <th>{'Column 4'}</th>
16
- <th>{'Column 5'}</th>
17
- </tr>
18
- </thead>
19
- <tbody>
20
- <tr>
21
- <td>{'Value 1'}</td>
22
- <td>{'Value 2'}</td>
23
- <td>{'Value 3'}</td>
24
- <td>{'Value 4'}</td>
25
- <td>{'Value 5'}</td>
26
- </tr>
27
- <tr>
28
- <td>{'Value 1'}</td>
29
- <td>{'Value 2'}</td>
30
- <td>{'Value 3'}</td>
31
- <td>{'Value 4'}</td>
32
- <td>{'Value 5'}</td>
33
- </tr>
34
- <tr>
35
- <td>{'Value 1'}</td>
36
- <td>{'Value 2'}</td>
37
- <td>{'Value 3'}</td>
38
- <td>{'Value 4'}</td>
39
- <td>{'Value 5'}</td>
40
- </tr>
41
- <tr>
42
- <td>{'Value 1'}</td>
43
- <td>{'Value 2'}</td>
44
- <td>{'Value 3'}</td>
45
- <td>{'Value 4'}</td>
46
- <td>{'Value 5'}</td>
47
- </tr>
48
- <tr>
49
- <td>{'Value 1'}</td>
50
- <td>{'Value 2'}</td>
51
- <td>{'Value 3'}</td>
52
- <td>{'Value 4'}</td>
53
- <td>{'Value 5'}</td>
54
- </tr>
55
- <tr>
56
- <td>{'Value 1'}</td>
57
- <td>{'Value 2'}</td>
58
- <td>{'Value 3'}</td>
59
- <td>{'Value 4'}</td>
60
- <td>{'Value 5'}</td>
61
- </tr>
62
- <tr>
63
- <td>{'Value 1'}</td>
64
- <td>{'Value 2'}</td>
65
- <td>{'Value 3'}</td>
66
- <td>{'Value 4'}</td>
67
- <td>{'Value 5'}</td>
68
- </tr>
69
- <tr>
70
- <td>{'Value 1'}</td>
71
- <td>{'Value 2'}</td>
72
- <td>{'Value 3'}</td>
73
- <td>{'Value 4'}</td>
74
- <td>{'Value 5'}</td>
75
- </tr>
76
- <tr>
77
- <td>{'Value 1'}</td>
78
- <td>{'Value 2'}</td>
79
- <td>{'Value 3'}</td>
80
- <td>{'Value 4'}</td>
81
- <td>{'Value 5'}</td>
82
- </tr>
83
- <tr>
84
- <td>{'Value 1'}</td>
85
- <td>{'Value 2'}</td>
86
- <td>{'Value 3'}</td>
87
- <td>{'Value 4'}</td>
88
- <td>{'Value 5'}</td>
89
- </tr>
90
- </tbody>
91
- </Table>
6
+ <div style={{ maxHeight: "320px", overflowY: "auto" }}>
7
+ <Table
8
+ sticky
9
+ {...props}
10
+ >
11
+ <thead>
12
+ <tr>
13
+ <th>{'Column 1'}</th>
14
+ <th>{'Column 2'}</th>
15
+ <th>{'Column 3'}</th>
16
+ <th>{'Column 4'}</th>
17
+ <th>{'Column 5'}</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <tr>
22
+ <td>{'Value 1'}</td>
23
+ <td>{'Value 2'}</td>
24
+ <td>{'Value 3'}</td>
25
+ <td>{'Value 4'}</td>
26
+ <td>{'Value 5'}</td>
27
+ </tr>
28
+ <tr>
29
+ <td>{'Value 1'}</td>
30
+ <td>{'Value 2'}</td>
31
+ <td>{'Value 3'}</td>
32
+ <td>{'Value 4'}</td>
33
+ <td>{'Value 5'}</td>
34
+ </tr>
35
+ <tr>
36
+ <td>{'Value 1'}</td>
37
+ <td>{'Value 2'}</td>
38
+ <td>{'Value 3'}</td>
39
+ <td>{'Value 4'}</td>
40
+ <td>{'Value 5'}</td>
41
+ </tr>
42
+ <tr>
43
+ <td>{'Value 1'}</td>
44
+ <td>{'Value 2'}</td>
45
+ <td>{'Value 3'}</td>
46
+ <td>{'Value 4'}</td>
47
+ <td>{'Value 5'}</td>
48
+ </tr>
49
+ <tr>
50
+ <td>{'Value 1'}</td>
51
+ <td>{'Value 2'}</td>
52
+ <td>{'Value 3'}</td>
53
+ <td>{'Value 4'}</td>
54
+ <td>{'Value 5'}</td>
55
+ </tr>
56
+ <tr>
57
+ <td>{'Value 1'}</td>
58
+ <td>{'Value 2'}</td>
59
+ <td>{'Value 3'}</td>
60
+ <td>{'Value 4'}</td>
61
+ <td>{'Value 5'}</td>
62
+ </tr>
63
+ <tr>
64
+ <td>{'Value 1'}</td>
65
+ <td>{'Value 2'}</td>
66
+ <td>{'Value 3'}</td>
67
+ <td>{'Value 4'}</td>
68
+ <td>{'Value 5'}</td>
69
+ </tr>
70
+ <tr>
71
+ <td>{'Value 1'}</td>
72
+ <td>{'Value 2'}</td>
73
+ <td>{'Value 3'}</td>
74
+ <td>{'Value 4'}</td>
75
+ <td>{'Value 5'}</td>
76
+ </tr>
77
+ <tr>
78
+ <td>{'Value 1'}</td>
79
+ <td>{'Value 2'}</td>
80
+ <td>{'Value 3'}</td>
81
+ <td>{'Value 4'}</td>
82
+ <td>{'Value 5'}</td>
83
+ </tr>
84
+ <tr>
85
+ <td>{'Value 1'}</td>
86
+ <td>{'Value 2'}</td>
87
+ <td>{'Value 3'}</td>
88
+ <td>{'Value 4'}</td>
89
+ <td>{'Value 5'}</td>
90
+ </tr>
91
+ </tbody>
92
+ </Table>
93
+ </div>
92
94
  )
93
95
 
94
96
  export default TableSticky
@@ -2,7 +2,9 @@ React: Use `sticky` on a table to allow the table header to be fixed in place wh
2
2
 
3
3
  Rails: Pass `sticky: true` to props.
4
4
 
5
- If the table header is not sticking in the right place you will need to pass a inline `top` style to the `thead`.
5
+ The live example uses a scroll container so sticky behavior is visible in the docs. Scroll inside the preview to see it.
6
+
7
+ If the table header is not sticking in the right place you will need to pass an inline `top` style to the `thead`. This is often needed when a parent adds padding above the table.
6
8
  React Example: `<thead style={{ top: "-16px" }}>`
7
9
  Rails Example: `<thead style="top: -16px">`
8
10
 
@@ -36,4 +36,4 @@ When `filter` is present, `filter_content` and `filter_props` are ignored.
36
36
  <% end %>
37
37
  ```
38
38
 
39
- For Nitro apps that use a shared search/filter pattern, reference the example on Alpha for implementation details.
39
+ For Nitro apps that use a shared search/filter pattern, reference the [example on Alpha](https://github.com/powerhome/nitro-web/pull/56859/changes/aa2afcdc97d39d74beb65cf53eb3bb2517eb2181) for implementation details.