playbook_ui 14.19.0.pre.alpha.play2125phonenumberinputcountrysearcherrorstylefix7698 → 14.19.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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +21 -304
  4. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +1 -5
  5. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +1 -6
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_beta.md +6 -0
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_no_subrows_react.jsx → _advanced_table_selectable_rows_no_subrows.jsx} +2 -2
  8. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_no_subrows_rails.md +1 -5
  9. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_selectable_rows_rails.md +2 -3
  10. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +5 -6
  11. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -3
  12. data/app/pb_kits/playbook/pb_advanced_table/index.js +11 -228
  13. data/app/pb_kits/playbook/pb_advanced_table/table_body.rb +1 -9
  14. data/app/pb_kits/playbook/pb_advanced_table/table_header.rb +3 -0
  15. data/app/pb_kits/playbook/pb_advanced_table/table_row.rb +2 -1
  16. data/app/pb_kits/playbook/pb_avatar/_avatar.scss +0 -4
  17. data/app/pb_kits/playbook/pb_avatar/_avatar.tsx +0 -3
  18. data/app/pb_kits/playbook/pb_avatar/avatar.html.erb +3 -3
  19. data/app/pb_kits/playbook/pb_avatar/avatar.rb +0 -2
  20. data/app/pb_kits/playbook/pb_avatar/avatar.test.js +0 -18
  21. data/app/pb_kits/playbook/pb_avatar/docs/example.yml +0 -2
  22. data/app/pb_kits/playbook/pb_avatar/docs/index.js +0 -1
  23. data/app/pb_kits/playbook/pb_card/card.html.erb +1 -1
  24. data/app/pb_kits/playbook/pb_card/card.rb +0 -12
  25. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_error.html.erb +2 -2
  26. data/app/pb_kits/playbook/pb_draggable/docs/example.yml +1 -4
  27. data/app/pb_kits/playbook/pb_draggable/docs/index.js +1 -2
  28. data/app/pb_kits/playbook/pb_draggable/draggable.rb +1 -9
  29. data/app/pb_kits/playbook/pb_draggable/draggable_container.rb +1 -11
  30. data/app/pb_kits/playbook/pb_draggable/draggable_item.rb +1 -11
  31. data/app/pb_kits/playbook/pb_draggable/index.js +142 -141
  32. data/app/pb_kits/playbook/pb_draggable/subcomponents/DraggableItem.tsx +5 -33
  33. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +0 -5
  34. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +16 -5
  35. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_error.html.erb +2 -5
  36. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.jsx +64 -17
  37. data/app/pb_kits/playbook/pb_dropdown/docs/{_dropdown_with_autocomplete_with_subcomponents.jsx → _dropdown_with_autocomplete_and_custom_display.jsx} +25 -11
  38. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_and_custom_display.md +1 -0
  39. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_hook.jsx +79 -0
  40. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +4 -7
  41. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +2 -2
  42. data/app/pb_kits/playbook/pb_dropdown/dropdown.html.erb +2 -2
  43. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +0 -4
  44. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +1 -45
  45. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.html.erb +0 -10
  46. data/app/pb_kits/playbook/pb_dropdown/dropdown_container.rb +0 -3
  47. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.html.erb +2 -12
  48. data/app/pb_kits/playbook/pb_dropdown/dropdown_trigger.rb +1 -3
  49. data/app/pb_kits/playbook/pb_dropdown/index.js +0 -57
  50. data/app/pb_kits/playbook/pb_dropdown/keyboard_accessibility.js +0 -26
  51. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownContainer.tsx +2 -1
  52. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +4 -4
  53. data/app/pb_kits/playbook/pb_empty_state/_empty_state.scss +1 -8
  54. data/app/pb_kits/playbook/pb_empty_state/docs/example.yml +1 -5
  55. data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -1
  56. data/app/pb_kits/playbook/pb_form_group/_error_state_mixin.scss +18 -22
  57. data/app/pb_kits/playbook/pb_gantt_chart/_gantt_chart.scss +3 -0
  58. data/app/pb_kits/playbook/pb_gantt_chart/_gantt_chart.tsx +72 -0
  59. data/app/pb_kits/playbook/pb_gantt_chart/docs/_gantt_chart_default.jsx +53 -0
  60. data/app/pb_kits/playbook/pb_gantt_chart/docs/example.yml +7 -0
  61. data/app/pb_kits/playbook/pb_gantt_chart/docs/index.js +1 -0
  62. data/app/pb_kits/playbook/pb_gantt_chart/gantt_chart.test.jsx +19 -0
  63. data/app/pb_kits/playbook/pb_line_graph/docs/example.yml +0 -1
  64. data/app/pb_kits/playbook/pb_line_graph/docs/index.js +0 -1
  65. data/app/pb_kits/playbook/pb_message/_message.tsx +0 -3
  66. data/app/pb_kits/playbook/pb_message/docs/example.yml +0 -2
  67. data/app/pb_kits/playbook/pb_message/docs/index.js +0 -1
  68. data/app/pb_kits/playbook/pb_message/message.html.erb +1 -2
  69. data/app/pb_kits/playbook/pb_message/message.rb +0 -1
  70. data/app/pb_kits/playbook/pb_overlay/_overlay.scss +1 -2
  71. data/app/pb_kits/playbook/pb_overlay/docs/_overlay_vertical_dynamic_multi_directional.jsx +1 -1
  72. data/app/pb_kits/playbook/pb_overlay/subcomponents/_overlay_token.tsx +4 -5
  73. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +8 -21
  74. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +1 -3
  75. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +0 -2
  76. data/app/pb_kits/playbook/pb_phone_number_input/docs/index.js +0 -1
  77. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.rb +0 -3
  78. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.test.js +0 -19
  79. data/app/pb_kits/playbook/pb_popover/docs/example.yml +0 -1
  80. data/app/pb_kits/playbook/pb_popover/index.ts +1 -13
  81. data/app/pb_kits/playbook/pb_popover/popover.rb +0 -2
  82. data/app/pb_kits/playbook/pb_select/_select.scss +0 -10
  83. data/app/pb_kits/playbook/pb_select/docs/_select_error.html.erb +1 -1
  84. data/app/pb_kits/playbook/pb_table/docs/_table_with_collapsible_with_custom_click.jsx +7 -7
  85. data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +5 -5
  86. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +2 -4
  87. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_error.html.erb +1 -1
  88. data/app/pb_kits/playbook/pb_textarea/docs/_textarea_error.html.erb +1 -5
  89. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.html.erb +1 -8
  90. data/app/pb_kits/playbook/pb_user/_user.tsx +0 -3
  91. data/app/pb_kits/playbook/pb_user/docs/example.yml +0 -2
  92. data/app/pb_kits/playbook/pb_user/docs/index.js +0 -1
  93. data/app/pb_kits/playbook/pb_user/user.html.erb +1 -2
  94. data/app/pb_kits/playbook/pb_user/user.rb +0 -1
  95. data/dist/chunks/_typeahead-BX8IifKY.js +22 -0
  96. data/dist/chunks/_weekday_stacked-DfMD7HJz.js +45 -0
  97. data/dist/chunks/{lib-DwFasxbk.js → lib-96_ZmvAo.js} +1 -1
  98. data/dist/chunks/{pb_form_validation-nnXW3T-3.js → pb_form_validation-Vv2TqXVC.js} +1 -1
  99. data/dist/chunks/vendor.js +1 -1
  100. data/dist/menu.yml +14 -6
  101. data/dist/playbook-doc.js +2 -2
  102. data/dist/playbook-rails-react-bindings.js +1 -1
  103. data/dist/playbook-rails.js +1 -1
  104. data/dist/playbook.css +1 -1
  105. data/lib/playbook/version.rb +2 -2
  106. metadata +23 -58
  107. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.jsx +0 -80
  108. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color.md +0 -3
  109. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.html.erb +0 -58
  110. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_border_color_rails.md +0 -3
  111. data/app/pb_kits/playbook/pb_advanced_table/flat_advanced_table.js +0 -106
  112. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_grayscale.html.erb +0 -5
  113. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_grayscale.jsx +0 -16
  114. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones.html.erb +0 -64
  115. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors.html.erb +0 -55
  116. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_colors_rails.md +0 -1
  117. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_line.html.erb +0 -55
  118. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_line_rails.md +0 -5
  119. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_drop_zones_rails.md +0 -5
  120. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners.jsx +0 -59
  121. data/app/pb_kits/playbook/pb_draggable/docs/_draggable_event_listeners_react.md +0 -1
  122. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete.html.erb +0 -28
  123. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.html.erb +0 -58
  124. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_autocomplete_with_subcomponents.md +0 -1
  125. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_external_control.md +0 -1
  126. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.jsx +0 -61
  127. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search.md +0 -2
  128. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.html.erb +0 -52
  129. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_search_rails.md +0 -2
  130. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_alignment.html.erb +0 -27
  131. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_default.html.erb +0 -7
  132. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_orientation.html.erb +0 -12
  133. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_size.html.erb +0 -23
  134. data/app/pb_kits/playbook/pb_empty_state/empty_state.html.erb +0 -19
  135. data/app/pb_kits/playbook/pb_empty_state/empty_state.rb +0 -123
  136. data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.html.erb +0 -41
  137. data/app/pb_kits/playbook/pb_filter/docs/_filter_within_turbo_frames.md +0 -1
  138. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.jsx +0 -52
  139. data/app/pb_kits/playbook/pb_line_graph/docs/_line_graph_pb_styles.md +0 -1
  140. data/app/pb_kits/playbook/pb_line_graph/lineGraphTheme.ts +0 -110
  141. data/app/pb_kits/playbook/pb_message/docs/_message_grayscale.html.erb +0 -9
  142. data/app/pb_kits/playbook/pb_message/docs/_message_grayscale.jsx +0 -21
  143. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.html.erb +0 -10
  144. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.jsx +0 -20
  145. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_country_search.md +0 -1
  146. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.html.erb +0 -46
  147. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.md +0 -1
  148. data/app/pb_kits/playbook/pb_user/docs/_user_grayscale.html.erb +0 -6
  149. data/app/pb_kits/playbook/pb_user/docs/_user_grayscale.jsx +0 -16
  150. data/dist/chunks/_typeahead-BQV04mOl.js +0 -22
  151. data/dist/chunks/_weekday_stacked-CVwWr8B2.js +0 -45
  152. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_rails.html.erb → _advanced_table_selectable_rows.html.erb} +0 -0
  153. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows_no_subrows_rails.html.erb → _advanced_table_selectable_rows_no_subrows.html.erb} +0 -0
  154. /data/app/pb_kits/playbook/pb_advanced_table/docs/{_advanced_table_selectable_rows.md → _advanced_table_selectable_rows_react.md} +0 -0
  155. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_react.md → _draggable_drop_zones.md} +0 -0
  156. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_colors_react.md → _draggable_drop_zones_colors.md} +0 -0
  157. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_drop_zones_line_react.md → _draggable_drop_zones_line.md} +0 -0
  158. /data/app/pb_kits/playbook/pb_draggable/docs/{_draggable_event_listeners_rails.md → _draggable_event_listeners.md} +0 -0
