playbook_ui 14.23.0.pre.alpha.PLAY2330removewalkthrough9176 → 14.23.0.pre.alpha.advancedtablefix9082

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 (47) 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/Components/CustomCell.tsx +6 -7
  4. data/app/pb_kits/playbook/pb_advanced_table/Components/TableActionBar.tsx +10 -10
  5. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +1 -53
  6. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +6 -9
  7. data/app/pb_kits/playbook/pb_advanced_table/advanced_table.rb +2 -12
  8. data/app/pb_kits/playbook/pb_advanced_table/advanced_table_action_bar.js +0 -16
  9. data/app/pb_kits/playbook/pb_advanced_table/scss_partials/advanced_table_sticky_mixin.scss +1 -7
  10. data/app/pb_kits/playbook/pb_advanced_table/table_row.html.erb +2 -2
  11. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +1 -12
  12. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate.html.erb +1 -1
  13. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_indeterminate_rails.md +1 -2
  14. data/app/pb_kits/playbook/pb_checkbox/index.js +1 -3
  15. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +1 -17
  16. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +0 -6
  17. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options.jsx +0 -1
  18. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_radio_options_react.md +1 -1
  19. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +2 -3
  20. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +1 -2
  21. data/app/pb_kits/playbook/pb_dropdown/dropdown.test.jsx +0 -24
  22. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +1 -11
  23. data/app/pb_kits/playbook/pb_select/select.rb +2 -4
  24. data/app/pb_kits/playbook/pb_table/docs/_table_with_selectable_rows.html.erb +0 -1
  25. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.scss +0 -0
  26. data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +202 -0
  27. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_continuous.jsx +69 -0
  28. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_default.jsx +71 -0
  29. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_multi_beacon.jsx +110 -0
  30. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_beacon.jsx +76 -0
  31. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_no_overlay.jsx +76 -0
  32. data/app/pb_kits/playbook/pb_walkthrough/docs/_walkthrough_styled.jsx +76 -0
  33. data/app/pb_kits/playbook/pb_walkthrough/docs/example.yml +10 -0
  34. data/app/pb_kits/playbook/pb_walkthrough/docs/index.js +6 -0
  35. data/app/pb_kits/playbook/pb_walkthrough/walkthrough.test.jsx +34 -0
  36. data/dist/chunks/_weekday_stacked-C16ua8Si.js +61 -0
  37. data/dist/chunks/vendor.js +1 -1
  38. data/dist/menu.yml +7 -0
  39. data/dist/playbook-doc.js +2 -2
  40. data/dist/playbook-rails.js +1 -1
  41. data/dist/playbook.css +1 -1
  42. data/lib/playbook/version.rb +1 -1
  43. metadata +14 -6
  44. data/app/pb_kits/playbook/pb_dropdown/_dropdown_mixin.scss +0 -36
  45. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options.jsx +0 -90
  46. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_with_custom_active_style_options_react.md +0 -4
  47. data/dist/chunks/_weekday_stacked-BF1N4Z9h.js +0 -37
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02efd0660039e5a7b7feded3c762b0512229efd0969763d72c4dbb9ad6b67dfb
4
- data.tar.gz: 17a35b1f152c7c57ec490d5eaddb4cebf2ee8216d8403d62e3d0dab6f3ba12f6
3
+ metadata.gz: b0b8707f27e1d78520568b40d2f13050f404af79a1cbcda223db14444569aa9e
4
+ data.tar.gz: 30329a170b42fd317808886d5d6a3c54d0b76ce766e8d425f673388f4f743080
5
5
  SHA512:
6
- metadata.gz: abfa3c42375a34b984b331b3fc0d28a814355dd6b4f4f995b156c67683b7a834ebae444a89db79e15a1ab06f3e45ab33720555b0235fea24537921c79a4c90d4
7
- data.tar.gz: cc20c9590ab8471770c406898fe93aabdd9aaa9bc94e228579d49b1aa13a95fac4b9a95ee1b64ec4495be940b52060e67c6d1f3def412299b5ec743202691088
6
+ metadata.gz: 95a214937ae321b93e42789ae622c9690ee90b7773be34444f6c659961f39f1ed22a64448b19867419accaaebda7489431bc54d8a9a559a48be8d77a7407f256
7
+ data.tar.gz: 89966b80daf0eb0911e9c2232ab75c263d68309b6a18dc5112e599ff0b484bc5eb555cd88603b1ea4b152e1fe82bc44472cfc4e78ae68f6870991a405d254a31
@@ -107,6 +107,7 @@
107
107
  @import 'pb_typeahead/typeahead';
