playbook_ui 14.13.0.pre.alpha.play1852reacthookformsupportradio6153 → 14.13.0.pre.alpha.play1884progresspill6064
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_bar_graph/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +1 -3
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.html.erb +2 -2
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table.md +1 -4
- data/app/pb_kits/playbook/pb_draggable/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableContainer.tsx +4 -7
- data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +3 -6
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +6 -1
- data/app/pb_kits/playbook/pb_nav/item.html.erb +19 -7
- data/app/pb_kits/playbook/pb_nav/nav.html.erb +8 -3
- data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +6 -1
- data/app/pb_kits/playbook/pb_popover/popover.html.erb +6 -1
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +2 -1
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +7 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.md +1 -0
- data/app/pb_kits/playbook/pb_radio/_radio.tsx +73 -85
- data/app/pb_kits/playbook/pb_radio/docs/example.yml +1 -2
- data/app/pb_kits/playbook/pb_radio/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_radio/radio.test.js +0 -16
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/docs/example.yml +1 -4
- data/app/pb_kits/playbook/pb_table/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_table/index.ts +9 -41
- data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +0 -4
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +2 -29
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +3 -31
- data/app/pb_kits/playbook/pb_table/table_body.html.erb +7 -13
- data/app/pb_kits/playbook/pb_table/table_body.rb +0 -2
- data/app/pb_kits/playbook/pb_table/table_row.html.erb +7 -14
- data/app/pb_kits/playbook/pb_table/table_row.rb +1 -14
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_mask.html.erb +0 -14
- data/app/pb_kits/playbook/pb_text_input/index.js +0 -9
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -5
- data/dist/chunks/_typeahead-btjo1UN5.js +36 -0
- data/dist/chunks/_weekday_stacked-TIh9nTmZ.js +45 -0
- data/dist/chunks/{lib-D3us1bGD.js → lib-DjpLC8uO.js} +2 -2
- data/dist/chunks/{pb_form_validation-BpihMSOQ.js → pb_form_validation-S56UaHZl.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 +1 -1
- metadata +8 -19
- data/app/pb_kits/playbook/pb_bar_graph/BarGraphStyles.scss +0 -58
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.jsx +0 -64
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.jsx +0 -90
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_with_table_react.md +0 -5
- data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +0 -60
- data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.md +0 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.html.erb +0 -51
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click_rails.md +0 -2
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -96
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.jsx +0 -101
- data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.md +0 -1
- data/dist/chunks/_typeahead-B7kfgseZ.js +0 -36
- data/dist/chunks/_weekday_stacked-CQggx3_W.js +0 -45
- /data/app/pb_kits/playbook/pb_table/docs/{_table_with_collapsible_with_custom_click_react.md → _table_with_collapsible_with_custom_click.md} +0 -0
@@ -2,7 +2,6 @@ import PbEnhancedElement from '../pb_enhanced_element'
|
|
2
2
|
|
3
3
|
const TABLE_WRAPPER_SELECTOR = "[data-pb-table-wrapper]";
|
4
4
|
const TABLE_COLLAPSIBLE_WRAPPER_SELECTOR = "[data-pb-table-collapsible-wrapper]";
|
5
|
-
const TABLE_COLLAPSIBLE_CELL_SELECTOR = "[data-pb-table-collapsible-cell-id]";
|
6
5
|
|
7
6
|
export default class PbTable extends PbEnhancedElement {
|
8
7
|
stickyLeftColumns: string[] = [];
|
@@ -159,49 +158,18 @@ export default class PbTable extends PbEnhancedElement {
|
|
159
158
|
}
|
160
159
|
|
161
160
|
handleCollapsibleClick() {
|
162
|
-
const cells = this.element.querySelectorAll(TABLE_COLLAPSIBLE_CELL_SELECTOR);
|
163
161
|
const collapsibleElements = this.element.querySelectorAll(TABLE_COLLAPSIBLE_WRAPPER_SELECTOR);
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
svgChild.id = cellId; // Assign cellId to SVG child
|
173
|
-
Array.from(svgChild.children).forEach((pathChild) => {
|
174
|
-
pathChild.id = cellId; // Assign cellId to path child
|
175
|
-
});
|
176
|
-
});
|
177
|
-
}
|
178
|
-
});
|
179
|
-
cell.addEventListener('click', (event) => {
|
180
|
-
if ((event.target as HTMLElement).id) {
|
181
|
-
document.dispatchEvent(new CustomEvent(`collapsed-toggle${(event.currentTarget as HTMLElement).id}`));
|
182
|
-
|
183
|
-
const toggleElements = this.element.querySelectorAll(`.collapsible_border_toggle${(event.currentTarget as HTMLElement).id}`);
|
184
|
-
toggleElements.forEach((element) => {
|
185
|
-
element.classList.toggle('no-border');
|
186
|
-
element.classList.toggle('border-active');
|
187
|
-
});
|
188
|
-
}
|
162
|
+
collapsibleElements.forEach((collapsibleElement) => {
|
163
|
+
collapsibleElement.addEventListener('click', (event) => {
|
164
|
+
document.dispatchEvent(new CustomEvent(`collapsed-toggle${(event.currentTarget as HTMLElement).id}`))
|
165
|
+
|
166
|
+
const toggleElements = this.element.querySelectorAll(`.collapsible_border_toggle${(event.currentTarget as HTMLElement).id}`);
|
167
|
+
toggleElements.forEach(element => {
|
168
|
+
element.classList.toggle('no-border');
|
169
|
+
element.classList.toggle('border-active');
|
189
170
|
});
|
190
|
-
});
|
191
|
-
|
192
|
-
} else {
|
193
|
-
collapsibleElements.forEach((collapsibleElement) => {
|
194
|
-
collapsibleElement.addEventListener('click', (event) => {
|
195
|
-
document.dispatchEvent(new CustomEvent(`collapsed-toggle${(event.currentTarget as HTMLElement).id}`))
|
196
|
-
|
197
|
-
const toggleElements = this.element.querySelectorAll(`.collapsible_border_toggle${(event.currentTarget as HTMLElement).id}`);
|
198
|
-
toggleElements.forEach(element => {
|
199
|
-
element.classList.toggle('no-border');
|
200
|
-
element.classList.toggle('border-active');
|
201
|
-
});
|
202
|
-
})
|
203
171
|
})
|
204
|
-
}
|
172
|
+
})
|
205
173
|
}
|
206
174
|
|
207
175
|
handleCollapsibleRow() {
|
@@ -7,14 +7,11 @@ import {
|
|
7
7
|
} from "../../utilities/props";
|
8
8
|
import { globalProps } from "../../utilities/globalProps";
|
9
9
|
|
10
|
-
import Draggable from "../../pb_draggable/_draggable"
|
11
|
-
|
12
10
|
type TableBodyPropTypes = {
|
13
11
|
aria?: { [key: string]: string };
|
14
12
|
children: React.ReactNode[] | React.ReactNode;
|
15
13
|
className: string;
|
16
14
|
data?: { [key: string]: string };
|
17
|
-
draggableContainer?: boolean;
|
18
15
|
htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
|
19
16
|
id?: string;
|
20
17
|
tag?: "table" | "div";
|
@@ -26,7 +23,6 @@ const TableBody = (props: TableBodyPropTypes): React.ReactElement => {
|
|
26
23
|
children,
|
27
24
|
className,
|
28
25
|
data = {},
|
29
|
-
draggableContainer = false,
|
30
26
|
htmlOptions = {},
|
31
27
|
id,
|
32
28
|
tag = "table",
|
@@ -41,30 +37,7 @@ const TableBody = (props: TableBodyPropTypes): React.ReactElement => {
|
|
41
37
|
return (
|
42
38
|
<>
|
43
39
|
{isTableTag ? (
|
44
|
-
|
45
|
-
<Draggable.Container
|
46
|
-
{...ariaProps}
|
47
|
-
{...dataProps}
|
48
|
-
{...htmlProps}
|
49
|
-
className={classes}
|
50
|
-
id={id}
|
51
|
-
tag="tbody"
|
52
|
-
>
|
53
|
-
{children}
|
54
|
-
</Draggable.Container>
|
55
|
-
) : (
|
56
|
-
<tbody
|
57
|
-
{...ariaProps}
|
58
|
-
{...dataProps}
|
59
|
-
{...htmlProps}
|
60
|
-
className={classes}
|
61
|
-
id={id}
|
62
|
-
>
|
63
|
-
{children}
|
64
|
-
</tbody>
|
65
|
-
)
|
66
|
-
) : draggableContainer ? (
|
67
|
-
<Draggable.Container
|
40
|
+
<tbody
|
68
41
|
{...ariaProps}
|
69
42
|
{...dataProps}
|
70
43
|
{...htmlProps}
|
@@ -72,7 +45,7 @@ const TableBody = (props: TableBodyPropTypes): React.ReactElement => {
|
|
72
45
|
id={id}
|
73
46
|
>
|
74
47
|
{children}
|
75
|
-
</
|
48
|
+
</tbody>
|
76
49
|
) : (
|
77
50
|
<div
|
78
51
|
{...ariaProps}
|
@@ -9,7 +9,6 @@ import {
|
|
9
9
|
import { globalProps } from "../../utilities/globalProps";
|
10
10
|
import Collapsible from "../../pb_collapsible/_collapsible";
|
11
11
|
import useCollapsible from "../../pb_collapsible/useCollapsible";
|
12
|
-
import Draggable from "../../pb_draggable/_draggable";
|
13
12
|
|
14
13
|
type TableRowPropTypes = {
|
15
14
|
aria?: { [key: string]: string };
|
@@ -20,8 +19,6 @@ type TableRowPropTypes = {
|
|
20
19
|
collapsibleSideHighlight?: boolean;
|
21
20
|
data?: { [key: string]: string };
|
22
21
|
dark?: boolean;
|
23
|
-
dragId?: string;
|
24
|
-
draggableItem?: boolean;
|
25
22
|
htmlOptions?: { [key: string]: string | number | boolean | (() => void) };
|
26
23
|
id?: string;
|
27
24
|
toggleCellId?: string;
|
@@ -39,8 +36,6 @@ const TableRow = (props: TableRowPropTypes): React.ReactElement => {
|
|
39
36
|
className,
|
40
37
|
data = {},
|
41
38
|
dark = false,
|
42
|
-
dragId,
|
43
|
-
draggableItem = false,
|
44
39
|
htmlOptions = {},
|
45
40
|
id,
|
46
41
|
toggleCellId,
|
@@ -157,38 +152,15 @@ const TableRow = (props: TableRowPropTypes): React.ReactElement => {
|
|
157
152
|
</>
|
158
153
|
)
|
159
154
|
) : isTableTag ? (
|
160
|
-
|
161
|
-
<Draggable.Item
|
162
|
-
{...ariaProps}
|
163
|
-
{...dataProps}
|
164
|
-
{...htmlProps}
|
165
|
-
className={classes}
|
166
|
-
dragId={dragId}
|
167
|
-
tag="tr"
|
168
|
-
>
|
169
|
-
{children}
|
170
|
-
</Draggable.Item>
|
171
|
-
) : (
|
172
|
-
<tr
|
173
|
-
{...ariaProps}
|
174
|
-
{...dataProps}
|
175
|
-
{...htmlProps}
|
176
|
-
className={classes}
|
177
|
-
id={id}
|
178
|
-
>
|
179
|
-
{children}
|
180
|
-
</tr>
|
181
|
-
)
|
182
|
-
) : draggableItem ? (
|
183
|
-
<Draggable.Item
|
155
|
+
<tr
|
184
156
|
{...ariaProps}
|
185
157
|
{...dataProps}
|
186
158
|
{...htmlProps}
|
187
159
|
className={classes}
|
188
|
-
|
160
|
+
id={id}
|
189
161
|
>
|
190
162
|
{children}
|
191
|
-
</
|
163
|
+
</tr>
|
192
164
|
) : (
|
193
165
|
<div
|
194
166
|
{...ariaProps}
|
@@ -1,17 +1,11 @@
|
|
1
1
|
<% if object.tag == "table" %>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
class: object.classname,
|
10
|
-
data: object.data,
|
11
|
-
id: object.id,
|
12
|
-
**combined_html_options) do %>
|
13
|
-
<%= content.presence %>
|
14
|
-
<% end %>
|
2
|
+
<%= content_tag(:tbody,
|
3
|
+
aria: object.aria,
|
4
|
+
class: object.classname,
|
5
|
+
data: object.data,
|
6
|
+
id: object.id,
|
7
|
+
**combined_html_options) do %>
|
8
|
+
<%= content.presence %>
|
15
9
|
<% end %>
|
16
10
|
<% else %>
|
17
11
|
<%= content_tag(:div,
|
@@ -5,7 +5,6 @@
|
|
5
5
|
data: object.data.merge(id: object.id),
|
6
6
|
id: object.id,
|
7
7
|
'data-pb-table-collapsible-wrapper' => true,
|
8
|
-
'data-pb-table-collapsible-cell-id' => object.toggle_cell_id,
|
9
8
|
**combined_html_options) do %>
|
10
9
|
<%= content.presence %>
|
11
10
|
<% end %>
|
@@ -19,19 +18,13 @@
|
|
19
18
|
<% end %>
|
20
19
|
</tr>
|
21
20
|
<% elsif object.tag == "table" %>
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
class: object.classname,
|
30
|
-
data: object.data,
|
31
|
-
id: object.id,
|
32
|
-
**combined_html_options) do %>
|
33
|
-
<%= content.presence %>
|
34
|
-
<% end %>
|
21
|
+
<%= content_tag(:tr,
|
22
|
+
aria: object.aria,
|
23
|
+
class: object.classname,
|
24
|
+
data: object.data,
|
25
|
+
id: object.id,
|
26
|
+
**combined_html_options) do %>
|
27
|
+
<%= content.presence %>
|
35
28
|
<% end %>
|
36
29
|
<% else %>
|
37
30
|
<%= content_tag(:div,
|
@@ -13,14 +13,9 @@ module Playbook
|
|
13
13
|
prop :collapsible_content
|
14
14
|
prop :collapsible_side_highlight, type: Playbook::Props::Boolean,
|
15
15
|
default: true
|
16
|
-
prop :toggle_cell_id, type: Playbook::Props::String
|
17
|
-
prop :draggable_item, type: Playbook::Props::Boolean,
|
18
|
-
default: false
|
19
|
-
prop :drag_id, type: Playbook::Props::String,
|
20
|
-
default: nil
|
21
16
|
|
22
17
|
def classname
|
23
|
-
generate_classname("pb_table_row_kit", side_highlight_class) + tag_class
|
18
|
+
generate_classname("pb_table_row_kit", side_highlight_class) + tag_class
|
24
19
|
end
|
25
20
|
|
26
21
|
def side_highlight_class
|
@@ -30,14 +25,6 @@ module Playbook
|
|
30
25
|
def tag_class
|
31
26
|
" pb_table_tr"
|
32
27
|
end
|
33
|
-
|
34
|
-
def collapsible_cell_class
|
35
|
-
if toggle_cell_id
|
36
|
-
" collapsible_cell"
|
37
|
-
else
|
38
|
-
""
|
39
|
-
end
|
40
|
-
end
|
41
28
|
end
|
42
29
|
end
|
43
30
|
end
|
@@ -27,20 +27,6 @@
|
|
27
27
|
placeholder: "123-45-6789"
|
28
28
|
}) %>
|
29
29
|
|
30
|
-
<%= pb_rails("text_input", props: {
|
31
|
-
label: "Credit Card",
|
32
|
-
mask: "credit_card",
|
33
|
-
margin_bottom: "md",
|
34
|
-
placeholder: "1234 5678 9012 3456"
|
35
|
-
}) %>
|
36
|
-
|
37
|
-
<%= pb_rails("text_input", props: {
|
38
|
-
label: "CVV",
|
39
|
-
mask: "cvv",
|
40
|
-
margin_bottom: "md",
|
41
|
-
placeholder: "123"
|
42
|
-
}) %>
|
43
|
-
|
44
30
|
<%= pb_rails("title" , props: {
|
45
31
|
text: "Hidden Input Under The Hood",
|
46
32
|
padding_bottom: "sm"
|
@@ -27,8 +27,6 @@ export default class PbTextInput extends PbEnhancedElement {
|
|
27
27
|
ssn: 'ssn',
|
28
28
|
postal_code: 'postalCode',
|
29
29
|
zip_code: 'zipCode',
|
30
|
-
credit_card: 'creditCard',
|
31
|
-
cvv: 'cvv',
|
32
30
|
}[maskType];
|
33
31
|
|
34
32
|
if (maskKey && INPUTMASKS[maskKey]) {
|
@@ -47,9 +45,6 @@ export default class PbTextInput extends PbEnhancedElement {
|
|
47
45
|
case "currency":
|
48
46
|
sanitizedInput.value = sanitizeCurrency(formattedValue);
|
49
47
|
break;
|
50
|
-
case "credit_card":
|
51
|
-
sanitizedInput.value = sanitizeCreditCard(formattedValue);
|
52
|
-
break;
|
53
48
|
default:
|
54
49
|
sanitizedInput.value = formattedValue;
|
55
50
|
}
|
@@ -68,10 +63,6 @@ function sanitizeCurrency(input) {
|
|
68
63
|
return input.replace(/[$,]/g, "");
|
69
64
|
}
|
70
65
|
|
71
|
-
function sanitizeCreditCard(input) {
|
72
|
-
return input.replace(/\D/g, "");
|
73
|
-
}
|
74
|
-
|
75
66
|
function setCursorPosition(inputElement, cursorPosition, rawValue, formattedValue) {
|
76
67
|
const difference = formattedValue.length - rawValue.length;
|
77
68
|
const newPosition = Math.max(0, cursorPosition + difference);
|
@@ -4,15 +4,13 @@
|
|
4
4
|
module Playbook
|
5
5
|
module PbTextInput
|
6
6
|
class TextInput < Playbook::KitBase
|
7
|
-
VALID_MASKS = %w[currency
|
7
|
+
VALID_MASKS = %w[currency zipCode postalCode ssn].freeze
|
8
8
|
|
9
9
|
MASK_PATTERNS = {
|
10
10
|
"currency" => '^\$\d{1,3}(?:,\d{3})*(?:\.\d{2})?$',
|
11
11
|
"zip_code" => '\d{5}',
|
12
12
|
"postal_code" => '\d{5}-\d{4}',
|
13
13
|
"ssn" => '\d{3}-\d{2}-\d{4}',
|
14
|
-
"credit_card" => '\d{4} \d{4} \d{4} \d{4}',
|
15
|
-
"cvv" => '\d{3,4}',
|
16
14
|
}.freeze
|
17
15
|
|
18
16
|
prop :autocomplete, type: Playbook::Props::Boolean,
|
@@ -36,8 +34,7 @@ module Playbook
|
|
36
34
|
prop :add_on, type: Playbook::Props::NestedProps,
|
37
35
|
nested_kit: Playbook::PbTextInput::AddOn
|
38
36
|
|
39
|
-
prop :mask, type: Playbook::Props::
|
40
|
-
values: ["currency", "zip_code", "postal_code", "ssn", "credit_card", "cvv", nil],
|
37
|
+
prop :mask, type: Playbook::Props::String,
|
41
38
|
default: nil
|
42
39
|
|
43
40
|
def classname
|