@@ -9,182 +9,12 @@ export default class PbAdvancedTable extends PbEnhancedElement {
9
9
  return ADVANCED_TABLE_SELECTOR;
10
10
  }
11
11
 
12
- updateTableSelectedRowsAttribute() {
13
- const mainTable = this.element.closest(".pb_advanced_table");
14
- mainTable.dataset.selectedRows = JSON.stringify(Array.from(PbAdvancedTable.selectedRows));
15
- }
16
-
17
- // Check if the row is expanded or collapsed
18
- // This is used to determine the background color of the row
19
- // when the checkbox is checked or unchecked
20
- isRowExpanded(rowEl) {
21
- const closeIcon = rowEl.querySelector(UP_ARROW_SELECTOR);
22
- return closeIcon?.style.display === "none" || !closeIcon;
23
- }
24
-
25
- updateParentCheckboxes(checkbox) {
26
- const rowEl = checkbox.closest("tr");
27
- if (!rowEl) return;
28
-
29
- const table = rowEl.closest("table");
30
- if (!table) return;
31
-
32
- const contentTrail = rowEl.dataset.advancedTableContent;
33
- if (!contentTrail) return;
34
-
35
- const ancestorIds = contentTrail.split("-").slice(0, -1);
36
-
37
- ancestorIds.reverse();
38
- ancestorIds.forEach((ancestorId) => {
39
- const parentRowSelector = `[data-advanced-table-content$="${ancestorId}"]`;
40
- const parentRow = table.querySelector(parentRowSelector);
41
- if (!parentRow) return;
42
-
43
- const parentLabel = parentRow.querySelector("label[data-row-id]");
44
- if (!parentLabel) return;
45
-
46
- const parentCheckbox = parentLabel.querySelector(
47
- "input[type='checkbox']"
48
- );
49
- if (!parentCheckbox) return;
50
-
51
- // Find all immediate children of parent linked to ancestor Id, filter our subrow headers
52
- const children = Array.from(
53
- table.querySelectorAll(`tr[data-row-parent$="_${ancestorId}"]`)
54
- ).filter((child) => {
55
- const content = child.dataset.advancedTableContent;
56
- return !(content && content.endsWith("sr"));
57
- });
58
-
59
- const allChildrenChecked = Array.from(children).every((child) => {
60
- const childLabel = child.querySelector("label[data-row-id]");
61
- if (!childLabel) return false;
62
- const childCheckbox = childLabel.querySelector(
63
- "input[type='checkbox']"
64
- );
65
- if (!childCheckbox) return false;
66
- return childCheckbox.checked;
67
- });
68
-
69
- // Update parent checkbox
70
- parentCheckbox.checked = allChildrenChecked;
71
-
72
- const parentCheckboxId = parentCheckbox.id;
73
- if (allChildrenChecked) {
74
- PbAdvancedTable.selectedRows.add(parentCheckboxId);
75
- parentRow.classList.add("bg-row-selection");
76
- parentRow.classList.remove("bg-white", "bg-silver");
77
- } else {
78
- PbAdvancedTable.selectedRows.delete(parentCheckboxId);
79
- }
80
- if (!allChildrenChecked) {
81
- parentRow.classList.remove("bg-row-selection");
82
-
83
- if (this.isRowExpanded(parentRow)) {
84
- parentRow.classList.remove("bg-silver");
85
- parentRow.classList.add("bg-white");
86
- } else {
87
- parentRow.classList.remove("bg-white");
88
- parentRow.classList.add("bg-silver");
89
- }
90
- }
91
- });
92
- }
93
-
94
- handleCheckboxClick(event) {
95
- const checkbox = event.currentTarget;
96
- const rowId = checkbox.id;
97
- const isChecked = checkbox.checked;
98
- const rowEl = checkbox.closest("tr");
99
-
100
- if (isChecked) {
101
- PbAdvancedTable.selectedRows.add(rowId);
102
- rowEl.classList.add("bg-row-selection");
103
- rowEl.classList.remove("bg-white", "bg-silver");
104
- } else {
105
- PbAdvancedTable.selectedRows.delete(rowId);
106
- }
107
- // Update background color on row
108
- if (!isChecked) {
109
- rowEl.classList.remove("bg-row-selection");
110
-
111
- if (this.isRowExpanded(rowEl)) {
112
- rowEl.classList.remove("bg-silver");
113
- rowEl.classList.add("bg-white");
114
- } else {
115
- rowEl.classList.remove("bg-white");
116
- rowEl.classList.add("bg-silver");
117
- }
118
- }
119
- if (rowEl) {
120
- const table = rowEl.closest("table");
121
- const rowContent = rowEl.dataset.advancedTableContent;
122
-
123
- if (rowContent) {
124
- const childRows = table.querySelectorAll(
125
- `[data-advanced-table-content^="${rowContent}-"]`
126
- );
127
-
128
- childRows.forEach((childRow) => {
129
- const label = childRow.querySelector("label[data-row-id]");
130
- if (!label) return;
131
-
132
- const childCheckbox = label.querySelector("input[type='checkbox']");
133
- if (!childCheckbox) return;
134
-
135
- childCheckbox.checked = isChecked;
136
-
137
- const childRowId = childCheckbox.id;
138
- const childRowEl = childCheckbox.closest("tr");
139
- if (isChecked) {
140
- PbAdvancedTable.selectedRows.add(childRowId);
141
- childRowEl?.classList.add("bg-row-selection");
142
- childRowEl?.classList.remove("bg-white", "bg-silver");
143
- } else {
144
- PbAdvancedTable.selectedRows.delete(childRowId);
145
- }
146
- if (!isChecked) {
147
- childRowEl?.classList.remove("bg-row-selection");
148
-
149
- if (this.isRowExpanded(childRowEl)) {
150
- childRowEl?.classList.remove("bg-silver");
151
- childRowEl?.classList.add("bg-white");
152
- } else {
153
- childRowEl?.classList.remove("bg-white");
154
- childRowEl?.classList.add("bg-silver");
155
- }
156
- }
157
- });
158
- }
159
- }
160
-
161
- this.updateParentCheckboxes(checkbox);
162
-
163
- this.updateTableSelectedRowsAttribute();
164
-
165
- const table = checkbox.closest("table");
166
- const selectAllCheckbox = table.querySelector("#select-all-rows");
167
-
168
- if (selectAllCheckbox) {
169
- const allCheckboxes = table.querySelectorAll(
170
- "label[data-row-id] input[type='checkbox']"
171
- );
172
- const allChecked = Array.from(allCheckboxes).every((cb) => cb.checked);
173
-
174
- const selectAllInput = selectAllCheckbox.querySelector(
175
- 'input[type="checkbox"]'
176
- );
177
- selectAllInput.checked = allChecked;
178
- }
179
- }
180
-
181
12
  get target() {
182
13
  const table = this.element.closest("table");
183
14
  return table.querySelectorAll(`[data-row-parent="${this.element.id}"]`);
184
15
  }
