kemet-ui 1.3.0 → 1.4.0

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 (74) hide show
  1. package/custom-elements.json +3125 -968
  2. package/dist/components/kemet-accordion/kemet-accordion-panel.js +29 -31
  3. package/dist/components/kemet-accordion/kemet-accordion.js +12 -6
  4. package/dist/components/kemet-alert/kemet-alert.js +106 -0
  5. package/dist/components/kemet-alert/styles.js +104 -0
  6. package/dist/components/kemet-avatar/kemet-avatar.js +118 -0
  7. package/dist/components/kemet-avatar/kemet-avatars.js +41 -0
  8. package/dist/components/kemet-badge/kemet-badge.js +16 -12
  9. package/dist/components/kemet-button/kemet-button.js +42 -25
  10. package/dist/components/kemet-card/kemet-card.js +69 -0
  11. package/dist/components/kemet-card/styles.js +63 -0
  12. package/dist/components/kemet-carousel/kemet-carousel-current.js +13 -3
  13. package/dist/components/kemet-carousel/kemet-carousel-first.js +17 -9
  14. package/dist/components/kemet-carousel/kemet-carousel-last.js +17 -9
  15. package/dist/components/kemet-carousel/kemet-carousel-link.js +23 -17
  16. package/dist/components/kemet-carousel/kemet-carousel-next.js +17 -9
  17. package/dist/components/kemet-carousel/kemet-carousel-prev.js +17 -9
  18. package/dist/components/kemet-carousel/kemet-carousel-slide.js +14 -11
  19. package/dist/components/kemet-carousel/kemet-carousel-total.js +13 -3
  20. package/dist/components/kemet-carousel/kemet-carousel.js +63 -133
  21. package/dist/components/kemet-carousel/styles.js +66 -0
  22. package/dist/components/kemet-checkbox/kemet-checkbox.js +28 -35
  23. package/dist/components/kemet-combo/kemet-combo.js +43 -28
  24. package/dist/components/kemet-count/kemet-count.js +29 -40
  25. package/dist/components/kemet-draggable/kemet-draggable.js +21 -23
  26. package/dist/components/kemet-drawer/kemet-drawer.js +36 -35
  27. package/dist/components/kemet-drawer/{kemet-drawer.styles.js → styles.js} +0 -0
  28. package/dist/components/kemet-fab/kemet-fab.js +39 -138
  29. package/dist/components/kemet-fab/styles.js +95 -0
  30. package/dist/components/kemet-field/kemet-field.js +31 -40
  31. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +12 -5
  32. package/dist/components/kemet-flipcard/kemet-flipcard.js +24 -4
  33. package/dist/components/kemet-icon/kemet-icon.js +19 -15
  34. package/dist/components/kemet-input/kemet-input.js +81 -174
  35. package/dist/components/kemet-modal/kemet-modal-close.js +13 -8
  36. package/dist/components/kemet-modal/kemet-modal.js +26 -21
  37. package/dist/components/kemet-modal/{kemet-modal.styles.js → styles.js} +0 -0
  38. package/dist/components/kemet-password/kemet-password.js +40 -132
  39. package/dist/components/kemet-password/styles.js +80 -0
  40. package/dist/components/kemet-popover/kemet-popover-close.js +13 -7
  41. package/dist/components/kemet-popover/kemet-popover.js +42 -51
  42. package/dist/components/kemet-popover/{kemet-popover.effects.styles.js → styles.effects.js} +0 -0
  43. package/dist/components/kemet-popover/{kemet-popover.tooltip.styles.js → styles.tooltip.js} +0 -0
  44. package/dist/components/kemet-radio/kemet-radio.js +35 -43
  45. package/dist/components/kemet-radio/kemet-radios.js +25 -34
  46. package/dist/components/kemet-rotator/kemet-rotator.js +18 -18
  47. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +15 -13
  48. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +19 -10
  49. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +25 -30
  50. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +16 -9
  51. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +27 -15
  52. package/dist/components/kemet-select/kemet-option.js +17 -12
  53. package/dist/components/kemet-select/kemet-select.js +62 -102
  54. package/dist/components/kemet-sortable/kemet-sortable-item.js +11 -5
  55. package/dist/components/kemet-sortable/kemet-sortable.js +16 -14
  56. package/dist/components/kemet-svgs/kemet-svg.js +17 -15
  57. package/dist/components/kemet-svgs/kemet-svgs.js +11 -3
  58. package/dist/components/kemet-tabs/kemet-tab-panel.js +14 -6
  59. package/dist/components/kemet-tabs/kemet-tab.js +22 -25
  60. package/dist/components/kemet-tabs/kemet-tabs.js +43 -41
  61. package/dist/components/kemet-tabs/{kemet-tabs.styles.js → styles.js} +0 -0
  62. package/dist/components/kemet-textarea/kemet-textarea.js +25 -54
  63. package/dist/components/kemet-toggle/kemet-toggle.js +39 -38
  64. package/dist/components/kemet-tracker/kemet-tracker-step.js +49 -160
  65. package/dist/components/kemet-tracker/kemet-tracker.js +12 -12
  66. package/dist/components/kemet-tracker/styles.js +111 -0
  67. package/dist/components/kemet-upload/kemet-upload-file.js +35 -44
  68. package/dist/components/kemet-upload/kemet-upload.js +53 -95
  69. package/dist/components/kemet-upload/{kemet-upload-file.loaders.styles.js → styles.js} +0 -0
  70. package/dist/kemet-components.cjs +2821 -2455
  71. package/dist/kemet-components.js +2822 -2444
  72. package/dist/kemet-components.min.js +912 -674
  73. package/dist/utilities/misc/events.js +5 -0
  74. package/package.json +13 -11
