playbook_ui 13.21.0.pre.alpha.PBNTR238DatePickerYearBug2436 → 13.21.0.pre.alpha.PBNTR243globalpositioningpropinset2504
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/CustomCell.tsx +21 -19
- data/app/pb_kits/playbook/pb_advanced_table/Components/SortIconButton.tsx +6 -3
- data/app/pb_kits/playbook/pb_advanced_table/Components/SubRowHeaderRow.tsx +12 -8
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +14 -9
- data/app/pb_kits/playbook/pb_advanced_table/Components/ToggleIconButton.tsx +9 -5
- data/app/pb_kits/playbook/pb_advanced_table/README.md +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableBody.tsx +15 -11
- data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +12 -8
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/ExpansionControlHelpers.tsx +23 -37
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/types.ts +0 -2
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +7 -9
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +83 -80
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +14 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +19 -0
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +67 -61
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_collapsible_trail.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expanded_control.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_row_loading.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_loading.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sort_control.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_subrow_headers.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_options.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +7 -7
- data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data.js +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_mock_data_inline_loading.js +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/_chrome_styles.scss +13 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_body.html.erb +9 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +30 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +20 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +21 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +37 -0
- data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +32 -0
- data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +2 -1
- data/app/pb_kits/playbook/pb_avatar_action_button/avatar_action_button.html.erb +2 -1
- data/app/pb_kits/playbook/pb_background/background.html.erb +2 -1
- data/app/pb_kits/playbook/pb_badge/badge.html.erb +2 -1
- data/app/pb_kits/playbook/pb_body/body.html.erb +2 -1
- data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +0 -7
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.html.erb +2 -1
- data/app/pb_kits/playbook/pb_button/button.html.erb +2 -1
- data/app/pb_kits/playbook/pb_button/button.rb +2 -3
- data/app/pb_kits/playbook/pb_button_toolbar/button_toolbar.html.erb +2 -1
- data/app/pb_kits/playbook/pb_caption/caption.html.erb +2 -1
- data/app/pb_kits/playbook/pb_card/card.html.erb +2 -1
- data/app/pb_kits/playbook/pb_card/card_body.html.erb +2 -1
- data/app/pb_kits/playbook/pb_card/card_header.html.erb +2 -1
- data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +3 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.html.erb +2 -1
- data/app/pb_kits/playbook/pb_collapsible/collapsible.html.erb +2 -1
- data/app/pb_kits/playbook/pb_collapsible/collapsible_content.html.erb +2 -1
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +2 -1
- data/app/pb_kits/playbook/pb_contact/contact.html.erb +2 -1
- data/app/pb_kits/playbook/pb_currency/currency.html.erb +2 -1
- data/app/pb_kits/playbook/pb_dashboard_value/dashboard_value.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date/date.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.scss +1 -2
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +3 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +4 -2
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +2 -1
- data/app/pb_kits/playbook/pb_date_picker/date_picker.test.js +1 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_margin_bottom.html.erb +7 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_margin_bottom.jsx +41 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_picker/sass_partials/_input_styles.scss +1 -2
- data/app/pb_kits/playbook/pb_date_range_inline/date_range_inline.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date_range_stacked/date_range_stacked.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date_time/date_time.html.erb +2 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +3 -2
- data/app/pb_kits/playbook/pb_date_year_stacked/date_year_stacked.html.erb +2 -1
- data/app/pb_kits/playbook/pb_detail/detail.html.erb +2 -1
- data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +2 -1
- data/app/pb_kits/playbook/pb_dialog/dialog_body.html.erb +3 -2
- data/app/pb_kits/playbook/pb_dialog/dialog_footer.html.erb +2 -1
- data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +3 -2
- data/app/pb_kits/playbook/pb_file_upload/file_upload.html.erb +2 -1
- data/app/pb_kits/playbook/pb_filter/filter.html.erb +2 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.scss +8 -3
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/_fixed_confirmation_toast.tsx +1 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.html.erb +51 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_multi_line.jsx +62 -11
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/docs/_fixed_confirmation_toast_positions.html.erb +7 -2
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.html.erb +4 -3
- data/app/pb_kits/playbook/pb_flex/docs/_flex_spacing.html.erb +0 -4
- data/app/pb_kits/playbook/pb_flex/flex.html.erb +2 -1
- data/app/pb_kits/playbook/pb_flex/flex_item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_form_group/form_group.html.erb +2 -1
- data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +2 -2
- data/app/pb_kits/playbook/pb_hashtag/hashtag.html.erb +2 -1
- data/app/pb_kits/playbook/pb_highlight/highlight.html.erb +2 -1
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.html.erb +2 -1
- data/app/pb_kits/playbook/pb_icon/_icon.tsx +1 -0
- data/app/pb_kits/playbook/pb_icon/icon.html.erb +2 -1
- data/app/pb_kits/playbook/pb_icon/icon.rb +3 -3
- data/app/pb_kits/playbook/pb_icon_circle/icon_circle.html.erb +2 -1
- data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.html.erb +2 -1
- data/app/pb_kits/playbook/pb_icon_value/icon_value.html.erb +2 -1
- data/app/pb_kits/playbook/pb_image/image.html.erb +2 -1
- data/app/pb_kits/playbook/pb_label_pill/label_pill.html.erb +2 -1
- data/app/pb_kits/playbook/pb_label_value/label_value.html.erb +3 -2
- data/app/pb_kits/playbook/pb_layout/body.html.erb +2 -1
- data/app/pb_kits/playbook/pb_layout/footer.html.erb +2 -1
- data/app/pb_kits/playbook/pb_layout/header.html.erb +2 -1
- data/app/pb_kits/playbook/pb_layout/item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_layout/layout.html.erb +2 -1
- data/app/pb_kits/playbook/pb_layout/sidebar.html.erb +2 -1
- data/app/pb_kits/playbook/pb_legend/legend.html.erb +2 -1
- data/app/pb_kits/playbook/pb_list/item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_list/list.html.erb +2 -1
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb +2 -1
- data/app/pb_kits/playbook/pb_message/message.html.erb +2 -1
- data/app/pb_kits/playbook/pb_message/message_mention.html.erb +3 -2
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.html.erb +2 -1
- data/app/pb_kits/playbook/pb_multiple_users/multiple_users.html.erb +2 -1
- data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.html.erb +2 -1
- data/app/pb_kits/playbook/pb_nav/item.html.erb +4 -2
- data/app/pb_kits/playbook/pb_nav/nav.html.erb +2 -1
- data/app/pb_kits/playbook/pb_online_status/online_status.html.erb +2 -1
- data/app/pb_kits/playbook/pb_pagination/pagination.html.erb +2 -1
- data/app/pb_kits/playbook/pb_passphrase/passphrase.html.erb +1 -1
- data/app/pb_kits/playbook/pb_person/person.html.erb +2 -1
- data/app/pb_kits/playbook/pb_person_contact/person_contact.html.erb +2 -1
- data/app/pb_kits/playbook/pb_pill/pill.html.erb +2 -1
- data/app/pb_kits/playbook/pb_popover/popover.html.erb +2 -1
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.html.erb +2 -1
- data/app/pb_kits/playbook/pb_progress_simple/progress_simple.html.erb +2 -1
- data/app/pb_kits/playbook/pb_progress_step/progress_step.html.erb +2 -1
- data/app/pb_kits/playbook/pb_progress_step/progress_step_item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_radio/radio.html.erb +2 -1
- data/app/pb_kits/playbook/pb_section_separator/section_separator.html.erb +2 -1
- data/app/pb_kits/playbook/pb_select/select.html.erb +2 -1
- data/app/pb_kits/playbook/pb_selectable_card/selectable_card.html.erb +2 -1
- data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.html.erb +2 -1
- data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.html.erb +2 -1
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list.html.erb +2 -1
- data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_source/source.html.erb +2 -1
- data/app/pb_kits/playbook/pb_star_rating/star_rating.html.erb +2 -1
- data/app/pb_kits/playbook/pb_stat_change/stat_change.html.erb +2 -1
- data/app/pb_kits/playbook/pb_stat_value/stat_value.html.erb +2 -1
- data/app/pb_kits/playbook/pb_table/table.html.erb +4 -2
- data/app/pb_kits/playbook/pb_table/table_body.html.erb +5 -3
- data/app/pb_kits/playbook/pb_table/table_cell.html.erb +5 -3
- data/app/pb_kits/playbook/pb_table/table_head.html.erb +5 -3
- data/app/pb_kits/playbook/pb_table/table_header.html.erb +5 -3
- data/app/pb_kits/playbook/pb_table/table_row.html.erb +5 -3
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +0 -1
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +5 -1
- data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +2 -1
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +2 -1
- data/app/pb_kits/playbook/pb_text_input/text_input.test.js +1 -1
- data/app/pb_kits/playbook/pb_textarea/textarea.html.erb +2 -1
- data/app/pb_kits/playbook/pb_time/time.html.erb +2 -1
- data/app/pb_kits/playbook/pb_time_range_inline/time_range_inline.html.erb +3 -2
- data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +2 -1
- data/app/pb_kits/playbook/pb_timeline/item.html.erb +2 -1
- data/app/pb_kits/playbook/pb_timeline/timeline.html.erb +2 -1
- data/app/pb_kits/playbook/pb_timestamp/timestamp.html.erb +2 -1
- data/app/pb_kits/playbook/pb_title/title.html.erb +3 -2
- data/app/pb_kits/playbook/pb_title_count/title_count.html.erb +2 -1
- data/app/pb_kits/playbook/pb_title_detail/title_detail.html.erb +2 -1
- data/app/pb_kits/playbook/pb_toggle/toggle.html.erb +2 -1
- data/app/pb_kits/playbook/pb_tooltip/tooltip.html.erb +2 -1
- data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +2 -1
- data/app/pb_kits/playbook/pb_user/user.html.erb +2 -1
- data/app/pb_kits/playbook/pb_user_badge/user_badge.html.erb +2 -1
- data/app/pb_kits/playbook/pb_weekday_stacked/weekday_stacked.html.erb +2 -1
- data/app/pb_kits/playbook/utilities/_positioning.scss +23 -10
- data/app/pb_kits/playbook/utilities/globalProps.ts +52 -9
- data/dist/playbook-rails.js +4 -4
- data/lib/playbook/bottom.rb +6 -3
- data/lib/playbook/kit_base.rb +18 -0
- data/lib/playbook/left.rb +6 -3
- data/lib/playbook/right.rb +6 -3
- data/lib/playbook/top.rb +6 -3
- data/lib/playbook/version.rb +1 -1
- metadata +16 -5
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { AdvancedTable } from "../../"
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "../../"
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableDefault = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableDefault = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
return (
|
39
39
|
<div>
|
@@ -43,7 +43,7 @@ const AdvancedTableDefault = (props) => {
|
|
43
43
|
{...props}
|
44
44
|
/>
|
45
45
|
</div>
|
46
|
-
)
|
47
|
-
}
|
46
|
+
)
|
47
|
+
}
|
48
48
|
|
49
|
-
export default AdvancedTableDefault
|
49
|
+
export default AdvancedTableDefault
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React, { useState } from "react"
|
2
|
-
import { AdvancedTable } from "../../"
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React, { useState } from "react"
|
2
|
+
import { AdvancedTable } from "../../"
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableExpandedControl = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableExpandedControl = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
//State for manually effecting what is expanded
|
39
39
|
const [expanded, setExpanded] = useState({'0': true, '0.0': true, '0.0.1': true})
|
@@ -53,7 +53,7 @@ const AdvancedTableExpandedControl = (props) => {
|
|
53
53
|
{...props}
|
54
54
|
/>
|
55
55
|
</div>
|
56
|
-
)
|
57
|
-
}
|
56
|
+
)
|
57
|
+
}
|
58
58
|
|
59
|
-
export default AdvancedTableExpandedControl
|
59
|
+
export default AdvancedTableExpandedControl
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { AdvancedTable } from "../.."
|
3
|
-
import { MOCK_DATA_INLINE_LOADING } from "./_mock_data_inline_loading"
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "../.."
|
3
|
+
import { MOCK_DATA_INLINE_LOADING } from "./_mock_data_inline_loading"
|
4
4
|
|
5
5
|
const AdvancedTableInlineRowLoading = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableInlineRowLoading = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
//Render the subRow header rows
|
39
39
|
const subRowHeaders = ["Quarter", "Month", "Day"]
|
@@ -52,7 +52,7 @@ const AdvancedTableInlineRowLoading = (props) => {
|
|
52
52
|
<AdvancedTable.Body subRowHeaders={subRowHeaders}/>
|
53
53
|
</AdvancedTable>
|
54
54
|
</div>
|
55
|
-
)
|
56
|
-
}
|
55
|
+
)
|
56
|
+
}
|
57
57
|
|
58
|
-
export default AdvancedTableInlineRowLoading
|
58
|
+
export default AdvancedTableInlineRowLoading
|
@@ -1,4 +1,4 @@
|
|
1
|
-
As a default, the kit assumes that the initial dataset is complete, and it renders all expansion buttons/controls based on that data; if no children are present, no expansion controls are rendered. If, however, you want to change the initial dataset to omit some or all of its children (to improve load times of a complex dataset, perhaps), and you implement a querying logic that loads children only when its parent is expanded, then you must use the `inlineRowLoading` prop to ensure your expansion controls are rendered even though your child data is not yet loaded. You must also pass an empty `children` array to any node that will have children to ensure its parent maintains its ability to expand. If this prop is called AND your data contains empty `children` arrays, the kit will render expansion controls on any row with empty children, and then add an inline loading state within the expanded subrow until those child row(s) are returned to the page [by your query logic].
|
1
|
+
As a default, the kit assumes that the initial dataset is complete, and it renders all expansion buttons/controls based on that data; if no children are present, no expansion controls are rendered. If, however, you want to change the initial dataset to omit some or all of its children (to improve load times of a complex dataset, perhaps), and you implement a querying logic that loads children only when its parent is expanded, then you must use the `inlineRowLoading` prop to ensure your expansion controls are rendered even though your child data is not yet loaded. You must also pass an empty `children` array to any node that will have children to ensure its parent maintains its ability to expand. If this prop is called AND your data contains empty `children` arrays, the kit will render expansion controls on any row with empty children, and then add an inline loading state within the expanded subrow until those child row(s) are returned to the page [by your query logic].
|
2
2
|
|
3
3
|
In this code example, 2021 has an empty children array. Toggle it open to see the inline loading state. Once the correct data loads, this state will be replaced with the correct data rows.
|
4
4
|
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import React, { useState } from "react"
|
2
|
-
import { AdvancedTable } from "../../"
|
1
|
+
import React, { useState } from "react"
|
2
|
+
import { AdvancedTable } from "../../"
|
3
3
|
import { Button } from "../../"
|
4
|
-
import { MOCK_DATA } from "./_mock_data"
|
4
|
+
import { MOCK_DATA } from "./_mock_data"
|
5
5
|
|
6
6
|
const AdvancedTableLoading = (props) => {
|
7
7
|
|
@@ -37,7 +37,7 @@ const [isloading, setIsLoading] = useState(true)
|
|
37
37
|
accessor: "graduatedStudents",
|
38
38
|
label: "Graduated Students",
|
39
39
|
},
|
40
|
-
]
|
40
|
+
]
|
41
41
|
|
42
42
|
return (
|
43
43
|
<div>
|
@@ -54,7 +54,7 @@ const [isloading, setIsLoading] = useState(true)
|
|
54
54
|
{...props}
|
55
55
|
/>
|
56
56
|
</div>
|
57
|
-
)
|
58
|
-
}
|
57
|
+
)
|
58
|
+
}
|
59
59
|
|
60
|
-
export default AdvancedTableLoading
|
60
|
+
export default AdvancedTableLoading
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { AdvancedTable } from "../.."
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "../.."
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableSort = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableSort = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
return (
|
39
39
|
<div>
|
@@ -46,7 +46,7 @@ const AdvancedTableSort = (props) => {
|
|
46
46
|
<AdvancedTable.Body />
|
47
47
|
</AdvancedTable>
|
48
48
|
</div>
|
49
|
-
)
|
50
|
-
}
|
49
|
+
)
|
50
|
+
}
|
51
51
|
|
52
|
-
export default AdvancedTableSort
|
52
|
+
export default AdvancedTableSort
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React, { useState } from "react"
|
2
|
-
import { AdvancedTable } from "../.."
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React, { useState } from "react"
|
2
|
+
import { AdvancedTable } from "../.."
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableSortControl = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableSortControl = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
//State for sort direction
|
39
39
|
const [isSortDesc, setIsSortDesc] = useState({desc: false})
|
@@ -57,7 +57,7 @@ const AdvancedTableSortControl = (props) => {
|
|
57
57
|
<AdvancedTable.Body />
|
58
58
|
</AdvancedTable>
|
59
59
|
</div>
|
60
|
-
)
|
61
|
-
}
|
60
|
+
)
|
61
|
+
}
|
62
62
|
|
63
|
-
export default AdvancedTableSortControl
|
63
|
+
export default AdvancedTableSortControl
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { AdvancedTable } from "../.."
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "../.."
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableSubrowHeaders = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableSubrowHeaders = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
//Render the subRow header rows
|
39
39
|
const subRowHeaders = ["Quarter", "Month", "Day"]
|
@@ -51,7 +51,7 @@ const AdvancedTableSubrowHeaders = (props) => {
|
|
51
51
|
<AdvancedTable.Body subRowHeaders={subRowHeaders}/>
|
52
52
|
</AdvancedTable>
|
53
53
|
</div>
|
54
|
-
)
|
55
|
-
}
|
54
|
+
)
|
55
|
+
}
|
56
56
|
|
57
|
-
export default AdvancedTableSubrowHeaders
|
57
|
+
export default AdvancedTableSubrowHeaders
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { AdvancedTable } from "../../"
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "../../"
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableTableOptions = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableTableOptions = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
const tableOptions = {
|
39
39
|
initialState: {
|
@@ -55,7 +55,7 @@ const AdvancedTableTableOptions = (props) => {
|
|
55
55
|
{...props}
|
56
56
|
/>
|
57
57
|
</div>
|
58
|
-
)
|
59
|
-
}
|
58
|
+
)
|
59
|
+
}
|
60
60
|
|
61
|
-
export default AdvancedTableTableOptions
|
61
|
+
export default AdvancedTableTableOptions
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import { AdvancedTable } from "../../"
|
3
|
-
import { MOCK_DATA } from "./_mock_data"
|
1
|
+
import React from "react"
|
2
|
+
import { AdvancedTable } from "../../"
|
3
|
+
import { MOCK_DATA } from "./_mock_data"
|
4
4
|
|
5
5
|
const AdvancedTableTableProps = (props) => {
|
6
6
|
const columnDefinitions = [
|
@@ -33,7 +33,7 @@ const AdvancedTableTableProps = (props) => {
|
|
33
33
|
accessor: "graduatedStudents",
|
34
34
|
label: "Graduated Students",
|
35
35
|
},
|
36
|
-
]
|
36
|
+
]
|
37
37
|
|
38
38
|
const tableProps = {
|
39
39
|
container: false,
|
@@ -49,7 +49,7 @@ const AdvancedTableTableProps = (props) => {
|
|
49
49
|
{...props}
|
50
50
|
/>
|
51
51
|
</div>
|
52
|
-
)
|
53
|
-
}
|
52
|
+
)
|
53
|
+
}
|
54
54
|
|
55
|
-
export default AdvancedTableTableProps
|
55
|
+
export default AdvancedTableTableProps
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbAdvancedTable
|
5
|
+
class TableBody < Playbook::KitBase
|
6
|
+
prop :table_data, type: Playbook::Props::Array,
|
7
|
+
default: []
|
8
|
+
prop :column_definitions, type: Playbook::Props::Array,
|
9
|
+
default: []
|
10
|
+
|
11
|
+
def render_row_and_children(row, column_definitions, current_depth = 0)
|
12
|
+
output = ActiveSupport::SafeBuffer.new
|
13
|
+
|
14
|
+
output << pb_rails("advanced_table/table_row", props: { row: row, column_definitions: column_definitions, depth: current_depth })
|
15
|
+
|
16
|
+
if row[:children].present?
|
17
|
+
row[:children].each do |child_row|
|
18
|
+
output << render_row_and_children(child_row, column_definitions, current_depth + 1)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
output
|
23
|
+
end
|
24
|
+
|
25
|
+
def classname
|
26
|
+
generate_classname("pb_advanced_table_body", "pb_table_tbody", separator: " ")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
aria: object.aria,
|
3
|
+
class: object.classname,
|
4
|
+
data: object.data,
|
5
|
+
id: object.id) do %>
|
6
|
+
<%= pb_rails("table/table_row", props: {tag:"div"}) do %>
|
7
|
+
<% object.column_definitions.each_with_index do |item, index| %>
|
8
|
+
<%= pb_rails("table/table_header", props: { tag:"div", id:item[:accessor], classname:object.th_classname}) do %>
|
9
|
+
<%= pb_rails("flex", props:{ align: "center", justify: index.zero? ? "start" : "end", text_align:"end" }) do %>
|
10
|
+
<% if index.zero? && (object.enable_toggle_expansion == "header" || object.enable_toggle_expansion == "all") %>
|
11
|
+
<button class="gray-icon toggle-all-icon">
|
12
|
+
<%= pb_rails("icon", props: { icon: "arrows-from-line", cursor: "pointer", fixed_width: true, padding_right:"xs" }) %>
|
13
|
+
</button>
|
14
|
+
<% end %>
|
15
|
+
<%= item[:label] %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
20
|
+
<% end %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbAdvancedTable
|
5
|
+
class TableHeader < Playbook::KitBase
|
6
|
+
prop :column_definitions, type: Playbook::Props::Array,
|
7
|
+
default: []
|
8
|
+
prop :enable_toggle_expansion, type: Playbook::Props::Enum,
|
9
|
+
values: %w[all header none],
|
10
|
+
default: "header"
|
11
|
+
|
12
|
+
def classname
|
13
|
+
generate_classname("pb_advanced_table_header", "pb_table_thead", separator: " ")
|
14
|
+
end
|
15
|
+
|
16
|
+
def th_classname
|
17
|
+
generate_classname("table-header-cells", separator: " ")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
aria: object.aria,
|
3
|
+
class: object.classname,
|
4
|
+
data: object.data,
|
5
|
+
id: object.id) do %>
|
6
|
+
<% object.column_definitions.each_with_index do |column, index| %>
|
7
|
+
<%= pb_rails("table/table_cell", props: { tag:"div", classname:object.td_classname}) do %>
|
8
|
+
<%= pb_rails("flex", props:{ align: "center", justify: index.zero? ? "start" : "end" }) do %>
|
9
|
+
<div style="padding-left: <%= depth * 1.25 %>em">
|
10
|
+
<%= pb_rails("flex", props:{align: "center", column_gap: "xs"}) do %>
|
11
|
+
<% if index.zero? && object.row[:children].present? %>
|
12
|
+
<button class="gray-icon expand-toggle-icon">
|
13
|
+
<%= pb_rails("icon", props: { icon: "circle-play", cursor: "pointer" }) %>
|
14
|
+
</button>
|
15
|
+
<% end %>
|
16
|
+
<%= pb_rails("flex/flex_item", props:{padding_left: index.zero? && object.row[:children].present? ? "none" : "xs"}) do %>
|
17
|
+
<% if index.zero? %>
|
18
|
+
<% if object.depth.zero? %>
|
19
|
+
<%= object.row[column[:accessor].to_sym] %>
|
20
|
+
<% else %>
|
21
|
+
<% object.depth_accessors.each_with_index do |item, accessor_index| %>
|
22
|
+
<% if object.depth - 1 == accessor_index %>
|
23
|
+
<% key = item.to_sym %>
|
24
|
+
<%= object.row[key] %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
<% else %>
|
29
|
+
<%= object.row[column[:accessor].to_sym] %>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
<% end %>
|
33
|
+
</div>
|
34
|
+
<% end %>
|
35
|
+
<% end %>
|
36
|
+
<% end %>
|
37
|
+
<% end %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbAdvancedTable
|
5
|
+
class TableRow < Playbook::KitBase
|
6
|
+
prop :column_definitions, type: Playbook::Props::Array,
|
7
|
+
default: []
|
8
|
+
prop :row
|
9
|
+
prop :depth
|
10
|
+
|
11
|
+
def classname
|
12
|
+
generate_classname("pb_table_tr", "bg-white", subrow_depth_classname, separator: " ")
|
13
|
+
end
|
14
|
+
|
15
|
+
def td_classname
|
16
|
+
generate_classname("id-cell", "chrome-styles", separator: " ")
|
17
|
+
end
|
18
|
+
|
19
|
+
def depth_accessors
|
20
|
+
column_definitions.flat_map do |column|
|
21
|
+
column[:cellAccessors] if column.key?(:cellAccessors)
|
22
|
+
end.compact
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def subrow_depth_classname
|
28
|
+
depth.positive? ? "depth-sub-row-#{depth}" : ""
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -2,7 +2,8 @@
|
|
2
2
|
id: object.id,
|
3
3
|
data: object.data.merge(initials: object.initials),
|
4
4
|
class: object.classname,
|
5
|
-
aria: object.aria
|
5
|
+
aria: object.aria,
|
6
|
+
**combined_html_options) do %>
|
6
7
|
<%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
|
7
8
|
<%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
|
8
9
|
<% end %>
|
@@ -2,7 +2,8 @@
|
|
2
2
|
aria: object.aria,
|
3
3
|
id: object.id,
|
4
4
|
data: object.data,
|
5
|
-
class: object.classname
|
5
|
+
class: object.classname,
|
6
|
+
**combined_html_options) do %>
|
6
7
|
<% if object.tooltip_text.present? %>
|
7
8
|
<%= pb_rails("tooltip", props: {
|
8
9
|
trigger_element_id: object.tooltip_id,
|
@@ -7,7 +7,8 @@
|
|
7
7
|
style: "background-image: url('#{object.image_url}');
|
8
8
|
background-repeat: #{object.background_repeat};
|
9
9
|
background-size: #{object.background_size};
|
10
|
-
background-position: #{object.background_position};"
|
10
|
+
background-position: #{object.background_position};",
|
11
|
+
**combined_html_options
|
11
12
|
) do %>
|
12
13
|
<%= content.presence %>
|
13
14
|
<% end %>
|
@@ -1,4 +1,3 @@
|
|
1
|
-
@import "../tokens/border_radius";
|
2
1
|
@import "../tokens/colors";
|
3
2
|
@import "../tokens/opacity";
|
4
3
|
@import "../tokens/spacing";
|
@@ -10,11 +9,7 @@
|
|
10
9
|
display: inline-flex;
|
11
10
|
align-items: center;
|
12
11
|
justify-content: center;
|
13
|
-
border-radius: $border_rad_light;
|
14
12
|
padding: 0 $space_xs/2;
|
15
|
-
border-width: 1px;
|
16
|
-
border-style: solid;
|
17
|
-
border-color: $card_light;
|
18
13
|
|
19
14
|
svg {
|
20
15
|
margin-right: 8px;
|
@@ -44,8 +39,6 @@
|
|
44
39
|
}
|
45
40
|
|
46
41
|
&.dark {
|
47
|
-
border-width: 0;
|
48
|
-
|
49
42
|
@each $color_name, $color_value in $status_colors {
|
50
43
|
&[class*=_#{$color_name}] {
|
51
44
|
background: rgba(mix($bg_dark, $color_value, 10%), $opacity_2);
|
@@ -2,7 +2,8 @@
|
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
4
|
class: object.classname,
|
5
|
-
aria: object.aria
|
5
|
+
aria: object.aria,
|
6
|
+
**combined_html_options) do%>
|
6
7
|
<%= content_tag(object.link ? 'a' : 'span', class: 'bread_crumb_item', href: object.link) do %>
|
7
8
|
<%= content.presence %>
|
8
9
|
<% end %>
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<%= content_tag(object.tag,
|
2
|
-
|
2
|
+
object.tag == "button" ? object.options : object.link_options,
|
3
|
+
**combined_html_options) do %>
|
3
4
|
<% if object.variant === "reaction" %>
|
4
5
|
<% if icon && object.valid_emoji(object.icon) %>
|
5
6
|
<%= pb_rails("flex", props:{ align: "center" }) do %>
|
@@ -34,10 +34,8 @@ module Playbook
|
|
34
34
|
default: "far"
|
35
35
|
|
36
36
|
def options
|
37
|
-
{
|
38
|
-
aria: aria,
|
37
|
+
options = {
|
39
38
|
class: classname,
|
40
|
-
data: data,
|
41
39
|
disabled: disabled,
|
42
40
|
id: id,
|
43
41
|
role: "button",
|
@@ -46,6 +44,7 @@ module Playbook
|
|
46
44
|
value: value,
|
47
45
|
form: form,
|
48
46
|
}.compact
|
47
|
+
combined_html_options.merge!(options) if combined_html_options.present?
|
49
48
|
end
|
50
49
|
|
51
50
|
def target_attribute
|