playbook_ui 14.6.0.pre.alpha.play1586datearea4218 → 14.6.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 (125) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +7 -25
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +0 -2
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +0 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/index.js +0 -60
  6. data/app/pb_kits/playbook/pb_advanced_table/table_header.html.erb +9 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/table_subrow_header.html.erb +9 -1
  8. data/app/pb_kits/playbook/pb_card/_card.tsx +1 -5
  9. data/app/pb_kits/playbook/pb_dialog/_dialog.tsx +1 -5
  10. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.html.erb +7 -30
  11. data/app/pb_kits/playbook/pb_dialog/docs/_dialog_loading.md +2 -0
  12. data/app/pb_kits/playbook/pb_dropdown/_dropdown.scss +3 -84
  13. data/app/pb_kits/playbook/pb_dropdown/_dropdown.tsx +5 -28
  14. data/app/pb_kits/playbook/pb_dropdown/docs/example.yml +0 -5
  15. data/app/pb_kits/playbook/pb_dropdown/docs/index.js +0 -3
  16. data/app/pb_kits/playbook/pb_dropdown/dropdown.rb +1 -10
  17. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownOption.tsx +1 -1
  18. data/app/pb_kits/playbook/pb_dropdown/subcomponents/DropdownTrigger.tsx +2 -2
  19. data/app/pb_kits/playbook/pb_filter/Filter/FilterDouble.tsx +0 -2
  20. data/app/pb_kits/playbook/pb_filter/Filter/FilterSingle.tsx +0 -2
  21. data/app/pb_kits/playbook/pb_filter/Filter/FiltersPopover.tsx +1 -4
  22. data/app/pb_kits/playbook/pb_filter/Filter/ResultsCount.tsx +2 -4
  23. data/app/pb_kits/playbook/pb_filter/docs/_filter_default.jsx +1 -1
  24. data/app/pb_kits/playbook/pb_filter/docs/example.yml +0 -3
  25. data/app/pb_kits/playbook/pb_filter/docs/index.js +0 -1
  26. data/app/pb_kits/playbook/pb_filter/filter.html.erb +2 -2
  27. data/app/pb_kits/playbook/pb_filter/filter.rb +0 -2
  28. data/app/pb_kits/playbook/pb_flex/_flex.tsx +1 -3
  29. data/app/pb_kits/playbook/pb_flex/_flex_item.tsx +2 -8
  30. data/app/pb_kits/playbook/pb_flex/flex_item.html.erb +6 -3
  31. data/app/pb_kits/playbook/pb_flex/flex_item.rb +2 -7
  32. data/app/pb_kits/playbook/pb_form/docs/example.yml +0 -1
  33. data/app/pb_kits/playbook/pb_form/form.rb +0 -2
  34. data/app/pb_kits/playbook/pb_form_pill/_form_pill.tsx +1 -9
  35. data/app/pb_kits/playbook/pb_form_pill/docs/example.yml +0 -2
  36. data/app/pb_kits/playbook/pb_form_pill/docs/index.js +0 -1
  37. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +227 -211
  38. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +1 -1
  39. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +0 -4
  40. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +0 -2
  41. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +65 -169
  42. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.test.js +5 -5
  43. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.tsx +9 -15
  44. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/example.yml +0 -2
  45. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/index.js +0 -1
  46. data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.html.erb +6 -28
  47. data/app/pb_kits/playbook/pb_multiple_users_stacked/multiple_users_stacked.rb +1 -31
  48. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.scss +18 -86
  49. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +6 -15
  50. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.md +1 -1
  51. data/app/pb_kits/playbook/pb_phone_number_input/intlTelInput.scss +931 -849
  52. data/app/pb_kits/playbook/pb_phone_number_input/types.d.ts +1 -4
  53. data/app/pb_kits/playbook/pb_popover/_popover.tsx +2 -6
  54. data/app/pb_kits/playbook/pb_popover/docs/_popover_default.html.erb +1 -1
  55. data/app/pb_kits/playbook/pb_popover/popover.rb +1 -3
  56. data/app/pb_kits/playbook/pb_timeline/_item.tsx +23 -59
  57. data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +0 -8
  58. data/app/pb_kits/playbook/pb_timeline/docs/example.yml +1 -2
  59. data/app/pb_kits/playbook/pb_timeline/docs/index.js +0 -1
  60. data/app/pb_kits/playbook/pb_timeline/item.html.erb +21 -17
  61. data/app/pb_kits/playbook/pb_timeline/item.rb +0 -4
  62. data/app/pb_kits/playbook/pb_timeline/timeline.test.js +0 -84
  63. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +1 -4
  64. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.tsx +1 -3
  65. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +1 -3
  66. data/app/pb_kits/playbook/utilities/globalPropNames.mjs +0 -3
  67. data/app/pb_kits/playbook/utilities/globalProps.ts +2 -39
  68. data/dist/chunks/_typeahead-BYw0HEgO.js +22 -0
  69. data/dist/chunks/_weekday_stacked-DumiyWjh.js +45 -0
  70. data/dist/chunks/{lib-D-mTv-kp.js → lib-CEpcaI8y.js} +1 -1
  71. data/dist/chunks/{pb_form_validation-BkWGwJsl.js → pb_form_validation-D9zkwt2b.js} +1 -1
  72. data/dist/chunks/vendor.js +1 -1
  73. data/dist/playbook-doc.js +1 -1
  74. data/dist/playbook-rails-react-bindings.js +1 -1
  75. data/dist/playbook-rails.js +1 -1
  76. data/dist/playbook.css +1 -1
  77. data/lib/playbook/kit_base.rb +1 -21
  78. data/lib/playbook/pb_doc_helper.rb +5 -5
  79. data/lib/playbook/pb_forms_helper.rb +1 -3
  80. data/lib/playbook/version.rb +2 -2
  81. metadata +6 -48
  82. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_cell.jsx +0 -72
  83. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_custom_cell.md +0 -5
  84. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.jsx +0 -45
  85. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_clear_selection.md +0 -1
  86. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.html.erb +0 -9
  87. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_separators_hidden.jsx +0 -33
  88. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.html.erb +0 -10
  89. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.jsx +0 -34
  90. data/app/pb_kits/playbook/pb_dropdown/docs/_dropdown_subtle_variant.md +0 -1
  91. data/app/pb_kits/playbook/pb_filter/docs/_filter_popover_props.html.erb +0 -41
  92. data/app/pb_kits/playbook/pb_filter/docs/_filter_popover_props.jsx +0 -71
  93. data/app/pb_kits/playbook/pb_filter/docs/_filter_popover_props_rails.md +0 -1
  94. data/app/pb_kits/playbook/pb_filter/docs/_filter_popover_props_react.md +0 -1
  95. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.html.erb +0 -39
  96. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_loading.md +0 -1
  97. data/app/pb_kits/playbook/pb_form/formHelper.js +0 -27
  98. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.html.erb +0 -19
  99. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.jsx +0 -27
  100. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_truncated_text.md +0 -1
  101. data/app/pb_kits/playbook/pb_multi_level_select/context/index.tsx +0 -5
  102. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_reset.html.erb +0 -93
  103. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_reset.md +0 -1
  104. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children.jsx +0 -105
  105. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children.md +0 -1
  106. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children_with_radios.jsx +0 -106
  107. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_with_children_with_radios.md +0 -1
  108. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select_options.tsx +0 -149
  109. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_multiple_users_stacked_size.html.erb +0 -336
  110. data/app/pb_kits/playbook/pb_multiple_users_stacked/docs/_multiple_users_stacked_size.jsx +0 -97
  111. data/app/pb_kits/playbook/pb_timeline/date_area.html.erb +0 -12
  112. data/app/pb_kits/playbook/pb_timeline/date_area.rb +0 -13
  113. data/app/pb_kits/playbook/pb_timeline/detail_area.html.erb +0 -3
  114. data/app/pb_kits/playbook/pb_timeline/detail_area.rb +0 -11
  115. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.html.erb +0 -43
  116. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.jsx +0 -68
  117. data/app/pb_kits/playbook/pb_timeline/docs/_timeline_with_children.md +0 -4
  118. data/app/pb_kits/playbook/pb_timeline/node_area.html.erb +0 -14
  119. data/app/pb_kits/playbook/pb_timeline/node_area.rb +0 -16
  120. data/app/pb_kits/playbook/pb_timeline/subcomponents/Detail.tsx +0 -29
  121. data/app/pb_kits/playbook/pb_timeline/subcomponents/Label.tsx +0 -38
  122. data/app/pb_kits/playbook/pb_timeline/subcomponents/Step.tsx +0 -42
  123. data/app/pb_kits/playbook/pb_timeline/subcomponents/index.tsx +0 -3
  124. data/dist/chunks/_typeahead-BhHnXJjy.js +0 -22
  125. data/dist/chunks/_weekday_stacked-C-VEa5Ar.js +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d34cf484b073d589372720f766effb37be243a1e8c48a3b5eb90a9d683759929
