@cdc/core 1.1.4 → 4.22.11

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 (138) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -1
  3. package/assets/filtered-text.svg +1 -0
  4. package/assets/icon-caret-down.svg +3 -0
  5. package/assets/icon-caret-filled-down.svg +3 -0
  6. package/assets/icon-caret-filled-up.svg +3 -0
  7. package/assets/icon-caret-up.svg +3 -0
  8. package/assets/icon-chart-bar-paired.svg +15 -0
  9. package/assets/icon-chart-bar-stacked.svg +10 -0
  10. package/assets/icon-chart-bar.svg +3 -0
  11. package/assets/icon-chart-line.svg +3 -0
  12. package/assets/icon-chart-pie.svg +3 -0
  13. package/assets/icon-check.svg +3 -0
  14. package/assets/icon-close.svg +3 -1
  15. package/assets/icon-code.svg +2 -2
  16. package/assets/icon-dashboard.svg +34 -0
  17. package/assets/icon-databite.svg +3 -0
  18. package/assets/icon-edit.svg +3 -0
  19. package/assets/icon-file-upload.svg +3 -0
  20. package/assets/icon-filter-bars.svg +5 -0
  21. package/assets/icon-gear.svg +6 -0
  22. package/assets/icon-grid.svg +2 -3
  23. package/assets/icon-info.svg +1 -1
  24. package/assets/icon-link.svg +3 -0
  25. package/assets/{alabama-graphic.svg → icon-map-alabama.svg} +2 -2
  26. package/assets/icon-map-usa.svg +3 -0
  27. package/assets/icon-map-world.svg +3 -0
  28. package/assets/icon-minus.svg +3 -0
  29. package/assets/icon-move.svg +8 -0
  30. package/assets/icon-plus.svg +3 -0
  31. package/assets/icon-question-circle.svg +3 -0
  32. package/assets/icon-tools.svg +8 -0
  33. package/assets/icon-upload.svg +3 -0
  34. package/assets/icon-warning-circle.svg +3 -0
  35. package/assets/{icon-warning.svg → icon-warning-triangle.svg} +1 -1
  36. package/components/AdvancedEditor.js +52 -67
  37. package/components/{ErrorBoundary.js → ErrorBoundary.jsx} +10 -11
  38. package/components/GlobalContext.jsx +2 -6
  39. package/components/{LegendCircle.js → LegendCircle.jsx} +4 -4
  40. package/components/Loading.jsx +17 -0
  41. package/components/Waiting.jsx +20 -0
  42. package/components/elements/Button.jsx +111 -3
  43. package/components/elements/Card.jsx +13 -0
  44. package/components/inputs/InputCheckbox.jsx +43 -38
  45. package/components/inputs/InputGroup.jsx +71 -0
  46. package/components/inputs/InputSelect.jsx +28 -24
  47. package/components/inputs/InputText.jsx +20 -37
  48. package/components/inputs/InputToggle.jsx +39 -43
  49. package/components/managers/DataDesigner.jsx +194 -0
  50. package/components/ui/Accordion.jsx +18 -30
  51. package/components/ui/Icon.jsx +59 -20
  52. package/components/ui/LoadSpin.jsx +19 -0
  53. package/components/ui/Modal.jsx +40 -39
  54. package/components/ui/Overlay.jsx +15 -24
  55. package/components/ui/OverlayFrame.jsx +1 -5
  56. package/components/ui/Tooltip.jsx +20 -31
  57. package/data/colorPalettes.js +36 -227
  58. package/data/dataDesignerTables.js +148 -0
  59. package/data/themes.js +13 -13
  60. package/helpers/DataTransform.js +162 -0
  61. package/helpers/cacheBustingString.js +5 -0
  62. package/helpers/events.js +5 -6
  63. package/helpers/fetchRemoteData.js +41 -0
  64. package/helpers/getViewport.js +15 -15
  65. package/helpers/numberFromString.js +7 -7
  66. package/helpers/updatePaletteNames.js +15 -17
  67. package/helpers/useDataVizClasses.js +40 -0
  68. package/helpers/validateFipsCodeLength.js +41 -56
  69. package/package.json +3 -2
  70. package/styles/_data-table.scss +45 -40
  71. package/styles/_global.scss +41 -22
  72. package/styles/_mixins.scss +12 -12
  73. package/styles/_reset.scss +95 -16
  74. package/styles/_variables.scss +5 -5
  75. package/styles/base.scss +104 -37
  76. package/styles/heading-colors.scss +6 -2
  77. package/styles/loading.scss +62 -60
  78. package/styles/v2/base/_file-selector.scss +20 -0
  79. package/styles/v2/base/_general.scss +9 -22
  80. package/styles/v2/base/_heading.scss +20 -0
  81. package/styles/v2/base/_reset.scss +4 -3
  82. package/styles/v2/base/index.scss +7 -3
  83. package/styles/v2/components/accordion.scss +13 -13
  84. package/styles/v2/components/button.scss +29 -68
  85. package/styles/v2/components/card.scss +7 -0
  86. package/styles/v2/components/data-designer.scss +101 -0
  87. package/styles/v2/components/editor.scss +52 -50
  88. package/styles/v2/components/guidance-block.scss +74 -0
  89. package/styles/v2/components/icon.scss +0 -4
  90. package/styles/v2/components/input/_input-check-radio.scss +97 -0
  91. package/styles/v2/components/input/_input-group.scss +74 -0
  92. package/styles/v2/components/input/_input-slider.scss +183 -0
  93. package/styles/v2/components/input/_input.scss +66 -0
  94. package/styles/v2/components/input/index.scss +7 -0
  95. package/styles/v2/components/loadspin.scss +100 -0
  96. package/styles/v2/components/modal.scss +15 -8
  97. package/styles/v2/components/overlay.scss +6 -4
  98. package/styles/v2/layout/_alert.scss +15 -14
  99. package/styles/v2/layout/_component.scss +8 -1
  100. package/styles/v2/layout/_data-table.scss +78 -156
  101. package/styles/v2/layout/_progression.scss +12 -8
  102. package/styles/v2/layout/index.scss +5 -7
  103. package/styles/v2/main.scss +52 -2
  104. package/styles/v2/themes/_color-definitions.scss +103 -20
  105. package/styles/v2/themes/index.scss +1 -1
  106. package/styles/v2/utils/_align.scss +17 -0
  107. package/styles/v2/utils/_animations.scss +2 -2
  108. package/styles/v2/utils/_breakpoints.scss +59 -0
  109. package/styles/v2/utils/_grid.scss +47 -0
  110. package/styles/v2/utils/_mixins.scss +0 -16
  111. package/styles/v2/utils/_spacers.scss +31 -0
  112. package/styles/v2/utils/_variables.scss +7 -0
  113. package/styles/v2/utils/index.scss +9 -4
  114. package/styles/waiting.scss +22 -23
  115. package/assets/asc.svg +0 -1
  116. package/assets/chart-bar-solid.svg +0 -1
  117. package/assets/chart-line-solid.svg +0 -1
  118. package/assets/chart-pie-solid.svg +0 -1
  119. package/assets/check.svg +0 -3
  120. package/assets/dashboard.svg +0 -11
  121. package/assets/data-bite-graphic.svg +0 -3
  122. package/assets/desc.svg +0 -1
  123. package/assets/file-upload-solid.svg +0 -1
  124. package/assets/horizontal-stacked-bar.svg +0 -1
  125. package/assets/link.svg +0 -1
  126. package/assets/minus.svg +0 -1
  127. package/assets/paired-bar.svg +0 -11
  128. package/assets/plus.svg +0 -1
  129. package/assets/question-circle.svg +0 -1
  130. package/assets/upload-solid.svg +0 -1
  131. package/assets/usa-graphic.svg +0 -3
  132. package/assets/world-graphic.svg +0 -3
  133. package/components/DataTransform.js +0 -162
  134. package/components/Loading.js +0 -15
  135. package/components/Waiting.js +0 -11
  136. package/styles/v2/components/input.scss +0 -372
  137. package/styles/v2/layout/_header.scss +0 -13
  138. package/styles/v2/layout/_link.scss +0 -46
