@cdc/core 1.1.3 → 9.22.9

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 (114) hide show
  1. package/assets/filtered-text.svg +1 -0
  2. package/assets/icon-caret-down.svg +3 -0
  3. package/assets/icon-caret-filled-down.svg +3 -0
  4. package/assets/icon-caret-filled-up.svg +3 -0
  5. package/assets/icon-caret-up.svg +3 -0
  6. package/assets/icon-chart-bar-paired.svg +15 -0
  7. package/assets/icon-chart-bar-stacked.svg +10 -0
  8. package/assets/icon-chart-bar.svg +3 -0
  9. package/assets/icon-chart-line.svg +3 -0
  10. package/assets/icon-chart-pie.svg +3 -0
  11. package/assets/icon-check.svg +3 -0
  12. package/assets/icon-close.svg +3 -1
  13. package/assets/icon-code.svg +2 -2
  14. package/assets/icon-dashboard.svg +34 -0
  15. package/assets/icon-databite.svg +3 -0
  16. package/assets/icon-edit.svg +3 -0
  17. package/assets/icon-file-upload.svg +3 -0
  18. package/assets/icon-filter-bars.svg +5 -0
  19. package/assets/icon-gear.svg +6 -0
  20. package/assets/icon-grid.svg +2 -3
  21. package/assets/icon-info.svg +1 -1
  22. package/assets/icon-link.svg +3 -0
  23. package/assets/{alabama-graphic.svg → icon-map-alabama.svg} +2 -2
  24. package/assets/icon-map-usa.svg +3 -0
  25. package/assets/icon-map-world.svg +3 -0
  26. package/assets/icon-minus.svg +3 -0
  27. package/assets/icon-move.svg +8 -0
  28. package/assets/icon-plus.svg +3 -0
  29. package/assets/icon-question-circle.svg +3 -0
  30. package/assets/icon-tools.svg +8 -0
  31. package/assets/icon-upload.svg +3 -0
  32. package/assets/icon-warning-circle.svg +3 -0
  33. package/assets/{icon-warning.svg → icon-warning-triangle.svg} +1 -1
  34. package/components/AdvancedEditor.js +1 -1
  35. package/components/{ErrorBoundary.js → ErrorBoundary.jsx} +0 -0
  36. package/components/{LegendCircle.js → LegendCircle.jsx} +0 -0
  37. package/components/{Loading.js → Loading.jsx} +0 -0
  38. package/components/{Waiting.js → Waiting.jsx} +0 -0
  39. package/components/elements/Button.jsx +122 -3
  40. package/components/elements/Card.jsx +13 -0
  41. package/components/inputs/InputCheckbox.jsx +11 -3
  42. package/components/inputs/InputGroup.jsx +50 -0
  43. package/components/inputs/InputSelect.jsx +2 -2
  44. package/components/inputs/InputText.jsx +17 -18
  45. package/components/inputs/InputToggle.jsx +18 -18
  46. package/components/managers/DataDesigner.jsx +171 -0
  47. package/components/ui/Icon.jsx +50 -12
  48. package/components/ui/LoadSpin.jsx +24 -0
  49. package/components/ui/Modal.jsx +7 -2
  50. package/components/ui/Overlay.jsx +3 -1
  51. package/components/ui/Tooltip.jsx +18 -9
  52. package/data/colorPalettes.js +170 -124
  53. package/data/dataDesignerTables.js +148 -0
  54. package/{components → helpers}/DataTransform.js +3 -3
  55. package/helpers/fetchRemoteData.js +43 -0
  56. package/package.json +3 -2
  57. package/styles/_data-table.scss +13 -13
  58. package/styles/_global.scss +14 -0
  59. package/styles/_reset.scss +11 -1
  60. package/styles/base.scss +17 -1
  61. package/styles/v2/base/_file-selector.scss +20 -0
  62. package/styles/v2/base/_general.scss +9 -22
  63. package/styles/v2/base/_heading.scss +20 -0
  64. package/styles/v2/base/_reset.scss +2 -1
  65. package/styles/v2/base/index.scss +5 -1
  66. package/styles/v2/components/button.scss +27 -66
  67. package/styles/v2/components/card.scss +7 -0
  68. package/styles/v2/components/data-designer.scss +100 -0
  69. package/styles/v2/components/editor.scss +2 -1
  70. package/styles/v2/components/guidance-block.scss +74 -0
  71. package/styles/v2/components/icon.scss +0 -4
  72. package/styles/v2/components/input/_input-check-radio.scss +97 -0
  73. package/styles/v2/components/input/_input-group.scss +74 -0
  74. package/styles/v2/components/input/_input-slider.scss +184 -0
  75. package/styles/v2/components/input/_input.scss +66 -0
  76. package/styles/v2/components/input/index.scss +7 -0
  77. package/styles/v2/components/loadspin.scss +100 -0
  78. package/styles/v2/components/modal.scss +13 -6
  79. package/styles/v2/components/overlay.scss +2 -0
  80. package/styles/v2/layout/_alert.scss +11 -10
  81. package/styles/v2/layout/_component.scss +8 -1
  82. package/styles/v2/layout/_data-table.scss +71 -150
  83. package/styles/v2/layout/_progression.scss +4 -2
  84. package/styles/v2/layout/index.scss +0 -2
  85. package/styles/v2/main.scss +52 -2
  86. package/styles/v2/themes/_color-definitions.scss +31 -1
  87. package/styles/v2/utils/_align.scss +17 -0
  88. package/styles/v2/utils/_breakpoints.scss +18 -0
  89. package/styles/v2/utils/_grid.scss +47 -0
  90. package/styles/v2/utils/_mixins.scss +0 -16
  91. package/styles/v2/utils/_spacers.scss +31 -0
  92. package/styles/v2/utils/_variables.scss +7 -0
  93. package/styles/v2/utils/index.scss +7 -2
  94. package/assets/asc.svg +0 -1
  95. package/assets/chart-bar-solid.svg +0 -1
  96. package/assets/chart-line-solid.svg +0 -1
  97. package/assets/chart-pie-solid.svg +0 -1
  98. package/assets/check.svg +0 -3
  99. package/assets/dashboard.svg +0 -11
  100. package/assets/data-bite-graphic.svg +0 -3
  101. package/assets/desc.svg +0 -1
  102. package/assets/file-upload-solid.svg +0 -1
  103. package/assets/horizontal-stacked-bar.svg +0 -1
  104. package/assets/link.svg +0 -1
  105. package/assets/minus.svg +0 -1
  106. package/assets/paired-bar.svg +0 -11
  107. package/assets/plus.svg +0 -1
  108. package/assets/question-circle.svg +0 -1
  109. package/assets/upload-solid.svg +0 -1
  110. package/assets/usa-graphic.svg +0 -3
  111. package/assets/world-graphic.svg +0 -3
  112. package/styles/v2/components/input.scss +0 -372
  113. package/styles/v2/layout/_header.scss +0 -13
  114. package/styles/v2/layout/_link.scss +0 -46
