playbook_ui 14.4.0.pre.alpha.PLAY1547reactzoompanpinchlightbox3613893 → 14.4.0.pre.alpha.PLAY1562highchartsbump3819

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_advanced_table/Components/SortIconButton.tsx +4 -23
  3. data/app/pb_kits/playbook/pb_contact/_contact.tsx +5 -17
  4. data/app/pb_kits/playbook/pb_contact/contact.html.erb +6 -14
  5. data/app/pb_kits/playbook/pb_contact/contact.rb +0 -4
  6. data/app/pb_kits/playbook/pb_contact/contact.test.js +1 -1
  7. data/app/pb_kits/playbook/pb_date_picker/_date_picker.tsx +3 -4
  8. data/app/pb_kits/playbook/pb_date_picker/date_picker.html.erb +1 -1
  9. data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -4
  10. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +3 -6
  11. data/app/pb_kits/playbook/pb_date_picker/docs/_date_picker_inline.html.erb +1 -1
  12. data/app/pb_kits/playbook/pb_date_picker/sass_partials/_header_styles.scss +2 -6
  13. data/app/pb_kits/playbook/pb_dialog/_dialog.scss +0 -2
  14. data/app/pb_kits/playbook/pb_dialog/dialog_header.html.erb +1 -1
  15. data/app/pb_kits/playbook/pb_map/_map_controls.tsx +1 -7
  16. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +4 -15
  17. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change.jsx +1 -12
  18. data/app/pb_kits/playbook/pb_pagination/docs/_pagination_page_change_react.md +1 -3
  19. data/app/pb_kits/playbook/pb_passphrase/_passphrase.tsx +2 -10
  20. data/app/pb_kits/playbook/pb_radio/_radio.tsx +33 -92
  21. data/app/pb_kits/playbook/pb_radio/docs/example.yml +0 -1
  22. data/app/pb_kits/playbook/pb_radio/docs/index.js +0 -1
  23. data/app/pb_kits/playbook/pb_rich_text_editor/TipTap/ToolbarDropdown.tsx +5 -12
  24. data/app/pb_kits/playbook/pb_select/_select.tsx +2 -5
  25. data/app/pb_kits/playbook/pb_select/select.html.erb +1 -1
  26. data/app/pb_kits/playbook/pb_select/select.rb +0 -4
  27. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +1 -0
  28. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +1 -0
  29. data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +0 -14
  30. data/app/pb_kits/playbook/pb_typeahead/_typeahead.tsx +0 -3
  31. data/app/pb_kits/playbook/pb_typeahead/components/Control.tsx +5 -6
  32. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +0 -2
  33. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +0 -1
  34. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +1 -2
  35. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +1 -6
  36. data/app/pb_kits/playbook/utilities/icons/allicons.tsx +0 -123
  37. data/dist/chunks/_typeahead-D7A7UtDj.js +22 -0
  38. data/dist/chunks/_weekday_stacked-cRBjVQjA.js +45 -0
  39. data/dist/chunks/lib-D2U4I1U6.js +16 -0
  40. data/dist/chunks/{pb_form_validation-D9zkwt2b.js → pb_form_validation-zV9OpdSt.js} +1 -1
  41. data/dist/chunks/vendor.js +1 -1
  42. data/dist/playbook-doc.js +1 -1
  43. data/dist/playbook-rails-react-bindings.js +1 -1
  44. data/dist/playbook-rails.js +1 -1
  45. data/dist/playbook.css +1 -1
  46. data/lib/playbook/version.rb +1 -1
  47. metadata +6 -11
  48. data/app/pb_kits/playbook/pb_radio/docs/_radio_custom_children.jsx +0 -59
  49. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.html.erb +0 -88
  50. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_margin_bottom.jsx +0 -60
  51. data/app/pb_kits/playbook/utilities/icons/angle-down.svg +0 -3
  52. data/app/pb_kits/playbook/utilities/icons/envelope.svg +0 -3
  53. data/dist/chunks/_typeahead-C7ICra83.js +0 -22
  54. data/dist/chunks/_weekday_stacked-BNuGWnXO.js +0 -45
  55. data/dist/chunks/lib-CEpcaI8y.js +0 -29