@@ -0,0 +1,101 @@
1
+ @import '../utils/variables';
2
+ @import '../themes/color-definitions';
3
+
4
+ .cove-modal__content {
5
+ .dataset-selector-container {
6
+ padding: 1em;
7
+
8
+ .dataset-selector {
9
+ margin: 0 0.5em;
10
+ padding: 0.5em;
11
+ max-width: 10em;
12
+ }
13
+ }
14
+
15
+ .cove-data-designer__container {
16
+ padding: 1em;
17
+ }
18
+ }
19
+
20
+ .cove-data-designer__container {
21
+ .fw-bold {
22
+ font-weight: bold;
23
+ }
24
+
25
+ .fw-normal {
26
+ font-weight: normal;
27
+ }
28
+
29
+ .column {
30
+ grid-column-end: span 6;
31
+ }
32
+ }
33
+
34
+ .cove-data-designer__button {
35
+ width: 100%;
36
+ height: 100%;
37
+ padding: 0;
38
+ background-color: transparent;
39
+ border: 0;
40
+ overflow: hidden;
41
+ cursor: pointer;
42
+
43
+ strong {
44
+ font-weight: bold;
45
+ }
46
+
47
+ .cove-card {
48
+ position: relative;
49
+ text-align: left;
50
+ box-sizing: border-box;
51
+ border: 0;
52
+ padding: 1em;
53
+
54
+ &::after {
55
+ content: '';
56
+ display: block;
57
+ position: absolute;
58
+ top: 0;
59
+ right: 0;
60
+ bottom: 0;
61
+ left: 0;
62
+ border: 1px solid $lightGray;
63
+ border-radius: 0.25rem;
64
+ }
65
+ }
66
+
67
+ &.active {
68
+ .cove-card::after {
69
+ border: 2px solid #005eaa;
70
+ }
71
+ }
72
+
73
+ p {
74
+ font-size: 0.8rem;
75
+ margin-bottom: 1rem;
76
+ }
77
+
78
+ table + table {
79
+ margin-top: 1em;
80
+ }
81
+
82
+ table {
83
+ font-size: 0.8rem;
84
+ background-color: #fff;
85
+ border: 1px solid $lightGray;
86
+ border-collapse: collapse;
87
+
88
+ th {
89
+ color: white;
90
+ text-align: left;
91
+ background-color: $primary;
92
+ }
93
+
94
+ th,
95
+ td {
96
+ padding: 0 5px;
97
+ border-top: 1px solid $lightGray;
98
+ border-bottom: 1px solid $lightGray;
99
+ }
100
+ }
101
+ }
@@ -1,10 +1,11 @@
1
- @import "../utils/variables";
2
- @import "../themes/index";
1
+ @import '../utils/variables';
2
+ @import '../themes/index';
3
3
 
