@nuralogix.ai/web-measurement-embedded-app 0.1.0-alpha.9 → 0.1.0-beta.2
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.
- package/README.md +140 -86
- package/dist/app.css +66 -52
- package/dist/app.mjs +99 -89
- package/dist/assets/extraction/extraction_wasm_0.1.0-beta.1.json +1 -0
- package/dist/assets/extraction_worker_0.1.0-beta.1_js.json +1 -0
- package/dist/assets/facetracker_worker_0.1.0-beta.1_js.json +1 -0
- package/dist/assets/models/detectorModel_bin.json +1 -0
- package/dist/assets/models/detectorModel_json.json +1 -0
- package/dist/assets/models/landmarkModel_bin.json +1 -0
- package/dist/assets/models/landmarkModel_json.json +1 -0
- package/dist/language/strings.de.json +9 -12
- package/dist/language/strings.en.json +14 -27
- package/dist/language/strings.es.json +9 -12
- package/dist/language/strings.fr.json +7 -24
- package/dist/language/strings.it.json +11 -14
- package/dist/language/strings.ja.json +10 -13
- package/dist/language/strings.pt-BR.json +25 -0
- package/dist/language/strings.pt.json +9 -12
- package/dist/language/strings.zh.json +25 -0
- package/dist/stylex.css +30 -18
- package/lib/index.d.ts +52 -6
- package/lib/index.mjs +739 -1
- package/package.json +4 -2
- package/dist/assets/extraction/extraction_wasm_0.1.0-alpha.25.json +0 -1
- package/dist/assets/extraction_worker_0.1.0-alpha.25_js.json +0 -1
- package/dist/assets/facetracker_worker_0.1.0-alpha.25_js.json +0 -1
- package/dist/assets/taskVision/model/face_landmarker.task +0 -0
- package/dist/assets/taskVision/wasm/vision_wasm_internal_js.json +0 -1
- package/dist/assets/taskVision/wasm/vision_wasm_internal_wasm.json +0 -1
- package/dist/assets/taskVision/wasm/vision_wasm_nosimd_internal_js.json +0 -1
- package/dist/assets/taskVision/wasm/vision_wasm_nosimd_internal_wasm.json +0 -1
- package/dist/language/strings.br.json +0 -28
- package/dist/language/strings.cn.json +0 -28
package/README.md
CHANGED
|
@@ -1,110 +1,127 @@
|
|
|
1
1
|
### Web Measurement Embedded App
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Need deeper integration details? Check the full docs at [docs.deepaffex.ai/wmea](https://docs.deepaffex.ai/wmea/).
|
|
4
4
|
|
|
5
5
|
```html
|
|
6
6
|
<!DOCTYPE html>
|
|
7
7
|
<html lang="en">
|
|
8
|
-
<head>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
<head>
|
|
9
|
+
<meta charset="UTF-8" />
|
|
10
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
11
|
+
<title>Measurement Embedded App Demo</title>
|
|
12
|
+
<style>
|
|
13
|
+
#measurement-embedded-app-container {
|
|
14
|
+
position: fixed;
|
|
15
|
+
top: 100px;
|
|
16
|
+
left: 0;
|
|
17
|
+
width: 100vw;
|
|
18
|
+
height: calc(100vh - 100px);
|
|
19
|
+
}
|
|
20
|
+
</style>
|
|
12
21
|
<script type="importmap">
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
22
|
+
{
|
|
23
|
+
"imports": {
|
|
24
|
+
"@nuralogix.ai/web-measurement-embedded-app": "https://unpkg.com/@nuralogix.ai/web-measurement-embedded-app"
|
|
17
25
|
}
|
|
26
|
+
}
|
|
18
27
|
</script>
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
measurementApp.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div id="measurement-embedded-app-container"></div>
|
|
31
|
+
<script type="module">
|
|
32
|
+
import MeasurementEmbeddedApp, { faceAttributeValue } from '@nuralogix.ai/web-measurement-embedded-app';
|
|
33
|
+
const {
|
|
34
|
+
SEX_ASSIGNED_MALE_AT_BIRTH,
|
|
35
|
+
SMOKER_FALSE,
|
|
36
|
+
BLOOD_PRESSURE_MEDICATION_FALSE,
|
|
37
|
+
DIABETES_NONE
|
|
38
|
+
} = faceAttributeValue;
|
|
39
|
+
const measurementApp = new MeasurementEmbeddedApp();
|
|
40
|
+
const container = document.getElementById('measurement-embedded-app-container');
|
|
41
|
+
if (container) {
|
|
42
|
+
const apiUrl = '/api';
|
|
43
|
+
const studyId = await fetch(`${apiUrl}/studyId`);
|
|
44
|
+
const studyIdResponse = await studyId.json();
|
|
45
|
+
const token = await fetch(`${apiUrl}/token`);
|
|
46
|
+
const tokenResponse = await token.json();
|
|
47
|
+
if (studyIdResponse.status === '200' && tokenResponse.status === '200') {
|
|
48
|
+
measurementApp.init({
|
|
49
|
+
container,
|
|
50
|
+
appPath: 'https://unpkg.com/@nuralogix.ai/web-measurement-embedded-app/dist',
|
|
51
|
+
settings: {
|
|
52
|
+
token: tokenResponse.token,
|
|
53
|
+
refreshToken: tokenResponse.refreshToken,
|
|
54
|
+
studyId: studyIdResponse.studyId,
|
|
55
|
+
},
|
|
56
|
+
profile: {
|
|
57
|
+
age: 40,
|
|
58
|
+
height: 180,
|
|
59
|
+
weight: 60,
|
|
60
|
+
sex: SEX_ASSIGNED_MALE_AT_BIRTH,
|
|
61
|
+
smoking: SMOKER_FALSE,
|
|
62
|
+
bloodPressureMedication: BLOOD_PRESSURE_MEDICATION_FALSE,
|
|
63
|
+
diabetes: DIABETES_NONE,
|
|
64
|
+
bypassProfile: false,
|
|
65
|
+
},
|
|
66
|
+
// Optional configuration overrides (defaults shown)
|
|
67
|
+
config: {
|
|
68
|
+
checkConstraints: true,
|
|
69
|
+
cameraFacingMode: 'user', // or 'environment' for back camera
|
|
70
|
+
cameraAutoStart: false,
|
|
71
|
+
measurementAutoStart: false,
|
|
72
|
+
cancelWhenLowSNR: true,
|
|
73
|
+
}
|
|
74
|
+
// Optional language/api overrides
|
|
75
|
+
// language: 'fr'
|
|
76
|
+
apiUrl: 'api.na-east.deepaffex.ai', // optional for region specific data processing
|
|
77
|
+
loadError: function(error) {
|
|
78
|
+
console.error("load error", error);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
measurementApp.on.results = (results) => {
|
|
82
|
+
console.log("Results received", results);
|
|
83
|
+
measurementApp.destroy();
|
|
84
|
+
};
|
|
85
|
+
measurementApp.on.error = (error) => {
|
|
86
|
+
console.log("error received", error);
|
|
87
|
+
};
|
|
88
|
+
measurementApp.on.event = (appEvent) => {
|
|
89
|
+
console.log("App Event received", appEvent);
|
|
90
|
+
};
|
|
91
|
+
} else {
|
|
92
|
+
console.error('Failed to get Study ID and Token pair');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
</script>
|
|
96
|
+
</body>
|
|
86
97
|
</html>
|
|
87
98
|
```
|
|
88
99
|
|
|
89
|
-
**Notes:**
|
|
90
|
-
|
|
91
|
-
- If you are bundling `Web Measurement Embedded App` with your app, set `appPath` to `'.'`.
|
|
92
|
-
|
|
93
|
-
- `language` prop is optional. You can either set it to `en` or `fr`
|
|
94
|
-
- If a supported language is set, the app loads with a supported language.
|
|
95
|
-
- If the language prop is not set, the app checks the browser's language and if it is among
|
|
96
|
-
the list of supported languages, it loads the language pack for the browser's language.
|
|
97
|
-
Otherwise falls back to `en`.
|
|
100
|
+
**Notes:**
|
|
98
101
|
|
|
102
|
+
- Set `appPath` to `'.'` when you bundle the assets yourself.
|
|
103
|
+
- Profile handling: when `bypassProfile` remains `true` (default) we skip demographic submission and emit an `ERROR` event with `PROFILE_INFO_NOT_SET`; set it to `false` once you supply real profile data.
|
|
104
|
+
- Style the container you pass to `init` (e.g., position, top, width).
|
|
105
|
+
- Optional `apiUrl` enables region-specific processing; omitted values follow the backend token's region automatically. When set explicitly, frontend calls your URL (processing where that endpoint runs) while results continue to store in the token's region—verify the combination suits your deployment.
|
|
106
|
+
- Config options:
|
|
107
|
+
- `checkConstraints` (default: `true`) – enables constraint validation pre-measurement
|
|
108
|
+
- `cameraFacingMode` (default: `'user'`) – use `'user'` for front camera or `'environment'` for back camera.
|
|
109
|
+
- `cameraAutoStart` (default: `false`) – automatically starts the camera once permission is granted.
|
|
110
|
+
- `measurementAutoStart` (default: `false`) – automatically starts the measurement once constraints are satisfied.
|
|
111
|
+
- `cancelWhenLowSNR` (default: `true`) – cancels the measurement if signal-to-noise ratio falls below threshold.
|
|
112
|
+
- Language support: `en`, `ja`, `zh`, `es`, `pt`, `pt-BR`, `it`, `fr`, `de`.
|
|
113
|
+
- Unsupported browser locales fall back to base language (e.g., `zh-TW` → `zh`), then to English.
|
|
114
|
+
- `loadError` is called if assets fail to download or the app cannot initialize.
|
|
99
115
|
|
|
100
116
|
**Methods:**
|
|
101
117
|
|
|
102
118
|
```typescript
|
|
103
119
|
init(options: MeasurementEmbeddedAppOptions): void;
|
|
104
120
|
destroy(): void;
|
|
105
|
-
cancel():
|
|
121
|
+
cancel(reset: boolean): Promise<boolean>;
|
|
106
122
|
setTheme(theme: 'light' | 'dark'): void;
|
|
107
123
|
setLanguage(language: SupportedLanguage): void;
|
|
124
|
+
getLogs(): Promise<Log[]>;
|
|
108
125
|
```
|
|
109
126
|
|
|
110
127
|
**Events:**
|
|
@@ -128,3 +145,40 @@ error: ((error: MeasurementEmbeddedAppError) => void) | null;
|
|
|
128
145
|
*/
|
|
129
146
|
event: ((appEvent: AppEvent) => void) | null;
|
|
130
147
|
```
|
|
148
|
+
|
|
149
|
+
**App events dispatched through `measurementApp.on.event`:**
|
|
150
|
+
|
|
151
|
+
- `APP_LOADED` – the embedded app finished its startup sequence.
|
|
152
|
+
- `CAMERA_PERMISSION_GRANTED` – the user granted camera access.
|
|
153
|
+
- `CAMERA_STARTED` – a camera stream opened successfully.
|
|
154
|
+
- `MEASUREMENT_STARTED` – a measurement run begins.
|
|
155
|
+
- `MEASUREMENT_COMPLETED` – the measurement finished and results are stable.
|
|
156
|
+
- `INTERMEDIATE_RESULTS` – partial results are available during an active run.
|
|
157
|
+
- `RESULTS_RECEIVED` – the final measurement results are available.
|
|
158
|
+
- `MEASUREMENT_CANCELED` – the active measurement was canceled (user action or constraint).
|
|
159
|
+
- `CONSTRAINT_VIOLATION` – a constraint (e.g., face distance) failed.
|
|
160
|
+
- `PAGE_VISIBILITY_CHANGE` – the page changed visibility (e.g., tab switch or minimize).
|
|
161
|
+
- `PAGE_UNLOADED` – the page is unloading.
|
|
162
|
+
|
|
163
|
+
**Other runtime helpers:**
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
await measurementApp.cancel(true); // cancel current run
|
|
167
|
+
const logs = await measurementApp.getLogs();
|
|
168
|
+
measurementApp.setTheme('dark');
|
|
169
|
+
measurementApp.setLanguage('es');
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Error codes emitted through `measurementApp.on.error`:**
|
|
173
|
+
|
|
174
|
+
| Code | Meaning |
|
|
175
|
+
| -------------------------- | ----------------------------------------------------------------- |
|
|
176
|
+
| `CAMERA_PERMISSION_DENIED` | Camera access prompt was rejected. |
|
|
177
|
+
| `CAMERA_START_FAILED` | Camera hardware failed to start after permission. |
|
|
178
|
+
| `NO_DEVICES_FOUND` | No video input devices detected during enumeration. |
|
|
179
|
+
| `PAGE_NOT_VISIBLE` | Measurement was running while the tab or window became hidden. |
|
|
180
|
+
| `MEASUREMENT_LOW_SNR` | Signal-to-noise ratio dropped below the acceptable threshold. |
|
|
181
|
+
| `WORKER_ERROR` | SDK worker encountered a fatal processing error. |
|
|
182
|
+
| `PROFILE_INFO_NOT_SET` | Profile bypass stayed enabled, so demographics were not provided. |
|
|
183
|
+
| `COLLECTOR` | Frame collection reported an error |
|
|
184
|
+
| `WEBSOCKET_DISCONNECTED` | Realtime WebSocket connection closed or dropped. |
|
package/dist/app.css
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
|
|
2
|
+
|
|
1
3
|
@layer priority1 {
|
|
2
4
|
@keyframes nuraqng64z-B {
|
|
3
5
|
0% {
|
|
@@ -8,8 +10,8 @@
|
|
|
8
10
|
transform: rotate(360deg);
|
|
9
11
|
}
|
|
10
12
|
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
+
}
|
|
14
|
+
|
|
13
15
|
@layer priority2 {
|
|
14
16
|
.nura164fk60 {
|
|
15
17
|
background: initial;
|
|
@@ -82,8 +84,8 @@
|
|
|
82
84
|
.nura6rcfto {
|
|
83
85
|
padding: var(--padding);
|
|
84
86
|
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
+
}
|
|
88
|
+
|
|
87
89
|
@layer priority3 {
|
|
88
90
|
.nura196p5u9 {
|
|
89
91
|
border-bottom: 1px solid #0000;
|
|
@@ -121,6 +123,10 @@
|
|
|
121
123
|
border-top: 1px solid #ddd;
|
|
122
124
|
}
|
|
123
125
|
|
|
126
|
+
.nura13z6uf9 {
|
|
127
|
+
gap: .5rem;
|
|
128
|
+
}
|
|
129
|
+
|
|
124
130
|
.nura167g77z {
|
|
125
131
|
gap: 8px;
|
|
126
132
|
}
|
|
@@ -220,8 +226,8 @@
|
|
|
220
226
|
.nura1uvtmcs:focus {
|
|
221
227
|
outline: none;
|
|
222
228
|
}
|
|
223
|
-
}
|
|
224
|
-
|
|
229
|
+
}
|
|
230
|
+
|
|
225
231
|
@layer priority4 {
|
|
226
232
|
.nura1lugfcp {
|
|
227
233
|
-webkit-appearance: none;
|
|
@@ -447,6 +453,10 @@
|
|
|
447
453
|
letter-spacing: var(--letterSpacing);
|
|
448
454
|
}
|
|
449
455
|
|
|
456
|
+
.nura1uo3zyz {
|
|
457
|
+
line-height: 1.15;
|
|
458
|
+
}
|
|
459
|
+
|
|
450
460
|
.nura15bjb6t {
|
|
451
461
|
line-height: inherit;
|
|
452
462
|
}
|
|
@@ -463,8 +473,8 @@
|
|
|
463
473
|
opacity: .5;
|
|
464
474
|
}
|
|
465
475
|
|
|
466
|
-
.
|
|
467
|
-
opacity: .
|
|
476
|
+
.nura197sbye {
|
|
477
|
+
opacity: .6;
|
|
468
478
|
}
|
|
469
479
|
|
|
470
480
|
.nurag01cxk {
|
|
@@ -620,8 +630,8 @@
|
|
|
620
630
|
cursor: pointer;
|
|
621
631
|
}
|
|
622
632
|
|
|
623
|
-
.
|
|
624
|
-
filter: brightness(.
|
|
633
|
+
.nurakapau0:hover {
|
|
634
|
+
filter: brightness(.95);
|
|
625
635
|
}
|
|
626
636
|
|
|
627
637
|
.nura1t7rm6y:hover {
|
|
@@ -636,13 +646,17 @@
|
|
|
636
646
|
transform: scale(1.1);
|
|
637
647
|
}
|
|
638
648
|
|
|
649
|
+
.nura19y0ph4:active {
|
|
650
|
+
filter: brightness(.9);
|
|
651
|
+
}
|
|
652
|
+
|
|
639
653
|
@media (width <= 768px) {
|
|
640
654
|
.nura4vx8n7.nura4vx8n7 {
|
|
641
655
|
align-items: end;
|
|
642
656
|
}
|
|
643
657
|
}
|
|
644
|
-
}
|
|
645
|
-
|
|
658
|
+
}
|
|
659
|
+
|
|
646
660
|
@layer priority5 {
|
|
647
661
|
.nura1szun9y {
|
|
648
662
|
bottom: 1rem;
|
|
@@ -789,8 +803,8 @@
|
|
|
789
803
|
padding-bottom: 1rem;
|
|
790
804
|
}
|
|
791
805
|
}
|
|
792
|
-
}
|
|
793
|
-
|
|
806
|
+
}
|
|
807
|
+
|
|
794
808
|
@layer priority6 {
|
|
795
809
|
.nuratb5x6d:before {
|
|
796
810
|
border-color: var(--1il6zln);
|
|
@@ -827,8 +841,8 @@
|
|
|
827
841
|
.nuradb2nx::-moz-progress-bar {
|
|
828
842
|
transition: var(--1nt0dl9);
|
|
829
843
|
}
|
|
830
|
-
}
|
|
831
|
-
|
|
844
|
+
}
|
|
845
|
+
|
|
832
846
|
@layer priority7 {
|
|
833
847
|
.nura18j5lt8:after {
|
|
834
848
|
background-color: var(--15iyedw);
|
|
@@ -854,7 +868,7 @@
|
|
|
854
868
|
color: var(--bfcyyw);
|
|
855
869
|
}
|
|
856
870
|
|
|
857
|
-
.
|
|
871
|
+
.nura1cpjm7i:before, .nura1s928wv:after {
|
|
858
872
|
content: "";
|
|
859
873
|
}
|
|
860
874
|
|
|
@@ -874,15 +888,15 @@
|
|
|
874
888
|
opacity: 1;
|
|
875
889
|
}
|
|
876
890
|
|
|
877
|
-
.
|
|
891
|
+
.nura1hmns74:before, .nura1j6awrg:after {
|
|
878
892
|
position: absolute;
|
|
879
893
|
}
|
|
880
894
|
|
|
881
895
|
.nura7tg5rq:before {
|
|
882
896
|
transform-origin: 100%;
|
|
883
897
|
}
|
|
884
|
-
}
|
|
885
|
-
|
|
898
|
+
}
|
|
899
|
+
|
|
886
900
|
@layer priority8 {
|
|
887
901
|
.nura171sez1:before {
|
|
888
902
|
border-bottom-left-radius: var(--ucnkut);
|
|
@@ -927,8 +941,8 @@
|
|
|
927
941
|
.nuragu5zj8:before {
|
|
928
942
|
width: var(--nzppn4);
|
|
929
943
|
}
|
|
930
|
-
}
|
|
931
|
-
|
|
944
|
+
}
|
|
945
|
+
|
|
932
946
|
@layer priority1 {
|
|
933
947
|
:host, .nura1lutyi5 {
|
|
934
948
|
--nura137mxtf: blur(0);
|
|
@@ -999,7 +1013,7 @@
|
|
|
999
1013
|
}
|
|
1000
1014
|
|
|
1001
1015
|
:host, .nura8l07yk {
|
|
1002
|
-
--nura5ws185: "
|
|
1016
|
+
--nura5ws185: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
1003
1017
|
--nura15pxpln: "Source Code Pro", monospace;
|
|
1004
1018
|
--nuraop3txb: 100;
|
|
1005
1019
|
--nurav8kkbq: 200;
|
|
@@ -1010,12 +1024,12 @@
|
|
|
1010
1024
|
--nuraa6i7ec: 700;
|
|
1011
1025
|
--nuraicucjz: 800;
|
|
1012
1026
|
--nura1bthghg: 800;
|
|
1013
|
-
--nura13kdxmb:
|
|
1014
|
-
--nurarrpz26:
|
|
1015
|
-
--nuras6s3bh:
|
|
1016
|
-
--nura1q7jn1b:
|
|
1017
|
-
--nuraccq7bu:
|
|
1018
|
-
--nuracrl1yn:
|
|
1027
|
+
--nura13kdxmb: 0;
|
|
1028
|
+
--nurarrpz26: 0;
|
|
1029
|
+
--nuras6s3bh: 0;
|
|
1030
|
+
--nura1q7jn1b: .01em;
|
|
1031
|
+
--nuraccq7bu: .02em;
|
|
1032
|
+
--nuracrl1yn: .04em;
|
|
1019
1033
|
}
|
|
1020
1034
|
|
|
1021
1035
|
:host, .nura927nu8 {
|
|
@@ -1138,7 +1152,7 @@
|
|
|
1138
1152
|
}
|
|
1139
1153
|
|
|
1140
1154
|
:host, .nura8l07yk {
|
|
1141
|
-
--nura5ws185: "
|
|
1155
|
+
--nura5ws185: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
1142
1156
|
--nura15pxpln: "Source Code Pro", monospace;
|
|
1143
1157
|
--nuraop3txb: 100;
|
|
1144
1158
|
--nurav8kkbq: 200;
|
|
@@ -1149,12 +1163,12 @@
|
|
|
1149
1163
|
--nuraa6i7ec: 700;
|
|
1150
1164
|
--nuraicucjz: 800;
|
|
1151
1165
|
--nura1bthghg: 800;
|
|
1152
|
-
--nura13kdxmb:
|
|
1153
|
-
--nurarrpz26:
|
|
1154
|
-
--nuras6s3bh:
|
|
1155
|
-
--nura1q7jn1b:
|
|
1156
|
-
--nuraccq7bu:
|
|
1157
|
-
--nuracrl1yn:
|
|
1166
|
+
--nura13kdxmb: 0;
|
|
1167
|
+
--nurarrpz26: 0;
|
|
1168
|
+
--nuras6s3bh: 0;
|
|
1169
|
+
--nura1q7jn1b: .01em;
|
|
1170
|
+
--nuraccq7bu: .02em;
|
|
1171
|
+
--nuracrl1yn: .04em;
|
|
1158
1172
|
}
|
|
1159
1173
|
|
|
1160
1174
|
:host, .nura927nu8 {
|
|
@@ -1207,8 +1221,8 @@
|
|
|
1207
1221
|
--nurant3gmo: 72px;
|
|
1208
1222
|
}
|
|
1209
1223
|
}
|
|
1210
|
-
}
|
|
1211
|
-
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1212
1226
|
@layer priority1 {
|
|
1213
1227
|
:host, .nurazc319s {
|
|
1214
1228
|
--nura15kgmj: #4382fb;
|
|
@@ -1309,7 +1323,7 @@
|
|
|
1309
1323
|
}
|
|
1310
1324
|
|
|
1311
1325
|
:host, .nuray4fqpn {
|
|
1312
|
-
--nurab0d2oh: "
|
|
1326
|
+
--nurab0d2oh: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
1313
1327
|
--nura1q6hgg3: "Source Code Pro", monospace;
|
|
1314
1328
|
--nura1h50opk: 100;
|
|
1315
1329
|
--nura1mlt2cb: 200;
|
|
@@ -1320,12 +1334,12 @@
|
|
|
1320
1334
|
--nuralxs4ab: 700;
|
|
1321
1335
|
--nurao6jd0z: 800;
|
|
1322
1336
|
--nura1p1d7fs: 800;
|
|
1323
|
-
--nura1mhtijf:
|
|
1324
|
-
--nural0r81e:
|
|
1325
|
-
--nuraipvt1z:
|
|
1326
|
-
--nura103k51f:
|
|
1327
|
-
--nuraz6gym2:
|
|
1328
|
-
--nurac66gpe:
|
|
1337
|
+
--nura1mhtijf: 0;
|
|
1338
|
+
--nural0r81e: 0;
|
|
1339
|
+
--nuraipvt1z: 0;
|
|
1340
|
+
--nura103k51f: .01em;
|
|
1341
|
+
--nuraz6gym2: .02em;
|
|
1342
|
+
--nurac66gpe: .04em;
|
|
1329
1343
|
}
|
|
1330
1344
|
|
|
1331
1345
|
:host, .nura1du2u5v {
|
|
@@ -1448,7 +1462,7 @@
|
|
|
1448
1462
|
}
|
|
1449
1463
|
|
|
1450
1464
|
:host, .nuray4fqpn {
|
|
1451
|
-
--nurab0d2oh: "
|
|
1465
|
+
--nurab0d2oh: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
1452
1466
|
--nura1q6hgg3: "Source Code Pro", monospace;
|
|
1453
1467
|
--nura1h50opk: 100;
|
|
1454
1468
|
--nura1mlt2cb: 200;
|
|
@@ -1459,12 +1473,12 @@
|
|
|
1459
1473
|
--nuralxs4ab: 700;
|
|
1460
1474
|
--nurao6jd0z: 800;
|
|
1461
1475
|
--nura1p1d7fs: 800;
|
|
1462
|
-
--nura1mhtijf:
|
|
1463
|
-
--nural0r81e:
|
|
1464
|
-
--nuraipvt1z:
|
|
1465
|
-
--nura103k51f:
|
|
1466
|
-
--nuraz6gym2:
|
|
1467
|
-
--nurac66gpe:
|
|
1476
|
+
--nura1mhtijf: 0;
|
|
1477
|
+
--nural0r81e: 0;
|
|
1478
|
+
--nuraipvt1z: 0;
|
|
1479
|
+
--nura103k51f: .01em;
|
|
1480
|
+
--nuraz6gym2: .02em;
|
|
1481
|
+
--nurac66gpe: .04em;
|
|
1468
1482
|
}
|
|
1469
1483
|
|
|
1470
1484
|
:host, .nura1du2u5v {
|