playbook_ui 14.20.0.pre.alpha.revert4637revert4621PLAY2033atactionbarrails7855 → 14.20.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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +35 -61
  3. data/app/pb_kits/playbook/pb_advanced_table/Components/TableHeaderCell.tsx +22 -36
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +19 -6
  5. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.html.erb +8 -16
  6. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +0 -9
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +2 -6
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.jsx +0 -1
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_visibility_with_state.md +1 -3
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_default.md +1 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
  12. data/app/pb_kits/playbook/pb_advanced_table/index.js +12 -155
  13. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +0 -4
  14. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -1
  15. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +19 -77
  16. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb +10 -0
  17. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.jsx +0 -11
  18. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display.md +1 -1
  19. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.html.erb +2 -33
  20. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_display_rails.md +1 -3
  21. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +1 -11
  22. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +0 -5
  23. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +3 -3
  24. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +2 -16
  25. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +13 -34
  26. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +1 -3
  27. data/app/pb_kits/playbook/pb_dropdown/hooks/useHandleOnKeydown.tsx +6 -0
  28. data/app/pb_kits/playbook/pb_dropdown/index.js +30 -336
  29. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +12 -39
  30. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +12 -16
  31. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +13 -79
  32. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +0 -1
  33. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +0 -1
  34. data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +2 -2
  35. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +12 -19
  36. data/app/pb_kits/playbook/pb_home_address_street/_home_address_street.tsx +7 -13
  37. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +2 -2
  38. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.html.erb +11 -11
  39. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_color.jsx +11 -11
  40. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.html.erb +11 -11
  41. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +11 -11
  42. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.html.erb +11 -11
  43. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled.jsx +11 -11
  44. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.html.erb +11 -11
  45. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options.jsx +11 -11
  46. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.html.erb +11 -11
  47. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_default.jsx +11 -11
  48. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.html.erb +11 -11
  49. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent.jsx +11 -11
  50. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.html.erb +11 -11
  51. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_disabled_options_parent_default.jsx +11 -11
  52. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.html.erb +11 -11
  53. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_error.jsx +11 -11
  54. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.html.erb +11 -11
  55. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_label.jsx +11 -11
  56. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_react_hook.jsx +11 -11
  57. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_reset.html.erb +11 -11
  58. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.html.erb +11 -11
  59. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_return_all_selected.jsx +11 -11
  60. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.html.erb +11 -11
  61. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids.md +0 -2
  62. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.jsx +11 -11
  63. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_selected_ids_react.md +1 -3
  64. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.html.erb +22 -22
  65. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single.jsx +22 -22
  66. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.html.erb +22 -22
  67. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_single_children_only.jsx +22 -22
  68. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children.jsx +11 -11
  69. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children_with_radios.jsx +11 -11
  70. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_form.html.erb +11 -11
  71. data/app/pb_kits/playbook/pb_person/_person.tsx +2 -12
  72. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +3 -73
  73. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -1
  74. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +0 -1
  75. data/dist/chunks/_typeahead-BPSIWtFT.js +22 -0
  76. data/dist/chunks/_weekday_stacked-PfWrqC3z.js +45 -0
  77. data/dist/chunks/lib-B20MXZcW.js +29 -0
  78. data/dist/chunks/{pb_form_validation-BZ2AVAi_.js → pb_form_validation-WWvUXPKD.js} +1 -1
  79. data/dist/chunks/vendor.js +1 -1
  80. data/dist/playbook-doc.js +2 -2
  81. data/dist/playbook-rails-react-bindings.js +1 -1
  82. data/dist/playbook-rails.js +1 -1
  83. data/dist/playbook.css +1 -1
  84. data/lib/playbook/kit_base.rb +3 -3
  85. data/lib/playbook/version.rb +2 -2
  86. metadata +7 -32
  87. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.html.erb +0 -137
  88. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.md +0 -3
  89. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.html.erb +0 -40
  90. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.md +0 -1
  91. data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.html.erb +0 -23
  92. data/app/pb_kits/playbook/pb_advanced_table/table_action_bar.rb +0 -19
  93. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb +0 -31
  94. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.md +0 -5
  95. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx +0 -56
  96. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.md +0 -3
  97. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx +0 -58
  98. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.md +0 -3
  99. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb +0 -20
  100. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.md +0 -1
  101. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb +0 -19
  102. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.md +0 -3
  103. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb +0 -20
  104. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx +0 -57
  105. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.md +0 -1
  106. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb +0 -50
  107. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx +0 -105
  108. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb +0 -22
  109. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx +0 -67
  110. data/app/pb_kits/playbook/pb_dropdown/subcomponents/MultiSelectTriggerDisplay.tsx +0 -58
  111. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.jsx +0 -23
  112. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.md +0 -1
  113. data/dist/chunks/_typeahead-BmOWdDtp.js +0 -22
  114. data/dist/chunks/_weekday_stacked-CvcuQyr9.js +0 -45
  115. data/dist/chunks/lib-D5R1BjUn.js +0 -29
