playbook_ui 4.17.0 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/helpers/playbook/pb_sample_helper.rb +1 -1
- data/app/pb_kits/playbook/_playbook.scss +2 -1
- data/app/pb_kits/playbook/data/menu.yml +5 -2
- data/app/pb_kits/playbook/index.js +1 -0
- data/app/pb_kits/playbook/packs/examples.js +4 -0
- data/app/pb_kits/playbook/packs/samples.js +4 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.html.erb +1 -0
- data/app/pb_kits/playbook/pb_avatar_action_button/_avatar_action_button.jsx +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.jsx +5 -0
- data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +3 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.html.erb +15 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/_bar_graph_legend_non_clickable.jsx +24 -0
- data/app/pb_kits/playbook/pb_bar_graph/docs/example.yml +6 -4
- data/app/pb_kits/playbook/pb_bar_graph/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_caption/_caption.jsx +21 -4
- data/app/pb_kits/playbook/pb_card/_card.scss +1 -72
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +72 -0
- data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.jsx +0 -1
- data/app/pb_kits/playbook/pb_filter/Filter/SortMenu.jsx +1 -1
- data/app/pb_kits/playbook/pb_filter/templates/_default.html.erb +2 -2
- data/app/pb_kits/playbook/pb_installer/_installer.html.erb +16 -0
- data/app/pb_kits/playbook/pb_installer/_installer.jsx +54 -0
- data/app/pb_kits/playbook/pb_installer/_installer.scss +7 -0
- data/app/pb_kits/playbook/pb_installer/docs/_installer_default.html.erb +8 -0
- data/app/pb_kits/playbook/pb_installer/docs/_installer_default.jsx +16 -0
- data/app/pb_kits/playbook/pb_installer/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_installer/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_installer/installer.rb +18 -0
- data/app/pb_kits/playbook/pb_label_value/_label_value.html.erb +1 -0
- data/app/pb_kits/playbook/pb_label_value/_label_value.jsx +22 -3
- data/app/pb_kits/playbook/pb_layout/_body.html.erb +1 -1
- data/app/pb_kits/playbook/pb_layout/_column.html.erb +7 -0
- data/app/pb_kits/playbook/pb_layout/_layout.jsx +35 -15
- data/app/pb_kits/playbook/pb_layout/_layout.scss +54 -0
- data/app/pb_kits/playbook/pb_layout/body.rb +4 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.html.erb +140 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban.jsx +1234 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.html.erb +57 -0
- data/app/pb_kits/playbook/pb_layout/docs/_layout_kanban_responsive.jsx +46 -0
- data/app/pb_kits/playbook/pb_layout/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_layout/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_layout/layout.rb +12 -4
- data/app/pb_kits/playbook/pb_line_graph/_line_graph.jsx +5 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.html.erb +16 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_legend_nonclickable.jsx +23 -0
- data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +5 -3
- data/app/pb_kits/playbook/pb_line_graph/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +3 -0
- data/app/pb_kits/playbook/pb_list/_item.html.erb +3 -2
- data/app/pb_kits/playbook/pb_list/_list.html.erb +3 -3
- data/app/pb_kits/playbook/pb_list/_list.jsx +55 -10
- data/app/pb_kits/playbook/pb_list/_list_item.jsx +41 -18
- data/app/pb_kits/playbook/pb_list/docs/_list_borderless.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark.jsx +0 -5
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_borderless.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_lg.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_ordered.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_xpadding.jsx +22 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_layout_left.jsx +75 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_layout_right.jsx +75 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_lg.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_ordered.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/_list_xpadding.jsx +21 -0
- data/app/pb_kits/playbook/pb_list/docs/example.yml +12 -1
- data/app/pb_kits/playbook/pb_list/docs/index.js +11 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.html.erb +1 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +26 -4
- data/app/pb_kits/playbook/pb_message/_message.html.erb +1 -0
- data/app/pb_kits/playbook/pb_message/_message.jsx +25 -7
- data/app/pb_kits/playbook/pb_message/docs/_message_default.jsx +1 -2
- data/app/pb_kits/playbook/pb_message/message.rb +1 -1
- data/app/pb_kits/playbook/pb_person/_person.html.erb +9 -2
- data/app/pb_kits/playbook/pb_person/_person.jsx +34 -10
- data/app/pb_kits/playbook/pb_person/docs/_person_default.html.erb +5 -1
- data/app/pb_kits/playbook/pb_person_contact/_person_contact.html.erb +1 -0
- data/app/pb_kits/playbook/pb_person_contact/_person_contact.jsx +57 -5
- data/app/pb_kits/playbook/pb_person_contact/docs/_person_contact_with_wrong_numbers.jsx +32 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_person_contact/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_popover/_popover.html.erb +4 -4
- data/app/pb_kits/playbook/pb_popover/_popover.jsx +41 -8
- data/app/pb_kits/playbook/pb_popover/_popover.scss +41 -2
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.html.erb +42 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_close.jsx +99 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb +19 -7
- data/app/pb_kits/playbook/pb_popover/docs/_popover_default.jsx +22 -6
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.html.erb +11 -10
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.jsx +22 -18
- data/app/pb_kits/playbook/pb_popover/docs/_popover_list.md +1 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.html.erb +24 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_scroll_height.jsx +56 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.html.erb +14 -0
- data/app/pb_kits/playbook/pb_popover/docs/_popover_z_index.jsx +50 -0
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +12 -8
- data/app/pb_kits/playbook/pb_popover/docs/index.js +3 -3
- data/app/pb_kits/playbook/pb_popover/index.js +13 -9
- data/app/pb_kits/playbook/pb_popover/popover.rb +26 -2
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +29 -5
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb +1 -0
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +22 -13
- data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +3 -1
- data/app/pb_kits/playbook/pb_timeline/_item.html.erb +28 -0
- data/app/pb_kits/playbook/pb_timeline/_item.jsx +54 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.html.erb +6 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.jsx +43 -0
- data/app/pb_kits/playbook/pb_timeline/_timeline.scss +271 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_description.md +3 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.html.erb +43 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_default.jsx +73 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.html.erb +43 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_vertical.jsx +73 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.html.erb +44 -0
- data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_date.jsx +85 -0
- data/app/pb_kits/playbook/pb_timeline/docs/example.yml +13 -0
- data/app/pb_kits/playbook/pb_timeline/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_timeline/item.rb +25 -0
- data/app/pb_kits/playbook/pb_timeline/timeline.rb +27 -0
- data/app/pb_kits/playbook/pb_title/_title.html.erb +1 -0
- data/app/pb_kits/playbook/pb_title/_title.jsx +24 -17
- data/app/pb_kits/playbook/plugins/pb_chart.js +8 -2
- data/app/pb_kits/playbook/props.rb +7 -0
- data/app/views/layouts/playbook/application.html.slim +2 -3
- data/app/views/layouts/playbook/fullscreen.html.slim +2 -2
- data/app/views/layouts/playbook/grid.html.slim +2 -2
- data/app/views/layouts/playbook/samples.html.erb +2 -4
- data/app/views/playbook/samples/filter_table/index.html.erb +348 -0
- data/app/views/playbook/samples/filter_table/index.jsx +433 -0
- data/app/views/playbook/samples/registration/index.html.erb +316 -0
- data/app/views/playbook/samples/registration/index.jsx +476 -0
- data/lib/playbook/version.rb +1 -1
- metadata +60 -77
- data/app/pb_kits/playbook/packs/kits/pb_avatar.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_badge.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_bar_graph.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_body.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_button.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_caption.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_card.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_checkbox.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_circle_icon_button.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_contact.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_currency.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_dashboard_value.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_date.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_date_range_inline.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_date_range_stacked.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_date_stacked.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_date_year_stacked.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_distribution_bar.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_fixed_confirmation_toast.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_flex.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_form_pill.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_hashtag.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_highlight.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_home_address_street.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_icon.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_icon_circle.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_icon_value.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_image.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_label_pill.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_label_value.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_layout.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_legend.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_line_graph.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_list.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_loading_inline.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_message.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_multiple_users.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_multiple_users_stacked.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_nav.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_online_status.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_person.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_person_contact.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_pill.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_popover.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_progress_pills.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_progress_simple.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_progress_step.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_radio.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_section_separator.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_select.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_selectable_card.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_source.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_star_rating.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_stat_change.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_stat_value.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_table.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_text_input.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_textarea.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_time.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_timestamp.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_title.js +0 -1
- data/app/pb_kits/playbook/packs/kits/pb_title_count.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_title_detail.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_toggle.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_user.js +0 -2
- data/app/pb_kits/playbook/packs/kits/pb_user_badge.js +0 -2
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.html.erb +0 -19
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_any.jsx +0 -40
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.html.erb +0 -14
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_inside.jsx +0 -40
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.html.erb +0 -14
- data/app/pb_kits/playbook/pb_popover/docs/_popover_click_outside.jsx +0 -40
- data/app/pb_kits/playbook/pb_popover/docs/_popover_with_button.jsx +0 -34
- data/app/pb_kits/playbook/pb_popover/docs/_popover_with_circle.html.erb +0 -5
@@ -1,14 +1,18 @@
|
|
1
1
|
examples:
|
2
2
|
rails:
|
3
3
|
- popover_default: Default
|
4
|
-
- popover_list:
|
5
|
-
-
|
6
|
-
-
|
7
|
-
-
|
4
|
+
- popover_list: Example as dropdown
|
5
|
+
- popover_close: Close Options
|
6
|
+
- popover_z_index: Set Z-Index
|
7
|
+
- popover_scroll_height: Scroll and Height Settings
|
8
8
|
|
9
9
|
react:
|
10
10
|
- popover_default: Default
|
11
|
-
- popover_list:
|
12
|
-
-
|
13
|
-
-
|
14
|
-
-
|
11
|
+
- popover_list: Dropdown example
|
12
|
+
- popover_close: Close Options
|
13
|
+
- popover_z_index: Set Z-Index
|
14
|
+
- popover_scroll_height: Scroll and Height Settings
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { default as PopoverDefault } from './_popover_default.jsx'
|
2
2
|
export { default as PopoverList } from './_popover_list.jsx'
|
3
|
-
export { default as
|
4
|
-
export { default as
|
5
|
-
export { default as
|
3
|
+
export { default as PopoverClose } from './_popover_close.jsx'
|
4
|
+
export { default as PopoverZIndex } from './_popover_z_index.jsx'
|
5
|
+
export { default as PopoverScrollHeight } from './_popover_scroll_height.jsx'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PbEnhancedElement from '../pb_enhanced_element'
|
2
|
-
import
|
2
|
+
import { createPopper } from '@popperjs/core'
|
3
3
|
|
4
|
-
const POPOVER_OFFSET_Y =
|
4
|
+
const POPOVER_OFFSET_Y = [0, 20]
|
5
5
|
|
6
6
|
export default class PbPopover extends PbEnhancedElement {
|
7
7
|
static get selector() {
|
@@ -9,13 +9,17 @@ export default class PbPopover extends PbEnhancedElement {
|
|
9
9
|
}
|
10
10
|
|
11
11
|
connect() {
|
12
|
-
this.popper =
|
12
|
+
this.popper = createPopper(this.triggerElement, this.tooltip, {
|
13
13
|
placement: this.position,
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
strategy: 'fixed',
|
15
|
+
modifiers: [
|
16
|
+
{
|
17
|
+
name: 'offset',
|
18
|
+
options: {
|
19
|
+
offset: this.offset,
|
20
|
+
},
|
17
21
|
},
|
18
|
-
|
22
|
+
],
|
19
23
|
})
|
20
24
|
|
21
25
|
this.triggerElement.addEventListener('click', (event) => {
|
@@ -27,7 +31,7 @@ export default class PbPopover extends PbEnhancedElement {
|
|
27
31
|
}
|
28
32
|
|
29
33
|
setTimeout(() => {
|
30
|
-
this.popper.scheduleUpdate()
|
34
|
+
// this.popper.scheduleUpdate()
|
31
35
|
this.tooltip.classList.toggle('show')
|
32
36
|
}, 0)
|
33
37
|
})
|
@@ -89,7 +93,7 @@ export default class PbPopover extends PbEnhancedElement {
|
|
89
93
|
}
|
90
94
|
|
91
95
|
get offset() {
|
92
|
-
return this.element.dataset.pbPopoverOffset === 'true' ? POPOVER_OFFSET_Y :
|
96
|
+
return this.element.dataset.pbPopoverOffset === 'true' ? POPOVER_OFFSET_Y : [0, 0]
|
93
97
|
}
|
94
98
|
|
95
99
|
get closeOnClick() {
|
@@ -6,16 +6,40 @@ module Playbook
|
|
6
6
|
include Playbook::Props
|
7
7
|
partial "pb_popover/popover"
|
8
8
|
|
9
|
-
prop :position
|
9
|
+
prop :position, type: Playbook::Props::Enum,
|
10
|
+
values: %w[top bottom left right],
|
11
|
+
default: "left"
|
10
12
|
prop :trigger_element_id
|
11
13
|
prop :tooltip_id
|
14
|
+
prop :max_height
|
15
|
+
prop :max_width
|
16
|
+
prop :min_width
|
17
|
+
prop :min_height
|
18
|
+
prop :z_index, type: Playbook::Props::String
|
12
19
|
prop :offset, type: Playbook::Props::Boolean, default: false
|
13
20
|
prop :close_on_click, type: Playbook::Props::Enum,
|
14
21
|
values: %w[none outside inside any],
|
15
22
|
default: "none"
|
16
23
|
|
17
24
|
def classname
|
18
|
-
|
25
|
+
generate_classname_without_spacing("pb_popover_kit")
|
26
|
+
end
|
27
|
+
|
28
|
+
def popover_spacing_helper
|
29
|
+
generate_classname(spacing_props.nil? ? "p_sm" : spacing_props)
|
30
|
+
end
|
31
|
+
|
32
|
+
def z_index_helper
|
33
|
+
z_index.present? ? "z-index: #{z_index}" : ""
|
34
|
+
end
|
35
|
+
|
36
|
+
def width_height_helper
|
37
|
+
out = ""
|
38
|
+
out += "max-height: #{max_height}; " if max_height.present?
|
39
|
+
out += "max-width: #{max_width}; " if max_width.present?
|
40
|
+
out += "min-height: #{min_height}; " if min_height.present?
|
41
|
+
out += "min-width: #{min_width};" if min_width.present?
|
42
|
+
out
|
19
43
|
end
|
20
44
|
|
21
45
|
def data
|
@@ -3,10 +3,21 @@
|
|
3
3
|
import React from 'react'
|
4
4
|
import { Body, Title } from '../'
|
5
5
|
import classnames from 'classnames'
|
6
|
+
|
7
|
+
import {
|
8
|
+
buildAriaProps,
|
9
|
+
buildCss,
|
10
|
+
buildDataProps,
|
11
|
+
} from '../utilities/props'
|
12
|
+
|
6
13
|
import { spacing } from '../utilities/spacing.js'
|
7
14
|
|
8
15
|
type ProgressPillsProps = {
|
9
16
|
active?: Number,
|
17
|
+
aria?: object,
|
18
|
+
className?: String,
|
19
|
+
data?: object,
|
20
|
+
id?: String,
|
10
21
|
steps?: Number,
|
11
22
|
title?: String,
|
12
23
|
value?: String,
|
@@ -26,7 +37,7 @@ const showSteps = (steps, active, dark) => {
|
|
26
37
|
const ProgressPill = ({ active, dark, step }: ProgressPillProps) => (
|
27
38
|
<div
|
28
39
|
className={`pb_progress_pill${step <= active ? '_active' : '_inactive'}${
|
29
|
-
dark ? '_dark' :
|
40
|
+
dark ? '_dark' : ''
|
30
41
|
}`}
|
31
42
|
key={step}
|
32
43
|
/>
|
@@ -35,15 +46,29 @@ const ProgressPill = ({ active, dark, step }: ProgressPillProps) => (
|
|
35
46
|
const ProgressPills = (props: ProgressPillsProps) => {
|
36
47
|
const {
|
37
48
|
active = 0,
|
49
|
+
aria = {},
|
50
|
+
className,
|
51
|
+
data = {},
|
52
|
+
id,
|
38
53
|
steps = 3,
|
39
|
-
title
|
40
|
-
value
|
54
|
+
title,
|
55
|
+
value,
|
41
56
|
dark = false,
|
42
57
|
} = props
|
43
58
|
const darkClass = dark ? '_dark' : ''
|
44
59
|
|
60
|
+
const ariaProps = buildAriaProps(aria)
|
61
|
+
const dataProps = buildDataProps(data)
|
62
|
+
const classes = classnames(buildCss('pb_progress_pills_kit', darkClass), className, spacing(props))
|
63
|
+
|
45
64
|
return (
|
46
|
-
<div
|
65
|
+
<div
|
66
|
+
{...ariaProps}
|
67
|
+
{...dataProps}
|
68
|
+
className={classes}
|
69
|
+
id={id}
|
70
|
+
>
|
71
|
+
|
47
72
|
<If condition={title}>
|
48
73
|
<div className="progress_pills_status">
|
49
74
|
<Title
|
@@ -59,7 +84,6 @@ const ProgressPills = (props: ProgressPillsProps) => {
|
|
59
84
|
/>
|
60
85
|
</div>
|
61
86
|
</If>
|
62
|
-
|
63
87
|
<div className="progress_pills">{showSteps(steps, active, dark)}</div>
|
64
88
|
</div>
|
65
89
|
)
|
@@ -1,36 +1,45 @@
|
|
1
1
|
/* @flow */
|
2
2
|
import React from 'react'
|
3
3
|
import classnames from 'classnames'
|
4
|
-
import Caption from '../
|
4
|
+
import { Caption } from '../'
|
5
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
5
6
|
import { spacing } from '../utilities/spacing.js'
|
6
7
|
|
7
8
|
type SectionSeparatorProps = {
|
9
|
+
aria: object,
|
8
10
|
className: String,
|
9
|
-
|
11
|
+
dark?: Boolean,
|
12
|
+
data: object,
|
13
|
+
id: String,
|
10
14
|
orientation?: "horizontal" | "vertical",
|
15
|
+
text: String,
|
11
16
|
variant?: "card" | "background",
|
12
|
-
dark?: Boolean,
|
13
17
|
}
|
14
18
|
|
15
19
|
const SectionSeparator = (props: SectionSeparatorProps) => {
|
16
20
|
const {
|
21
|
+
aria = {},
|
17
22
|
className,
|
18
|
-
|
23
|
+
dark = false,
|
24
|
+
data = {},
|
25
|
+
id,
|
19
26
|
orientation = 'horizontal',
|
27
|
+
text,
|
20
28
|
variant = 'card',
|
21
|
-
dark = false,
|
22
29
|
} = props
|
23
30
|
const themeStyle = dark === true ? '_dark' : ''
|
24
|
-
const
|
25
|
-
|
26
|
-
|
27
|
-
className,
|
28
|
-
],
|
29
|
-
spacing(props)
|
30
|
-
)
|
31
|
+
const ariaProps = buildAriaProps(aria)
|
32
|
+
const dataProps = buildDataProps(data)
|
33
|
+
const classes = classnames(buildCss('pb_section_separator_kit', variant, orientation, themeStyle), className, spacing(props))
|
31
34
|
|
32
35
|
return (
|
33
|
-
|
36
|
+
|
37
|
+
<div
|
38
|
+
{...ariaProps}
|
39
|
+
{...dataProps}
|
40
|
+
className={classes}
|
41
|
+
id={id}
|
42
|
+
>
|
34
43
|
<span>
|
35
44
|
<Caption text={text} />
|
36
45
|
</span>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname) do %>
|
5
|
+
|
6
|
+
<div class="pb_timeline_item_left_block">
|
7
|
+
<% if object.date.present? %>
|
8
|
+
<%= pb_rails("date_stacked", props: {
|
9
|
+
date: object.date,
|
10
|
+
size: "sm",
|
11
|
+
align: "center"
|
12
|
+
}) %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div class="pb_timeline_item_step">
|
17
|
+
<%= pb_rails("icon_circle", props: {
|
18
|
+
icon: object.icon,
|
19
|
+
variant: object.icon_color,
|
20
|
+
size: "xs"
|
21
|
+
}) %>
|
22
|
+
<div class="pb_timeline_item_connector"></div>
|
23
|
+
</div>
|
24
|
+
<div class="pb_timeline_item_right_block">
|
25
|
+
<%= capture(&object.children) %>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<% end %>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
5
|
+
import { buildCss } from '../utilities/props'
|
6
|
+
import { DateStacked, IconCircle } from '..'
|
7
|
+
|
8
|
+
type ItemProps = {
|
9
|
+
className?: string,
|
10
|
+
children?: Array<React.Node>,
|
11
|
+
date?: Date,
|
12
|
+
icon?: string,
|
13
|
+
iconColor?: 'default' | 'royal' | 'blue' | 'purple' | 'teal' | 'red' | 'yellow' | 'green',
|
14
|
+
lineStyle?: 'solid' | 'dotted',
|
15
|
+
}
|
16
|
+
|
17
|
+
const TimelineItem = ({
|
18
|
+
className,
|
19
|
+
children,
|
20
|
+
date,
|
21
|
+
icon = 'user',
|
22
|
+
iconColor = 'default',
|
23
|
+
lineStyle = 'solid',
|
24
|
+
|
25
|
+
}: ItemProps) => {
|
26
|
+
const timelineItemCss = buildCss('pb_timeline_item_kit', lineStyle)
|
27
|
+
|
28
|
+
return (
|
29
|
+
<div className={classnames(timelineItemCss, className)}>
|
30
|
+
<div className="pb_timeline_item_left_block">
|
31
|
+
<If condition={date}>
|
32
|
+
<DateStacked
|
33
|
+
align="center"
|
34
|
+
date={date}
|
35
|
+
size="sm"
|
36
|
+
/>
|
37
|
+
</If>
|
38
|
+
</div>
|
39
|
+
<div className="pb_timeline_item_step">
|
40
|
+
<IconCircle
|
41
|
+
icon={icon}
|
42
|
+
size="xs"
|
43
|
+
variant={iconColor}
|
44
|
+
/>
|
45
|
+
<div className="pb_timeline_item_connector" />
|
46
|
+
</div>
|
47
|
+
<div className="pb_timeline_item_right_block">
|
48
|
+
{children}
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
)
|
52
|
+
}
|
53
|
+
|
54
|
+
export default TimelineItem
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/* @flow */
|
2
|
+
|
3
|
+
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
5
|
+
import TimelineItem from './_item.jsx'
|
6
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
7
|
+
|
8
|
+
type TimelineProps = {
|
9
|
+
aria?: object,
|
10
|
+
children?: Array<React.ReactChild>,
|
11
|
+
className?: String,
|
12
|
+
data?: String,
|
13
|
+
id?: String,
|
14
|
+
orientation?: String,
|
15
|
+
showDate?: Boolean,
|
16
|
+
}
|
17
|
+
|
18
|
+
const Timeline = ({
|
19
|
+
aria = {},
|
20
|
+
className,
|
21
|
+
children,
|
22
|
+
data = {},
|
23
|
+
orientation = 'horizontal',
|
24
|
+
showDate = false,
|
25
|
+
}: TimelineProps) => {
|
26
|
+
const ariaProps = buildAriaProps(aria)
|
27
|
+
const dataProps = buildDataProps(data)
|
28
|
+
const dateStyle = showDate === true ? '_with_date' : ''
|
29
|
+
const timelineCss = buildCss('pb_timeline_kit', `_${orientation}`, dateStyle)
|
30
|
+
return (
|
31
|
+
<div
|
32
|
+
{...ariaProps}
|
33
|
+
{...dataProps}
|
34
|
+
className={classnames(timelineCss, className)}
|
35
|
+
>
|
36
|
+
{children}
|
37
|
+
</div>
|
38
|
+
)
|
39
|
+
}
|
40
|
+
|
41
|
+
Timeline.Item = TimelineItem
|
42
|
+
|
43
|
+
export default Timeline
|
@@ -0,0 +1,271 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
@import "../tokens/spacing";
|
3
|
+
@import "../tokens/opacity";
|
4
|
+
@import "../tokens/typography";
|
5
|
+
|
6
|
+
$connector_width: 2px;
|
7
|
+
$icon_margin: $space_xs/2;
|
8
|
+
$icon_height: 28px;
|
9
|
+
$height_from_top: $icon_height/2 - $connector_width/2;
|
10
|
+
|
11
|
+
@mixin pb_timeline_line_solid($width, $height, $margin) {
|
12
|
+
width: $width;
|
13
|
+
height: $height;
|
14
|
+
background-color: $border_light;
|
15
|
+
margin: $margin;
|
16
|
+
flex-grow: 1;
|
17
|
+
}
|
18
|
+
|
19
|
+
@mixin pb_timeline_line_dotted_horizontal($width, $height, $margin) {
|
20
|
+
width: $width;
|
21
|
+
height: $height;
|
22
|
+
background: repeating-linear-gradient(to right, $border_light 0px ,$border_light 2px, transparent 3px, transparent 10px);
|
23
|
+
margin: $margin;
|
24
|
+
flex-grow: 1;
|
25
|
+
}
|
26
|
+
|
27
|
+
@mixin pb_timeline_line_dotted_vertical($width, $height, $margin) {
|
28
|
+
width: $width;
|
29
|
+
height: $height;
|
30
|
+
background: repeating-linear-gradient(0deg, $border_light 0px ,$border_light 2px, transparent 3px, transparent 10px);
|
31
|
+
margin: $margin;
|
32
|
+
flex-grow: 1;
|
33
|
+
}
|
34
|
+
|
35
|
+
@mixin flex_wrapper($flex_direction) {
|
36
|
+
display: flex;
|
37
|
+
flex-direction: $flex_direction;
|
38
|
+
}
|
39
|
+
|
40
|
+
[class^=pb_timeline_kit] {
|
41
|
+
&[class*=_horizontal] {
|
42
|
+
@include flex_wrapper(row);
|
43
|
+
width: 100%;
|
44
|
+
>div {
|
45
|
+
&:last-child {
|
46
|
+
flex-basis: auto !important;
|
47
|
+
[class=pb_timeline_item_step] {
|
48
|
+
[class=pb_timeline_item_connector] {
|
49
|
+
opacity: 0;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
[class=pb_timeline_item_right_block] {
|
53
|
+
display: block;
|
54
|
+
width: 100%;
|
55
|
+
overflow: hidden;
|
56
|
+
white-space: nowrap;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
[class*=pb_timeline_item_kit] {
|
61
|
+
&[class*=_solid] {
|
62
|
+
flex-basis: 100%;
|
63
|
+
[class=pb_timeline_item_left_block] {
|
64
|
+
height: 0px;
|
65
|
+
}
|
66
|
+
[class=pb_timeline_item_step] {
|
67
|
+
@include flex_wrapper(row);
|
68
|
+
margin-top: $space_xs;
|
69
|
+
margin-bottom: $space_xs;
|
70
|
+
[class=pb_timeline_item_connector] {
|
71
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
&[class*=_dotted] {
|
76
|
+
flex-basis: 100%;
|
77
|
+
[class=pb_timeline_item_left_block] {
|
78
|
+
height: 0;
|
79
|
+
}
|
80
|
+
[class=pb_timeline_item_step] {
|
81
|
+
@include flex_wrapper(row);
|
82
|
+
margin-top: $space_xs;
|
83
|
+
margin-bottom: $space_xs;
|
84
|
+
[class=pb_timeline_item_connector] {
|
85
|
+
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
&[class*=_with_date] {
|
91
|
+
@include flex_wrapper(row);
|
92
|
+
width: 100%;
|
93
|
+
>div {
|
94
|
+
&:last-child {
|
95
|
+
flex-basis: auto !important;
|
96
|
+
[class=pb_timeline_item_step] {
|
97
|
+
[class=pb_timeline_item_connector] {
|
98
|
+
opacity: 0;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
[class=pb_timeline_item_right_block] {
|
102
|
+
display: block;
|
103
|
+
width: 100%;
|
104
|
+
overflow: hidden;
|
105
|
+
white-space: nowrap;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
[class*=pb_timeline_item_kit] {
|
110
|
+
&[class*=_solid] {
|
111
|
+
flex-basis: 100%;
|
112
|
+
[class=pb_timeline_item_left_block] {
|
113
|
+
@include flex_wrapper(column);
|
114
|
+
height: 55px;
|
115
|
+
justify-content: flex-end;
|
116
|
+
[class=pb_date_stacked_kit_center_sm] {
|
117
|
+
[class=pb_date_stacked_day_month] {
|
118
|
+
[class=pb_caption_kit_md] {
|
119
|
+
text-align: left;
|
120
|
+
}
|
121
|
+
[class=pb_title_kit_4] {
|
122
|
+
text-align: left;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
127
|
+
[class=pb_timeline_item_step] {
|
128
|
+
@include flex_wrapper(row);
|
129
|
+
margin-top: $space_xs;
|
130
|
+
margin-bottom: $space_xs;
|
131
|
+
[class=pb_timeline_item_connector] {
|
132
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
&[class*=_dotted] {
|
137
|
+
flex-basis: 100%;
|
138
|
+
[class=pb_timeline_item_left_block] {
|
139
|
+
height: 55px;
|
140
|
+
[class=pb_date_stacked_kit_center_sm] {
|
141
|
+
[class=pb_date_stacked_day_month] {
|
142
|
+
[class=pb_caption_kit_md] {
|
143
|
+
text-align: left;
|
144
|
+
}
|
145
|
+
[class=pb_title_kit_4] {
|
146
|
+
text-align: left;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
}
|
151
|
+
[class=pb_timeline_item_step] {
|
152
|
+
@include flex_wrapper(row);
|
153
|
+
margin-top: $space_xs;
|
154
|
+
margin-bottom: $space_xs;
|
155
|
+
[class=pb_timeline_item_connector] {
|
156
|
+
@include pb_timeline_line_dotted_horizontal($connector_width, $connector_width, $height_from_top $icon_margin 0 $icon_margin );
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
}
|
163
|
+
&[class*=_vertical] {
|
164
|
+
@include flex_wrapper(column);
|
165
|
+
align-items: flex-start;
|
166
|
+
align-self: auto;
|
167
|
+
>div:last-child {
|
168
|
+
[class=pb_timeline_item_step] {
|
169
|
+
[class=pb_timeline_item_connector] {
|
170
|
+
opacity: 0;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
[class*=pb_timeline_item_kit] {
|
175
|
+
@include flex_wrapper(row);
|
176
|
+
&[class*=_solid] {
|
177
|
+
flex-basis: 100%;
|
178
|
+
[class=pb_timeline_item_step] {
|
179
|
+
@include flex_wrapper(column);
|
180
|
+
align-content: flex-start;
|
181
|
+
margin-right: $space_sm;
|
182
|
+
margin-left: $space_sm;
|
183
|
+
[class=pb_timeline_item_connector] {
|
184
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
185
|
+
}
|
186
|
+
}
|
187
|
+
[class=pb_timeline_item_left_block] {
|
188
|
+
margin-bottom: $space_lg;
|
189
|
+
width: 0px;
|
190
|
+
}
|
191
|
+
[class=pb_timeline_item_right_block] {
|
192
|
+
@include flex_wrapper(column);
|
193
|
+
margin-bottom: $space_lg;
|
194
|
+
}
|
195
|
+
}
|
196
|
+
&[class*=_dotted] {
|
197
|
+
flex-basis: 100%;
|
198
|
+
[class=pb_timeline_item_step] {
|
199
|
+
@include flex_wrapper(column);
|
200
|
+
margin-right: $space_sm;
|
201
|
+
margin-left: $space_sm;
|
202
|
+
[class=pb_timeline_item_connector] {
|
203
|
+
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
204
|
+
}
|
205
|
+
}
|
206
|
+
[class=pb_timeline_item_left_block] {
|
207
|
+
margin-bottom: $space_lg;
|
208
|
+
width: 0px;
|
209
|
+
}
|
210
|
+
[class=pb_timeline_item_right_block] {
|
211
|
+
@include flex_wrapper(column);
|
212
|
+
margin-bottom: $space_lg;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
}
|
216
|
+
&[class*=_with_date] {
|
217
|
+
@include flex_wrapper(column);
|
218
|
+
align-items: flex-start;
|
219
|
+
align-self: auto;
|
220
|
+
>div:last-child {
|
221
|
+
[class=pb_timeline_item_step] {
|
222
|
+
[class=pb_timeline_item_connector] {
|
223
|
+
opacity: 0;
|
224
|
+
}
|
225
|
+
}
|
226
|
+
}
|
227
|
+
[class*=pb_timeline_item_kit] {
|
228
|
+
@include flex_wrapper(row);
|
229
|
+
&[class*=_solid] {
|
230
|
+
flex-basis: 100%;
|
231
|
+
[class=pb_timeline_item_step] {
|
232
|
+
@include flex_wrapper(column);
|
233
|
+
align-content: flex-start;
|
234
|
+
margin-right: $space_sm;
|
235
|
+
margin-left: $space_sm;
|
236
|
+
[class=pb_timeline_item_connector] {
|
237
|
+
@include pb_timeline_line_solid($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
238
|
+
}
|
239
|
+
}
|
240
|
+
[class=pb_timeline_item_left_block] {
|
241
|
+
margin-bottom: $space_lg;
|
242
|
+
width: $space_lg;
|
243
|
+
}
|
244
|
+
[class=pb_timeline_item_right_block] {
|
245
|
+
@include flex_wrapper(column);
|
246
|
+
margin-bottom: $space_lg;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
&[class*=_dotted] {
|
250
|
+
flex-basis: 100%;
|
251
|
+
[class=pb_timeline_item_step] {
|
252
|
+
@include flex_wrapper(column);
|
253
|
+
margin-right: $space_sm;
|
254
|
+
margin-left: $space_sm;
|
255
|
+
[class=pb_timeline_item_connector] {
|
256
|
+
@include pb_timeline_line_dotted_vertical($connector_width, $connector_width, $icon_margin 0 $icon_margin $height_from_top);
|
257
|
+
}
|
258
|
+
}
|
259
|
+
[class=pb_timeline_item_left_block] {
|
260
|
+
margin-bottom: $space_lg;
|
261
|
+
width: $space_lg;
|
262
|
+
}
|
263
|
+
[class=pb_timeline_item_right_block] {
|
264
|
+
@include flex_wrapper(column);
|
265
|
+
margin-bottom: $space_lg;
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}
|
271
|
+
}
|