4
4
  .cove-editor {
5
+ @import './../base/reset';
5
6
  display: grid;
6
7
  grid-template-columns: auto 1fr;
7
- grid-template-areas: "panel content";
8
+ grid-template-areas: 'panel content';
8
9
  height: 100vh;
9
10
 
10
11
  .cove-editor__panel {
@@ -22,7 +23,7 @@
22
23
  .cove-editor__heading {
23
24
  font-size: 1.125em;
24
25
  user-select: none;
25
- padding: .625rem 1.125rem;
26
+ padding: 0.625rem 1.125rem;
26
27
  }
27
28
 
28
29
  .cove-editor__panel-container {
@@ -52,7 +53,7 @@
52
53
  border: 0;
53
54
  cursor: pointer;
54
55
  transition: left 400ms ease 65ms, background-color 200ms ease;
55
- box-shadow: rgba(0, 0, 0, .5) 0 1px 2px;
56
+ box-shadow: rgba(0, 0, 0, 0.5) 0 1px 2px;
56
57
  user-select: none;
57
58
  z-index: 8;
58
59
 
@@ -61,7 +62,7 @@
61
62
  left: 50%;
62
63
  transform: translate(-50%, -50%);
63
64
  position: absolute;
64
- content: "\00ab";
65
+ content: '\00ab';
65
66
  }
66
67
 
67
68
  &.collapsed {
@@ -69,12 +70,12 @@
69
70
  margin-left: 0;
70
71
 
71
72
  &:before {
72
- content: "\00bb";
73
+ content: '\00bb';
73
74
  }
74
75
  }
75
76
 
76
77
  &:hover {
77
- background-color: #ffffff
78
+ background-color: #ffffff;
78
79
  }
79
80
  }
80
81
  }