@@ -1,148 +1,49 @@
1
- import { html, css, LitElement } from 'lit';
1
+ import { html, LitElement } from 'lit';
2
+ import { stylesBase } from './styles.js';
3
+
4
+ /**
5
+ * @since 1.2.0
6
+ * @status stable
7
+ *
8
+ * @tagname kemet-fab
9
+ * @summary The FAB, or Floating Action Button, performs a primary action on a page.
10
+ *
11
+ * @prop {boolean} expanded - The expanded state of the button.
12
+ * @prop {boolean} outlined - Outline style for a button.
13
+ * @prop {boolean} disabled - Determines whether not a button is disabled.
14
+ * @prop {boolean} pill - Displays the fab with rounded corners.
15
+ * @prop {number} expandPoint - The distance, in pixels, where the fab should automatically expand.
16
+ * @prop {number} collapsePoint - The distance, in pixels, where the fab should automatically collapse.
17
+ *
18
+ * @slot Icon - A slot for an icon to display.
19
+ * @slot default - The text for the FAB.
20
+ *
21
+ * @cssproperty --kemet-fab-size - The width and height of the fab. Default: 50px.
22
+ * @cssproperty --kemet-fab-color - The text color of the fab. Default: var(--kemet-color-white).
23
+ * @cssproperty --kemet-fab-background-color - The bg color of the tab. Default: var(--kemet-color-primary).
24
+ * @cssproperty --kemet-fab-outlined-color - The text color of an outlined fab. Default: var(--kemet-color-primary).
25
+ * @cssproperty --kemet-fab-outlined-border - The border of an outlined fab. Default: 1px solid var(--kemet-color-primary).
26
+ * @cssproperty --kemet-fab-pill-radius - The border radius of a pill fab. Default: 10rem.
27
+ *
28
+ * @csspart button - The button's container.
29
+ * @csspart icon - The FAB's icon.
30
+ * @csspart text - The text in the FAB.
31
+ *
32
+ */
2
33
 