185
16
 
186
17
  static expandedRows = new Set();
187
- static selectedRows = new Set();
188
18
  static isCollapsing = false;
189
19
 
190
20
  connect() {
@@ -201,31 +31,17 @@ export default class PbAdvancedTable extends PbEnhancedElement {
201
31
  this.toggleElement(this.target);
202
32
  }
203
33
  });
204
-
205
- this.hideCloseIcon();
206
-
207
- const table = this.element.closest("table");
208
-
209
- // Prevent duplicate initialization
210
- if (table.dataset.pbAdvancedTableInitialized) return;
211
- table.dataset.pbAdvancedTableInitialized = "true";
212
-
213
- // Bind checkbox change handlers for all row checkboxes
214
- const checkboxLabels = table.querySelectorAll("label[data-row-id]");
215
- checkboxLabels.forEach((label) => {
216
- const checkbox = label.querySelector("input[type='checkbox']");
217
- if (!checkbox) return;
218
- checkbox.addEventListener("change", (event) => {
219
- this.handleCheckboxClick(event);
220
- });
221
- });
222
-
223
- // Bind nested row expansion logic
224
- const nestedButtons = table.querySelectorAll("[data-advanced-table]");
34
+
35
+ this.hideCloseIcon()
36
+
37
+ const nestedButtons = this.element
38
+ .closest("table")
39
+ .querySelectorAll("[data-advanced-table]");
225
40
  nestedButtons.forEach((button) => {
226
41
  button.addEventListener("click", () => {
227
42
  const isExpanded =
228
- button.querySelector(UP_ARROW_SELECTOR).style.display === "inline-block";
43
+ button.querySelector(UP_ARROW_SELECTOR).style.display ===
44
+ "inline-block";
229
45
  if (isExpanded) {
230
46
  PbAdvancedTable.expandedRows.add(button.id);
231
47
  } else {
@@ -233,46 +49,12 @@ export default class PbAdvancedTable extends PbEnhancedElement {
233
49
  }
234
50
  });
235
51
  });
236
-
237
- // Bind select-all logic for this table
238
- const selectAllCheckbox = table.querySelector("#select-all-rows");
239
- if (selectAllCheckbox) {
240
- selectAllCheckbox.addEventListener("change", () => {
241
- const checkboxInput = selectAllCheckbox.querySelector('input[type="checkbox"]');
242
- const checkAll = checkboxInput.checked;
243
-
244
- const checkboxes = Array.from(
245
- table.querySelectorAll("label[data-row-id] input[type='checkbox']")
246
- );
247
-
248
- checkboxes.forEach((cb) => {
249
- cb.checked = checkAll;
250
- const rowId = cb.id;
251
- const rowEl = cb.closest("tr");
252
-
253
- if (checkAll) {
254
- PbAdvancedTable.selectedRows.add(rowId);
255
- rowEl?.classList.add("bg-row-selection");
256
- rowEl?.classList.remove("bg-white", "bg-silver");
257
- } else {
258
- PbAdvancedTable.selectedRows.delete(rowId);
259
- rowEl?.classList.remove("bg-row-selection");
260
- rowEl?.classList.add("bg-white");
261
- }
262
- });
263
-
264
- checkboxes.forEach((cb) => this.updateParentCheckboxes(cb));
265
-
266
- this.updateTableSelectedRowsAttribute();
267
- });
268
- }
269
52
  }
