playbook_ui 14.20.0.pre.alpha.PLAY22408048 → 14.20.0.pre.alpha.play2168firstcolumnborderbug7950

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/RegularTableView.tsx +49 -116
  3. data/app/pb_kits/playbook/pb_advanced_table/Context/AdvancedTableContext.tsx +2 -58
  4. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableActions.ts +1 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/Hooks/useTableState.ts +4 -16
  6. data/app/pb_kits/playbook/pb_advanced_table/SubKits/TableHeader.tsx +3 -7
  7. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +0 -5
  8. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +3 -10
  9. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.test.jsx +0 -61
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_table_props.html.erb +1 -1
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +1 -2
  12. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +1 -2
  13. data/app/pb_kits/playbook/pb_advanced_table/index.js +0 -2
  14. data/app/pb_kits/playbook/pb_checkbox/checkbox.html.erb +11 -4
  15. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +6 -10
  16. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +48 -2
  17. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +4 -13
  18. data/app/pb_kits/playbook/pb_draggable/context/index.tsx +58 -17
  19. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +3 -12
  20. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -2
  21. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -2
  22. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +2 -108
  23. data/app/pb_kits/playbook/pb_dropdown/index.js +0 -24
  24. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +10 -14
  25. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +15 -26
  26. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +0 -4
  27. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.jsx +1 -1
  28. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +3 -4
  29. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
  30. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
  31. data/app/pb_kits/playbook/pb_popover/index.ts +4 -9
  32. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +51 -3
  33. data/app/pb_kits/playbook/pb_table/styles/_mobile_collapse.scss +1 -1
  34. data/dist/chunks/{_typeahead-C0OGBz_9.js → _typeahead-BmOWdDtp.js} +2 -2
  35. data/dist/chunks/_weekday_stacked-CvcuQyr9.js +45 -0
  36. data/dist/chunks/{lib-CLDGEByA.js → lib-D5R1BjUn.js} +1 -1
  37. data/dist/chunks/{pb_form_validation-C-ccDsK6.js → pb_form_validation-BZ2AVAi_.js} +1 -1
  38. data/dist/chunks/vendor.js +1 -1
  39. data/dist/menu.yml +1 -1
  40. data/dist/playbook-doc.js +1 -1
  41. data/dist/playbook-rails-react-bindings.js +1 -1
  42. data/dist/playbook-rails.js +1 -1
  43. data/dist/playbook.css +1 -1
  44. data/lib/playbook/version.rb +1 -1
  45. metadata +6 -15
  46. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows.jsx +0 -57
  47. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pinned_rows_react.md +0 -5
  48. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_rails.md +0 -1
  49. data/app/pb_kits/playbook/pb_checkbox/index.js +0 -56
  50. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_close_on_select.jsx +0 -42
  51. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_close_on_select.md +0 -1
  52. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_exclude_countries.html.erb +0 -4
  53. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_exclude_countries.jsx +0 -15
  54. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_exclude_countries.md +0 -1
  55. data/dist/chunks/_weekday_stacked-BbY_mMKV.js +0 -45
@@ -4,8 +4,7 @@ examples:
4
4
  - phone_number_input_default: Default
5
5
  - phone_number_input_preferred_countries: Preferred Countries
6
6
  - phone_number_input_initial_country: Initial Country
7
- - phone_number_input_only_countries: Only Countries
8
- - phone_number_input_exclude_countries: Exclude Countries
7
+ - phone_number_input_only_countries: Limited Countries
9
8
  - phone_number_input_validation: Form Validation
10
9
  - phone_number_input_clear_field: Clearing the Input Field
11
10
  - phone_number_input_access_input_element: Accessing the Input Element
@@ -16,9 +15,9 @@ examples:
16
15
  - phone_number_input_default: Default
17
16
  - phone_number_input_preferred_countries: Preferred Countries
18
17
  - phone_number_input_initial_country: Initial Country
