playbook_ui 11.16.0.pre.alpha.paginationrails1 → 11.16.0.pre.alpha.reactupgrade1

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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +0 -2
  3. data/app/pb_kits/playbook/data/menu.yml +0 -1
  4. data/app/pb_kits/playbook/index.js +2 -2
  5. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +111 -0
  6. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +151 -0
  7. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.html.erb +21 -9
  8. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +47 -7
  9. data/app/pb_kits/playbook/pb_dashboard/{pbChartsDarkTheme.ts → pbChartsDarkTheme.js} +21 -6
  10. data/app/pb_kits/playbook/pb_dashboard/{pbChartsLightTheme.ts → pbChartsLightTheme.js} +21 -6
  11. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +112 -0
  12. data/app/pb_kits/playbook/pb_gauge/_gauge.scss +0 -4
  13. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.html.erb +1 -1
  14. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_complex.jsx +8 -8
  15. data/app/pb_kits/playbook/pb_gauge/gauge.html.erb +11 -1
  16. data/app/pb_kits/playbook/pb_gauge/gauge.rb +8 -3
  17. data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +113 -0
  18. data/app/pb_kits/playbook/pb_popover/_popover.jsx +120 -130
  19. data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +1 -1
  20. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.jsx +79 -0
  21. data/app/pb_kits/playbook/pb_treemap_chart/docs/_treemap_chart_tooltip.jsx +1 -1
  22. data/app/pb_kits/playbook/playbook-doc.js +0 -2
  23. data/app/pb_kits/playbook/playbook-rails-react-bindings.js +0 -4
  24. data/app/pb_kits/playbook/playbook-rails.js +4 -0
  25. data/app/pb_kits/playbook/plugins/pb_chart.js +322 -0
  26. data/lib/playbook/kit_base.rb +0 -2
  27. data/lib/playbook/version.rb +2 -2
  28. data/lib/playbook.rb +0 -1
  29. metadata +10 -36
  30. data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.tsx +0 -145
  31. data/app/pb_kits/playbook/pb_circle_chart/ChartsTypes.ts +0 -2
  32. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +0 -207
  33. data/app/pb_kits/playbook/pb_dashboard/pbChartsColorsHelper.ts +0 -16
  34. data/app/pb_kits/playbook/pb_dashboard/themeTypes.ts +0 -16
  35. data/app/pb_kits/playbook/pb_gauge/_gauge.tsx +0 -202
  36. data/app/pb_kits/playbook/pb_line_graph/_line_graph.tsx +0 -148
  37. data/app/pb_kits/playbook/pb_pagination/_pagination.scss +0 -68
  38. data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +0 -41
  39. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.html.erb +0 -28
  40. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.jsx +0 -12
  41. data/app/pb_kits/playbook/pb_pagination/docs/example.yml +0 -9
  42. data/app/pb_kits/playbook/pb_pagination/docs/index.js +0 -1
  43. data/app/pb_kits/playbook/pb_pagination/pagination.html.erb +0 -7
  44. data/app/pb_kits/playbook/pb_pagination/pagination.rb +0 -18
  45. data/app/pb_kits/playbook/pb_pagination/pagination.test.jsx +0 -17
  46. data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +0 -111
  47. data/lib/playbook/pagination_renderer.rb +0 -41
