@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
@@ -1,372 +0,0 @@
1
- @import "../utils/variables";
2
- @import "../themes/index";
3
-
4
- input, datalist, textarea, select {
5
- transition: border-color 200ms $transition-expo-out;
6
- font-family: sans-serif;
7
- }
8
-
9
- input[type="text"],
10
- input[type="number"],
11
- input[type="date"],
12
- input[type="search"],
13
- datalist, textarea, select {
14
- padding: 0.5em 0.5em;
15
- border-width: 1px;
16
- border-style: solid;
17
- border-color: #cbcbcb;
18
- border-radius: 3px;
19
- width: 100%;
20
-
21
- &::placeholder {
22
- transition: opacity 400ms $transition-expo-out;
23
- color: #b3b3b3;
24
- opacity: 1;
25
- }
26
-
27
- &:focus {
28
- border-width: 1px;
29
- border-style: solid;
30
- border-color: #4c4c4c;
31
- outline: 0;
32
-
33
- &::placeholder {
34
- opacity: 0;
35
- }
36
- }
37
- }
38
-
39
- select {
40
- &.input--small {
41
- padding: 0;
42
- }
43
- }
44
-
45
- input[type="text"] {
46
- }
47
-
48
- textarea {
49
- width: 100%;
50
- min-height: 140px;
51
- max-width: 100%;
52
- line-height: 1.5em;
53
- }
54
-
55
- label {
56
- display: block;
57
- font-size: 0.8em;
58
- text-transform: uppercase;
59
- user-select: none;
60
-
61
- &:not(:first-child) {
62
- margin-top: 1em;
63
- }
64
- }
65
-
66
- .cove-input-group {
67
- &:not(:last-child) {
68
- margin-bottom: 1.5em;
69
- }
70
-
71
- > label {
72
- margin-bottom: 0.5rem;
73
- }
74
-
75
- .cove-input-group--checkbox:last-of-type,
76
- .cove-input-group--radio:last-of-type {
77
- margin-bottom: 0;
78
- }
79
- }
80
-
81
- .cove-input-group--checkbox {
82
- margin-bottom: 1rem;
83
- }
84
-
85
- .cove-input-group--checkbox,
86
- .cove-input-group--radio {
87
- display: flex;
88
- align-items: center;
89
-
90
- label,
91
- input[type="checkbox"],
92
- input[type="radio"] {
93
- cursor: pointer;
94
- user-select: none;
95
- }
96
-
97
- label {
98
- padding-right: 6px;
99
-
100
- + input[type="checkbox"],
101
- + input[type="radio"] {
102
- margin-left: 0;
103
- }
104
- }
105
-
106
- input[type="checkbox"],
107
- input[type="radio"] {
108
- display: inline-block;
109
- margin-right: 0;
110
- margin-left: 0;
111
-
112
- + label {
113
- padding-right: 0;
114
- padding-left: 6px;
115
- }
116
- }
117
-
118
- input[type="radio"] {
119
- margin-bottom: 5px;
120
- }
121
- }
122
-
123
- .cove-input--hidden {
124
- position: absolute;
125
- z-index: -999;
126
- width: 1px;
127
- height: 1px;
128
- margin: 0;
129
- opacity: 0;
130
- pointer-events: none;
131
- }
132
-
133
- .cove-input__toggle {
134
- display: inline-block;
135
- position: relative;
136
- width: 60px;
137
- height: 26px;
138
- padding: 3px;
139
- cursor: pointer;
140
-
141
- &.active {
142
- .cove-input__toggle-button {
143
- left: 100%;
144
- transform: translateX(-100%);
145
- }
146
-
147
- .cove-input__toggle-track {
148
- background-color: #75b936;
149
- }
150
- }
151
-
152
- &.toggle--block {
153
- width: unset;
154
- aspect-ratio: 1.85/1;
155
- padding: 4px;
156
-
157
- .cove-input__toggle-button {
158
- border-radius: 10%;
159
- box-shadow: 0 2px 5px 0 rgb(0 0 0 / 20%);
160
- }
161
-
162
- .cove-input__toggle-track {
163
- border-radius: 4px;
164
- box-shadow: 0 0 0 transparent;
165
- }
166
-
167
- &.active {
168
- .cove-input__toggle-track {
169
- box-shadow: inset -40px 0 10px -10px rgb(0 0 0 / 15%);
170
- }
171
- }
172
- }
173
-
174
- &.toggle--pill {
175
- width: 60px;
176
- height: 25px;
177
-
178
- .cove-input__toggle-button {
179
- border-radius: 999px;
180
- aspect-ratio: 1.75/1;
181
-
182
- &::before,
183
- &::after {
184
- content: '';
185
- display: block;
186
- width: 1px;
187
- height: calc(100% - 10px);
188
- background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(227, 227, 227, 1) 30%, rgba(227, 227, 227, 1) 70%, rgba(255, 255, 255, 1) 100%);
189
- position: absolute;
190
- top: 5px;
191
- }
192
-
193
- &::before {
194
- left: 42%;
195
- }
196
-
197
- &::after {
198
- right: 42%;
199
- }
200
- }
201
- }
202
-
203
- &.toggle--3d {
204
- .cove-input__toggle-button {
205
- background: radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 1) 45%, rgb(200 200 200) 100%);
206
- box-shadow: 0 1px 3px 1px rgb(0 0 0 / 40%), inset 0 0 3px 2px #fff;
207
- height: 160%;
208
- top: -30%;
209
- transform: translateX(-20%);
210
-
211
- &:after {
212
- content: '';
213
- display: block;
214
- position: absolute;
215
- top: 0;
216
- left: 0;
217
- width: calc(100% - 6px);
218
- height: calc(100% - 6px);
219
- border: 1px solid #ececec;
220
- border-radius: 999px;
221
- margin: 3px;
222
- }
223
- }
224
-
225
- .cove-input__toggle-track {
226
- box-shadow: inset 1px 1px 3px rgb(0 0 0 / 40%)
227
- }
228
-
229
- &.active {
230
- .cove-input__toggle-button {
231
- transform: translateX(-80%);
232
- }
233
-
234
- .cove-input__toggle-track {
235
- box-shadow: inset 1px 1px 3px rgb(0 0 0 / 60%)
236
- }
237
- }
238
- }
239
- }
240
-
241
- .cove-input__toggle--small {
242
- @extend .cove-input__toggle;
243
- width: 40px;
244
- height: 20px;
245
-
246
- &.toggle--pill {
247
- width: 45px;
248
- height: 20px;
249
-
250
- .cove-input__toggle-button {
251
- aspect-ratio: 1.5/1;
252
-
253
- &:before,
254
- &:after {
255
- display: none;
256
- }
257
- }
258
- }
259
-
260
- &.toggle--3d {
261
- .cove-input__toggle-button {
262
- box-shadow: 0 1px 2px 2px rgb(0 0 0 / 22%), inset 0 0 3px 2px #fff;
263
-
264
- &:after {
265
- width: calc(100% - 4px);
266
- height: calc(100% - 4px);
267
- margin: 2px;
268
- }
269
- }
270
- }
271
- }
272
-
273
- .cove-input__toggle--large {
274
- @extend .cove-input__toggle;
275
- width: 80px;
276
- height: 35px;
277
-
278
- &.toggle--pill {
279
- width: 80px;
280
- height: 30px;
281
- }
282
-
283
- &.toggle--3d {
284
- .cove-input__toggle-button {
285
-
286
- &:after {
287
- width: calc(100% - 8px);
288
- height: calc(100% - 8px);
289
- margin: 4px;
290
- }
291
- }
292
- }
293
- }
294
-
295
- .cove-input__toggle-button {
296
- position: relative;
297
- left: 0;
298
- height: 100%;
299
- aspect-ratio: 1/1;
300
- background-color: #fff;
301
- box-shadow: -2px 4px 10px -7px rgb(0 0 0);
302
- border-radius: 100%;
303
- transition: all 200ms $transition-expo-out;
304
- z-index: 2;
305
- }
306
-
307
- .cove-input__toggle-track {
308
- position: absolute;
309
- top: 0;
310
- left: 0;
311
- width: 100%;
312
- height: 100%;
313
- background-color: #ccc;
314
- border-radius: 999px;
315
- transition: all 200ms $transition-expo-out;
316
- }
317
-
318
- .cove-input__checkbox {
319
- display: inline-block;
320
- width: 1.75rem;
321
- aspect-ratio: 1/1;
322
- cursor: pointer;
323
-
324
- &--small {
325
- @extend .cove-input__checkbox;
326
- width: 1.25rem;
327
- }
328
-
329
- &--large {
330
- @extend .cove-input__checkbox;
331
- width: 2.25rem;
332
- }
333
-
334
- &.active {
335
- .cove-input__checkbox-box {
336
- background-color: #fff;
337
-
338
- &.custom-color {
339
- box-shadow: none;
340
- }
341
- }
342
-
343
- .cove-input__checkbox-check {
344
- opacity: 1;
345
- transform: translateY(-1px);
346
- }
347
- }
348
- }
349
-
350
- .cove-input__checkbox-box {
351
- position: relative;
352
- width: 100%;
353
- height: 100%;
354
- background-color: #f4f4f4;
355
- border-radius: 3px;
356
- box-shadow: inset 0 0 0 1px #c4c4c4;
357
- transition: all 150ms $transition-expo-out;
358
- }
359
-
360
- .cove-input__checkbox-check {
361
- position: absolute;
362
- top: 0;
363
- right: 0;
364
- bottom: 0;
365
- left: 0;
366
- margin: 3px;
367
- fill: #fff;
368
- pointer-events: none;
369
- transform: translateY(-1px);
370
- transition: all 250ms $transition-expo-out;
371
- opacity: 0;
372
- }
@@ -1,13 +0,0 @@
1
- .header {
2
- position: relative;
3
- padding: 0.6em 0.8em;
4
- margin: 0;
5
- color: #fff;
6
- font-size: 1.1em;
7
- border-bottom-width: 3px;
8
- border-bottom-style: solid;
9
-
10
- &:not(:empty) {
11
- margin: 0 0 1rem 0;
12
- }
13
- }
@@ -1,46 +0,0 @@
1
- .guidance-link {
2
- display: flex;
3
- position: relative;
4
- padding: .75em 1em;
5
- margin: 2em 0 1em;
6
- text-decoration: none;
7
- font-size: 1em;
8
- border: $lightGray 1px solid;
9
- color: #444;
10
- transition: .2s all;
11
-
12
- &:before {
13
- content: " ";
14
- position: absolute;
15
- top: -1px;
16
- left: -1px;
17
- bottom: -1px;
18
- width: 5px;
19
- background: $blue;
20
- }
21
-
22
- &:hover {
23
- background: $lightestGray;
24
- color: #444;
25
- transition: .2s all;
26
- }
27
-
28
- > div {
29
- font-size: .9em;
30
- }
31
-
32
- svg {
33
- width: 60px;
34
- color: $blue;
35
- margin-right: 1rem;
36
-
37
- path {
38
- fill: currentColor;
39
- }
40
- }
41
-
42
- h3 {
43
- font-weight: 600;
44
- font-size: 1.2rem;
45
- }
46
- }