@propelinc/citrus-ui 0.2.8 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/citrus-ui.common.js +1236 -1168
  2. package/dist/citrus-ui.common.js.map +1 -1
  3. package/dist/citrus-ui.css +1 -1
  4. package/dist/citrus-ui.umd.js +1236 -1168
  5. package/dist/citrus-ui.umd.js.map +1 -1
  6. package/dist/citrus-ui.umd.min.js +6 -6
  7. package/dist/citrus-ui.umd.min.js.map +1 -1
  8. package/package.json +2 -2
  9. package/src/colors/colors.json +22 -25
  10. package/src/colors/theme.ts +14 -28
  11. package/src/components/CAlert.vue +1 -1
  12. package/src/components/CBanner.vue +1 -1
  13. package/src/components/CButton.vue +3 -3
  14. package/src/components/CCard.vue +77 -10
  15. package/src/components/CListItem.vue +1 -1
  16. package/src/components/CModal.vue +102 -0
  17. package/src/components/CModalLoading.vue +4 -42
  18. package/src/components/CSegmentedButtonOption.vue +1 -1
  19. package/src/styles/mixins/buttons.less +22 -0
  20. package/src/styles/variables.less +5 -0
  21. package/storybook-static/css/main.cce46705.css +1 -0
  22. package/storybook-static/iframe.html +2 -2
  23. package/storybook-static/main.0da2f130.iframe.bundle.js +1 -0
  24. package/storybook-static/vendors~main.1d6c6a41.iframe.bundle.js +3 -0
  25. package/storybook-static/vendors~main.1d6c6a41.iframe.bundle.js.map +1 -0
  26. package/storybook-static/css/main.918ac2bc.css +0 -1
  27. package/storybook-static/main.4c454d37.iframe.bundle.js +0 -1
  28. package/storybook-static/vendors~main.4d3a0ad4.iframe.bundle.js +0 -3
  29. package/storybook-static/vendors~main.4d3a0ad4.iframe.bundle.js.map +0 -1
  30. /package/storybook-static/{vendors~main.4d3a0ad4.iframe.bundle.js.LICENSE.txt → vendors~main.1d6c6a41.iframe.bundle.js.LICENSE.txt} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propelinc/citrus-ui",
3
- "version": "0.2.8",
3
+ "version": "0.3.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/propelinc/citrus-ui"
@@ -14,7 +14,7 @@
14
14
  "lint:css": "stylelint \"src/**/*.(vue|less)\"",
15
15
  "lint:js": "vue-cli-service lint",
16
16
  "publish:dist": "npm run build:dist && npm publish",
17
- "publish:storybook": "storybook-to-aws-s3 --script=\"storybook:build\" --bucket-path=citrus-ui-storybook",
17
+ "publish:storybook": "storybook-to-aws-s3 --script=\"build:storybook\" --bucket-path=citrus-ui-storybook",
18
18
  "serve:storybook": "vue-cli-service storybook:serve -p 6006 -c .storybook",
19
19
  "test:unit": "vue-cli-service test:unit"
20
20
  },
@@ -1,37 +1,34 @@
1
1
  {
2
- "color-white": "#FFF",
3
-
4
- "color-navy": "#1B2538",
5
- "color-navy-tint-1": "#495160",
6
- "color-navy-tint-2": "#767C88",
7
- "color-navy-tint-3": "#A4A8AF",
8
- "color-navy-tint-4": "#D1D3D7",
9
-
10
- "color-providers-green": "#B3F6A2",
11
- "color-providers-green-tint-1": "#D1FAC7",
12
2
  "color-providers-green-tint-2": "#ECFDE8",
13
-
14
- "color-accent-green": "#61D866",
3
+ "color-providers-green-tint-1": "#D1FAC7",
4
+ "color-providers-green": "#B3F6A2",
5
+ "color-accent-green": "#51D156",
15
6
  "color-accent-green-shade-1": "#49A24C",
16
7
  "color-accent-green-shade-2": "#3A823D",
17
8
 
18
- "color-blue": "#A3B0F9",
19
- "color-blue-tint-1": "#D1D7FC",
20
- "color-blue-tint-2": "#E8EBFD",
9
+ "color-providers-blue-tint-2": "#E8EBFD",
10
+ "color-providers-blue-tint-1": "#D1D7FC",
11
+ "color-providers-blue": "#A3B0F9",
12
+ "color-accent-blue": "#5560CB",
13
+ "color-accent-blue-shade-1": "#404898",
14
+ "color-accent-blue-shade-2": "#2F3570",
21
15
 
22
- "color-blue-accent": "#5560CB",
23
- "color-blue-accent-shade-1": "#404898",
24
- "color-blue-accent-shade-2": "#2F3570",
16
+ "color-navy-tint-4": "#D1D3D7",
17
+ "color-navy-tint-3": "#A4A8AF",
18
+ "color-navy-tint-2": "#767C88",
19
+ "color-navy-tint-1": "#495160",
20
+ "color-navy": "#1B2538",
25
21
 
26
- "color-neutral": "#F5F2ED",
22
+ "color-neutral": "#FAF8F6",
27
23
  "color-neutral-shade": "#E9E6E1",
28
- "color-neutral-tint": "#FAF8F6",
24
+ "color-white": "#FFF",
29
25
 
30
- "color-peach": "#FDCAB7",
31
- "color-orange": "#FC8247",
26
+ "color-purple": "#7C3872",
32
27
  "color-pink": "#F6A0D1",
33
- "color-purple": "#79386F",
28
+ "color-orange": "#FC8247",
29
+ "color-peach": "#FDCAB7",
30
+ "color-yellow": "#FFC200",
31
+ "color-lemon": "#FEE69A",
34
32
 
35
- "color-red": "#C34459",
36
- "color-yellow": "#F2C94C"
33
+ "color-alert-red": "#C34459"
37
34
  }
