playbook_ui 7.12.0 → 7.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/playbook/pb_doc_helper.rb +2 -1
- data/app/helpers/playbook/pb_sample_helper.rb +1 -1
- data/app/pb_kits/playbook/_playbook.scss +1 -0
- data/app/pb_kits/playbook/index.js +1 -0
- data/app/pb_kits/playbook/pb_background/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_background/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_card/_card.jsx +3 -1
- data/app/pb_kits/playbook/pb_card/_card.scss +3 -2
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +6 -0
- data/app/pb_kits/playbook/pb_card/card.rb +9 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.html.erb +53 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.jsx +71 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_border_radius.md +1 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_light.md +1 -0
- data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_range_stacked/docs/example.yml +0 -4
- data/app/pb_kits/playbook/pb_date_range_stacked/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +0 -7
- data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/example.yml +0 -4
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.jsx +9 -4
- data/app/pb_kits/playbook/pb_distribution_bar/_distribution_bar.scss +12 -7
- data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +4 -1
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.html.erb +4 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.jsx +18 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/_distribution_bar_custom_colors.md +1 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_distribution_bar/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +12 -1
- data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +5 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_close_popover.jsx +61 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.html.erb +41 -0
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +84 -37
- data/app/pb_kits/playbook/pb_filter/docs/_filter_default.md +1 -0
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_filter/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_filter/templates/_core.html.erb +18 -7
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/example.yml +0 -5
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_flex/_flex.jsx +25 -9
- data/app/pb_kits/playbook/pb_flex/_flex.scss +40 -7
- data/app/pb_kits/playbook/pb_flex/_flex_item.jsx +6 -2
- data/app/pb_kits/playbook/pb_flex/_flex_item.scss +10 -0
- data/app/pb_kits/playbook/pb_flex/docs/_description.md +6 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_align.html.erb +101 -0
- data/app/pb_kits/playbook/pb_flex/docs/{_flex_horizontal.jsx → _flex_align.jsx} +71 -77
- data/app/pb_kits/playbook/pb_flex/docs/_flex_align.md +7 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_default.html.erb +15 -15
- data/app/pb_kits/playbook/pb_flex/docs/_flex_default.jsx +17 -15
- data/app/pb_kits/playbook/pb_flex/docs/_flex_default.md +3 -1
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.html.erb +33 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.jsx +75 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_gap.md +9 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.html.erb +8 -8
- data/app/pb_kits/playbook/pb_flex/docs/_flex_inline.md +5 -1
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item.html.erb +49 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item.md +11 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_item_example.jsx +113 -0
- data/app/pb_kits/playbook/pb_flex/docs/{_flex_horizontal.html.erb → _flex_justify.html.erb} +19 -21
- data/app/pb_kits/playbook/pb_flex/docs/{_flex_vertical.jsx → _flex_justify.jsx} +41 -99
- data/app/pb_kits/playbook/pb_flex/docs/_flex_justify.md +7 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.html.erb +9 -9
- data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.jsx +2 -2
- data/app/pb_kits/playbook/pb_flex/docs/_flex_reverse.md +5 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.html.erb +23 -8
- data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.jsx +4 -4
- data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.md +7 -0
- data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.jsx +1 -1
- data/app/pb_kits/playbook/pb_flex/docs/_flex_wrap.md +5 -0
- data/app/pb_kits/playbook/pb_flex/docs/example.yml +9 -4
- data/app/pb_kits/playbook/pb_flex/docs/index.js +4 -2
- data/app/pb_kits/playbook/pb_flex/flex.rb +79 -12
- data/app/pb_kits/playbook/pb_flex/flex_item.rb +18 -1
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +7 -1
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +2 -0
- data/app/pb_kits/playbook/pb_icon/docs/example.yml +1 -2
- data/app/pb_kits/playbook/pb_icon/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_icon_circle/docs/example.yml +0 -7
- data/app/pb_kits/playbook/pb_icon_circle/docs/index.js +0 -3
- data/app/pb_kits/playbook/pb_icon_value/docs/example.yml +0 -5
- data/app/pb_kits/playbook/pb_icon_value/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_image/_image.scss +1 -0
- data/app/pb_kits/playbook/pb_layout/_layout.scss +9 -9
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.html.erb +4 -4
- data/app/pb_kits/playbook/pb_layout/docs/_layout_collection.md +1 -0
- data/app/pb_kits/playbook/pb_layout/docs/example.yml +0 -4
- data/app/pb_kits/playbook/pb_layout/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend.jsx +1 -1
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -13
- data/app/pb_kits/playbook/pb_popover/docs/index.js +0 -5
- data/app/pb_kits/playbook/pb_radio/_radio.scss +1 -0
- data/app/pb_kits/playbook/pb_select/_select.scss +6 -4
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +54 -11
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.jsx +53 -6
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +48 -9
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_block.jsx +41 -44
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.html.erb +2 -2
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx +53 -62
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_image.jsx +43 -53
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.html.erb +105 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.jsx +158 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_input.md +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.html.erb +2 -2
- data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx +46 -53
- data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_selectable_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +27 -2
- data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.scss +8 -8
- data/app/pb_kits/playbook/pb_table/_table.jsx +8 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_lg.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_multiline.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.html.erb +56 -4
- data/app/pb_kits/playbook/pb_table/docs/_table_responsive_table.jsx +64 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_sm.md +2 -0
- data/app/pb_kits/playbook/pb_table/styles/_all.scss +3 -0
- data/app/pb_kits/playbook/pb_table/styles/_desktop_collapse.scss +135 -0
- data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +135 -0
- data/app/pb_kits/playbook/pb_table/styles/_tablet_collapse.scss +135 -0
- data/app/pb_kits/playbook/pb_table/table.rb +8 -1
- data/app/pb_kits/playbook/pb_textarea/_textarea.jsx +10 -2
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_resize.html.erb +2 -2
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_resize.jsx +9 -1
- data/app/pb_kits/playbook/pb_textarea/index.js +17 -0
- data/app/pb_kits/playbook/pb_textarea/textarea.rb +3 -4
- data/app/pb_kits/playbook/pb_timestamp/_timestamp.html.erb +6 -4
- data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +92 -16
- data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +12 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_description.md +1 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +26 -18
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +21 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +40 -8
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +12 -4
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +26 -18
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.html.erb +0 -21
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +6 -28
- data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +8 -0
- data/app/pb_kits/playbook/pb_timestamp/docs/index.js +4 -0
- data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +83 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +6 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +38 -2
- data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +1 -0
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +2 -4
- data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +8 -3
- data/app/pb_kits/playbook/pb_typeahead/docs/{_typeahead_with_context_dark.html.erb → _typeahead_with_context.html.erb} +10 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async.jsx +13 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.jsx +111 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_custom_options.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills_async_users.jsx +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +2 -1
- data/app/pb_kits/playbook/pb_user_badge/docs/index.js +0 -1
- data/app/pb_kits/playbook/tokens/_border_radius.scss +21 -7
- data/app/pb_kits/playbook/utilities/_max_width.scss +15 -0
- data/app/pb_kits/playbook/utilities/_spacing.scss +20 -20
- data/app/pb_kits/playbook/utilities/globalProps.js +7 -1
- data/app/pb_kits/playbook/vendor.js +3 -0
- data/lib/playbook.rb +1 -0
- data/lib/playbook/markdown/template_handler.rb +45 -0
- data/lib/playbook/props.rb +23 -1
- data/lib/playbook/version.rb +1 -1
- metadata +42 -57
- data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +0 -3
- data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +0 -12
- data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_dark.html.erb +0 -1
- data/app/pb_kits/playbook/pb_date_range_stacked/docs/_date_range_stacked_dark.jsx +0 -15
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.html.erb +0 -5
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.jsx +0 -26
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.html.erb +0 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +0 -14
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.html.erb +0 -5
- data/app/pb_kits/playbook/pb_date_year_stacked/docs/_date_year_stacked_dark.jsx +0 -28
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_dark.html.erb +0 -21
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_dark.jsx +0 -43
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.html.erb +0 -5
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line_dark.jsx +0 -17
- data/app/pb_kits/playbook/pb_flex/docs/_flex_vertical.html.erb +0 -68
- data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.html.erb +0 -3
- data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +0 -18
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_dark.html.erb +0 -42
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_color_dark.jsx +0 -66
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_dark.html.erb +0 -4
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_dark.jsx +0 -17
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes_dark.html.erb +0 -29
- data/app/pb_kits/playbook/pb_icon_circle/docs/_icon_circle_sizes_dark.jsx +0 -38
- data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_align_dark.html.erb +0 -23
- data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_align_dark.jsx +0 -37
- data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_dark.html.erb +0 -21
- data/app/pb_kits/playbook/pb_icon_value/docs/_icon_value_dark.jsx +0 -35
- data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.html.erb +0 -32
- data/app/pb_kits/playbook/pb_layout/docs/_layout_sizes_dark.jsx +0 -97
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close_dark.html.erb +0 -43
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close_dark.jsx +0 -105
- data/app/pb_kits/playbook/pb_popover/docs/_popover_dark.html.erb +0 -25
- data/app/pb_kits/playbook/pb_popover/docs/_popover_dark.jsx +0 -51
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list_dark.html.erb +0 -13
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list_dark.jsx +0 -54
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height_dark.html.erb +0 -25
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height_dark.jsx +0 -57
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index_dark.html.erb +0 -14
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index_dark.jsx +0 -54
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.html.erb +0 -54
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.jsx +0 -73
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.html.erb +0 -177
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.jsx +0 -209
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.html.erb +0 -123
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.jsx +0 -146
- data/app/pb_kits/playbook/pb_user_badge/docs/_user_badge_size_dark.html.erb +0 -21
- data/app/pb_kits/playbook/pb_user_badge/docs/_user_badge_size_dark.jsx +0 -36
@@ -0,0 +1,135 @@
|
|
1
|
+
@import "../../tokens/border_radius";
|
2
|
+
@import "../../pb_caption/caption_mixin";
|
3
|
+
|
4
|
+
@media only screen and (max-width: $screen-lg-min) {
|
5
|
+
[class^=pb_table] {
|
6
|
+
&.table-sm.table-collapse-md,
|
7
|
+
&.table-md.table-collapse-md,
|
8
|
+
&.table-lg.table-collapse-md {
|
9
|
+
width: 100%;
|
10
|
+
background: none !important;
|
11
|
+
|
12
|
+
thead {
|
13
|
+
tr {
|
14
|
+
left: -9999px;
|
15
|
+
position: absolute;
|
16
|
+
top: -9999px;
|
17
|
+
|
18
|
+
th {
|
19
|
+
display: block;
|
20
|
+
visibility: visible;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
tbody {
|
25
|
+
tr {
|
26
|
+
td {
|
27
|
+
display: block;
|
28
|
+
visibility: visible;
|
29
|
+
border-left-width: 1px !important;
|
30
|
+
border-right-width: 1px !important;
|
31
|
+
border-bottom-width: 0 !important;
|
32
|
+
border-color: $border_light !important;
|
33
|
+
min-height: 2.2em;
|
34
|
+
position: relative;
|
35
|
+
text-align:left;
|
36
|
+
white-space: normal;
|
37
|
+
&:before {
|
38
|
+
content: attr(data-title);
|
39
|
+
@include caption;
|
40
|
+
width: 100% !important;
|
41
|
+
white-space: nowrap !important;
|
42
|
+
text-overflow: ellipsis !important;
|
43
|
+
position: relative !important;
|
44
|
+
top: 0 !important;
|
45
|
+
left: 0 !important;
|
46
|
+
height: 100% !important;
|
47
|
+
padding-left: 0 !important;
|
48
|
+
display: block !important;
|
49
|
+
}
|
50
|
+
|
51
|
+
&:first-child {
|
52
|
+
margin-top: $space_md !important;
|
53
|
+
border-top-width: 1px !important;
|
54
|
+
border-top-color: $border_light !important;
|
55
|
+
border-radius: $border_rad_light $border_rad_light 0 0;
|
56
|
+
}
|
57
|
+
|
58
|
+
&:last-child {
|
59
|
+
border-radius: 0 0 $border_rad_light $border_rad_light;
|
60
|
+
border-bottom-width: 1px !important;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
&:first-child {
|
65
|
+
td {
|
66
|
+
&:first-child {
|
67
|
+
margin-top: $space-xs !important;
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
&.table-card {
|
74
|
+
background: none !important;
|
75
|
+
|
76
|
+
tbody {
|
77
|
+
tr {
|
78
|
+
td {
|
79
|
+
background: $white !important;
|
80
|
+
border-left-width: 1px !important;
|
81
|
+
border-right-width: 1px !important;
|
82
|
+
border-top-width: 1px !important;
|
83
|
+
|
84
|
+
&:first-child {
|
85
|
+
border-radius: $border_rad_light $border_rad_light 0 0 !important;
|
86
|
+
}
|
87
|
+
&:last-child {
|
88
|
+
border-radius: 0 0 $border_rad_light $border_rad_light !important;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
@media (hover:hover) {
|
95
|
+
&:hover {
|
96
|
+
tbody {
|
97
|
+
tr {
|
98
|
+
box-shadow: 0 0 0 $white !important;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
// reset the first and last to normalize
|
104
|
+
@each $name, $value in $cell-pad-list {
|
105
|
+
&.#{$name} {
|
106
|
+
tbody {
|
107
|
+
tr {
|
108
|
+
td {
|
109
|
+
&:first-child,
|
110
|
+
&:last-child {
|
111
|
+
padding: $value $cell-gutter !important;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
&.hide-labels {
|
121
|
+
tbody {
|
122
|
+
tr {
|
123
|
+
td {
|
124
|
+
&::before {
|
125
|
+
content: '';
|
126
|
+
left: 0;
|
127
|
+
padding-right: 0;
|
128
|
+
position: relative;
|
129
|
+
width: 0;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
}
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
@@ -21,12 +21,15 @@ module Playbook
|
|
21
21
|
prop :responsive, type: Playbook::Props::Enum,
|
22
22
|
values: %w[collapse scroll none],
|
23
23
|
default: "collapse"
|
24
|
+
prop :collapse, type: Playbook::Props::Enum,
|
25
|
+
values: %w[sm md lg],
|
26
|
+
default: "sm"
|
24
27
|
prop :text
|
25
28
|
|
26
29
|
def classname
|
27
30
|
generate_classname(
|
28
31
|
"pb_table", "table-#{size}", single_line_class, dark_class,
|
29
|
-
disable_hover_class, container_class, data_table_class,
|
32
|
+
disable_hover_class, container_class, data_table_class, collapse_class,
|
30
33
|
"table-responsive-#{responsive}", separator: " "
|
31
34
|
)
|
32
35
|
end
|
@@ -52,6 +55,10 @@ module Playbook
|
|
52
55
|
def container_class
|
53
56
|
container ? "table-card" : nil
|
54
57
|
end
|
58
|
+
|
59
|
+
def collapse_class
|
60
|
+
responsive != "none" ? "table-collapse-#{collapse}" : ""
|
61
|
+
end
|
55
62
|
end
|
56
63
|
end
|
57
64
|
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
/* @flow */
|
2
2
|
|
3
|
-
import React, { forwardRef } from 'react'
|
3
|
+
import React, { forwardRef, useEffect, useRef } from 'react'
|
4
4
|
import classnames from 'classnames'
|
5
5
|
import { Body, Caption, Flex, FlexItem } from '../'
|
6
6
|
import type { InputCallback } from '../types.js'
|
7
7
|
import { globalProps } from '../utilities/globalProps.js'
|
8
|
+
import PbTextarea from './'
|
8
9
|
|
9
10
|
type TextareaProps = {
|
10
11
|
characterCount?: string,
|
@@ -22,7 +23,7 @@ type TextareaProps = {
|
|
22
23
|
name?: string,
|
23
24
|
required?: boolean,
|
24
25
|
rows?: number,
|
25
|
-
resize: 'none' | 'both' | 'horizontal' | 'vertical',
|
26
|
+
resize: 'none' | 'both' | 'horizontal' | 'vertical' | 'auto',
|
26
27
|
onChange?: InputCallback<HTMLTextAreaElement>,
|
27
28
|
}
|
28
29
|
|
@@ -43,6 +44,13 @@ const Textarea = ({
|
|
43
44
|
value,
|
44
45
|
...props
|
45
46
|
}: TextareaProps, ref: React.ElementRef<"textarea">) => {
|
47
|
+
ref = ref || useRef(false)
|
48
|
+
useEffect(() => {
|
49
|
+
if (ref.current && resize === 'auto') {
|
50
|
+
PbTextarea.addMatch(ref.current)
|
51
|
+
}
|
52
|
+
})
|
53
|
+
|
46
54
|
const errorClass = error ? 'error' : null
|
47
55
|
const resizeClass = `resize_${resize}`
|
48
56
|
const classes = classnames('pb_textarea_kit', errorClass, resizeClass, globalProps(props), className)
|
@@ -4,6 +4,15 @@ import { Textarea } from '../../'
|
|
4
4
|
const TextareaResize = (props) => {
|
5
5
|
return (
|
6
6
|
<div>
|
7
|
+
<Textarea
|
8
|
+
label="auto"
|
9
|
+
placeholder="Resize Auto"
|
10
|
+
resize="auto"
|
11
|
+
{...props}
|
12
|
+
/>
|
13
|
+
|
14
|
+
<br />
|
15
|
+
|
7
16
|
<Textarea
|
8
17
|
label="vertical"
|
9
18
|
placeholder="Resize Vertical"
|
@@ -28,7 +37,6 @@ const TextareaResize = (props) => {
|
|
28
37
|
resize="horizontal"
|
29
38
|
{...props}
|
30
39
|
/>
|
31
|
-
|
32
40
|
</div>
|
33
41
|
)
|
34
42
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import PbEnhancedElement from '../pb_enhanced_element'
|
2
|
+
|
3
|
+
export default class PbTextarea extends PbEnhancedElement {
|
4
|
+
static get selector() {
|
5
|
+
return '.resize_auto textarea'
|
6
|
+
}
|
7
|
+
|
8
|
+
onInput() {
|
9
|
+
this.style.height = 'auto'
|
10
|
+
this.style.height = (this.scrollHeight) + 'px'
|
11
|
+
}
|
12
|
+
|
13
|
+
connect() {
|
14
|
+
this.element.setAttribute('style', 'height:' + (this.element.scrollHeight) + 'px;overflow-y:hidden;')
|
15
|
+
this.element.addEventListener('input', this.onInput, false)
|
16
|
+
}
|
17
|
+
}
|
@@ -14,10 +14,10 @@ module Playbook
|
|
14
14
|
prop :name
|
15
15
|
prop :placeholder
|
16
16
|
prop :resize, type: Playbook::Props::Enum,
|
17
|
-
|
18
|
-
|
17
|
+
values: %w[none both horizontal vertical auto],
|
18
|
+
default: "none"
|
19
19
|
prop :rows, type: Playbook::Props::Number,
|
20
|
-
|
20
|
+
default: 4
|
21
21
|
prop :value
|
22
22
|
prop :character_count
|
23
23
|
prop :onkeyup
|
@@ -40,7 +40,6 @@ module Playbook
|
|
40
40
|
def resize_class
|
41
41
|
" resize_#{resize}"
|
42
42
|
end
|
43
|
-
|
44
43
|
end
|
45
44
|
end
|
46
45
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
aria: object.aria,
|
3
|
+
id: object.id,
|
4
|
+
data: object.data,
|
5
|
+
class: object.classname) do %>
|
6
|
+
|
7
|
+
<%= pb_rails("caption", props: { text: object.caption_text, size: 'xs', dark: object.dark }) %>
|
6
8
|
<% end %>
|
@@ -2,36 +2,112 @@
|
|
2
2
|
|
3
3
|
import React from 'react'
|
4
4
|
import classnames from 'classnames'
|
5
|
-
|
5
|
+
import DateTime from '../pb_kit/dateTime.js'
|
6
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
6
7
|
import { Caption } from '../'
|
7
|
-
|
8
|
-
import { buildCss, buildDataProps } from '../utilities/props'
|
9
|
-
|
10
8
|
import { globalProps } from '../utilities/globalProps.js'
|
11
9
|
|
12
10
|
type TimestampProps = {
|
11
|
+
align?: "left" | "center" | "right",
|
12
|
+
aria?: object,
|
13
|
+
className?: string | array<string>,
|
14
|
+
dark?: boolean,
|
15
|
+
data?: string,
|
16
|
+
text: string,
|
17
|
+
timestamp: string,
|
18
|
+
timezone: string,
|
13
19
|
id?: string,
|
14
|
-
|
15
|
-
|
16
|
-
|
20
|
+
showDate?: boolean,
|
21
|
+
showUser?: boolean,
|
22
|
+
showTimezone?: boolean,
|
23
|
+
variant?: "default" | "elapsed" | "updated"
|
17
24
|
}
|
18
25
|
|
19
26
|
const Timestamp = (props: TimestampProps) => {
|
20
|
-
const {
|
27
|
+
const {
|
28
|
+
align = 'left',
|
29
|
+
aria = {},
|
30
|
+
className,
|
31
|
+
dark = false,
|
32
|
+
data = {},
|
33
|
+
text,
|
34
|
+
timestamp,
|
35
|
+
timezone,
|
36
|
+
showDate = true,
|
37
|
+
showUser = false,
|
38
|
+
showTimezone = false,
|
39
|
+
variant = 'default',
|
40
|
+
} = props
|
41
|
+
|
42
|
+
const ariaProps = buildAriaProps(aria)
|
21
43
|
const dataProps = buildDataProps(data)
|
22
|
-
const
|
44
|
+
const classes = classnames(
|
45
|
+
buildCss('pb_timestamp_kit', align, {
|
46
|
+
dark: dark,
|
47
|
+
variant: variant,
|
48
|
+
}),
|
49
|
+
globalProps(props),
|
50
|
+
className
|
51
|
+
)
|
52
|
+
|
53
|
+
const currentYear = new Date().getFullYear().toString()
|
54
|
+
const dateTimestamp = new DateTime({ value: timestamp, zone: timezone })
|
55
|
+
const dateDisplay = `${dateTimestamp.toMonth()} ${dateTimestamp.toDay()}`
|
56
|
+
const shouldShowUser = showUser == true && text.length > 0
|
57
|
+
const shouldShowTimezone = showTimezone == true && timezone.length > 0
|
58
|
+
const userDisplay = shouldShowUser ? ` by ${text}` : ''
|
59
|
+
|
60
|
+
let timeDisplay = `${dateTimestamp.toHour()}:${dateTimestamp.toMinute()}${dateTimestamp.toMeridian()}`
|
61
|
+
|
62
|
+
const fullTimeDisplay = () => {
|
63
|
+
if (shouldShowTimezone) {
|
64
|
+
timeDisplay = `${timeDisplay} ${dateTimestamp.toTimezone()}`
|
65
|
+
}
|
66
|
+
return timeDisplay
|
67
|
+
}
|
68
|
+
|
69
|
+
const fullDateDisplay = () => {
|
70
|
+
let fullDisplay = `${dateTimestamp.toMonth()} ${dateTimestamp.toDay()}`
|
71
|
+
if (dateTimestamp.toYear() > currentYear) {
|
72
|
+
fullDisplay = `${fullDisplay}, ${dateTimestamp.toYear()}`
|
73
|
+
}
|
74
|
+
return `${fullDisplay} ${' \u00b7 '} ${fullTimeDisplay()}`
|
75
|
+
}
|
76
|
+
|
77
|
+
const formatUpdatedString = () => {
|
78
|
+
return `Last updated ${userDisplay} on ${dateDisplay} at ${timeDisplay}`
|
79
|
+
}
|
80
|
+
|
81
|
+
const formatElapsedString = () => {
|
82
|
+
return `Last updated ${userDisplay} ${dateTimestamp.value.fromNow()}`
|
83
|
+
}
|
84
|
+
|
85
|
+
const datetimeOrText = timestamp ? fullDateDisplay() : text
|
86
|
+
|
87
|
+
const captionText = () => {
|
88
|
+
switch (variant) {
|
89
|
+
case 'updated':
|
90
|
+
return formatUpdatedString(userDisplay, dateTimestamp)
|
91
|
+
case 'elapsed':
|
92
|
+
return formatElapsedString(userDisplay, timeDisplay)
|
93
|
+
default:
|
94
|
+
return showDate ? datetimeOrText : fullTimeDisplay()
|
95
|
+
}
|
96
|
+
}
|
23
97
|
|
24
98
|
return (
|
25
99
|
<div
|
100
|
+
{...ariaProps}
|
26
101
|
{...dataProps}
|
27
|
-
className={
|
28
|
-
id={id}
|
102
|
+
className={classes}
|
29
103
|
>
|
30
|
-
<
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
104
|
+
<div className="pb_timestamp_kit">
|
105
|
+
<Caption
|
106
|
+
dark={dark}
|
107
|
+
size="xs"
|
108
|
+
text={captionText()}
|
109
|
+
/>
|
110
|
+
</div>
|
35
111
|
</div>
|
36
112
|
)
|
37
113
|
}
|
@@ -1,5 +1,16 @@
|
|
1
1
|
@import "timestamp-mixins";
|
2
|
+
@import "../tokens/colors";
|
2
3
|
|
3
|
-
[class^=pb_timestamp_kit]
|
4
|
+
[class^=pb_timestamp_kit]{
|
4
5
|
@include pb_timestamp;
|
6
|
+
|
7
|
+
&[class*=_center] {
|
8
|
+
text-align: center;
|
9
|
+
}
|
10
|
+
&[class*=_right] {
|
11
|
+
text-align: right;
|
12
|
+
}
|
13
|
+
&[class*=_dark] {
|
14
|
+
color: $text_dk_default;
|
15
|
+
}
|
5
16
|
}
|
@@ -1 +1 @@
|
|
1
|
-
This
|
1
|
+
This low profile kit displays time. Elapsed, current, future, or otherwise.
|
@@ -1,13 +1,21 @@
|
|
1
1
|
import React from 'react'
|
2
2
|
import Timestamp from '../_timestamp.jsx'
|
3
3
|
|
4
|
+
const todaysDate = new Date()
|
5
|
+
const year = new Date().getFullYear() + 4
|
6
|
+
const month = new Date().getMonth()
|
7
|
+
const date = new Date().getDate()
|
8
|
+
const hours = new Date().getHours()
|
9
|
+
const minutes = new Date().getMinutes()
|
10
|
+
const customDate = new Date(year, month, date, hours, minutes)
|
11
|
+
|
4
12
|
const TimestampAlign = (props) => {
|
5
13
|
return (
|
6
14
|
<div>
|
7
15
|
<Timestamp
|
8
16
|
align="left"
|
9
|
-
showDate=
|
10
|
-
timestamp={
|
17
|
+
showDate={false}
|
18
|
+
timestamp={todaysDate}
|
11
19
|
{...props}
|
12
20
|
/>
|
13
21
|
|
@@ -15,8 +23,8 @@ const TimestampAlign = (props) => {
|
|
15
23
|
|
16
24
|
<Timestamp
|
17
25
|
align="left"
|
18
|
-
showDate
|
19
|
-
timestamp={
|
26
|
+
showDate
|
27
|
+
timestamp={todaysDate}
|
20
28
|
{...props}
|
21
29
|
/>
|
22
30
|
|
@@ -24,8 +32,8 @@ const TimestampAlign = (props) => {
|
|
24
32
|
|
25
33
|
<Timestamp
|
26
34
|
align="left"
|
27
|
-
showDate
|
28
|
-
timestamp={
|
35
|
+
showDate
|
36
|
+
timestamp={customDate}
|
29
37
|
{...props}
|
30
38
|
/>
|
31
39
|
|
@@ -34,8 +42,8 @@ const TimestampAlign = (props) => {
|
|
34
42
|
|
35
43
|
<Timestamp
|
36
44
|
align="center"
|
37
|
-
showDate=
|
38
|
-
timestamp={
|
45
|
+
showDate={false}
|
46
|
+
timestamp={todaysDate}
|
39
47
|
{...props}
|
40
48
|
/>
|
41
49
|
|
@@ -43,8 +51,8 @@ const TimestampAlign = (props) => {
|
|
43
51
|
|
44
52
|
<Timestamp
|
45
53
|
align="center"
|
46
|
-
showDate
|
47
|
-
timestamp={
|
54
|
+
showDate
|
55
|
+
timestamp={todaysDate}
|
48
56
|
{...props}
|
49
57
|
/>
|
50
58
|
|
@@ -52,8 +60,8 @@ const TimestampAlign = (props) => {
|
|
52
60
|
|
53
61
|
<Timestamp
|
54
62
|
align="center"
|
55
|
-
showDate
|
56
|
-
timestamp={
|
63
|
+
showDate
|
64
|
+
timestamp={customDate}
|
57
65
|
{...props}
|
58
66
|
/>
|
59
67
|
|
@@ -62,8 +70,8 @@ const TimestampAlign = (props) => {
|
|
62
70
|
|
63
71
|
<Timestamp
|
64
72
|
align="right"
|
65
|
-
showDate=
|
66
|
-
timestamp={
|
73
|
+
showDate={false}
|
74
|
+
timestamp={todaysDate}
|
67
75
|
{...props}
|
68
76
|
/>
|
69
77
|
|
@@ -71,8 +79,8 @@ const TimestampAlign = (props) => {
|
|
71
79
|
|
72
80
|
<Timestamp
|
73
81
|
align="right"
|
74
|
-
showDate
|
75
|
-
timestamp={
|
82
|
+
showDate
|
83
|
+
timestamp={todaysDate}
|
76
84
|
{...props}
|
77
85
|
/>
|
78
86
|
|
@@ -80,8 +88,8 @@ const TimestampAlign = (props) => {
|
|
80
88
|
|
81
89
|
<Timestamp
|
82
90
|
align="right"
|
83
|
-
showDate
|
84
|
-
timestamp={
|
91
|
+
showDate
|
92
|
+
timestamp={customDate}
|
85
93
|
{...props}
|
86
94
|
/>
|
87
95
|
</div>
|