3
34
  export default class KemetFAB extends LitElement {
4
35
  static get styles() {
5
- return [
6
- css`
7
- :host {
8
- --kemet-fab-size: 50px;
9
-
10
- display: inline-block;
11
- position: relative;
12
- }
13
-
14
- button {
15
- color: var(--kemet-fab-color, var(--kemet-color-white));
16
- font-size: inherit;
17
- display: inline-flex;
18
- padding: 0;
19
- position: relative;
20
- min-height: var(--kemet-fab-size);
21
- min-width: var(--kemet-fab-size);
22
- max-width: var(--kemet-fab-size);
23
- align-items: center;
24
- justify-content: flex-start;
25
- transition: all 0.4s ease;
26
- border: none;
27
- background-color: var(--kemet-fab-background-color, var(--kemet-color-primary));
28
- }
29
-
30
- :host([outlined]) button {
31
- color: var(--kemet-fab-outlined-color, var(--kemet-color-primary));
32
- border: var(--kemet-fab-outlined-border, 1px solid var(--kemet-color-primary));
33
- background-color: transparent;
34
- }
35
-
36
- :host([pill]) button {
37
- border-radius: var(--kemet-fab-pill-radius, 10rem);
38
- }
39
-
40
- button::before {
41
- content: '';
42
- position: absolute;
43
- top: 0;
44
- left: 0;
45
- right: 0;
46
- bottom: 0;
47
- z-index: -1;
48
- width: 100%;
49
- height: 100%;
50
- transition: background-color 0.3s ease-in-out;
51
- background-color: var(--kemet-fab-background-color, var(--kemet-color-primary));
52
- }
53
-
54
- :host([pill]) button::before {
55
- border-radius: var(--kemet-fab-pill-radius, 10rem);
56
- }
57
-
58
- :host([outlined]) button::before {
59
- border: var(--kemet-fab-outline-border, 1px solid var(--kemet-color-primary));
60
- background-color: transparent;
61
- }
62
-
63
- :host([expanded]) button {
64
- max-width: 99rem;
65
- padding: 0 1.35rem 0 0.25rem;
66
- }
67
-
68
- :host([disabled]) button {
69
- opacity: 0.5;
70
- cursor: not-allowed;
71
- }
72
-
73
- .icon {
74
- width: var(--kemet-fab-size);
75
- height: var(--kemet-fab-size);
76
- display: flex;
77
- flex: 0 0 auto;
78
- align-items: center;
79
- justify-content: center;
80
- }
81
-
82
- .text {
83
- color: var(--kemet-fab-color, var(--kemet-color-white));
84
- z-index: 1;
85
- white-space: nowrap;
86
- pointer-events: none;
87
- opacity: 0;
88
- transition: opacity 0.2s ease-in-out;
89
- }
90
-
91
- :host([outlined]) .text {
92
- color: var(--kemet-fab-outlined-color, var(--kemet-color-primary));
93
- }
94
-
95
- :host([expanded]) .text {
96
- opacity: 1;
97
- }
98
- `,
99
- ];
36
+ return [stylesBase];
100
37
  }
101
38
 
102
39
  static get properties() {
103
40
  return {
104
- /**
105
- * The expanded state of the button
106
- */
107
- expanded: {
108
- type: Boolean,
109
- reflect: true,
110
- },
111
- /**
112
- * Outline style for a button
113
- */
114
- outlined: {
115
- type: Boolean,
116
- reflect: true,
117
- },
118
- /**
119
- * Determines whether not a button is disabled
120
- */
121
- disabled: {
122
- type: Boolean,
123
- reflect: true,
124
- },
125
- /**
126
- * Displays the fab with rounded corners
127
- */
128
- pill: {
129
- type: Boolean,
130
- reflect: true,
131
- },
132
- /**
133
- * The distance, in pixels, where the fab should automatically expand
134
- */
135
- expandPoint: {
136
- type: Number,
137
- attribute: 'expand-point',
138
- },
139
- /**
140
- * The distance, in pixels, where the fab should automatically collapse
141
- */
142
- collapsePoint: {
143
- type: Number,
144
- attribute: 'collapse-point',
145
- },
41
+ expanded: { type: Boolean, reflect: true },
42
+ outlined: { type: Boolean, reflect: true },
43
+ disabled: { type: Boolean, reflect: true },
44
+ pill: { type: Boolean, reflect: true },
45
+ expandPoint: { type: Number, attribute: 'expand-point' },
46
+ collapsePoint: { type: Number, attribute: 'collapse-point' },
146
47
  };
147
48
  }
148
49
 
@@ -0,0 +1,95 @@
1
+ import { css } from 'lit';
2
+
3
+ export const stylesBase = css`
4
+ :host {
5
+ --kemet-fab-size: 50px;
6
+
7
+ display: inline-block;
8
+ position: relative;
9
+ }
10
+
11
+ button {
12
+ color: var(--kemet-fab-color, var(--kemet-color-white));
13
+ font-size: inherit;
14
+ display: inline-flex;
15
+ padding: 0;
16
+ position: relative;
17
+ min-height: var(--kemet-fab-size);
18
+ min-width: var(--kemet-fab-size);
19
+ max-width: var(--kemet-fab-size);
20
+ align-items: center;
21
+ justify-content: flex-start;
22
+ transition: all 0.4s ease;
23
+ border: none;
24
+ background-color: var(--kemet-fab-background-color, var(--kemet-color-primary));
25
+ }
26
+
27
+ :host([outlined]) button {
28
+ color: var(--kemet-fab-outlined-color, var(--kemet-color-primary));
29
+ border: var(--kemet-fab-outlined-border, 1px solid var(--kemet-color-primary));
30
+ background-color: transparent;
31
+ }
32
+
33
+ :host([pill]) button {
34
+ border-radius: var(--kemet-fab-pill-radius, 10rem);
35
+ }
36
+
37
+ button::before {
38
+ content: '';
39
+ position: absolute;
40
+ top: 0;
41
+ left: 0;
42
+ right: 0;
43
+ bottom: 0;
44
+ z-index: -1;
45
+ width: 100%;
46
+ height: 100%;
47
+ transition: background-color 0.3s ease-in-out;
48
+ background-color: var(--kemet-fab-background-color, var(--kemet-color-primary));
49
+ }
50
+
51
+ :host([pill]) button::before {
52
+ border-radius: var(--kemet-fab-pill-radius, 10rem);
53
+ }
54
+
55
+ :host([outlined]) button::before {
56
+ border: var(--kemet-fab-outline-border, 1px solid var(--kemet-color-primary));
57
+ background-color: transparent;
58
+ }
59
+
60
+ :host([expanded]) button {
61
+ max-width: 99rem;
62
+ padding: 0 1.35rem 0 0.25rem;
63
+ }
64
+
65
+ :host([disabled]) button {
66
+ opacity: 0.5;
67
+ cursor: not-allowed;
68
+ }
69
+
70
+ .icon {
71
+ width: var(--kemet-fab-size);
72
+ height: var(--kemet-fab-size);
73
+ display: flex;
74
+ flex: 0 0 auto;
75
+ align-items: center;
76
+ justify-content: center;
77
+ }
78
+
79
+ .text {
80
+ color: var(--kemet-fab-color, var(--kemet-color-white));
81
+ z-index: 1;
82
+ white-space: nowrap;
83
+ pointer-events: none;
84
+ opacity: 0;
85
+ transition: opacity 0.2s ease-in-out;
86
+ }
87
+
88
+ :host([outlined]) .text {
89
+ color: var(--kemet-fab-outlined-color, var(--kemet-color-primary));
90
+ }
91
+
92
+ :host([expanded]) .text {
93
+ opacity: 1;
94
+ }
95
+ `;
@@ -1,4 +1,33 @@
1
1
  import { html, css, LitElement } from 'lit';
2
+ import { emitEvent } from '../../utilities/misc/events.js';
3
+
4
+ /**
5
+ * @since 1.0.0
6
+ * @status stable
7
+ *
8
+ * @tagname kemet-field
9
+ * @summary Used in combination with Input, Select, and Textarea, to make a Field.
10
+ *
11
+ * @prop {string} slug - Uniquely identifies the control. Use the same slug for slotted sub components.
12
+ * @prop {string} label - The label text
13
+ * @prop {string} message - The validation message for error or success
14
+ * @prop {boolean} focused - Determines if the containing input is focused
15
+ * @prop {string} status - The validation status of standard, error, or success
16
+ * @prop {boolean} filled - Is true when the containing input has a value
17
+ * @prop {number} length - The length of the containing input
18
+ * @prop {boolean} disabled - Determines the disabled state of the control
19
+ * @prop {string} errorIcon - The icon while in an error or warning state
20
+ * @prop {string} successIcon - The icon while in an success state
21
+ *
22
+ * @slot component - Allows sub components of the field to display.
23
+ *
24
+ * @csspart label - The label of the field.
25
+ * @csspart message - The validation message of the field.
26
+ * @csspart text - The text in the label.
27
+ *
28
+ * @event kemet-field-input - Fires when input fires on the input slot
29
+ *
30
+ */
2
31
 
3
32
  export default class KemetField extends LitElement {
4
33
  static get styles() {
@@ -67,68 +96,38 @@ export default class KemetField extends LitElement {
67
96
 
68
97
  static get properties() {
69
98
  return {
70
- /**
71
- * Uniquely identifies the control. Use the same slug for slotted sub components.
72
- */
73
99
  slug: {
74
100
  type: String,
75
101
  },
76
- /**
77
- * The label text
78
- */
79
102
  label: {
80
103
  type: String,
81
104
  },
82
- /**
83
- * The validation message for error or success
84
- */
85
105
  message: {
86
106
  type: String,
87
107
  },
88
- /**
89
- * Determines if the containing input is focused
90
- */
91
108
  focused: {
92
109
  type: Boolean,
93
110
  reflect: true,
94
111
  },
95
- /**
96
- * The validation status of standard, error, or success
97
- */
98
112
  status: {
99
113
  type: String,
100
114
  reflect: true,
101
115
  },
102
- /**
103
- * Is true when the containing input has a value
104
- */
105
116
  filled: {
106
117
  type: Boolean,
107
118
  reflect: true,
108
119
  },
109
- /**
110
- * The length of the containing input
111
- */
112
120
  length: {
113
121
  type: Number,
114
122
  },
115
- /**
116
- * Determines the disabled state of the control
117
- */
118
123
  disabled: {
119
124
  type: Boolean,
120
125
  reflect: true,
121
126
  },
122
- /**
123
- * The icon while in an error or warning state
124
- */
125
127
  errorIcon: {
126
128
  type: String,
127
129
  attribute: 'error-icon',
128
130
  },
129
- /**
130
- * The icon while in an success state
131
- */
132
131
  successIcon: {
133
132
  type: String,
134
133
  attribute: 'success-icon',
@@ -166,7 +165,7 @@ export default class KemetField extends LitElement {
166
165
  render() {
167
166
  return html`
168
167
  <label for="${this.slug}" id="${this.slug}-label" part="label">
169
- <span>${this.label}${this.makeStatusIcon()}</span>
168
+ <span part="text">${this.label}${this.makeStatusIcon()}</span>
170
169
  <slot name="input"></slot>
171
170
  </label>
172
171
  ${this.makeStatusMessage()}
@@ -207,15 +206,7 @@ export default class KemetField extends LitElement {
207
206
  }
208
207
 
209
208
  handleInput(event) {
210
- /**
211
- * Fires when input fires on the input slot
212
- */
213
- this.dispatchEvent(
214
- new CustomEvent('kemet-field-input', {
215
- bubbles: false,
216
- detail: event.detail.length,
217
- }),
218
- );
209
+ emitEvent(this, 'kemet-field-input', event.detail.length);
219
210
 
220
211
  if (event.detail === '') {
221
212
  this.filled = false;
@@ -1,4 +1,15 @@
1
1
  import { LitElement, html, css } from 'lit';
2
+ import { emitEvent } from '../../utilities/misc/events.js';
3
+
4
+ /**
5
+ * @since 1.0.0
6
+ * @status stable
7
+ *
8
+ * @tagname kemet-flipcard-trigger
9
+ * @summary Triggers a flipcard component to flip.
10
+ *
11
+ * @event kemet-flipcard-flipped - Fires when a flipcard is flipped
12
+ */
2
13
 
3
14
  export default class KemetFlipcardTrigger extends LitElement {
4
15
  static get styles() {
@@ -25,11 +36,7 @@ export default class KemetFlipcardTrigger extends LitElement {
25
36
  }
26
37
 
27
38
  trigger() {
28
- this.dispatchEvent(new CustomEvent('kemet-flipcard-flipped', {
29
- bubbles: true,
30
- composed: true,
31
- detail: this,
32
- }));
39
+ emitEvent(this, 'kemet-flipcard-flipped', this);
33
40
  }
34
41
 
35
42
  handleKeyup(event) {
@@ -1,5 +1,29 @@
1
1
  import { html, css, LitElement } from 'lit';
2
2
 
3
+ /**
4
+ * @since 1.0.0
5
+ * @status stable
6
+ *
7
+ * @tagname kemet-flipcard
8
+ * @summary A card that has a front and back side which can be flipped.
9
+ *
10
+ * @slot front - The front of the card.
11
+ * @slot back - The back of the card.
12
+ *
13
+ * @csspart front - The front of the card.
14
+ * @csspart back - The back of the card.
15
+ * @csspart wrapper - A container for both front and back of the card.
16
+ *
17
+ * @cssproperty --kemet-flipcard-front-color - The text color for the front of the card. Default: #202020.
18
+ * @cssproperty --kemet-flipcard-back-color - The text color for the back of the card. Default: #202020.
19
+ * @cssproperty --kemet-flipcard-front-background-color - The background color for the front of the card. Default: #fafafa.
20
+ * @cssproperty --kemet-flipcard-back-background-color - The background color for the back of the card. Default: #fafafa.
21
+ * @cssproperty --kemet-flipcard-border - The border on the front and back of the card. Default: 2px solid var(--kemet-color-primary).
22
+ * @cssproperty --kemet-flipcard-border-radius - The border radius on the front and back of the card. Default: 0.
23
+ * @cssproperty --kemet-flipcard-ratio - The aspect ratio of the card. Default: 16/9.
24
+ *
25
+ */
26
+
3
27
  export default class KemetFlipcard extends LitElement {
4
28
  static get styles() {
5
29
  return css`
@@ -93,21 +117,17 @@ export default class KemetFlipcard extends LitElement {
93
117
  type: String,
94
118
  reflect: true,
95
119
  },
96
-
97
120
  flipped: {
98
121
  type: Boolean,
99
122
  reflect: true,
100
123
  },
101
-
102
124
  flipOnHover: {
103
125
  type: Boolean,
104
126
  attribute: 'flip-on-hover',
105
127
  },
106
-
107
128
  height: {
108
129
  type: String,
109
130
  },
110
-
111
131
  measure: {
112
132
  type: Boolean,
113
133
  },
@@ -1,28 +1,29 @@
1
+ /* eslint-disable max-len */
1
2
  /* eslint-disable no-console */
2
- import {
3
- html, css, LitElement,
4
- } from 'lit';
3
+ import { html, css, LitElement } from 'lit';
4
+
5
+ /**
6
+ * @since 1.0.0
7
+ * @status stable
8
+ *
9
+ * @tagname kemet-icon
10
+ * @summary An element that represents an icon from a predefined set of open sourced icons.
11
+ *
12
+ * @prop {string} icon - The name of the icon to reference.
13
+ * @prop {string} set - The sprite map from an open source project that an icon belongs too. Values include: (bootstrap | font-awesome-brand | font-awesome-regular | font-awesome-solid)
14
+ * @prop {number} size - The width and height of the icon in pixels.
15
+ *
16
+ */
5
17
 
6
18
  export default class KemetIcon extends LitElement {
7
19
  static get properties() {
8
20
  return {
9
- /**
10
- * The name of the icon to reference.
11
- */
12
21
  icon: {
13
22
  type: String,
14
23
  },
15
- /**
16
- * The sprite map from an open source project that an icon belongs too.
17
- * Values include:
18
- * (bootstrap | font-awesome-brand | font-awesome-regular | font-awesome-solid)
19
- */
20
24
  set: {
21
25
  type: String,
22
26
  },
23
- /**
24
- * The width and height of the icon in pixels.
25
- */
26
27
  size: {
27
28
  type: Number,
28
29
  },
@@ -95,7 +96,10 @@ export default class KemetIcon extends LitElement {
95
96
  .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
96
97
  .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#EC1C24;}
97
98
  </style>
98
- <g><path class="st0" d="M256,0c70.7,0,134.7,28.7,181,75c46.3,46.3,75,110.3,75,181c0,70.7-28.7,134.7-75,181 c-46.3,46.3-110.3,75-181,75c-70.7,0-134.7-28.7-181-75C28.7,390.7,0,326.7,0,256c0-70.7,28.7-134.7,75-181S185.3,0,256,0z"/><path class="st1" d="M512,256c0-70.7-28.7-134.7-75-181C390.7,28.7,326.7,0,256,0C193,0,135.5,22.8,90.9,60.6l-0.1-0.1 C85.3,65.1,80,69.9,75,75c-5,5.1-9.9,10.3-14.5,15.8l0.1,0.1C22.8,135.5,0,193,0,256c0,70.7,28.7,134.7,75,181 c46.3,46.3,110.3,75,181,75c63,0,120.5-22.8,165.1-60.6l0.1,0.1c5.4-4.6,10.7-9.5,15.8-14.5c5-5,9.9-10.3,14.5-15.8l-0.1-0.1 C489.2,376.6,512,319,512,256z M256,42.9c58.9,0,112.1,23.9,150.7,62.4c38.6,38.6,62.4,91.9,62.4,150.7c0,51.1-18.1,98-48.1,134.8 L121.2,90.9C158,60.9,204.9,42.9,256,42.9z M256,469.1c-58.8,0-112.1-23.9-150.7-62.4C66.7,368.1,42.9,314.9,42.9,256 c0-51.1,18.1-98,48.1-134.8l299.8,299.8C354,451.1,307.1,469.1,256,469.1z"/></g>
99
+ <g>
100
+ <path class="st0" d="M256,0c70.7,0,134.7,28.7,181,75c46.3,46.3,75,110.3,75,181c0,70.7-28.7,134.7-75,181 c-46.3,46.3-110.3,75-181,75c-70.7,0-134.7-28.7-181-75C28.7,390.7,0,326.7,0,256c0-70.7,28.7-134.7,75-181S185.3,0,256,0z"/>
101
+ <path class="st1" d="M512,256c0-70.7-28.7-134.7-75-181C390.7,28.7,326.7,0,256,0C193,0,135.5,22.8,90.9,60.6l-0.1-0.1 C85.3,65.1,80,69.9,75,75c-5,5.1-9.9,10.3-14.5,15.8l0.1,0.1C22.8,135.5,0,193,0,256c0,70.7,28.7,134.7,75,181 c46.3,46.3,110.3,75,181,75c63,0,120.5-22.8,165.1-60.6l0.1,0.1c5.4-4.6,10.7-9.5,15.8-14.5c5-5,9.9-10.3,14.5-15.8l-0.1-0.1 C489.2,376.6,512,319,512,256z M256,42.9c58.9,0,112.1,23.9,150.7,62.4c38.6,38.6,62.4,91.9,62.4,150.7c0,51.1-18.1,98-48.1,134.8 L121.2,90.9C158,60.9,204.9,42.9,256,42.9z M256,469.1c-58.8,0-112.1-23.9-150.7-62.4C66.7,368.1,42.9,314.9,42.9,256 c0-51.1,18.1-98,48.1-134.8l299.8,299.8C354,451.1,307.1,469.1,256,469.1z"/>
102
+ </g>
99
103
  </svg>
100
104
  `;
101
105