@@ -129,9 +129,9 @@ module Playbook
129
129
  end
130
130
 
131
131
  inline_styles = dynamic_inline_props
132
- if inline_styles.present?
133
- merged[:style] = merged[:style].present? ? "#{merged[:style]}; #{inline_styles}" : inline_styles
134
- end
132
+ merged[:style] = if inline_styles.present?
133
+ merged[:style].present? ? "#{merged[:style]}; #{inline_styles}" : inline_styles
134
+ end
135
135
 
136
136
  merged.deep_merge(data_attributes)
137
137
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- PREVIOUS_VERSION = "14.20.0"
5
- VERSION = "14.20.0.pre.alpha.revert4637revert4621PLAY2033atactionbarrails7855"
4
+ PREVIOUS_VERSION = "14.19.0"
5
+ VERSION = "14.20.0.pre.rc.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.20.0.pre.alpha.revert4637revert4621PLAY2033atactionbarrails7855
4
+ version: 14.20.0.pre.rc.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-05-23 00:00:00.000000000 Z
12
+ date: 2025-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -347,12 +347,8 @@ files:
347
347
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows.md
348
348
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.jsx
349
349
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions.md
350
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.html.erb
351
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_actions_rails.md
352
350
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.jsx
353
351
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header.md
354
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.html.erb
355
- - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_header_rails.md
356
352
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows_rails.html.erb
357
353
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows_rails.md
358
354
  - app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows_react.jsx
@@ -397,8 +393,6 @@ files:
397
393
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/_loading.scss
398
394
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/_pseudo_states.scss
399
395
  - app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss
400
- - app/pb_kits/playbook/pb_advanced_table/table_action_bar.html.erb
401
- - app/pb_kits/playbook/pb_advanced_table/table_action_bar.rb
402
396
  - app/pb_kits/playbook/pb_advanced_table/table_body.html.erb
403
397
  - app/pb_kits/playbook/pb_advanced_table/table_body.rb
404
398
  - app/pb_kits/playbook/pb_advanced_table/table_header.html.erb
@@ -1324,29 +1318,13 @@ files:
1324
1318
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_blank_selection.jsx
1325
1319
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.jsx
1326
1320
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.md
1321
+ - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.html.erb
1327
1322
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.jsx
1328
1323
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default.md
1329
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.html.erb
1330
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_rails.md
1331
1324
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.html.erb
1332
1325
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_default_value.jsx
1333
1326
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb
1334
1327
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.jsx
1335
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.jsx
1336
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select.md
1337
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.jsx
1338
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display.md
1339
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.html.erb
1340
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_display_rails.md
1341
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.html.erb
1342
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_rails.md
1343
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.html.erb
1344
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.jsx
1345
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_autocomplete.md
1346
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.html.erb
1347
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_custom_options.jsx
1348
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.html.erb
1349
- - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_multi_select_with_default.jsx
1350
1328
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.html.erb
1351
1329
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.jsx
1352
1330
  - app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subcomponent_structure.jsx
@@ -1405,7 +1383,6 @@ files:
1405
1383
  - app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx
1406
1384
  - app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx
1407
1385
  - app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx
1408
- - app/pb_kits/playbook/pb_dropdown/subcomponents/MultiSelectTriggerDisplay.tsx
1409
1386
  - app/pb_kits/playbook/pb_dropdown/utilities/clickOutsideHelper.tsx
1410
1387
  - app/pb_kits/playbook/pb_dropdown/utilities/index.ts
1411
1388
  - app/pb_kits/playbook/pb_dropdown/utilities/subComponentHelper.tsx
