playbook_ui 15.5.0.pre.rc.3 → 15.5.0.pre.rc.4

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling.jsx +2 -1
  3. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_column_styling_column_headers.jsx +1 -1
  4. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_fullscreen.jsx +3 -1
  5. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_infinite_scroll.jsx +1 -1
  6. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_inline_editing.jsx +3 -1
  7. data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_row_styling.jsx +2 -1
  8. data/app/pb_kits/playbook/pb_copy_button/_copy_button.tsx +1 -1
  9. data/app/pb_kits/playbook/pb_copy_button/copy_button.html.erb +6 -2
  10. data/app/pb_kits/playbook/pb_copy_button/copy_button.rb +3 -0
  11. data/app/pb_kits/playbook/pb_copy_button/copy_button.test.jsx +24 -0
  12. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant.html.erb +9 -0
  13. data/app/pb_kits/playbook/pb_copy_button/docs/{_copy_button_icon_variant.jsx → _copy_button_button_variant.jsx} +4 -4
  14. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant_rails.md +1 -0
  15. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_button_variant_react.md +1 -0
  16. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.html.erb +2 -2
  17. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_default.jsx +1 -2
  18. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.html.erb +2 -2
  19. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_from.jsx +2 -0
  20. data/app/pb_kits/playbook/pb_copy_button/docs/example.yml +2 -1
  21. data/app/pb_kits/playbook/pb_copy_button/docs/index.js +1 -1
  22. data/app/pb_kits/playbook/pb_dropdown/index.js +31 -13
  23. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_alignment.jsx +2 -1
  24. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_default.jsx +2 -1
  25. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_orientation.jsx +2 -1
  26. data/app/pb_kits/playbook/pb_empty_state/docs/_empty_state_size.jsx +2 -1
  27. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_wrapped.jsx +4 -1
  28. data/app/pb_kits/playbook/pb_loading_inline/docs/_loading_inline_variant.jsx +1 -1
  29. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_colors.jsx +1 -1
  30. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_default.jsx +1 -1
  31. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_height.jsx +1 -1
  32. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_horizontal.jsx +1 -1
  33. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend.jsx +1 -1
  34. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_non_clickable.jsx +1 -2
  35. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_legend_position.jsx +1 -1
  36. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_negative_numbers.jsx +1 -1
  37. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_secondary_y_axis.jsx +1 -1
  38. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_spline.jsx +1 -2
  39. data/app/pb_kits/playbook/pb_pb_bar_graph/docs/_pb_bar_graph_stacked.jsx +1 -2
  40. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_block_content.jsx +2 -1
  41. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_color_overrides.jsx +2 -1
  42. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_custom_tooltip.jsx +1 -1
  43. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_legend_position.jsx +2 -1
  44. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_labels.jsx +1 -1
  45. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_data_with_legend.jsx +1 -1
  46. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_default.jsx +1 -1
  47. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_inner_sizes.jsx +1 -1
  48. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_live_data.jsx +2 -1
  49. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_rounded.jsx +1 -1
  50. data/app/pb_kits/playbook/pb_pb_circle_chart/docs/_pb_circle_chart_with_title.jsx +1 -1
  51. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_color.jsx +1 -1
  52. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_complex.jsx +2 -1
  53. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_full_circle.jsx +2 -1
  54. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_height.jsx +2 -1
  55. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_min_max.jsx +2 -1
  56. data/app/pb_kits/playbook/pb_pb_gauge_chart/docs/_pb_gauge_chart_units.jsx +2 -1
  57. data/app/pb_kits/playbook/pb_pb_line_graph/docs/_pb_line_graph_colors.jsx +1 -1
  58. data/app/pb_kits/playbook/pb_popover/docs/_popover_append_to.jsx +4 -1
  59. data/app/pb_kits/playbook/pb_radio/docs/_radio_react_hook.jsx +3 -1
  60. data/app/pb_kits/playbook/pb_select/docs/_select_react_hook.jsx +3 -1
  61. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_sizing.jsx +4 -1
  62. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_react_hook.jsx +2 -1
  63. data/app/pb_kits/playbook/pb_user/docs/_user_font_options.jsx +1 -1
  64. data/dist/chunks/_typeahead-Cd3O38ts.js +6 -0
  65. data/dist/chunks/lib-CgpqUb6l.js +29 -0
  66. data/dist/chunks/vendor.js +37 -1
  67. data/dist/playbook-rails-react-bindings.js +1 -1
  68. data/dist/playbook-rails.js +1 -1
  69. data/lib/playbook/version.rb +1 -1
  70. metadata +8 -11
  71. data/app/pb_kits/playbook/pb_copy_button/docs/_copy_button_icon_variant_react.md +0 -1
  72. data/dist/chunks/_line_graph-Co6PvNPL.js +0 -1
  73. data/dist/chunks/_typeahead-D0OX5RuZ.js +0 -6
  74. data/dist/chunks/_weekday_stacked-HzVLtvcd.js +0 -37
  75. data/dist/chunks/componentRegistry-DzmmLR2x.js +0 -1
  76. data/dist/chunks/lib-COXg9aPA.js +0 -29
  77. data/dist/chunks/pb_form_validation-DR765aoq.js +0 -1
  78. data/dist/playbook-doc.js +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66aaf83aa51cc7b34eda01ce9d1f8fbb8f2ec256a8fdc3b08d1172e50a8f33ee