@@ -0,0 +1,184 @@
1
+ .cove-input__slider {
2
+ display: inline-block;
3
+ position: relative;
4
+ width: 60px;
5
+ height: 26px;
6
+ padding: 3px;
7
+ cursor: pointer;
8
+
9
+ &.active {
10
+ .cove-input__slider-button {
11
+ left: 100%;
12
+ transform: translateX(-100%);
13
+ }
14
+
15
+ .cove-input__slider-track {
16
+ background-color: #75b936;
17
+ }
18
+ }
19
+
20
+ &.slider--block {
21
+ width: unset;
22
+ aspect-ratio: 1.85/1;
23
+ padding: 4px;
24
+
25
+ .cove-input__slider-button {
26
+ border-radius: 10%;
27
+ box-shadow: 0 2px 5px 0 rgb(0 0 0 / 20%);
28
+ }
29
+
30
+ .cove-input__slider-track {
31
+ border-radius: 4px;
32
+ box-shadow: 0 0 0 transparent;
33
+ }
34
+
35
+ &.active {
36
+ .cove-input__slider-track {
37
+ box-shadow: inset -40px 0 10px -10px rgb(0 0 0 / 15%);
38
+ }
39
+ }
40
+ }
41
+
42
+ &.slider--pill {
43
+ width: 60px;
44
+ height: 25px;
45
+
46
+ .cove-input__slider-button {
47
+ border-radius: 999px;
48
+ aspect-ratio: 1.75/1;
49
+
50
+ &::before,
51
+ &::after {
52
+ content: '';
53
+ display: block;
54
+ width: 1px;
55
+ height: calc(100% - 10px);
56
+ 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%);
57
+ position: absolute;
58
+ top: 5px;
59
+ }
60
+
61
+ &::before {
62
+ left: 42%;
63
+ }
64
+
65
+ &::after {
66
+ right: 42%;
67
+ }
68
+ }
69
+ }
70
+
71
+ &.slider--3d {
72
+ .cove-input__slider-button {
73
+ background: radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 1) 45%, rgb(200 200 200) 100%);
74
+ box-shadow: 0 1px 3px 1px rgb(0 0 0 / 40%), inset 0 0 3px 2px #fff;
75
+ height: 160%;
76
+ top: -30%;
77
+ transform: translateX(-20%);
78
+
79
+ &:after {
80
+ content: '';
81
+ display: block;
82
+ position: absolute;
83
+ top: 0;
84
+ left: 0;
85
+ width: calc(100% - 6px);
86
+ height: calc(100% - 6px);
87
+ border: 1px solid #ececec;
88
+ border-radius: 999px;
89
+ margin: 3px;
90
+ }
91
+ }
92
+
93
+ .cove-input__slider-track {
94
+ box-shadow: inset 1px 1px 3px rgb(0 0 0 / 40%)
95
+ }
96
+
97
+ &.active {
98
+ .cove-input__slider-button {
99
+ transform: translateX(-80%);
100
+ }
101
+
102
+ .cove-input__slider-track {
103
+ box-shadow: inset 1px 1px 3px rgb(0 0 0 / 60%)
104
+ }
105
+ }
106
+ }
107
+ }
108
+
109
+ .cove-input__slider--small {
110
+ @extend .cove-input__slider;
111
+ width: 40px;
112
+ height: 20px;
113
+
114
+ &.slider--pill {
115
+ width: 45px;
116
+ height: 20px;
117
+
118
+ .cove-input__slider-button {
119
+ aspect-ratio: 1.5/1;
120
+
121
+ &:before,
122
+ &:after {
123
+ display: none;
124
+ }
125
+ }
126
+ }
127
+
128
+ &.slider--3d {
129
+ .cove-input__slider-button {
130
+ box-shadow: 0 1px 2px 2px rgb(0 0 0 / 22%), inset 0 0 3px 2px #fff;
131
+
132
+ &:after {
133
+ width: calc(100% - 4px);
134
+ height: calc(100% - 4px);
135
+ margin: 2px;
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ .cove-input__slider--large {
142
+ @extend .cove-input__slider;
143
+ width: 80px;
144
+ height: 35px;
145
+
146
+ &.slider--pill {
147
+ width: 80px;
148
+ height: 30px;
149
+ }
150
+
151
+ &.slider--3d {
152
+ .cove-input__slider-button {
153
+
154
+ &:after {
155
+ width: calc(100% - 8px);
156
+ height: calc(100% - 8px);
157
+ margin: 4px;
158
+ }
159
+ }
160
+ }
161
+ }
162
+
163
+ .cove-input__slider-button {
164
+ position: relative;
165
+ left: 0;
166
+ height: 100%;
167
+ aspect-ratio: 1/1;
168
+ background-color: #fff;
169
+ box-shadow: -2px 4px 10px -7px rgb(0 0 0);
170
+ border-radius: 100%;
171
+ transition: all 200ms $transition-expo-out;
172
+ z-index: 2;
173
+ }
174
+
175
+ .cove-input__slider-track {
176
+ position: absolute;
177
+ top: 0;
178
+ left: 0;
179
+ width: 100%;
180
+ height: 100%;
181
+ background-color: #ccc;
182
+ border-radius: 999px;
183
+ transition: all 200ms $transition-expo-out;
184
+ }
@@ -0,0 +1,66 @@
1
+ .cove-input {
2
+ display: block;
3
+ position: relative;
4
+ padding: 0.5em 0.5em;
5
+ border-width: 1px;
6
+ border-style: solid;
7
+ border-color: #cbcbcb;
8
+ border-radius: 0.1875rem;
9
+ transition: border-color 200ms $transition-expo-out;
10
+ font-family: sans-serif;
11
+ color: $baseColor;
12
+ width: 100%;
13
+ max-width: 100%;
14
+
15
+ &::placeholder {
16
+ transition: opacity 400ms $transition-expo-out;
17
+ color: #b3b3b3;
18
+ opacity: 1;
19
+ }
20
+
21
+ &:focus {
22
+ border-width: 1px;
23
+ border-style: solid;
24
+ border-color: #4c4c4c;
25
+ outline: 0;
26
+
27
+ &::placeholder {
28
+ opacity: 0;
29
+ }
30
+ }
31
+
32
+ &[disabled] {
33
+ background-color: #e4e4e4;
34
+ }
35
+
36
+ &.input--small {
37
+ padding: 0;
38
+ }
39
+ }
40
+
41
+ .cove-input__label {
42
+ display: inline-block;
43
+ margin-bottom: 0.5rem;
44
+ font-size: 0.75rem;
45
+ color: $baseColor;
46
+ text-transform: uppercase;
47
+ user-select: none;
48
+ }
49
+
50
+ .cove-input__textarea {
51
+ width: 100%;
52
+ min-height: 140px;
53
+ max-width: 100%;
54
+ line-height: 1.5em;
55
+ color: $baseColor;
56
+ }
57
+
58
+ .cove-input--hidden {
59
+ position: absolute;
60
+ z-index: -999;
61
+ width: 1px;
62
+ height: 1px;
63
+ margin: 0;
64
+ opacity: 0;
65
+ pointer-events: none;
66
+ }
@@ -0,0 +1,7 @@
1
+ @import "../../utils/variables";
2
+ @import "../../themes/index";
3
+
4
+ @import "input";
5
+ @import "input-check-radio";
6
+ @import "input-group";
7
+ @import "input-slider";
@@ -0,0 +1,100 @@
1
+ .cove-loadspin {
2
+ display: inline-block;
3
+ overflow: hidden;
4
+ }
5
+
6
+ .cove-loadspin__roller {
7
+ display: inline-block;
8
+ position: relative;
9
+ width: 100%;
10
+ height: 100%;
11
+ transform-origin: top left;
12
+
13
+ div {
14
+ animation: cove-loadspin__roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
15
+ transform-origin: 40px 40px;
16
+
17
+ &:after {
18
+ content: " ";
19
+ display: block;
20
+ position: absolute;
21
+ width: 7px;
22
+ height: 7px;
23
+ border-radius: 50%;
24
+ background-color: inherit;
25
+ margin: -4px 0 0 -4px;
26
+ }
27
+
28
+ &:nth-child(1) {
29
+ &:after {
30
+ top: 63px;
31
+ left: 63px;
32
+ }
33
+ }
34
+
35
+ &:nth-child(2) {
36
+ animation-delay: -0.05s;
37
+ &:after {
38
+ top: 68px;
39
+ left: 56px;
40
+ }
41
+ }
42
+
43
+ &:nth-child(3) {
44
+ animation-delay: -0.1s;
45
+ &:after {
46
+ top: 71px;
47
+ left: 48px;
48
+ }
49
+ }
50
+
51
+ &:nth-child(4) {
52
+ animation-delay: -0.15s;
53
+ &:after {
54
+ top: 72px;
55
+ left: 40px;
56
+ }
57
+ }
58
+
59
+ &:nth-child(5) {
60
+ animation-delay: -0.2s;
61
+ &:after {
62
+ top: 71px;
63
+ left: 32px;
64
+ }
65
+ }
66
+
67
+ &:nth-child(6) {
68
+ animation-delay: -0.25s;
69
+ &:after {
70
+ top: 68px;
71
+ left: 24px;
72
+ }
73
+ }
74
+
75
+ &:nth-child(7) {
76
+ animation-delay: -0.3s;
77
+ &:after {
78
+ top: 63px;
79
+ left: 17px;
80
+ }
81
+ }
82
+
83
+ &:nth-child(8) {
84
+ animation-delay: -0.35s;
85
+ &:after {
86
+ top: 56px;
87
+ left: 12px;
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ @keyframes cove-loadspin__roller {
94
+ 0% {
95
+ transform: rotate(0deg);
96
+ }
97
+ 100% {
98
+ transform: rotate(360deg);
99
+ }
100
+ }
@@ -1,11 +1,13 @@
1
1
  @import "../utils/variables";
2
2
  @import "../themes/index";
3
3
 
4
- .cove-modal {
5
- background-color: #fff;
6
- border-radius: 5px;
7
- box-shadow: 3px 3px 10px rgb(0 0 0 / 20%);
8
- font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, Fira Sans, sans-serif;
4
+ .cove-overlay {
5
+ .cove-modal {
6
+ background-color: #fff;
7
+ border-radius: 5px;
8
+ box-shadow: 3px 3px 10px rgb(0 0 0 / 20%);
9
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, Fira Sans, sans-serif;
10
+ }
9
11
  }
10
12
 
11
13
  .cove-modal__header {
@@ -27,7 +29,12 @@
27
29
  }
28
30
 
29
31
  .cove-modal__content {
30
- padding: 1rem;
32
+ padding: 1rem !important;
33
+
34
+ label {
35
+ margin-top: 1rem !important;
36
+ margin-bottom: 1rem !important;
37
+ }
31
38
  }
32
39
 
33
40
  .cove-modal__footer {
@@ -62,6 +62,7 @@
62
62
  align-items: center;
63
63
  margin-left: auto;
64
64
  margin-right: auto;
65
+ overflow-y: auto;
65
66
  }
66
67
 
67
68
  .cove-overlay__container {
@@ -71,6 +72,7 @@
71
72
  transform: translateY(25px);
72
73
  opacity: 0;
73
74
  z-index: 1;
75
+ margin: auto !important;
74
76
  }
75
77
 
76
78
  .overlay-error {
@@ -1,9 +1,10 @@
1
- .error-box {
1
+ .cove-alert__error {
2
2
  display: flex;
3
- padding: .3rem 1rem;
4
3
  justify-content: space-between;
5
- background: #FFC2C2;
4
+ padding: .3rem 1rem;
6
5
  font-size: .9rem;
6
+ background: #FFC2C2;
7
+ border-radius: 0.1875rem;
7
8
 
8
9
  strong {
9
10
  font-weight: 600;
@@ -13,21 +14,21 @@
13
14
  margin: 0;
14
15
  }
15
16
 
16
- .dismiss-error {
17
- flex-shrink: 0;
17
+ .cove-alert__error-dismiss {
18
18
  font-size: .8rem;
19
+ flex-shrink: 0;
19
20
  cursor: pointer;
20
21
  }
21
22
  }
22
23
 
23
- .warning {
24
+ .cove-alert__warning {
25
+ padding: .75rem 1rem;
26
+ margin: 1rem 0;
27
+ font-size: 0.8rem;
24
28
  color: #D8000C;
25
29
  background-color: #FFD2D2;
26
30
  border: #D8000C 1px solid;
27
- padding: .75em 1em;
28
- margin: 1em 0;
29
- font-size: .8em;
30
- border-radius: .4em;
31
+ border-radius: 0.1875rem;
31
32
 
32
33
  strong {
33
34
  font-weight: 600;
@@ -16,7 +16,6 @@
16
16
 
17
17
  .cove-component__content {
18
18
  padding-top: 1rem;
19
- background: $lightestGray;
20
19
  border: solid 1px #ccc;
21
20
  border-top: none;
22
21
  border-radius: 0 0 3px 3px;
@@ -24,6 +23,14 @@
24
23
  &.no-borders {
25
24
  border: none;
26
25
  }
26
+
27
+ .cdc-data-bite-inner-container:not(.component--has-title) .cove-component__content:not(.no-borders) {
28
+ border-top: 1px solid #ccc;
29
+ }
30
+
31
+ .cove-component__content:not(.component--hideBackgroundColor) {
32
+ background: $lightestGray;
33
+ }
27
34
  }
28
35
 
29
36
  .cove-component__content-wrap {