270
-
271
53
 
272
54
  hideCloseIcon() {
273
55
  const closeIcon = this.element.querySelector(UP_ARROW_SELECTOR);
274
56
  closeIcon.style.display = "none";
275
- }
57
+ }
276
58
 
277
59
  showElement(elements) {
278
60
  elements.forEach((elem) => {
@@ -369,6 +151,7 @@ export default class PbAdvancedTable extends PbEnhancedElement {
369
151
  }
370
152
  }
371
153
 
154
+
372
155
  displayDownArrow() {
373
156
  this.element.querySelector(DOWN_ARROW_SELECTOR).style.display =
374
157
  "inline-block";
@@ -455,4 +238,4 @@ window.expandAllRows = (element) => {
455
238
 
456
239
  window.expandAllSubRows = (element, rowDepth) => {
457
240
  PbAdvancedTable.handleToggleAllSubRows(element, rowDepth);
458
- };
241
+ };
@@ -55,15 +55,7 @@ module Playbook
55
55
  # Subrow header if applicable
56
56
  output << pb_rails("advanced_table/table_subrow_header", props: { row: row, column_definitions: leaf_columns, depth: current_depth, subrow_header: subrow_headers[current_depth - 1], collapsible_trail: collapsible_trail, classname: "toggle-content", responsive: responsive, subrow_data_attributes: subrow_data_attributes }) if is_first_child_of_subrow && enable_toggle_expansion == "all"
57
57
 
58
- current_data_attributes = if current_depth.zero?
59
- {
60
- row_depth: 0,
61
- advanced_table_content: row.object_id.to_s,
62
- row_parent: nil,
63
- }
64
- else
65
- table_data_attributes
66
- end
58
+ current_data_attributes = current_depth.zero? ? { row_depth: 0 } : table_data_attributes
67
59
 
68
60
  # Additional class and data attributes needed for toggle logic
69
61
  output << pb_rails("advanced_table/table_row", props: { id: id, row: row, column_definitions: leaf_columns, depth: current_depth, collapsible_trail: collapsible_trail, classname: additional_classes, table_data_attributes: current_data_attributes, responsive: responsive, loading: loading, selectable_rows: selectable_rows, row_id: row[:id], enable_toggle_expansion: enable_toggle_expansion })
@@ -54,6 +54,9 @@ module Playbook
54
54
  pb_rails("checkbox", props: {
55
55
  id: "select-all-rows",
56
56
  name: "select-all-rows",
57
+ data: {
58
+ action: "click->pb-advanced-table#toggleAllRowSelection",
59
+ },
57
60
  })
58
61
  end
59
62
  end
@@ -60,7 +60,7 @@ module Playbook
60
60
  name: "select-row-#{row_id || row.object_id}",
61
61
  data: {
62
62
  row_id: row_id || row.object_id.to_s,
63
- flat_advanced_table_select: true,
63
+ action: "click->pb-advanced-table#toggleRowSelection",
64
64
  },
65
65
  })
66
66
  end
@@ -75,6 +75,7 @@ module Playbook
75
75
  name: "select-row-#{row_id || row.object_id}",
76
76
  data: {
77
77
  row_id: row_id || row.object_id.to_s,
78
+ action: "click->pb-advanced-table#toggleRowSelection",
78
79
  },
79
80
  })