4
- data.tar.gz: d4fdcd781745a389240cfe5ca5e7ecad0467ecf25805c13ccfa9dfc7b88c5a88
3
+ metadata.gz: 334e531aefb16fff6a6b9405de7a7d2882190b10e318a429fddd3db0efe5e393
4
+ data.tar.gz: f8e7dede555ff290830f962dc6f42b1eccdbe69ce71cb26f5687bef18aaf882b
5
5
  SHA512:
6
- metadata.gz: 45f0cb1b2ee375e8614fb7fd010e4393ddfd61edd905c55bd5c96b5d6aef34a7a4636be20249cec17418430410193fbe2ee81966fc71fdf09b5edc985863a601
7
- data.tar.gz: 366a44951a860c7e3dee437c2e07a94b94bc7098837e19f9b665e7939fd053067fd443e0abd382c8d61477460dac259c574dad30419fbeb431616322d3632f78
6
+ metadata.gz: e8372ee5464a1993ec758aa5dc633be3c00b0b1b57185827e4325227053fa7bbf093814a5bff43956f7466ab6f31e03772e82e4723109a35369ab3c840be0372
7
+ data.tar.gz: a62f5d3abde3f18cb8e4df32959d4d5cdeab6adb1294e4f8c482bebf65bf93173da832c1769ef803f9cc77b7145dac1d2e92dc33b6fb826a9e560d6008d760bb
@@ -1,5 +1,6 @@
1
1
  import React from "react"
2
- import { AdvancedTable, colors } from "playbook-ui"
2
+ import AdvancedTable from '../_advanced_table'
3
+ import colors from '../../tokens/exports/_colors.module.scss'
3
4
  import MOCK_DATA from "./advanced_table_mock_data.json"
4
5
 
5
6
 
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { AdvancedTable } from "playbook-ui";
2
+ import AdvancedTable from '../_advanced_table';
3
3
  import MOCK_DATA from "./advanced_table_mock_data.json";
4
4
 
