playbook_ui 12.1.0 → 12.3.0.pre.alpha.patchtest1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +3 -0
- data/app/pb_kits/playbook/data/menu.yml +1 -0
- data/app/pb_kits/playbook/index.js +3 -2
- data/app/pb_kits/playbook/pb_bar_graph/_bar_graph.tsx +10 -10
- data/app/pb_kits/playbook/pb_button/_button.scss +0 -5
- data/app/pb_kits/playbook/pb_button/_button.tsx +4 -0
- data/app/pb_kits/playbook/pb_button/_button_mixins.scss +39 -4
- data/app/pb_kits/playbook/pb_button/button.rb +2 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_accessibility.jsx +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_block_content.jsx +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_default.jsx +4 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_form.jsx +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_full_width.jsx +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_icon_options.html.erb +2 -2
- data/app/pb_kits/playbook/pb_button/docs/_button_icon_options.jsx +4 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_link.html.erb +3 -3
- data/app/pb_kits/playbook/pb_button/docs/_button_link.jsx +6 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.html.erb +3 -3
- data/app/pb_kits/playbook/pb_button/docs/_button_loading.jsx +6 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_options.jsx +1 -0
- data/app/pb_kits/playbook/pb_button/docs/_button_size.html.erb +3 -3
- data/app/pb_kits/playbook/pb_button/docs/_button_size.jsx +6 -0
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +26 -19
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +24 -0
- data/app/pb_kits/playbook/pb_dashboard/pbChartsDarkTheme.ts +2 -0
- data/app/pb_kits/playbook/pb_form_group/_form_group.scss +10 -2
- data/app/pb_kits/playbook/pb_map/_map.scss +8 -0
- data/app/pb_kits/playbook/pb_map/_map.tsx +40 -0
- data/app/pb_kits/playbook/pb_map/docs/_map_default.jsx +52 -0
- data/app/pb_kits/playbook/pb_map/docs/_map_default.md +13 -0
- data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx +64 -0
- data/app/pb_kits/playbook/pb_map/docs/_map_with_plugin.md +8 -0
- data/app/pb_kits/playbook/pb_map/docs/example.yml +7 -0
- data/app/pb_kits/playbook/pb_map/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_map/map.test.jsx +17 -0
- data/app/pb_kits/playbook/pb_progress_simple/{_progress_simple.jsx → _progress_simple.tsx} +7 -5
- data/app/pb_kits/playbook/pb_progress_simple/progress_simple.test.js +120 -0
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +4 -9
- data/app/pb_kits/playbook/pb_stat_change/_stat_change.tsx +66 -0
- data/app/pb_kits/playbook/pb_stat_change/stat_change.test.js +41 -0
- data/app/pb_kits/playbook/pb_stat_value/{_stat_value.jsx → _stat_value.tsx} +4 -6
- data/app/pb_kits/playbook/pb_stat_value/docs/_stat_value_unit.jsx +1 -1
- data/app/pb_kits/playbook/pb_stat_value/stat_value.test.js +27 -0
- data/app/pb_kits/playbook/pb_time_stacked/{_time_stacked.jsx → _time_stacked.tsx} +3 -5
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_time_stacked/docs/index.js +1 -1
- data/app/pb_kits/playbook/pb_timestamp/{_timestamp.jsx → _timestamp.tsx} +5 -7
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +1 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +1 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +1 -1
- data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +1 -1
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +36 -28
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default_react.jsx +1 -0
- data/app/pb_kits/playbook/pb_tooltip/tooltip.test.jsx +14 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +11 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +0 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx +95 -0
- data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx +1 -1
- data/app/pb_kits/playbook/pb_typeahead/components/Control.jsx +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.html.erb +19 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.jsx +39 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.md +1 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +3 -0
- data/app/pb_kits/playbook/playbook-doc.js +2 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +6 -2
- data/app/pb_kits/playbook/utilities/_focus.scss +12 -0
- data/lib/playbook/version.rb +2 -2
- metadata +26 -9
- data/app/pb_kits/playbook/pb_stat_change/_stat_change.jsx +0 -63
@@ -17,6 +17,7 @@ import Flex from "../pb_flex/_flex"
|
|
17
17
|
|
18
18
|
type TooltipProps = {
|
19
19
|
aria?: { [key: string]: string },
|
20
|
+
className?: string | string[],
|
20
21
|
data?: { [key: string]: string },
|
21
22
|
text: string,
|
22
23
|
icon?: string,
|
@@ -26,9 +27,10 @@ type TooltipProps = {
|
|
26
27
|
zIndex?: Pick<GlobalProps, "ZIndex">,
|
27
28
|
} & GlobalProps
|
28
29
|
|
29
|
-
const Tooltip = (props: TooltipProps) => {
|
30
|
+
const Tooltip = (props: TooltipProps): React.ReactElement => {
|
30
31
|
const {
|
31
32
|
aria = {},
|
33
|
+
className,
|
32
34
|
children,
|
33
35
|
data = {},
|
34
36
|
icon = null,
|
@@ -42,7 +44,10 @@ const Tooltip = (props: TooltipProps) => {
|
|
42
44
|
const dataProps: { [key: string]: any } = buildDataProps(data)
|
43
45
|
const ariaProps: { [key: string]: any } = buildAriaProps(aria)
|
44
46
|
|
45
|
-
const css = classnames(
|
47
|
+
const css = classnames(
|
48
|
+
globalProps({...rest}),
|
49
|
+
className
|
50
|
+
)
|
46
51
|
const [open, setOpen] = useState(false)
|
47
52
|
const arrowRef = useRef(null)
|
48
53
|
const {
|
@@ -92,44 +97,47 @@ const Tooltip = (props: TooltipProps) => {
|
|
92
97
|
return (
|
93
98
|
<>
|
94
99
|
<div
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
100
|
+
className={`pb_tooltip_kit ${css}`}
|
101
|
+
ref={reference}
|
102
|
+
role="tooltip_trigger"
|
103
|
+
style={{ display: "inline-flex" }}
|
104
|
+
{...ariaProps}
|
105
|
+
{...dataProps}
|
101
106
|
>
|
102
107
|
{children}
|
103
108
|
</div>
|
104
109
|
{open && (
|
105
110
|
<div
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
111
|
+
{...getFloatingProps({
|
112
|
+
role: "tooltip",
|
113
|
+
ref: floating,
|
114
|
+
className: `tooltip_tooltip ${placement} visible`,
|
115
|
+
style: {
|
116
|
+
position: strategy,
|
117
|
+
top: y ?? 0,
|
118
|
+
left: x ?? 0,
|
119
|
+
zIndex: zIndex ?? 0,
|
120
|
+
},
|
121
|
+
})}
|
117
122
|
>
|
118
|
-
<Flex
|
123
|
+
<Flex
|
124
|
+
align="center"
|
125
|
+
gap="xs"
|
126
|
+
>
|
119
127
|
{icon && (
|
120
128
|
<i className={`pb_icon_kit far fa-${icon} fa-fw`} />
|
121
129
|
)}
|
122
130
|
{text}
|
123
131
|
</Flex>
|
124
132
|
<div
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
+
className="arrow_bg"
|
134
|
+
ref={arrowRef}
|
135
|
+
style={{
|
136
|
+
position: strategy,
|
137
|
+
left: arrowX != null ? `${arrowX}px` : "",
|
138
|
+
top: arrowY != null ? `${arrowY}px` : "",
|
139
|
+
[staticSide]: "-5px",
|
140
|
+
}}
|
133
141
|
/>
|
134
142
|
</div>
|
135
143
|
)}
|
@@ -51,3 +51,17 @@ test("closes on mouseleave", async () => {
|
|
51
51
|
cleanup();
|
52
52
|
})
|
53
53
|
});
|
54
|
+
|
55
|
+
test("closes on mouseleave", async () => {
|
56
|
+
render(
|
57
|
+
<Tooltip
|
58
|
+
className={"Hello World"}
|
59
|
+
data={{ testid: "className-test" }}
|
60
|
+
/>
|
61
|
+
);
|
62
|
+
|
63
|
+
const kit = screen.getByTestId("className-test");
|
64
|
+
expect(kit).toHaveClass("Hello World");
|
65
|
+
|
66
|
+
cleanup();
|
67
|
+
});
|
@@ -18,7 +18,7 @@ import Option from './components/Option'
|
|
18
18
|
import Placeholder from './components/Placeholder'
|
19
19
|
import ValueContainer from './components/ValueContainer'
|
20
20
|
|
21
|
-
import { noop } from '../utilities/props'
|
21
|
+
import { noop, buildDataProps } from '../utilities/props'
|
22
22
|
|
23
23
|
/**
|
24
24
|
* @typedef {object} Props
|
@@ -32,6 +32,8 @@ type TypeaheadProps = {
|
|
32
32
|
components?: object,
|
33
33
|
createable?: boolean,
|
34
34
|
dark?: boolean,
|
35
|
+
data?: object,
|
36
|
+
error?: string,
|
35
37
|
id?: string,
|
36
38
|
label?: string,
|
37
39
|
loadOptions?: string,
|
@@ -49,6 +51,8 @@ const Typeahead = ({
|
|
49
51
|
async,
|
50
52
|
components = {},
|
51
53
|
createable,
|
54
|
+
error = "",
|
55
|
+
data = {},
|
52
56
|
getOptionLabel,
|
53
57
|
getOptionValue,
|
54
58
|
id,
|
@@ -106,13 +110,18 @@ const Typeahead = ({
|
|
106
110
|
}
|
107
111
|
}
|
108
112
|
|
113
|
+
const dataProps = buildDataProps(data)
|
114
|
+
|
109
115
|
const classes = `pb_typeahead_kit react-select ${globalProps(props)}`
|
110
116
|
const inlineClass = selectProps.inline ? 'inline' : null
|
111
117
|
|
112
118
|
return (
|
113
|
-
<div
|
119
|
+
<div {...dataProps}
|
120
|
+
className={classnames(classes, inlineClass)}
|
121
|
+
>
|
114
122
|
<Tag
|
115
123
|
classNamePrefix="typeahead-kit-select"
|
124
|
+
error={error}
|
116
125
|
onChange={handleOnChange}
|
117
126
|
{...selectProps}
|
118
127
|
/>
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { render, screen } from '../utilities/test-utils'
|
3
|
+
import Typeahead from './_typeahead'
|
4
|
+
|
5
|
+
const options = [
|
6
|
+
{ label: 'Orange', value: '#FFA500' },
|
7
|
+
{ label: 'Red', value: '#FF0000' },
|
8
|
+
{ label: 'Green', value: '#00FF00' },
|
9
|
+
{ label: 'Blue', value: '#0000FF' },
|
10
|
+
]
|
11
|
+
|
12
|
+
test('typeahead classname + label renders as expected', () => {
|
13
|
+
render(
|
14
|
+
<Typeahead
|
15
|
+
data={{ testid: 'typeahead-test' }}
|
16
|
+
defaultValue={[options[0]]}
|
17
|
+
label="Colors"
|
18
|
+
options={options}
|
19
|
+
/>
|
20
|
+
)
|
21
|
+
|
22
|
+
const kit = screen.getByTestId('typeahead-test')
|
23
|
+
const label = kit.querySelector(".pb_caption_kit_md.pb_text_input_kit_label")
|
24
|
+
expect(kit).toHaveClass("pb_typeahead_kit")
|
25
|
+
expect(label).toHaveTextContent("Colors")
|
26
|
+
})
|
27
|
+
|
28
|
+
test('to be error variant', () => {
|
29
|
+
render(
|
30
|
+
<Typeahead
|
31
|
+
data={{ testid: 'error-test' }}
|
32
|
+
error='Please make a valid selection'
|
33
|
+
options={options}
|
34
|
+
/>
|
35
|
+
)
|
36
|
+
|
37
|
+
const kit = screen.getByTestId("error-test")
|
38
|
+
const error = kit.querySelector(".pb_body_kit_negative")
|
39
|
+
expect(error).toBeInTheDocument()
|
40
|
+
})
|
41
|
+
|
42
|
+
test('should be inline variant', () => {
|
43
|
+
render(
|
44
|
+
<Typeahead
|
45
|
+
data={{ testid: 'inline-test' }}
|
46
|
+
inline
|
47
|
+
options={options}
|
48
|
+
/>
|
49
|
+
)
|
50
|
+
|
51
|
+
const kit = screen.getByTestId('inline-test')
|
52
|
+
expect(kit).toHaveClass("inline")
|
53
|
+
})
|
54
|
+
|
55
|
+
test('typeahead with pills', () => {
|
56
|
+
render(
|
57
|
+
<Typeahead
|
58
|
+
data={{ testid: 'pills-test' }}
|
59
|
+
defaultValue={[options[0]]}
|
60
|
+
isMulti
|
61
|
+
options={options}
|
62
|
+
/>
|
63
|
+
)
|
64
|
+
|
65
|
+
const kit = screen.getByTestId('pills-test')
|
66
|
+
const pill = kit.querySelector(".pb_form_pill_kit_primary")
|
67
|
+
expect(pill).toBeInTheDocument()
|
68
|
+
})
|
69
|
+
|
70
|
+
test('typeahead multi select with badges and small pills', () => {
|
71
|
+
render(
|
72
|
+
<>
|
73
|
+
<Typeahead
|
74
|
+
data={{ testid: 'badge-test' }}
|
75
|
+
defaultValue={[options[0]]}
|
76
|
+
isMulti
|
77
|
+
multiKit="badge"
|
78
|
+
options={options}
|
79
|
+
/>
|
80
|
+
|
81
|
+
<Typeahead
|
82
|
+
data={{ testid: 'small-pill-test' }}
|
83
|
+
defaultValue={[options[0]]}
|
84
|
+
isMulti
|
85
|
+
multiKit="smallPill"
|
86
|
+
options={options}
|
87
|
+
/>
|
88
|
+
</>
|
89
|
+
)
|
90
|
+
|
91
|
+
const kit = screen.getByTestId('small-pill-test')
|
92
|
+
const badge = kit.querySelector(".pb_form_pill_kit_primary.mr_xs.small")
|
93
|
+
expect(badge).toBeInTheDocument()
|
94
|
+
})
|
95
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%
|
2
|
+
options = [
|
3
|
+
{ label: 'Windows', value: '#FFA500' },
|
4
|
+
{ label: 'Siding', value: '#FF0000' },
|
5
|
+
{ label: 'Doors', value: '#00FF00' },
|
6
|
+
{ label: 'Roofs', value: '#0000FF' },
|
7
|
+
]
|
8
|
+
|
9
|
+
%>
|
10
|
+
|
11
|
+
<%= pb_rails("typeahead", props: { id: "typeahead-error-example", options: options, error: "Please make a valid selection", label: "Products", name: :foo, is_multi: false }) %>
|
12
|
+
|
13
|
+
<!-- This section is an example of the available JavaScript event hooks -->
|
14
|
+
<%= javascript_tag defer: "defer" do %>
|
15
|
+
document.addEventListener("pb-typeahead-kit-typeahead-error-example-result-option-select", function(event) {
|
16
|
+
console.log('Option selected')
|
17
|
+
console.dir(event.detail)
|
18
|
+
})
|
19
|
+
<% end %>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// @flow
|
2
|
+
|
3
|
+
import React, { useState, useEffect } from 'react'
|
4
|
+
|
5
|
+
import Typeahead from '../_typeahead'
|
6
|
+
|
7
|
+
const options = [
|
8
|
+
{ label: 'Orange', value: '#FFA500' },
|
9
|
+
{ label: 'Red', value: '#FF0000' },
|
10
|
+
{ label: 'Green', value: '#00FF00' },
|
11
|
+
{ label: 'Blue', value: '#0000FF' },
|
12
|
+
]
|
13
|
+
|
14
|
+
const TypeaheadErrorState = (props) => {
|
15
|
+
const [errorState, setErrorState] = useState("Please make a valid selection");
|
16
|
+
const [searchValue, setSearchValue] = useState(null);
|
17
|
+
|
18
|
+
const handleOnChange = (value) => setSearchValue(value)
|
19
|
+
|
20
|
+
useEffect(() => {
|
21
|
+
if(searchValue) {
|
22
|
+
setErrorState("")
|
23
|
+
} else {
|
24
|
+
setErrorState("Please make a valid selection")
|
25
|
+
}
|
26
|
+
}, [searchValue])
|
27
|
+
|
28
|
+
return (
|
29
|
+
<Typeahead
|
30
|
+
error={errorState}
|
31
|
+
label="Colors"
|
32
|
+
onChange={handleOnChange}
|
33
|
+
options={options}
|
34
|
+
{...props}
|
35
|
+
/>
|
36
|
+
)
|
37
|
+
}
|
38
|
+
|
39
|
+
export default TypeaheadErrorState
|
@@ -0,0 +1 @@
|
|
1
|
+
Typeahead w/ Error shows that an option must be selected or the selected option is invalid (i.e., when used in a form it signals a user to fix an error).
|
@@ -8,6 +8,7 @@ examples:
|
|
8
8
|
- typeahead_with_pills_async_users: With Pills (Async Data w/ Users)
|
9
9
|
- typeahead_inline: Inline
|
10
10
|
- typeahead_multi_kit: Multi Kit Options
|
11
|
+
- typeahead_error_state: Error State
|
11
12
|
|
12
13
|
react:
|
13
14
|
- typeahead_default: Default
|
@@ -20,3 +21,4 @@ examples:
|
|
20
21
|
- typeahead_multi_kit: Multi Kit Options
|
21
22
|
- typeahead_createable: Createable
|
22
23
|
- typeahead_async_createable: Createable (+ Async Data)
|
24
|
+
- typeahead_error_state: Error State
|
@@ -8,3 +8,4 @@ export { default as TypeaheadInline } from './_typeahead_inline.jsx'
|
|
8
8
|
export { default as TypeaheadMultiKit } from './_typeahead_multi_kit.jsx'
|
9
9
|
export { default as TypeaheadCreateable } from './_typeahead_createable.jsx'
|
10
10
|
export { default as TypeaheadAsyncCreateable } from './_typeahead_async_createable.jsx'
|
11
|
+
export { default as TypeaheadErrorState } from './_typeahead_error_state.jsx'
|
@@ -5,6 +5,8 @@ module Playbook
|
|
5
5
|
class Typeahead < Playbook::KitBase
|
6
6
|
prop :async, type: Playbook::Props::Boolean, default: false
|
7
7
|
prop :default_options, type: Playbook::Props::HashArray, default: []
|
8
|
+
prop :error, type: Playbook::Props::String,
|
9
|
+
default: ""
|
8
10
|
prop :get_option_label
|
9
11
|
prop :get_option_value
|
10
12
|
prop :id
|
@@ -57,6 +59,7 @@ module Playbook
|
|
57
59
|
base_options = {
|
58
60
|
dark: dark,
|
59
61
|
defaultValue: default_options,
|
62
|
+
error: error,
|
60
63
|
id: id,
|
61
64
|
inline: inline,
|
62
65
|
isMulti: is_multi,
|
@@ -55,6 +55,7 @@ import * as Lightbox from 'pb_lightbox/docs'
|
|
55
55
|
import * as LineGraphDocs from 'pb_line_graph/docs'
|
56
56
|
import * as List from 'pb_list/docs'
|
57
57
|
import * as LoadingInline from 'pb_loading_inline/docs'
|
58
|
+
import * as Map from 'pb_map/docs'
|
58
59
|
import * as Message from 'pb_message/docs'
|
59
60
|
import * as MultipleUsers from 'pb_multiple_users/docs'
|
60
61
|
import * as MultipleUsersStacked from 'pb_multiple_users_stacked/docs'
|
@@ -152,6 +153,7 @@ WebpackerReact.setup({
|
|
152
153
|
...LineGraphDocs,
|
153
154
|
...List,
|
154
155
|
...LoadingInline,
|
156
|
+
...Map,
|
155
157
|
...Message,
|
156
158
|
...MultipleUsers,
|
157
159
|
...MultipleUsersStacked,
|
@@ -59,9 +59,11 @@ $main_colors: (
|
|
59
59
|
Background colors ------------------*/
|
60
60
|
$bg_light: $silver !default;
|
61
61
|
$bg_dark: #0a0527 !default;
|
62
|
+
$bg_dark_card: #231E3D;
|
62
63
|
$background_colors: (
|
63
64
|
bg_light: $bg_light,
|
64
|
-
bg_dark: $bg_dark
|
65
|
+
bg_dark: $bg_dark,
|
66
|
+
bg_dark_card: $bg_dark_card
|
65
67
|
);
|
66
68
|
|
67
69
|
/* Card colors ------------------*/
|
@@ -94,11 +96,13 @@ $hover_colors: (
|
|
94
96
|
);
|
95
97
|
|
96
98
|
/* Focus colors -----------------------*/
|
99
|
+
$focus_color: $primary;
|
97
100
|
$focus_input_light: rgba($active_light, $opacity_5);
|
98
101
|
$focus_input_dark: rgba(#144075, $opacity_5);
|
99
102
|
$focus_input_colors: (
|
100
103
|
focus_input_light: $focus_input_light,
|
101
|
-
focus_input_dark: $focus_input_dark
|
104
|
+
focus_input_dark: $focus_input_dark,
|
105
|
+
focus_color: $focus_color
|
102
106
|
);
|
103
107
|
|
104
108
|
/* Border colors ----------------------*/
|
@@ -0,0 +1,12 @@
|
|
1
|
+
@mixin focus {
|
2
|
+
&:focus-visible {
|
3
|
+
outline: none;
|
4
|
+
box-shadow: 0px 0px 0 2px white, 0px 0px 0 4px $primary_action;
|
5
|
+
}
|
6
|
+
}
|
7
|
+
@mixin focus-dark {
|
8
|
+
&:focus-visible {
|
9
|
+
outline: none;
|
10
|
+
box-shadow: 0px 0px 0 2px $bg_dark_card, 0px 0px 0 4px $primary_action;
|
11
|
+
}
|
12
|
+
}
|
data/lib/playbook/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: playbook_ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.3.0.pre.alpha.patchtest1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Power UX
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-02-
|
12
|
+
date: 2023-02-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionpack
|
@@ -1389,6 +1389,15 @@ files:
|
|
1389
1389
|
- app/pb_kits/playbook/pb_loading_inline/loading_inline.html.erb
|
1390
1390
|
- app/pb_kits/playbook/pb_loading_inline/loading_inline.rb
|
1391
1391
|
- app/pb_kits/playbook/pb_logistic/_logistic.jsx
|
1392
|
+
- app/pb_kits/playbook/pb_map/_map.scss
|
1393
|
+
- app/pb_kits/playbook/pb_map/_map.tsx
|
1394
|
+
- app/pb_kits/playbook/pb_map/docs/_map_default.jsx
|
1395
|
+
- app/pb_kits/playbook/pb_map/docs/_map_default.md
|
1396
|
+
- app/pb_kits/playbook/pb_map/docs/_map_with_plugin.jsx
|
1397
|
+
- app/pb_kits/playbook/pb_map/docs/_map_with_plugin.md
|
1398
|
+
- app/pb_kits/playbook/pb_map/docs/example.yml
|
1399
|
+
- app/pb_kits/playbook/pb_map/docs/index.js
|
1400
|
+
- app/pb_kits/playbook/pb_map/map.test.jsx
|
1392
1401
|
- app/pb_kits/playbook/pb_message/_message.jsx
|
1393
1402
|
- app/pb_kits/playbook/pb_message/_message.scss
|
1394
1403
|
- app/pb_kits/playbook/pb_message/_message_mixins.scss
|
@@ -1588,8 +1597,8 @@ files:
|
|
1588
1597
|
- app/pb_kits/playbook/pb_progress_pills/docs/index.js
|
1589
1598
|
- app/pb_kits/playbook/pb_progress_pills/progress_pills.html.erb
|
1590
1599
|
- app/pb_kits/playbook/pb_progress_pills/progress_pills.rb
|
1591
|
-
- app/pb_kits/playbook/pb_progress_simple/_progress_simple.jsx
|
1592
1600
|
- app/pb_kits/playbook/pb_progress_simple/_progress_simple.scss
|
1601
|
+
- app/pb_kits/playbook/pb_progress_simple/_progress_simple.tsx
|
1593
1602
|
- app/pb_kits/playbook/pb_progress_simple/docs/_description.md
|
1594
1603
|
- app/pb_kits/playbook/pb_progress_simple/docs/_footer.md
|
1595
1604
|
- app/pb_kits/playbook/pb_progress_simple/docs/_progress_simple_align.html.erb
|
@@ -1609,6 +1618,7 @@ files:
|
|
1609
1618
|
- app/pb_kits/playbook/pb_progress_simple/docs/index.js
|
1610
1619
|
- app/pb_kits/playbook/pb_progress_simple/progress_simple.html.erb
|
1611
1620
|
- app/pb_kits/playbook/pb_progress_simple/progress_simple.rb
|
1621
|
+
- app/pb_kits/playbook/pb_progress_simple/progress_simple.test.js
|
1612
1622
|
- app/pb_kits/playbook/pb_progress_step/_progress_step.jsx
|
1613
1623
|
- app/pb_kits/playbook/pb_progress_step/_progress_step.scss
|
1614
1624
|
- app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx
|
@@ -1812,8 +1822,8 @@ files:
|
|
1812
1822
|
- app/pb_kits/playbook/pb_star_rating/docs/index.js
|
1813
1823
|
- app/pb_kits/playbook/pb_star_rating/star_rating.html.erb
|
1814
1824
|
- app/pb_kits/playbook/pb_star_rating/star_rating.rb
|
1815
|
-
- app/pb_kits/playbook/pb_stat_change/_stat_change.jsx
|
1816
1825
|
- app/pb_kits/playbook/pb_stat_change/_stat_change.scss
|
1826
|
+
- app/pb_kits/playbook/pb_stat_change/_stat_change.tsx
|
1817
1827
|
- app/pb_kits/playbook/pb_stat_change/docs/_description.md
|
1818
1828
|
- app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.html.erb
|
1819
1829
|
- app/pb_kits/playbook/pb_stat_change/docs/_stat_change_default.jsx
|
@@ -1826,8 +1836,9 @@ files:
|
|
1826
1836
|
- app/pb_kits/playbook/pb_stat_change/docs/index.js
|
1827
1837
|
- app/pb_kits/playbook/pb_stat_change/stat_change.html.erb
|
1828
1838
|
- app/pb_kits/playbook/pb_stat_change/stat_change.rb
|
1829
|
-
- app/pb_kits/playbook/
|
1839
|
+
- app/pb_kits/playbook/pb_stat_change/stat_change.test.js
|
1830
1840
|
- app/pb_kits/playbook/pb_stat_value/_stat_value.scss
|
1841
|
+
- app/pb_kits/playbook/pb_stat_value/_stat_value.tsx
|
1831
1842
|
- app/pb_kits/playbook/pb_stat_value/docs/_description.md
|
1832
1843
|
- app/pb_kits/playbook/pb_stat_value/docs/_footer.md
|
1833
1844
|
- app/pb_kits/playbook/pb_stat_value/docs/_stat_value_default.html.erb
|
@@ -1841,6 +1852,7 @@ files:
|
|
1841
1852
|
- app/pb_kits/playbook/pb_stat_value/docs/index.js
|
1842
1853
|
- app/pb_kits/playbook/pb_stat_value/stat_value.html.erb
|
1843
1854
|
- app/pb_kits/playbook/pb_stat_value/stat_value.rb
|
1855
|
+
- app/pb_kits/playbook/pb_stat_value/stat_value.test.js
|
1844
1856
|
- app/pb_kits/playbook/pb_table/_table.jsx
|
1845
1857
|
- app/pb_kits/playbook/pb_table/_table.scss
|
1846
1858
|
- app/pb_kits/playbook/pb_table/_table_row.jsx
|
@@ -1998,8 +2010,8 @@ files:
|
|
1998
2010
|
- app/pb_kits/playbook/pb_time_range_inline/docs/index.js
|
1999
2011
|
- app/pb_kits/playbook/pb_time_range_inline/time_range_inline.html.erb
|
2000
2012
|
- app/pb_kits/playbook/pb_time_range_inline/time_range_inline.rb
|
2001
|
-
- app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx
|
2002
2013
|
- app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss
|
2014
|
+
- app/pb_kits/playbook/pb_time_stacked/_time_stacked.tsx
|
2003
2015
|
- app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.html.erb
|
2004
2016
|
- app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx
|
2005
2017
|
- app/pb_kits/playbook/pb_time_stacked/docs/example.yml
|
@@ -2025,8 +2037,8 @@ files:
|
|
2025
2037
|
- app/pb_kits/playbook/pb_timeline/timeline.html.erb
|
2026
2038
|
- app/pb_kits/playbook/pb_timeline/timeline.rb
|
2027
2039
|
- app/pb_kits/playbook/pb_timestamp/_timestamp-mixins.scss
|
2028
|
-
- app/pb_kits/playbook/pb_timestamp/_timestamp.jsx
|
2029
2040
|
- app/pb_kits/playbook/pb_timestamp/_timestamp.scss
|
2041
|
+
- app/pb_kits/playbook/pb_timestamp/_timestamp.tsx
|
2030
2042
|
- app/pb_kits/playbook/pb_timestamp/docs/_description.md
|
2031
2043
|
- app/pb_kits/playbook/pb_timestamp/docs/_footer.md
|
2032
2044
|
- app/pb_kits/playbook/pb_timestamp/docs/_time_stamp_default.md
|
@@ -2149,6 +2161,7 @@ files:
|
|
2149
2161
|
- app/pb_kits/playbook/pb_treemap_chart/treemap_chart.rb
|
2150
2162
|
- app/pb_kits/playbook/pb_typeahead/_typeahead.jsx
|
2151
2163
|
- app/pb_kits/playbook/pb_typeahead/_typeahead.scss
|
2164
|
+
- app/pb_kits/playbook/pb_typeahead/_typeahead.test.jsx
|
2152
2165
|
- app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx
|
2153
2166
|
- app/pb_kits/playbook/pb_typeahead/components/Control.jsx
|
2154
2167
|
- app/pb_kits/playbook/pb_typeahead/components/IndicatorsContainer.jsx
|
@@ -2163,6 +2176,9 @@ files:
|
|
2163
2176
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_createable.jsx
|
2164
2177
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb
|
2165
2178
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.jsx
|
2179
|
+
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.html.erb
|
2180
|
+
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.jsx
|
2181
|
+
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_error_state.md
|
2166
2182
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.html.erb
|
2167
2183
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.jsx
|
2168
2184
|
- app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb
|
@@ -2283,6 +2299,7 @@ files:
|
|
2283
2299
|
- app/pb_kits/playbook/utilities/_cursor.scss
|
2284
2300
|
- app/pb_kits/playbook/utilities/_display.scss
|
2285
2301
|
- app/pb_kits/playbook/utilities/_flexbox.scss
|
2302
|
+
- app/pb_kits/playbook/utilities/_focus.scss
|
2286
2303
|
- app/pb_kits/playbook/utilities/_line_height.scss
|
2287
2304
|
- app/pb_kits/playbook/utilities/_max_width.scss
|
2288
2305
|
- app/pb_kits/playbook/utilities/_mixins.scss
|
@@ -2389,9 +2406,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
2389
2406
|
version: '0'
|
2390
2407
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2391
2408
|
requirements:
|
2392
|
-
- - "
|
2409
|
+
- - ">"
|
2393
2410
|
- !ruby/object:Gem::Version
|
2394
|
-
version:
|
2411
|
+
version: 1.3.1
|
2395
2412
|
requirements: []
|
2396
2413
|
rubygems_version: 3.3.7
|
2397
2414
|
signing_key:
|