108
108
  @import 'pb_user/user';
109
109
  @import 'pb_user_badge/user_badge';
110
+ @import 'pb_walkthrough/walkthrough';
110
111
  @import 'pb_weekday_stacked/weekday_stacked';
111
112
  @import 'pb_empty_state/empty_state';
112
113
  @import 'utilities/mixins';
@@ -20,7 +20,7 @@ interface CustomCellProps {
20
20
  customRenderer?: (row: Row<GenericObject>, value: string | undefined) => React.ReactNode
21
21
  selectableRows?: boolean
22
22
  customStyle?: GenericObject
23
- }
23
+ }
24
24
 
25
25
  export const CustomCell = ({
26
26
  getValue,
@@ -35,7 +35,7 @@ export const CustomCell = ({
35
35
 
36
36
  const handleOnExpand = (row: Row<GenericObject>) => {
37
37
  onRowToggleClick && onRowToggleClick(row);
38
-
38
+
39
39
  if (!expandedControl) {
40
40
  setExpanded({ ...expanded, [row.id]: !row.getIsExpanded() });
41
41
  }
@@ -46,8 +46,8 @@ export const CustomCell = ({
46
46
 
47
47
  return (
48
48
  <div style={{ paddingLeft: `${row.depth * 1.25}em`}}>
49
- <Flex
50
- alignItems="center"
49
+ <Flex
50
+ alignItems="center"
51
51
  columnGap="xs"
52
52
  justify="start"
53
53
  orientation="row"
@@ -71,12 +71,11 @@ export const CustomCell = ({
71
71
  >
72
72
  {row.getIsExpanded() ? (
73
73
  <Icon cursor="pointer"
74
- icon="circle-play"
75
- rotation={90}
74
+ icon="circle-play-down"
76
75
  />
77
76
  ) : (
78
77
  <Icon cursor="pointer"
79
- icon="circle-play"
78
+ icon="circle-play"
80
79
  />
81
80
  )}
82
81
  </button>
@@ -112,7 +112,7 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
112
112
  paddingBottom="xs"
113
113
  text={node.label}
114
114
  />
115
- <Flex flexDirection="column"
115
+ <Flex flexDirection="column"
116
116
  paddingLeft="lg"
117
117
  >
118
118
  {node?.children?.map((child) =>
@@ -141,8 +141,8 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
141
141
  setShowPopover(!shouldClose)
142
142
 
143
143
  const popoverReference = (
144
- <Tooltip
145
- placement="top"
144
+ <Tooltip
145
+ placement="top"
146
146
  text="Column Configuration"
147
147
  >
148
148
  <div onClick={togglePopover}>
@@ -170,8 +170,8 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
170
170
  >
171
171
  {type === "row-selection" ? (
172
172
  <>
173
- <Caption color="light"
174
- paddingLeft="xs"
173
+ <Caption color="light"
174
+ paddingLeft="xs"
175
175
  size="xs"
176
176
  >
177
177
  {selectedCount} Selected
@@ -188,15 +188,15 @@ const TableActionBar: React.FC<TableActionBarProps> = ({
188
188
  zIndex={3}
189
189
  >
190
190
  <>
191
- <Caption
192
- paddingY="sm"
191
+ <Caption
192
+ paddingY="sm"
193
193
  text="Columns Config"
194
- textAlign="center"
194
+ textAlign="center"
195
195
  />
196
196
  <SectionSeparator paddingBottom="xs" />
197
197
  {tree.map((node: VisibilityNode) => (
198
- <Flex cursor="pointer"
199
- flexDirection="column"
198
+ <Flex cursor="pointer"
199
+ flexDirection="column"
200
200
  key={node.id}
201
201
  paddingX="xs"
202
202
  >
@@ -124,65 +124,13 @@
124
124
  -ms-overflow-style: none !important;
125
125
  scrollbar-width: none !important;
126
126
  }
127
-
128
- // When action bar is hidden, ensure proper border radius for header corners
129
- &.hidden-action-bar {
130
- .pb_advanced_table_header {
131
- > tr:first-child {
132
- th:first-child {
133
- border-top-left-radius: 4px !important;
134
- }
135
- th:last-child {
136
- border-top-right-radius: 4px !important;
137
- }
138
- }
139
- }
140
-
141
- // Also handle the case when there are multiple header rows
142
- .pb_advanced_table_header {
143
- > tr:first-child {
144
- th:first-child,
145
- .table-header-cells:first-child,
146
- .table-header-cells-custom:first-child {
147
- border-top-left-radius: 4px !important;
148
- }
149
- th:last-child,
150
- .table-header-cells:last-child,
151
- .table-header-cells-custom:last-child {
152
- border-top-right-radius: 4px !important;
153
- }
154
- }
155
- }
156
- }
157
-
158
- // When action bar is shown, remove border radius from header
159
- .row-selection-actions-card.is-visible ~ * .pb_advanced_table_header,
160
- .row-selection-actions-card.show-action-card ~ * .pb_advanced_table_header {
161
- > tr:first-child {
162
- th:first-child,
163
- th:last-child,
164
- .table-header-cells:first-child,
165
- .table-header-cells:last-child,
166
- .table-header-cells-custom:first-child,
167
- .table-header-cells-custom:last-child {
168
- border-top-left-radius: 0 !important;
169
- border-top-right-radius: 0 !important;
170
- }
171
- }
172
- }
173
-
127
+
174
128
 
175
129
  .row-selection-actions-card {
176
130
  border-bottom-right-radius: 0px !important;
177
131
  border-bottom-left-radius: 0px !important;
178
132
  border-bottom-color: transparent;
179
133
  transition: height 300ms ease;
180
-
181
- &.is-visible,
182
- &.show-action-card {
183
- border-top-left-radius: 4px !important;
184
- border-top-right-radius: 4px !important;
185
- }
186
134
  }
187
135
  .table-header-cells:first-child {
188
136
  min-width: 180px;
@@ -218,10 +218,10 @@ const AdvancedTable = (props: AdvancedTableProps) => {
218
218
  )
219
219
 
220
220
  return (
221
- <Card
221
+ <Card
222
222
  borderNone
223
223
  borderRadius="none"
224
- className="advanced-table-fullscreen-header"
224
+ className="advanced-table-fullscreen-header"
225
225
  {...props}
226
226
  >
227
227
  <Flex justify="end">
@@ -250,10 +250,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
250
250
  const ariaProps = buildAriaProps(aria);
251
251
  const dataProps = buildDataProps(data);
252
252
  const htmlProps = buildHtmlProps(htmlOptions);
253
-
254
- // Visibility flag for action bar
255
- const isActionBarVisible = (selectableRows && showActionsBar && selectedRowsLength > 0) || columnVisibilityControl;
256
-
257
253
  const classes = classnames(
258
254
  buildCss("pb_advanced_table"),
259
255
  `advanced-table-responsive-${responsive}`,
@@ -261,8 +257,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
261
257
  {
262
258
  'advanced-table-fullscreen': isFullscreen,
263
259
  'advanced-table-allow-fullscreen': allowFullScreen,
264
- // Add the hidden-action-bar class when action bar functionality exists but is not visible
265
- 'hidden-action-bar': (selectableRows || columnVisibilityControl) && !isActionBarVisible,
266
260
  },
267
261
  {'advanced-table-sticky-left-columns': stickyLeftColumn && stickyLeftColumn.length > 0},
268
262
  columnGroupBorderColor ? `column-group-border-${columnGroupBorderColor}` : '',
@@ -276,6 +270,9 @@ const AdvancedTable = (props: AdvancedTableProps) => {
276
270
  ? getVirtualizedContainerStyles(maxHeight)
277
271
  : {};
278
272
 
273
+ // Visibility flag for action bar
274
+ const isActionBarVisible = (selectableRows && showActionsBar && selectedRowsLength > 0) || columnVisibilityControl;
275
+
279
276
  // The actual Main <Table /> element
280
277
  const tableElement = (
281
278
  <Table
@@ -291,7 +288,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
291
288
  ) : (
292
289
  <>
293
290
  <TableHeader />
294
- <TableBody
291
+ <TableBody
295
292
  isFetching={isFetching}
296
293
  />
297
294
  </>
@@ -35,12 +35,7 @@ module Playbook
35
35
  default: []
36
36
 
37
37
  def classname
38
- additional_classes = [
39
- responsive_classname,
40
- max_height_classname,
41
- hide_scroll_bar_class,
42
- hidden_action_bar_class,
43
- ]
38
+ additional_classes = [responsive_classname, max_height_classname, hide_scroll_bar_class]
44
39
  additional_classes << "column-group-border-#{column_group_border_color}" if column_group_border_color != "none"
45
40
  generate_classname("pb_advanced_table", *additional_classes, separator: " ")
46
41
  end
@@ -54,12 +49,7 @@ module Playbook
54
49
  end
55
50
 
56
51
  def hide_scroll_bar_class
57
- scroll_bar_none ? "advanced-table-hide-scrollbar" : ""
58
- end
59
-
60
- def hidden_action_bar_class
61
- # Add hidden-action-bar class when action bar functionality is enabled but not currently visible
62
- selectable_rows && !is_action_bar_visible ? "hidden-action-bar" : ""
52
+ scroll_bar_none ? "advanced-table-hide-scrollbar " : ""
63
53
  end
64
54
 
65
55
  def selected_rows
@@ -1,7 +1,4 @@
1
1
  function showActionBar(actionBar, selectedCount) {
2
- // Get container
3
- const tableContainer = actionBar.closest('.pb_advanced_table');
4
-
5
2
  // Show action bar directly
6
3
  actionBar.style.height = "auto";
7
4
  actionBar.style.overflow = "visible";
@@ -11,11 +8,6 @@ function showActionBar(actionBar, selectedCount) {
11
8
  actionBar.classList.remove("p_none");
12
9
  actionBar.classList.add("p_xs", "is-visible", "show-action-card");
13
10
 
14
- // Remove hidden-action-bar class when action bar is shown
15
- if (tableContainer) {
16
- tableContainer.classList.remove("hidden-action-bar");
17
- }
18
-
19
11
  // Update the count
20
12
  const countElement = actionBar.querySelector(".selected-count");
21
13
  if (countElement) {
@@ -24,20 +16,12 @@ function showActionBar(actionBar, selectedCount) {
24
16
  }
25
17
 
26
18
  function hideActionBar(actionBar) {
27
- // Get container
28
- const tableContainer = actionBar.closest('.pb_advanced_table');
29
-
30
19
  // Hide action bar directly
31
20
  actionBar.style.height = "0px";
32
21
  actionBar.style.overflow = "hidden";
33
22
  actionBar.style.opacity = "0";
34
23
  actionBar.classList.add("p_none");
35
24
  actionBar.classList.remove("p_xs", "is-visible", "show-action-card");
36
-
37
- // Add hidden-action-bar class when action bar is hidden
38
- if (tableContainer) {
39
- tableContainer.classList.add("hidden-action-bar");
40
- }
41
25
  }
42
26
 
43
27
  export function updateSelectionActionBar(table, selectedCount) {
@@ -79,14 +79,8 @@
79
79
  left: 0;
80
80
  border-radius: unset;
81
81
  z-index: 5;
82
-
83
- // Add proper border radius when action bar is visible
84
- &.is-visible,
85
- &.show-action-card {
86
- border-top-left-radius: 4px !important;
87
- border-top-right-radius: 4px !important;
88
- }
89
82
  }
83
+
90
84
  .checkbox-cell {
91
85
  display: table-cell !important;
92
86
  }
@@ -39,11 +39,11 @@
39
39
  style="color: <%= button_color %>"
40
40
  >
41
41
  <%= pb_rails("icon", props: { id: "advanced-table_open_icon", icon: "circle-play", cursor: "pointer" }) %>
42
- <%= pb_rails("icon", props: { id: "advanced-table_close_icon", icon: "circle-play", cursor: "pointer", rotation: 90 }) %>
42
+ <%= pb_rails("icon", props: { id: "advanced-table_close_icon", icon: "circle-play-down", cursor: "pointer" }) %>
43
43
  </button>
44
44
  <% end %>
45
45
  <% end %>
46
- <%= pb_rails("flex/flex_item") do %>
46
+ <%= pb_rails("flex/flex_item") do %>
47
47
  <% if column[:custom_renderer].present? %>
48
48
  <%= raw(column[:custom_renderer].call(object.row, custom_renderer_value(column, index))) %>
49
49
  <% elsif index.zero? %>
@@ -6,8 +6,6 @@ module Playbook
6
6
  prop :error, type: Playbook::Props::Boolean, default: false
7
7
  prop :checked, type: Playbook::Props::Boolean, default: false
8
8
  prop :indeterminate_main, type: Playbook::Props::Boolean, default: false
9
- prop :indeterminate_main_labels, type: Playbook::Props::Array,
10
- default: []
11
9
  prop :indeterminate_parent
12
10
  prop :text
13
11
  prop :value
@@ -51,19 +49,10 @@ module Playbook
51
49
  end
52
50
 
53
51
  def data
54
- base_data = Hash(prop(:data)).merge(
52
+ Hash(prop(:data)).merge(
55
53
  pb_checkbox_indeterminate_main: indeterminate_main,
56
54
  pb_checkbox_indeterminate_parent: indeterminate_parent
57
55
  )
58
-
59
- if indeterminate_main && indeterminate_main_labels.size == 2
60
- base_data.merge!(
61
- pb_checkbox_indeterminate_main_label_check: indeterminate_main_labels[0],
62
- pb_checkbox_indeterminate_main_label_uncheck: indeterminate_main_labels[1]
63
- )
64
- end
65
-
66
- base_data
67
56
  end
68
57
 
69
58
  private
@@ -9,10 +9,10 @@
9
9
  <tr>
10
10
  <th>
11
11
  <%= pb_rails("checkbox", props: {
12
+ text: "Uncheck All",
12
13
  value: "checkbox-value",
13
14
  name: "main-checkbox",
14
15
  indeterminate_main: true,
15
- indeterminate_main_labels: ["Check All Ice Cream", "Uncheck All Ice Cream"],
16
16
  id: "indeterminate-checkbox"
17
17
  }) %>
18
18
  </th>
@@ -1,2 +1 @@
1
- If you want to use indeterminate, "check/uncheck all" checkboxes, add `indeterminate_main: true` and an `id` to the main checkbox. Then, add an `indeterminate_parent` prop with the main checkbox's `id` to the children checkboxes.
2
- If you want to customize the main checkbox labels, set an array `indeterminate_main_labels` with "Check All" and "Uncheck All" labels.
1
+ If you want to use indeterminate, "check/uncheck all" checkboxes, add `indeterminate_main: true` and an `id` to the main checkbox. Then, add an `indeterminate_parent` prop with the main checkbox's `id` to the children checkboxes.
@@ -23,9 +23,7 @@ export default class PbCheckbox extends PbEnhancedElement {
23
23
  mainCheckbox.checked = checkedCount > 0;
24
24
 
25
25
  // Determine the main checkbox label based on the number of checked checkboxes
26
- const checkAllLabel = mainCheckboxWrapper.dataset.pbCheckboxIndeterminateMainLabelCheck ?? 'Check All'
27
- const uncheckAllLabel = mainCheckboxWrapper.dataset.pbCheckboxIndeterminateMainLabelUncheck ?? 'Uncheck All'
28
- const text = checkedCount === 0 ? checkAllLabel : uncheckAllLabel;
26
+ const text = checkedCount === 0 ? 'Check All' : 'Uncheck All';
29
27
 
30
28
  // Determine the icon class to add and remove based on the number of checked checkboxes
31
29
  const iconClassToAdd = checkedCount === 0 ? 'pb_checkbox_checkmark' : 'pb_checkbox_indeterminate';
@@ -8,7 +8,6 @@
8
8
  @import "../pb_textarea/textarea_mixin";
9
9
 
10
10
  @import "./scss_partials/dropdown_animation";
11
- @import "dropdown_mixin";
12
11
 
13
12
  [class*="pb_dropdown"] {
14
13
  .dropdown_wrapper {
@@ -99,23 +98,9 @@
99
98
  [class^="pb_title_kit"], a {
100
99
  color: $white !important;
101
100
  }
102
- border-bottom: 1px solid $border_light;
103
101
  &:hover {
104
- background-color: $product_1_background;
105
- }
106
-
107
- // activeStyle font color map
108
- @each $name, $color in $font-colors {
109
- &.font-#{$name} {
110
- @include apply-font-color($color);
111
- }
102
+ background-color: $product_1_background !important;
112
103
  }
113
- // activeStyle background color map (no difference between selected and selected+hover custom colors)
114
- @each $name, $bg in $background-colors {
115
- &.bg-#{$name} {
116
- background-color: $bg;
117
- }
118
- }
119
104
  }
120
105
  }
121
106
 
@@ -282,7 +267,6 @@
282
267
  }
283
268
  &[class*="selected"] {
284
269
  background-color: $primary;
285
- border-bottom: rgba($white, 0.15);
286
270
  }
287
271
  }
288
272
  }
@@ -39,10 +39,6 @@ type DropdownProps = {
39
39
  options: GenericObject;
40
40
  separators?: boolean;
41
41
  variant?: "default" | "subtle";
42
- activeStyle?: {
43
- backgroundColor?: string;
44
- fontColor?: string;
45
- };
46
42
  };
47
43
 
48
44
  interface DropdownComponent
@@ -73,7 +69,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
73
69
  options,
74
70
  separators = true,
75
71
  variant = "default",
76
- activeStyle,
77
72
  } = props;
78
73
 
79
74
  const ariaProps = buildAriaProps(aria);
@@ -256,7 +251,6 @@ let Dropdown = (props: DropdownProps, ref: any): React.ReactElement | null => {
256
251
  >
257
252
  <DropdownContext.Provider
258
253
  value={{
259
- activeStyle,
260
254
  autocomplete,
261
255
  dropdownContainerRef,
262
256
  filteredOptions,
@@ -18,7 +18,6 @@ const DropdownCustomRadioOptions = (props) => {
18
18
  return (
19
19
  <div>
20
20
  <Dropdown
21
- activeStyle={{ backgroundColor: "bg_light", fontColor: "text_lt_default" }}
22
21
  label="Select Item"
23
22
  onSelect={(selectedItem) => setSelectedValue(selectedItem?.value)}
24
23
  options={options}
@@ -1 +1 @@
1
- Radio inputs can be used inside `Dropdown.Option` for a custom layout that mimics form-like selection within a dropdown. Use the [activeStyle](https://playbook.powerapp.cloud/kits/dropdown/react#custom-active-style-options) `backgroundColor` and `fontColor` props to create contrast between the Radio selection indicator and the Dropdown selection background indicator.
1
+ Radio inputs can be used inside `Dropdown.Option` for a custom layout that mimics form-like selection within a dropdown.
@@ -16,7 +16,7 @@ examples:
16
16
  - dropdown_with_search_rails: Custom Trigger Dropdown with Search
17
17
  - dropdown_with_custom_padding: Custom Option Padding
18
18
  - dropdown_with_custom_icon_options: Custom Icon Options
19
- # - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in the Rails follow up to [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
19
+ # - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
20
20
  - dropdown_error: Dropdown with Error
21
21
  - dropdown_default_value: Default Value
22
22
  - dropdown_multi_select_with_default: Multi Select Default Value
@@ -39,9 +39,8 @@ examples:
39
39
  - dropdown_with_custom_trigger: Custom Trigger
40
40
  - dropdown_with_search: Custom Trigger Dropdown with Search
41
41
  - dropdown_with_custom_padding: Custom Option Padding
42
- - dropdown_with_custom_active_style_options: Custom Active Style Options
43
42
  - dropdown_with_custom_icon_options: Custom Icon Options
44
- - dropdown_with_custom_radio_options: Custom Radio Options
43
+ # - dropdown_with_custom_radio_options: Custom Radio Options # TODO: Update and publish doc ex in [PLAY-2146](https://runway.powerhrg.com/backlog_items/PLAY-2146) (remove this comment afterwards)
45
44
  - dropdown_error: Dropdown with Error
46
45
  - dropdown_default_value: Default Value
47
46
  - dropdown_multi_select_with_default: Multi Select Default Value
@@ -21,5 +21,4 @@ export { default as DropdownMultiSelectWithAutocomplete } from './_dropdown_mult
21
21
  export { default as DropdownMultiSelectWithDefault } from './_dropdown_multi_select_with_default.jsx'
22
22
  export { default as DropdownMultiSelectWithCustomOptions } from './_dropdown_multi_select_with_custom_options.jsx'
23
23
  export {default as DropdownWithCustomIconOptions} from './_dropdown_with_custom_icon_options.jsx'
24
- export {default as DropdownWithCustomRadioOptions} from './_dropdown_with_custom_radio_options.jsx'
25
- export {default as DropdownWithCustomActiveStyleOptions} from './_dropdown_with_custom_active_style_options.jsx'
24
+ export {default as DropdownWithCustomRadioOptions} from './_dropdown_with_custom_radio_options.jsx'
@@ -369,28 +369,4 @@ test("defaultValue works with multiSelect", () => {
369
369
  const option2 = Array.from(kit.querySelectorAll(".pb_dropdown_option_list"));
370
370
  const firstOpt = options[0].label
371
371
  expect(option2[0]).not.toHaveTextContent(firstOpt)
372
- })
373
-
374
- test("applies activeStyle backgroundColor and fontColor when selected", () => {
375
- render(
376
- <Dropdown
377
- activeStyle={{
378
- backgroundColor: "bg_light",
379
- fontColor: "primary",
380
- }}
381
- data={{ testid: testId }}
382
- options={options}
383
- />
384
- )
385
-
386
- const kit = screen.getByTestId(testId)
387
- const option = kit.querySelectorAll(".pb_dropdown_option_list")[1]
388
-
389
- fireEvent.click(option)
390
-
391
- const selected = kit.querySelector(".pb_dropdown_option_selected")
392
-
393
- expect(selected).toBeInTheDocument()
394
- expect(selected).toHaveClass("bg-bg_light")
395
- expect(selected).toHaveClass("font-primary")
396
372
  })
@@ -41,7 +41,6 @@ const DropdownOption = (props: DropdownOptionProps) => {
41
41
  } = props;
42
42
 
43
43
  const {
44
- activeStyle,
45
44
  filteredOptions,
46
45
  filterItem,
47
46
  focusedOptionIndex,
@@ -60,6 +59,7 @@ const DropdownOption = (props: DropdownOptionProps) => {
60
59
  ? selected.some((item) => item.label === option?.label)
61
60
  : (selected as GenericObject)?.label === option?.label;
62
61
 
62
+
63
63
  if (!isItemMatchingFilter(option) || (multiSelect && isSelected)) {
64
64
  return null;
65
65
  }
@@ -70,14 +70,6 @@ const DropdownOption = (props: DropdownOptionProps) => {
70
70
 
71
71
  const selectedClass = isSelected ? "selected" : "list";
72
72
 
73
-
74
- const bgTokenClass = activeStyle?.backgroundColor
75
- ? `bg-${activeStyle.backgroundColor}`
76
- : "";
77
- const fontTokenClass = activeStyle?.fontColor
78
- ? `font-${activeStyle.fontColor}`
79
- : "";
80
-
81
73
  const ariaProps = buildAriaProps(aria);
82
74
  const dataProps = buildDataProps(data);
83
75
  const htmlProps = buildHtmlProps(htmlOptions);
@@ -87,8 +79,6 @@ const DropdownOption = (props: DropdownOptionProps) => {
87
79
  selectedClass,
88
80
  focusedClass,
89
81
  ),
90
- bgTokenClass,
91
- fontTokenClass,
92
82
  globalProps(props),
93
83
  className
94
84
  );
@@ -24,9 +24,7 @@ module Playbook
24
24
  prop :validation_message, type: Playbook::Props::String, default: ""
25
25
 
26
26
  def classnames
27
- ([classname] + [inline_class, compact_class, show_arrow_class])
28
- .reject(&:empty?)
29
- .join(" ")
27
+ classname + inline_class + compact_class + show_arrow_class
30
28
  end
31
29
 
32
30
  def all_attributes
@@ -46,7 +44,7 @@ module Playbook
46
44
  end
47
45
 
48
46
  def inline_class
49
- inline ? "inline" : ""
47
+ inline ? " inline " : " "
50
48
  end
51
49
 
52
50
  def compact_class
@@ -19,7 +19,6 @@
19
19
  value: "checkbox-value",
20
20
  name: "main-checkbox-selectable",
21
21
  indeterminate_main: true,
22
- indeterminate_main_labels: ["", ""],
23
22
  id: "checkbox-selectable"
24
23
  }) %>
25
24
  <% end %>