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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +2 -0
  3. data/app/pb_kits/playbook/data/menu.yml +2 -1
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/pb_button/_button_mixins.scss +2 -2
  6. data/app/pb_kits/playbook/pb_circle_icon_button/_circle_icon_button.scss +1 -1
  7. data/app/pb_kits/playbook/pb_collapsible/_collapsible.tsx +5 -1
  8. data/app/pb_kits/playbook/pb_collapsible/child_kits/CollapsibleMain.tsx +10 -4
  9. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.html.erb +2 -2
  10. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +7 -0
  11. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex.html.erb +10 -0
  12. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex.jsx +23 -0
  13. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex.md +1 -0
  14. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex_item.html.erb +23 -0
  15. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex_item.jsx +48 -0
  16. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_main_flex_item.md +1 -0
  17. data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +6 -1
  18. data/app/pb_kits/playbook/pb_collapsible/docs/index.js +2 -0
  19. data/app/pb_kits/playbook/pb_filter/Filter/CurrentFilters.tsx +72 -0
  20. data/app/pb_kits/playbook/pb_filter/Filter/{FilterBackground.jsx → FilterBackground.tsx} +12 -14
  21. data/app/pb_kits/playbook/pb_filter/Filter/{FilterDouble.jsx → FilterDouble.tsx} +7 -8
  22. data/app/pb_kits/playbook/pb_filter/Filter/{FilterSingle.jsx → FilterSingle.tsx} +25 -25
  23. data/app/pb_kits/playbook/pb_filter/Filter/{FiltersPopover.jsx → FiltersPopover.tsx} +13 -11
  24. data/app/pb_kits/playbook/pb_filter/Filter/{ResultsCount.jsx → ResultsCount.tsx} +39 -14
  25. data/app/pb_kits/playbook/pb_filter/Filter/{SortMenu.jsx → SortMenu.tsx} +6 -6
  26. data/app/pb_kits/playbook/pb_filter/Filter/{index.jsx → index.tsx} +17 -10
  27. data/app/pb_kits/playbook/pb_filter/{_filter.jsx → _filter.tsx} +0 -2
  28. data/app/pb_kits/playbook/pb_list/_list.tsx +2 -2
  29. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.scss +86 -0
  30. data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +81 -0
  31. data/app/pb_kits/playbook/pb_multi_level_select/_multi_select_helper.tsx +30 -0
  32. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +86 -0
  33. data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.md +3 -0
  34. data/app/pb_kits/playbook/pb_multi_level_select/docs/example.yml +6 -0
  35. data/app/pb_kits/playbook/pb_multi_level_select/docs/index.js +1 -0
  36. data/app/pb_kits/playbook/pb_multi_level_select/helper_functions.ts +60 -0
  37. data/app/pb_kits/playbook/pb_multi_level_select/multi_level_select.test.jsx +40 -0
  38. data/app/pb_kits/playbook/pb_person_contact/{_person_contact.jsx → _person_contact.tsx} +19 -22
  39. data/app/pb_kits/playbook/pb_person_contact/person_contact.test.js +112 -0
  40. data/app/pb_kits/playbook/pb_phone_number_input/_phone_number_input.tsx +61 -47
  41. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_initial_country.html.erb +3 -0
  42. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_only_countries.html.erb +4 -0
  43. data/app/pb_kits/playbook/pb_phone_number_input/docs/_phone_number_input_preferred_countries.html.erb +4 -0
  44. data/app/pb_kits/playbook/pb_phone_number_input/docs/example.yml +4 -1
  45. data/app/pb_kits/playbook/pb_phone_number_input/phone_number_input.html.erb +1 -15
  46. data/app/pb_kits/playbook/pb_popover/_popover.tsx +33 -32
  47. data/app/pb_kits/playbook/playbook-doc.js +2 -0
  48. data/app/pb_kits/playbook/tokens/_animation-curves.scss +30 -30
  49. data/app/pb_kits/playbook/tokens/_border_radius.scss +15 -16
  50. data/app/pb_kits/playbook/tokens/_colors.scss +3 -1
  51. data/app/pb_kits/playbook/tokens/_display.scss +6 -6
  52. data/app/pb_kits/playbook/tokens/_line_height.scss +7 -7
  53. data/app/pb_kits/playbook/tokens/_opacity.scss +10 -10
  54. data/app/pb_kits/playbook/tokens/_positioning.scss +11 -11
  55. data/app/pb_kits/playbook/tokens/_screen_sizes.scss +10 -10
  56. data/app/pb_kits/playbook/tokens/_shadows.scss +4 -4
  57. data/app/pb_kits/playbook/tokens/_spacing.scss +6 -6
  58. data/app/pb_kits/playbook/tokens/_transition.scss +3 -3
  59. data/app/pb_kits/playbook/tokens/_typography.scss +35 -46
  60. data/lib/playbook/version.rb +2 -2
  61. metadata +33 -14
  62. 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 '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'
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('(')[0].trim()
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 = () => {void 0 },
62
- label = '',
63
- name = '',
64
- onChange = () => { void 0 },
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(buildCss('pb_phone_number_input'), globalProps(props), className)
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('Invalid phone number. Enter numbers only.')
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
- utilsScript: 'https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.19/js/utils.js',
122
- separateDialCode: true,
123
- preferredCountries,
124
- allowDropdown: !disabled,
125
- initialCountry,
126
- onlyCountries,
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}
@@ -0,0 +1,3 @@
1
+ <%= pb_rails("phone_number_input", props: {
2
+ initial_country: "br"
3
+ }) %>
@@ -0,0 +1,4 @@
1
+ <%= pb_rails("phone_number_input", props: {
2
+ initial_country: "br",
3
+ only_countries: ['us', 'br']
4
+ }) %>
@@ -0,0 +1,4 @@
1
+ <%= pb_rails("phone_number_input", props: {
2
+ initial_country: "br",
3
+ preferred_countries: ['us', 'br', 'ph', 'gb']
4
+ }) %>
@@ -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?: object;
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
- modifiers={popoverModifiers({ modifiers, offset })}
104
- placement={placement}
105
- referenceElement={referenceElement}
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
- {...ariaProps}
111
- {...dataProps}
112
- className={classes}
113
- data-placement={placement}
114
- id={id}
115
- ref={ref}
116
- style={Object.assign({}, style, zIndexStyle)}
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
- className={classnames(`${buildCss("pb_popover_tooltip")} show`)}
118
+ className={classnames(`${buildCss("pb_popover_tooltip")} show`)}
120
119
  >
121
120
  <div
122
- className={classnames(
123
- "pb_popover_body",
124
- popoverSpacing,
125
- overflowHandling
126
- )}
127
- style={widthHeightStyles()}
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
- className={className}
196
- maxHeight={maxHeight}
197
- maxWidth={maxWidth}
198
- minHeight={minHeight}
199
- minWidth={minWidth}
200
- modifiers={modifiers}
201
- offset={offset}
202
- placement={placement}
203
- referenceElement={referenceElement}
204
- zIndex={zIndex}
205
- {...props}
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 className="pb_popover_reference_wrapper" ref={ref}>
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: #00CA74 !default;
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,