playbook_ui 8.2.1.pre.alpha5 → 8.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a51ba5ee8e976845e84ecf877719d0e520aaec19cbc8a38afdbeaf2cb29917f
4
- data.tar.gz: 97896528a851b64bd127b17bc1019a01ee5792c9b72aef5d86b130fb605e2ffe
3
+ metadata.gz: 05e0cb64b2dbb3865e6c07d44fb325424871dc682900fb0e45a9b905f2c31342
4
+ data.tar.gz: 1cca131f6e0fa3df24bdbc6f004878067b3a7727e4dba9c44657726969ec2666
5
5
  SHA512:
6
- metadata.gz: 901809eb6df1c4d038fa5f660a96427325cdbd31e99327c1d650aad64c046b5d2de127d585ff8db43380fc52ce72104476a118f2eca3297071c9a68ee4bc26da
7
- data.tar.gz: d5b1ea7c134a326c681ba7c8b4b63813fe18d7d9f7b6f1f57309f8aa7511d973ccef356d3ca205c040cd1e237133fc9c701f56a6b37146183be6d1cf3024875c
6
+ metadata.gz: 0f6eb45fb6ba52e77cb6d57edee2ad886e7de1f69f4b8afd6bacbc3a5056cbd184863041e266d918dbf43056d225bebecf88d6e26649e660a913f8dcbf12cb1b
7
+ data.tar.gz: 35d56bb9d0ac9aca06af2f1f9326a1462f6b66cb641b26116be70c4d5acd34a590821116657eb00429d59125e4a177c310ddfb2ff0c639278f17d978da4135a0
data/Rakefile CHANGED
@@ -4,12 +4,29 @@ rescue LoadError
4
4
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
5
  end
6
6
 
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Playbook'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
7
17
  APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
8
18
  load 'rails/tasks/engine.rake'
19
+
9
20
  load 'rails/tasks/statistics.rake'
10
21
 
11
22
  require 'bundler/gem_tasks'
12
23
 
13
- Dir["private/tasks/*.rake"].each(&method(:load))
24
+ require 'rake/testtask'
25
+
26
+ Rake::TestTask.new(:test) do |t|
27
+ t.libs << 'test'
28
+ t.pattern = 'spec/**/*_spec.rb'
29
+ t.verbose = false
30
+ end
14
31
 
15
32
  task default: :test
@@ -3,7 +3,6 @@
3
3
  import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { globalProps } from '../utilities/globalProps.js'
6
- import { Icon } from '../'
7
6
 
