playbook_ui 12.5.0 → 12.6.0.pre.alpha.collapsible1
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 +2 -0
- data/app/pb_kits/playbook/data/menu.yml +2 -1
- data/app/pb_kits/playbook/index.js +1 -0
- data/app/pb_kits/playbook/pb_button/_button_mixins.scss +2 -2
- data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +1 -1
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +5 -1
- data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +10 -4
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +2 -2
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +7 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex.html.erb +10 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex.jsx +23 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex.md +1 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex_item.html.erb +23 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex_item.jsx +48 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex_item.md +1 -0
- data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +6 -1
- data/app/pb_kits/playbook/pb_collapsible/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +72 -0
- data/app/pb_kits/playbook/pb_filter/Filter/{FilterBackground.jsx → FilterBackground.tsx} +12 -14
- data/app/pb_kits/playbook/pb_filter/Filter/{FilterDouble.jsx → FilterDouble.tsx} +7 -8
- data/app/pb_kits/playbook/pb_filter/Filter/{FilterSingle.jsx → FilterSingle.tsx} +25 -25
- data/app/pb_kits/playbook/pb_filter/Filter/{FiltersPopover.jsx → FiltersPopover.tsx} +13 -11
- data/app/pb_kits/playbook/pb_filter/Filter/{ResultsCount.jsx → ResultsCount.tsx} +39 -14
- data/app/pb_kits/playbook/pb_filter/Filter/{SortMenu.jsx → SortMenu.tsx} +6 -6
- data/app/pb_kits/playbook/pb_filter/Filter/{index.jsx → index.tsx} +17 -10
- data/app/pb_kits/playbook/pb_filter/{_filter.jsx → _filter.tsx} +0 -2
- data/app/pb_kits/playbook/pb_list/_list.tsx +2 -2
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +86 -0
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +81 -0
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_select_helper.tsx +30 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +86 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.md +3 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +6 -0
- data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_multi_level_select/helper_functions.ts +60 -0
- data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.test.jsx +40 -0
- data/app/pb_kits/playbook/pb_person_contact/{_person_contact.jsx → _person_contact.tsx} +19 -22
- data/app/pb_kits/playbook/pb_person_contact/person_contact.test.js +112 -0
- data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +61 -47
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_initial_country.html.erb +3 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.html.erb +4 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.html.erb +4 -0
- data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +4 -1
- data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.html.erb +1 -15
- data/app/pb_kits/playbook/pb_popover/_popover.tsx +33 -32
- data/app/pb_kits/playbook/playbook-doc.js +2 -0
- data/app/pb_kits/playbook/tokens/_animation-curves.scss +30 -30
- data/app/pb_kits/playbook/tokens/_border_radius.scss +15 -16
- data/app/pb_kits/playbook/tokens/_colors.scss +3 -1
- data/app/pb_kits/playbook/tokens/_display.scss +6 -6
- data/app/pb_kits/playbook/tokens/_line_height.scss +7 -7
- data/app/pb_kits/playbook/tokens/_opacity.scss +10 -10
- data/app/pb_kits/playbook/tokens/_positioning.scss +11 -11
- data/app/pb_kits/playbook/tokens/_screen_sizes.scss +10 -10
- data/app/pb_kits/playbook/tokens/_shadows.scss +4 -4
- data/app/pb_kits/playbook/tokens/_spacing.scss +6 -6
- data/app/pb_kits/playbook/tokens/_transition.scss +3 -3
- data/app/pb_kits/playbook/tokens/_typography.scss +35 -46
- data/lib/playbook/version.rb +2 -2
- metadata +33 -14
- data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.jsx +0 -76
@@ -0,0 +1,112 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { render, screen } from '../utilities/test-utils'
|
3
|
+
import PersonContact from './_person_contact'
|
4
|
+
|
5
|
+
const testId = 'personContact'
|
6
|
+
const multipleTestId = 'personContactMultiple'
|
7
|
+
|
8
|
+
const PersonContactTest = (props) => {
|
9
|
+
return (
|
10
|
+
<>
|
11
|
+
<PersonContact
|
12
|
+
aria={{ label: testId }}
|
13
|
+
className={'custom-class'}
|
14
|
+
contacts={[
|
15
|
+
{
|
16
|
+
contactType: 'email',
|
17
|
+
contactValue: 'email@example.com',
|
18
|
+
},
|
19
|
+
{
|
20
|
+
contactValue: '5555555555',
|
21
|
+
contactDetail: 'Home',
|
22
|
+
},
|
23
|
+
{
|
24
|
+
contactType: 'work',
|
25
|
+
contactValue: '3245627482',
|
26
|
+
contactDetail: 'Work',
|
27
|
+
},
|
28
|
+
]}
|
29
|
+
data={{ testid: testId }}
|
30
|
+
firstName="Jose"
|
31
|
+
id={testId}
|
32
|
+
lastName="da Silva"
|
33
|
+
{...props}
|
34
|
+
/>
|
35
|
+
<PersonContact
|
36
|
+
contacts={[
|
37
|
+
{
|
38
|
+
contactValue: '5555555555',
|
39
|
+
contactType: 'wrong-phone',
|
40
|
+
},
|
41
|
+
]}
|
42
|
+
data={{ testid: multipleTestId }}
|
43
|
+
firstName="Brenda"
|
44
|
+
lastName="Walters"
|
45
|
+
{...props}
|
46
|
+
/>
|
47
|
+
</>
|
48
|
+
)
|
49
|
+
}
|
50
|
+
|
51
|
+
test('should render custom class and data', () => {
|
52
|
+
render(<PersonContactTest />)
|
53
|
+
|
54
|
+
const kit = screen.getByTestId(testId)
|
55
|
+
expect(kit).toHaveClass('custom-class')
|
56
|
+
})
|
57
|
+
|
58
|
+
test('should render id', () => {
|
59
|
+
render(<PersonContactTest />)
|
60
|
+
|
61
|
+
const kit = screen.getByTestId(testId)
|
62
|
+
expect(kit).toHaveProperty('id', testId)
|
63
|
+
})
|
64
|
+
|
65
|
+
test('should render aria-label', () => {
|
66
|
+
render(<PersonContactTest />)
|
67
|
+
|
68
|
+
const kit = screen.getByTestId(testId)
|
69
|
+
expect(kit).toHaveAttribute('aria-label', testId)
|
70
|
+
})
|
71
|
+
|
72
|
+
test('should render firstName', () => {
|
73
|
+
render(<PersonContactTest />)
|
74
|
+
|
75
|
+
const kit = screen.getByTestId(testId)
|
76
|
+
expect(kit).toHaveTextContent('Jose')
|
77
|
+
})
|
78
|
+
|
79
|
+
test('should render lastName', () => {
|
80
|
+
render(<PersonContactTest />)
|
81
|
+
|
82
|
+
const kit = screen.getByTestId(testId)
|
83
|
+
expect(kit).toHaveTextContent('da Silva')
|
84
|
+
})
|
85
|
+
|
86
|
+
test('should render contact value', () => {
|
87
|
+
render(<PersonContactTest />)
|
88
|
+
|
89
|
+
const kit = screen.getByTestId(testId)
|
90
|
+
expect(kit).toHaveTextContent('(555) 555-5555')
|
91
|
+
})
|
92
|
+
|
93
|
+
test('should render contact detail', () => {
|
94
|
+
render(<PersonContactTest />)
|
95
|
+
|
96
|
+
const kit = screen.getByTestId(testId)
|
97
|
+
expect(kit).toHaveTextContent('Home')
|
98
|
+
})
|
99
|
+
|
100
|
+
test('should render multiple contacts', () => {
|
101
|
+
render(<PersonContactTest />)
|
102
|
+
|
103
|
+
const kit = screen.getByTestId(multipleTestId)
|
104
|
+
expect(kit).toHaveTextContent('Brenda Walters')
|
105
|
+
})
|
106
|
+
|
107
|
+
test('should render wrong number', () => {
|
108
|
+
render(<PersonContactTest />)
|
109
|
+
|
110
|
+
const kit = screen.getByTestId(multipleTestId)
|
111
|
+
expect(kit).toHaveTextContent('wrong number')
|
112
|
+
})
|
@@ -1,32 +1,32 @@
|
|
1
1
|
/* @flow */
|
2
|
-
import React, { useEffect, useRef, useState } from
|
3
|
-
import classnames from
|
4
|
-
import { buildAriaProps, buildCss, buildDataProps } from
|
5
|
-
import { globalProps } from
|
6
|
-
import intlTelInput from
|
7
|
-
import
|
8
|
-
import TextInput from
|
2
|
+
import React, { useEffect, useRef, useState } from "react"
|
3
|
+
import classnames from "classnames"
|
4
|
+
import { buildAriaProps, buildCss, buildDataProps } from "../utilities/props"
|
5
|
+
import { globalProps } from "../utilities/globalProps"
|
6
|
+
import intlTelInput from "intl-tel-input"
|
7
|
+
import "intl-tel-input/build/css/intlTelInput.css"
|
8
|
+
import TextInput from "../pb_text_input/_text_input"
|
9
9
|
|
10
10
|
declare global {
|
11
11
|
interface Window {
|
12
|
-
intlTelInputGlobals: any
|
12
|
+
intlTelInputGlobals: any
|
13
13
|
}
|
14
14
|
}
|
15
15
|
|
16
16
|
type PhoneNumberInputProps = {
|
17
|
-
aria?: { [key: string]: string }
|
18
|
-
className?: string
|
19
|
-
data?: { [key: string]: string }
|
20
|
-
disabled?: boolean
|
21
|
-
id?: string
|
22
|
-
initialCountry?: string
|
23
|
-
isValid?: (valid: boolean) => void
|
24
|
-
label?: string
|
25
|
-
name?: string
|
26
|
-
onChange?: (e: React.FormEvent<HTMLInputElement>) => void
|
27
|
-
onlyCountries: string[]
|
28
|
-
preferredCountries?: string[]
|
29
|
-
value?: string
|
17
|
+
aria?: { [key: string]: string }
|
18
|
+
className?: string
|
19
|
+
data?: { [key: string]: string }
|
20
|
+
disabled?: boolean
|
21
|
+
id?: string
|
22
|
+
initialCountry?: string
|
23
|
+
isValid?: (valid: boolean) => void
|
24
|
+
label?: string
|
25
|
+
name?: string
|
26
|
+
onChange?: (e: React.FormEvent<HTMLInputElement>) => void
|
27
|
+
onlyCountries: string[]
|
28
|
+
preferredCountries?: string[]
|
29
|
+
value?: string
|
30
30
|
}
|
31
31
|
|
32
32
|
enum ValidationError {
|
@@ -35,17 +35,20 @@ enum ValidationError {
|
|
35
35
|
}
|
36
36
|
|
37
37
|
const formatToGlobalCountryName = (countryName: string) => {
|
38
|
-
return countryName.split(
|
38
|
+
return countryName.split("(")[0].trim()
|
39
39
|
}
|
40
40
|
|
41
41
|
const formatAllCountries = () => {
|
42
42
|
let countryData = window.intlTelInputGlobals.getCountryData()
|
43
|
+
|
43
44
|
for (let i = 0; i < countryData.length; i++) {
|
44
45
|
let country = countryData[i]
|
45
46
|
country.name = formatToGlobalCountryName(country.name)
|
46
47
|
}
|
47
48
|
}
|
48
49
|
|
50
|
+
formatAllCountries()
|
51
|
+
|
49
52
|
const containOnlyNumbers = (value: string) => {
|
50
53
|
return /^(\++)*(\d+)$/.test(value)
|
51
54
|
}
|
@@ -56,25 +59,33 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
|
|
56
59
|
className,
|
57
60
|
data = {},
|
58
61
|
disabled = false,
|
59
|
-
id =
|
60
|
-
initialCountry =
|
61
|
-
isValid = () => {
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
id = "",
|
63
|
+
initialCountry = "",
|
64
|
+
isValid = () => {
|
65
|
+
void 0
|
66
|
+
},
|
67
|
+
label = "",
|
68
|
+
name = "",
|
69
|
+
onChange = () => {
|
70
|
+
void 0
|
71
|
+
},
|
65
72
|
onlyCountries = [],
|
66
73
|
preferredCountries = [],
|
67
|
-
value =
|
74
|
+
value = "",
|
68
75
|
} = props
|
69
76
|
|
70
77
|
const ariaProps = buildAriaProps(aria)
|
71
78
|
const dataProps = buildDataProps(data)
|
72
|
-
const classes = classnames(
|
79
|
+
const classes = classnames(
|
80
|
+
buildCss("pb_phone_number_input"),
|
81
|
+
globalProps(props),
|
82
|
+
className
|
83
|
+
)
|
73
84
|
|
74
85
|
const inputRef = useRef<HTMLInputElement>()
|
75
86
|
const [inputValue, setInputValue] = useState(value)
|
76
87
|
const [itiInit, setItiInit] = useState<any>()
|
77
|
-
const [error, setError] = useState(
|
88
|
+
const [error, setError] = useState("")
|
78
89
|
|
79
90
|
const validateTooLongNumber = (itiInit: any) => {
|
80
91
|
const error = itiInit.getValidationError()
|
@@ -83,7 +94,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
|
|
83
94
|
const countryName = itiInit.getSelectedCountryData().name
|
84
95
|
setError(`Invalid ${countryName} phone number (too long)`)
|
85
96
|
} else {
|
86
|
-
setError(
|
97
|
+
setError("")
|
87
98
|
}
|
88
99
|
}
|
89
100
|
|
@@ -98,7 +109,7 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
|
|
98
109
|
|
99
110
|
const validateOnlyNumbers = () => {
|
100
111
|
if (inputValue && !containOnlyNumbers(inputValue)) {
|
101
|
-
setError(
|
112
|
+
setError("Invalid phone number. Enter numbers only.")
|
102
113
|
}
|
103
114
|
}
|
104
115
|
|
@@ -114,29 +125,32 @@ const PhoneNumberInput = (props: PhoneNumberInputProps) => {
|
|
114
125
|
isValid(itiInit.isValidNumber())
|
115
126
|
}
|
116
127
|
|
128
|
+
// Separating Concerns as React Docs Recommend
|
129
|
+
// This also Fixes things for our react_component rendering on the Rails Side
|
117
130
|
useEffect(() => {
|
118
131
|
formatAllCountries()
|
132
|
+
}, [])
|
119
133
|
|
134
|
+
useEffect(() => {
|
120
135
|
const telInputInit = new intlTelInput(inputRef.current, {
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
136
|
+
utilsScript:
|
137
|
+
"https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js",
|
138
|
+
separateDialCode: true,
|
139
|
+
preferredCountries,
|
140
|
+
allowDropdown: !disabled,
|
141
|
+
initialCountry,
|
142
|
+
onlyCountries,
|
143
|
+
})
|
144
|
+
|
145
|
+
inputRef.current.addEventListener("countrychange", () =>
|
146
|
+
validateTooLongNumber(telInputInit)
|
128
147
|
)
|
129
|
-
|
130
|
-
inputRef.current.addEventListener("countrychange", () => validateTooLongNumber(telInputInit))
|
148
|
+
|
131
149
|
setItiInit(telInputInit)
|
132
150
|
}, [])
|
133
151
|
|
134
152
|
return (
|
135
|
-
<div
|
136
|
-
{...ariaProps}
|
137
|
-
{...dataProps}
|
138
|
-
className={classes}
|
139
|
-
>
|
153
|
+
<div {...ariaProps} {...dataProps} className={classes}>
|
140
154
|
<TextInput
|
141
155
|
disabled={disabled}
|
142
156
|
error={error}
|
@@ -7,4 +7,7 @@ examples:
|
|
7
7
|
- phone_number_input_only_countries: Limited Countries
|
8
8
|
|
9
9
|
rails:
|
10
|
-
- phone_number_input_default: Default
|
10
|
+
- phone_number_input_default: Default
|
11
|
+
- phone_number_input_preferred_countries: Preferred Countries
|
12
|
+
- phone_number_input_initial_country: Initial Country
|
13
|
+
- phone_number_input_only_countries: Limited Countries
|
@@ -1,15 +1 @@
|
|
1
|
-
<%= react_component("PhoneNumberInput", object.phone_number_input_options) %>
|
2
|
-
|
3
|
-
<script>
|
4
|
-
const formatToGlobalCountryName = () => {
|
5
|
-
return countryName.split('(')[0].trim()
|
6
|
-
}
|
7
|
-
|
8
|
-
const formatAllCountries = () => {
|
9
|
-
let countryData = window.intlTelInputGlobals.getCountryData()
|
10
|
-
for (let i = 0; i < countryData.length; i++) {
|
11
|
-
let country = countryData[i]
|
12
|
-
country.name = formatToGlobalCountryName(country.name)
|
13
|
-
}
|
14
|
-
}
|
15
|
-
</script>
|
1
|
+
<%= react_component("PhoneNumberInput", object.phone_number_input_options) %>
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import React, { useEffect } from "react";
|
2
2
|
import ReactDOM from "react-dom";
|
3
|
-
|
4
3
|
import {
|
5
4
|
Popper,
|
6
5
|
Manager as PopperManager,
|
@@ -23,7 +22,7 @@ type PbPopoverProps = {
|
|
23
22
|
aria?: { [key: string]: string };
|
24
23
|
className?: string;
|
25
24
|
closeOnClick?: "outside" | "inside" | "any";
|
26
|
-
data?:
|
25
|
+
data?: { [key: string]: string },
|
27
26
|
id?: string;
|
28
27
|
offset?: boolean;
|
29
28
|
reference: PopperReference & any;
|
@@ -100,31 +99,31 @@ const Popover = (props: PbPopoverProps) => {
|
|
100
99
|
|
101
100
|
return (
|
102
101
|
<Popper
|
103
|
-
|
104
|
-
|
105
|
-
|
102
|
+
modifiers={popoverModifiers({ modifiers, offset })}
|
103
|
+
placement={placement}
|
104
|
+
referenceElement={referenceElement}
|
106
105
|
>
|
107
106
|
{({ placement, ref, style }) => {
|
108
107
|
return (
|
109
108
|
<div
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
109
|
+
{...ariaProps}
|
110
|
+
{...dataProps}
|
111
|
+
className={classes}
|
112
|
+
data-placement={placement}
|
113
|
+
id={id}
|
114
|
+
ref={ref}
|
115
|
+
style={Object.assign({}, style, zIndexStyle)}
|
117
116
|
>
|
118
117
|
<div
|
119
|
-
|
118
|
+
className={classnames(`${buildCss("pb_popover_tooltip")} show`)}
|
120
119
|
>
|
121
120
|
<div
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
121
|
+
className={classnames(
|
122
|
+
"pb_popover_body",
|
123
|
+
popoverSpacing,
|
124
|
+
overflowHandling
|
125
|
+
)}
|
126
|
+
style={widthHeightStyles()}
|
128
127
|
>
|
129
128
|
{children}
|
130
129
|
</div>
|
@@ -192,17 +191,17 @@ const PbReactPopover = (props: PbPopoverProps) => {
|
|
192
191
|
|
193
192
|
const popoverComponent = (
|
194
193
|
<Popover
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
194
|
+
className={className}
|
195
|
+
maxHeight={maxHeight}
|
196
|
+
maxWidth={maxWidth}
|
197
|
+
minHeight={minHeight}
|
198
|
+
minWidth={minWidth}
|
199
|
+
modifiers={modifiers}
|
200
|
+
offset={offset}
|
201
|
+
placement={placement}
|
202
|
+
referenceElement={referenceElement}
|
203
|
+
zIndex={zIndex}
|
204
|
+
{...props}
|
206
205
|
>
|
207
206
|
{children}
|
208
207
|
</Popover>
|
@@ -214,7 +213,9 @@ const PbReactPopover = (props: PbPopoverProps) => {
|
|
214
213
|
{reference && !referenceElement && (
|
215
214
|
<PopperReference>
|
216
215
|
{({ ref }) => (
|
217
|
-
<span
|
216
|
+
<span
|
217
|
+
className="pb_popover_reference_wrapper"
|
218
|
+
ref={ref}>
|
218
219
|
<reference.type {...reference.props} />
|
219
220
|
</span>
|
220
221
|
)}
|
@@ -236,4 +237,4 @@ const PbReactPopover = (props: PbPopoverProps) => {
|
|
236
237
|
);
|
237
238
|
};
|
238
239
|
|
239
|
-
export default PbReactPopover;
|
240
|
+
export default PbReactPopover;
|
@@ -57,6 +57,7 @@ import * as List from 'pb_list/docs'
|
|
57
57
|
import * as LoadingInline from 'pb_loading_inline/docs'
|
58
58
|
import * as Map from 'pb_map/docs'
|
59
59
|
import * as Message from 'pb_message/docs'
|
60
|
+
import * as MultiLevelSelect from 'pb_multi_level_select/docs'
|
60
61
|
import * as MultipleUsers from 'pb_multiple_users/docs'
|
61
62
|
import * as MultipleUsersStacked from 'pb_multiple_users_stacked/docs'
|
62
63
|
import * as Nav from 'pb_nav/docs'
|
@@ -156,6 +157,7 @@ WebpackerReact.setup({
|
|
156
157
|
...LoadingInline,
|
157
158
|
...Map,
|
158
159
|
...Message,
|
160
|
+
...MultiLevelSelect,
|
159
161
|
...MultipleUsers,
|
160
162
|
...MultipleUsersStacked,
|
161
163
|
...Nav,
|
@@ -1,37 +1,37 @@
|
|
1
|
-
$bezier: cubic-bezier(.64, 0, .35, 1);
|
1
|
+
$bezier: cubic-bezier(.64, 0, .35, 1) !default;
|
2
2
|
// +transition-timing-function(cubic-bezier(0.7, 0, 0.3, 1))
|
3
3
|
|
4
4
|
/* Default Equations */
|
5
|
-
$linear: cubic-bezier(0.250, 0.250, 0.750, 0.750);
|
6
|
-
$ease: cubic-bezier(0.250, 0.100, 0.250, 1.000);
|
7
|
-
$easeIn: cubic-bezier(0.420, 0.000, 1.000, 1.000);
|
8
|
-
$easeOut: cubic-bezier(0.000, 0.000, 0.580, 1.000);
|
9
|
-
$easeInOut: cubic-bezier(0.420, 0.000, 0.580, 1.000);
|
5
|
+
$linear: cubic-bezier(0.250, 0.250, 0.750, 0.750) !default;
|
6
|
+
$ease: cubic-bezier(0.250, 0.100, 0.250, 1.000) !default;
|
7
|
+
$easeIn: cubic-bezier(0.420, 0.000, 1.000, 1.000) !default;
|
8
|
+
$easeOut: cubic-bezier(0.000, 0.000, 0.580, 1.000) !default;
|
9
|
+
$easeInOut: cubic-bezier(0.420, 0.000, 0.580, 1.000) !default;
|
10
10
|
|
11
11
|
/* Penner Equations (approximated) originally created by @robpenner */
|
12
|
-
$easeInQuad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
|
13
|
-
$easeInCubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
14
|
-
$easeInQuart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
|
15
|
-
$easeInQuint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
16
|
-
$easeInSine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
17
|
-
$easeInExpo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
|
18
|
-
$easeInCirc: cubic-bezier(0.600, 0.040, 0.980, 0.335);
|
19
|
-
$easeInBack: cubic-bezier(0.600, -0.280, 0.735, 0.045);
|
12
|
+
$easeInQuad: cubic-bezier(0.550, 0.085, 0.680, 0.530) !default;
|
13
|
+
$easeInCubic: cubic-bezier(0.550, 0.055, 0.675, 0.190) !default;
|
14
|
+
$easeInQuart: cubic-bezier(0.895, 0.030, 0.685, 0.220) !default;
|
15
|
+
$easeInQuint: cubic-bezier(0.755, 0.050, 0.855, 0.060) !default;
|
16
|
+
$easeInSine: cubic-bezier(0.470, 0.000, 0.745, 0.715) !default;
|
17
|
+
$easeInExpo: cubic-bezier(0.950, 0.050, 0.795, 0.035) !default;
|
18
|
+
$easeInCirc: cubic-bezier(0.600, 0.040, 0.980, 0.335) !default;
|
19
|
+
$easeInBack: cubic-bezier(0.600, -0.280, 0.735, 0.045) !default;
|
20
20
|
|
21
|
-
$easeOutQuad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
|
22
|
-
$easeOutCubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
23
|
-
$easeOutQuart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
|
24
|
-
$easeOutQuint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
|
25
|
-
$easeOutSine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
|
26
|
-
$easeOutExpo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
|
27
|
-
$easeOutCirc: cubic-bezier(0.075, 0.820, 0.165, 1.000);
|
28
|
-
$easeOutBack: cubic-bezier(0.175, 0.885, 0.320, 1.275);
|
21
|
+
$easeOutQuad: cubic-bezier(0.250, 0.460, 0.450, 0.940) !default;
|
22
|
+
$easeOutCubic: cubic-bezier(0.215, 0.610, 0.355, 1.000) !default;
|
23
|
+
$easeOutQuart: cubic-bezier(0.165, 0.840, 0.440, 1.000) !default;
|
24
|
+
$easeOutQuint: cubic-bezier(0.230, 1.000, 0.320, 1.000) !default;
|
25
|
+
$easeOutSine: cubic-bezier(0.390, 0.575, 0.565, 1.000) !default;
|
26
|
+
$easeOutExpo: cubic-bezier(0.190, 1.000, 0.220, 1.000) !default;
|
27
|
+
$easeOutCirc: cubic-bezier(0.075, 0.820, 0.165, 1.000) !default;
|
28
|
+
$easeOutBack: cubic-bezier(0.175, 0.885, 0.320, 1.275) !default;
|
29
29
|
|
30
|
-
$easeInOutQuad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
|
31
|
-
$easeInOutCubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
32
|
-
$easeInOutQuart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
|
33
|
-
$easeInOutQuint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
|
34
|
-
$easeInOutSine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
|
35
|
-
$easeInOutExpo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
|
36
|
-
$easeInOutCirc: cubic-bezier(0.785, 0.135, 0.150, 0.860);
|
37
|
-
$easeInOutBack: cubic-bezier(0.680, -0.550, 0.265, 1.550);
|
30
|
+
$easeInOutQuad: cubic-bezier(0.455, 0.030, 0.515, 0.955) !default;
|
31
|
+
$easeInOutCubic: cubic-bezier(0.645, 0.045, 0.355, 1.000) !default;
|
32
|
+
$easeInOutQuart: cubic-bezier(0.770, 0.000, 0.175, 1.000) !default;
|
33
|
+
$easeInOutQuint: cubic-bezier(0.860, 0.000, 0.070, 1.000) !default;
|
34
|
+
$easeInOutSine: cubic-bezier(0.445, 0.050, 0.550, 0.950) !default;
|
35
|
+
$easeInOutExpo: cubic-bezier(1.000, 0.000, 0.000, 1.000) !default;
|
36
|
+
$easeInOutCirc: cubic-bezier(0.785, 0.135, 0.150, 0.860) !default;
|
37
|
+
$easeInOutBack: cubic-bezier(0.680, -0.550, 0.265, 1.550) !default;
|
@@ -1,20 +1,19 @@
|
|
1
|
-
|
2
1
|
// Border Radius
|
3
|
-
$border_rad_lightest: 1px;
|
4
|
-
$border_rad_lighter: 2px;
|
5
|
-
$border_rad_light: 4px;
|
6
|
-
$border_rad_normal: 0;
|
7
|
-
$border_rad_heavy: 5px;
|
8
|
-
$border_rad_heavier: 6px;
|
9
|
-
$border_rad_heaviest: 7px;
|
10
|
-
$border_rad_mega: 1000px;
|
11
|
-
$border_radius_xs: 4px;
|
12
|
-
$border_radius_sm: 4px;
|
13
|
-
$border_radius_md: 6px;
|
14
|
-
$border_radius_lg: 8px;
|
15
|
-
$border_radius_xl: 16px;
|
16
|
-
$border_radius_rounded: 1000px;
|
17
|
-
$border_radius_none: 0;
|
2
|
+
$border_rad_lightest: 1px !default;
|
3
|
+
$border_rad_lighter: 2px !default;
|
4
|
+
$border_rad_light: 4px !default;
|
5
|
+
$border_rad_normal: 0 !default;
|
6
|
+
$border_rad_heavy: 5px !default;
|
7
|
+
$border_rad_heavier: 6px !default;
|
8
|
+
$border_rad_heaviest: 7px !default;
|
9
|
+
$border_rad_mega: 1000px !default;
|
10
|
+
$border_radius_xs: 4px !default;
|
11
|
+
$border_radius_sm: 4px !default;
|
12
|
+
$border_radius_md: 6px !default;
|
13
|
+
$border_radius_lg: 8px !default;
|
14
|
+
$border_radius_xl: 16px !default;
|
15
|
+
$border_radius_rounded: 1000px !default;
|
16
|
+
$border_radius_none: 0 !default;
|
18
17
|
$border_radius: (
|
19
18
|
lightest: $border_rad_lightest,
|
20
19
|
lighter: $border_rad_lighter,
|
@@ -11,7 +11,7 @@ $teal: #00C4D7 !default;
|
|
11
11
|
$red: #DA0014 !default;
|
12
12
|
$red_dark: #ff4a50 !default;
|
13
13
|
$yellow: #F9BB00 !default;
|
14
|
-
$green: #
|
14
|
+
$green: #1CA05C !default;
|
15
15
|
$orange: #FD804C !default;
|
16
16
|
$default: #93a8b8 !default;
|
17
17
|
$colors: (
|
@@ -75,6 +75,8 @@ $card_colors: (
|
|
75
75
|
);
|
76
76
|
|
77
77
|
$primary-action: $primary !default;
|
78
|
+
$secondary-action: rgba($primary_action, 0.05) !default;
|
79
|
+
|
78
80
|
$action_colors: (
|
79
81
|
primary_action: $primary-action
|
80
82
|
);
|
@@ -1,9 +1,9 @@
|
|
1
|
-
$display_inline: inline;
|
2
|
-
$display_block: block;
|
3
|
-
$display_inline_block: inline-block;
|
4
|
-
$display_flex: flex;
|
5
|
-
$display_none: none;
|
6
|
-
$display_inline_flex: inline-flex;
|
1
|
+
$display_inline: inline !default;
|
2
|
+
$display_block: block !default;
|
3
|
+
$display_inline_block: inline-block !default;
|
4
|
+
$display_flex: flex !default;
|
5
|
+
$display_none: none !default;
|
6
|
+
$display_inline_flex: inline-flex !default;
|
7
7
|
$displays: (
|
8
8
|
display_none: $display_none,
|
9
9
|
display_flex: $display_flex,
|
@@ -1,10 +1,10 @@
|
|
1
|
-
$lh_tightest: 1;
|
2
|
-
$lh_tighter: 1.2;
|
3
|
-
$lh_tight: 1.4;
|
4
|
-
$lh_normal: 1.5;
|
5
|
-
$lh_loose: 1.6;
|
6
|
-
$lh_looser: 1.8;
|
7
|
-
$lh_loosest: 2;
|
1
|
+
$lh_tightest: 1 !default;
|
2
|
+
$lh_tighter: 1.2 !default;
|
3
|
+
$lh_tight: 1.4 !default;
|
4
|
+
$lh_normal: 1.5 !default;
|
5
|
+
$lh_loose: 1.6 !default;
|
6
|
+
$lh_looser: 1.8 !default;
|
7
|
+
$lh_loosest: 2 !default;
|
8
8
|
$line_height: (
|
9
9
|
tightest: $lh_tightest,
|
10
10
|
tighter: $lh_tighter,
|
@@ -1,13 +1,13 @@
|
|
1
|
-
$opacity_1: .1;
|
2
|
-
$opacity_2: .2;
|
3
|
-
$opacity_3: .3;
|
4
|
-
$opacity_4: .4;
|
5
|
-
$opacity_5: .5;
|
6
|
-
$opacity_6: .6;
|
7
|
-
$opacity_7: .7;
|
8
|
-
$opacity_8: .8;
|
9
|
-
$opacity_9: .9;
|
10
|
-
$opacity_10: 1;
|
1
|
+
$opacity_1: .1 !default;
|
2
|
+
$opacity_2: .2 !default;
|
3
|
+
$opacity_3: .3 !default;
|
4
|
+
$opacity_4: .4 !default;
|
5
|
+
$opacity_5: .5 !default;
|
6
|
+
$opacity_6: .6 !default;
|
7
|
+
$opacity_7: .7 !default;
|
8
|
+
$opacity_8: .8 !default;
|
9
|
+
$opacity_9: .9 !default;
|
10
|
+
$opacity_10: 1 !default;
|
11
11
|
$opacity: (
|
12
12
|
opacity_1: $opacity_1,
|
13
13
|
opacity_2: $opacity_2,
|