@@ -1,207 +0,0 @@
1
- import React, { useEffect, useState } from "react";
2
- import classnames from "classnames";
3
- import HighchartsReact from "highcharts-react-official";
4
- import highchartsMore from "highcharts/highcharts-more";
5
-
6
- import Highcharts from "highcharts";
7
-
8
- import { highchartsTheme } from "../pb_dashboard/pbChartsLightTheme";
9
- import { highchartsDarkTheme } from "../pb_dashboard/pbChartsDarkTheme";
10
- import mapColors from "../pb_dashboard/pbChartsColorsHelper";
11
- import { globalProps } from "../utilities/globalProps";
12
- import { buildAriaProps, buildDataProps } from "../utilities/props";
13
-
14
- type CircleChartProps = {
15
- align?: "left" | "right" | "center";
16
- aria: { [key: string]: string };
17
- chartData?: [];
18
- children?: Node;
19
- className?: string;
20
- colors?: string[];
21
- dark?: Boolean;
22
- data?: Object;
23
- dataLabelHtml?: string;
24
- dataLabels?: boolean;
25
- height?: string;
26
- id?: string;
27
- innerSize?: "sm" | "md" | "lg" | "none";
28
- legend?: boolean;
29
- maxPointSize?: number;
30
- minPointSize?: number;
31
- rounded?: boolean;
32
- startAngle?: number;
33
- style?: string;
34
- title?: string;
35
- useHtml?: boolean;
36
- zMin?: number;
37
- layout?: "horizontal" | "vertical" | "proximate";
38
- verticalAlign?: "top" | "middle" | "bottom";
39
- x?: number;
40
- y?: number;
41
- borderColor?: string;
42
- borderWidth?: number;
43
- };
44
-
45
- // Adjust Circle Chart Block Kit Dimensions to Match the Chart for Centering
46
- const alignBlockElement = (event: any) => {
47
- const itemToMove = document.querySelector(
48
- `#wrapper-circle-chart-${event.target.renderTo.id} .pb-circle-chart-block`
49
- ) as HTMLElement;
50
- const chartContainer = document.querySelector(`#${event.target.renderTo.id}`);
51
- if (itemToMove !== null) {
52
- itemToMove.style.height = `${event.target.chartHeight}px`;
53
- itemToMove.style.width = `${event.target.chartWidth}px`;
54
- chartContainer.firstChild.before(itemToMove);
55
- }
56
- };
57
-
58
- const CircleChart = ({
59
- align = "center",
60
- aria = {},
61
- rounded = false,
62
- borderColor = rounded ? null : "",
63
- borderWidth = rounded ? 20 : null,
64
- chartData,
65
- children,
66
- className,
67
- colors = [],
68
- dark = false,
69
- data = {},
70
- dataLabelHtml = "<div>{point.name}</div>",
71
- dataLabels = false,
72
- height,
73
- id,
74
- innerSize = "md",
75
- legend = false,
76
- maxPointSize = null,
77
- minPointSize = null,
78
- startAngle = null,
79
- style = "pie",
80
- title,
81
- useHtml = false,
82
- zMin = null,
83
- layout = "horizontal",
84
- verticalAlign = "bottom",
85
- x = 0,
86
- y = 0,
87
- ...props
88
- }: CircleChartProps) => {
89
- const ariaProps = buildAriaProps(aria);
90
- const dataProps = buildDataProps(data);
91
- highchartsMore(Highcharts);
92
-
93
- const setupTheme = () => {
94
- dark
95
- ? Highcharts.setOptions(highchartsDarkTheme)
96
- : Highcharts.setOptions(highchartsTheme);
97
- };
98
- setupTheme();
99
-
100
- Highcharts.setOptions({
101
- tooltip: {
102
- headerFormat: null,
103
- pointFormat:
104
- '<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: ' +
105
- "<b>{point.y}</b>",
106
- useHTML: useHtml,
107
- },
108
- });
109
-
110
- const innerSizes = { sm: "35%", md: "50%", lg: "85%", none: "0%" };
111
- const innerSizeFormat = (size: "sm" | "md" | "lg" | "none") =>
112
- innerSizes[size];
113
-
114
-
115
- const [options, setOptions] = useState({});
116
-
117
- useEffect(() => {
118
- const formattedChartData = chartData.map((obj: any) => {
119
- obj.y = obj.value;
120
- delete obj.value;
121
- return obj;
122
- });
123
-
124
- const staticOptions = {
125
- title: {
126
- text: title,
127
- },
128
- chart: {
129
- height: height,
130
- type: style,
131
- events: {
132
- render: (event: any) => alignBlockElement(event),
133
- redraw: (event: any) => alignBlockElement(event),
134
- },
135
- },
136
-
137
- legend: {
138
- align: align,
139
- verticalAlign: verticalAlign,
140
- layout: layout,
141
- x: x,
142
- y: y,
143
- },
144
- plotOptions: {
145
- pie: {
146
- colors:
147
- colors.length > 0 ? mapColors(colors) : highchartsTheme.colors,
148
- dataLabels: {
149
- enabled: dataLabels,
150
- connectorShape: "straight",
151
- connectorWidth: 3,
152
- format: dataLabelHtml,
153
- },
154
- showInLegend: legend,
155
- },
156
- },
157
- series: [
158
- {
159
- minPointSize: minPointSize,
160
- maxPointSize: maxPointSize,
161
- innerSize: borderWidth == 20 ? "100%" : innerSizeFormat(innerSize),
162
- data: formattedChartData,
163
- zMin: zMin,
164
- startAngle: startAngle,
165
- borderWidth: borderWidth,
166
- borderColor: borderColor,
167
- },
168
- ],
169
- credits: false,
170
- };
171
- setOptions({ ...staticOptions });
172
- }, [chartData]);
173
-
174
-
175
- return (
176
- <>
177
- {children ? (
178
- <div id={`wrapper-circle-chart-${id}`}>
179
- <HighchartsReact
180
- containerProps={{
181
- className: classnames("pb_circle_chart", globalProps(props)),
182
- id: id,
183
- ...ariaProps,
184
- ...dataProps,
185
- }}
186
- highcharts={Highcharts}
187
- options={options}
188
- />
189
- <div className="pb-circle-chart-block">{children}</div>
190
- </div>
191
- ) : (
192
- <HighchartsReact
193
- containerProps={{
194
- className: classnames("pb_circle_chart", globalProps(props)),
195
- id: id,
196
- ...ariaProps,
197
- ...dataProps,
198
- }}
199
- highcharts={Highcharts}
200
- options={options}
201
- />
202
- )}
203
- </>
204
- );
205
- };
206
-
207
- export default CircleChart;
@@ -1,16 +0,0 @@
1
- import colors from "../tokens/exports/_colors.scss";
2
-
3
-
4
- // Map Data Color String Props to our SCSS Variables
5
- const mapColors = (array: string[]) => {
6
- const regex = /(data)\-[1-8]/; //eslint-disable-line
7
-
8
- const newArray = array.map((item) => {
9
- return regex.test(item)
10
- ? `${colors[`data_${item[item.length - 1]}`]}`
11
- : item;
12
- });
13
- return newArray;
14
- };
15
-
16
- export default mapColors
@@ -1,16 +0,0 @@
1
- export type ThemeProps = {
2
- lang?: {[key: string]: string}
3
- credits?: {[key: string]: boolean}
4
- colors?: string[]
5
- chart?: {[key: string]: any}
6
- title?: {[key: string]: string | {}}
7
- subtitle?: {[key: string]: string | {};}
8
- xAxis?: {[key: string]: any;}
9
- yAxis?: {[key: string]: any;}
10
- legend?: {[key: string]: string | {};}
11
- labels?: {[key: string]: {};}
12
- tooltip?: {[key: string]: any;}
13
- pane?: {[key: string]: {};}
14
- plotOptions?: {[key: string]: any;}
15
- colorKey?: string
16
- }
@@ -1,202 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import classnames from "classnames";
3
- import HighchartsReact from "highcharts-react-official";
4
- import Highcharts from "highcharts";
5
- import { highchartsTheme } from "../pb_dashboard/pbChartsLightTheme";
6
- import { highchartsDarkTheme } from "../pb_dashboard/pbChartsDarkTheme";
7
- import mapColors from "../pb_dashboard/pbChartsColorsHelper";
8
- import highchartsMore from "highcharts/highcharts-more";
9
- import solidGauge from "highcharts/modules/solid-gauge";
10
- import defaultColors from "../tokens/exports/_colors.scss";
11
- import typography from "../tokens/exports/_typography.scss";
12
-
13
- import { buildAriaProps, buildCss, buildDataProps } from "../utilities/props";
14
- import { globalProps } from "../utilities/globalProps";
15
-
16
- type GaugeProps = {
17
- aria: { [key: string]: string };
18
- className?: string;
19
- chartData?: { name: string; value: number[] | number }[];
20
- dark?: Boolean;
21
- data?: { [key: string]: string };
22
- disableAnimation?: boolean;
23
- fullCircle?: boolean;
24
- height?: string;
25
- id?: string;
26
- max?: number;
27
- min?: number;
28
- prefix?: string;
29
- showLabels?: boolean;
30
- style?: string;
31
- suffix?: string;
32
- title?: string;
33
- tooltipHtml?: string;
34
- colors: string[];
35
- minorTickInterval: any;
36
- circumference: number[];
37
- };
38
-
39
- const Gauge = ({
40
- aria = {},
41
- className,
42
- chartData,
43
- dark = false,
44
- data = {},
45
- disableAnimation = false,
46
- fullCircle = false,
47
- height = null,
48
- id,
49
- max = 100,
50
- min = 0,
51
- prefix = "",
52
- showLabels = false,
53
- style = "solidgauge",
54
- suffix = "",
55
- title = "",
56
- tooltipHtml = '<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: ' +
57
- "<b>{point.y}</b>",
58
- colors = [],
59
- minorTickInterval = null,
60
- circumference = fullCircle ? [0, 360] : [-100, 100],
61
- ...props
62
- }: GaugeProps) => {
63
- const ariaProps = buildAriaProps(aria);
64
- const dataProps = buildDataProps(data);
65
- highchartsMore(Highcharts);
66
- solidGauge(Highcharts);
67
- const setupTheme = () => {
68
- dark
69
- ? Highcharts.setOptions(highchartsDarkTheme)
70
- : Highcharts.setOptions(highchartsTheme);
71
- };
72
- setupTheme();
73
-
74
- //set tooltip directly to prevent being overriden by Highcharts defaults
75
- Highcharts.setOptions({
76
- tooltip: {
77
- pointFormat: tooltipHtml,
78
- followPointer: true,
79
- },
80
- });
81
-
82
- const css = buildCss({
83
- pb_gauge_kit: true,
84
- });
85
-
86
- const [options, setOptions] = useState({});
87
-
88
- useEffect(() => {
89
- const formattedChartData = chartData.map((obj: any) => {
90
- obj.y = obj.value;
91
- delete obj.value;
92
- return obj;
93
- });
94
-
95
- const staticOptions = {
96
- chart: {
97
- events: {
98
- load() {
99
- setTimeout(this.reflow.bind(this), 0);
100
- },
101
- },
102
- type: style,
103
- height: height,
104
- },
105
- title: {
106
- text: title,
107
- },
108
- yAxis: {
109
- min: min,
110
- max: max,
111
- lineWidth: 0,
112
- tickWidth: 0,
113
- minorTickInterval: minorTickInterval,
114
- tickAmount: 2,
115
- tickPositions: [min, max],
116
- labels: {
117
- y: 26,
118
- enabled: showLabels,
119
- },
120
- },
121
- credits: false,
122
- series: [
123
- {
124
- data: formattedChartData,
125
- },
126
- ],
127
- pane: {
128
- center: ["50%", "50%"],
129
- size: "90%",
130
- startAngle: circumference[0],
131
- endAngle: circumference[1],
132
- background: {
133
- borderWidth: 20,
134
- innerRadius: "90%",
135
- outerRadius: "90%",
136
- shape: "arc",
137
- className: "gauge-pane",
138
- },
139
- },
140
- colors:
141
- colors !== undefined && colors.length > 0
142
- ? mapColors(colors)
143
- : highchartsTheme.colors,
144
- plotOptions: {
145
- series: {
146
- animation: !disableAnimation,
147
- },
148
- solidgauge: {
149
- borderColor:
150
- colors !== undefined && colors.length === 1
151
- ? mapColors(colors).join()
152
- : highchartsTheme.colors[0],
153
- borderWidth: 20,
154
- radius: 90,
155
- innerRadius: "90%",
156
- dataLabels: {
157
- borderWidth: 0,
158
- color: defaultColors.text_lt_default,
159
- enabled: true,
160
- format:
161
- `<span class="prefix">${prefix}</span>` +
162
- '<span class="fix">{y:,f}</span>' +
163
- `<span class="suffix">${suffix}</span>`,
164
- style: {
165
- fontFamily: typography.font_family_base,
166
- fontWeight: typography.regular,
167
- fontSize: typography.heading_2,
168
- },
169
- y: -26,
170
- },
171
- },
172
- },
173
- };
174
-
175
- setOptions({ ...staticOptions });
176
-
177
- if (document.querySelector(".prefix")) {
178
- document.querySelectorAll(".prefix").forEach((prefix) => {
179
- prefix.setAttribute("y", "28");
180
- });
181
- document
182
- .querySelectorAll(".fix")
183
- .forEach((fix) => fix.setAttribute("y", "38"));
184
- }
185
-
186
- }, [chartData]);
187
-
188
- return (
189
- <HighchartsReact
190
- containerProps={{
191
- className: classnames(css, globalProps(props)),
192
- id: id,
193
- ...ariaProps,
194
- ...dataProps,
195
- }}
196
- highcharts={Highcharts}
197
- options={options}
198
- />
199
- );
200
- };
201
-
202
- export default Gauge;
@@ -1,148 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import classnames from "classnames";
3
- import { globalProps } from "../utilities/globalProps";
4
- import { buildAriaProps, buildDataProps } from "../utilities/props";
5
-
6
- import HighchartsReact from "highcharts-react-official";
7
- import Highcharts from "highcharts";
8
- import { highchartsTheme } from "../pb_dashboard/pbChartsLightTheme";
9
- import { highchartsDarkTheme } from "../pb_dashboard/pbChartsDarkTheme";
10
- import mapColors from "../pb_dashboard/pbChartsColorsHelper";
11
-
12
- type LineGraphProps = {
13
- align?: "left" | "right" | "center";
14
- axisTitle?: string;
15
- dark?: Boolean;
16
- xAxisCategories: [];
17
- yAxisMin: number;
18
- yAxisMax: number;
19
- className?: string;
20
- chartData: {
21
- name: string;
22
- data: number[];
23
- }[];
24
- gradient?: boolean;
25
- id: string;
26
- pointStart: number;
27
- subTitle?: string;
28
- title: string;
29
- type?: string;
30
- legend?: boolean;
31
- toggleLegendClick?: boolean;
32
- height?: string;
33
- colors: string[];
34
- layout?: "horizontal" | "vertical" | "proximate";
35
- verticalAlign?: "top" | "middle" | "bottom";
36
- x?: number;
37
- y?: number;
38
- aria?: { [key: string]: string };
39
- data?: { [key: string]: string };
40
- };
41
-
42
- const LineGraph = ({
43
- aria = {},
44
- data = {},
45
- align = "center",
46
- className = "pb_bar_graph",
47
- dark = false,
48
- gradient = false,
49
- type = "line",
50
- id,
51
- legend = false,
52
- toggleLegendClick = true,
53
- layout = "horizontal",
54
- verticalAlign = "bottom",
55
- x = 0,
56
- y = 0,
57
- axisTitle,
58
- xAxisCategories,
59
- yAxisMin,
60
- yAxisMax,
61
- chartData,
62
- pointStart,
63
- subTitle,
64
- title,
65
- height,
66
- colors = [],
67
- ...props
68
- }: LineGraphProps) => {
69
- const ariaProps = buildAriaProps(aria);
70
- const dataProps = buildDataProps(data);
71
- const setupTheme = () => {
72
- dark
73
- ? Highcharts.setOptions(highchartsDarkTheme)
74
- : Highcharts.setOptions(highchartsTheme);
75
- };
76
- setupTheme();
77
-
78
- const staticOptions = {
79
- title: {
80
- text: title,
81
- },
82
- chart: {
83
- height: height,
84
- type: type,
85
- },
86
- subtitle: {
87
- text: subTitle,
88
- },
89
- yAxis: {
90
- min: yAxisMin,
91
- max: yAxisMax,
92
- title: {
93
- text: axisTitle,
94
- },
95
- },
96
- xAxis: {
97
- categories: xAxisCategories,
98
- },
99
- legend: {
100
- enabled: legend,
101
- align: align,
102
- verticalAlign: verticalAlign,
103
- layout: layout,
104
- x: x,
105
- y: y,
106
- },
107
- colors:
108
- colors !== undefined && colors.length > 0
109
- ? mapColors(colors)
110
- : highchartsTheme.colors,
111
- plotOptions: {
112
- series: {
113
- pointStart: pointStart,
114
- events: {},
115
- dataLabels: {
116
- enabled: false,
117
- },
118
- },
119
- },
120
- series: chartData,
121
- credits: false,
122
- };
123
-
124
- if (!toggleLegendClick) {
125
- staticOptions.plotOptions.series.events = { legendItemClick: () => false };
126
- }
127
-
128
- const [options, setOptions] = useState({});
129
-
130
- useEffect(() => {
131
- setOptions({ ...staticOptions });
132
- }, [chartData]);
133
-
134
- return (
135
- <HighchartsReact
136
- containerProps={{
137
- className: classnames(globalProps(props), className),
138
- id: id,
139
- ...ariaProps,
140
- ...dataProps,
141
- }}
142
- highcharts={Highcharts}
143
- options={options}
144
- />
145
- );
146
- };
147
-
148
- export default LineGraph;
@@ -1,68 +0,0 @@
1
- @import "tokens/colors";
2
- @import "tokens/typography";
3
- @import "tokens/border_radius";
4
- @import "tokens/shadows";
5
-
6
- .pb_pagination {
7
- display: inline-block;
8
- border-radius: $border_rad_light;
9
- border: 1px solid $border_light;
10
- background-color: $white;
11
- padding: 3px 0px 3.6px 0px;
12
- li {
13
- display: inline;
14
- > a, li > span {
15
- padding: 7px 13px;
16
- text-decoration: none;
17
- margin-left: -1px;
18
- border: 0 !important;
19
- }}
20
- li:first-child > a, li:first-child > span {
21
- padding: 7px 13px;
22
- margin-left: .5px;
23
- border-right: 1px solid $border_light !important;
24
- z-index: 2;
25
- }
26
- li:last-child > a, li:last-child > span {
27
- padding: 7px 13px;
28
- margin-right: .5px;
29
- border-left: 1px solid $border_light !important;
30
- z-index: 2;
31
- }
32
- a {
33
- color: $text_lt_default !important;
34
- font-size: $text_small;
35
- font-weight: $regular;
36
- border: none;
37
-
38
- &:hover {
39
- background-color: $active_light;
40
- color: $primary !important;
41
- border-radius: $border_rad_light;
42
- }
43
-
44
- &:focus {
45
- outline: 1px solid $primary !important;
46
- border-radius: $border_rad_light;
47
- outline-offset: -1px;
48
- }
49
- }
50
- .active > span {
51
- background-color: $primary !important;
52
- border-radius: $border_rad_light;
53
- color: #fff;
54
- padding: 7px 10px;
55
- border: 0 !important;
56
- text-decoration: none;
57
- font-weight: $bold;
58
- font-size: $text_small;
59
-
60
- &:hover {
61
- box-shadow: $shadow_deeper;
62
- }
63
- }
64
- .disabled > span {
65
- padding: 7px 10px;
66
- font-size: $text_small;
67
- }
68
- }
@@ -1,41 +0,0 @@
1
-
2
-
3
- /* @flow */
4
-
5
- import React from 'react'
6
- import classnames from 'classnames'
7
- import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
8
- import { globalProps } from '../utilities/globalProps'
9
-
10
- type PaginationProps = {
11
- aria?: { [key: string]: string },
12
- className?: string,
13
- data?: { [key: string]: string },
14
- id?: string,
15
- }
16
-
17
- const Pagination = (props: PaginationProps) => {
18
- const {
19
- aria = {},
20
- className,
21
- data = {},
22
- id,
23
- } = props
24
-
25
- const ariaProps = buildAriaProps(aria)
26
- const dataProps = buildDataProps(data)
27
- const classes = classnames(buildCss('pb_pagination'), globalProps(props), className)
28
-
29
- return (
30
- <div
31
- {...ariaProps}
32
- {...dataProps}
33
- className={classes}
34
- id={id}
35
- >
36
- {className}
37
- </div>
38
- )
39
- }
40
-
41
- export default Pagination