5
5
  const AdvancedTableColumnStylingColumnHeaders = (props) => {
@@ -1,5 +1,7 @@
1
1
  import React, { useState } from "react"
2
- import { AdvancedTable, Button, Flex } from "playbook-ui"
2
+ import AdvancedTable from '../_advanced_table'
3
+ import Flex from '../../pb_flex/_flex'
4
+ import Button from '../../pb_button/_button'
3
5
  import MOCK_DATA from "./advanced_table_mock_data.json"
4
6
  import PAGINATION_MOCK_DATA from "./advanced_table_pagination_mock_data.json"
5
7
 
@@ -1,5 +1,5 @@
1
1
  import React from "react"
2
- import { AdvancedTable } from "playbook-ui"
2
+ import AdvancedTable from '../_advanced_table'
3
3
  import MOCK_DATA from "./advanced_table_mock_data_infinite_scroll.json"
4
4
 
5
5
  const AdvancedTableInfiniteScroll = (props) => {
@@ -1,5 +1,7 @@
1
1
  import React, { useState } from "react";
2
- import { AdvancedTable, TextInput, Body } from "playbook-ui";
2
+ import AdvancedTable from '../../pb_advanced_table/_advanced_table'
3
+ import TextInput from '../../pb_text_input/_text_input'
4
+ import Body from '../../pb_body/_body'
3
5
  import MOCK_DATA from "./advanced_table_mock_data.json";
4
6
 
5
7
  const AdvancedTableInlineEditing = (props) => {
@@ -1,7 +1,8 @@
1
1
  import React from "react"
2
2
  import AdvancedTable from '../_advanced_table'
3
3
  import MOCK_DATA from "./advanced_table_mock_data_with_id.json"
4
- import { colors } from "playbook-ui"
4
+ import colors from '../../tokens/exports/_colors.module.scss'
5
+
5
6
 
6
7
  const AdvancedTableRowStyling = (props) => {
7
8
  const columnDefinitions = [
@@ -35,7 +35,7 @@ const CopyButton = (props: CopyButtonProps) => {
35
35
  tooltipPlacement = 'bottom',
36
36
  tooltipText = 'Copied!',
37
37
  value = '',
38
- variant = 'button',
38
+ variant = 'icon',
39
39
  } = props
40
40
 
41
41
  const [copied, copy] = usePBCopy({ value, from, timeout })
@@ -1,6 +1,10 @@
1
1
  <%= pb_content_tag do %>
2
- <%= pb_rails("button", props: { icon: "copy" }) do %>
3
- <%= object.text %>
2
+ <% if object.variant == "icon" %>
3
+ <%= pb_rails("circle_icon_button", props: { icon: "copy", variant: "link" }) %>
4
+ <% else %>
5
+ <%= pb_rails("button", props: { icon: "copy" }) do %>
6
+ <%= object.text %>
7
+ <% end %>
4
8
  <% end %>
5
9
  <% if object.id %>
6
10
  <%= pb_rails("tooltip", props: {
@@ -12,6 +12,9 @@ module Playbook
12
12
  default: "Copied!"
13
13
  prop :value
14
14
  prop :from
15
+ prop :variant, type: Playbook::Props::Enum,
16
+ values: %w[button icon],
17
+ default: "icon"
15
18
 
16
19
  def classname
17
20
  generate_classname("pb_copy_button_kit")
@@ -37,6 +37,29 @@ it('copies the value to clipboard and pastes it into an input', async () => {
37
37
  expect(navigator.clipboard.writeText).toHaveBeenCalledWith("copy");
38
38
  })
39
39
 
40
+ test('passes text and tooltip props to icon variant', () => {
41
+ render(
42
+ <CopyButton
43
+ data={{ testid: 'text-test' }}
44
+ tooltipPlacement="right"
45
+ tooltipText="Text copied!"
46
+ value="copy"
47
+ />
48
+ )
49
+
50
+ const kit = screen.getByTestId('text-test')
51
+ const button = kit.querySelector('.pb_button_kit.pb_button_link.pb_button_inline.pb_button_enabled')
52
+ expect(button).toBeInTheDocument()
53
+
54
+ fireEvent.click(button)
55
+ const tooltipContent = screen.getByText("Text copied!")
56
+ expect(tooltipContent).toHaveTextContent("Text copied!")
57
+
58
+ const tooltip = kit.querySelector('.pb_tooltip_kit')
59
+ expect(tooltip).toBeInTheDocument()
60
+ })
61
+
62
+
40
63
  test('passes text and tooltip props to button', () => {
41
64
  render(
42
65
  <CopyButton
@@ -45,6 +68,7 @@ test('passes text and tooltip props to button', () => {
45
68
  tooltipPlacement="right"
46
69
  tooltipText="Text copied!"
47
70
  value="copy"
71
+ variant="button"
48
72
  />
49
73
  )
50
74
 
@@ -0,0 +1,9 @@
1
+ <%= pb_rails("copy_button", props: {
2
+ text: "Copy Text",
3
+ tooltip_position: "right",
4
+ tooltip_text: "Text copied!",
5
+ value: "Playbook makes it easy to support bleeding edge, or legacy systems. Use Playbook's 200+ components and end-to-end design language to create simple, intuitive and beautiful experiences with ease.",
6
+ variant: "button",
7
+ }) %>
8
+
9
+ <%= pb_rails("textarea", props: { margin_top: "xs", placeholder: "Copy and paste here" }) %>
@@ -1,9 +1,9 @@
1
1
  import React from 'react'
2
2
 
3
- import CopyButton from '../../pb_copy_button/_copy_button'
3
+ import CopyButton from '../_copy_button'
4
4
  import Textarea from '../../pb_textarea/_textarea'
5
5
 
6
- const CopyIconVariant = (props) => (
6
+ const CopyButtonVariant = (props) => (
7
7
  <div>
8
8
  <CopyButton
9
9
  {...props}
@@ -11,7 +11,7 @@ const CopyIconVariant = (props) => (
11
11
  tooltipPlacement="right"
12
12
  tooltipText="Text copied!"
13
13
  value="Playbook makes it easy to support bleeding edge, or legacy systems. Use Playbook’s 200+ components and end-to-end design language to create simple, intuitive and beautiful experiences with ease."
14
- variant="icon"
14
+ variant="button"
15
15
  />
16
16
 
17
17
  <Textarea
@@ -21,4 +21,4 @@ const CopyIconVariant = (props) => (
21
21
  </div>
22
22
  )
23
23
 
24
- export default CopyIconVariant
24
+ export default CopyButtonVariant
@@ -0,0 +1 @@
1
+ Pass in `variant: "button"` to replace the Circle Icon Button with the Button kit. Set the button's text with the `text` prop.
@@ -0,0 +1 @@
1
+ Pass in `variant="button"` to replace the Circle Icon Button with the Button kit. Set the button's text with the `text` prop.
@@ -1,2 +1,2 @@
1
- <%= pb_rails("copy_button", props: { id: "default-copy-button", text: "Copy Text", value: "Playbook makes it easy to support bleeding edge, or legacy systems. Use Playbook’s 200+ components and end-to-end design language to create simple, intuitive and beautiful experiences with ease." } ) %>
2
- <%= pb_rails("textarea", props: { margin_top: "xs", placeholder: "Copy and paste here" }) %>
1
+ <%= pb_rails("copy_button", props: { id: "default-copy-button", value: "Playbook makes it easy to support bleeding edge, or legacy systems. Use Playbook’s 200+ components and end-to-end design language to create simple, intuitive and beautiful experiences with ease." } ) %>
2
+ <%= pb_rails("textarea", props: { margin_top: "xs", placeholder: "Click the icon above to copy and paste here" }) %>
@@ -7,7 +7,6 @@ const CopyButtonDefault = (props) => (
7
7
  <div>
8
8
  <CopyButton
9
9
  {...props}
10
- text="Copy Text"
11
10
  tooltipPlacement="right"
12
11
  tooltipText="Text copied!"
13
12
  value="Playbook makes it easy to support bleeding edge, or legacy systems. Use Playbook’s 200+ components and end-to-end design language to create simple, intuitive and beautiful experiences with ease."
@@ -15,7 +14,7 @@ const CopyButtonDefault = (props) => (
15
14
 
16
15
  <Textarea
17
16
  {...props}
18
- placeholder="Copy and paste here"
17
+ placeholder="Click the icon above to copy and paste here"
19
18
  />
20
19
  </div>
21
20
  )
@@ -1,5 +1,5 @@
1
1
  <%= pb_rails("body", props: { id: "body", text: "Copy this body text!"}) %>
2
- <%= pb_rails("copy_button", props: { text: "Copy Body text", from: "body", id: "copy-body-button" }) %>
2
+ <%= pb_rails("copy_button", props: { text: "Copy Body text", from: "body", id: "copy-body-button", variant: "button" }) %>
3
3
  <%= pb_rails("text_input", props: { margin_top: "xs", placeholder: "Copy and paste here" }) %>
4
- <%= pb_rails("copy_button", props: { text: "Copy Text Input", from: "copy-input", id: "copy-input-button" }) %>
4
+ <%= pb_rails("copy_button", props: { text: "Copy Text Input", from: "copy-input", id: "copy-input-button", variant: "button" }) %>
5
5
  <%= pb_rails("text_input", props: { margin_top: "xs", id: "copy-input" , value: "Copy and paste here" }) %>
@@ -21,6 +21,7 @@ const CopyButtonFrom = (props) => {
21
21
  text="Copy Body text"
22
22
  tooltipPlacement="right"
23
23
  tooltipText="Body text copied!"
24
+ variant="button"
24
25
  />
25
26
 
26
27
  <TextInput
@@ -36,6 +37,7 @@ const CopyButtonFrom = (props) => {
36
37
  text="Copy Text Input"
37
38
  tooltipPlacement="right"
38
39
  tooltipText="Text input copied!"
40
+ variant="button"
39
41
  />
40
42
 
41
43
  <Textarea
@@ -1,11 +1,12 @@
1
1
  examples:
2
2
  rails:
3
3
  - copy_button_default: Default
4
+ - copy_button_button_variant: Button Variant
4
5
  - copy_button_from: Copy From
5
6
  - copy_button_hook_rails: Copy Hook
6
7
 
7
8
  react:
8
9
  - copy_button_default: Default
10
+ - copy_button_button_variant: Button Variant
9
11
  - copy_button_from: Copy From
10
12
  - copy_button_hook: Copy Hook
11
- - copy_button_icon_variant: Icon Variant
@@ -1,4 +1,4 @@
1
1
  export { default as CopyButtonDefault } from './_copy_button_default.jsx'
2
2
  export { default as CopyButtonFrom } from './_copy_button_from.jsx'
3
3
  export { default as CopyButtonHook } from './_copy_button_hook.jsx'
4
- export { default as CopyButtonIconVariant } from './_copy_button_icon_variant.jsx'
4
+ export { default as CopyButtonButtonVariant } from './_copy_button_button_variant.jsx'
@@ -33,6 +33,8 @@ export default class PbDropdown extends PbEnhancedElement {
33
33
  this.formPillProps = this.element.dataset.formPillProps
34
34
  ? JSON.parse(this.element.dataset.formPillProps)
35
35
  : {};
36
+ const baseInput = this.element.querySelector(DROPDOWN_INPUT);
37
+ this.wasOriginallyRequired = baseInput && baseInput.hasAttribute("required");
36
38
  this.setDefaultValue();
37
39
  this.bindEventListeners();
38
40
  this.bindSearchInput();
@@ -356,17 +358,6 @@ export default class PbDropdown extends PbEnhancedElement {
356
358
  }
357
359
 
358
360
  clearFormValidation(input) {
359
- if (input.checkValidity()) {
360
- const dropdownWrapperElement = input.closest(".dropdown_wrapper");
361
- dropdownWrapperElement.classList.remove("error");
362
-
363
- const errorLabelElement = dropdownWrapperElement.querySelector(
364
- ".pb_body_kit_negative"
365
- );
366
- if (errorLabelElement) {
367
- errorLabelElement.remove();
368
- }
369
- }
370
361
  if (this.isMultiSelect) {
371
362
  if (this.selectedOptions.size > 0) {
372
363
  const dropdownWrapperElement = input.closest(".dropdown_wrapper");
@@ -377,6 +368,19 @@ export default class PbDropdown extends PbEnhancedElement {
377
368
  if (errorLabelElement) {
378
369
  errorLabelElement.remove();
379
370
  }
371
+ return;
372
+ }
373
+ }
374
+
375
+ if (input.checkValidity()) {
376
+ const dropdownWrapperElement = input.closest(".dropdown_wrapper");
377
+ dropdownWrapperElement.classList.remove("error");
378
+
379
+ const errorLabelElement = dropdownWrapperElement.querySelector(
380
+ ".pb_body_kit_negative"
381
+ );
382
+ if (errorLabelElement) {
383
+ errorLabelElement.remove();
380
384
  }
381
385
  }
382
386
  }
@@ -585,7 +589,9 @@ export default class PbDropdown extends PbEnhancedElement {
585
589
  // for multi_select, for each selectedOption, create a hidden input
586
590
  const name = baseInput.getAttribute("name");
587
591
  this.selectedOptions.forEach((raw) => {
588
- const id = JSON.parse(raw).id;
592
+ const optionData = JSON.parse(raw);
593
+ // Use id if available, otherwise fall back to value
594
+ const id = optionData.id || optionData.value;
589
595
  const inp = document.createElement("input");
590
596
  inp.type = "hidden";
591
597
  inp.name = name;
@@ -593,7 +599,19 @@ export default class PbDropdown extends PbEnhancedElement {
593
599
  inp.dataset.generated = "true";
594
600
  baseInput.insertAdjacentElement("afterend", inp);
595
601
  });
596
- baseInput.value = "";
602
+
603
+ // For multi-select, remove required from base input when there are selections
604
+ // The generated inputs handle the form submission with actual values
605
+ // Restore required attribute when there are no selections (if it was originally required)
606
+ if (this.selectedOptions.size > 0) {
607
+ baseInput.value = "";
608
+ baseInput.removeAttribute("required");
609
+ } else {
610
+ baseInput.value = "";
611
+ if (this.wasOriginallyRequired) {
612
+ baseInput.setAttribute("required", "");
613
+ }
614
+ }
597
615
  }
598
616
 
599
617
  handleBackspaceClear() {
@@ -1,5 +1,6 @@
1
1
  import React from 'react'
2
- import { EmptyState, Flex } from 'playbook-ui'
2
+ import EmptyState from '../_empty_state'
3
+ import Flex from '../../pb_flex/_flex'
3
4
 
4
5
  const EmptyStateAlignment = (props) => (
5
6
  <Flex align="center"
@@ -1,5 +1,6 @@
1
1
  import React from 'react'
2
- import { EmptyState, Flex } from 'playbook-ui'
2
+ import EmptyState from '../_empty_state'
3
+ import Flex from '../../pb_flex/_flex'
3
4
 
4
5
  const EmptyStateDefault = (props) => (
5
6
  <Flex align="center"
@@ -1,5 +1,6 @@
1
1
  import React from 'react'
2
- import { EmptyState, Flex } from 'playbook-ui'
2
+ import EmptyState from '../_empty_state'
3
+ import Flex from '../../pb_flex/_flex'
3
4
 
4
5
  const EmptyStateOrientation = (props) => (
5
6
  <Flex align="center"
@@ -1,5 +1,6 @@
1
1
  import React from 'react'
2
- import { EmptyState, Flex } from 'playbook-ui'
2
+ import EmptyState from '../_empty_state'
3
+ import Flex from '../../pb_flex/_flex'
3
4
 
4
5
  const EmptyStateSize = (props) => (
5
6
  <Flex align="center"
@@ -1,5 +1,8 @@
1
1
  import React from 'react'
2
- import { Card, Caption, FormPill, Typeahead } from 'playbook-ui'
2
+ import Card from '../../pb_card/_card'
3
+ import Caption from '../../pb_caption/_caption'
4
+ import FormPill from '../_form_pill'
5
+ import Typeahead from '../../pb_typeahead/_typeahead'
3
6
 
4
7
  const names = [
5
8
  { label: 'Alexander Nathaniel Montgomery', value: 'Alexander Nathaniel Montgomery' },
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { LoadingInline } from 'playbook-ui'
2
+ import LoadingInline from '../_loading_inline'
3
3
 
4
4
  const LoadingInlineVariant = (props) => {
5
5
  return (
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
  import colors from '../../tokens/exports/_colors.module.scss'
4
4
 
5
5
  const chartData = [{
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
 
4
4
  const chartData = [{
5
5
  name: 'Installation',
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
 
4
4
  const chartData = [{
5
5
  name: 'Number of Installations',
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
 
4
4
 
5
5
  const chartOptions = {
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
 
4
4
 
5
5
  const chartData = [{
@@ -1,6 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
3
-
2
+ import PbBarGraph from '../_pb_bar_graph'
4
3
 
5
4
  const chartData = [{
6
5
  name: 'Number of Installations',
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
  import Title from "../../pb_title/_title"
4
4
 
5
5
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
 
4
4
 
5
5
  const chartData = [{
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
2
+ import PbBarGraph from '../_pb_bar_graph'
3
3
 
4
4
  import colors from '../../tokens/exports/_colors.module.scss'
5
5
  import typography from '../../tokens/exports/_typography.module.scss'
@@ -1,6 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
3
-
2
+ import PbBarGraph from '../_pb_bar_graph'
4
3
 
5
4
  const chartData = [{
6
5
  name: 'Number of Installations',
@@ -1,6 +1,5 @@
1
1
  import React from 'react'
2
- import { PbBarGraph } from 'playbook-ui'
3
-
2
+ import PbBarGraph from '../_pb_bar_graph'
4
3
 
5
4
  const chartData = [{
6
5
  name: 'Installation',
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { PbCircleChart, Title } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
+ import Title from "../../pb_title/_title";
3
4
 
4
5
  const data= [
5
6
  {
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { PbCircleChart, colors } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
+ import colors from '../../tokens/exports/_colors.module.scss';
3
4
 
4
5
  const data= [
5
6
  {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const data = [
5
5
  {
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- import { PbCircleChart, Title } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
+ import Title from "../../pb_title/_title";
3
4
 
4
5
  const dataFirst = [
5
6
  {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const data = [
5
5
  {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const data = [{
5
5
  name: 'Bugs',
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const chartOptions = {
5
5
  series: [
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const dataFirst = [
5
5
  {
@@ -1,5 +1,6 @@
1
1
  import React, { useState } from "react";
2
- import { PbCircleChart, Button } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
+ import Button from "../../pb_button/_button";
3
4
 
4
5
  const chartData = [
5
6
  {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const data= [
5
5
  {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { PbCircleChart } from "playbook-ui";
2
+ import PbCircleChart from "../_pb_circle_chart";
3
3
 
4
4
  const data= [
5
5
  {
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
3
- import { colors } from 'playbook-ui'
3
+ import colors from '../../tokens/exports/_colors.module.scss'
4
4
 
5
5
  const data = [{ name: "Name", y: 67 }]
6
6
 
@@ -7,7 +7,8 @@ import Caption from '../../pb_caption/_caption'
7
7
  import Body from '../../pb_body/_body'
8
8
  import SectionSeparator from '../../pb_section_separator/_section_separator'
9
9
  import Title from '../../pb_title/_title'
10
- import { colors, typography } from 'playbook-ui'
10
+ import colors from '../../tokens/exports/_colors.module.scss'
11
+ import typography from '../../tokens/exports/_typography.module.scss'
11
12
 
12
13
  const data = [{ name: "Name", y: 10 }];
13
14
 
@@ -1,6 +1,7 @@
1
1
  import React from 'react'
2
2
  import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
3
- import { colors, typography } from 'playbook-ui'
3
+ import colors from '../../tokens/exports/_colors.module.scss'
4
+ import typography from '../../tokens/exports/_typography.module.scss'
4
5
 
5
6
  const data = [{ name: "Capacity", y: 75 }]
6
7
 
@@ -1,6 +1,7 @@
1
1
  import React from 'react'
2
2
  import PbGaugeChart from '../../pb_pb_gauge_chart/_pb_gauge_chart'
3
- import { colors, typography } from 'playbook-ui'
3
+ import colors from '../../tokens/exports/_colors.module.scss'
4
+ import typography from '../../tokens/exports/_typography.module.scss'
4
5
 
5
6
  const chartOptions = {
6
7
  title: {