@@ -1,7 +1,5 @@
1
1
  import React, { useState } from 'react'
2
2
 
3
- import { getAllIcons } from "../../utilities/icons/allicons"
4
-
5
3
  import Flex from '../../pb_flex/_flex'
6
4
  import PbReactPopover from '../../pb_popover/_popover'
7
5
  import Button from '../../pb_button/_button'
@@ -67,7 +65,6 @@ const toolbarDropdownItems = [
67
65
  },
68
66
  ]
69
67
 
70
- const angleDown = getAllIcons()["angleDown"].icon as unknown as { [key: string]: SVGElement }
71
68
 
72
69
  const handleTogglePopover = () => {
73
70
  setShowPopover(!showPopover)
@@ -95,10 +92,8 @@ for (const { text, isActive, icon } of toolbarDropdownItems) {
95
92
  <Flex className={showPopover ? "fa-flip-vertical" : ""}
96
93
  display="inline_flex"
97
94
  >
98
- <Icon
99
- className="svg-inline--fa"
100
- customIcon={angleDown}
101
- fixedWidth
95
+ <Icon fixedWidth
96
+ icon="angle-down"
102
97
  margin-left="xs"
103
98
  />
104
99
  </Flex>
@@ -130,10 +125,8 @@ const popoverReference = (
130
125
  <Flex className={showPopover ? "fa-flip-vertical" : ""}
131
126
  display="inline_flex"
132
127
  >
133
- <Icon
134
- className="svg-inline--fa"
135
- customIcon={angleDown}
136
- fixedWidth
128
+ <Icon fixedWidth
129
+ icon="angle-down"
137
130
  margin-left="xs"
138
131
  />
139
132
  </Flex>
@@ -176,4 +169,4 @@ const popoverReference = (
176
169
  )
177
170
  }
178
171
 
179
- export default ToolbarDropdown
172
+ export default ToolbarDropdown
@@ -4,7 +4,6 @@ import classnames from 'classnames'
4
4
  import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
5
5
  import { globalProps, GlobalProps, domSafeProps } from '../utilities/globalProps'
6
6
  import type { InputCallback } from '../types'
7
- import { getAllIcons } from "../utilities/icons/allicons"
8
7
 
9
8
  import Body from '../pb_body/_body'
10
9
  import Caption from '../pb_caption/_caption'
@@ -91,8 +90,6 @@ const Select = ({
91
90
  compactClass
92
91
  );
93
92
 
94
- const angleDown = getAllIcons()["angleDown"].icon as unknown as { [key: string]: SVGElement }
95
-
96
93
  const selectWrapperClass = classnames(buildCss('pb_select_kit_wrapper'), { error }, className)
97
94
  const selectBody =(() =>{
98
95
  if (children) return children
@@ -137,9 +134,9 @@ const Select = ({
137
134
  {selectBody}
138
135
  { multiple !== true ?
139
136
  <Icon
140
- className="pb_select_kit_caret svg-inline--fa"
141
- customIcon={angleDown}
137
+ className="pb_select_kit_caret"
142
138
  fixedWidth
139
+ icon="angle-down"
143
140
  />
144
141
  :
145
142
  null
@@ -26,7 +26,7 @@
26
26
  <%= pb_rails("body", props: { status: "negative", text: object.error }) %>
27
27
  <% end %>
28
28
  <% if object.multiple != true %>
29
- <%= pb_rails("icon", props: { custom_icon: Playbook::Engine::root.join(angle_down_path), fixed_width: true, classname: "pb_select_kit_caret"}) %>
29
+ <%= pb_rails("icon", props: { icon: "angle-down", fixed_width: true, classname: "pb_select_kit_caret"}) %>
30
30
  <% end %>
31
31
  </label>
32
32
  <% end %>
@@ -84,10 +84,6 @@ module Playbook
84
84
  end
85
85
  end
86
86
 
87
- def angle_down_path
88
- "app/pb_kits/playbook/utilities/icons/angle-down.svg"
89
- end
90
-
91
87
  private
92
88
 
93
89
  def error_class
@@ -45,6 +45,7 @@
45
45
  }
46
46
  }
47
47
  .text_input_wrapper {
48
+ margin-bottom: 1rem;
48
49
  input::placeholder,
49
50
  .text_input .placeholder {
50
51
  @include pb_body_light_dark;
@@ -68,6 +68,7 @@
68
68
  opacity: 0;
69
69
  }
70
70
  [class^=pb_list_kit] {
71
+ margin-top: -$space-sm;
71
72
  li {
72
73
  transition: background-color .25s ease-in-out;
73
74
  }
@@ -109,20 +109,6 @@ test('should pass className prop', () => {
109
109
  expect(kit).toHaveClass(className)
110
110
  })
111
111
 
112
- test('typeahead textinput has mb_sm class by default', () => {
113
- render(
114
- <Typeahead
115
- data={{ testid: 'default-mb-test' }}
116
- options={options}
117
- />
118
- )
119
-
120
- const kit = screen.getByTestId('default-mb-test')
121
- expect(kit).toHaveClass("pb_typeahead_kit mb_sm")
122
- const textInput = kit.querySelector(".pb_text_input_kit")
123
- expect(textInput).toHaveClass("mb_none")
124
- })
125
-
126
112
  test('typeahead with colored pills', () => {
127
113
  render(
128
114
  <Typeahead
@@ -45,7 +45,6 @@ type TypeaheadProps = {
45
45
  getOptionLabel?: string | (() => any),
46
46
  getOptionValue?: string | (() => any),
47
47
  name?: string,
48
- marginBottom?: "none" | "xxs" | "xs" | "sm" | "md" | "lg" | "xl",
49
48
  pillColor?: "primary" | "neutral" | "success" | "warning" | "error" | "info" | "data_1" | "data_2" | "data_3" | "data_4" | "data_5" | "data_6" | "data_7" | "data_8" | "windows" | "siding" | "roofing" | "doors" | "gutters" | "solar" | "insulation" | "accessories",
50
49
  } & GlobalProps
51
50
 
@@ -79,7 +78,6 @@ const Typeahead = ({
79
78
  htmlOptions = {},
80
79
  id,
81
80
  loadOptions = noop,
82
- marginBottom = "sm",
83
81
  pillColor,
84
82
  ...props
85
83
  }: TypeaheadProps) => {
@@ -140,7 +138,6 @@ const Typeahead = ({
140
138
  const htmlProps = buildHtmlProps(htmlOptions)
141
139
  const classes = classnames(
142
140
  'pb_typeahead_kit react-select',
143
- `mb_${marginBottom}`,
144
141
  globalProps(props),
145
142
  className
146
143
  )
@@ -11,15 +11,14 @@ type Props = {
11
11
  const TypeaheadControl = (props: Props) => (
12
12
  <div className="pb_typeahead_wrapper">
13
13
  <TextInput
14
- dark={props.selectProps.dark}
15
- error={props.selectProps.error}
16
- label={props.selectProps.label}
17
- marginBottom="none"
14
+ dark={props.selectProps.dark}
15
+ error={props.selectProps.error}
16
+ label={props.selectProps.label}
18
17
  >
19
18
  <Flex>
20
19
  <components.Control
21
- className="text_input"
22
- {...props}
20
+ className="text_input"
21
+ {...props}
23
22
  />
24
23
  </Flex>
25
24
  </TextInput>
@@ -9,7 +9,6 @@ examples:
9
9
  - typeahead_inline: Inline
10
10
  - typeahead_multi_kit: Multi Kit Options
11
11
  - typeahead_error_state: Error State
12
- - typeahead_margin_bottom: Margin Bottom
13
12
  - typeahead_with_pills_color: With Pills (Custom Color)
14
13
 
15
14
  react:
@@ -25,5 +24,4 @@ examples:
25
24
  - typeahead_async_createable: Createable (+ Async Data)
26
25
  - typeahead_error_state: Error State
27
26
  - typeahead_custom_menu_list: Custom MenuList
28
- - typeahead_margin_bottom: Margin Bottom
29
27
  - typeahead_with_pills_color: With Pills (Custom Color)
@@ -10,5 +10,4 @@ export { default as TypeaheadCreateable } from './_typeahead_createable.jsx'
10
10
  export { default as TypeaheadAsyncCreateable } from './_typeahead_async_createable.jsx'
11
11
  export { default as TypeaheadErrorState } from './_typeahead_error_state.jsx'
12
12
  export { default as TypeaheadCustomMenuList } from './_typeahead_custom_menu_list.jsx'
13
- export { default as TypeaheadMarginBottom } from './_typeahead_margin_bottom.jsx'
14
13
  export { default as TypeaheadWithPillsColor } from './_typeahead_with_pills_color.jsx'
@@ -20,8 +20,7 @@
20
20
  label: object.label,
21
21
  name: object.name,
22
22
  value: object.value,
23
- placeholder: object.placeholder,
24
- margin_bottom: "none",
23
+ placeholder: object.placeholder
25
24
  }) %>
26
25
  <%= pb_rails("list", props: { ordered: false, borderless: false, xpadding: true, role: "status", aria: { live: "polite" }, data: { pb_typeahead_kit_results: true } }) do %>
27
26
  <% end %>
@@ -34,16 +34,12 @@ module Playbook
34
34
  prop :search_term_minimum_length, default: 3
35
35
  prop :search_debounce_timeout, default: 250
36
36
  prop :value
37
- prop :margin_bottom, type: Playbook::Props::Enum,
38
- values: %w[none xxs xs sm md lg xl],
39
- default: "sm"
40
37
  prop :pill_color, type: Playbook::Props::Enum,
41
38
  values: %w[primary neutral success warning error info data_1 data_2 data_3 data_4 data_5 data_6 data_7 data_8 windows siding roofing doors gutters solar insulation accessories],
42
39
  default: "primary"
43
40
 
44
41
  def classname
45
- default_margin_bottom = margin_bottom.present? ? "" : " mb_sm"
46
- generate_classname("pb_typeahead_kit") + default_margin_bottom
42
+ generate_classname("pb_typeahead_kit")
47
43
  end
48
44
 
49
45
  def inline_class
@@ -73,7 +69,6 @@ module Playbook
73
69
  inline: inline,
74
70
  isMulti: is_multi,
75
71
  label: label,
76
- marginBottom: margin_bottom,
77
72
  multiKit: multi_kit,
78
73
  name: name,
79
74
  options: options,
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import ReactDOMServer from 'react-dom/server';
3
2
 
4
3
  const spinner = (
5
4
  <svg
@@ -44,109 +43,6 @@ const times = (
44
43
  </svg>
45
44
  )
46
45
 
47
- const shieldCheck = (
48
- <svg
49
- fill="none"
50
- height="25"
51
- viewBox="0 0 30 25"
52
- width="30"
53
- xmlns="http://www.w3.org/2000/svg"
54
- >
55
- <g clipPath="url(#clip0_3501_2627)">
56
- <path
57
- d="M23.613 6.22616C19.2319 5.05738 16.2038 3.57683 14.9994 2.93168C13.795 3.57684 10.7668 5.05738 6.38579 6.22616C6.49648 10.1825 7.36742 13.3152 8.82039 15.769C10.2812 18.2361 12.3678 20.0807 14.9994 21.3944C17.6301 20.0812 19.7161 18.2374 21.1769 15.7716C22.6308 13.3174 23.5022 10.1839 23.613 6.22616ZM14.2526 0.775118C14.7176 0.512911 15.2824 0.51361 15.7463 0.775204C16.4986 1.19938 19.7418 2.92765 24.7399 4.19445C25.4023 4.36236 25.8799 4.96401 25.8736 5.66282C25.8329 10.1987 24.8831 13.9298 23.1127 16.9184C21.3379 19.9142 18.7794 22.0943 15.64 23.5849C15.235 23.7772 14.7638 23.7773 14.3587 23.5849C11.2184 22.0938 8.65916 19.9128 6.88434 16.9154C5.11385 13.9254 4.16463 10.1924 4.12506 5.65388C4.11862 4.91506 4.64477 4.35024 5.26787 4.19218C10.2611 2.92549 13.5011 1.19889 14.2526 0.775118ZM11.685 11.1425C11.2467 10.7022 10.5344 10.7006 10.094 11.139C9.65373 11.5774 9.65215 12.2897 10.0905 12.73L12.7278 15.379C13.3123 15.9661 14.2621 15.9682 14.8491 15.3837L19.8781 10.377C20.3184 9.93866 20.32 9.22635 19.8816 8.78604C19.4432 8.34573 18.7309 8.34415 18.2906 8.78251L13.7932 13.26L11.685 11.1425Z"
58
- fill="#242B42"
59
- />
60
- </g>
61
- <defs>
62
- <clipPath id="clip0_3501_2627">
63
- <rect
64
- fill="white"
65
- height="24"
66
- transform="translate(0 0.142883)"
67
- width="30"
68
- />
69
- </clipPath>
70
- </defs>
71
- </svg>
72
- )
73
-
74
- const eye = (
75
- <svg
76
- fill="none"
77
- height="1.5em"
78
- viewBox="0 0 30 24"
79
- width="1.5em"
80
- xmlns="http://www.w3.org/2000/svg"
81
- >
82
- <path
83
- clipRule="evenodd"
84
- d="M15.063 1.393c-4.268 0-7.06 1.76-9.073 3.89C5.002 6.33 4.206 7.46 3.522 8.475l-.395.589c-.526.787-.97 1.454-1.424 1.994a1.521 1.521 0 00-.045 1.902c.303.396.634.893 1.005 1.45 2.092 3.136 5.466 8.197 12.4 8.197 7.192 0 10.277-4.932 12.237-8.066.385-.615.727-1.161 1.047-1.587a1.524 1.524 0 00-.049-1.895c-.459-.548-.906-1.23-1.436-2.037l-.001-.001-.354-.539c-.672-1.014-1.453-2.145-2.425-3.192-1.984-2.135-4.75-3.897-9.02-3.897zM4.703 13.376c-.313-.46-.616-.906-.917-1.323a35.29 35.29 0 001.245-1.788l.357-.533c.67-.995 1.383-1.998 2.238-2.904C9.3 5.056 11.53 3.643 15.063 3.643c3.53 0 5.728 1.41 7.37 3.178.84.905 1.538 1.907 2.197 2.903l.324.492v.001c.417.635.837 1.276 1.265 1.84a43.715 43.715 0 00-1.021 1.551c-1.99 3.115-4.311 6.749-10.135 6.749-5.613 0-8.22-3.833-10.36-6.981zm10.35 2.638a3.946 3.946 0 10-.243-7.885c.168.23.243.602.243 1.204a3.187 3.187 0 01-3.188 3.188 3.83 3.83 0 01-.739-.056 3.947 3.947 0 003.927 3.549zm0 2.25a6.196 6.196 0 100-12.393 6.196 6.196 0 000 12.393z"
85
- fill="#242B42"
86
- />
87
- </svg>
88
- )
89
-
90
- const envelope = (
91
- <svg
92
- fill="none"
93
- height="1.5em"
94
- viewBox="0 0 30 25"
95
- width="1.5em"
96
- xmlns="http://www.w3.org/2000/svg"
97
- >
98
- <path
99
- d="M5.625 6.286c0-.207.168-.375.375-.375h18c.207 0 .375.168.375.375v1.636L15 13.95 5.625 7.922V6.286zm-2.25 2.232V18.286A2.625 2.625 0 006 20.91h18a2.625 2.625 0 002.625-2.625V8.553 6.286A2.625 2.625 0 0024 3.66H6a2.625 2.625 0 00-2.625 2.625v2.232zm21 2.079v7.689a.375.375 0 01-.375.375H6a.375.375 0 01-.375-.375v-7.69l8.564 5.508a1.5 1.5 0 001.622 0l8.564-5.507z"
100
- fill="#242B42"
101
- />
102
- </svg>
103
- )
104
-
105
- const arrowUpShortWide = (
106
- <svg
107
- fill="none"
108
- height="1.5em"
109
- viewBox="0 0 30 25"
110
- width="1.5em"
111
- xmlns="http://www.w3.org/2000/svg"
112
- >
113
- <path
114
- d="M3.44 8.724a1.125 1.125 0 11-1.59-1.59l4.235-4.236a1.5 1.5 0 012.12 0l4.236 4.235a1.125 1.125 0 01-1.591 1.591l-2.58-2.58V21.43a1.125 1.125 0 01-2.25 0V6.145l-2.58 2.58zM14.25 20.68c0-.622.504-1.125 1.125-1.125h12a1.125 1.125 0 110 2.25h-12a1.125 1.125 0 01-1.125-1.125zm1.125-6.63a1.125 1.125 0 000 2.25h9a1.125 1.125 0 100-2.25h-9zm-1.125-4.37c0-.622.504-1.125 1.125-1.125h6a1.125 1.125 0 110 2.25h-6a1.125 1.125 0 01-1.125-1.125zm1.125-6.625a1.125 1.125 0 000 2.25h3a1.125 1.125 0 100-2.25h-3z"
115
- fill="#242B42"
116
- />
117
- </svg>
118
- )
119
-
120
- const arrowDownShortWide = (
121
- <svg
122
- fill="none"
123
- height="1.5em"
124
- viewBox="0 0 30 25"
125
- width="1.5em"
126
- xmlns="http://www.w3.org/2000/svg"
127
- >
128
- <path
129
- d="M8.27 3.857a1.125 1.125 0 00-2.25 0v15.284l-2.58-2.58a1.125 1.125 0 10-1.59 1.592l4.235 4.235a1.5 1.5 0 002.12 0l4.236-4.235a1.125 1.125 0 10-1.591-1.591l-2.58 2.58V3.856zm5.98 17.25c0-.621.504-1.125 1.125-1.125h12a1.125 1.125 0 110 2.25h-12a1.125 1.125 0 01-1.125-1.125zm1.125-6.63a1.125 1.125 0 000 2.25h8.25a1.125 1.125 0 100-2.25h-8.25zm-1.125-4.37c0-.621.504-1.125 1.125-1.125h5.25a1.125 1.125 0 110 2.25h-5.25a1.125 1.125 0 01-1.125-1.125zm1.125-6.625a1.125 1.125 0 000 2.25h1.5a1.125 1.125 0 100-2.25h-1.5z"
130
- fill="#242B42"
131
- />
132
- </svg>
133
- )
134
-
135
- const angleDown = (
136
- <svg
137
- fill="none"
138
- height="1.5em"
139
- viewBox="0 0 30 24"
140
- width="1.5em"
141
- xmlns="http://www.w3.org/2000/svg"
142
- >
143
- <path
144
- d="M6.543 7.69a1.125 1.125 0 011.59.034L15 14.884l6.866-7.16A1.125 1.125 0 1123.49 9.28l-7.407 7.725a1.5 1.5 0 01-2.166 0L6.51 9.281a1.125 1.125 0 01.033-1.59z"
145
- fill="#242B42"
146
- />
147
- </svg>
148
- )
149
-
150
46
  export const getAllIcons = () => {
151
47
 
152
48
  return {
@@ -158,25 +54,6 @@ export const getAllIcons = () => {
158
54
  },
159
55
  times: {
160
56
  icon: times
161
- },
162
- shieldCheck: {
163
- icon: shieldCheck
164
- },
165
- eye: {
166
- icon: eye
167
- },
168
- envelope: {
169
- icon: envelope
170
- },
171
- arrowUpShortWide: {
172
- icon: arrowUpShortWide
173
- },
174
- arrowDownShortWide: {
175
- icon: arrowDownShortWide
176
- },
177
- angleDown: {
178
- icon: angleDown,
179
- string: ReactDOMServer.renderToStaticMarkup(angleDown)
180
57
  }
181
58
  }
182
59
  }