80
81
  end
@@ -82,10 +82,6 @@ $avatar-sizes: (
82
82
  object-fit: cover;
83
83
  display: block;
84
84
  }
85
-
86
- .grayscale {
87
- filter: grayscale(1);
88
- }
89
85
  }
90
86
  }
91
87
  }
@@ -25,7 +25,6 @@ export type AvatarProps = {
25
25
  },
26
26
  dark?: boolean,
27
27
  data?: {[key: string]: string},
28
- grayscale?: boolean,
29
28
  htmlOptions?: {[key: string]: string | number | boolean | (() => void)},
30
29
  id?: string,
31
30
  imageAlt?: string,
@@ -48,7 +47,6 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
48
47
  htmlOptions = {},
49
48
  name = undefined,
50
49
  componentOverlay,
51
- grayscale = false,
52
50
  id = '',
53
51
  imageAlt = '',
54
52
  imageUrl,
@@ -157,7 +155,6 @@ const Avatar = (props: AvatarProps): React.ReactElement => {
157
155
  {canShowImage && (
158
156
  <Image
159
157
  alt={imageAlt ? imageAlt : name}
160
- className={grayscale ? "grayscale" : ""}
161
158
  onError={handleError}
162
159
  url={imageUrl}
163
160
  />
@@ -3,7 +3,7 @@
3
3
  <% if object.component_overlay && object.component_overlay[:component] == "icon_circle" %>
4
4
  <%= pb_rails("flex", props: { display: "display_inline_block", position: "relative" }) do %>
5
5
  <%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
6
- <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error, classname: object.grayscale ? "grayscale" : "" }) if object.image_url.present? %>
6
+ <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
7
7
  <% end %>
8
8
  <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", dark: object.dark, position: "absolute" }.merge(specific_placement_style)) do %>
9
9
 
@@ -13,7 +13,7 @@
13
13
  <% elsif object.component_overlay && object.component_overlay[:component] == "badge" %>
14
14
  <%= pb_rails("flex", props: { display: "display_inline_block", position: "relative" }) do %>
15
15
  <%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
16
- <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error, classname: object.grayscale ? "grayscale" : "" }) if object.image_url.present? %>
16
+ <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
17
17
  <% end %>