@@ -3384,8 +3361,6 @@ files:
3384
3361
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.jsx
3385
3362
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb
3386
3363
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.jsx
3387
- - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.jsx
3388
- - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_preserve_input.md
3389
3364
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_react_hook.jsx
3390
3365
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_react_hook.md
3391
3366
  - app/pb_kits/playbook/pb_typeahead/docs/_typeahead_truncated_text.html.erb
@@ -3592,11 +3567,11 @@ files:
3592
3567
  - app/pb_kits/playbook/utilities/test/globalProps/truncate.test.js
3593
3568
  - app/pb_kits/playbook/utilities/text.ts
3594
3569
  - app/pb_kits/playbook/utilities/validEmojiChecker.ts
3595
- - dist/chunks/_typeahead-BmOWdDtp.js
3596
- - dist/chunks/_weekday_stacked-CvcuQyr9.js
3570
+ - dist/chunks/_typeahead-BPSIWtFT.js
3571
+ - dist/chunks/_weekday_stacked-PfWrqC3z.js
3597
3572
  - dist/chunks/lazysizes-B7xYodB-.js
3598
- - dist/chunks/lib-D5R1BjUn.js
3599
- - dist/chunks/pb_form_validation-BZ2AVAi_.js
3573
+ - dist/chunks/lib-B20MXZcW.js
3574
+ - dist/chunks/pb_form_validation-WWvUXPKD.js
3600
3575
  - dist/chunks/vendor.js
3601
3576
  - dist/menu.yml
3602
3577
  - dist/playbook-doc.js
