@cdc/waffle-chart 1.0.2 → 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.
@@ -198,203 +198,388 @@ const EditorPanel = memo((props) => {
198
198
  }
199
199
 
200
200
  const editorContent = (
201
-
202
201
  <Accordion>
203
202
  <Accordion.Section title="General">
204
- <InputText value={config.title} fieldName="title" label="Title" placeholder="Waffle Chart Title"
205
- updateField={updateField}/>
206
- <InputText type="textarea" value={config.content} fieldName="content" label="Message" updateField={updateField} tooltip={
207
- <Tooltip style={{textTransform: 'none'}}>
208
- <Tooltip.Target><Icon display="question" style={{marginLeft: '0.5rem'}}/></Tooltip.Target>
209
- <Tooltip.Content>
210
- <p>Enter the message text for the visualization. The following HTML tags are supported: strong, em, sup, and sub.</p>
211
- </Tooltip.Content>
212
- </Tooltip>
213
- }/>
214
- <InputText value={config.subtext} fieldName="subtext" label="Subtext/Citation"
215
- placeholder="Waffle Chart Subtext or Citation" updateField={updateField} tooltip={
216
- <Tooltip style={{textTransform: 'none'}}>
217
- <Tooltip.Target><Icon display="question" style={{marginLeft: '0.5rem'}}/></Tooltip.Target>
218
- <Tooltip.Content>
219
- <p>Enter supporting text to display below the data visualization, if applicable. The following HTML tags are supported: strong, em, sup, and sub.</p>
220
- </Tooltip.Content>
221
- </Tooltip>
222
- }/>
203
+ <InputText
204
+ value={config.title}
205
+ fieldName="title"
206
+ label="Title"
207
+ placeholder="Waffle Chart Title"
208
+ updateField={updateField}
209
+ />
210
+
211
+ <InputText
212
+ type="textarea"
213
+ value={config.content}
214
+ fieldName="content"
215
+ label="Message"
216
+ updateField={updateField}
217
+ tooltip={
218
+ <Tooltip style={{ textTransform: "none" }}>
219
+ <Tooltip.Target>
220
+ <Icon display="question" style={{ marginLeft: "0.5rem" }} />
221
+ </Tooltip.Target>
222
+ <Tooltip.Content>
223
+ <p>
224
+ Enter the message text for the visualization. The following
225
+ HTML tags are supported: strong, em, sup, and sub.
226
+ </p>
227
+ </Tooltip.Content>
228
+ </Tooltip>
229
+ }
230
+ />
231
+
232
+ <InputText
233
+ value={config.subtext}
234
+ fieldName="subtext"
235
+ label="Subtext/Citation"
236
+ placeholder="Waffle Chart Subtext or Citation"
237
+ updateField={updateField}
238
+ tooltip={
239
+ <Tooltip style={{ textTransform: "none" }}>
240
+ <Tooltip.Target>
241
+ <Icon display="question" style={{ marginLeft: "0.5rem" }} />
242
+ </Tooltip.Target>
243
+ <Tooltip.Content>
244
+ <p>
245
+ Enter supporting text to display below the data visualization,
246
+ if applicable. The following HTML tags are supported: strong,
247
+ em, sup, and sub.
248
+ </p>
249
+ </Tooltip.Content>
250
+ </Tooltip>
251
+ }
252
+ />
223
253
  </Accordion.Section>
224
254
  <Accordion.Section title="Data">
225
- <h4 style={{ fontWeight: '600' }}>Numerator</h4>
255
+ <h4 style={{ fontWeight: "600" }}>Numerator</h4>
226
256
  <div className="cove-accordion__panel-section">
227
257
  <div className="cove-input-group">
228
- <InputSelect value={config.dataColumn || ''} fieldName="dataColumn" label="Data Column"
229
- updateField={updateField} initial="Select" options={getColumns()}/>
258
+ <InputSelect
259
+ value={config.dataColumn || ""}
260
+ fieldName="dataColumn"
261
+ label="Data Column"
262
+ updateField={updateField}
263
+ initial="Select"
264
+ options={getColumns()}
265
+ className="cove-input"
266
+ />
230
267
  </div>
231
268
 
232
269
  <div className="cove-input-group">
233
- <InputSelect value={config.dataFunction || ''} fieldName="dataFunction" label="Data Function"
234
- updateField={updateField} initial="Select" options={DATA_FUNCTIONS}/>
270
+ <InputSelect
271
+ value={config.dataFunction || ""}
272
+ fieldName="dataFunction"
273
+ label="Data Function"
274
+ updateField={updateField}
275
+ initial="Select"
276
+ options={DATA_FUNCTIONS}
277
+ className="cove-input"
278
+ />
235
279
  </div>
236
280
 
237
281
  <div className="cove-input-group">
238
- <label><span className="edit-label">Data Conditional</span></label>
282
+ <label>
283
+ <span className="edit-label cove-input__label">Data Conditional</span>
284
+ </label>
239
285
  <div className="cove-accordion__panel-row cove-accordion__small-inputs">
240
286
  <div className="cove-accordion__panel-col">
241
- <InputSelect value={config.dataConditionalColumn || ''} fieldName="dataConditionalColumn"
242
- updateField={updateField} initial="Select" options={getColumns()}/>
287
+ <InputSelect
288
+ value={config.dataConditionalColumn || ""}
289
+ fieldName="dataConditionalColumn"
290
+ updateField={updateField}
291
+ initial="Select"
292
+ options={getColumns()}
293
+ className="cove-input"
294
+ />
243
295
  </div>
244
296
  <div className="cove-accordion__panel-col">
245
- <InputSelect value={config.dataConditionalOperator || ''} fieldName="dataConditionalOperator"
246
- updateField={updateField} initial="Select" options={DATA_OPERATORS}/>
297
+ <InputSelect
298
+ value={config.dataConditionalOperator || ""}
299
+ fieldName="dataConditionalOperator"
300
+ updateField={updateField}
301
+ initial="Select"
302
+ options={DATA_OPERATORS}
303
+ className="cove-input"
304
+ />
247
305
  </div>
248
306
  <div className="cove-accordion__panel-col">
249
- <InputText value={config.dataConditionalComparate} fieldName={'dataConditionalComparate'}
250
- updateField={updateField}
251
- className={config.invalidComparate ? 'cove-accordion__input-error' : ''}
252
- style={{minHeight: '2rem'}}
307
+ <InputText
308
+ value={config.dataConditionalComparate}
309
+ fieldName={"dataConditionalComparate"}
310
+ updateField={updateField}
311
+ className={
312
+ config.invalidComparate ? "cove-accordion__input-error" : ""
313
+ }
314
+ style={{ minHeight: "2rem" }}
253
315
  />
254
316
  </div>
255
317
  </div>
256
318
  </div>
257
319
 
258
- {config.invalidComparate &&
320
+ {config.invalidComparate && (
259
321
  <div className="cove-accordion__panel-error">
260
322
  Non-numerical comparate values can only be used with = or ≠.
261
323
  </div>
262
- }
324
+ )}
263
325
  </div>
264
326
  <div className="cove-accordion__panel-row align-center">
265
327
  <div className="cove-accordion__panel-col">
266
- <h4 style={{ fontWeight: '600' }}>Denominator</h4>
328
+ <h4 style={{ fontWeight: "600" }}>Denominator</h4>
267
329
  </div>
268
330
  <div className="cove-accordion__panel-col">
269
- <div style={{display: 'flex', justifyContent: 'flex-end'}}>
270
- <label className="cove-accordion__panel-label--inline">Select from data</label>
271
- <InputCheckbox size='small' value={config.customDenom} fieldName='customDenom' updateField={updateField}/>
331
+ <div style={{ display: "flex", justifyContent: "flex-end" }}>
332
+ <label className="cove-accordion__panel-label--inline">
333
+ Select from data
334
+ </label>
335
+ <InputCheckbox
336
+ size="small"
337
+ value={config.customDenom}
338
+ fieldName="customDenom"
339
+ updateField={updateField}
340
+ />
272
341
  </div>
273
342
  </div>
274
343
  </div>
275
344
  <div className="cove-accordion__panel-section">
276
- {!config.customDenom &&
345
+ {!config.customDenom && (
277
346
  <div className="cove-accordion__panel-row align-center">
278
347
  <div className="cove-accordion__panel-col">
279
- <InputText value={config.dataDenom} fieldName="dataDenom" updateField={updateField}/>
348
+ <InputText
349
+ value={config.dataDenom}
350
+ fieldName="dataDenom"
351
+ updateField={updateField}
352
+ />
280
353
  </div>
281
- <div className="cove-accordion__panel-col" style={{display: 'flex', alignItems: 'center'}}>
282
- <label className="cove-accordion__panel-label--muted">default (100)</label>
354
+ <div
355
+ className="cove-accordion__panel-col"
356
+ style={{ display: "flex", alignItems: "center" }}
357
+ >
358
+ <label className="cove-accordion__panel-label--muted">
359
+ default (100)
360
+ </label>
283
361
  </div>
284
362
  </div>
285
- }
286
- {config.customDenom &&
363
+ )}
364
+ {config.customDenom && (
287
365
  <>
288
- <InputSelect value={config.dataDenomColumn || ''} fieldName="dataDenomColumn" label="Data Column"
289
- updateField={updateField} initial="Select" options={getColumns()}/>
290
- <InputSelect value={config.dataDenomFunction || ''} fieldName="dataDenomFunction" label="Data Function"
291
- updateField={updateField} initial="Select" options={DATA_FUNCTIONS}/>
366
+ <InputSelect
367
+ value={config.dataDenomColumn || ""}
368
+ fieldName="dataDenomColumn"
369
+ label="Data Column"
370
+ updateField={updateField}
371
+ initial="Select"
372
+ options={getColumns()}
373
+ />
374
+ <InputSelect
375
+ value={config.dataDenomFunction || ""}
376
+ fieldName="dataDenomFunction"
377
+ label="Data Function"
378
+ updateField={updateField}
379
+ initial="Select"
380
+ options={DATA_FUNCTIONS}
381
+ />
292
382
  </>
293
- }
383
+ )}
294
384
  </div>
295
385
  <ul className="column-edit">
296
386
  <li className="three-col">
297
- <div style={{marginRight: '1rem'}}>
298
- <InputText value={config.prefix} fieldName="prefix" label="Prefix" updateField={updateField}/>
387
+ <div style={{ marginRight: "1rem" }}>
388
+ <InputText
389
+ value={config.prefix}
390
+ fieldName="prefix"
391
+ label="Prefix"
392
+ updateField={updateField}
393
+ />
299
394
  </div>
300
- <div style={{marginRight: '1rem'}}>
301
- <InputText value={config.suffix} fieldName="suffix" label="Suffix" updateField={updateField}/>
395
+ <div style={{ marginRight: "1rem" }}>
396
+ <InputText
397
+ value={config.suffix}
398
+ fieldName="suffix"
399
+ label="Suffix"
400
+ updateField={updateField}
401
+ />
302
402
  </div>
303
403
  <div>
304
- <InputText type="number" value={config.roundToPlace} fieldName="roundToPlace" label="Round" updateField={updateField}/>
404
+ <InputText
405
+ type="number"
406
+ value={config.roundToPlace}
407
+ fieldName="roundToPlace"
408
+ label="Round"
409
+ updateField={updateField}
410
+ />
305
411
  </div>
306
412
  </li>
307
413
  </ul>
308
414
 
309
415
  <hr className="cove-accordion__divider" />
310
416
 
311
- <label style={{marginBottom: '1rem'}}>
417
+ <label style={{ marginBottom: "1rem" }}>
312
418
  <span className="edit-label">Data Point Filters</span>
313
- <Tooltip style={{ textTransform: 'none' }}>
314
- <Tooltip.Target><Icon display="question" style={{ marginLeft: '0.5rem' }}/></Tooltip.Target>
419
+ <Tooltip style={{ textTransform: "none" }}>
420
+ <Tooltip.Target>
421
+ <Icon display="question" style={{ marginLeft: "0.5rem" }} />
422
+ </Tooltip.Target>
315
423
  <Tooltip.Content>
316
- <p>To refine the highlighted data point, specify one or more filters (e.g., "Male" and
317
- "Female" for a column called "Sex").</p>
424
+ <p>
425
+ To refine the highlighted data point, specify one or more
426
+ filters (e.g., "Male" and "Female" for a column called "Sex").
427
+ </p>
318
428
  </Tooltip.Content>
319
429
  </Tooltip>
320
430
  </label>
321
- {config.filters &&
322
- <ul className="filters-list" style={{paddingLeft: 0, marginBottom: '1rem'}}>
431
+ {config.filters && (
432
+ <ul
433
+ className="filters-list"
434
+ style={{ paddingLeft: 0, marginBottom: "1rem" }}
435
+ >
323
436
  {config.filters.map((filter, index) => (
324
437
  <fieldset className="edit-block" key={index}>
325
- <button type="button" className="remove-column" onClick={() => {
326
- removeFilter(index)
327
- }}>Remove
438
+ <button
439
+ type="button"
440
+ className="remove-column"
441
+ onClick={() => {
442
+ removeFilter(index);
443
+ }}
444
+ >
445
+ Remove
328
446
  </button>
329
447
  <label>
330
448
  <span className="edit-label column-heading">Column</span>
331
- <select value={filter.columnName} onChange={(e) => {
332
- updateFilterProp('columnName', index, e.target.value)
333
- }}>
449
+ <select
450
+ value={filter.columnName}
451
+ onChange={(e) => {
452
+ updateFilterProp("columnName", index, e.target.value);
453
+ }}
454
+ >
334
455
  <option value="">- Select Option -</option>
335
456
  {getColumns().map((dataKey, index) => (
336
- <option value={dataKey} key={index}>{dataKey}</option>
457
+ <option value={dataKey} key={index}>
458
+ {dataKey}
459
+ </option>
337
460
  ))}
338
461
  </select>
339
462
  </label>
340
463
  <label>
341
- <span className="edit-label column-heading">Column Value</span>
342
- <select value={filter.columnValue} onChange={(e) => {
343
- updateFilterProp('columnValue', index, e.target.value)
344
- }}>
464
+ <span className="edit-label column-heading">
465
+ Column Value
466
+ </span>
467
+ <select
468
+ value={filter.columnValue}
469
+ onChange={(e) => {
470
+ updateFilterProp("columnValue", index, e.target.value);
471
+ }}
472
+ >
345
473
  <option value="">- Select Option -</option>
346
474
  {getFilterColumnValues(index).map((dataKey, index) => (
347
- <option value={dataKey} key={index}>{dataKey}</option>
475
+ <option value={dataKey} key={index}>
476
+ {dataKey}
477
+ </option>
348
478
  ))}
349
479
  </select>
350
480
  </label>
351
481
  </fieldset>
352
482
  ))}
353
483
  </ul>
354
- }
355
- <Button onClick={addNewFilter} fluid>Add Filter</Button>
484
+ )}
485
+ <Button onClick={addNewFilter} fluid>
486
+ Add Filter
487
+ </Button>
356
488
  </Accordion.Section>
357
489
  <Accordion.Section title="Visual">
358
- <InputSelect value={config.shape} fieldName="shape" label="Shape"
359
- updateField={updateField} options={[ 'circle', 'square', 'person' ]}/>
360
-
361
- <div className="cove-accordion__panel-row cove-accordion__small-inputs" style={{marginTop: '1rem', marginBottom: '1rem'}}>
490
+ <InputSelect
491
+ value={config.shape}
492
+ fieldName="shape"
493
+ label="Shape"
494
+ updateField={updateField}
495
+ options={["circle", "square", "person"]}
496
+ className="cove-input"
497
+ />
498
+
499
+ <div
500
+ className="cove-accordion__panel-row cove-accordion__small-inputs"
501
+ style={{ marginTop: "1rem", marginBottom: "1rem" }}
502
+ >
362
503
  <div className="cove-accordion__panel-col">
363
- <InputText type="number" value={config.nodeWidth} fieldName="nodeWidth" label="Width" updateField={updateField}/>
504
+ <InputText
505
+ type="number"
506
+ value={config.nodeWidth}
507
+ fieldName="nodeWidth"
508
+ label="Width"
509
+ updateField={updateField}
510
+ />
364
511
  </div>
365
512
  <div className="cove-accordion__panel-col">
366
- <InputText type="number" value={config.nodeSpacer} fieldName="nodeSpacer" label="Spacer" updateField={updateField}/>
513
+ <InputText
514
+ type="number"
515
+ value={config.nodeSpacer}
516
+ fieldName="nodeSpacer"
517
+ label="Spacer"
518
+ updateField={updateField}
519
+ />
367
520
  </div>
368
521
  </div>
369
522
 
370
523
  <div className="cove-input-group">
371
- <InputSelect value={config.orientation} fieldName="orientation" label="Layout"
372
- updateField={updateField} options={[ 'horizontal', 'vertical' ]}/>
524
+ <InputSelect
525
+ value={config.orientation}
526
+ fieldName="orientation"
527
+ label="Layout"
528
+ updateField={updateField}
529
+ className="cove-input"
530
+ options={["horizontal", "vertical"]}
531
+ />
373
532
  </div>
374
533
 
375
534
  <div className="cove-input-group">
376
- <label><span className="edit-label column-heading">Data Point Font Size</span></label>
535
+ <label>
536
+ <span className="edit-label column-heading cove-input__label">
537
+ Data Point Font Size
538
+ </span>
539
+ </label>
377
540
  <div className="cove-accordion__panel-row cove-accordion__small-inputs align-center">
378
541
  <div className="cove-accordion__panel-col">
379
- <InputText type="number" value={config.fontSize} fieldName="fontSize" updateField={updateField}/>
542
+ <InputText
543
+ type="number"
544
+ value={config.fontSize}
545
+ fieldName="fontSize"
546
+ updateField={updateField}
547
+ />
380
548
  </div>
381
- <div className="cove-accordion__panel-col" style={{display: 'flex', alignItems: 'center'}}>
382
- <label className="accordion__panel-label--muted">default (50px)</label>
549
+ <div
550
+ className="cove-accordion__panel-col"
551
+ style={{ display: "flex", alignItems: "center" }}
552
+ >
553
+ <label className="accordion__panel-label--muted">
554
+ default (50px)
555
+ </label>
383
556
  </div>
384
557
  </div>
385
558
  </div>
386
559
 
387
- <InputSelect value={config.overallFontSize} fieldName="overallFontSize" label="Overall Font Size"
388
- updateField={updateField} options={[ 'small', 'medium', 'large' ]}/>
560
+ <InputSelect
561
+ value={config.overallFontSize}
562
+ fieldName="overallFontSize"
563
+ label="Overall Font Size"
564
+ updateField={updateField}
565
+ options={["small", "medium", "large"]}
566
+ className="cove-input"
567
+ />
389
568
 
390
569
  <label>
391
- <span className="edit-label">Theme</span>
570
+ <span className="edit-label cove-input__label">Theme</span>
392
571
  <ul className="color-palette">
393
572
  {headerColors.map((palette) => (
394
- <li title={palette} key={palette} onClick={() => {
395
- updateConfig({ ...config, theme: palette })
396
- }} className={config.theme === palette ? 'selected ' + palette : palette}>
397
- </li>
573
+ <li
574
+ title={palette}
575
+ key={palette}
576
+ onClick={() => {
577
+ updateConfig({ ...config, theme: palette });
578
+ }}
579
+ className={
580
+ config.theme === palette ? "selected " + palette : palette
581
+ }
582
+ ></li>
398
583
  ))}
399
584
  </ul>
400
585
 
@@ -407,9 +592,17 @@ const EditorPanel = memo((props) => {
407
592
  </div> */}
408
593
 
409
594
  </label>
595
+
596
+ <div className="cove-accordion__panel-section reverse-labels">
597
+ <InputCheckbox inline size='small' value={config.visual.border} section="visual" fieldName="border" label="Display Border" updateField={updateField} />
598
+ <InputCheckbox inline size='small' value={config.visual.borderColorTheme} section="visual" fieldName="borderColorTheme" label="Use theme border color" updateField={updateField} />
599
+ <InputCheckbox size='small' value={config.visual.accent} section="visual" fieldName="accent" label="Use Accent Style" updateField={updateField} />
600
+ <InputCheckbox size='small' value={config.visual.background} section="visual" fieldName="background" label="Use Theme Background Color" updateField={updateField} />
601
+ <InputCheckbox size='small' value={config.visual.hideBackgroundColor} section="visual" fieldName="hideBackgroundColor" label="Hide Background Color" updateField={updateField} />
602
+ </div>
410
603
  </Accordion.Section>
411
604
  </Accordion>
412
- )
605
+ );
413
606
 
414
607
  if (loading) return null
415
608
 
@@ -25,7 +25,7 @@ export default {
25
25
  "theme": "theme-blue",
26
26
  "type": "waffle-chart",
27
27
  "visual": {
28
- "border": false,
28
+ "border": true,
29
29
  "accent": false,
30
30
  "background": false,
31
31
  "hideBackgroundColor": false,
package/src/index.html CHANGED
@@ -3,9 +3,30 @@
3
3
  <head>
4
4
  <meta charset="utf-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
6
+ <style>
7
+ body {
8
+ /* max-width: 1000px; */
9
+ margin: 0 auto !important;
10
+ display: flex;
11
+ flex-direction: column;
12
+ justify-content: center;
13
+ }
14
+
15
+ .react-container+.react-container {
16
+ margin-top: 3rem;
17
+ }
18
+ </style>
6
19
  </head>
7
20
  <body>
21
+
22
+ <!-- Original -->
8
23
  <div class="react-container" data-config="/examples/example-config.json"></div>
24
+
25
+ <!-- DATA PRESENTATION GALLERY: https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/waffle-chart.html#examples -->
26
+ <!-- <div class="react-container" data-config="/examples/gallery/avg-to-max.json"></div> -->
27
+ <!-- <div class="react-container" data-config="/examples/gallery/count.json"></div> -->
28
+
29
+
9
30
  <noscript>You need to enable JavaScript to run this app.</noscript>
10
31
  </body>
11
32
  </html>
@@ -19,6 +19,11 @@
19
19
  //}
20
20
 
21
21
  .cove {
22
+
23
+ &-editor__panel {
24
+ ul.color-palette { margin: 0; }
25
+ }
26
+
22
27
  .cove-waffle-chart {
23
28
  display: flex;
24
29
  flex-wrap: wrap;
@@ -32,14 +37,8 @@
32
37
  .cove-waffle-chart__chart {
33
38
  padding-right: 0;
34
39
  }
35
-
36
- .cove-waffle-chart__data {
37
- text-align: center;
38
- // display: flex;
39
- // flex-wrap: wrap;
40
- // align-content: space-between;
41
- }
42
40
  }
41
+
43
42
  }
44
43
 
45
44
  .cove-waffle-chart__chart {
@@ -56,31 +55,16 @@
56
55
 
57
56
  .cove-waffle-chart__subtext {
58
57
  font-style: italic;
59
- font-weight: bold;
60
58
  font-size: 0.75em;
61
- padding: 0 1em 1em;
62
59
  }
63
60
 
64
61
  .cove-waffle-chart__data {
62
+ display: flex;
63
+ flex-wrap: wrap;
64
+ align-content: space-between;
65
65
 
66
66
  font-size: 14px;
67
67
 
68
- @at-root {
69
- .cove-waffle-chart.font-small #{&} {
70
- .cove-waffle-chart__data--primary { font-size: 35px; }
71
- .cove-waffle-chart__data--text { font-size: 14px; }
72
- }
73
-
74
- .cove-waffle-chart.font-medium #{&} {
75
- .cove-waffle-chart__data--primary { font-size: 50px; }
76
- .cove-waffle-chart__data--text { font-size: 18px; }
77
- }
78
-
79
- .cove-waffle-chart.font-large #{&} {
80
- .cove-waffle-chart__data--primary { font-size: 80px; }
81
- .cove-waffle-chart__data--text { font-size: 20px; }
82
- }
83
- }
84
68
 
85
69
  .cove-waffle-chart__data--primary {
86
70
  font-size: 70px;
@@ -90,6 +74,7 @@
90
74
 
91
75
  .cove-waffle-chart__data--text {
92
76
  line-height: 1.25em;
77
+ width: 100%;
93
78
  }
94
79
  }
95
80
 
@@ -97,4 +82,30 @@
97
82
  transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1);
98
83
  }
99
84
 
85
+ .reverse-labels div {
86
+ float: left;
87
+ margin-right: 5px;
88
+ }
89
+
90
+ .reverse-labels {
91
+ overflow: auto;
92
+ }
93
+
94
+ }
95
+
96
+ @at-root {
97
+ .cove-waffle-chart.font-small #{&} {
98
+ .cove-waffle-chart__data--primary { font-size: 35px; }
99
+ .cove-waffle-chart__data--text { font-size: 14px; }
100
+ }
101
+
102
+ .cove-waffle-chart.font-medium #{&} {
103
+ .cove-waffle-chart__data--primary { font-size: 50px; }
104
+ .cove-waffle-chart__data--text { font-size: 18px; }
105
+ }
106
+
107
+ .cove-waffle-chart.font-large #{&} {
108
+ .cove-waffle-chart__data--primary { font-size: 80px; }
109
+ .cove-waffle-chart__data--text { font-size: 20px; }
110
+ }
100
111
  }