18
18
  <%= pb_rails("card", props: { border_none: true, border_radius: "rounded", dark: object.dark, padding: "none", position: "absolute" }.merge(specific_placement_style)) do %>
19
19
  <%= pb_rails("badge", props: { dark: object.dark, rounded: true, text: object.component_overlay[:text], variant: object.component_overlay[:variant] }) %>
@@ -21,7 +21,7 @@
21
21
  <% end %>
22
22
  <% else %>
23
23
  <%= content_tag(:div, data: { initials: object.initials }, class: "avatar_wrapper") do %>
24
- <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error, classname: object.grayscale ? "grayscale" : "" }) if object.image_url.present? %>
24
+ <%= pb_rails("image", props: { alt: object.alt_text, url: object.image_url, on_error: object.handle_img_error }) if object.image_url.present? %>
25
25
  <% end %>
26
26
  <%= pb_rails("online_status", props: object.online_status_props) if object.status %>
27
27
  <% end %>
@@ -15,8 +15,6 @@ module Playbook
15
15
  values: %w[xxs xs sm md base lg xl],
16
16
  default: "md"
17
17
  prop :status
18
- prop :grayscale, type: Playbook::Props::Boolean,
19
- default: false
20
18
 
21
19
  def initials
22
20
  name.split.map(&:first).join.downcase