19
- - phone_number_input_only_countries: Only Countries
20
- - phone_number_input_exclude_countries: Exclude Countries
18
+ - phone_number_input_only_countries: Limited Countries
21
19
  - phone_number_input_validation: Form Validation
22
20
  - phone_number_input_format: Format as You Type
23
21
  - phone_number_input_hidden_inputs: Hidden Inputs
24
22
  - phone_number_input_country_search: Country Search
23
+
@@ -2,7 +2,6 @@ export { default as PhoneNumberInputDefault } from './_phone_number_input_defaul
2
2
  export { default as PhoneNumberInputPreferredCountries } from './_phone_number_input_preferred_countries'
3
3
  export { default as PhoneNumberInputInitialCountry } from './_phone_number_input_initial_country'
4
4
  export { default as PhoneNumberInputOnlyCountries } from './_phone_number_input_only_countries'
5
- export { default as PhoneNumberInputExcludeCountries } from './_phone_number_input_exclude_countries'
6
5
  export { default as PhoneNumberInputValidation } from './_phone_number_input_validation'
7
6
  export { default as PhoneNumberInputClearField } from './_phone_number_input_clear_field'
8
7
  export { default as PhoneNumberInputAccessInputElement } from './_phone_number_input_access_input_element'
@@ -15,8 +15,6 @@ module Playbook
15
15
  default: ""
16
16
  prop :only_countries, type: Playbook::Props::Array,
17
17
  default: []
18
- prop :exclude_countries, type: Playbook::Props::Array,
19
- default: []
20
18
  prop :preferred_countries, type: Playbook::Props::Array,
21
19
  default: []
22
20
  prop :error, type: Playbook::Props::String,
@@ -46,7 +44,6 @@ module Playbook
46
44
  label: label,
47
45
  name: name,
48
46
  onlyCountries: only_countries,
49
- excludeCountries: exclude_countries,
50
47
  preferredCountries: preferred_countries,
51
48
  required: required,
52
49
  value: value,
@@ -13,24 +13,19 @@ export default class PbPopover extends PbEnhancedElement {
13
13
  }
14
14
 
15
15
  moveTooltip() {
16
- let container: HTMLElement | null = document.querySelector('body');
16
+ let container: HTMLElement | null;
17
17
 
18
18
  if (this.appendTo === "parent") {
19
- container = this.element.parentElement && this.element.parentElement
19
+ container = this.element.parentElement;
20
20
  } else if (this.appendTo) {
21
- container = document.querySelector(this.appendTo)
21
+ container = document.querySelector(this.appendTo);
22
22
  }
23
23
 
24
- container.appendChild(this.tooltip);
24
+ (container || document.body).appendChild(this.tooltip);
25
25
  }
26
26
 