8
7
  import {
9
8
  buildAriaProps,
@@ -14,15 +13,8 @@ import {
14
13
  type BadgeProps = {
15
14
  aria?: object,
16
15
  className?: string,
17
- closeProps?: {
18
- onClick?: EventHandler,
19
- onMouseDown?: EventHandler,
20
- onTouchEnd?: EventHandler,
21
- },
22
16
  data?: object,
23
17
  id?: string,
24
- removeIcon?: Boolean,
25
- removeOnClick?: EventHandler,
26
18
  rounded?: boolean,
27
19
  text?: string,
28
20
  variant?: "error" | "info" | "neutral" | "primary" | "success" | "warning",
@@ -31,11 +23,8 @@ const Badge = (props: BadgeProps) => {
31
23
  const {
32
24
  aria = {},
33
25
  className,
34
- closeProps = {},
35
26
  data = {},
36
27
  id,
37
- removeIcon = false,
38
- removeOnClick = () => {},
39
28
  rounded = false,
40
29
  text,
41
30
  variant = 'neutral',
@@ -55,21 +44,7 @@ const Badge = (props: BadgeProps) => {
55
44
  className={css}
56
45
  id={id}
57
46
  >
58
- <span>
59
- {text}
60
- <If condition={removeIcon}>
61
- <span
62
- onClick={removeOnClick}
63
- style={{ cursor: 'pointer' }}
64
- {...closeProps}
65
- >
66
- <Icon
67
- fixedWidth
68
- icon="times"
69
- />
70
- </span>
71
- </If>
72
- </span>
47
+ <span>{text}</span>
73
48
  </div>
74
49
  )
75
50
  }
@@ -25,8 +25,6 @@ type DatePickerProps = {
25
25
  id?: String,
26
26
  inputAria?: object,
27
27
  inputData?: object,
28
- inputOnChange?: (String) => void,
29
- inputValue?: any,
30
28
  label?: String,
31
29
  maxDate: String,
32
30
  minDate: String,
@@ -57,8 +55,6 @@ const DatePicker = (props: DatePickerProps) => {
57
55
  id,
58
56
  inputAria,
59
57
  inputData,
60
- inputOnChange,
61
- inputValue,
62
58
  label = 'Date Picker',
63
59
  maxDate,
64
60
  minDate,
@@ -118,6 +114,7 @@ const DatePicker = (props: DatePickerProps) => {
118
114
  className={classes}
119
115
  id={id}
120
116
  >
117
+ {className}
121
118
  <div className="input_wrapper">
122
119
  <TextInput
123
120
  aria={inputAria}
@@ -129,9 +126,7 @@ const DatePicker = (props: DatePickerProps) => {
129
126
  id={pickerId}
130
127
  label={hideLabel ? null : label}
131
128
  name={name}
132
- onChange={inputOnChange}
133
129
  placeholder={placeholder}
134
- value={inputValue}
135
130
  />
136
131
  <If condition={!hideIcon}>
137
132
  <div
@@ -166,9 +166,6 @@ const datePickerHelper = (config) => {
166
166
  picker.input.style.caretColor = 'transparent'
167
167
  picker.input.style.cursor = 'pointer'
168
168
  }
169
-
170
- // Fix event bubbling bug on wrapper
171
- document.querySelector(`#${pickerId}`).parentElement.addEventListener('click', (e) => e.stopPropagation())
172
169
  }
173
170
 
174
171
  export default datePickerHelper
@@ -1,6 +1,6 @@
1
1
  /* @flow */
2
2
 
3
- import React, { forwardRef } from 'react'
3
+ import React from 'react'
4
4
  import classnames from 'classnames'
5
5
  import { buildCss } from '../utilities/props'
6
6
  import { globalProps } from '../utilities/globalProps.js'
@@ -22,12 +22,11 @@ type FlexProps = {
22
22
  wrap?: boolean,
23
23
  }
24
24
 
25
- const Flex = (props: FlexProps, ref: React.ElementRef<"div">) => {
25
+ const Flex = (props: FlexProps) => {
26
26
  const {
27
27
  align = 'none',
28
28
  children,
29
29
  className,
30
- id,
31
30
  inline = false,
32
31
  horizontal = 'left',
33
32
  justify = 'none',
@@ -71,12 +70,10 @@ const Flex = (props: FlexProps, ref: React.ElementRef<"div">) => {
71
70
  globalProps(props),
72
71
  className
73
72
  )}
74
- id={id}
75
- ref={ref}
76
73
  >
77
74
  {children}
78
75
  </div>
79
76
  )
80
77
  }
81
78
 
82
- export default forwardRef(Flex)
79
+ export default Flex
@@ -1,6 +1,6 @@
1
1
  /* @flow */
2
2
 
3
- import React, { forwardRef, useEffect, useRef } from 'react'
3
+ import React, { useEffect, useRef } from 'react'
4
4
  import classnames from 'classnames'
5
5
  import useFocus from './useFocus.js'
6
6
  import Trix from 'trix'
@@ -22,7 +22,7 @@ type RichTextEditorProps = {
22
22
  value?: string,
23
23
  }
24
24
 
25
- const RichTextEditor = (props: RichTextEditorProps, ref: React.ElementRef<"input">) => {
25
+ const RichTextEditor = (props: RichTextEditorProps) => {
26
26
  const {
27
27
  aria = {},
28
28
  className,
@@ -120,7 +120,6 @@ const RichTextEditor = (props: RichTextEditorProps, ref: React.ElementRef<"input
120
120
  <input
121
121
  id={id}
122
122
  name={name}
123
- ref={ref}
124
123
  type="hidden"
125
124
  value={value}
126
125
  />
@@ -134,4 +133,4 @@ const RichTextEditor = (props: RichTextEditorProps, ref: React.ElementRef<"input
134
133
  )
135
134
  }
136
135
 
137
- export default forwardRef(RichTextEditor)
136
+ export default RichTextEditor
@@ -19,7 +19,6 @@ type TextInputProps = {
19
19
  id?: string,
20
20
  name: string,
21
21
  label: string,
22
- onBlur: (String) => void,
23
22
  onChange: (String) => void,
24
23
  placeholder: string,
25
24
  required?: boolean,
@@ -42,7 +41,6 @@ const TextInput = (
42
41
  id,
43
42
  name,
44
43
  label,
45
- onBlur = () => {},
46
44
  onChange = () => {},
47
45
  placeholder,
48
46
  required,
@@ -81,7 +79,6 @@ const TextInput = (
81
79
  disabled={disabled}
82
80
  id={id}
83
81
  name={name}
84
- onBlur={onBlur}
85
82
  onChange={onChange}
86
83
  placeholder={placeholder}
87
84
  ref={ref}
@@ -24,7 +24,6 @@ type TextareaProps = {
24
24
  required?: boolean,
25
25
  rows?: number,
26
26
  resize: 'none' | 'both' | 'horizontal' | 'vertical' | 'auto',
27
- onBlur?: InputCallback<HTMLTextAreaElement>,
28
27
  onChange?: InputCallback<HTMLTextAreaElement>,
29
28
  }
30
29
 
@@ -38,7 +37,6 @@ const Textarea = ({
38
37
  label,
39
38
  maxCharacters,
40
39
  name,
41
- onBlur = () => {},
42
40
  onChange = () => {},
43
41
  placeholder,
44
42
  required,
@@ -77,7 +75,6 @@ const Textarea = ({
77
75
  className="pb_textarea_kit"
78
76
  disabled={disabled}
79
77
  name={name}
80
- onBlur={onBlur}
81
78
  onChange={onChange}
82
79
  placeholder={placeholder}
83
80
  ref={ref}
@@ -3,14 +3,12 @@
3
3
  import React from 'react'
4
4
  import Select from 'react-select'
5
5
  import AsyncSelect from 'react-select/async'
6
- import CreateableSelect from 'react-select/creatable'
7
6
  import { get } from 'lodash'
8
7
  import { globalProps } from '../utilities/globalProps.js'
9
8
 
10
9
  import Control from './components/Control'
11
10
  import ClearIndicator from './components/ClearIndicator'
12
11
  import IndicatorsContainer from './components/IndicatorsContainer'
13
- import Input from './components/Input'
14
12
  import MenuList from './components/MenuList'
15
13
  import MultiValue from './components/MultiValue'
16
14
  import Option from './components/Option'
@@ -28,7 +26,6 @@ import { noop } from '../utilities/props'
28
26
 
29
27
  type Props = {
30
28
  async?: boolean,
31
- createable?: boolean,
32
29
  dark?: boolean,
33
30
  label?: string,
34
31
  loadOptions?: noop | string,
@@ -44,14 +41,12 @@ type Props = {
44
41
 
45
42
  const Typeahead = (props: Props) => {
46
43
  const selectProps = {
47
- badges: false,
48
44
  cacheOptions: true,
49
45
  components: {
50
46
  Control,
51
47
  ClearIndicator,
52
48
  IndicatorsContainer,
53
49
  IndicatorSeparator: null,
54
- Input,
55
50
  MenuList,
56
51
  MultiValue,
57
52
  Option,
@@ -63,8 +58,6 @@ const Typeahead = (props: Props) => {
63
58
  isClearable: true,
64
59
  isSearchable: true,
65
60
  name,
66
- onCreate: () => {},
67
- plusIcon: false,
68
61
  ...props,
69
62
  }
70
63
 
@@ -72,8 +65,7 @@ const Typeahead = (props: Props) => {
72
65
  if (typeof(props.getOptionLabel) === 'string') selectProps.getOptionLabel = get(window, props.getOptionLabel)
73
66
  if (typeof(props.getOptionValue) === 'string') selectProps.getOptionValue = get(window, props.getOptionValue)
74
67
 
75
- let Tag = props.async ? AsyncSelect : Select
76
- if (props.createable) Tag = CreateableSelect
68
+ const Tag = props.async ? AsyncSelect : Select
77
69
 
78
70
  const handleOnChange = (data, { action, option, removedValue }) => {
79
71
  if (action === 'select-option') {
@@ -148,17 +148,4 @@
148
148
  box-sizing: border-box;
149
149
  }
150
150
  }
151
- .placeholder+.input-wrapper .typeahead-plus-icon {
152
- display: none;
153
- }
154
- .typeahead-kit-select__control--is-focused .typeahead-plus-icon {
155
- display: none;
156
- }
157
- .typeahead-plus-icon {
158
- color: $text_lt_lighter;
159
- }
160
- [class^=pb_badge_kit] span {
161
- line-height: 16.5px;
162
- letter-spacing: normal;
163
- }
164
151
  }
@@ -3,7 +3,7 @@
3
3
  import React from 'react'
4
4
  import { components } from 'react-select'
5
5
 
6
- import { Badge, FormPill } from '../../'
6
+ import { FormPill } from '../../'
7
7
 
8
8
  type Props = {
9
9
  data: object,
@@ -15,7 +15,6 @@ type Props = {
15
15
  const MultiValue = (props: Props) => {
16
16
  const { removeProps } = props
17
17
  const { imageUrl, label } = props.data
18
- const { badges } = props.selectProps
19
18
 
20
19
  const formPillProps = {
21
20
  marginRight: 'xs',
@@ -29,28 +28,19 @@ const MultiValue = (props: Props) => {
29
28
  className="text_input_multivalue_container"
30
29
  {...props}
31
30
  >
32
- <If condition={badges}>
33
- <Badge
31
+ <If condition={imageUrl}>
32
+ <FormPill
33
+ avatarUrl={imageUrl}
34
34
  closeProps={removeProps}
35
- removeIcon
36
- text={label}
37
- variant="primary"
35
+ marginRight="xs"
36
+ name={label}
38
37
  />
39
38
  <Else />
40
- <If condition={imageUrl}>
41
- <FormPill
42
- avatarUrl={imageUrl}
43
- closeProps={removeProps}
44
- marginRight="xs"
45
- name={label}
46
- />
47
- <Else />
48
- <FormPill
49
- closeProps={removeProps}
50
- marginRight="xs"
51
- text={label}
52
- />
53
- </If>
39
+ <FormPill
40
+ closeProps={removeProps}
41
+ marginRight="xs"
42
+ text={label}
43
+ />
54
44
  </If>
55
45
  </components.MultiValueContainer>
56
46
  )
@@ -1,26 +1,13 @@
1
1
  /* @flow */
2
2
 
3
3
  import React from 'react'
4
- import { Flex, Icon } from '../../'
5
4
  import { components } from 'react-select'
6
5
 
7
6
  const Placeholder = (props: any) => (
8
- <>
9
- <Flex
10
- align="center"
11
- className="placeholder"
12
- >
13
- <components.IndicatorsContainer
14
- {...props}
15
- />
16
- <If condition={props.selectProps.plusIcon}>
17
- <Icon
18
- className="typeahead-plus-icon"
19
- icon="plus"
20
- />
21
- </If>
22
- </Flex>
23
- </>
7
+ <components.IndicatorsContainer
8
+ className="placeholder"
9
+ {...props}
10
+ />
24
11
  )
25
12
 
26
13
  export default Placeholder
@@ -13,7 +13,6 @@ const options = [
13
13
  const TypeaheadDefault = (props) => {
14
14
  return (
15
15
  <Typeahead
16
- // badges
17
16
  label="Colors"
18
17
  options={options}
19
18
  {...props}
@@ -3,7 +3,7 @@
3
3
  import React from 'react'
4
4
  import { Typeahead } from '../..'
5
5
 
6
- const initOptions = [
6
+ const options = [
7
7
  { label: 'Windows', value: '#FFA500' },
8
8
  { label: 'Siding', value: '#FF0000' },
9
9
  { label: 'Doors', value: '#00FF00' },
@@ -11,18 +11,13 @@ const initOptions = [
11
11
  ]
12
12
 
13
13
  const TypeaheadWithPills = (props) => {
14
- // const [values, setValues] = useState([])
15
14
  return (
16
15
  <>
17
16
  <Typeahead
18
- badges
19
- createable
20
17
  isMulti
21
18
  label="Colors"
22
- // onChange={(value) => console.log(value)}
23
- options={initOptions}
24
- placeholder="Placeholder"
25
- plusIcon
19
+ options={options}
20
+ placeholder=""
26
21
  {...props}
27
22
  />
28
23
  </>
@@ -7,8 +7,8 @@ examples:
7
7
  - typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
8
8
 
9
9
  react:
10
- # - typeahead_default: Default
10
+ - typeahead_default: Default
11
11
  - typeahead_with_pills: With Pills
12
- # - typeahead_with_pills_async: With Pills (Async Data)
13
- # - typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
14
- # - typeahead_with_pills_async_custom_options: With Pills (Async Data w/ Custom Options)
12
+ - typeahead_with_pills_async: With Pills (Async Data)
13
+ - typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
14
+ - typeahead_with_pills_async_custom_options: With Pills (Async Data w/ Custom Options)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "8.2.1.pre.alpha5"
4
+ VERSION = "8.2.1"
5
5
  end
6
6
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.2.1.pre.alpha5
4
+ version: 8.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
8
8
  - Power Devs
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-04-01 00:00:00.000000000 Z
12
+ date: 2021-03-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -1961,7 +1961,6 @@ files:
1961
1961
  - app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx
1962
1962
  - app/pb_kits/playbook/pb_typeahead/components/Control.jsx
1963
1963
  - app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx
1964
- - app/pb_kits/playbook/pb_typeahead/components/Input.jsx
1965
1964
  - app/pb_kits/playbook/pb_typeahead/components/MenuList.jsx
1966
1965
  - app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx
1967
1966
  - app/pb_kits/playbook/pb_typeahead/components/Option.jsx
@@ -2104,7 +2103,7 @@ homepage: http://playbook.powerapp.cloud
2104
2103
  licenses:
2105
2104
  - MIT
2106
2105
  metadata: {}
2107
- post_install_message:
2106
+ post_install_message:
2108
2107
  rdoc_options: []
2109
2108
  require_paths:
2110
2109
  - lib
@@ -2115,12 +2114,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
2115
2114
  version: '0'
2116
2115
  required_rubygems_version: !ruby/object:Gem::Requirement
2117
2116
  requirements:
2118
- - - ">"
2117
+ - - ">="
2119
2118
  - !ruby/object:Gem::Version
2120
- version: 1.3.1
2119
+ version: '0'
2121
2120
  requirements: []
2122
2121
  rubygems_version: 3.1.4
2123
- signing_key:
2122
+ signing_key:
2124
2123
  specification_version: 4
2125
2124
  summary: Playbook Design System
2126
2125
  test_files: []
@@ -1,27 +0,0 @@
1
- /* @flow */
2
-
3
- import React from 'react'
4
- import { components } from 'react-select'
5
- import { Flex, Icon } from '../../'
6
-
7
- const Input = (props: any) => (
8
- <>
9
- <Flex
10
- align="center"
11
- className="input-wrapper"
12
- >
13
- <If condition={props.selectProps.plusIcon}>
14
- <Icon
15
- className="typeahead-plus-icon"
16
- icon="plus"
17
- />
18
- </If>
19
- <components.Input
20
- className="input"
21
- {...props}
22
- />
23
- </Flex>
24
- </>
25
- )
26
-
27
- export default Input