playbook_ui 14.18.0.pre.alpha.revert4567revert4553PLAY2056ATcolbordercolors7469 → 14.18.0.pre.rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +3 -23
- data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +3 -67
- data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/ExpansionControlHelpers.tsx +19 -29
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +143 -365
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +1 -14
- data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +1 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +2 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +2 -2
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -1
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +2 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +2 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -10
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -6
- data/app/pb_kits/playbook/pb_advanced_table/index.js +0 -7
- data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/circleChart.test.js +2 -2
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.html.erb +2 -2
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +2 -2
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.html.erb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +3 -2
- data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +1 -39
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +0 -4
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +1 -9
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +0 -14
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +45 -19
- data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_copy_button/docs/index.js +1 -2
- data/app/pb_kits/playbook/pb_copy_button/index.js +20 -46
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +0 -12
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -12
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +1 -50
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +1 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_rails.md +0 -4
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_range_limit.md +1 -1
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_react.md +1 -5
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_date_picker/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_date_picker/plugins/quickPick.tsx +0 -10
- data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -10
- data/app/pb_kits/playbook/pb_dialog/dialog.rb +0 -2
- data/app/pb_kits/playbook/pb_dialog/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_dialog/index.js +14 -106
- data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -3
- data/app/pb_kits/playbook/pb_draggable/draggable.rb +1 -9
- data/app/pb_kits/playbook/pb_draggable/index.js +142 -139
- data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +1 -1
- data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +1 -4
- data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +1 -1
- data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_form_group/_form_group.scss +3 -23
- data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +5 -15
- data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +6 -39
- data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_layout/_layout.scss +1 -70
- data/app/pb_kits/playbook/pb_layout/_layout.tsx +2 -29
- data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +118 -322
- data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.md +1 -1
- data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +43 -74
- data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +4 -21
- data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_overlay/_overlay.scss +22 -83
- data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +7 -39
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md +7 -1
- data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -5
- data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -5
- data/app/pb_kits/playbook/pb_overlay/overlay.test.jsx +1 -39
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +0 -13
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +1 -3
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.jsx +1 -8
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +0 -19
- data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_popover/index.ts +1 -13
- data/app/pb_kits/playbook/pb_popover/popover.rb +0 -2
- data/app/pb_kits/playbook/pb_select/docs/_select_error.jsx +2 -7
- data/app/pb_kits/playbook/pb_table/_table.tsx +2 -2
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.md +1 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.md +1 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md +1 -3
- data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md +1 -3
- data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +1 -1
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +5 -13
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +1 -9
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_text_input/inputMask.ts +1 -8
- data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx +1 -7
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.jsx +2 -6
- data/dist/chunks/_typeahead-C2GOKWtm.js +22 -0
- data/dist/chunks/_weekday_stacked-CFGTPT0O.js +45 -0
- data/dist/chunks/lib-BGzBzFZX.js +29 -0
- data/dist/chunks/{pb_form_validation-BWjy4bFn.js → pb_form_validation-BvNy9Bd6.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/menu.yml +2 -2
- data/dist/playbook-doc.js +1 -19
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +2 -2
- metadata +8 -71
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.jsx +0 -80
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb +0 -58
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expand_by_depth.jsx +0 -66
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expand_by_depth.md +0 -10
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.jsx +0 -58
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.md +0 -6
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.jsx +0 -64
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +0 -8
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +0 -55
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +0 -33
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +0 -3
- data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +0 -97
- data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +0 -53
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
- data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_size.html.erb +0 -28
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_size.jsx +0 -42
- data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_size.md +0 -1
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.jsx +0 -54
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.md +0 -3
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook_rails.html.erb +0 -14
- data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook_rails.md +0 -3
- data/app/pb_kits/playbook/pb_copy_button/usePBCopy.ts +0 -45
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +0 -34
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.md +0 -14
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern_rails.html.erb +0 -20
- data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern_rails.md +0 -14
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_turbo_frames.html.erb +0 -117
- data/app/pb_kits/playbook/pb_dialog/docs/_dialog_turbo_frames_rails.md +0 -9
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones.html.erb +0 -43
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors.html.erb +0 -55
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors_rails.md +0 -1
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners.html.erb +0 -42
- data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners.md +0 -1
- data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.html.erb +0 -41
- data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.md +0 -1
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -30
- data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +0 -85
- data/app/pb_kits/playbook/pb_layout/subcomponents/_participant.tsx +0 -79
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +0 -52
- data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +0 -1
- data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +0 -110
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.jsx +0 -63
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.md +0 -3
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_background.jsx +0 -49
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_background.md +0 -1
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_opacity.jsx +0 -81
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_opacity.md +0 -1
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.jsx +0 -39
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.md +0 -1
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.jsx +0 -40
- data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +0 -5
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.html.erb +0 -10
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.jsx +0 -20
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.md +0 -1
- data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.html.erb +0 -46
- data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.md +0 -1
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_sanitize.jsx +0 -94
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_sanitize.md +0 -1
- data/dist/chunks/_typeahead-D8CsVBZO.js +0 -22
- data/dist/chunks/_weekday_stacked-D3oLTSkH.js +0 -45
- data/dist/chunks/lib-BmTAc7Nc.js +0 -29
- /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_react.md → _draggable_drop_zones.md} +0 -0
- /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_colors_react.md → _draggable_drop_zones_colors.md} +0 -0
@@ -1,55 +0,0 @@
|
|
1
|
-
import React from "react"
|
2
|
-
import AdvancedTable from '../../pb_advanced_table/_advanced_table'
|
3
|
-
import MOCK_DATA from "./advanced_table_mock_data.json"
|
4
|
-
|
5
|
-
const AdvancedTableStickyHeader = (props) => {
|
6
|
-
const columnDefinitions = [
|
7
|
-
{
|
8
|
-
accessor: "year",
|
9
|
-
label: "Year",
|
10
|
-
cellAccessors: ["quarter", "month", "day"],
|
11
|
-
},
|
12
|
-
{
|
13
|
-
accessor: "newEnrollments",
|
14
|
-
label: "New Enrollments",
|
15
|
-
},
|
16
|
-
{
|
17
|
-
accessor: "scheduledMeetings",
|
18
|
-
label: "Scheduled Meetings",
|
19
|
-
},
|
20
|
-
{
|
21
|
-
accessor: "attendanceRate",
|
22
|
-
label: "Attendance Rate",
|
23
|
-
},
|
24
|
-
{
|
25
|
-
accessor: "completedClasses",
|
26
|
-
label: "Completed Classes",
|
27
|
-
},
|
28
|
-
{
|
29
|
-
accessor: "classCompletionRate",
|
30
|
-
label: "Class Completion Rate",
|
31
|
-
},
|
32
|
-
{
|
33
|
-
accessor: "graduatedStudents",
|
34
|
-
label: "Graduated Students",
|
35
|
-
},
|
36
|
-
]
|
37
|
-
|
38
|
-
const tableProps = {
|
39
|
-
sticky: true
|
40
|
-
}
|
41
|
-
|
42
|
-
return (
|
43
|
-
<div>
|
44
|
-
<AdvancedTable
|
45
|
-
columnDefinitions={columnDefinitions}
|
46
|
-
responsive="none"
|
47
|
-
tableData={MOCK_DATA}
|
48
|
-
tableProps={tableProps}
|
49
|
-
{...props}
|
50
|
-
/>
|
51
|
-
</div>
|
52
|
-
)
|
53
|
-
}
|
54
|
-
|
55
|
-
export default AdvancedTableStickyHeader
|
@@ -1,3 +0,0 @@
|
|
1
|
-
The `TableProps` prop can also be used to render a sticky header for the Advanced Table.
|
2
|
-
|
3
|
-
This doc example showcases how to set a sticky header for a nonresponsive table (see the `responsive` prop set to "none"). To achieve sticky header AND responsive functionality, see the "Sticky Header for Responsive Table" doc example below.
|
data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
<% column_definitions = [
|
2
|
-
{
|
3
|
-
accessor: "year",
|
4
|
-
label: "Year",
|
5
|
-
cellAccessors: ["quarter", "month", "day"],
|
6
|
-
},
|
7
|
-
{
|
8
|
-
accessor: "newEnrollments",
|
9
|
-
label: "New Enrollments",
|
10
|
-
},
|
11
|
-
{
|
12
|
-
accessor: "scheduledMeetings",
|
13
|
-
label: "Scheduled Meetings",
|
14
|
-
},
|
15
|
-
{
|
16
|
-
accessor: "attendanceRate",
|
17
|
-
label: "Attendance Rate",
|
18
|
-
},
|
19
|
-
{
|
20
|
-
accessor: "completedClasses",
|
21
|
-
label: "Completed Classes",
|
22
|
-
},
|
23
|
-
{
|
24
|
-
accessor: "classCompletionRate",
|
25
|
-
label: "Class Completion Rate",
|
26
|
-
},
|
27
|
-
{
|
28
|
-
accessor: "graduatedStudents",
|
29
|
-
label: "Graduated Students",
|
30
|
-
}
|
31
|
-
] %>
|
32
|
-
|
33
|
-
<%= pb_rails("advanced_table", props: { id: "sticky_header_table", table_data: @table_data, column_definitions: column_definitions, responsive: "none", table_props: { sticky: true }}) %>
|
@@ -1,3 +0,0 @@
|
|
1
|
-
The `table_props` prop can also be used to render a sticky header for the Advanced Table.
|
2
|
-
|
3
|
-
This doc example showcases how to set a sticky header for a nonresponsive table (see the `responsive` prop set to "none"). To achieve sticky header AND responsive functionality, see the "[Sticky Header for Responsive Table](https://playbook.powerapp.cloud/kits/advanced_table/react#sticky-header-for-responsive-table)" doc example below.
|
@@ -1,97 +0,0 @@
|
|
1
|
-
@mixin advanced-table-sticky-mixin(
|
2
|
-
$border-color,
|
3
|
-
$bg-main,
|
4
|
-
$bg-secondary,
|
5
|
-
$highlight: $info_subtle
|
6
|
-
) {
|
7
|
-
border-radius: 4px;
|
8
|
-
box-shadow: 1px 0 0 0px $border-color, -1px 0 0 0px $border-color;
|
9
|
-
display: block;
|
10
|
-
[class^="pb_table"].table-sm.table-card thead tr th:first-child,
|
11
|
-
[class^="pb_table"].table-sm:not(.no-hover).table-card
|
12
|
-
tbody
|
13
|
-
tr
|
14
|
-
td:first-child {
|
15
|
-
border-left-width: 0px !important;
|
16
|
-
}
|
17
|
-
[class^="pb_table"].table-sm.table-card thead tr th:last-child,
|
18
|
-
[class^="pb_table"].table-sm:not(.no-hover).table-card
|
19
|
-
tbody
|
20
|
-
tr
|
21
|
-
td:last-child {
|
22
|
-
border-right-width: 0px;
|
23
|
-
}
|
24
|
-
[class^="pb_table"].table-sm.table-card tbody tr:last-child td:first-child,
|
25
|
-
[class^="pb_table"].table-sm.table-card tbody tr:last-child td:last-child {
|
26
|
-
border-radius: 0 0 0 0;
|
27
|
-
}
|
28
|
-
.table-header-cells:first-child,
|
29
|
-
td:first-child,
|
30
|
-
.pb_table_td:first-child,
|
31
|
-
.checkbox-cell.checkbox-cell-header:first-child,
|
32
|
-
.table-header-cells.sticky-left,
|
33
|
-
[class*="pinned-left"] {
|
34
|
-
background-color: $bg-main;
|
35
|
-
box-shadow: $shadow_deep !important;
|
36
|
-
position: sticky !important;
|
37
|
-
left: 0;
|
38
|
-
z-index: 2;
|
39
|
-
}
|
40
|
-
|
41
|
-
.bg-silver {
|
42
|
-
td:first-child,
|
43
|
-
.sticky-left {
|
44
|
-
background-color: $bg-secondary;
|
45
|
-
}
|
46
|
-
}
|
47
|
-
.bg-row-selection {
|
48
|
-
td:first-child,
|
49
|
-
.sticky-left {
|
50
|
-
background-color: $highlight;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
|
-
.bg-white {
|
55
|
-
td:first-child,
|
56
|
-
.sticky-left {
|
57
|
-
background-color: $bg-main;
|
58
|
-
}
|
59
|
-
}
|
60
|
-
|
61
|
-
.virtualized-table-row {
|
62
|
-
&.bg-silver td:first-child {
|
63
|
-
background-color: $bg-secondary;
|
64
|
-
}
|
65
|
-
&.bg-white td:first-child {
|
66
|
-
background-color: $bg-main;
|
67
|
-
}
|
68
|
-
&.bg-row-selection td:first-child {
|
69
|
-
background-color: $highlight;
|
70
|
-
}
|
71
|
-
}
|
72
|
-
|
73
|
-
.row-selection-actions-card {
|
74
|
-
border-right-width: 0px;
|
75
|
-
border-left-width: 0px;
|
76
|
-
position: sticky;
|
77
|
-
top: 0;
|
78
|
-
left: 0;
|
79
|
-
border-radius: unset;
|
80
|
-
}
|
81
|
-
|
82
|
-
.checkbox-cell {
|
83
|
-
display: table-cell !important;
|
84
|
-
}
|
85
|
-
|
86
|
-
.sticky-header {
|
87
|
-
thead {
|
88
|
-
th:first-child {
|
89
|
-
box-shadow: 1px 0 10px -2px $border-color !important;
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
.pb_advanced_table_header {
|
94
|
-
box-shadow: none !important;
|
95
|
-
}
|
96
|
-
}
|
97
|
-
}
|
@@ -1,53 +0,0 @@
|
|
1
|
-
import colors from '../tokens/exports/_colors.module.scss'
|
2
|
-
import typography from '../tokens/exports/_typography.module.scss'
|
3
|
-
|
4
|
-
const circleChartTheme = {
|
5
|
-
title: { text: "" },
|
6
|
-
chart: {
|
7
|
-
type: "pie",
|
8
|
-
},
|
9
|
-
tooltip: {
|
10
|
-
backgroundColor: {
|
11
|
-
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
|
12
|
-
stops: [
|
13
|
-
[0, colors.bg_dark],
|
14
|
-
[1, colors.bg_dark],
|
15
|
-
],
|
16
|
-
},
|
17
|
-
pointFormat:
|
18
|
-
'<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: ' +
|
19
|
-
"<b>{point.y}</b>",
|
20
|
-
followPointer: true,
|
21
|
-
shadow: false,
|
22
|
-
borderWidth: 0,
|
23
|
-
borderRadius: 10,
|
24
|
-
style: {
|
25
|
-
fontFamily: typography.font_family_base,
|
26
|
-
color: colors.text_dk_default,
|
27
|
-
fontWeight: typography.regular,
|
28
|
-
fontSize: typography.text_smaller,
|
29
|
-
},
|
30
|
-
},
|
31
|
-
plotOptions: {
|
32
|
-
pie: {
|
33
|
-
dataLabels: {
|
34
|
-
enabled: false,
|
35
|
-
},
|
36
|
-
innerSize: '50%',
|
37
|
-
borderColor: "",
|
38
|
-
borderWidth: null as number | null,
|
39
|
-
colors: [
|
40
|
-
colors.data_1,
|
41
|
-
colors.data_2,
|
42
|
-
colors.data_3,
|
43
|
-
colors.data_4,
|
44
|
-
colors.data_5,
|
45
|
-
colors.data_6,
|
46
|
-
colors.data_7,
|
47
|
-
],
|
48
|
-
},
|
49
|
-
},
|
50
|
-
credits: { enabled: false }
|
51
|
-
}
|
52
|
-
|
53
|
-
export default circleChartTheme;
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
import circleChartTheme from '../circleChartTheme'
|
3
|
-
import Highcharts from "highcharts"
|
4
|
-
import HighchartsReact from "highcharts-react-official"
|
5
|
-
|
6
|
-
const data = [
|
7
|
-
{
|
8
|
-
name: 'Waiting for Calls',
|
9
|
-
y: 41,
|
10
|
-
},
|
11
|
-
{
|
12
|
-
name: 'On Call',
|
13
|
-
y: 49,
|
14
|
-
},
|
15
|
-
{
|
16
|
-
name: 'After Call',
|
17
|
-
y: 10,
|
18
|
-
},
|
19
|
-
]
|
20
|
-
|
21
|
-
const baseOptions = {
|
22
|
-
series: [{ data: data }],
|
23
|
-
}
|
24
|
-
|
25
|
-
const CircleChartPbStyles = () => {
|
26
|
-
const options = Highcharts.merge({}, circleChartTheme, baseOptions )
|
27
|
-
|
28
|
-
return (
|
29
|
-
<div>
|
30
|
-
<HighchartsReact
|
31
|
-
highcharts={Highcharts}
|
32
|
-
options={options}
|
33
|
-
/>
|
34
|
-
</div>
|
35
|
-
);
|
36
|
-
};
|
37
|
-
|
38
|
-
export default CircleChartPbStyles;
|
@@ -1 +0,0 @@
|
|
1
|
-
You don't need to use the Circle Chart Kit to apply Playbook styles to your Highcharts circle chart. Just import circleChartTheme.ts and merge it with your chart options—Playbook’s styling will apply automatically.
|
@@ -1,28 +0,0 @@
|
|
1
|
-
<%= pb_rails("flex", props: { orientation: "column", gap: "sm" }) do %>
|
2
|
-
<%= pb_rails("circle_icon_button", props: {
|
3
|
-
icon: "plus",
|
4
|
-
size: "sm",
|
5
|
-
variant: "primary"
|
6
|
-
}) %>
|
7
|
-
|
8
|
-
<%= pb_rails("circle_icon_button", props: {
|
9
|
-
icon: "pen",
|
10
|
-
loading: true,
|
11
|
-
size: "sm",
|
12
|
-
variant: "secondary"
|
13
|
-
}) %>
|
14
|
-
|
15
|
-
<%= pb_rails("circle_icon_button", props: {
|
16
|
-
disabled: true,
|
17
|
-
icon: "times",
|
18
|
-
size: "sm"
|
19
|
-
}) %>
|
20
|
-
|
21
|
-
<%= pb_rails("circle_icon_button", props: {
|
22
|
-
icon: "info",
|
23
|
-
link: "https://playbook.powerapp.cloud/",
|
24
|
-
size: "sm",
|
25
|
-
target: "child",
|
26
|
-
variant: "link"
|
27
|
-
}) %>
|
28
|
-
<% end %>
|
@@ -1,42 +0,0 @@
|
|
1
|
-
import React from 'react'
|
2
|
-
|
3
|
-
import CircleIconButton from '../_circle_icon_button'
|
4
|
-
import Flex from '../../pb_flex/_flex'
|
5
|
-
|
6
|
-
const CircleIconButtonSize = (props) => (
|
7
|
-
<>
|
8
|
-
<Flex gap="sm"
|
9
|
-
orientation="column"
|
10
|
-
>
|
11
|
-
<CircleIconButton
|
12
|
-
icon="plus"
|
13
|
-
size="sm"
|
14
|
-
variant="primary"
|
15
|
-
{...props}
|
16
|
-
/>
|
17
|
-
<CircleIconButton
|
18
|
-
icon="pen"
|
19
|
-
loading
|
20
|
-
size="sm"
|
21
|
-
variant="secondary"
|
22
|
-
{...props}
|
23
|
-
/>
|
24
|
-
<CircleIconButton
|
25
|
-
disabled
|
26
|
-
icon="times"
|
27
|
-
size="sm"
|
28
|
-
{...props}
|
29
|
-
/>
|
30
|
-
<CircleIconButton
|
31
|
-
icon="info"
|
32
|
-
link="https://playbook.powerapp.cloud/"
|
33
|
-
size="sm"
|
34
|
-
target="child"
|
35
|
-
variant="link"
|
36
|
-
{...props}
|
37
|
-
/>
|
38
|
-
</Flex>
|
39
|
-
</>
|
40
|
-
)
|
41
|
-
|
42
|
-
export default CircleIconButtonSize
|
@@ -1 +0,0 @@
|
|
1
|
-
The `size` prop accepts "sm" as a value to make the Circle Icon Button 20px x 20px instead of the default 40px x 40px size.
|
@@ -1,54 +0,0 @@
|
|
1
|
-
import React, { useEffect, useState } from 'react'
|
2
|
-
import usePBCopy from '../../pb_copy_button/usePBCopy'
|
3
|
-
import Body from '../../pb_body/_body'
|
4
|
-
import Textarea from '../../pb_textarea/_textarea'
|
5
|
-
import Tooltip from '../../pb_tooltip/_tooltip'
|
6
|
-
|
7
|
-
const CopyButtonHook = ({...props}) => {
|
8
|
-
// This is how you can use the copy button hook to copy text to the clipboard
|
9
|
-
// eslint-disable-next-line no-unused-vars
|
10
|
-
const [copied, copyToClipboard] = usePBCopy({ from: 'hookbody' })
|
11
|
-
// I added a tooltip so it looks better in the ui
|
12
|
-
const [showTooltip, setShowTooltip] = useState(false)
|
13
|
-
|
14
|
-
const handleCopy = () => {
|
15
|
-
copyToClipboard()
|
16
|
-
setShowTooltip(true)
|
17
|
-
setTimeout(() => setShowTooltip(false), 1500)
|
18
|
-
}
|
19
|
-
|
20
|
-
useEffect(() => {
|
21
|
-
const el = document.getElementById('hookbody')
|
22
|
-
if (!el) return
|
23
|
-
|
24
|
-
el.addEventListener('click', handleCopy)
|
25
|
-
return () => {
|
26
|
-
el.removeEventListener('click', handleCopy)
|
27
|
-
}
|
28
|
-
}, [copyToClipboard])
|
29
|
-
|
30
|
-
return (
|
31
|
-
<div>
|
32
|
-
<Tooltip
|
33
|
-
delay={{ close: 1000 }}
|
34
|
-
forceOpenTooltip={showTooltip}
|
35
|
-
placement="top"
|
36
|
-
showTooltip={false}
|
37
|
-
text="Copied!"
|
38
|
-
>
|
39
|
-
<Body
|
40
|
-
cursor="pointer"
|
41
|
-
id="hookbody"
|
42
|
-
text="I'm a custom copy hook! Click this body to copy this text!"
|
43
|
-
/>
|
44
|
-
</Tooltip>
|
45
|
-
|
46
|
-
<Textarea
|
47
|
-
{...props}
|
48
|
-
placeholder="Paste here"
|
49
|
-
/>
|
50
|
-
</div>
|
51
|
-
)
|
52
|
-
}
|
53
|
-
|
54
|
-
export default CopyButtonHook
|
@@ -1,3 +0,0 @@
|
|
1
|
-
We provide a `usePBCopy` hook that you can import to your project. This hook will return a function that you can call to copy the text to the clipboard.
|
2
|
-
|
3
|
-
`usePBCopy({ from: 'your_id' })` will grab the `innerText` from `your_id` element, or `value` if it is an input element.
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<%= pb_rails("body", props: { cursor: "pointer", data: { "external-copy-from": "hookbody"} }) do %>
|
2
|
-
<span id="hookbody">I'm a custom copy hook! Click this body to copy this text!</span>
|
3
|
-
<% end %>
|
4
|
-
|
5
|
-
<%= pb_rails("tooltip", props: {
|
6
|
-
trigger_element_selector: "#hookbody",
|
7
|
-
tooltip_id: "hookbody_tooltip",
|
8
|
-
position: 'top',
|
9
|
-
trigger_method: "click"
|
10
|
-
}) do %>
|
11
|
-
Copied!
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<%= pb_rails("textarea", props: { margin_top: "xs", placeholder: "Paste here" }) %>
|
@@ -1,3 +0,0 @@
|
|
1
|
-
You can use any external control (like the text itself or an icon) to copy. To use this hook, set the `data-external-copy-from` attribute on the external control to the copying ID. This will grab the `innerText` from `your_id` element, or `value` if it is an input element. Alternatively, you can set a `data-external-copy-value` attribute and copy custom text.
|
2
|
-
|
3
|
-
See the code example for details.
|
@@ -1,45 +0,0 @@
|
|
1
|
-
import { useState, useRef, useEffect } from 'react'
|
2
|
-
|
3
|
-
type UsePBCopyProps = {
|
4
|
-
value?: string
|
5
|
-
from?: string
|
6
|
-
timeout?: number
|
7
|
-
}
|
8
|
-
|
9
|
-
export default function usePBCopy({
|
10
|
-
value = '',
|
11
|
-
from = '',
|
12
|
-
timeout = 0,
|
13
|
-
}: UsePBCopyProps) {
|
14
|
-
const [copied, setCopied] = useState(false)
|
15
|
-
const timerRef = useRef<number>()
|
16
|
-
|
17
|
-
const copy = () => {
|
18
|
-
if (!value && !from) return
|
19
|
-
|
20
|
-
if (value) {
|
21
|
-
navigator.clipboard.writeText(value)
|
22
|
-
} else {
|
23
|
-
const el = document.getElementById(from)
|
24
|
-
let text = el?.innerText
|
25
|
-
if (el instanceof HTMLTextAreaElement || el instanceof HTMLInputElement) {
|
26
|
-
text = el.value
|
27
|
-
}
|
28
|
-
if (text) navigator.clipboard.writeText(text)
|
29
|
-
}
|
30
|
-
|
31
|
-
setCopied(true)
|
32
|
-
window.clearTimeout(timerRef.current)
|
33
|
-
timerRef.current = window.setTimeout(() => {
|
34
|
-
setCopied(false)
|
35
|
-
}, timeout)
|
36
|
-
}
|
37
|
-
|
38
|
-
useEffect(() => {
|
39
|
-
return () => {
|
40
|
-
window.clearTimeout(timerRef.current)
|
41
|
-
}
|
42
|
-
}, [])
|
43
|
-
|
44
|
-
return [copied, copy] as const
|
45
|
-
}
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import React from "react";
|
2
|
-
import DatePicker from "../_date_picker";
|
3
|
-
|
4
|
-
const DatePickerRangePattern = (props) => {
|
5
|
-
return (
|
6
|
-
<>
|
7
|
-
<DatePicker
|
8
|
-
controlsEndId="end-date-picker"
|
9
|
-
controlsStartId="start-date-picker"
|
10
|
-
mode="range"
|
11
|
-
pickerId="quickpick-for-range"
|
12
|
-
placeholder="Select a Range"
|
13
|
-
selectionType="quickpick"
|
14
|
-
{...props}
|
15
|
-
/>
|
16
|
-
|
17
|
-
<DatePicker
|
18
|
-
pickerId="start-date-picker"
|
19
|
-
placeholder="Select a Start Date"
|
20
|
-
syncStartWith="quickpick-for-range"
|
21
|
-
{...props}
|
22
|
-
/>
|
23
|
-
|
24
|
-
<DatePicker
|
25
|
-
pickerId="end-date-picker"
|
26
|
-
placeholder="Select a End Date"
|
27
|
-
syncEndWith="quickpick-for-range"
|
28
|
-
{...props}
|
29
|
-
/>
|
30
|
-
</>
|
31
|
-
);
|
32
|
-
};
|
33
|
-
|
34
|
-
export default DatePickerRangePattern;
|
@@ -1,14 +0,0 @@
|
|
1
|
-
You can link a Quickpick DatePicker to standard DatePickers using the following props:
|
2
|
-
|
3
|
-
**For the Quickpick DatePicker**:
|
4
|
-
`controlsStartId`: ID of the DatePicker that should receive the start date.
|
5
|
-
|
6
|
-
`controlsEndId`: ID of the DatePicker that should receive the end date.
|
7
|
-
|
8
|
-
When a quickpick option like “This Year” is selected, it automatically populates the linked start and end inputs.
|
9
|
-
|
10
|
-
**For the Start/End DatePickers**:
|
11
|
-
`syncStartWith`: ID of the quickpick this start date is synced to.
|
12
|
-
`syncEndWith`: ID of the quickpick this end date is synced to.
|
13
|
-
|
14
|
-
When a user manually edits the start or end date, it clears the selected quickpick to prevent conflicting values.
|
@@ -1,20 +0,0 @@
|
|
1
|
-
<%= pb_rails("date_picker", props: {
|
2
|
-
mode: "range",
|
3
|
-
picker_id: "quick-pick-date-range",
|
4
|
-
placeholder: "Select a Date Range",
|
5
|
-
selection_type: "quickpick",
|
6
|
-
controls_end_id: "quick-pick-date-range-end",
|
7
|
-
controls_start_id: "quick-pick-date-range-start",
|
8
|
-
}) %>
|
9
|
-
|
10
|
-
<%= pb_rails("date_picker", props: {
|
11
|
-
picker_id: "quick-pick-date-range-start",
|
12
|
-
placeholder: "Select a Start Date",
|
13
|
-
sync_start_with:"quick-pick-date-range",
|
14
|
-
}) %>
|
15
|
-
|
16
|
-
<%= pb_rails("date_picker", props: {
|
17
|
-
picker_id: "quick-pick-date-range-end",
|
18
|
-
placeholder: "Select an End Date",
|
19
|
-
sync_end_with:"quick-pick-date-range",
|
20
|
-
}) %>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
You can link a Quickpick DatePicker to standard DatePickers using the following props:
|
2
|
-
|
3
|
-
**For the Quickpick DatePicker**:
|
4
|
-
`controls_start_id`: ID of the DatePicker that should receive the start date.
|
5
|
-
|
6
|
-
`controls_end_id`: ID of the DatePicker that should receive the end date.
|
7
|
-
|
8
|
-
When a quickpick option like “This Year” is selected, it automatically populates the linked start and end inputs.
|
9
|
-
|
10
|
-
**For the Start/End DatePickers**:
|
11
|
-
`sync_start_with`: ID of the quickpick this start date is synced to.
|
12
|
-
`sync_end_with`: ID of the quickpick this end date is synced to.
|
13
|
-
|
14
|
-
When a user manually edits the start or end date, it clears the selected quickpick to prevent conflicting values.
|