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.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +3 -23
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +3 -67
  4. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +2 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/Utilities/ExpansionControlHelpers.tsx +19 -29
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +143 -365
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +1 -14
  8. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +1 -6
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.jsx +2 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_rails.md +2 -2
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_react.md +1 -1
  13. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_rails.md +2 -6
  14. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props_sticky_header_react.md +2 -6
  15. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +3 -10
  16. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -6
  17. data/app/pb_kits/playbook/pb_advanced_table/index.js +0 -7
  18. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +1 -1
  19. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.tsx +1 -1
  20. data/app/pb_kits/playbook/pb_circle_chart/circleChart.test.js +2 -2
  21. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.html.erb +2 -2
  22. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_block.jsx +1 -1
  23. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.html.erb +1 -1
  24. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_colors.jsx +1 -1
  25. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.html.erb +1 -1
  26. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_custom_tooltip.jsx +1 -1
  27. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.html.erb +1 -1
  28. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_default.jsx +1 -1
  29. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.html.erb +1 -1
  30. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_legend_position.jsx +1 -1
  31. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_live_data.jsx +2 -2
  32. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.html.erb +1 -1
  33. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_rounded.jsx +1 -1
  34. data/app/pb_kits/playbook/pb_circle_chart/docs/example.yml +3 -2
  35. data/app/pb_kits/playbook/pb_circle_chart/docs/index.js +1 -2
  36. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +1 -39
  37. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.tsx +0 -4
  38. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +1 -9
  39. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.test.js +0 -14
  40. data/app/pb_kits/playbook/pb_circle_icon_button/docs/example.yml +0 -2
  41. data/app/pb_kits/playbook/pb_circle_icon_button/docs/index.js +0 -1
  42. data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +45 -19
  43. data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +0 -2
  44. data/app/pb_kits/playbook/pb_copy_button/docs/index.js +1 -2
  45. data/app/pb_kits/playbook/pb_copy_button/index.js +20 -46
  46. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +0 -12
  47. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -12
  48. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +1 -50
  49. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.jsx +1 -4
  50. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_rails.md +0 -4
  51. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_range_limit.md +1 -1
  52. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_quick_pick_react.md +1 -5
  53. data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -2
  54. data/app/pb_kits/playbook/pb_date_picker/docs/index.js +0 -1
  55. data/app/pb_kits/playbook/pb_date_picker/plugins/quickPick.tsx +0 -10
  56. data/app/pb_kits/playbook/pb_dialog/dialog.html.erb +1 -10
  57. data/app/pb_kits/playbook/pb_dialog/dialog.rb +0 -2
  58. data/app/pb_kits/playbook/pb_dialog/docs/example.yml +0 -1
  59. data/app/pb_kits/playbook/pb_dialog/index.js +14 -106
  60. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -3
  61. data/app/pb_kits/playbook/pb_draggable/draggable.rb +1 -9
  62. data/app/pb_kits/playbook/pb_draggable/index.js +142 -139
  63. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +1 -1
  64. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx +1 -4
  65. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +1 -1
  66. data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -1
  67. data/app/pb_kits/playbook/pb_form_group/_form_group.scss +3 -23
  68. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.html.erb +5 -15
  69. data/app/pb_kits/playbook/pb_form_group/docs/_form_group_select.jsx +6 -39
  70. data/app/pb_kits/playbook/pb_gauge/docs/example.yml +0 -1
  71. data/app/pb_kits/playbook/pb_gauge/docs/index.js +0 -1
  72. data/app/pb_kits/playbook/pb_layout/_layout.scss +1 -70
  73. data/app/pb_kits/playbook/pb_layout/_layout.tsx +2 -29
  74. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.jsx +118 -322
  75. data/app/pb_kits/playbook/pb_layout/docs/_layout_bracket.md +1 -1
  76. data/app/pb_kits/playbook/pb_layout/subcomponents/_game.tsx +43 -74
  77. data/app/pb_kits/playbook/pb_layout/subcomponents/_round.tsx +4 -21
  78. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -1
  79. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -1
  80. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +22 -83
  81. data/app/pb_kits/playbook/pb_overlay/_overlay.tsx +7 -39
  82. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_default.md +7 -1
  83. data/app/pb_kits/playbook/pb_overlay/docs/example.yml +0 -5
  84. data/app/pb_kits/playbook/pb_overlay/docs/index.js +0 -5
  85. data/app/pb_kits/playbook/pb_overlay/overlay.test.jsx +1 -39
  86. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +0 -13
  87. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +1 -3
  88. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_validation.jsx +1 -8
  89. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
  90. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
  91. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
  92. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +0 -19
  93. data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -1
  94. data/app/pb_kits/playbook/pb_popover/index.ts +1 -13
  95. data/app/pb_kits/playbook/pb_popover/popover.rb +0 -2
  96. data/app/pb_kits/playbook/pb_select/docs/_select_error.jsx +2 -7
  97. data/app/pb_kits/playbook/pb_table/_table.tsx +2 -2
  98. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows.md +1 -3
  99. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_rows_rails.md +1 -3
  100. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table.md +1 -3
  101. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_nested_table_rails.md +1 -3
  102. data/app/pb_kits/playbook/pb_table/styles/_collapsible.scss +1 -1
  103. data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +5 -13
  104. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.jsx +1 -9
  105. data/app/pb_kits/playbook/pb_text_input/docs/example.yml +0 -2
  106. data/app/pb_kits/playbook/pb_text_input/docs/index.js +0 -1
  107. data/app/pb_kits/playbook/pb_text_input/inputMask.ts +1 -8
  108. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.jsx +1 -7
  109. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.jsx +2 -6
  110. data/dist/chunks/_typeahead-C2GOKWtm.js +22 -0
  111. data/dist/chunks/_weekday_stacked-CFGTPT0O.js +45 -0
  112. data/dist/chunks/lib-BGzBzFZX.js +29 -0
  113. data/dist/chunks/{pb_form_validation-BWjy4bFn.js → pb_form_validation-BvNy9Bd6.js} +1 -1
  114. data/dist/chunks/vendor.js +1 -1
  115. data/dist/menu.yml +2 -2
  116. data/dist/playbook-doc.js +1 -19
  117. data/dist/playbook-rails-react-bindings.js +1 -1
  118. data/dist/playbook-rails.js +1 -1
  119. data/dist/playbook.css +1 -1
  120. data/lib/playbook/version.rb +2 -2
  121. metadata +8 -71
  122. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.jsx +0 -80
  123. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.md +0 -3
  124. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb +0 -58
  125. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.md +0 -3
  126. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expand_by_depth.jsx +0 -66
  127. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_expand_by_depth.md +0 -10
  128. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.jsx +0 -58
  129. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns.md +0 -6
  130. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.jsx +0 -64
  131. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_columns_and_header.md +0 -8
  132. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.jsx +0 -55
  133. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header.md +0 -3
  134. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.html.erb +0 -33
  135. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_sticky_header_rails.md +0 -3
  136. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +0 -97
  137. data/app/pb_kits/playbook/pb_circle_chart/circleChartTheme.ts +0 -53
  138. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.jsx +0 -38
  139. data/app/pb_kits/playbook/pb_circle_chart/docs/_circle_chart_pb_styles.md +0 -1
  140. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_size.html.erb +0 -28
  141. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_size.jsx +0 -42
  142. data/app/pb_kits/playbook/pb_circle_icon_button/docs/_circle_icon_button_size.md +0 -1
  143. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.jsx +0 -54
  144. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook.md +0 -3
  145. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook_rails.html.erb +0 -14
  146. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_hook_rails.md +0 -3
  147. data/app/pb_kits/playbook/pb_copy_button/usePBCopy.ts +0 -45
  148. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.jsx +0 -34
  149. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern.md +0 -14
  150. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern_rails.html.erb +0 -20
  151. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_range_pattern_rails.md +0 -14
  152. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_turbo_frames.html.erb +0 -117
  153. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_turbo_frames_rails.md +0 -9
  154. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones.html.erb +0 -43
  155. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors.html.erb +0 -55
  156. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors_rails.md +0 -1
  157. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners.html.erb +0 -42
  158. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners.md +0 -1
  159. data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.html.erb +0 -41
  160. data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.md +0 -1
  161. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.jsx +0 -30
  162. data/app/pb_kits/playbook/pb_gauge/docs/_gauge_pb_styles.md +0 -1
  163. data/app/pb_kits/playbook/pb_gauge/gaugeTheme.ts +0 -85
  164. data/app/pb_kits/playbook/pb_layout/subcomponents/_participant.tsx +0 -79
  165. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +0 -52
  166. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +0 -1
  167. data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +0 -110
  168. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.jsx +0 -63
  169. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_color.md +0 -3
  170. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_background.jsx +0 -49
  171. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_background.md +0 -1
  172. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_opacity.jsx +0 -81
  173. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_fullscreen_opacity.md +0 -1
  174. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.jsx +0 -39
  175. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_gradient_opacity.md +0 -1
  176. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.jsx +0 -40
  177. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_layout.md +0 -5
  178. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.html.erb +0 -10
  179. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.jsx +0 -20
  180. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.md +0 -1
  181. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.html.erb +0 -46
  182. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.md +0 -1
  183. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_sanitize.jsx +0 -94
  184. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_sanitize.md +0 -1
  185. data/dist/chunks/_typeahead-D8CsVBZO.js +0 -22
  186. data/dist/chunks/_weekday_stacked-D3oLTSkH.js +0 -45
  187. data/dist/chunks/lib-BmTAc7Nc.js +0 -29
  188. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_react.md → _draggable_drop_zones.md} +0 -0
  189. /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.
@@ -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.