playbook_ui 14.0.0.pre.alpha.updateviewcomponentgem3527 → 14.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +2 -5
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +20 -24
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +12 -17
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +1 -86
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +1 -5
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +0 -30
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_avatar/_avatar.scss +30 -0
- data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +1 -19
- data/app/pb_kits/playbook/pb_avatar/avatar.rb +1 -44
- data/app/pb_kits/playbook/pb_avatar/avatar.test.js +0 -17
- data/app/pb_kits/playbook/pb_date_picker/docs/_description.md +1 -3
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
- data/app/pb_kits/playbook/pb_icon/_icon.tsx +0 -3
- data/app/pb_kits/playbook/pb_icon/icon.rb +0 -2
- data/app/pb_kits/playbook/pb_icon_circle/_icon_circle.tsx +1 -2
- data/app/pb_kits/playbook/pb_icon_circle/icon_circle.rb +2 -2
- data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.scss +11 -0
- data/app/pb_kits/playbook/pb_icon_stat_value/_icon_stat_value.tsx +2 -3
- data/app/pb_kits/playbook/pb_icon_stat_value/docs/_icon_stat_value_color.html.erb +0 -1
- data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +2 -2
- data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.test.js +4 -5
- data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +1 -1
- data/app/pb_kits/playbook/pb_online_status/_online_status.scss +5 -52
- data/app/pb_kits/playbook/pb_online_status/_online_status.tsx +1 -6
- data/app/pb_kits/playbook/pb_online_status/_online_status_mixins.scss +32 -0
- data/app/pb_kits/playbook/pb_online_status/docs/example.yml +2 -6
- data/app/pb_kits/playbook/pb_online_status/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_online_status/online_status.rb +1 -11
- data/app/pb_kits/playbook/pb_overlay/docs/example.yml +2 -4
- data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_star_rating/_star_rating.scss +6 -83
- data/app/pb_kits/playbook/pb_star_rating/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_star_rating/index.js +4 -73
- data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +1 -1
- data/app/pb_kits/playbook/pb_star_rating/star_rating.rb +2 -2
- data/app/pb_kits/playbook/pb_star_rating/stars/utils.tsx +1 -5
- data/app/pb_kits/playbook/pb_star_rating/subcomponents/_star_rating_interactive.tsx +21 -50
- data/app/pb_kits/playbook/pb_table/_table.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/index.ts +4 -4
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_cell.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_head.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_header.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/table.test.js +0 -2
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +27 -45
- data/app/pb_kits/playbook/pb_textarea/index.ts +3 -3
- data/app/pb_kits/playbook/pb_time/_time.tsx +3 -3
- data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +1 -1
- data/app/pb_kits/playbook/pb_timeline/_item.tsx +1 -1
- data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
- data/app/pb_kits/playbook/pb_title_detail/_title_detail.tsx +10 -10
- data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +1 -1
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +2 -2
- data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +2 -1
- data/app/pb_kits/playbook/pb_treemap_chart/treemapChart.test.js +0 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +2 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +0 -1
- data/app/pb_kits/playbook/pb_user/_user.tsx +1 -1
- data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +6 -6
- data/app/pb_kits/playbook/pb_user_badge/badges/million-dollar.tsx +235 -236
- data/app/pb_kits/playbook/pb_user_badge/badges/veteran.tsx +1 -1
- data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +63 -68
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +1 -1
- data/app/pb_kits/playbook/utilities/_positioning.scss +15 -26
- data/dist/chunks/_typeahead-COUJ88EA.js +22 -0
- data/dist/chunks/_weekday_stacked-BAkwel5p.js +45 -0
- data/dist/chunks/{lib-BE0Z3F7x.js → lib-Bf_E03gc.js} +1 -1
- data/dist/chunks/{pb_form_validation-TzZQ0Flx.js → pb_form_validation-D0dhqeN2.js} +1 -1
- 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 +2 -2
- metadata +12 -21
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.jsx +0 -67
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_responsive.md +0 -1
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_no_border.html.erb +0 -1
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_no_border.jsx +0 -14
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_size.html.erb +0 -3
- data/app/pb_kits/playbook/pb_online_status/docs/_online_status_size.jsx +0 -25
- data/app/pb_kits/playbook/pb_online_status/online_status.test.js +0 -31
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.html.erb +0 -61
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.jsx +0 -70
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_toggle.md +0 -1
- data/dist/chunks/_typeahead-D-4y9pbv.js +0 -22
- data/dist/chunks/_weekday_stacked-D5SswkOC.js +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e0b8c603b0b4f4c71fd994ae5fb34628441b8b6d79e7b0995d52ee6eb2244cd1
|
4
|
+
data.tar.gz: 66abcf68e967f3e108752d9986ecbe171cf2e6519e004da35969c7c063c3a21b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b1946c68440d581a88ab423422ee820721f90654e8102a007b9cf25df953fa7d7128e3a1eb5a6a053d651c568c5e2b341fccf6ef01a600f4c55041ec3fc5ead
|
7
|
+
data.tar.gz: 71c868e78a015e782f2631bf95c87b182a805b659d35e1b6df4a41ce264a9ec58ffbe05393389b421919cd23f5f6f5b34d1a020784c3fcef1845cf8c6b2008c0
|
@@ -21,7 +21,6 @@ type TableHeaderCellProps = {
|
|
21
21
|
handleExpandOrCollapse?: () => void
|
22
22
|
header?: Header<GenericObject, unknown>
|
23
23
|
headerChildren?: React.ReactNode | React.ReactNode[]
|
24
|
-
isPinnedLeft?: boolean
|
25
24
|
loading?: boolean
|
26
25
|
sortIcon?: string | string[]
|
27
26
|
} & GlobalProps
|
@@ -32,11 +31,10 @@ export const TableHeaderCell = ({
|
|
32
31
|
handleExpandOrCollapse,
|
33
32
|
header,
|
34
33
|
headerChildren,
|
35
|
-
isPinnedLeft = false,
|
36
34
|
loading,
|
37
35
|
sortIcon,
|
38
36
|
}: TableHeaderCellProps) => {
|
39
|
-
const { sortControl
|
37
|
+
const { sortControl } = useContext(AdvancedTableContext)
|
40
38
|
|
41
39
|
const toggleSortButton = (event: React.SyntheticEvent) => {
|
42
40
|
if (sortControl) {
|
@@ -51,8 +49,7 @@ export const TableHeaderCell = ({
|
|
51
49
|
|
52
50
|
const cellClassName = classnames("table-header-cells",
|
53
51
|
`${isChrome() ? "chrome-styles" : ""}`,
|
54
|
-
`${enableSorting ? "table-header-cells-active" : ""}
|
55
|
-
{ 'pinned-left': responsive === "scroll" && isPinnedLeft },
|
52
|
+
`${enableSorting ? "table-header-cells-active" : ""}`
|
56
53
|
)
|
57
54
|
|
58
55
|
const cellId = `${loading ?
|
@@ -37,22 +37,17 @@ export const TableBody = ({
|
|
37
37
|
columnDefinitions,
|
38
38
|
enableToggleExpansion,
|
39
39
|
handleExpandOrCollapse,
|
40
|
-
isPinnedLeft = false,
|
41
40
|
inlineRowLoading,
|
42
41
|
loading,
|
43
|
-
responsive,
|
44
42
|
table,
|
45
43
|
} = useContext(AdvancedTableContext)
|
46
44
|
|
47
45
|
const classes = classnames(
|
48
46
|
buildCss("pb_advanced_table_body"),
|
49
|
-
{ 'pinned-left': responsive === "scroll" && isPinnedLeft },
|
50
47
|
globalProps(props),
|
51
48
|
className
|
52
49
|
)
|
53
50
|
|
54
|
-
const columnPinning = table.getState().columnPinning;
|
55
|
-
|
56
51
|
return (
|
57
52
|
<>
|
58
53
|
<tbody className={classes}
|
@@ -78,37 +73,38 @@ export const TableBody = ({
|
|
78
73
|
table={table}
|
79
74
|
/>
|
80
75
|
)}
|
81
|
-
<tr
|
82
|
-
className={`${rowBackground ? "bg-silver" : "bg-white"} ${
|
83
|
-
row.depth > 0 ? `depth-sub-row-${row.depth}` : ""
|
84
|
-
}`}
|
85
|
-
id={`${row.index}-${row.id}-${row.depth}-row`}
|
86
|
-
>
|
87
|
-
{row.getVisibleCells().map((cell, i) => {
|
88
|
-
const isPinnedLeft = columnPinning.left.includes(cell.column.id)
|
89
76
|
|
90
|
-
|
77
|
+
<tr
|
78
|
+
className={`${rowBackground ? "bg-silver" : "bg-white"} ${
|
79
|
+
row.depth > 0 ? `depth-sub-row-${row.depth}` : ""
|
80
|
+
}`}
|
81
|
+
id={`${row.index}-${row.id}-${row.depth}-row`}
|
82
|
+
>
|
83
|
+
{row.getVisibleCells().map((cell, i) => (
|
91
84
|
<td
|
92
85
|
align="right"
|
93
|
-
className={
|
94
|
-
|
95
|
-
|
96
|
-
isPinnedLeft && 'pinned-left'
|
97
|
-
)}
|
86
|
+
className={`${cell.id}-cell position_relative ${
|
87
|
+
isChrome() ? "chrome-styles" : ""
|
88
|
+
}`}
|
98
89
|
key={`${cell.id}-data`}
|
99
90
|
>
|
100
|
-
{collapsibleTrail &&
|
91
|
+
{collapsibleTrail &&
|
92
|
+
i === 0 &&
|
93
|
+
row.depth > 0 &&
|
94
|
+
renderCollapsibleTrail(row.depth)}
|
101
95
|
<span id={`${cell.id}-span`}>
|
102
96
|
{loading ? (
|
103
97
|
<LoadingCell />
|
104
98
|
) : (
|
105
|
-
flexRender(
|
99
|
+
flexRender(
|
100
|
+
cell.column.columnDef.cell,
|
101
|
+
cell.getContext()
|
102
|
+
)
|
106
103
|
)}
|
107
104
|
</span>
|
108
105
|
</td>
|
109
|
-
)
|
110
|
-
|
111
|
-
</tr>
|
106
|
+
))}
|
107
|
+
</tr>
|
112
108
|
|
113
109
|
{/* Display LoadingInline if Row Data is querying and there are no children already */}
|
114
110
|
{isDataLoading ? (
|
@@ -42,7 +42,6 @@ export const TableHeader = ({
|
|
42
42
|
className
|
43
43
|
)
|
44
44
|
|
45
|
-
const columnPinning = table.getState().columnPinning;
|
46
45
|
|
47
46
|
return (
|
48
47
|
<>
|
@@ -52,22 +51,18 @@ export const TableHeader = ({
|
|
52
51
|
{/* Get the header groups (only one in this example) */}
|
53
52
|
{table.getHeaderGroups().map((headerGroup: HeaderGroup<GenericObject>) => (
|
54
53
|
<tr key={`${headerGroup.id}-headerGroup`}>
|
55
|
-
{headerGroup.headers.map(header =>
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
sortIcon={sortIcon}
|
68
|
-
/>
|
69
|
-
)
|
70
|
-
})}
|
54
|
+
{headerGroup.headers.map(header => (
|
55
|
+
<TableHeaderCell
|
56
|
+
enableSorting={enableSorting}
|
57
|
+
enableToggleExpansion={enableToggleExpansion}
|
58
|
+
handleExpandOrCollapse={handleExpandOrCollapse}
|
59
|
+
header={header}
|
60
|
+
headerChildren={children}
|
61
|
+
key={`${header.id}-header`}
|
62
|
+
loading={loading}
|
63
|
+
sortIcon={sortIcon}
|
64
|
+
/>
|
65
|
+
))}
|
71
66
|
</tr>
|
72
67
|
))}
|
73
68
|
</thead>
|
@@ -5,11 +5,9 @@
|
|
5
5
|
@import "./scss_partials/loading";
|
6
6
|
@import "./scss_partials/pseudo_states";
|
7
7
|
@import "./scss_partials/chrome_styles";
|
8
|
-
@import "../tokens/screen_sizes";
|
9
|
-
@import "../tokens/shadows";
|
10
8
|
|
11
9
|
.pb_advanced_table {
|
12
|
-
$border-color: 1px solid $border_light;
|
10
|
+
$border-color: 1px solid $border_light !important;
|
13
11
|
|
14
12
|
[id$="-span"] {
|
15
13
|
word-wrap: normal;
|
@@ -110,51 +108,6 @@
|
|
110
108
|
height: auto;
|
111
109
|
}
|
112
110
|
|
113
|
-
// Responsive Styles
|
114
|
-
@media only screen and (max-width: $screen-xl-min) {
|
115
|
-
&[class*="table-responsive-scroll"] {
|
116
|
-
border-radius: 4px;
|
117
|
-
box-shadow: 1px 0 0 0px $border_light,
|
118
|
-
-1px 0 0 0px $border_light;
|
119
|
-
display: block;
|
120
|
-
overflow-x: auto;
|
121
|
-
width: 100%;
|
122
|
-
[class^=pb_table].table-sm.table-card thead tr th:first-child,
|
123
|
-
[class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:first-child {
|
124
|
-
border-left-width: 0px;
|
125
|
-
}
|
126
|
-
[class^=pb_table].table-sm.table-card thead tr th:last-child,
|
127
|
-
[class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:last-child {
|
128
|
-
border-right-width: 0px;
|
129
|
-
}
|
130
|
-
[class^=pb_table].table-sm.table-card tbody tr:last-child td:first-child,
|
131
|
-
[class^=pb_table].table-sm.table-card tbody tr:last-child td:last-child {
|
132
|
-
border-radius: 0 0 0 0;
|
133
|
-
}
|
134
|
-
.table-header-cells:first-child,
|
135
|
-
td:first-child,
|
136
|
-
.pb_table_td:first-child,
|
137
|
-
[class*="pinned-left"] {
|
138
|
-
background-color: $white;
|
139
|
-
box-shadow: $shadow_deep !important;
|
140
|
-
position: sticky !important;
|
141
|
-
left: 0;
|
142
|
-
z-index: 2;
|
143
|
-
}
|
144
|
-
.bg-silver td:first-child {
|
145
|
-
background-color: lighten($silver, $opacity_7);
|
146
|
-
}
|
147
|
-
.bg-white td:first-child {
|
148
|
-
background-color: $white;
|
149
|
-
}
|
150
|
-
}
|
151
|
-
}
|
152
|
-
@media only screen and (min-width: $screen-xl-min) {
|
153
|
-
&[class*="table-responsive-scroll"] {
|
154
|
-
overflow-x: visible;
|
155
|
-
}
|
156
|
-
}
|
157
|
-
|
158
111
|
&.dark {
|
159
112
|
.bg-white {
|
160
113
|
background: $bg_dark_card;
|
@@ -198,43 +151,5 @@
|
|
198
151
|
) !important;
|
199
152
|
}
|
200
153
|
}
|
201
|
-
// Dark Mode Responsive Styles
|
202
|
-
@media only screen and (max-width: $screen-xl-min) {
|
203
|
-
&[class*="table-responsive-scroll"] {
|
204
|
-
border-radius: 4px;
|
205
|
-
box-shadow: 1px 0 0 0px $border_dark,
|
206
|
-
-1px 0 0 0px $border_dark;
|
207
|
-
display: block;
|
208
|
-
overflow-x: scroll;
|
209
|
-
width: 100%;
|
210
|
-
[class^=pb_table].table-sm.table-card thead tr th:first-child,
|
211
|
-
[class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:first-child {
|
212
|
-
border-left-width: 0px;
|
213
|
-
}
|
214
|
-
[class^=pb_table].table-sm.table-card thead tr th:last-child,
|
215
|
-
[class^=pb_table].table-sm:not(.no-hover).table-card tbody tr td:last-child {
|
216
|
-
border-right-width: 0px;
|
217
|
-
}
|
218
|
-
[class^=pb_table].table-sm.table-card tbody tr:last-child td:first-child,
|
219
|
-
[class^=pb_table].table-sm.table-card tbody tr:last-child td:last-child {
|
220
|
-
border-radius: 0 0 0 0;
|
221
|
-
}
|
222
|
-
.table-header-cells:first-child,
|
223
|
-
td:first-child,
|
224
|
-
.pb_table_td:first-child,
|
225
|
-
[class*="pinned-left"] {
|
226
|
-
background: $bg_dark_card;
|
227
|
-
border-right: $border_dark;
|
228
|
-
box-shadow: $shadow_deep !important;
|
229
|
-
position: sticky !important;
|
230
|
-
}
|
231
|
-
.bg-silver td:first-child {
|
232
|
-
background-color: $bg_dark;
|
233
|
-
}
|
234
|
-
.bg-white td:first-child {
|
235
|
-
background-color: $bg_dark_card;
|
236
|
-
}
|
237
|
-
}
|
238
|
-
}
|
239
154
|
}
|
240
155
|
}
|
@@ -42,7 +42,6 @@ type AdvancedTableProps = {
|
|
42
42
|
loading?: boolean | string
|
43
43
|
onRowToggleClick?: (arg: Row<GenericObject>) => void
|
44
44
|
onToggleExpansionClick?: (arg: Row<GenericObject>) => void
|
45
|
-
responsive?: "scroll" | "none",
|
46
45
|
sortControl?: GenericObject
|
47
46
|
tableData: GenericObject[]
|
48
47
|
tableOptions?: GenericObject
|
@@ -67,7 +66,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
67
66
|
loading,
|
68
67
|
onRowToggleClick,
|
69
68
|
onToggleExpansionClick,
|
70
|
-
responsive = "scroll",
|
71
69
|
sortControl,
|
72
70
|
tableData,
|
73
71
|
tableOptions,
|
@@ -134,7 +132,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
134
132
|
//Create column array in format needed by Tanstack
|
135
133
|
const columns =
|
136
134
|
columnDefinitions &&
|
137
|
-
|
135
|
+
columnDefinitions.map((column) => {
|
138
136
|
// Define the base column structure
|
139
137
|
const columnStructure = {
|
140
138
|
...columnHelper.accessor(column.accessor, {
|
@@ -211,7 +209,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
211
209
|
const htmlProps = buildHtmlProps(htmlOptions)
|
212
210
|
const classes = classnames(
|
213
211
|
buildCss("pb_advanced_table"),
|
214
|
-
`table-responsive-${responsive}`,
|
215
212
|
globalProps(props),
|
216
213
|
className
|
217
214
|
)
|
@@ -232,7 +229,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
232
229
|
handleExpandOrCollapse,
|
233
230
|
inlineRowLoading,
|
234
231
|
loading,
|
235
|
-
responsive,
|
236
232
|
setExpanded,
|
237
233
|
sortControl,
|
238
234
|
table,
|
@@ -432,34 +432,4 @@ test("inlineRowLoading prop renders inline loading if true", () => {
|
|
432
432
|
rowButton.click()
|
433
433
|
const inlineLoading = kit.querySelector(".fa-spinner")
|
434
434
|
expect(inlineLoading).toBeInTheDocument()
|
435
|
-
})
|
436
|
-
|
437
|
-
test("responsive prop functions as expected", () => {
|
438
|
-
render(
|
439
|
-
<AdvancedTable
|
440
|
-
columnDefinitions={columnDefinitions}
|
441
|
-
data={{ testid: testId }}
|
442
|
-
responsive="scroll"
|
443
|
-
tableData={MOCK_DATA}
|
444
|
-
tableProps={tableProps}
|
445
|
-
/>
|
446
|
-
)
|
447
|
-
|
448
|
-
const kit = screen.getByTestId(testId)
|
449
|
-
expect(kit).toHaveClass("pb_advanced_table table-responsive-scroll")
|
450
|
-
})
|
451
|
-
|
452
|
-
test("responsive none prop functions as expected", () => {
|
453
|
-
render(
|
454
|
-
<AdvancedTable
|
455
|
-
columnDefinitions={columnDefinitions}
|
456
|
-
data={{ testid: testId }}
|
457
|
-
responsive="none"
|
458
|
-
tableData={MOCK_DATA}
|
459
|
-
tableProps={tableProps}
|
460
|
-
/>
|
461
|
-
)
|
462
|
-
|
463
|
-
const kit = screen.getByTestId(testId)
|
464
|
-
expect(kit).toHaveClass("pb_advanced_table table-responsive-none")
|
465
435
|
})
|
@@ -7,5 +7,4 @@ 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'
|
11
|
-
export { default as AdvancedTableResponsive } from './_advanced_table_responsive.jsx'
|
10
|
+
export { default as AdvancedTableInlineRowLoading } from './_advanced_table_inline_row_loading.jsx'
|
@@ -78,6 +78,36 @@ $avatar-sizes: (
|
|
78
78
|
display: block;
|
79
79
|
}
|
80
80
|
}
|
81
|
+
[class^=pb_online_status] {
|
82
|
+
position: absolute;
|
83
|
+
right: 0;
|
84
|
+
top: 0;
|
85
|
+
bottom: auto;
|
86
|
+
left: auto;
|
87
|
+
|
88
|
+
&.size_xxs {
|
89
|
+
right: -5px;
|
90
|
+
}
|
91
|
+
|
92
|
+
&.size_xs {
|
93
|
+
right: -4px;
|
94
|
+
}
|
95
|
+
|
96
|
+
&.size_md {
|
97
|
+
top: auto;
|
98
|
+
bottom: 6px;
|
99
|
+
}
|
100
|
+
|
101
|
+
&.size_lg {
|
102
|
+
top: auto;
|
103
|
+
bottom: 14px;
|
104
|
+
}
|
105
|
+
|
106
|
+
&.size_xl {
|
107
|
+
top: auto;
|
108
|
+
bottom: 22px;
|
109
|
+
}
|
110
|
+
}
|
81
111
|
}
|
82
112
|
}
|
83
113
|
}
|
@@ -71,22 +71,6 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
|
|
71
71
|
|
72
72
|
const canShowImage = imageUrl && !error
|
73
73
|
|
74
|
-
const onlineStatusSize =
|
75
|
-
['xxs', 'xs'].includes(size) ? 'sm' :
|
76
|
-
['sm', 'md'].includes(size) ? 'md' :
|
77
|
-
['lg', 'xl'].includes(size) ? 'lg' :
|
78
|
-
'sm';
|
79
|
-
|
80
|
-
const onlineStatusPositionProps = (["xxs", "xs", "sm"].includes(size)) ?
|
81
|
-
{
|
82
|
-
top: { inset: true, value: "0" },
|
83
|
-
right: { inset: false, value: "xxs" }
|
84
|
-
}
|
85
|
-
: {
|
86
|
-
bottom: { inset: true, value: "0" },
|
87
|
-
right: { inset: true, value: size === "xl" ? "sm" : size === "lg" ? "xs" : "xxs" }
|
88
|
-
};
|
89
|
-
|
90
74
|
return (
|
91
75
|
<div
|
92
76
|
{...ariaProps}
|
@@ -158,11 +142,9 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
|
|
158
142
|
</div>
|
159
143
|
{status && (
|
160
144
|
<OnlineStatus
|
145
|
+
className={`size_${size}`}
|
161
146
|
dark={dark}
|
162
|
-
position="absolute"
|
163
|
-
size={onlineStatusSize}
|
164
147
|
status={status}
|
165
|
-
{...onlineStatusPositionProps}
|
166
148
|
/>
|
167
149
|
)}
|
168
150
|
</>
|
@@ -4,8 +4,6 @@ module Playbook
|
|
4
4
|
module PbAvatar
|
5
5
|
class Avatar < Playbook::KitBase
|
6
6
|
prop :component_overlay
|
7
|
-
prop :dark, type: Playbook::Props::Boolean,
|
8
|
-
default: false
|
9
7
|
prop :image_url, type: Playbook::Props::String
|
10
8
|
prop :image_alt, type: Playbook::Props::String,
|
11
9
|
default: ""
|
@@ -25,22 +23,7 @@ module Playbook
|
|
25
23
|
end
|
26
24
|
|
27
25
|
def online_status_props
|
28
|
-
|
29
|
-
dark: dark,
|
30
|
-
status: status,
|
31
|
-
size: online_status_size,
|
32
|
-
position: "absolute",
|
33
|
-
right: online_status_right_position,
|
34
|
-
}
|
35
|
-
|
36
|
-
case size
|
37
|
-
when "xxs", "xs", "sm"
|
38
|
-
props[:top] = { value: "0", inset: true }
|
39
|
-
else
|
40
|
-
props[:bottom] = { value: "0", inset: true }
|
41
|
-
end
|
42
|
-
|
43
|
-
props
|
26
|
+
{ status: status, classname: "size_#{size}" }
|
44
27
|
end
|
45
28
|
|
46
29
|
def alt_text
|
@@ -74,32 +57,6 @@ module Playbook
|
|
74
57
|
}
|
75
58
|
end
|
76
59
|
|
77
|
-
def online_status_size
|
78
|
-
case size
|
79
|
-
when "xxs", "xs"
|
80
|
-
"sm"
|
81
|
-
when "sm", "md"
|
82
|
-
"md"
|
83
|
-
when "lg", "xl"
|
84
|
-
"lg"
|
85
|
-
else
|
86
|
-
"sm"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def online_status_right_position
|
91
|
-
case size
|
92
|
-
when "xxs", "xs", "sm"
|
93
|
-
"xxs"
|
94
|
-
when "md"
|
95
|
-
{ value: "xxs", inset: true }
|
96
|
-
when "lg"
|
97
|
-
{ value: "xs", inset: true }
|
98
|
-
when "xl"
|
99
|
-
{ value: "sm", inset: true }
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
60
|
def placement_styles(offset)
|
104
61
|
top_bottom_offset = if offset == "xs"
|
105
62
|
"xs"
|
@@ -89,20 +89,3 @@ test('renders with iconCircle overlay', () => {
|
|
89
89
|
expect(iconCircleOverlay).toBeInTheDocument();
|
90
90
|
expect(iconCircleOverlay).toHaveClass('pb_avatar_kit_size_md');
|
91
91
|
});
|
92
|
-
|
93
|
-
|
94
|
-
test('renders with online status', () => {
|
95
|
-
render(
|
96
|
-
<Avatar
|
97
|
-
data={{ testid: testId }}
|
98
|
-
imageAlt={imageAlt}
|
99
|
-
imageUrl={imageUrl}
|
100
|
-
name={name}
|
101
|
-
status="online"
|
102
|
-
/>
|
103
|
-
);
|
104
|
-
|
105
|
-
const onlineStatusAvatar = screen.getByTestId(testId);
|
106
|
-
const onlineStatus = onlineStatusAvatar.querySelector('.pb_online_status_kit_online_size_md')
|
107
|
-
expect(onlineStatus).toBeInTheDocument();
|
108
|
-
});
|
@@ -6,6 +6,4 @@ 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.
|
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).
|
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.
|
@@ -45,7 +45,6 @@
|
|
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 } %>
|
49
48
|
|
50
49
|
<%= form.actions do |action| %>
|
51
50
|
<%= action.submit %>
|
@@ -39,7 +39,6 @@ type IconProps = {
|
|
39
39
|
size?: IconSizes,
|
40
40
|
fontStyle?: 'far' | 'fas' | 'fab' | 'fak',
|
41
41
|
spin?: boolean,
|
42
|
-
tabIndex?: number,
|
43
42
|
} & GlobalProps
|
44
43
|
|
45
44
|
const flipMap = {
|
@@ -139,7 +138,6 @@ const Icon = (props: IconProps) => {
|
|
139
138
|
size,
|
140
139
|
fontStyle = 'far',
|
141
140
|
spin = false,
|
142
|
-
tabIndex,
|
143
141
|
} = props
|
144
142
|
|
145
143
|
let iconElement: ReactSVGElement | null = typeof(icon) === "object" ? icon : null
|
@@ -228,7 +226,6 @@ const Icon = (props: IconProps) => {
|
|
228
226
|
id,
|
229
227
|
width: 'auto',
|
230
228
|
height: 'auto',
|
231
|
-
...(props.tabIndex !== undefined && { tabIndex }),
|
232
229
|
})
|
233
230
|
}
|
234
231
|
</>
|
@@ -37,7 +37,6 @@ module Playbook
|
|
37
37
|
prop :spin, type: Playbook::Props::Boolean,
|
38
38
|
default: false
|
39
39
|
prop :color, type: Playbook::Props::String
|
40
|
-
prop :tabindex
|
41
40
|
|
42
41
|
def valid_emoji?
|
43
42
|
emoji_regex = /\p{Emoji}/
|
@@ -108,7 +107,6 @@ module Playbook
|
|
108
107
|
svg["aria"] = object.aria
|
109
108
|
svg["height"] = "auto"
|
110
109
|
svg["width"] = "auto"
|
111
|
-
svg["tabindex"] = object.tabindex
|
112
110
|
fill_color = object.color || "currentColor"
|
113
111
|
doc.at_css("path")["fill"] = fill_color
|
114
112
|
raw doc
|
@@ -10,8 +10,8 @@ module Playbook
|
|
10
10
|
values: %w[xxs xs sm md base lg xl],
|
11
11
|
default: "md"
|
12
12
|
prop :variant, type: Playbook::Props::Enum,
|
13
|
-
values: %w[default royal blue orange purple teal red yellow green orange
|
14
|
-
default: "
|
13
|
+
values: %w[default royal blue orange purple teal red yellow green orange],
|
14
|
+
default: "default"
|
15
15
|
|
16
16
|
def classname
|
17
17
|
generate_classname("pb_icon_circle_kit", "size_#{size}", variant)
|
@@ -50,4 +50,15 @@
|
|
50
50
|
margin-right: $space-sm;
|
51
51
|
}
|
52
52
|
}
|
53
|
+
[class^=pb_title_kit_1] + [class^=pb_body_kit] {
|
54
|
+
font-size: 36px;
|
55
|
+
}
|
56
|
+
|
57
|
+
[class^=pb_title_kit_2] + [class^=pb_body_kit] {
|
58
|
+
font-size: 24px
|
59
|
+
}
|
60
|
+
|
61
|
+
[class^=pb_title_kit_3] + [class^=pb_body_kit] {
|
62
|
+
font-size: 20px;
|
63
|
+
}
|
53
64
|
}
|
@@ -32,8 +32,7 @@ type IconStatValueProps = {
|
|
32
32
|
| "red"
|
33
33
|
| "yellow"
|
34
34
|
| "orange"
|
35
|
-
| "green"
|
36
|
-
| "lighter",
|
35
|
+
| "green",
|
37
36
|
}
|
38
37
|
|
39
38
|
const IconStatValue = (props: IconStatValueProps): React.ReactElement => {
|
@@ -50,7 +49,7 @@ const IconStatValue = (props: IconStatValueProps): React.ReactElement => {
|
|
50
49
|
text = '',
|
51
50
|
unit = '',
|
52
51
|
value = 0,
|
53
|
-
variant = '
|
52
|
+
variant = 'default',
|
54
53
|
} = props
|
55
54
|
const ariaProps = buildAriaProps(aria)
|
56
55
|
const dataProps = buildDataProps(data)
|