@@ -1,137 +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
- actions = [
34
- pb_rails("circle_icon_button", props: {
35
- icon: "file-csv",
36
- variant: "link",
37
- id: "export-selected-rows-btn",
38
- data: {
39
- action_type: "export"
40
- }
41
- }),
42
- pb_rails("circle_icon_button", props: {
43
- icon: "trash-alt",
44
- variant: "link",
45
- id: "delete-selected-rows-btn",
46
- data: {
47
- action_type: "delete"
48
- }
49
- })
50
- ]
51
- %>
52
-
53
- <%= pb_rails("advanced_table", props: {
54
- id: "selectable_rows_with_actions",
55
- table_data: @table_data_no_subrows,
56
- column_definitions: column_definitions,
57
- selectable_rows: true,
58
- enable_toggle_expansion: "none",
59
- actions: actions
60
- }) %>
61
-
62
- <script>
63
- // Handle action clicks using the data-selected-rows attribute
64
- window.handleActionClick = function(actionType) {
65
- const tableContainer = document.getElementById('selectable_rows_with_actions');
66
- if (!tableContainer) return;
67
-
68
- // Get selected rows from the data attribute
69
- const selectedRowsJSON = tableContainer.getAttribute('data-selected-rows');
70
- let selectedRowIds = [];
71
-
72
- try {
73
- // Parse the JSON string from the data attribute
74
- if (selectedRowsJSON) {
75
- selectedRowIds = JSON.parse(selectedRowsJSON);
76
- }
77
- } catch (e) {
78
- // Fallback if JSON parsing fails
79
- const checkboxes = tableContainer.querySelectorAll('input[type="checkbox"]:checked');
80
- const selectedCheckboxes = Array.from(checkboxes).filter(checkbox =>
81
- checkbox.id !== 'select-all-rows' &&
82
- !checkbox.closest('#select-all-rows')
83
- );
84
- selectedRowIds = selectedCheckboxes.map(checkbox => checkbox.id);
85
- }
86
-
87
- // Show appropriate message
88
- if (!selectedRowIds || selectedRowIds.length === 0) {
89
- alert('No Selection Made');
90
- } else {
91
- if (actionType === 'export') {
92
- alert(`Row ids ${selectedRowIds.join(', ')} will be exported!`);
93
- } else if (actionType === 'delete') {
94
- alert(`Row ids ${selectedRowIds.join(', ')} will be deleted!`);
95
- }
96
- }
97
- };
98
-
99
- // Add event listeners when the DOM is ready
100
- document.addEventListener('DOMContentLoaded', function() {
101
- // Get the buttons
102
- const exportBtn = document.getElementById('export-selected-rows-btn');
103
- const deleteBtn = document.getElementById('delete-selected-rows-btn');
104
-
105
- // Add click event listeners
106
- if (exportBtn) {
107
- exportBtn.addEventListener('click', function(e) {
108
- e.preventDefault();
109
- window.handleActionClick('export');
110
- });
111
- }
112
-
113
- if (deleteBtn) {
114
- deleteBtn.addEventListener('click', function(e) {
115
- e.preventDefault();
116
- window.handleActionClick('delete');
117
- });
118
- }
119
-
120
- // Optional: Event delegation through the action bar
121
- const actionBar = document.querySelector('.row-selection-actions-card');
122
- if (actionBar) {
123
- actionBar.addEventListener('click', function(e) {
124
- const exportButton = e.target.closest('#export-selected-rows-btn');
125
- const deleteButton = e.target.closest('#delete-selected-rows-btn');
126
-
127
- if (exportButton) {
128
- e.preventDefault();
129
- window.handleActionClick('export');
130
- } else if (deleteButton) {
131
- e.preventDefault();
132
- window.handleActionClick('delete');
133
- }
134
- });
135
- }
136
- });
137
- </script>
@@ -1,3 +0,0 @@
1
- Custom actions content can be rendered within the Actions Bar as shown in this doc example. The component passed to `actions` will be rendered on the right of the actionsBar.
2
-
3
- You can utilize script tags with your actions to provide your buttons with any clickable events needed.
@@ -1,40 +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: {
34
- id: "selectable_rows_with_actions",
35
- table_data: @table_data_no_subrows,
36
- column_definitions: column_definitions,
37
- selectable_rows: true,
38
- enable_toggle_expansion: "none",
39
- show_actions_bar: false
40
- }) %>
@@ -1 +0,0 @@
1
- `show_actions_bar` is an optional prop that renders the header at the top showing the row count. This is set to `true` by default but can be toggled off by setting it to `false`
@@ -1,23 +0,0 @@
1
- <%= pb_rails("card", props: {
2
- border_none: object.is_visible,
3
- classname: object.classname,
4
- padding: object.is_visible ? "xs" : "none",
5
- data: {
6
- action_bar: true
7
- }
8
- }) do %>
9
- <%= pb_rails("flex", props: { align_items: "center", justify: "between" }) do %>
10
- <%= pb_rails("caption", props: { color: "light", padding_left: "xs", size: "xs" }) do %>
11
- <span class="selected-count"><%= object.selected_count %> Selected</span>
12
- <% end %>
13
- <%= pb_rails("flex/flex_item") do %>
14
- <%= pb_rails("flex") do %>
15
- <% if object.actions.present? %>
16
- <% object.actions.each do |action| %>
17
- <%= action %>
18
- <% end %>
19
- <% end %>
20
- <% end %>
21
- <% end %>
22
- <% end %>
23
- <% end %>
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Playbook
4
- module PbAdvancedTable
5
- class TableActionBar < Playbook::KitBase
6
- prop :actions, type: Playbook::Props::Array,
7
- default: []
8
- prop :is_visible, type: Playbook::Props::Boolean,
9
- default: false
10
- prop :selected_count, type: Playbook::Props::Number,
11
- default: 0
12
-
13
- def classname
14
- # Just use row-selection-actions-card as the base class
15
- generate_classname("row-selection-actions-card", separator: " ")
16
- end
17
- end
18
- end
19
- end
@@ -1,31 +0,0 @@
1
- <%
2
- options = [
3
- { label: 'United States', value: 'United States', id: 'us' },
4
- { label: 'Canada', value: 'Canada', id: 'ca' },
5
- { label: 'Pakistan', value: 'Pakistan', id: 'pk' },
6
- ]
7
-
8
- %>
9
-
10
- <%
11
- options2 = [
12
- { label: 'India', value: 'India', id: 'in' },
13
- { label: 'Mexico', value: 'Mexico', id: 'mx' },
14
- { label: 'Brazil', value: 'Brazil', id: 'br' },
15
- { label: 'Argentina', value: 'Argentina', id: 'ar' },
16
- { label: 'Colombia', value: 'Colombia', id: 'co' },
17
- { label: 'Chile', value: 'Chile', id: 'cl' },
18
- { label: 'Peru', value: 'Peru', id: 'pe' },
19
- ]
20
-
21
- %>
22
-
23
- <%= pb_rails("dropdown", props: {options: options}) %>
24
-
25
- <script>
26
- document.addEventListener("pb:dropdown:selected", (e) => {
27
- const option = e.detail;
28
- const dropdown = e.target;
29
- console.log("Selected option:", option);
30
- })
31
- </script>
@@ -1,5 +0,0 @@
1
- This kit's `options` prop requires an array of objects, each of which will be used as the selectable options within the dropdown. Each option object can support any number of key-value pairs, but each MUST contain `label`, `value` and `id`.
2
-
3
- The kit also comes with a custom event called "pb:dropdown:selected" which updates dynamically with the selection as it changes. See code snippet to see this in action.
4
-
5
- In addition, a data attribute called `data-option-selected` with the selection is also rendered on the parent dropdown div.
@@ -1,56 +0,0 @@
1
- import React from 'react'
2
- import Dropdown from '../../pb_dropdown/_dropdown'
3
-
4
- const DropdownMultiSelect = (props) => {
5
-
6
- const options = [
7
- {
8
- label: "United States",
9
- value: "United States",
10
- },
11
- {
12
- label: "United Kingdom",
13
- value: "United Kingdom",
14
- },
15
- {
16
- label: "Canada",
17
- value: "Canada",
18
- },
19
- {
20
- label: "Pakistan",
21
- value: "Pakistan",
22
- },
23
- {
24
- label: "India",
25
- value: "India",
26
- },
27
- {
28
- label: "Australia",
29
- value: "Australia",
30
- },
31
- {
32
- label: "New Zealand",
33
- value: "New Zealand",
34
- },
35
- {
36
- label: "Italy",
37
- value: "Italy",
38
- },
39
- {
40
- label: "Spain",
41
- value: "Spain",
42
- }
43
- ];
44
-
45
- return (
46
- <div>
47
- <Dropdown
48
- multiSelect
49
- options={options}
50
- {...props}
51
- />
52
- </div>
53
- )
54
- }
55
-
56
- export default DropdownMultiSelect
@@ -1,3 +0,0 @@
1
- `multiSelect` is a boolean prop that if set to true will allow for multiple options to be selected from the Dropdown.
2
-
3
- `multiSelect` is set to false by default.
@@ -1,58 +0,0 @@
1
- import React from 'react'
2
- import Dropdown from '../../pb_dropdown/_dropdown'
3
-
4
- const DropdownMultiSelectDisplay = (props) => {
5
-
6
- const options = [
7
- {
8
- label: "United States",
9
- value: "United States",
10
- },
11
- {
12
- label: "United Kingdom",
13
- value: "United Kingdom",
14
- },
15
- {
16
- label: "Canada",
17
- value: "Canada",
18
- },
19
- {
20
- label: "Pakistan",
21
- value: "Pakistan",
22
- },
23
- {
24
- label: "India",
25
- value: "India",
26
- },
27
- {
28
- label: "Australia",
29
- value: "Australia",
30
- },
31
- {
32
- label: "New Zealand",
33
- value: "New Zealand",
34
- },
35
- {
36
- label: "Italy",
37
- value: "Italy",
38
- },
39
- {
40
- label: "Spain",
41
- value: "Spain",
42
- }
43
- ];
44
-
45
-
46
- return (
47
- <div>
48
- <Dropdown
49
- formPillProps={{size:"small", color:"neutral"}}
50
- multiSelect
51
- options={options}
52
- {...props}
53
- />
54
- </div>
55
- )
56
- }
57
-
58
- export default DropdownMultiSelectDisplay
@@ -1,3 +0,0 @@
1
- By default, the `multiSelect` prop will render selected options as the default FormPill. `FormPillProps` however can be used to customize these Pills with any props that exist for the FormPill.
2
-
3
- This prop must be an object that contains valid FormPill props. For a full list of FormPill props, see [here](https://playbook.powerapp.cloud/kits/form_pill/react).
@@ -1,20 +0,0 @@
1
- <%
2
- options = [
3
- { label: 'United States', value: 'United States', id: 'us' },
4
- { label: 'Canada', value: 'Canada', id: 'ca' },
5
- { label: 'Pakistan', value: 'Pakistan', id: 'pk' },
6
- { label: 'India', value: 'India', id: 'in' },
7
- { label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
8
- { label: 'Australia', value: 'Australia', id: 'au' },
9
- { label: 'New Zealand', value: 'New Zealand', id: 'nz' },
10
- { label: 'Germany', value: 'Germany', id: 'de' },
11
- { label: 'France', value: 'France', id: 'fr' },
12
- { label: 'Italy', value: 'Italy', id: 'it' },
13
- ]
14
- %>
15
-
16
- <%= pb_rails("dropdown", props: {
17
- options: options,
18
- multi_select: true,
19
- form_pill_props: { size:"small", color:"neutral" },
20
- }) %>
@@ -1 +0,0 @@
1
- By default, the `multi_select` prop will render selected options as the default form_pill. `form_pill_props` however can be used to customize these Pills with props that exist for the form_pill. Currently, only the '[color](https://playbook.powerapp.cloud/kits/form_pill/rails#form-pill-colors)' and '[size](https://playbook.powerapp.cloud/kits/form_pill/rails#form-pill-size)' props are supported as shown here.
@@ -1,19 +0,0 @@
1
- <%
2
- options = [
3
- { label: 'United States', value: 'United States', id: 'us' },
4
- { label: 'Canada', value: 'Canada', id: 'ca' },
5
- { label: 'Pakistan', value: 'Pakistan', id: 'pk' },
6
- { label: 'India', value: 'India', id: 'in' },
7
- { label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
8
- { label: 'Australia', value: 'Australia', id: 'au' },
9
- { label: 'New Zealand', value: 'New Zealand', id: 'nz' },
10
- { label: 'Germany', value: 'Germany', id: 'de' },
11
- { label: 'France', value: 'France', id: 'fr' },
12
- { label: 'Italy', value: 'Italy', id: 'it' },
13
- ]
14
- %>
15
-
16
- <%= pb_rails("dropdown", props: {
17
- options: options,
18
- multi_select: true,
19
- }) %>
@@ -1,3 +0,0 @@
1
- `multi_select` is a boolean prop that if set to true will allow for multiple options to be selected from the Dropdown.
2
-
3
- `multi_select` is set to false by default.
@@ -1,20 +0,0 @@
1
- <%
2
- options = [
3
- { label: 'United States', value: 'United States', id: 'us' },
4
- { label: 'Canada', value: 'Canada', id: 'ca' },
5
- { label: 'Pakistan', value: 'Pakistan', id: 'pk' },
6
- { label: 'India', value: 'India', id: 'in' },
7
- { label: 'United Kingdom', value: 'United Kingdom', id: 'uk' },
8
- { label: 'Australia', value: 'Australia', id: 'au' },
9
- { label: 'New Zealand', value: 'New Zealand', id: 'nz' },
10
- { label: 'Germany', value: 'Germany', id: 'de' },
11
- { label: 'France', value: 'France', id: 'fr' },
12
- { label: 'Italy', value: 'Italy', id: 'it' },
13
- ]
14
- %>
15
-
16
- <%= pb_rails("dropdown", props: {
17
- autocomplete: true,
18
- options: options,
19
- multi_select: true,
20
- }) %>
@@ -1,57 +0,0 @@
1
- import React from 'react'
2
- import Dropdown from '../../pb_dropdown/_dropdown'
3
-
4
- const DropdownMultiSelectWithAutocomplete = (props) => {
5
-
6
- const options = [
7
- {
8
- label: "United States",
9
- value: "United States",
10
- },
11
- {
12
- label: "United Kingdom",
13
- value: "United Kingdom",
14
- },
15
- {
16
- label: "Canada",
17
- value: "Canada",
18
- },
19
- {
20
- label: "Pakistan",
21
- value: "Pakistan",
22
- },
23
- {
24
- label: "India",
25
- value: "India",
26
- },
27
- {
28
- label: "Australia",
29
- value: "Australia",
30
- },
31
- {
32
- label: "New Zealand",
33
- value: "New Zealand",
34
- },
35
- {
36
- label: "Italy",
37
- value: "Italy",
38
- },
39
- {
40
- label: "Spain",
41
- value: "Spain",
42
- }
43
- ];
44
-
45
- return (
46
- <div>
47
- <Dropdown
48
- autocomplete
49
- multiSelect
50
- options={options}
51
- {...props}
52
- />
53
- </div>
54
- )
55
- }
56
-
57
- export default DropdownMultiSelectWithAutocomplete
@@ -1 +0,0 @@
1
- `multiSelect` can also be used with the `autocomplete` functionality.