@@ -91,7 +92,7 @@
91
92
 
92
93
  > label {
93
94
  width: 48%;
94
- margin-top: 0 !important
95
+ margin-top: 0 !important;
95
96
  }
96
97
  }
97
98
 
@@ -106,22 +107,22 @@
106
107
  border: $lightGray 1px solid;
107
108
 
108
109
  &:empty {
109
- border: none !important
110
+ border: none !important;
110
111
  }
111
112
 
112
113
  li {
113
- padding: .3em .5em;
114
+ padding: 0.3em 0.5em;
114
115
  display: flex;
115
116
  align-items: center;
116
117
  justify-content: space-between;
117
- font-size: .9em;
118
+ font-size: 0.9em;
118
119
 
119
120
  &:hover {
120
121
  background-color: $lightestGray;
121
122
  }
122
123
 
123
124
  span {
124
- font-size: .8em;
125
+ font-size: 0.8em;
125
126
  color: #f00;
126
127
  cursor: pointer;
127
128
  }
@@ -139,7 +140,7 @@
139
140
 
140
141
  .guidance-link {
141
142
  margin: 2em 1em 0;
142
- padding: .75em 1em;
143
+ padding: 0.75em 1em;
143
144
 
144
145
  svg {
145
146
  width: 60px;
@@ -156,7 +157,7 @@
156
157
  background: #565656;
157
158
  color: #fff;
158
159
  font-size: 1.1em;
159
- padding: .6em 1em;
160
+ padding: 0.6em 1em;
160
161
  position: relative;
161
162
  border-bottom: #565656 3px solid;
162
163
  z-index: 3;
@@ -189,7 +190,8 @@
189
190
  width: 30%;
190
191
  display: inline-block;
191
192
 
192
- input[type="text"], input[type="number"] {
193
+ input[type='text'],
194
+ input[type='number'] {
193
195
  width: 50px;
194
196
  }
195
197
  }
@@ -198,15 +200,15 @@
198
200
 
199
201
  .remove-column {
200
202
  margin: 0 auto;
201
- color: #C32B2B;
202
- font-size: .7em;
203
+ color: #c32b2b;
204
+ font-size: 0.7em;
203
205
  font-weight: bold;
204
206
  line-height: 1.6em;
205
207
  text-decoration: underline;
206
208
  text-transform: uppercase;
207
209
  border: 0;
208
210
  border-radius: 5px;
209
- transition: .1s all;
211
+ transition: 0.1s all;
210
212
  float: right;
211
213
  outline: 0;
212
214
  cursor: pointer;
@@ -216,13 +218,14 @@
216
218
  padding-left: 1em;
217
219
  border: 0;
218
220
  border-left: rgba(0, 0, 0, 0.2) 4px solid;
219
- transition: .2s all;
221
+ transition: 0.2s all;
220
222
 
221
223
  &:not(:first-child) {
222
224
  margin-top: 2em;
223
225
  }
224
226
 
225
- input[type="text"], input[type="number"] {
227
+ input[type='text'],
228
+ input[type='number'] {
226
229
  font-size: 1em;
227
230
  }
228
231
 
@@ -236,13 +239,13 @@
236
239
 
237
240
  &:hover {
238
241
  border-left: rgba(0, 0, 0, 0.7) 4px solid;
239
- transition: .2s all;
242
+ transition: 0.2s all;
240
243
  }
241
244
  }
242
245
 
243
246
  span.subtext {
244
247
  display: block;
245
- color: rgba(0, 0, 0, .5);
248
+ color: rgba(0, 0, 0, 0.5);
246
249
  text-transform: none;
247
250
  font-weight: normal;
248
251
  }
@@ -255,25 +258,25 @@
255
258
  list-style: none;
256
259
 
257
260
  > li {
258
- margin-right: .3em;
259
- margin-bottom: .3em;
261
+ margin-right: 0.3em;
262
+ margin-bottom: 0.3em;
260
263
  }
261
264
 
262
265
  li > div {
263
266
  display: block;
264
267
  box-sizing: border-box;
265
- border: 1px solid #D1D1D1;
268
+ border: 1px solid #d1d1d1;
266
269
  border-radius: 2px;
267
- background: #F1F1F1;
268
- padding: .4em .6em;
269
- font-size: .8em;
270
- margin-bottom: .3em;
270
+ background: #f1f1f1;
271
+ padding: 0.4em 0.6em;
272
+ font-size: 0.8em;
273
+ margin-bottom: 0.3em;
271
274
  cursor: move;
272
275
  }
273
276
  }
274
277
 
275
278
  .info {
276
- font-size: .8em;
279
+ font-size: 0.8em;
277
280
  line-height: 1.4em;
278
281
  font-style: italic;
279
282
  padding-top: 10px;
@@ -288,11 +291,11 @@
288
291
  cursor: text;
289
292
 
290
293
  input.react-tags__search-input {
291
- font-size: .8rem;
294
+ font-size: 0.8rem;
292
295
  }
293
296
 
294
297
  span {
295
- display: inline
298
+ display: inline;
296
299
  }
297
300
 
298
301
  &.is-focused {
@@ -307,23 +310,23 @@
307
310
  .react-tags__selected-tag {
308
311
  display: inline-block;
309
312
  box-sizing: border-box;
310
- border: 1px solid #D1D1D1;
313
+ border: 1px solid #d1d1d1;
311
314
  border-radius: 2px;
312
- background: #F1F1F1;
313
- padding: .4em .6em;
314
- font-size: .8em;
315
- margin-right: .3em;
316
- margin-bottom: .3em;
315
+ background: #f1f1f1;
316
+ padding: 0.4em 0.6em;
317
+ font-size: 0.8em;
318
+ margin-right: 0.3em;
319
+ margin-bottom: 0.3em;
317
320
 
318
321
  &::after {
319
322
  content: '\2715';
320
- color: #AAA;
323
+ color: #aaa;
321
324
  margin-left: 8px;
322
325
  }
323
326
 
324
327
  &:hover,
325
328
  &:focus {
326
- border-color: #B1B1B1;
329
+ border-color: #b1b1b1;
327
330
  }
328
331
  }
329
332
 
@@ -335,7 +338,7 @@
335
338
  max-width: 100%;
336
339
  margin: 0;
337
340
  outline: none;
338
- padding: .5em .3em;
341
+ padding: 0.5em 0.3em;
339
342
  font-size: inherit;
340
343
  line-height: inherit;
341
344
  }
@@ -362,7 +365,7 @@
362
365
  padding: 0;
363
366
  list-style: none;
364
367
  background: white;
365
- border: 1px solid #D1D1D1;
368
+ border: 1px solid #d1d1d1;
366
369
  border-radius: 2px;
367
370
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
368
371
  }
@@ -406,7 +409,7 @@
406
409
  text-align: left;
407
410
 
408
411
  p {
409
- font-size: .8rem;
412
+ font-size: 0.8rem;
410
413
  }
411
414
 
412
415
  .advanced-toggle-link {
@@ -414,7 +417,6 @@
414
417
  display: block;
415
418
  text-align: left;
416
419
  cursor: pointer;
417
- color: rgba(0, 0, 0, .5);
418
420
  text-decoration: underline;
419
421
 
420
422
  span {
@@ -425,17 +427,17 @@
425
427
  }
426
428
 
427
429
  &:hover {
428
- color: rgba(0, 0, 0, .7);
430
+ color: rgba(0, 0, 0, 0.7);
429
431
  }
430
432
  }
431
433
 
432
434
  textarea {
433
435
  height: 400px;
434
436
  width: 100%;
435
- font-size: .9em;
436
- padding: .5em;
437
+ font-size: 0.9em;
438
+ padding: 0.5em;
437
439
  font-family: monospace;
438
- box-sizing: border-box
440
+ box-sizing: border-box;
439
441
  }
440
442
  }
441
443
 
@@ -468,7 +470,7 @@ ul.color-palette {
468
470
  }
469
471
 
470
472
  &.selected {
471
- border: rgba(0, 0, 0, .8) 2px solid;
473
+ border: rgba(0, 0, 0, 0.8) 2px solid;
472
474
  }
473
475
 
474
476
  span {
@@ -0,0 +1,74 @@
1
+ @import '../utils/variables';
2
+ @import '../themes/color-definitions';
3
+
4
+ .cove-guidance-block {
5
+ display: block;
6
+ position: relative;
7
+ padding: 0.75rem 1rem;
8
+ margin-left: 5px;
9
+ color: #444;
10
+ text-decoration: none;
11
+ border: $lightGray 1px solid;
12
+ border-left: none;
13
+ border-radius: 0 0.1875rem 0.1875rem 0;
14
+ transition: all 200ms $transition-expo-out;
15
+
16
+ &:before {
17
+ content: '';
18
+ position: absolute;
19
+ top: -1px;
20
+ left: -5px;
21
+ bottom: -1px;
22
+ width: 5px;
23
+ background: $blue;
24
+ border-radius: 0.1875rem 0 0 0.1875rem;
25
+ }
26
+
27
+ &:hover,
28
+ &:focus,
29
+ &:active {
30
+ background: $lightestGray;
31
+ color: #444;
32
+ transition: 0.2s all;
33
+ }
34
+
35
+ &:after {
36
+ content: '';
37
+ position: absolute;
38
+ inset: 0;
39
+ left: -4px;
40
+ margin: -4px;
41
+ border-radius: 0.1875rem;
42
+ outline: 2px solid transparent;
43
+ transition: outline 200ms $transition-expo-out;
44
+ pointer-events: none;
45
+ }
46
+
47
+ &:focus,
48
+ &:active {
49
+ outline: none;
50
+
51
+ &:after {
52
+ outline: 2px solid rgba(161, 161, 161, 0.6);
53
+ }
54
+ }
55
+
56
+ svg {
57
+ width: 60px;
58
+ color: $blue;
59
+ margin-right: 1rem;
60
+
61
+ path {
62
+ fill: currentColor;
63
+ }
64
+ }
65
+ }
66
+
67
+ .cove-guidance-block__header {
68
+ font-weight: bold;
69
+ font-size: 1.125rem;
70
+ }
71
+
72
+ .cove-guidance-block__content {
73
+ font-size: 0.875rem;
74
+ }
@@ -15,9 +15,5 @@
15
15
  max-width: 100%;
16
16
  max-height: 100%;
17
17
  pointer-events: none;
18
-
19
- path {
20
- fill: currentColor;
21
- }
22
18
  }
23
19
  }
@@ -0,0 +1,97 @@
1
+ .cove-input-group--checkbox {
2
+ margin-bottom: 1rem;
3
+ }
4
+
5
+ .cove-input-group--checkbox,
6
+ .cove-input-group--radio {
7
+ display: flex;
8
+ align-items: center;
9
+
10
+ label,
11
+ input[type='checkbox'],
12
+ input[type='radio'] {
13
+ cursor: pointer;
14
+ user-select: none;
15
+ }
16
+
17
+ label {
18
+ padding-right: 6px;
19
+
20
+ + input[type='checkbox'],
21
+ + input[type='radio'] {
22
+ margin-left: 0;
23
+ }
24
+ }
25
+
26
+ input[type='checkbox'],
27
+ input[type='radio'] {
28
+ display: inline-block;
29
+ margin-right: 0;
30
+ margin-left: 0;
31
+
32
+ + label {
33
+ padding-right: 0;
34
+ padding-left: 6px;
35
+ }
36
+ }
37
+
38
+ input[type='radio'] {
39
+ margin-bottom: 5px;
40
+ }
41
+ }
42
+
43
+ .cove-input__checkbox {
44
+ display: inline-block;
45
+ width: 1.75rem;
46
+ aspect-ratio: 1/1;
47
+ cursor: pointer;
48
+
49
+ &--small {
50
+ @extend .cove-input__checkbox;
51
+ width: 1.25rem;
52
+ }
53
+
54
+ &--large {
55
+ @extend .cove-input__checkbox;
56
+ width: 2.25rem;
57
+ }
58
+
59
+ &.active {
60
+ .cove-input__checkbox-box {
61
+ background-color: #fff;
62
+
63
+ &.custom-color {
64
+ box-shadow: none;
65
+ }
66
+ }
67
+
68
+ .cove-input__checkbox-check {
69
+ opacity: 1;
70
+ transform: translateY(-1px);
71
+ }
72
+ }
73
+ }
74
+
75
+ .cove-input__checkbox-box {
76
+ position: relative;
77
+ width: 100%;
78
+ height: 100%;
79
+ background-color: #f4f4f4;
80
+ border-radius: 3px;
81
+ box-shadow: inset 0 0 0 1px #c4c4c4;
82
+ transition: all 150ms $transition-expo-out;
83
+ }
84
+
85
+ .cove-input__checkbox-check {
86
+ position: absolute;
87
+ top: 0;
88
+ right: 0;
89
+ bottom: 0;
90
+ left: 0;
91
+ margin: 3px;
92
+ fill: #fff;
93
+ pointer-events: none;
94
+ transform: translateY(-1px);
95
+ transition: all 250ms $transition-expo-out;
96
+ opacity: 0;
97
+ }
@@ -0,0 +1,74 @@
1
+ .cove-input-group {
2
+ position: relative;
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ align-items: stretch;
6
+ width: 100%;
7
+
8
+ > {
9
+ .cove-input {
10
+ position: relative;
11
+ flex: 1 1 auto;
12
+ width: 1%;
13
+ min-width: 0;
14
+ }
15
+
16
+ .cove-input__label {
17
+ display: none;
18
+ }
19
+ }
20
+
21
+ &:not(.clear) {
22
+ > {
23
+ :not(:first-child) {
24
+ margin-left: -1px;
25
+ border-top-left-radius: 0;
26
+ border-bottom-left-radius: 0;
27
+ }
28
+
29
+ :not(:last-child) {
30
+ border-top-right-radius: 0;
31
+ border-bottom-right-radius: 0;
32
+ }
33
+ }
34
+ }
35
+
36
+ &.clear {
37
+ &[flow='left'] > {
38
+ :first-child {
39
+ border: 0;
40
+ left: 0;
41
+ }
42
+ }
43
+
44
+ &[flow='right'] > {
45
+ :last-child {
46
+ border: 0;
47
+ right: 0;
48
+ }
49
+ }
50
+
51
+ .cove-input-group__label {
52
+ position: absolute;
53
+ background-color: transparent;
54
+ height: 100%;
55
+ pointer-events: none;
56
+ user-select: none;
57
+ }
58
+ }
59
+ }
60
+
61
+ .cove-input-group__label {
62
+ display: flex;
63
+ align-items: center;
64
+ padding: 0.375rem 0.75rem;
65
+ font-size: 1rem;
66
+ font-weight: 400;
67
+ line-height: 1.5;
68
+ color: $baseColor;
69
+ text-align: center;
70
+ white-space: nowrap;
71
+ background-color: $lightestGray;
72
+ border: 1px solid $lightGray;
73
+ border-radius: 0.1875rem;
74
+ }