4
- data.tar.gz: ad599ad33f8f66e1057957ea957899f7d14e9215beaf342132e0f45b37906216
3
+ metadata.gz: d642516d659410a6a6143c4f1511481020a8cf8c14179ea0aff3d4a8e83d8780
4
+ data.tar.gz: 5aa325d5b25798fac84ea63c76c49cfd06fca93a1c03b7806098edf019b29524
5
5
  SHA512:
6
- metadata.gz: 55fcf62a39e9220df67563a41c5882544c643ed16c12c575fdb2c9a3f0e37023aa56e4ecb6eef3bd34b6467b2995fe0c2918e0deb8d85ed76a042c0b2bccd3e1
7
- data.tar.gz: 132c841e4900a5612f18ea87831f6ccdea99c9557c3a505b7feb4a0f4e81b22cc2d6721f073b531ed7a99a68e43af2c23c4ef75289e7a2ea75bb5305add7ff22
6
+ metadata.gz: cbaaa769fe00fa458fb70c7cfe7a6594b9d72973b701bcdb71a91bec271b47020312eb7c1000c74369b1e96de77652f490b0ebacc3bba584409f63bd6ce75672
7
+ data.tar.gz: d638415f5ca989bb3ca0b39ab3fd80b2d8896382e69a7ffa273dd7c449b1d34496be14a8cef6b35de11a4c92408b9c0ad0b020071517cf9c0d04b15e60e30515
@@ -91,7 +91,7 @@ const AdvancedTable = (props: AdvancedTableProps) => {
91
91
  const columnHelper = createColumnHelper()
92
92
 
93
93
  //Create cells for first columns
94
- const createCellFunction = (cellAccessors: string[], customRenderer?: (row: Row<GenericObject>, value: any) => JSX.Element) => {
94
+ const createCellFunction = (cellAccessors: string[]) => {
95
95
  const columnCells = ({
96
96
  row,
97
97
  getValue,
@@ -101,11 +101,6 @@ const AdvancedTable = (props: AdvancedTableProps) => {
101
101
  }) => {
102
102
  const rowData = row.original
103
103
 
104
- // Use customRenderer if provided, otherwise default rendering
105
- if (customRenderer) {
106
- return customRenderer(row, getValue())
107
- }
108
-
109
104
  switch (row.depth) {
110
105
  case 0: {
111
106
  return (
@@ -139,31 +134,18 @@ const AdvancedTable = (props: AdvancedTableProps) => {
139
134
  //Create column array in format needed by Tanstack
140
135
  const columns =
141
136
  columnDefinitions &&
142
- columnDefinitions.map((column, index) => {
137
+ columnDefinitions.map((column) => {
143
138
  // Define the base column structure
144
139
  const columnStructure = {
145
140
  ...columnHelper.accessor(column.accessor, {
146
141
  header: column.label,
147
142
  }),
148
143
  }
149
-
150
- // Use the custom renderer if provided, EXCEPT for the first column
151
- if (index !== 0) {
152
- if (column.cellAccessors || column.customRenderer) {
153
- columnStructure.cell = createCellFunction(
154
- column.cellAccessors,
155
- column.customRenderer
156
- )
157
- }
158
- } else {
159
- // For the first column, apply createCellFunction without customRenderer
160
- if (column.cellAccessors) {
161
- columnStructure.cell = createCellFunction(column.cellAccessors)
162
- }
163
- }
164
-
165
- return columnStructure
166
- })
144
+ if (column.cellAccessors) {
145
+ columnStructure.cell = createCellFunction(column.cellAccessors)
146
+ }
147
+ return columnStructure
148
+ })
167
149
 
168
150
  //Syntax for sorting Array if we want to manage state ourselves
169
151
  const sorting = [
@@ -3,7 +3,6 @@ examples:
3
3
  - advanced_table_beta: Default (Required Props)
4
4
  - advanced_table_beta_subrow_headers: SubRow Headers
5
5
  - advanced_table_beta_sort: Enable Sorting
6
-
7
6
  react:
8
7
  - advanced_table_default: Default (Required Props)
9
8
  - advanced_table_loading: Loading State
@@ -16,4 +15,3 @@ examples:
16
15
  - advanced_table_table_props: Table Props
17
16
  - advanced_table_inline_row_loading: Inline Row Loading
18
17
  - advanced_table_responsive: Responsive Tables
19
- - advanced_table_custom_cell: Custom Components for Cells
@@ -9,4 +9,3 @@ export { default as AdvancedTableTableOptions } from './_advanced_table_table_op
9
9
  export { default as AdvancedTableTableProps } from './_advanced_table_table_props.jsx'
10
10
  export { default as AdvancedTableInlineRowLoading } from './_advanced_table_inline_row_loading.jsx'
11
11
  export { default as AdvancedTableResponsive } from './_advanced_table_responsive.jsx'
12
- export { default as AdvancedTableCustomCell } from './_advanced_table_custom_cell.jsx'
@@ -13,20 +13,9 @@ export default class PbAdvancedTable extends PbEnhancedElement {
13
13
  get target() {
14
14
  return document.querySelector(CONTENT_SELECTOR.replace("id", this.element.id))
15
15
  }
16
-
17
- static expandedRows = new Set()
18
- static isCollapsing = false
19
16
 
20
17
  connect() {
21
18
  this.element.addEventListener('click', () => {
22
- if (!PbAdvancedTable.isCollapsing) {
23
- const isExpanded = this.element.querySelector(UP_ARROW_SELECTOR).style.display === 'inline-block'
24
- if (!isExpanded) {
25
- PbAdvancedTable.expandedRows.add(this.element.id)
26
- } else {
27
- PbAdvancedTable.expandedRows.delete(this.element.id)
28
- }
29
- }
30
19
  this.toggleElement(this.target)
31
20
  })
32
21
  }
@@ -86,53 +75,4 @@ export default class PbAdvancedTable extends PbEnhancedElement {
86
75
  this.element.querySelector(UP_ARROW_SELECTOR).style.display = 'inline-block'
87
76
  this.element.querySelector(DOWN_ARROW_SELECTOR).style.display = 'none'
88
77
  }
89
-
90
- static handleToggleAllHeaders(element) {
91
- const table = element.closest('.pb_table')
92
- const firstLevelButtons = table.querySelectorAll('.pb_advanced_table_body > .pb_table_tr [data-advanced-table]')
93
-
94
- const expandedRows = Array.from(firstLevelButtons).filter(button =>
95
- button.querySelector(UP_ARROW_SELECTOR).style.display === 'inline-block'
96
- )
97
-
98
- if (expandedRows.length === firstLevelButtons.length) {
99
- expandedRows.forEach(button => {
100
- button.click()
101
- })
102
- this.expandedRows.clear()
103
- } else {
104
- firstLevelButtons.forEach(button => {
105
- if (!this.expandedRows.has(button.id)) {
106
- button.click()
107
- }
108
- })
109
- }
110
- }
111
- static handleToggleAllSubRows(element, rowDepth) {
112
- const parentElement = element.closest(".toggle-content")
113
- const subrowButtons = parentElement.querySelectorAll('.depth-sub-row-' + rowDepth + ' [data-advanced-table]')
114
-
115
- const expandedSubRows = Array.from(subrowButtons).filter(button =>
116
- button.querySelector(UP_ARROW_SELECTOR).style.display === 'inline-block'
117
- )
118
-
119
- if (expandedSubRows.length === subrowButtons.length) {
120
- expandedSubRows.forEach(button => {
121
- button.click()
122
- })
123
- } else {
124
- subrowButtons.forEach(button => {
125
- if (!this.expandedRows.has(button.id)) {
126
- button.click()
127
- }
128
- })
129
- }
130
- }
131
- }
132
-
133
- window.expandAllRows = (element) => {
134
- PbAdvancedTable.handleToggleAllHeaders(element)
135
78
  }
136
- window.expandAllSubRows = (element, rowDepth) => {
137
- PbAdvancedTable.handleToggleAllSubRows(element, rowDepth)
138
- }
@@ -13,4 +13,12 @@
13
13
  <% end %>
14
14
  <% end %>
15
15
  <% end %>
16
- <% end %>
16
+ <% end %>
17
+
18
+ <script type="text/javascript">
19
+ var expandAllRows = (element) => {
20
+ element.closest('.pb_table').querySelectorAll('.pb_advanced_table_body > .pb_table_tr [data-advanced-table]').forEach((button) => {
21
+ button.dispatchEvent(new Event('click'));
22
+ });
23
+ };
24
+ </script>
@@ -23,4 +23,12 @@
23
23
  <% end %>
24
24
  <% end %>
25
25
  <% end %>
26
- <% end %>
26
+ <% end %>
27
+
28
+ <script type="text/javascript">
29
+ var expandAllSubRows = (element, rowDepth) => {
30
+ element.closest(".toggle-content").querySelectorAll('.depth-sub-row-' + rowDepth + ' [data-advanced-table]').forEach((button) => {
31
+ button.dispatchEvent(new Event('click'));
32
+ });
33
+ };
34
+ </script>
@@ -5,7 +5,7 @@ import { get } from 'lodash'
5
5
  import classnames from 'classnames'
6
6
 
7
7
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
8
- import { GlobalProps, globalProps, globalInlineProps } from '../utilities/globalProps'
8
+ import { GlobalProps, globalProps } from '../utilities/globalProps'
9
9
  import type { ProductColors, CategoryColors, BackgroundColors } from '../types/colors'
10
10
 
11
11
  import Icon from '../pb_icon/_icon'
@@ -49,7 +49,6 @@ type CardBodyProps = {
49
49
  padding?: string,
50
50
  } & GlobalProps
51
51
 
52
-
53
52
  // Header component
54
53
  const Header = (props: CardHeaderProps) => {
55
54
  const { children, className, headerColor = 'category_1', headerColorStriped = false } = props
@@ -108,7 +107,6 @@ const Card = (props: CardPropTypes): React.ReactElement => {
108
107
 
109
108
  // coerce to array
110
109
  const cardChildren = React.Children.toArray(children)
111
- const dynamicInlineProps = globalInlineProps(props);
112
110
 
113
111
  const subComponentTags = (tagName: string) => {
114
112
  return cardChildren.filter((c: string) => (
@@ -137,7 +135,6 @@ const Card = (props: CardPropTypes): React.ReactElement => {
137
135
  {...dataProps}
138
136
  {...htmlProps}
139
137
  className={classnames(cardCss, globalProps(props), className)}
140
- style={dynamicInlineProps}
141
138
  >
142
139
  {subComponentTags('Header')}
143
140
  {
@@ -166,7 +163,6 @@ const Card = (props: CardPropTypes): React.ReactElement => {
166
163
  {...dataProps}
167
164
  {...htmlProps}
168
165
  className={classnames(cardCss, globalProps(props), className)}
169
- style={dynamicInlineProps}
170
166
  >
171
167
  {subComponentTags('Header')}
172
168
  {nonHeaderChildren}
@@ -6,7 +6,7 @@ import classnames from "classnames";
6
6
  import Modal from "react-modal";
7
7
 
8
8
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from "../utilities/props";
9
- import { globalProps, globalInlineProps } from "../utilities/globalProps";
9
+ import { globalProps } from "../utilities/globalProps";
10
10
 
11
11
  import Body from "../pb_body/_body";
12
12
  import Button from "../pb_button/_button";
@@ -91,8 +91,6 @@ const Dialog = (props: DialogProps): React.ReactElement => {
91
91
  beforeClose: "pb_dialog_overlay_before_close",
92
92
  };
93
93
 
94
- const dynamicInlineProps = globalInlineProps(props);
95
-
96
94
  const classes = classnames(
97
95
  buildCss("pb_dialog_wrapper"),
98
96
  globalProps(props),
@@ -186,7 +184,6 @@ const Dialog = (props: DialogProps): React.ReactElement => {
186
184
  overlayClassName={overlayClassNames}
187
185
  portalClassName={portalClassName}
188
186
  shouldCloseOnOverlayClick={shouldCloseOnOverlayClick && !loading}
189
- style={{ content: dynamicInlineProps }}
190
187
  >
191
188
  <>
192
189
  {title && !status ? <Dialog.Header>{title}</Dialog.Header> : null}
@@ -195,7 +192,6 @@ const Dialog = (props: DialogProps): React.ReactElement => {
195
192
  <Dialog.Body
196
193
  className="dialog_status_text_align"
197
194
  padding="md"
198
-
199
195
  >
200
196
  <Flex align="center"
201
197
  orientation="column"
@@ -1,36 +1,13 @@
1
1
  <%= pb_rails("button", props: { text: "Open Dialog", data: {"open-dialog": "dialog-loading"} }) %>
2
2
 
3
- <%= pb_rails("dialog", props: {
4
- id:"dialog-loading",
5
- size: "sm",
6
- title: "Loading Example",
7
- text: "Make a loading request?",
8
- cancel_button: "Cancel Button",
3
+ <%= pb_rails("dialog", props: {
4
+ id:"dialog-loading",
5
+ size: "sm",
6
+ title: "Loading Exmaple",
7
+ text: "Make a loading request?",
8
+ cancel_button: "Cancel Button",
9
9
  cancel_button_id: "cancel-button-loading",
10
- confirm_button: "Okay",
10
+ confirm_button: "Okay",
11
11
  confirm_button_id: "confirm-button-loading",
12
12
  loading: true,
13
13
  }) %>
14
-
15
- <script>
16
- const loadingButton = document.querySelector('[data-disable-with="Loading"]');
17
- if (loadingButton) {
18
- loadingButton.addEventListener("click", function() {
19
- const okayLoadingButton = document.querySelector('[data-disable-with="Loading"]');
20
- const cancelButton = document.querySelector('[data-disable-cancel-with="Loading"]');
21
- let currentClass = okayLoadingButton.className;
22
- let cancelClass = cancelButton ? cancelButton.className : "";
23
-
24
- setTimeout(function() {
25
- okayLoadingButton.disabled = false;
26
- okayLoadingButton.className = currentClass.replace("_disabled_loading", "_enabled");
27
-
28
- if (cancelButton) {
29
- cancelButton.disabled = false;
30
- cancelButton.className = cancelClass.replace("_disabled", "_enabled");
31
- }
32
- }, 5000);
33
-
34
- });
35
- }
36
- </script>
@@ -1 +1,3 @@
1
1
  Pressing the "Okay" button will trigger a loading state where the button content is replaced by a spinner icon and both buttons are disabled.
2
+
3
+ Currently, the loading state cannot be undone and will require a page refresh to reset the dialog.
@@ -69,21 +69,15 @@
69
69
  padding-bottom: $space_xs;
70
70
  cursor: pointer;
71
71
  &:hover {
72
- background-color: $bg_light;
72
+ background-color: $border_light;
73
73
  }
74
74
 
75
75
  &[class*="_focused"] {
76
- background-color: $bg_light;
76
+ background-color: $border_light;
77
77
  }
78
78
 
79
79
  &[class*="_list"] {
80
80
  border-bottom: 1px solid $border_light;
81
-
82
- &:hover, &:focus {
83
- .pb_body_kit {
84
- color: $primary;
85
- }
86
- }
87
81
  }
88
82
  &[class*="selected"] {
89
83
  background-color: $primary;
@@ -93,7 +87,7 @@
93
87
  color: $white !important;
94
88
  }
95
89
  &:hover {
96
- background-color: $product_1_background !important;
90
+ background-color: $primary !important;
97
91
  }
98
92
  }
99
93
  }
@@ -131,81 +125,6 @@
131
125
  }
132
126
  }
133
127
 
134
- &.separators_hidden {
135
- .dropdown_wrapper {
136
- .pb_dropdown_container {
137
-
138
- [class*="pb_dropdown_option"] {
139
- border: none;
140
- }
141
- }
142
- }
143
- }
144
-
145
- &.subtle {
146
- .dropdown_wrapper {
147
- .pb_dropdown_container {
148
-
149
- [class*="pb_dropdown_option"]:first-child {
150
- margin-top: $space_xs;
151
- }
152
-
153
- [class*="pb_dropdown_option"]:last-child {
154
- margin-bottom: $space_xs;
155
- }
156
-
157
- [class*="pb_dropdown_option"] {
158
- margin: $space_xs;
159
- padding: $space_xs;
160
- border-radius: $border_radius_md;
161
- border-bottom: none;
162
- position: relative;
163
-
164
- &::after {
165
- content: "";
166
- position: absolute;
167
- left: -$space_xs;
168
- right: -$space_xs;
169
- bottom: -4.5px;
170
- height: 1px;
171
- background: $border_light;
172
- }
173
- }
174
-
175
- [class*="pb_dropdown_option"]:last-child::after {
176
- display: none;
177
- }
178
- }
179
- }
180
-
181
- &.separators_hidden {
182
- .dropdown_wrapper {
183
- .pb_dropdown_container {
184
- [class*="pb_dropdown_option"]:first-child {
185
- margin-top: $space_xs;
186
- }
187
-
188
- [class*="pb_dropdown_option"]:last-child {
189
- margin-bottom: $space_xs;
190
- }
191
-
192
- [class*="pb_dropdown_option"] {
193
- padding: $space_xxs $space_xs;
194
- margin: $space_xxs $space_xs;
195
-
196
- &::after {
197
- height: 0px;
198
- }
199
-
200
- &[class*="selected"] {
201
- border-bottom: none;
202
- }
203
- }
204
- }
205
- }
206
- }
207
- }
208
-
209
128
  &.dark {
210
129
  .dropdown_wrapper {
211
130
  [class*="dropdown_trigger_wrapper"] {
@@ -1,4 +1,4 @@
1
- import React, { useState, useRef, useEffect, forwardRef, useImperativeHandle } from "react";
1
+ import React, { useState, useRef, useEffect } from "react";
2
2
  import classnames from "classnames";
3
3
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from "../utilities/props";
4
4
  import { globalProps } from "../utilities/globalProps";
@@ -35,19 +35,10 @@ type DropdownProps = {
35
35
  label?: string;
36
36
  onSelect?: (arg: GenericObject) => null;
37
37
  options: GenericObject;
38
- separators: boolean;
39
38
  triggerRef?: any;
40
- variant?: "default" | "subtle";
41
39
  };
42
40
 
43
- interface DropdownComponent
44
- extends React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<unknown>> {
45
- Option: typeof DropdownOption;
46
- Trigger: typeof DropdownTrigger;
47
- Container: typeof DropdownContainer;
48
- }
49
-
50
- const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
41
+ const Dropdown = (props: DropdownProps) => {
51
42
  const {
52
43
  aria = {},
53
44
  autocomplete = false,
@@ -64,20 +55,15 @@ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
64
55
  label,
65
56
  onSelect,
66
57
  options,
67
- separators = true,
68
- triggerRef,
69
- variant = "default",
58
+ triggerRef
70
59
  } = props;
71
60
 
72
61
  const ariaProps = buildAriaProps(aria);
73
62
  const dataProps = buildDataProps(data);
74
63
  const htmlProps = buildHtmlProps(htmlOptions);
75
- const separatorsClass = separators ? '' : 'separators_hidden'
76
64
  const classes = classnames(
77
65
  buildCss("pb_dropdown"),
78
66
  globalProps(props),
79
- variant,
80
- separatorsClass,
81
67
  className
82
68
  );
83
69
 
@@ -139,7 +125,7 @@ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
139
125
  const filteredOptions = optionsWithBlankSelection?.filter((option: GenericObject) => {
140
126
  const label = typeof option.label === 'string' ? option.label.toLowerCase() : option.label;
141
127
  return String(label).toLowerCase().includes(filterItem.toLowerCase());
142
- });
128
+ });
143
129
 
144
130
  // For keyboard accessibility: Set focus within dropdown to selected item if it exists
145
131
  useEffect(() => {
@@ -189,14 +175,6 @@ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
189
175
  dark
190
176
  });
191
177
 
192
- useImperativeHandle(ref, () => ({
193
- clearSelected: () => {
194
- setSelected({});
195
- setFilterItem("");
196
- setIsDropDownClosed(true);
197
- onSelect && onSelect(null);
198
- },
199
- }));
200
178
 
201
179
  return (
202
180
  <div {...ariaProps}
@@ -280,9 +258,8 @@ const Dropdown = forwardRef((props: DropdownProps, ref: any) => {
280
258
  </DropdownContext.Provider>
281
259
  </div>
282
260
  )
283
- }) as DropdownComponent
261
+ };
284
262
 
285
- Dropdown.displayName = "Dropdown";
286
263
  Dropdown.Option = DropdownOption;
287
264
  Dropdown.Trigger = DropdownTrigger;
288
265
  Dropdown.Container = DropdownContainer;
@@ -1,7 +1,6 @@
1
1
  examples:
2
2
  rails:
3
3
  - dropdown_default: Default
4
- - dropdown_subtle_variant: Subtle Variant
5
4
  - dropdown_subcomponent_structure_rails: Subcomponent Structure
6
5
  - dropdown_with_label: With Label
7
6
  - dropdown_with_custom_options_rails: Custom Options
@@ -11,11 +10,9 @@ examples:
11
10
  - dropdown_error: Dropdown with Error
12
11
  - dropdown_default_value: Default Value
13
12
  - dropdown_blank_selection: Blank Selection
14
- - dropdown_separators_hidden: Separators Hidden
15
13
 
16
14
  react:
17
15
  - dropdown_default: Default
18
- - dropdown_subtle_variant: Subtle Variant
19
16
  - dropdown_subcomponent_structure: Subcomponent Structure
20
17
  - dropdown_with_label: With Label
21
18
  - dropdown_with_custom_options: Custom Options
@@ -25,8 +22,6 @@ examples:
25
22
  - dropdown_error: Dropdown with Error
26
23
  - dropdown_default_value: Default Value
27
24
  - dropdown_blank_selection: Blank Selection
28
- - dropdown_clear_selection: Clear Selection
29
- - dropdown_separators_hidden: Separators Hidden
30
25
  # - dropdown_with_autocomplete: Autocomplete
31
26
  # - dropdown_with_autocomplete_and_custom_display: Autocomplete with Custom Display
32
27
  # - dropdown_with_external_control: useDropdown Hook
@@ -12,6 +12,3 @@ export { default as DropdownSubcomponentStructure } from './_dropdown_subcompone
12
12
  export { default as DropdownError } from './_dropdown_error.jsx'
13
13
  export { default as DropdownDefaultValue } from './_dropdown_default_value.jsx'
14
14
  export { default as DropdownBlankSelection } from './_dropdown_blank_selection.jsx'
15
- export { default as DropdownClearSelection } from './_dropdown_clear_selection.jsx'
16
- export { default as DropdownSubtleVariant } from './_dropdown_subtle_variant.jsx'
17
- export { default as DropdownSeparatorsHidden } from './_dropdown_separators_hidden.jsx'
@@ -13,18 +13,13 @@ module Playbook
13
13
  prop :default_value
14
14
  prop :blank_selection, type: Playbook::Props::String,
15
15
  default: ""
16
- prop :variant, type: Playbook::Props::Enum,
17
- values: %w[default subtle],
18
- default: "default"
19
- prop :separators, type: Playbook::Props::Boolean,
20
- default: true
21
16
 
22
17
  def data
23
18
  Hash(prop(:data)).merge(pb_dropdown: true)
24
19
  end
25
20
 
26
21
  def classname
27
- generate_classname("pb_dropdown", variant, separators_class, separator: " ")
22
+ generate_classname("pb_dropdown")
28
23
  end
29
24
 
30
25
  private
@@ -37,10 +32,6 @@ module Playbook
37
32
  default_value.present? ? default_value.transform_keys(&:to_s)["id"] : ""
38
33
  end
39
34
 
40
- def separators_class
41
- separators ? "" : "separators_hidden"
42
- end
43
-
44
35
  def options_with_blank
45
36
  blank_selection.present? ? [{ id: "", value: "", label: blank_selection }] + options : options
46
37
  end
@@ -62,7 +62,7 @@ const DropdownOption = (props: DropdownOptionProps) => {
62
62
  const focusedClass = isFocused && "focused";
63
63
 
64
64
  const selectedClass = `${
65
- selected?.label === option.label
65
+ selected.label === option.label
66
66
  ? "selected"
67
67
  : "list"
68
68
  }`;
@@ -73,7 +73,7 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
73
73
  !autocomplete && "select_only"
74
74
  );
75
75
 
76
- const customDisplayPlaceholder = selected?.label ? (
76
+ const customDisplayPlaceholder = selected.label ? (
77
77
  <b>{selected.label}</b>
78
78
  ) : autocomplete ? (
79
79
  ""
@@ -83,7 +83,7 @@ const DropdownTrigger = (props: DropdownTriggerProps) => {
83
83
  "Select..."
84
84
  );
85
85
 
86
- const defaultDisplayPlaceholder = selected?.label
86
+ const defaultDisplayPlaceholder = selected.label
87
87
  ? selected.label
88
88
  : autocomplete
89
89
  ? ""
@@ -34,7 +34,6 @@ const FilterDouble = ({
34
34
  maxHeight,
35
35
  minWidth,
36
36
  placement,
37
- popoverProps,
38
37
  ...bgProps
39
38
  }: FilterDoubleProps): React.ReactElement => (
40
39
  <FilterBackground
@@ -50,7 +49,6 @@ const FilterDouble = ({
50
49
  maxHeight={maxHeight}
51
50
  minWidth={minWidth}
52
51
  placement={placement}
53
- popoverProps={popoverProps}
54
52
  >
55
53
  {children}
56
54
  </FiltersPopover>
@@ -33,7 +33,6 @@ const FilterSingle = ({
33
33
  maxHeight,
34
34
  minWidth,
35
35
  placement,
36
- popoverProps,
37
36
  ...bgProps
38
37
  }: FilterSingleProps): React.ReactElement => {
39
38
  return (
@@ -53,7 +52,6 @@ const FilterSingle = ({
53
52
  maxHeight={maxHeight}
54
53
  minWidth={minWidth}
55
54
  placement={placement}
56
- popoverProps={popoverProps}
57
55
  >
58
56
  {children}
59
57
  </FiltersPopover>
@@ -2,7 +2,6 @@ import React, { ReactNode, useState } from 'react'
2
2
 
3
3
  import CircleIconButton from '../../pb_circle_icon_button/_circle_icon_button'
4
4
  import PbReactPopover from '../../pb_popover/_popover'
5
- import { GenericObject } from '../../types'
6
5
 
7
6
  type FiltersPopoverProps = {
8
7
  children?: React.ReactChild[] | React.ReactChild | (({closePopover}: {closePopover: () => void}) => ReactNode),
@@ -10,9 +9,8 @@ type FiltersPopoverProps = {
10
9
  maxHeight?: string,
11
10
  minWidth?: string,
12
11
  placement?: "top" | "right" | "bottom" | "left" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end",
13
- popoverProps?: GenericObject,
14
12
  }
15
- const FiltersPopover = ({ children, dark, maxHeight, minWidth, placement = "bottom-start", popoverProps }: FiltersPopoverProps): React.ReactElement => {
13
+ const FiltersPopover = ({ children, dark, maxHeight, minWidth, placement = "bottom-start" }: FiltersPopoverProps): React.ReactElement => {
16
14
  const [hide, updateHide] = useState(true)
17
15
  const toggle = () => updateHide(!hide)
18
16
 
@@ -35,7 +33,6 @@ const FiltersPopover = ({ children, dark, maxHeight, minWidth, placement = "bott
35
33
  reference={filterButton}
36
34
  shouldClosePopover={updateHide}
37
35
  show={!hide}
38
- {...popoverProps}
39
36
  >
40
37
  <div className="pb-form">
41
38
  {typeof children === 'function'