@@ -106,21 +106,3 @@ test('renders with online status', () => {
106
106
  const onlineStatus = onlineStatusAvatar.querySelector('.pb_online_status_kit_online_size_md')
107
107
  expect(onlineStatus).toBeInTheDocument();
108
108
  });
109
-
110
- test('renders with grayscale filter', () => {
111
- render(
112
- <Avatar
113
- data={{ testid: testId }}
114
- grayscale
115
- imageAlt={imageAlt}
116
- imageUrl={imageUrl}
117
- name={name}
118
- />
119
- );
120
-
121
- const grayscaleAvatar = screen.getByTestId(testId);
122
- expect(grayscaleAvatar).toBeInTheDocument();
123
-
124
- const grayscaleImage = grayscaleAvatar.querySelector('.grayscale')
125
- expect(grayscaleImage).toBeInTheDocument();
126
- });
@@ -6,7 +6,6 @@ examples:
6
6
  - avatar_status: Status
7
7
  - avatar_circle_icon_component_overlay: Icon Circle Component Overlay
8
8
  - avatar_badge_component_overlay: Badge Component Overlay
9
- - avatar_grayscale: Grayscale
10
9
  react:
11
10
  - avatar_default: Default
12
11
  - avatar_monogram: Monogram
@@ -14,7 +13,6 @@ examples:
14
13
  - avatar_status: Status
15
14
  - avatar_circle_icon_component_overlay: Icon Circle Component Overlay
16
15
  - avatar_badge_component_overlay: Badge Component Overlay
17
- - avatar_grayscale: Grayscale
18
16
  swift:
19
17
  - avatar_default_swift: Default
20
18
  - avatar_monogram_swift: Monogram
@@ -4,4 +4,3 @@ export { default as AvatarStatus } from './_avatar_status.jsx'
4
4
  export { default as AvatarNoImage } from './_avatar_no_image.jsx'
5
5
  export { default as AvatarCircleIconComponentOverlay } from './_avatar_circle_icon_component_overlay.jsx'
6
6
  export { default as AvatarBadgeComponentOverlay } from './_avatar_badge_component_overlay.jsx'
7
- export { default as AvatarGrayscale } from './_avatar_grayscale.jsx'
@@ -1,5 +1,5 @@
1
1
  <% if object.draggable_item %>
2
- <%= pb_rails("draggable/draggable_item", props:{drag_id: object.drag_id, classname: drop_zone_line_color ? line_color_class : nil}) do %>
2
+ <%= pb_rails("draggable/draggable_item", props:{drag_id: object.drag_id}) do %>
3
3
  <%= pb_content_tag(object.tag) do %>
4
4
  <% if object.draggable_item %>
5
5
  <%= pb_rails("flex", props: { align: "center" }) do %>
@@ -24,9 +24,6 @@ module Playbook
24
24
  default: true
25
25
  prop :items, type: Playbook::Props::Array,
26
26
  default: []
27
- prop :drop_zone_line_color, type: Playbook::Props::Enum,
28
- values: ["primary", "purple", nil],
29
- default: nil
30
27
 
31
28
  def classname
