playbook_ui 13.34.1.pre.alpha.pbntr258paginationkitforreact3413 → 13.34.1.pre.alpha.play1447addrequiredicons3451
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_badge/_badge.tsx +5 -1
- data/app/pb_kits/playbook/pb_button/_button.tsx +5 -1
- data/app/pb_kits/playbook/pb_button/button.html.erb +1 -1
- data/app/pb_kits/playbook/pb_button/button.rb +4 -0
- data/app/pb_kits/playbook/pb_date_time/dateTime.test.js +2 -2
- data/app/pb_kits/playbook/pb_dialog/_close_icon.tsx +6 -1
- data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +1 -1
- data/app/pb_kits/playbook/pb_dialog/dialog_header.rb +4 -0
- data/app/pb_kits/playbook/pb_pagination/_pagination.scss +8 -23
- data/app/pb_kits/playbook/pb_pagination/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_time/_time.tsx +16 -10
- data/app/pb_kits/playbook/pb_time/time.html.erb +3 -3
- data/app/pb_kits/playbook/pb_time/time.rb +4 -0
- data/app/pb_kits/playbook/utilities/icons/allicons.tsx +59 -0
- data/app/pb_kits/playbook/utilities/icons/clock.svg +9 -0
- data/app/pb_kits/playbook/utilities/icons/spinner.svg +3 -0
- data/app/pb_kits/playbook/utilities/icons/times.svg +3 -0
- data/dist/chunks/_typeahead-zwiADeyt.js +22 -0
- data/dist/chunks/_weekday_stacked-B98BDKdo.js +45 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +9 -11
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +0 -134
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.jsx +0 -19
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change.jsx +0 -62
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change_react.md +0 -1
- data/app/pb_kits/playbook/pb_pagination/docs/data.js +0 -23
- data/app/pb_kits/playbook/pb_pagination/docs/index.js +0 -2
- data/dist/chunks/_typeahead-COUJ88EA.js +0 -22
- data/dist/chunks/_weekday_stacked-Im-AfPJB.js +0 -45
- /data/app/pb_kits/playbook/pb_pagination/docs/{_pagination_default_rails.md → _pagination_default.md} +0 -0
data/lib/playbook/version.rb
CHANGED
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: 13.34.1.pre.alpha.
|
4
|
+
version: 13.34.1.pre.alpha.play1447addrequiredicons3451
|
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: 2024-08-
|
12
|
+
date: 2024-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -1919,15 +1919,9 @@ files:
|
|
1919
1919
|
- app/pb_kits/playbook/pb_overlay/subcomponents/_overlay_percentage.tsx
|
1920
1920
|
- app/pb_kits/playbook/pb_overlay/subcomponents/_overlay_token.tsx
|
1921
1921
|
- app/pb_kits/playbook/pb_pagination/_pagination.scss
|
1922
|
-
- app/pb_kits/playbook/pb_pagination/_pagination.tsx
|
1923
1922
|
- app/pb_kits/playbook/pb_pagination/docs/_pagination_default.html.erb
|
1924
|
-
- app/pb_kits/playbook/pb_pagination/docs/_pagination_default.
|
1925
|
-
- app/pb_kits/playbook/pb_pagination/docs/_pagination_default_rails.md
|
1926
|
-
- app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change.jsx
|
1927
|
-
- app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change_react.md
|
1928
|
-
- app/pb_kits/playbook/pb_pagination/docs/data.js
|
1923
|
+
- app/pb_kits/playbook/pb_pagination/docs/_pagination_default.md
|
1929
1924
|
- app/pb_kits/playbook/pb_pagination/docs/example.yml
|
1930
|
-
- app/pb_kits/playbook/pb_pagination/docs/index.js
|
1931
1925
|
- app/pb_kits/playbook/pb_pagination/pagination.html.erb
|
1932
1926
|
- app/pb_kits/playbook/pb_pagination/pagination.rb
|
1933
1927
|
- app/pb_kits/playbook/pb_passphrase/_passphrase.scss
|
@@ -2979,6 +2973,10 @@ files:
|
|
2979
2973
|
- app/pb_kits/playbook/utilities/flexbox_global_props/_order.scss
|
2980
2974
|
- app/pb_kits/playbook/utilities/globalPropNames.mjs
|
2981
2975
|
- app/pb_kits/playbook/utilities/globalProps.ts
|
2976
|
+
- app/pb_kits/playbook/utilities/icons/allicons.tsx
|
2977
|
+
- app/pb_kits/playbook/utilities/icons/clock.svg
|
2978
|
+
- app/pb_kits/playbook/utilities/icons/spinner.svg
|
2979
|
+
- app/pb_kits/playbook/utilities/icons/times.svg
|
2982
2980
|
- app/pb_kits/playbook/utilities/object.ts
|
2983
2981
|
- app/pb_kits/playbook/utilities/props.ts
|
2984
2982
|
- app/pb_kits/playbook/utilities/test-utils.js
|
@@ -2997,8 +2995,8 @@ files:
|
|
2997
2995
|
- app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
|
2998
2996
|
- app/pb_kits/playbook/utilities/text.ts
|
2999
2997
|
- app/pb_kits/playbook/utilities/validEmojiChecker.ts
|
3000
|
-
- dist/chunks/_typeahead-
|
3001
|
-
- dist/chunks/_weekday_stacked-
|
2998
|
+
- dist/chunks/_typeahead-zwiADeyt.js
|
2999
|
+
- dist/chunks/_weekday_stacked-B98BDKdo.js
|
3002
3000
|
- dist/chunks/lazysizes-B7xYodB-.js
|
3003
3001
|
- dist/chunks/lib-Bf_E03gc.js
|
3004
3002
|
- dist/chunks/pb_form_validation-D0dhqeN2.js
|
@@ -1,134 +0,0 @@
|
|
1
|
-
import React, { useState } from "react";
|
2
|
-
import Icon from '../pb_icon/_icon';
|
3
|
-
|
4
|
-
type PaginationProps = {
|
5
|
-
current?: number;
|
6
|
-
onChange?: (pageNumber: number) => void;
|
7
|
-
range?: number;
|
8
|
-
total?: number;
|
9
|
-
};
|
10
|
-
|
11
|
-
const Pagination = ({
|
12
|
-
current = 1,
|
13
|
-
onChange,
|
14
|
-
range = 5,
|
15
|
-
total = 1,
|
16
|
-
}: PaginationProps) => {
|
17
|
-
const [currentPage, setCurrentPage] = useState(current);
|
18
|
-
|
19
|
-
const handlePageChange = (pageNumber: number) => {
|
20
|
-
if (pageNumber >= 1 && pageNumber <= total) {
|
21
|
-
setCurrentPage(pageNumber);
|
22
|
-
if (onChange) {
|
23
|
-
onChange(pageNumber);
|
24
|
-
}
|
25
|
-
}
|
26
|
-
};
|
27
|
-
|
28
|
-
const renderPageButtons = (): JSX.Element[] => {
|
29
|
-
const buttons: JSX.Element[] = [];
|
30
|
-
|
31
|
-
// Calculate pagination range with let
|
32
|
-
let rangeStart = Math.max(1, currentPage - Math.floor(range / 2));
|
33
|
-
let rangeEnd = Math.min(total, rangeStart + range - 1);
|
34
|
-
|
35
|
-
// Adjust range if it's too short to fit the range
|
36
|
-
if (rangeEnd - rangeStart + 1 < range) {
|
37
|
-
if (rangeStart > 1) {
|
38
|
-
rangeStart = Math.max(1, rangeEnd - range + 1);
|
39
|
-
} else {
|
40
|
-
rangeEnd = Math.min(total, rangeStart + range - 1);
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
// Always display the first page button
|
45
|
-
if (rangeStart > 1) {
|
46
|
-
buttons.push(
|
47
|
-
<button
|
48
|
-
className="pagination-number"
|
49
|
-
key={1}
|
50
|
-
onClick={() => handlePageChange(1)}
|
51
|
-
>
|
52
|
-
1
|
53
|
-
</button>
|
54
|
-
);
|
55
|
-
}
|
56
|
-
|
57
|
-
// Always display the second page button
|
58
|
-
if (rangeStart > 2) {
|
59
|
-
buttons.push(
|
60
|
-
<button
|
61
|
-
className="pagination-number"
|
62
|
-
key={2}
|
63
|
-
onClick={() => handlePageChange(2)}
|
64
|
-
>
|
65
|
-
2
|
66
|
-
</button>
|
67
|
-
);
|
68
|
-
}
|
69
|
-
|
70
|
-
// Display page buttons within the calculated range
|
71
|
-
for (let i = rangeStart; i <= rangeEnd; i++) {
|
72
|
-
buttons.push(
|
73
|
-
<button
|
74
|
-
className={`pagination-number ${i === currentPage ? "active" : ""}`}
|
75
|
-
key={i}
|
76
|
-
onClick={() => handlePageChange(i)}
|
77
|
-
>
|
78
|
-
{i}
|
79
|
-
</button>
|
80
|
-
);
|
81
|
-
}
|
82
|
-
|
83
|
-
// Always display the second-to-last page button
|
84
|
-
if (rangeEnd < total - 1) {
|
85
|
-
buttons.push(
|
86
|
-
<button
|
87
|
-
className={`pagination-number ${total - 1 === currentPage ? "active" : ""}`}
|
88
|
-
key={total - 1}
|
89
|
-
onClick={() => handlePageChange(total - 1)}
|
90
|
-
>
|
91
|
-
{total - 1}
|
92
|
-
</button>
|
93
|
-
);
|
94
|
-
}
|
95
|
-
|
96
|
-
// Always display the last page button
|
97
|
-
if (rangeEnd < total) {
|
98
|
-
buttons.push(
|
99
|
-
<button
|
100
|
-
className={`pagination-number ${total === currentPage ? "active" : ""}`}
|
101
|
-
key={total}
|
102
|
-
onClick={() => handlePageChange(total)}
|
103
|
-
>
|
104
|
-
{total}
|
105
|
-
</button>
|
106
|
-
);
|
107
|
-
}
|
108
|
-
|
109
|
-
return buttons;
|
110
|
-
};
|
111
|
-
|
112
|
-
|
113
|
-
return (
|
114
|
-
<div className="pb_pagination">
|
115
|
-
<button
|
116
|
-
className="pagination-left"
|
117
|
-
disabled={currentPage === 1}
|
118
|
-
onClick={() => handlePageChange(currentPage - 1)}
|
119
|
-
>
|
120
|
-
<Icon icon="chevron-left" />
|
121
|
-
</button>
|
122
|
-
{renderPageButtons()}
|
123
|
-
<button
|
124
|
-
className="pagination-right"
|
125
|
-
disabled={currentPage === total}
|
126
|
-
onClick={() => handlePageChange(currentPage + 1)}
|
127
|
-
>
|
128
|
-
<Icon icon="chevron-right" />
|
129
|
-
</button>
|
130
|
-
</div>
|
131
|
-
);
|
132
|
-
};
|
133
|
-
|
134
|
-
export default Pagination;
|
@@ -1,19 +0,0 @@
|
|
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
|
@@ -1,62 +0,0 @@
|
|
1
|
-
import React, { useState } from "react";
|
2
|
-
import { Table, Pagination } from 'playbook-ui'
|
3
|
-
|
4
|
-
|
5
|
-
import { data } from "./data";
|
6
|
-
|
7
|
-
const PaginationPageChange = (props) => {
|
8
|
-
|
9
|
-
const [activePage, setActivePage] = useState(1);
|
10
|
-
const rowsPerPage = 3;
|
11
|
-
const totalPages = Math.ceil(data.length / rowsPerPage);
|
12
|
-
|
13
|
-
const onPageChange = (pageNumber) => {
|
14
|
-
setActivePage(pageNumber);
|
15
|
-
};
|
16
|
-
|
17
|
-
const currentData = data.slice(
|
18
|
-
(activePage - 1) * rowsPerPage,
|
19
|
-
activePage * rowsPerPage
|
20
|
-
);
|
21
|
-
|
22
|
-
|
23
|
-
return (
|
24
|
-
<div className="App">
|
25
|
-
<Table
|
26
|
-
marginBottom="xs"
|
27
|
-
responsive="none"
|
28
|
-
size="sm"
|
29
|
-
{...props}
|
30
|
-
>
|
31
|
-
<Table.Head>
|
32
|
-
<Table.Row>
|
33
|
-
<Table.Header>{"Column 1"}</Table.Header>
|
34
|
-
<Table.Header>{"Column 2"}</Table.Header>
|
35
|
-
<Table.Header>{"Column 3"}</Table.Header>
|
36
|
-
<Table.Header>{"Column 4"}</Table.Header>
|
37
|
-
<Table.Header>{"Column 5"}</Table.Header>
|
38
|
-
</Table.Row>
|
39
|
-
</Table.Head>
|
40
|
-
<Table.Body>
|
41
|
-
{currentData.map((row, index) => (
|
42
|
-
<Table.Row key={index}>
|
43
|
-
{row.map((cell, cellIndex) => (
|
44
|
-
<Table.Cell key={cellIndex}>{cell}</Table.Cell>
|
45
|
-
))}
|
46
|
-
</Table.Row>
|
47
|
-
))}
|
48
|
-
</Table.Body>
|
49
|
-
</Table>
|
50
|
-
|
51
|
-
<Pagination
|
52
|
-
current={1}
|
53
|
-
onChange={onPageChange}
|
54
|
-
range={5}
|
55
|
-
total={totalPages}
|
56
|
-
{...props}
|
57
|
-
/>
|
58
|
-
</div>
|
59
|
-
)
|
60
|
-
}
|
61
|
-
|
62
|
-
export default PaginationPageChange
|
@@ -1 +0,0 @@
|
|
1
|
-
You can use the `onPageChange` prop to control the data of your table. This prop is callback function that will allow you control the state.
|
@@ -1,23 +0,0 @@
|
|
1
|
-
export const data = [
|
2
|
-
["Value 1", "Value 2", "Value 3", "Value 4", "Value 5"],
|
3
|
-
["Value 6", "Value 7", "Value 8", "Value 9", "Value 10"],
|
4
|
-
["Value 11", "Value 12", "Value 13", "Value 14", "Value 15"],
|
5
|
-
["Value 16", "Value 17", "Value 18", "Value 19", "Value 20"],
|
6
|
-
["Value 21", "Value 22", "Value 23", "Value 24", "Value 25"],
|
7
|
-
["Value 26", "Value 27", "Value 28", "Value 29", "Value 30"],
|
8
|
-
["Value 31", "Value 32", "Value 33", "Value 34", "Value 35"],
|
9
|
-
["Value 36", "Value 37", "Value 38", "Value 39", "Value 40"],
|
10
|
-
["Value 41", "Value 42", "Value 43", "Value 44", "Value 45"],
|
11
|
-
["Value 46", "Value 47", "Value 48", "Value 49", "Value 50"],
|
12
|
-
["Value 51", "Value 52", "Value 53", "Value 54", "Value 55"],
|
13
|
-
["Value 56", "Value 57", "Value 58", "Value 59", "Value 60"],
|
14
|
-
["Value 61", "Value 62", "Value 63", "Value 64", "Value 65"],
|
15
|
-
["Value 66", "Value 67", "Value 68", "Value 69", "Value 70"],
|
16
|
-
["Value 71", "Value 72", "Value 73", "Value 74", "Value 75"],
|
17
|
-
["Value 76", "Value 77", "Value 78", "Value 79", "Value 80"],
|
18
|
-
["Value 81", "Value 82", "Value 83", "Value 84", "Value 85"],
|
19
|
-
["Value 86", "Value 87", "Value 88", "Value 89", "Value 90"],
|
20
|
-
["Value 91", "Value 92", "Value 93", "Value 94", "Value 95"],
|
21
|
-
["Value 96", "Value 97", "Value 98", "Value 99", "Value 100"],
|
22
|
-
];
|
23
|
-
|