@@ -1,33 +1,19 @@
1
1
  import { VuetifyThemeVariant } from 'vuetify/types/services/theme';
2
2
 
3
- import PROVIDERS_COLORS from './colors.json';
3
+ import COLORS from './colors.json';
4
4
 
5
- const Theme = {
6
- 'primary': PROVIDERS_COLORS['color-blue-accent'],
7
- 'secondary': PROVIDERS_COLORS['color-accent-green'],
8
-
9
- 'info': PROVIDERS_COLORS['color-blue'],
10
- 'success': PROVIDERS_COLORS['color-blue-accent'],
11
- 'warning': PROVIDERS_COLORS['color-yellow'],
12
- 'error': PROVIDERS_COLORS['color-red'],
13
-
14
- 'navy': PROVIDERS_COLORS['color-navy'],
15
- 'navy-tint-4': PROVIDERS_COLORS['color-navy-tint-4'],
16
- 'navy-tint-3': PROVIDERS_COLORS['color-navy-tint-3'],
17
- 'navy-tint-2': PROVIDERS_COLORS['color-navy-tint-2'],
18
- 'navy-tint-1': PROVIDERS_COLORS['color-navy-tint-1'],
19
- 'neutral': PROVIDERS_COLORS['color-neutral'],
20
-
21
- 'providers-green': PROVIDERS_COLORS['color-providers-green'],
22
- 'providers-green-tint-1': PROVIDERS_COLORS['color-providers-green-tint-1'],
23
- 'accent-green': PROVIDERS_COLORS['color-accent-green'],
24
- 'blue': PROVIDERS_COLORS['color-blue'],
25
- 'blue-tint-1': PROVIDERS_COLORS['color-blue-tint-1'],
26
-
27
- 'peach': PROVIDERS_COLORS['color-peach'],
28
- 'orange': PROVIDERS_COLORS['color-orange'],
29
- 'pink': PROVIDERS_COLORS['color-pink'],
30
- 'purple': PROVIDERS_COLORS['color-purple'],
5
+ const VuetifyConfig = {
6
+ primary: COLORS['color-accent-blue'],
7
+ secondary: COLORS['color-accent-green'],
8
+ info: COLORS['color-providers-blue'],
9
+ success: COLORS['color-accent-blue'],
10
+ warning: COLORS['color-yellow'],
11
+ error: COLORS['color-alert-red'],
31
12
  } as Partial<VuetifyThemeVariant>;
32
13
 
33
- export default Theme;
14
+ const CitrusTheme = Object.entries(COLORS).reduce((theme, [colorName, hex]) => {
15
+ theme[colorName.replace('color-', '')] = hex;
16
+ return theme;
17
+ }, {} as Partial<VuetifyThemeVariant>);
18
+
19
+ export default { ...CitrusTheme, ...VuetifyConfig };
@@ -72,7 +72,7 @@ export default class CAlert extends Vue {
72
72
 
73
73
  .c-alert--error {
74
74
  & /deep/ .v-snack__wrapper {
75
- background-color: @color-red;
75
+ background-color: @color-alert-red;
76
76
  }
77
77
  }
78
78
 
@@ -23,7 +23,7 @@ export default class CBanner extends Vue {
23
23
  return 'peach';
24
24
  }
25
25
 
26
- return 'blue';
26
+ return 'providers-blue';
27
27
  }
28
28
  }