32
29
  generate_classname("pb_card_kit",
@@ -63,15 +60,6 @@ module Playbook
63
60
  def border_radius_class
64
61
  border_radius != "md" ? "border_radius_#{border_radius}" : nil
65
62
  end
66
-
67
- def line_color_class
68
- case drop_zone_line_color
69
- when "primary"
70
- "drop_zone_color_primary"
71
- when "purple"
72
- "drop_zone_color_purple"
73
- end
74
- end
75
63
  end
76
64
  end
77
65
  end
@@ -1,4 +1,4 @@
1
- <%= pb_rails("date_picker", props: {
2
- error: raw(pb_rails("icon", props: { icon: "warning" }) + " Invalid date. Please pick a valid date."),
1
+ <%= pb_rails("date_picker", props: {
2
+ error: "Invalid date. Please pick a valid date.",
3
3
  picker_id: "date-picker-error"
4
4
  }) %>
@@ -9,7 +9,6 @@ examples:
9
9
  - draggable_drop_zones: Draggable Drop Zones
10
10
  - draggable_drop_zones_colors: Draggable Drop Zones Colors
11
11
  - draggable_drop_zones_line: Draggable Drop Zones Line
12
- - draggable_event_listeners: Draggable Event Listeners
13
12
 
14
13
  rails:
15
14
  - draggable_default: Default
@@ -18,7 +17,5 @@ examples:
18
17
  - draggable_with_cards: Draggable with Cards
19
18
  - draggable_with_table: Draggable with Table
20
19
  - draggable_multiple_containers: Dragging Across Multiple Containers
21
- - draggable_drop_zones: Draggable Drop Zones
22
- - draggable_drop_zones_colors: Draggable Drop Zones Colors
23
- - draggable_drop_zones_line: Draggable Drop Zones Line
24
20
  - draggable_event_listeners: Draggable Event Listeners
21
+
@@ -6,5 +6,4 @@ export { default as DraggableMultipleContainers } from './_draggable_multiple_co
6
6
  export { default as DraggableWithTable } from './_draggable_with_table.jsx'
7
7
  export { default as DraggableDropZones } from './_draggable_drop_zones.jsx'
8
8
  export { default as DraggableDropZonesColors } from './_draggable_drop_zones_colors.jsx'
9
- export { default as DraggableDropZonesLine } from './_draggable_drop_zones_line.jsx'
10
- export { default as DraggableEventListeners } from './_draggable_event_listeners.jsx'
9
+ export { default as DraggableDropZonesLine } from './_draggable_drop_zones_line.jsx'
@@ -5,17 +5,9 @@ module Playbook
5
5
  class Draggable < ::Playbook::KitBase
6
6
  prop :initial_items, type: Playbook::Props::Array,
7
7
  default: []
8
- prop :drop_zone_type, type: Playbook::Props::Enum,
9
- values: %w[ghost shadow outline line],
10
- default: "ghost"
11
- prop :drop_zone_color, type: Playbook::Props::Enum,
12
- values: %w[neutral primary purple],
13
- default: "neutral"
14
8
 
15
9
  def data
16
- Hash(prop(:data)).merge(pb_draggable: true,
17
- drop_zone_type: drop_zone_type,
18
- drop_zone_color: drop_zone_color)
10
+ Hash(prop(:data)).merge(pb_draggable: true)
19
11
  end
20
12
 
21
13
  def classname
@@ -7,23 +7,13 @@ module Playbook
7
7
  default: "div"
8
8
  prop :container, type: Playbook::Props::String,
9
9
  default: ""
10
- prop :drop_zone_direction, type: Playbook::Props::Enum,
11
- values: ["horizontal", "vertical", nil],
12
- default: nil
13
10
 
14
11
  def data
15
12
  Hash(prop(:data)).merge(pb_draggable_container: true)
16
13
  end
17
14
 
18
15
  def classname
19
- direction_class = case drop_zone_direction
20
- when "horizontal"
21
- "line_horizontal"
22
- when "vertical"
23
- "line_vertical"
24
- end
25
-
26
- generate_classname("pb_draggable_container", direction_class, separator: " ")
16
+ generate_classname("pb_draggable_container")
27
17
  end
28
18
  end
29
19
  end
@@ -9,23 +9,13 @@ module Playbook
9
9
  default: "div"
10
10
  prop :container, type: Playbook::Props::String,
11
11
  default: ""
12
- prop :drop_zone_line_color, type: Playbook::Props::Enum,
13
- values: ["primary", "purple", nil],
14
- default: nil
15
12
 
16
13
  def data
17
14
  Hash(prop(:data)).merge(pb_draggable_item: true)
18
15
  end
19
16
 
20
17
  def classname
21
- line_color_class = case drop_zone_line_color
22
- when "primary"
23
- "drop_zone_color_primary"
24
- when "purple"
25
- "drop_zone_color_purple"
26
- end
27
-
28
- generate_classname("pb_draggable_item", line_color_class, separator: " ")
18
+ generate_classname("pb_draggable_item")
29
19
  end
30
20
  end
31
21
  end