27
27
  connect() {
28
- if (!this.triggerElement || !this.tooltip) {
29
- console.warn('Popover requires both trigger and tooltip elements to be defined.')
30
- return
31
- }
32
28
  this.moveTooltip()
33
-
34
29
  this.popper = createPopper (this.triggerElement, this.tooltip, {
35
30
  placement: this.position as Placement,
36
31
  strategy: 'fixed',
@@ -18,7 +18,7 @@
18
18
  checked: true,
19
19
  value: "checkbox-value",
20
20
  name: "main-checkbox-selectable",
21
- indeterminate_main: true,
21
+ indeterminate: true,
22
22
  id: "checkbox-selectable"
23
23
  }) %>
24
24
  <% end %>
@@ -33,7 +33,7 @@
33
33
  <% checkboxes.each_with_index do |checkbox, index| %>
34
34
  <%= pb_rails("table/table_row") do %>
35
35
  <%= pb_rails("table/table_cell") do %>
36
- <%= pb_rails("checkbox", props: { checked: checkbox[:checked], id: "#{checkbox[:id]}-selectable-checkbox", name: "#{checkbox[:id]}-selectable-checkbox", on_change: "updateCheckboxes(#{index})", value: "check-box value", indeterminate_parent: "checkbox-selectable" }) %>
36
+ <%= pb_rails("checkbox", props: { checked: checkbox[:checked], id: "#{checkbox[:id]}-selectable-checkbox", name: "#{checkbox[:id]}-selectable-checkbox", on_change: "updateCheckboxes(#{index})", value: "check-box value" }) %>
37
37
  <% end %>
38
38
  <%= pb_rails("table/table_cell") do %>
39
39
  <%= pb_rails("image", props: { alt: "picture of a misty forest", size: "xs", url: "https://unsplash.it/500/400/?image=634" }) %>
@@ -45,4 +45,52 @@
45
45
  <% end %>
46
46
  <% end %>
47
47
  <% end %>
48
- <% end %>
48
+ <% end %>
49
+
50
+ <script>
51
+ document.addEventListener('DOMContentLoaded', function() {
52
+ const mainCheckboxWrapper = document.getElementById('checkbox-selectable');
53
+ const mainCheckbox = document.getElementsByName("main-checkbox-selectable")[0];
54
+ const childCheckboxes = document.querySelectorAll('input[type="checkbox"][id$="selectable-checkbox"]');
55
+ const deleteButton = document.getElementById('delete-button');
56
+
57
+ const updateDeleteButton = () => {
58
+ const anyChecked = Array.from(childCheckboxes).some(checkbox => checkbox.checked);
59
+ deleteButton.style.display = anyChecked ? 'block' : 'none';
60
+ };
61
+
62
+ const updateMainCheckbox = () => {
63
+ // Count the number of checked child checkboxes
64
+ const checkedCount = Array.from(childCheckboxes).filter(cb => cb.checked).length;
65
+ // Determine if the main checkbox should be in an indeterminate state
66
+ const indeterminate = checkedCount > 0 && checkedCount < childCheckboxes.length;
67
+
68
+ // Set the main checkbox states
69
+ mainCheckbox.indeterminate = indeterminate;
70
+ mainCheckbox.checked = checkedCount > 0;
71
+
72
+ // Determine the icon class to add and remove based on the number of checked checkboxes
73
+ const iconClassToAdd = checkedCount === 0 ? 'pb_checkbox_checkmark' : 'pb_checkbox_indeterminate';
74
+ const iconClassToRemove = checkedCount === 0 ? 'pb_checkbox_indeterminate' : 'pb_checkbox_checkmark';
75
+
76
+ // Add and remove the icon class to the main checkbox wrapper
77
+ mainCheckboxWrapper.querySelector('[data-pb-checkbox-icon-span]').classList.add(iconClassToAdd);
78
+ mainCheckboxWrapper.querySelector('[data-pb-checkbox-icon-span]').classList.remove(iconClassToRemove);
79
+
80
+ // Toggle the visibility of the checkbox icon based on the indeterminate state
81
+ mainCheckboxWrapper.getElementsByClassName("indeterminate_icon")[0].classList.toggle('hidden', !indeterminate);
82
+ mainCheckboxWrapper.getElementsByClassName("check_icon")[0].classList.toggle('hidden', indeterminate);
83
+
84
+ updateDeleteButton();
85
+ };
86
+
87
+ mainCheckbox.addEventListener('change', function() {
88
+ childCheckboxes.forEach(cb => cb.checked = this.checked);
89
+ updateMainCheckbox();
90
+ });
91
+
92
+ childCheckboxes.forEach(cb => {
93
+ cb.addEventListener('change', updateMainCheckbox);
94
+ });
95
+ });
96
+ </script>
@@ -3,7 +3,7 @@
3
3
  @import "../../pb_caption/caption_mixin";
4
4
 
5
5
  @media only screen and (max-width: $screen-xs-max) {
6
- [class^=pb_table]:not(.table-responsive-scroll) {
6
+ [class^=pb_table] {
7
7
  &.table-sm.table-collapse-sm,
8
8
  &.table-md.table-collapse-sm,
9
9
  &.table-lg.table-collapse-sm {