29
29
  </script>
@@ -79,7 +79,7 @@ export default class CButton extends Vue {
79
79
  }
80
80
 
81
81
  .button--primary {
82
- .button-theme(@color-white, @color-blue-accent);
82
+ .button-theme(@color-white, @color-accent-blue);
83
83
  }
84
84
 
85
85
  .button--primary.button--dark {
@@ -91,7 +91,7 @@ export default class CButton extends Vue {
91
91
  }
92
92
 
93
93
  .button--secondary {
94
- .button-theme(@color-blue-accent, @color-white);
94
+ .button-theme(@color-accent-blue, @color-white);
95
95
 
96
96
  border: @border !important;
97
97
  }
@@ -105,7 +105,7 @@ export default class CButton extends Vue {
105
105
  }
106
106
 
107
107
  .button--tertiary {
108
- .button-theme(@color-blue-accent, transparent);
108
+ .button-theme(@color-accent-blue, transparent);
109
109
  }
110
110
 
111
111
  .button--tertiary.button--dark {
@@ -1,9 +1,26 @@
1
1
  <template>
2
- <div class="card">
3
- <div v-if="title" data-test="card-title" class="card__title">{{ title }}</div>
2
+ <div class="card" :class="{ [color]: !!color }">
3
+ <div v-if="shouldShowHeader" class="card__header" :class="{ 'card__header--divided': divided }">
4
+ <div class="card__header__title-container">
5
+ <span data-test="card-title" class="card__header__title">
6
+ <slot name="header:title">
7
+ {{ title }}
8
+ </slot>
9
+ </span>
10
+ </div>
11
+
12
+ <div class="card__header__append">
13
+ <slot name="header:append" />
14
+ </div>
15
+ </div>
16
+
4
17
  <div data-test="card-body" class="card__body" :class="{ 'card__body--fluid': fluid }">
5
18
  <slot />
6
19
  </div>
20
+
21
+ <div class="card__footer" :class="{ 'card__footer--divided': divided }">
22
+ <slot name="footer" />
23
+ </div>
7
24
  </div>
8
25
  </template>
9
26
 
@@ -13,38 +30,88 @@ import { Component, Vue, Prop } from 'vue-property-decorator';
13
30
  @Component({ name: 'CCard' })
14
31
  export default class CCard extends Vue {
15
32
  @Prop(String) title?: string;
33
+ /** Removes padding from card body */
16
34
  @Prop({ type: Boolean, default: false }) fluid!: boolean;
35
+ /** Shows borders between header, body, and footer */
36
+ @Prop({ type: Boolean, default: false }) divided!: boolean;
37
+ /** Sets background color */
38
+ @Prop(String) color?: string;
39
+
40
+ get shouldShowHeader(): boolean {
41
+ return (
42
+ !!this.title ||
43
+ !!this.$slots['header:append'] ||
44
+ !!this.$scopedSlots['header:append'] ||
45
+ !!this.$slots['header:title'] ||
46
+ !!this.$scopedSlots['header:title']
47
+ );
48
+ }
17
49
  }
18
50
  </script>
19
51
 
20
52
  <style lang="less" scoped>
21
53
  @import '~@/styles/variables.less';
54
+ @import '~@/styles/mixins/buttons.less';
22
55
 
23
56
  .card {
24
57
  background: @color-white;
25
58
  border: @border;
26
59
  border-radius: @border-radius;
60
+ overflow: hidden;
27
61
 
28
62
  & + & {
29
63
  margin-top: 12px;
30
64
  }
31
65
  }
32
66
 
33
- .card__title {
34
- .overline;
67
+ .card__header {
68
+ align-items: flex-start;
69
+ display: flex;
70
+ padding: @card-header-v-spacing @card-h-spacing 0;
71
+ }
35
72
 
36
- padding: 12px 16px 0;
73
+ .card__header__title-container {
74
+ flex: 1 1 100%;
37
75
  }
38
76
 
39
- .card__body {
40
- padding: 16px 16px 12px;
77
+ .card__header__title {
78
+ .title();
41
79
 
42
- .card__title + & {
43
- padding-top: 8px;
44
- }
80
+ vertical-align: -4px;
81
+ word-break: break-word;
82
+ }
83
+
84
+ .card__header__append:not(:empty) {
85
+ flex: none;
86
+ margin: -6px -12px -8px @card-h-spacing;
87
+ }
88
+
89
+ .card__header--divided {
90
+ border-bottom: @border;
91
+ padding-bottom: @card-header-v-spacing;
92
+ }
93
+
94
+ .card__body {
95
+ padding: @card-body-v-spacing @card-h-spacing;
45
96
  }
46
97
 
47
98
  .card__body--fluid {
48
99
  padding: 0;
49
100
  }
101
+
102
+ .card__footer {
103
+ .button-container();
104
+
105
+ &:not(:empty) {
106
+ margin-top: -1 * @card-body-v-spacing;
107
+ padding: 0 @card-h-spacing;
108
+ }
109
+ }
110
+
111
+ .card__footer--divided {
112
+ &:not(:empty) {
113
+ border-top: @border;
114
+ margin-top: 0;
115
+ }
116
+ }
50
117
  </style>
@@ -77,7 +77,7 @@ export default class CListItem extends Vue {
77
77
  }
78
78
 
79
79
  .list-item__action {
80
- color: @color-blue-accent;
80
+ color: @color-accent-blue;
81
81
  flex: none;
82
82
  padding-left: 12px;
83
83
  }
@@ -0,0 +1,102 @@
1
+ <template>
2
+ <v-dialog
3
+ :width="loading ? '160' : undefined"
4
+ :persistent="!dismissible || !!loading"
5
+ no-click-animation
6
+ :value="value"
7
+ @input="(value) => $emit('input', value)"
8
+ >
9
+ <c-card v-if="loading" key="loading" data-test="modal-loading">
10
+ <div class="modal__loading">
11
+ <div class="modal__loading__icon-container">
12
+ <font-awesome-icon :icon="faSync" class="fa-spin modal__loading__icon" />
13
+ </div>
14
+
15
+ <div
16
+ v-if="hasLoadingMessage"
17
+ data-test="modal-loading-message"
18
+ class="modal__loading__message"
19
+ >
20
+ {{ loading }}
21
+ </div>
22
+ </div>
23
+ </c-card>
24
+ <c-card v-else key="default" data-test="modal">
25
+ <template #header:title>
26
+ <span class="modal__header__title" data-test="modal-title">{{ title }}</span>
27
+ </template>
28
+
29
+ <template #header:append>
30
+ <c-icon-button
31
+ v-if="dismissible"
32
+ data-test="modal-dismiss"
33
+ :icon="faTimes"
34
+ @click="$emit('input', false)"
35
+ />
36
+ </template>
37
+
38
+ <slot />
39
+
40
+ <template #footer>
41
+ <slot name="footer" />
42
+ </template>
43
+ </c-card>
44
+ </v-dialog>
45
+ </template>
46
+
47
+ <script lang="ts">
48
+ import { faSync, faTimes } from '@fortawesome/pro-light-svg-icons';
49
+ import { Component, Vue, Prop } from 'vue-property-decorator';
50
+
51
+ import CCard from '@/components/CCard.vue';
52
+ import CIconButton from '@/components/CIconButton.vue';
53
+
54
+ @Component({ name: 'CModal', components: { CCard, CIconButton } })
55
+ export default class CModal extends Vue {
56
+ faSync = faSync;
57
+ faTimes = faTimes;
58
+
59
+ @Prop({ type: Boolean, default: false }) value!: boolean;
60
+ @Prop(String) title?: string;
61
+ /** Shows loading state + sets loading message if string */
62
+ @Prop([String, Boolean]) loading?: string | boolean;
63
+ /** Allows modal to be dismissed */
64
+ @Prop({ type: Boolean, default: true }) dismissible!: boolean;
65
+
66
+ get hasLoadingMessage(): boolean {
67
+ return typeof this.loading === 'string';
68
+ }
69
+ }
70
+ </script>
71
+
72
+ <style lang="less" scoped>
73
+ @import '~@/styles/variables.less';
74
+
75
+ .modal__header__title {
76
+ .subheadline();
77
+
78
+ vertical-align: -4px;
79
+ }
80
+
81
+ .modal__loading {
82
+ text-align: center;
83
+ }
84
+
85
+ .modal__loading__icon-container {
86
+ padding: 12px 0;
87
+ }
88
+
89
+ .modal__loading__icon {
90
+ color: @color-accent-blue;
91
+ font-size: @font-size-2x-large;
92
+ }
93
+
94
+ .modal__loading__message {
95
+ font-weight: @font-weight-bold;
96
+ }
97
+
98
+ /deep/ .card__footer:not(:empty) {
99
+ margin-top: -12px;
100
+ padding-bottom: 4px;
101
+ }
102
+ </style>
@@ -1,54 +1,16 @@
1
1
  <template>
2
- <v-dialog
3
- data-test="modal-loading"
4
- width="160"
5
- persistent
6
- no-click-animation
7
- :value="value"
8
- @input="(value) => $emit('input', value)"
9
- >
10
- <v-card class="modal-loading__content">
11
- <font-awesome-icon :icon="faSync" class="fa-spin modal-loading__icon" />
12
-
13
- <div data-test="modal-loading-message" class="modal-loading__content__message">
14
- <slot>
15
- {{ message }}
16
- </slot>
17
- </div>
18
- </v-card>
19
- </v-dialog>
2
+ <c-modal :loading="message || true" :value="value" @input="(value) => $emit('input', value)" />
20
3
  </template>
21
4
 
22
5
  <script lang="ts">
23
- import { faSync } from '@fortawesome/pro-light-svg-icons';
24
6
  import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
25
7
  import { Component, Vue, Prop } from 'vue-property-decorator';
26
8
 
27
- @Component({ name: 'CModalLoading', components: { FontAwesomeIcon } })
28
- export default class CModalLoading extends Vue {
29
- faSync = faSync;
9
+ import CModal from '@/components/CModal.vue';
30
10
 
11
+ @Component({ name: 'CModalLoading', components: { FontAwesomeIcon, CModal } })
12
+ export default class CModalLoading extends Vue {
31
13
  @Prop({ type: Boolean, default: false }) value!: boolean;
32
14
  @Prop({ type: String }) message?: string;
33
15
  }
34
16
  </script>
35
-
36
- <style lang="less" scoped>
37
- @import '~@/styles/variables.less';
38
-
39
- .modal-loading__icon {
40
- color: @color-blue-accent;
41
- font-size: @font-size-2x-large;
42
- }
43
-
44
- .modal-loading__content {
45
- border-radius: @border-radius !important; // Override Vuetify styles
46
- padding: 28px 16px 20px;
47
- text-align: center;
48
- }
49
-
50
- .modal-loading__content__message {
51
- font-weight: @font-weight-bold;
52
- margin: 12px 0 0;
53
- }
54
- </style>
@@ -40,6 +40,6 @@ export default class CSegmentedButtonOption extends Vue {
40
40
 
41
41
  // This class is applied by the CSegmentedButton component.
42
42
  .segmented-button__option--active {
43
- background-color: @color-blue !important;
43
+ background-color: @color-providers-blue !important;
44
44
  }
45
45
  </style>
@@ -0,0 +1,22 @@
1
+ .button-container() {
2
+ align-items: stretch;
3
+ display: flex;
4
+ flex-direction: column;
5
+
6
+ & /deep/ .button--primary,
7
+ & /deep/ .button--secondary {
8
+ margin-top: 12px;
9
+
10
+ &:last-child {
11
+ margin-bottom: 12px;
12
+ }
13
+ }
14
+
15
+ & /deep/ .button--tertiary {
16
+ margin-top: 8px;
17
+
18
+ &:last-child {
19
+ margin-bottom: 8px;
20
+ }
21
+ }
22
+ }
@@ -98,6 +98,11 @@
98
98
  text-transform: uppercase;
99
99
  }
100
100
 
101
+ // CARDS
102
+ @card-body-v-spacing: 16px;
103
+ @card-h-spacing: 16px;
104
+ @card-header-v-spacing: 12px;
105
+
101
106
  // SKELETON LOADER
102
107
  @skeleton-loader-animation-duration: 3s;
103
108
  @skeleton-loader-animation: skeleton-loader-animation @skeleton-loader-animation-duration infinite;
@@ -0,0 +1 @@
1
+ @-webkit-keyframes skeleton-loader-animation{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation{0%{background-position:150%}to{background-position:-50%}}@font-face{font-family:ObjectSans;font-style:normal;font-weight:100;src:url(../fonts/ObjectSans-Thin.86d44227.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:italic;font-weight:100;src:url(../fonts/ObjectSans-ThinSlanted.20342160.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:normal;font-weight:400;src:url(../fonts/ObjectSans-Regular.e4ea0b90.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:italic;font-weight:400;src:url(../fonts/ObjectSans-Slanted.57a90be9.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:normal;font-weight:700;src:url(../fonts/ObjectSans-Bold.5492f3d5.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:italic;font-weight:700;src:url(../fonts/ObjectSans-BoldSlanted.29e2a87e.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:normal;font-weight:800;src:url(../fonts/ObjectSans-Heavy.d0b2f035.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:italic;font-weight:800;src:url(../fonts/ObjectSans-HeavySlanted.45e9c063.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:normal;font-weight:900;src:url(../fonts/ObjectSans-Black.314082dd.woff2) format("woff2")}@font-face{font-family:ObjectSans;font-style:italic;font-weight:900;src:url(../fonts/ObjectSans-BlackSlanted.d3163c50.woff2) format("woff2")}.providers.providers-theme{font-family:ObjectSans!important;font-size:14px!important;font-weight:400;line-height:150%}.providers.providers-theme .balance{font-family:ObjectSans!important;font-size:32px!important;font-weight:100;line-height:100%}.providers.providers-theme .large-headline{font-family:ObjectSans!important;font-size:32px!important;font-weight:900;line-height:85%;text-transform:uppercase}.providers.providers-theme .large-headline-script{font-family:Blitz!important;font-size:44px!important;font-weight:400;line-height:85%}.providers.providers-theme .headline{font-family:ObjectSans!important;font-size:23px!important;font-weight:800;line-height:130%}.providers.providers-theme .subheadline{font-family:ObjectSans!important;font-size:18px!important;font-weight:800;line-height:130%}.providers.providers-theme .title{font-family:ObjectSans!important;font-size:14px!important;font-weight:400;line-height:150%;font-weight:800}.providers.providers-theme .body,.providers.providers-theme p{font-family:ObjectSans!important;font-size:14px!important;font-weight:400;line-height:150%}.providers.providers-theme .caption{font-weight:400;line-height:150%}.providers.providers-theme .caption,.providers.providers-theme .overline{font-family:ObjectSans!important;font-size:12px!important;letter-spacing:0!important}.providers.providers-theme .overline{font-weight:800;line-height:100%;text-transform:uppercase}.providers.providers-theme .font-family-blitz{font-family:Blitz}.storybook-preview.v-application{background:transparent}.storybook-preview .v-application--wrap{min-height:unset}@-webkit-keyframes skeleton-loader-animation-data-v-cf2d75ac{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-cf2d75ac{0%{background-position:150%}to{background-position:-50%}}.c-alert[data-v-cf2d75ac]{left:16px;margin-top:24px;right:16px}.c-alert[data-v-cf2d75ac] .v-snack__wrapper{border-radius:8px}.c-alert[data-v-cf2d75ac] .v-snack__content{padding:12px 16px}.c-alert--error[data-v-cf2d75ac] .v-snack__wrapper{background-color:#c34459}.c-alert--success[data-v-cf2d75ac] .v-snack__wrapper{background-color:#49a24c}.banner[data-v-24d3d1aa]{align-items:flex-start;display:flex;padding:12px 16px}.banner__icon[data-v-24d3d1aa]{margin-right:12px}.banner__message[data-v-24d3d1aa]{flex:auto;margin:0}@-webkit-keyframes skeleton-loader-animation-data-v-66d795f0{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-66d795f0{0%{background-position:150%}to{background-position:-50%}}.button[data-v-66d795f0]{font-weight:800;letter-spacing:0;text-transform:none}.button[data-v-66d795f0] .v-btn__content{line-height:1}.button--primary[data-v-66d795f0]{background-color:#5560cb!important;color:#fff!important}.button--primary.button--dark[data-v-66d795f0]{background-color:#1b2538!important;color:#fff!important}.button--primary.button--light[data-v-66d795f0]{background-color:#fff!important;color:#1b2538!important}.button--secondary[data-v-66d795f0]{background-color:#fff!important;color:#5560cb!important;border:1px solid #e9e6e1!important}.button--secondary.button--dark[data-v-66d795f0]{background-color:#fff!important;color:#1b2538!important}.button--secondary.button--light[data-v-66d795f0]{background-color:#1b2538!important;color:#fff!important}.button--tertiary[data-v-66d795f0]{background-color:transparent!important;color:#5560cb!important}.button--tertiary.button--dark[data-v-66d795f0]{background-color:transparent!important;color:#1b2538!important}.button--tertiary.button--light[data-v-66d795f0]{background-color:transparent!important;color:#fff!important}.button--disabled.theme--light.v-btn.v-btn--disabled:not(.v-btn--outlined).button--primary[data-v-66d795f0]{background-color:#d1d3d7!important;color:#495160!important}.button--disabled.theme--light.v-btn.v-btn--disabled:not(.v-btn--outlined).button--secondary[data-v-66d795f0]{background-color:#fff!important;color:#767c88!important}.button--disabled.theme--light.v-btn.v-btn--disabled:not(.v-btn--outlined).button--tertiary[data-v-66d795f0]{background-color:transparent!important;color:#767c88!important}.button--large[data-v-66d795f0]{font-size:16px}.button__icon[data-v-66d795f0]{font-size:23px;height:24px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:24px}@-webkit-keyframes skeleton-loader-animation-data-v-4c61df64{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-4c61df64{0%{background-position:150%}to{background-position:-50%}}.card[data-v-4c61df64]{background:#fff;border:1px solid #e9e6e1;border-radius:8px}.card+.card[data-v-4c61df64]{margin-top:12px}.card__title[data-v-4c61df64]{font-family:ObjectSans!important;font-size:12px!important;font-weight:800;letter-spacing:0!important;line-height:100%;text-transform:uppercase;padding:12px 16px 0}.card__body[data-v-4c61df64]{padding:16px 16px 12px}.card__title+.card__body[data-v-4c61df64]{padding-top:8px}.card__body--fluid[data-v-4c61df64]{padding:0}@-webkit-keyframes skeleton-loader-animation-data-v-0b4b1e4f{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-0b4b1e4f{0%{background-position:150%}to{background-position:-50%}}[data-v-0b4b1e4f] label.v-label{font-family:ObjectSans!important;font-size:14px!important;font-weight:400;line-height:150%;color:#1b2538;margin-bottom:0}@-webkit-keyframes skeleton-loader-animation-data-v-0bf0ae44{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-0bf0ae44{0%{background-position:150%}to{background-position:-50%}}.list-item[data-v-0bf0ae44]{color:#1b2538;display:flex;padding:16px;text-align:left;text-decoration:none;width:100%}.list-item+.list-item[data-v-0bf0ae44]{border-top:1px solid #e9e6e1}.list-item__icon[data-v-0bf0ae44]{flex:none;padding-right:12px}.list-item__content[data-v-0bf0ae44]{flex:auto}.list-item__action[data-v-0bf0ae44]{color:#5560cb;flex:none;padding-left:12px}@-webkit-keyframes skeleton-loader-animation-data-v-0558ab0a{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-0558ab0a{0%{background-position:150%}to{background-position:-50%}}.modal-loading__icon[data-v-0558ab0a]{color:#5560cb;font-size:32px}.modal-loading__content[data-v-0558ab0a]{border-radius:8px!important;padding:28px 16px 20px;text-align:center}.modal-loading__content__message[data-v-0558ab0a]{font-weight:700;margin:12px 0 0}@-webkit-keyframes skeleton-loader-animation-data-v-dfca0d72{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-dfca0d72{0%{background-position:150%}to{background-position:-50%}}.segmented-button__option[data-v-dfca0d72]{border:1px solid #e9e6e1!important;color:#1b2538;flex:1 1 0;font-weight:800;letter-spacing:0;text-transform:none}.segmented-button__option[data-v-dfca0d72]:before{color:transparent}.segmented-button__option--active[data-v-dfca0d72]{background-color:#a3b0f9!important}@-webkit-keyframes skeleton-loader-animation-data-v-31bb230e{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-31bb230e{0%{background-position:150%}to{background-position:-50%}}.segmented-button[data-v-31bb230e]{width:100%}@-webkit-keyframes skeleton-loader-animation-data-v-1c8ad0b1{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-1c8ad0b1{0%{background-position:150%}to{background-position:-50%}}.form-field__label[data-v-1c8ad0b1]{font-weight:700;margin:0 0 4px 2px}.form-field__label--disabled[data-v-1c8ad0b1]{color:#767c88}@-webkit-keyframes skeleton-loader-animation-data-v-392ad8f0{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-392ad8f0{0%{background-position:150%}to{background-position:-50%}}select[data-v-392ad8f0]{color:#1b2538;cursor:pointer;height:100%;position:absolute;width:100%;z-index:1}select[data-v-392ad8f0]:focus{outline:none}.select-input--placeholder[data-v-392ad8f0]{color:#a4a8af}@-webkit-keyframes skeleton-loader-animation-data-v-e8c6fcdc{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-e8c6fcdc{0%{background-position:150%}to{background-position:-50%}}.select__field[data-v-e8c6fcdc] legend{display:none}.select__field.v-input--has-state[data-v-e8c6fcdc] fieldset,.select__field.v-input--is-focused[data-v-e8c6fcdc] fieldset{border-color:currentColor;border-width:1px}.select__field[data-v-e8c6fcdc] .v-input__slot{min-height:48px;padding:0 16px!important}.select__field[data-v-e8c6fcdc] input,.select__field[data-v-e8c6fcdc] select{font-family:ObjectSans!important;font-size:14px!important;font-weight:400;line-height:150%;line-height:20px}.select__field[data-v-e8c6fcdc] fieldset{background:#fff;border-color:#e9e6e1;border-radius:8px;top:0}.select__field--disabled[data-v-e8c6fcdc] fieldset{background:#e9e6e1}.select__field--disabled[data-v-e8c6fcdc] input,.select__field--disabled[data-v-e8c6fcdc] select{color:#767c88}.select__field__icon[data-v-e8c6fcdc]{z-index:1}@-webkit-keyframes skeleton-loader-animation-data-v-059ff40c{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-059ff40c{0%{background-position:150%}to{background-position:-50%}}.skeleton-loader-circle[data-v-059ff40c]{-webkit-animation:skeleton-loader-animation-data-v-059ff40c 3s infinite;animation:skeleton-loader-animation-data-v-059ff40c 3s infinite;background:linear-gradient(75deg,#a4a8af 30%,#d1d3d7 50%,#a4a8af 70%);background-size:200% 150%;border-radius:18px;height:36px;width:36px}@-webkit-keyframes skeleton-loader-animation-data-v-2d331031{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-2d331031{0%{background-position:150%}to{background-position:-50%}}.skeleton-loader-text[data-v-2d331031]{width:100%}.skeleton-loader-text__line[data-v-2d331031]{-webkit-animation:skeleton-loader-animation-data-v-2d331031 3s infinite;animation:skeleton-loader-animation-data-v-2d331031 3s infinite;background:linear-gradient(75deg,#a4a8af 30%,#d1d3d7 50%,#a4a8af 70%);background-size:200% 150%;border-radius:2px;height:14px;width:100%}.skeleton-loader-text__line+.skeleton-loader-text__line[data-v-2d331031]{margin-top:4px}.skeleton-loader-text__line[data-v-2d331031]:last-child{width:calc(100% - 32px)}@-webkit-keyframes skeleton-loader-animation-data-v-19b5e9e8{0%{background-position:150%}to{background-position:-50%}}@keyframes skeleton-loader-animation-data-v-19b5e9e8{0%{background-position:150%}to{background-position:-50%}}.text-field__field[data-v-19b5e9e8] legend{display:none}.text-field__field.v-input--has-state[data-v-19b5e9e8] fieldset,.text-field__field.v-input--is-focused[data-v-19b5e9e8] fieldset{border-color:currentColor;border-width:1px}.text-field__field[data-v-19b5e9e8] .v-input__slot{min-height:48px;padding:0 16px!important}.text-field__field[data-v-19b5e9e8] input,.text-field__field[data-v-19b5e9e8] select{font-family:ObjectSans!important;font-size:14px!important;font-weight:400;line-height:150%;line-height:20px}.text-field__field[data-v-19b5e9e8] fieldset{background:#fff;border-color:#e9e6e1;border-radius:8px;top:0}.text-field__field--disabled[data-v-19b5e9e8] fieldset{background:#e9e6e1}.text-field__field--disabled[data-v-19b5e9e8] input,.text-field__field--disabled[data-v-19b5e9e8] select{color:#767c88}
@@ -123,11 +123,11 @@
123
123
  /* eslint-enable object-shorthand */
124
124
  })
125
125
  );
126
- };</script><link href="css/vendors~main.ec1b1c6e.css" rel="stylesheet"><link href="css/main.918ac2bc.css" rel="stylesheet"><style>#root[hidden],
126
+ };</script><link href="css/vendors~main.ec1b1c6e.css" rel="stylesheet"><link href="css/main.cce46705.css" rel="stylesheet"><style>#root[hidden],
127
127
  #docs-root[hidden] {
128
128
  display: none !important;
129
129
  }</style></head><body><div class="sb-nopreview sb-wrapper"><div class="sb-nopreview_main"><h1 class="sb-nopreview_heading sb-heading">No Preview</h1><p>Sorry, but you either have no stories or none are selected somehow.</p><ul><li>Please check the Storybook config.</li><li>Try reloading the page.</li></ul><p>If the problem persists, check the browser console, or the terminal you've run Storybook from.</p></div></div><div class="sb-errordisplay sb-wrapper"><pre id="error-message" class="sb-heading"></pre><pre class="sb-errordisplay_code"><code id="error-stack"></code></pre></div><div id="root"></div><div id="docs-root"></div><script>window['LOGLEVEL'] = "info";
130
130
 
131
131
 
132
132
 
133
- window['FRAMEWORK_OPTIONS'] = {};</script><script src="runtime~main.b29ddaa7.iframe.bundle.js"></script><script src="vendors~main.4d3a0ad4.iframe.bundle.js"></script><script src="main.4c454d37.iframe.bundle.js"></script></body></html>
133
+ window['FRAMEWORK_OPTIONS'] = {};</script><script src="runtime~main.b29ddaa7.iframe.bundle.js"></script><script src="vendors~main.1d6c6a41.iframe.bundle.js"></script><script src="main.0da2f130.iframe.bundle.js"></script></body></html>