playbook_ui_docs 14.0.0 → 14.1.0.pre.alpha.PA1477timestampkit3601
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.jsx +67 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_badge/docs/_badge_notification.html.erb +13 -0
- data/app/pb_kits/playbook/pb_badge/docs/_badge_notification.jsx +31 -12
- data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +3 -1
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_default.jsx +1 -5
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.jsx +46 -0
- data/app/pb_kits/playbook/pb_dialog/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_dialog/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/example.yml +2 -2
- data/app/pb_kits/playbook/pb_gantt_chart/docs/_gantt_chart_default.jsx +53 -0
- data/app/pb_kits/playbook/pb_gantt_chart/docs/example.yml +7 -0
- data/app/pb_kits/playbook/pb_gantt_chart/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +1 -0
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_no_border.html.erb +1 -0
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_no_border.jsx +14 -0
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_size.html.erb +3 -0
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_size.jsx +25 -0
- data/app/pb_kits/playbook/pb_online_status/docs/example.yml +6 -2
- data/app/pb_kits/playbook/pb_online_status/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.html.erb +61 -0
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.jsx +70 -0
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.md +1 -0
- data/app/pb_kits/playbook/pb_overlay/docs/example.yml +4 -2
- data/app/pb_kits/playbook/pb_overlay/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.jsx +19 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default_react.md +1 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change.jsx +62 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change_react.md +1 -0
- data/app/pb_kits/playbook/pb_pagination/docs/data.js +23 -0
- data/app/pb_kits/playbook/pb_pagination/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_pagination/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_advanced_preview.jsx +73 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +2 -1
- data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb +2 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb +1 -1
- data/dist/playbook-doc.js +1 -1
- metadata +26 -6
- /data/app/pb_kits/playbook/pb_pagination/docs/{_pagination_default.md → _pagination_default_rails.md} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4fffe3685bd39602858926aaabda9ad24f5aae62ae94e95c93e2ad64caa607e
|
4
|
+
data.tar.gz: 256e0c7c0eb8d622c5e62457c1a0f687a0970d542edcb2e27c418f0852e341bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c16cc5610ee2b7eca6e606c4121562c6b38a947f431e03b83ba4c54c10c330b5503fd1418ab63e6311d2647c20b52f37eaa61a937fa115ca86f300bcb16cc0b0
|
7
|
+
data.tar.gz: 4ab33015f8e2d087f8ee6e2223c17a9a6658bcd4799e74ee7085943e4090357a75d483b02d55306705434c4ddaa5d0ce90eef9af5de594a639f29291d69bfa1d
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "playbook-ui"
|
3
|
+
import Title from '../../pb_title/_title'
|
4
|
+
import MOCK_DATA from "./advanced_table_mock_data.json"
|
5
|
+
|
6
|
+
const AdvancedTableResponsive = (props) => {
|
7
|
+
const columnDefinitions = [
|
8
|
+
{
|
9
|
+
accessor: "year",
|
10
|
+
label: "Year",
|
11
|
+
cellAccessors: ["quarter", "month", "day"],
|
12
|
+
},
|
13
|
+
{
|
14
|
+
accessor: "newEnrollments",
|
15
|
+
label: "New Enrollments",
|
16
|
+
},
|
17
|
+
{
|
18
|
+
accessor: "scheduledMeetings",
|
19
|
+
label: "Scheduled Meetings",
|
20
|
+
},
|
21
|
+
{
|
22
|
+
accessor: "attendanceRate",
|
23
|
+
label: "Attendance Rate",
|
24
|
+
},
|
25
|
+
{
|
26
|
+
accessor: "completedClasses",
|
27
|
+
label: "Completed Classes",
|
28
|
+
},
|
29
|
+
{
|
30
|
+
accessor: "classCompletionRate",
|
31
|
+
label: "Class Completion Rate",
|
32
|
+
},
|
33
|
+
{
|
34
|
+
accessor: "graduatedStudents",
|
35
|
+
label: "Graduated Students",
|
36
|
+
},
|
37
|
+
]
|
38
|
+
|
39
|
+
return (
|
40
|
+
<div>
|
41
|
+
<Title
|
42
|
+
size={4}
|
43
|
+
text="Not Responsive"
|
44
|
+
{...props}
|
45
|
+
/>
|
46
|
+
<AdvancedTable
|
47
|
+
columnDefinitions={columnDefinitions}
|
48
|
+
responsive="none"
|
49
|
+
tableData={MOCK_DATA}
|
50
|
+
{...props}
|
51
|
+
/>
|
52
|
+
<Title
|
53
|
+
paddingTop="sm"
|
54
|
+
size={4}
|
55
|
+
text="Responsive as Default"
|
56
|
+
{...props}
|
57
|
+
/>
|
58
|
+
<AdvancedTable
|
59
|
+
columnDefinitions={columnDefinitions}
|
60
|
+
tableData={MOCK_DATA}
|
61
|
+
{...props}
|
62
|
+
/>
|
63
|
+
</div>
|
64
|
+
)
|
65
|
+
}
|
66
|
+
|
67
|
+
export default AdvancedTableResponsive
|
@@ -0,0 +1 @@
|
|
1
|
+
The `responsive` prop can be set to "scroll" or "none", and is set to "scroll" by default to make Advanced Tables responsive. To disable, set `responsive="none"`.
|
@@ -7,4 +7,5 @@ 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'
|
10
|
+
export { default as AdvancedTableInlineRowLoading } from './_advanced_table_inline_row_loading.jsx'
|
11
|
+
export { default as AdvancedTableResponsive } from './_advanced_table_responsive.jsx'
|
@@ -10,3 +10,16 @@
|
|
10
10
|
variant: "notification"
|
11
11
|
}) %>
|
12
12
|
</div>
|
13
|
+
|
14
|
+
<div>
|
15
|
+
<%= pb_rails("badge", props: {
|
16
|
+
text: "1",
|
17
|
+
variant: "notification_error",
|
18
|
+
rounded: true
|
19
|
+
}) %>
|
20
|
+
|
21
|
+
<%= pb_rails("badge", props: {
|
22
|
+
text: "4",
|
23
|
+
variant: "notification_error"
|
24
|
+
}) %>
|
25
|
+
</div>
|
@@ -4,20 +4,39 @@ import Badge from '../_badge'
|
|
4
4
|
const BadgeNotification = (props) => {
|
5
5
|
return (
|
6
6
|
<>
|
7
|
-
<
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
<div>
|
8
|
+
<Badge
|
9
|
+
rounded
|
10
|
+
text="1"
|
11
|
+
variant="notification"
|
12
|
+
{...props}
|
13
|
+
/>
|
13
14
|
|
14
|
-
|
15
|
+
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
<Badge
|
18
|
+
text="4"
|
19
|
+
variant="notification"
|
20
|
+
{...props}
|
21
|
+
/>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div>
|
25
|
+
<Badge
|
26
|
+
rounded
|
27
|
+
text="1"
|
28
|
+
variant="notificationError"
|
29
|
+
{...props}
|
30
|
+
/>
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
<Badge
|
35
|
+
text="4"
|
36
|
+
variant="notificationError"
|
37
|
+
{...props}
|
38
|
+
/>
|
39
|
+
</div>
|
21
40
|
</>
|
22
41
|
)
|
23
42
|
}
|
@@ -6,4 +6,6 @@ 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.
|
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).
|
@@ -5,21 +5,17 @@ const DialogDefault = () => {
|
|
5
5
|
const [isOpen, setIsOpen] = useState(false)
|
6
6
|
const close = () => setIsOpen(false)
|
7
7
|
const open = () => setIsOpen(true)
|
8
|
-
const [isLoading, setIsLoading] = useState(false)
|
9
8
|
|
10
9
|
return (
|
11
10
|
<>
|
12
11
|
<Button onClick={open}>{'Open Dialog'}</Button>
|
13
12
|
<Dialog
|
14
13
|
cancelButton="Cancel Button"
|
15
|
-
className="wrapper"
|
16
14
|
confirmButton="Okay"
|
17
|
-
loading={isLoading}
|
18
15
|
onCancel={close}
|
19
16
|
onClose={close}
|
20
|
-
onConfirm={
|
17
|
+
onConfirm={close}
|
21
18
|
opened={isOpen}
|
22
|
-
portalClassName="portal"
|
23
19
|
size="sm"
|
24
20
|
text="Hello Body Text, Nice to meet ya."
|
25
21
|
title="Header Title is the Title Prop"
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import React, { useState } from 'react'
|
2
|
+
import { Button, Dialog } from 'playbook-ui'
|
3
|
+
|
4
|
+
const DialogLoading = () => {
|
5
|
+
const [isOpen, setIsOpen] = useState(false)
|
6
|
+
const close = () => {
|
7
|
+
if (!isLoading) {
|
8
|
+
setIsOpen(false)
|
9
|
+
}
|
10
|
+
}
|
11
|
+
const open = () => setIsOpen(true)
|
12
|
+
const [isLoading, setIsLoading] = useState(false)
|
13
|
+
const submit = async () => {
|
14
|
+
setIsLoading(true)
|
15
|
+
|
16
|
+
try {
|
17
|
+
await new Promise((r) => setTimeout(r, 3000))
|
18
|
+
setIsOpen(false)
|
19
|
+
} catch (error) {
|
20
|
+
console.error("An error occurred.")
|
21
|
+
} finally {
|
22
|
+
setIsLoading(false)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
return (
|
27
|
+
<>
|
28
|
+
<Button onClick={open}>{'Open Dialog'}</Button>
|
29
|
+
<Dialog
|
30
|
+
cancelButton="Cancel"
|
31
|
+
className="wrapper"
|
32
|
+
confirmButton="Okay"
|
33
|
+
loading={isLoading}
|
34
|
+
onCancel={close}
|
35
|
+
onClose={close}
|
36
|
+
onConfirm={submit}
|
37
|
+
opened={isOpen}
|
38
|
+
size="sm"
|
39
|
+
text="Make a 3 second request?"
|
40
|
+
title="Loading Example"
|
41
|
+
/>
|
42
|
+
</>
|
43
|
+
)
|
44
|
+
}
|
45
|
+
|
46
|
+
export default DialogLoading
|
@@ -8,3 +8,4 @@ export { default as DialogStatus } from './_dialog_status.jsx'
|
|
8
8
|
export { default as DialogStackedAlert } from './_dialog_stacked_alert.jsx'
|
9
9
|
export { default as DialogFullHeight } from './_dialog_full_height.jsx'
|
10
10
|
export { default as DialogFullHeightPlacement } from './_dialog_full_height_placement.jsx'
|
11
|
+
export { default as DialogLoading } from './_dialog_loading.jsx'
|
@@ -45,6 +45,7 @@
|
|
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 } %>
|
48
49
|
|
49
50
|
<%= form.actions do |action| %>
|
50
51
|
<%= action.submit %>
|
@@ -35,6 +35,7 @@
|
|
35
35
|
<%= form.collection_select :example_collection_select, example_collection, :value, :name, props: { label: true, blank_selection: "Select One...", required: true } %>
|
36
36
|
<%= form.check_box :example_checkbox, props: { text: "Example Checkbox", label: true, required: true } %>
|
37
37
|
<%= form.date_picker :example_date_picker_2, props: { label: true, required: true } %>
|
38
|
+
<%= form.star_rating_field :example_star_rating, props: { variant: "interactive", label: true, required: true } %>
|
38
39
|
|
39
40
|
<%= form.actions do |action| %>
|
40
41
|
<%= action.submit %>
|
@@ -5,11 +5,11 @@ examples:
|
|
5
5
|
- form_pill_size: Form Pill Size
|
6
6
|
- form_pill_tag: Form Pill Tag
|
7
7
|
- form_pill_example: Example
|
8
|
-
|
8
|
+
- form_pill_icon: Form Pill Icon
|
9
9
|
|
10
10
|
react:
|
11
11
|
- form_pill_user: Form Pill User
|
12
12
|
- form_pill_size: Form Pill Size
|
13
13
|
- form_pill_tag: Form Pill Tag
|
14
14
|
- form_pill_example: Example
|
15
|
-
|
15
|
+
- form_pill_icon: Form Pill Icon
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { GanttChart } from "playbook-ui";
|
3
|
+
|
4
|
+
const mockOptions = {
|
5
|
+
title: {
|
6
|
+
text: "Simple Gantt Chart",
|
7
|
+
},
|
8
|
+
|
9
|
+
xAxis: [
|
10
|
+
{
|
11
|
+
min: Date.UTC(2014, 10, 17),
|
12
|
+
max: Date.UTC(2014, 10, 30),
|
13
|
+
},
|
14
|
+
],
|
15
|
+
|
16
|
+
series: [
|
17
|
+
{
|
18
|
+
name: "Project 1",
|
19
|
+
data: [
|
20
|
+
{
|
21
|
+
name: "Start prototype",
|
22
|
+
start: Date.UTC(2014, 10, 18),
|
23
|
+
end: Date.UTC(2014, 10, 25),
|
24
|
+
},
|
25
|
+
{
|
26
|
+
name: "Develop",
|
27
|
+
start: Date.UTC(2014, 10, 20),
|
28
|
+
end: Date.UTC(2014, 10, 25),
|
29
|
+
},
|
30
|
+
{
|
31
|
+
name: "Run acceptance tests",
|
32
|
+
start: Date.UTC(2014, 10, 23),
|
33
|
+
end: Date.UTC(2014, 10, 26),
|
34
|
+
},
|
35
|
+
{
|
36
|
+
name: "Test prototype",
|
37
|
+
start: Date.UTC(2014, 10, 27),
|
38
|
+
end: Date.UTC(2014, 10, 29),
|
39
|
+
},
|
40
|
+
],
|
41
|
+
},
|
42
|
+
],
|
43
|
+
};
|
44
|
+
|
45
|
+
const GanttChartDefault = (props) => (
|
46
|
+
<div>
|
47
|
+
<GanttChart customOptions={mockOptions}
|
48
|
+
{...props}
|
49
|
+
/>
|
50
|
+
</div>
|
51
|
+
);
|
52
|
+
|
53
|
+
export default GanttChartDefault;
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as GanttChartDefault } from './_gantt_chart_default.jsx'
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= pb_rails("online_status", props: { no_border: true }) %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
|
3
|
+
import OnlineStatus from '../_online_status'
|
4
|
+
|
5
|
+
const OnlineStatusSize = (props) => (
|
6
|
+
<>
|
7
|
+
<OnlineStatus
|
8
|
+
marginY="xs"
|
9
|
+
size="sm"
|
10
|
+
{...props}
|
11
|
+
/>
|
12
|
+
<OnlineStatus
|
13
|
+
marginY="xs"
|
14
|
+
size="md"
|
15
|
+
{...props}
|
16
|
+
/>
|
17
|
+
<OnlineStatus
|
18
|
+
marginY="xs"
|
19
|
+
size="lg"
|
20
|
+
{...props}
|
21
|
+
/>
|
22
|
+
</>
|
23
|
+
)
|
24
|
+
|
25
|
+
export default OnlineStatusSize
|
@@ -1,8 +1,12 @@
|
|
1
1
|
examples:
|
2
2
|
|
3
3
|
rails:
|
4
|
-
- online_status_default:
|
4
|
+
- online_status_default: Colors
|
5
|
+
- online_status_size: Size
|
6
|
+
- online_status_no_border: No Border
|
5
7
|
|
6
8
|
|
7
9
|
react:
|
8
|
-
- online_status_default:
|
10
|
+
- online_status_default: Colors
|
11
|
+
- online_status_size: Size
|
12
|
+
- online_status_no_border: No Border
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<div id="outer-container">
|
2
|
+
<%= pb_rails("overlay", props: { id: "overlay-container", overflow: "hidden" }) do %>
|
3
|
+
<div id="underlying-table">
|
4
|
+
<%= pb_rails("table", props: { size: "sm" }) do %>
|
5
|
+
<thead>
|
6
|
+
<tr>
|
7
|
+
<th>Column 1</th>
|
8
|
+
<th>Column 2</th>
|
9
|
+
<th>Column 3</th>
|
10
|
+
<th>Column 4</th>
|
11
|
+
<th>Column 5</th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
14
|
+
<tbody>
|
15
|
+
<% 7.times do %>
|
16
|
+
<tr>
|
17
|
+
<td>Value 1</td>
|
18
|
+
<td>Value 2</td>
|
19
|
+
<td>Value 3</td>
|
20
|
+
<td>Value 4</td>
|
21
|
+
<td>Value 5</td>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
</tbody>
|
25
|
+
<% end %>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
28
|
+
<%= pb_rails("button", props: { text: "Show More", id: "show-more-button", variant: "link", full_width: true, icon: "chevron-down", icon_right: true }) %>
|
29
|
+
<%= pb_rails("button", props: { text: "Show Less", id: "show-less-button", variant: "link", full_width: true, icon: "chevron-up", icon_right: true }) %>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<script type="text/javascript">
|
33
|
+
document.addEventListener("DOMContentLoaded", () => {
|
34
|
+
const showMoreButton = document.getElementById("show-more-button");
|
35
|
+
const showLessButton = document.getElementById("show-less-button");
|
36
|
+
const overlayContainer = document.getElementById("overlay-container");
|
37
|
+
const underlyingTable = document.getElementById("underlying-table");
|
38
|
+
const outerContainer = document.getElementById("outer-container");
|
39
|
+
|
40
|
+
showLessButton.style.display = "none";
|
41
|
+
underlyingTable.style.height = "200px";
|
42
|
+
|
43
|
+
const showMore = () => {
|
44
|
+
outerContainer.appendChild(underlyingTable);
|
45
|
+
outerContainer.appendChild(showLessButton);
|
46
|
+
showMoreButton.style.display = "none";
|
47
|
+
showLessButton.style.display = "flex";
|
48
|
+
underlyingTable.style.height = "auto";
|
49
|
+
};
|
50
|
+
|
51
|
+
const showLess = () => {
|
52
|
+
overlayContainer.appendChild(underlyingTable);
|
53
|
+
showMoreButton.style.display = "flex";
|
54
|
+
showLessButton.style.display = "none";
|
55
|
+
underlyingTable.style.height = "200px";
|
56
|
+
};
|
57
|
+
|
58
|
+
showMoreButton.addEventListener("click", showMore);
|
59
|
+
showLessButton.addEventListener("click", showLess);
|
60
|
+
});
|
61
|
+
</script>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
/* eslint-disable react/no-multi-comp */
|
2
|
+
import React, { useState } from "react";
|
3
|
+
import { Overlay, Table, Button } from "playbook-ui";
|
4
|
+
|
5
|
+
const TableExample = () => {
|
6
|
+
return (
|
7
|
+
<Table size="sm">
|
8
|
+
<thead>
|
9
|
+
<tr>
|
10
|
+
<th>{"Column 1"}</th>
|
11
|
+
<th>{"Column 2"}</th>
|
12
|
+
<th>{"Column 3"}</th>
|
13
|
+
<th>{"Column 4"}</th>
|
14
|
+
<th>{"Column 5"}</th>
|
15
|
+
</tr>
|
16
|
+
</thead>
|
17
|
+
<tbody>
|
18
|
+
{Array.from({ length: 7 }, (_, index) => (
|
19
|
+
<tr key={index}>
|
20
|
+
{Array.from({ length: 5 }, (_, columnIndex) => (
|
21
|
+
<td key={columnIndex}>{`Value ${columnIndex + 1}`}</td>
|
22
|
+
))}
|
23
|
+
</tr>
|
24
|
+
))}
|
25
|
+
</tbody>
|
26
|
+
</Table>
|
27
|
+
);
|
28
|
+
};
|
29
|
+
|
30
|
+
const OverlayToggle = () => {
|
31
|
+
const [showOverlay, setShowOverlay] = useState(true);
|
32
|
+
|
33
|
+
return (
|
34
|
+
<>
|
35
|
+
{showOverlay ? (
|
36
|
+
<>
|
37
|
+
<Overlay overflow="hidden">
|
38
|
+
<div style={{ height: 200 }}>
|
39
|
+
<TableExample />
|
40
|
+
</div>
|
41
|
+
</Overlay>
|
42
|
+
<Button
|
43
|
+
fullWidth
|
44
|
+
icon="chevron-down"
|
45
|
+
iconRight
|
46
|
+
key="chevron-down"
|
47
|
+
onClick={() => setShowOverlay(false)}
|
48
|
+
text="Show More"
|
49
|
+
variant="link"
|
50
|
+
/>
|
51
|
+
</>
|
52
|
+
) : (
|
53
|
+
<>
|
54
|
+
<TableExample />
|
55
|
+
<Button
|
56
|
+
fullWidth
|
57
|
+
icon="chevron-up"
|
58
|
+
iconRight
|
59
|
+
key="chevron-up"
|
60
|
+
onClick={() => setShowOverlay(true)}
|
61
|
+
text="Show Less"
|
62
|
+
variant="link"
|
63
|
+
/>
|
64
|
+
</>
|
65
|
+
)}
|
66
|
+
</>
|
67
|
+
);
|
68
|
+
};
|
69
|
+
|
70
|
+
export default OverlayToggle;
|
@@ -0,0 +1 @@
|
|
1
|
+
To toggle an overlay, add a button with an event handler. Remove the overlay container to reveal the underlying content. Re-wrap the overlay container to add the overlay back.
|
@@ -2,7 +2,9 @@ examples:
|
|
2
2
|
react:
|
3
3
|
- overlay_default: Default
|
4
4
|
- overlay_multi_directional: Multi-directional
|
5
|
+
- overlay_toggle: Toggle
|
5
6
|
|
6
7
|
rails:
|
7
|
-
|
8
|
-
|
8
|
+
- overlay_default: Default
|
9
|
+
- overlay_multi_directional: Multi-directional
|
10
|
+
- overlay_toggle: Toggle
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
|
3
|
+
import Pagination from '../_pagination'
|
4
|
+
|
5
|
+
const PaginationDefault = (props) => {
|
6
|
+
|
7
|
+
return (
|
8
|
+
<>
|
9
|
+
<Pagination
|
10
|
+
current={1}
|
11
|
+
range={5}
|
12
|
+
total={10}
|
13
|
+
{...props}
|
14
|
+
/>
|
15
|
+
</>
|
16
|
+
)
|
17
|
+
}
|
18
|
+
|
19
|
+
export default PaginationDefault
|
@@ -0,0 +1 @@
|
|
1
|
+
The `range` prop determines how many pages to display in the Pagination component. Regardless of this value, the first two and last two pages are always visible to facilitate navigation to the beginning and end of the pagination. If these always-visible pages fall within the specified range, they are included in the display. If they fall outside the range, the pagination will show additional pages up to the number defined by the `range` prop.
|