@nyuccl/smile 0.2.0-beta.12 → 0.2.0-beta.15
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/dist/module.json +1 -1
- package/dist/module.mjs +13 -6
- package/dist/runtime/components/builtins/DebriefView.vue +2 -2
- package/dist/runtime/components/builtins/DemographicSurveyView.vue +6 -9
- package/dist/runtime/components/builtins/DeviceSurveyView.vue +4 -6
- package/dist/runtime/components/builtins/ExpView.vue +2 -2
- package/dist/runtime/components/builtins/FavoriteColor.vue +2 -2
- package/dist/runtime/components/builtins/FavoriteNumber.vue +2 -2
- package/dist/runtime/components/builtins/InformedConsentModal.vue +2 -2
- package/dist/runtime/components/builtins/InstructionsQuiz.vue +6 -9
- package/dist/runtime/components/builtins/InstructionsView.vue +3 -4
- package/dist/runtime/components/builtins/StatusBar.vue +4 -6
- package/dist/runtime/components/builtins/StudyPreviewText.vue +2 -2
- package/dist/runtime/components/builtins/TaskFeedbackSurveyView.vue +2 -2
- package/dist/runtime/components/builtins/ThanksView.vue +17 -19
- package/dist/runtime/components/builtins/WindowSizerView.vue +4 -5
- package/dist/runtime/components/builtins/WithdrawModal.vue +3 -4
- package/dist/runtime/components/builtins/WithdrawView.vue +3 -4
- package/dist/runtime/components/dev/RecruitmentChooserView.vue +20 -21
- package/dist/runtime/components/dev/ResponsiveDeviceContainer.vue +6 -10
- package/dist/runtime/components/dev/console/ConfigList.vue +3 -4
- package/dist/runtime/components/dev/console/ConsoleConfigPanel.vue +2 -2
- package/dist/runtime/components/dev/console/ConsoleDatabaseBrowsePanel.vue +2 -2
- package/dist/runtime/components/dev/console/ConsoleLogPanel.vue +13 -18
- package/dist/runtime/components/dev/console/DatabaseList.vue +3 -4
- package/dist/runtime/components/dev/console/SmileDevConsole.vue +5 -8
- package/dist/runtime/components/dev/menu/DevConfigPanel.vue +2 -2
- package/dist/runtime/components/dev/menu/SmileDevAppMenu.vue +8 -14
- package/dist/runtime/components/dev/navbar/ColorModeButton.vue +4 -6
- package/dist/runtime/components/dev/navbar/DatabaseButtonGroup.vue +5 -6
- package/dist/runtime/components/dev/navbar/FullScreenButton.vue +3 -4
- package/dist/runtime/components/dev/navbar/ReloadButton.vue +2 -2
- package/dist/runtime/components/dev/navbar/ResetButton.vue +2 -2
- package/dist/runtime/components/dev/navbar/RouteJumper.vue +5 -8
- package/dist/runtime/components/dev/navbar/SmileDevNavBar.vue +3 -3
- package/dist/runtime/components/dev/navbar/StepInfoButtonGroup.vue +4 -6
- package/dist/runtime/components/dev/navbar/ViewInfoButtonGroup.vue +11 -18
- package/dist/runtime/components/dev/presentation/DarkModeButton.vue +4 -6
- package/dist/runtime/components/dev/presentation/LogoutButton.vue +2 -2
- package/dist/runtime/components/dev/presentation/PresentationModeResetButton.vue +2 -2
- package/dist/runtime/components/dev/presentation/PresentationNavBar.vue +3 -4
- package/dist/runtime/components/dev/presentation/QRCodeButton.vue +3 -4
- package/dist/runtime/components/dev/sidebar/AppProgressPanel.vue +4 -6
- package/dist/runtime/components/dev/sidebar/StepExplorerPanel.vue +7 -11
- package/dist/runtime/components/dev/sidebar/StepNode.vue +3 -4
- package/dist/runtime/components/ui/badge/index.d.ts +1 -1
- package/dist/runtime/components/ui/button/index.d.ts +2 -2
- package/dist/runtime/components/ui/button-group/ButtonGroup.d.vue.ts +1 -1
- package/dist/runtime/components/ui/button-group/ButtonGroup.vue.d.ts +1 -1
- package/dist/runtime/components/ui/checkbox/Checkbox.d.vue.ts +2 -2
- package/dist/runtime/components/ui/checkbox/Checkbox.vue.d.ts +2 -2
- package/dist/runtime/components/ui/checkbox/index.d.ts +1 -1
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.d.vue.ts +2 -2
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +2 -2
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.d.vue.ts +1 -1
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +1 -1
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.d.vue.ts +1 -1
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +1 -1
- package/dist/runtime/components/ui/multiselect/MultiSelect.d.vue.ts +1 -1
- package/dist/runtime/components/ui/multiselect/MultiSelect.vue.d.ts +1 -1
- package/dist/runtime/components/ui/resizable/ResizablePanel.d.vue.ts +1 -1
- package/dist/runtime/components/ui/resizable/ResizablePanel.vue.d.ts +1 -1
- package/dist/runtime/components/ui/select/Select.d.vue.ts +1 -1
- package/dist/runtime/components/ui/select/Select.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sheet/SheetContent.d.vue.ts +1 -1
- package/dist/runtime/components/ui/sheet/SheetContent.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sidebar/Sidebar.d.vue.ts +1 -1
- package/dist/runtime/components/ui/sidebar/Sidebar.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sidebar/SidebarMenuButton.d.vue.ts +1 -1
- package/dist/runtime/components/ui/sidebar/SidebarMenuButton.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sidebar/SidebarMenuButtonChild.d.vue.ts +1 -1
- package/dist/runtime/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sidebar/index.d.ts +1 -1
- package/dist/runtime/components/ui/switch/Switch.d.vue.ts +2 -2
- package/dist/runtime/components/ui/switch/Switch.vue.d.ts +2 -2
- package/dist/runtime/components/ui/switch/index.d.ts +1 -1
- package/dist/runtime/components/ui/tags-input/TagsInput.d.vue.ts +1 -1
- package/dist/runtime/components/ui/tags-input/TagsInput.vue.d.ts +1 -1
- package/dist/runtime/components/ui/toggle/Toggle.d.vue.ts +2 -2
- package/dist/runtime/components/ui/toggle/Toggle.vue.d.ts +2 -2
- package/dist/runtime/components/ui/toggle/index.d.ts +1 -1
- package/dist/runtime/components/ui/toggle-group/ToggleGroup.d.vue.ts +1 -1
- package/dist/runtime/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -1
- package/package.json +1 -1
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { defineNuxtModule, createResolver, addServerScanDir, addServerImportsDir,
|
|
1
|
+
import { defineNuxtModule, createResolver, addServerScanDir, addServerImportsDir, addPlugin, addRouteMiddleware, addLayout, extendPages, addComponentsDir, addImports } from '@nuxt/kit';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
import tailwindcss from '@tailwindcss/vite';
|
|
4
|
-
import Icons from 'unplugin-icons/vite';
|
|
5
4
|
|
|
6
5
|
const module$1 = defineNuxtModule({
|
|
7
6
|
meta: {
|
|
@@ -31,9 +30,6 @@ const module$1 = defineNuxtModule({
|
|
|
31
30
|
_nuxt.options.alias["#smile-dev"] = resolver.resolve("./runtime/components/dev");
|
|
32
31
|
_nuxt.options.vite.plugins = _nuxt.options.vite.plugins || [];
|
|
33
32
|
_nuxt.options.vite.plugins.push(tailwindcss());
|
|
34
|
-
addVitePlugin(Icons({
|
|
35
|
-
compiler: "vue3"
|
|
36
|
-
}));
|
|
37
33
|
_nuxt.options.vite.optimizeDeps = _nuxt.options.vite.optimizeDeps || {};
|
|
38
34
|
_nuxt.options.vite.optimizeDeps.include = _nuxt.options.vite.optimizeDeps.include || [];
|
|
39
35
|
_nuxt.options.vite.optimizeDeps.include.push(
|
|
@@ -43,7 +39,18 @@ const module$1 = defineNuxtModule({
|
|
|
43
39
|
"@nyuccl/smile > crypto-js/sha256",
|
|
44
40
|
"@nyuccl/smile > crypto-js/enc-base64",
|
|
45
41
|
"@nyuccl/smile > json-stable-stringify",
|
|
46
|
-
"@nyuccl/smile > qrcode-svg"
|
|
42
|
+
"@nyuccl/smile > qrcode-svg",
|
|
43
|
+
"@nyuccl/smile > lucide-vue-next",
|
|
44
|
+
"@nyuccl/smile > reka-ui",
|
|
45
|
+
"@nyuccl/smile > reka-ui/date",
|
|
46
|
+
"@nyuccl/smile > @internationalized/date",
|
|
47
|
+
"@nyuccl/smile > vue-sonner",
|
|
48
|
+
"@nyuccl/smile > class-variance-authority",
|
|
49
|
+
"@nyuccl/smile > clsx",
|
|
50
|
+
"@nyuccl/smile > tailwind-merge",
|
|
51
|
+
"@nyuccl/smile > @vueuse/core",
|
|
52
|
+
"@nyuccl/smile > uuid",
|
|
53
|
+
"@nyuccl/smile > axios"
|
|
47
54
|
);
|
|
48
55
|
_nuxt.options.css.push(resolver.resolve("./runtime/css/main.css"));
|
|
49
56
|
addPlugin(resolver.resolve("./runtime/plugins/store-sync.client"));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { ArrowRight } from "lucide-vue-next";
|
|
3
3
|
const api = useViewAPI();
|
|
4
4
|
const _props = defineProps({
|
|
5
5
|
debriefText: {
|
|
@@ -36,7 +36,7 @@ function finish() {
|
|
|
36
36
|
@click="finish()"
|
|
37
37
|
>
|
|
38
38
|
next
|
|
39
|
-
<
|
|
39
|
+
<ArrowRight />
|
|
40
40
|
</Button>
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IFa6SolidArrowRight from "~icons/fa6-solid/arrow-right";
|
|
4
|
-
import IFa6SolidPerson from "~icons/fa6-solid/person";
|
|
2
|
+
import { ArrowLeft, ArrowRight, CalendarIcon, User } from "lucide-vue-next";
|
|
5
3
|
import { reactive, computed, ref } from "vue";
|
|
6
4
|
import { cn } from "../../lib/utils";
|
|
7
|
-
import { CalendarIcon } from "lucide-vue-next";
|
|
8
5
|
import useViewAPI from "../../composables/useViewAPI";
|
|
9
6
|
const api = useViewAPI();
|
|
10
7
|
api.steps.append([{ id: "survey_page1" }, { id: "survey_page2" }, { id: "survey_page3" }]);
|
|
@@ -80,7 +77,7 @@ function finish() {
|
|
|
80
77
|
<!-- Page title and description section -->
|
|
81
78
|
<template #title>
|
|
82
79
|
<h3 class="text-3xl font-bold mb-4">
|
|
83
|
-
<
|
|
80
|
+
<User class="inline mr-2" />Demographic Information
|
|
84
81
|
</h3>
|
|
85
82
|
<p class="text-lg mb-8">
|
|
86
83
|
We request some information about you which we can use to understand aggregate differences between
|
|
@@ -295,7 +292,7 @@ function finish() {
|
|
|
295
292
|
@click="api.goNextStep()"
|
|
296
293
|
>
|
|
297
294
|
Continue
|
|
298
|
-
<
|
|
295
|
+
<ArrowRight />
|
|
299
296
|
</Button>
|
|
300
297
|
</div>
|
|
301
298
|
</div>
|
|
@@ -455,7 +452,7 @@ function finish() {
|
|
|
455
452
|
variant="outline"
|
|
456
453
|
@click="api.goPrevStep()"
|
|
457
454
|
>
|
|
458
|
-
<
|
|
455
|
+
<ArrowLeft />
|
|
459
456
|
Previous
|
|
460
457
|
</Button>
|
|
461
458
|
<Button
|
|
@@ -464,7 +461,7 @@ function finish() {
|
|
|
464
461
|
@click="api.goNextStep()"
|
|
465
462
|
>
|
|
466
463
|
Continue
|
|
467
|
-
<
|
|
464
|
+
<ArrowRight />
|
|
468
465
|
</Button>
|
|
469
466
|
</div>
|
|
470
467
|
</div>
|
|
@@ -1193,7 +1190,7 @@ function finish() {
|
|
|
1193
1190
|
variant="outline"
|
|
1194
1191
|
@click="api.goPrevStep()"
|
|
1195
1192
|
>
|
|
1196
|
-
<
|
|
1193
|
+
<ArrowLeft />
|
|
1197
1194
|
Previous
|
|
1198
1195
|
</Button>
|
|
1199
1196
|
<Button
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IFa6SolidArrowRight from "~icons/fa6-solid/arrow-right";
|
|
4
|
-
import IFa6SolidDesktop from "~icons/fa6-solid/desktop";
|
|
2
|
+
import { ArrowLeft, ArrowRight, Monitor } from "lucide-vue-next";
|
|
5
3
|
import { reactive, computed } from "vue";
|
|
6
4
|
import useViewAPI from "../../composables/useViewAPI";
|
|
7
5
|
const api = useViewAPI();
|
|
@@ -65,7 +63,7 @@ function finish() {
|
|
|
65
63
|
<!-- Title and description section -->
|
|
66
64
|
<template #title>
|
|
67
65
|
<h3 class="text-3xl font-bold mb-4">
|
|
68
|
-
<
|
|
66
|
+
<Monitor class="inline mr-2" /> Computer/Device Information
|
|
69
67
|
</h3>
|
|
70
68
|
<p class="text-lg mb-8">
|
|
71
69
|
We request some basic information about the computer you are using right now. We also can use this information
|
|
@@ -281,7 +279,7 @@ function finish() {
|
|
|
281
279
|
@click="api.goNextStep()"
|
|
282
280
|
>
|
|
283
281
|
Continue
|
|
284
|
-
<
|
|
282
|
+
<ArrowRight />
|
|
285
283
|
</Button>
|
|
286
284
|
</div>
|
|
287
285
|
</div>
|
|
@@ -438,7 +436,7 @@ function finish() {
|
|
|
438
436
|
variant="outline"
|
|
439
437
|
@click="api.goPrevStep()"
|
|
440
438
|
>
|
|
441
|
-
<
|
|
439
|
+
<ArrowLeft />
|
|
442
440
|
Previous
|
|
443
441
|
</Button>
|
|
444
442
|
<Button
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { ArrowRight } from "lucide-vue-next";
|
|
3
3
|
import useViewAPI from "../../composables/useViewAPI";
|
|
4
4
|
const api = useViewAPI();
|
|
5
5
|
function finish() {
|
|
@@ -33,7 +33,7 @@ function finish() {
|
|
|
33
33
|
@click="finish()"
|
|
34
34
|
>
|
|
35
35
|
next
|
|
36
|
-
<
|
|
36
|
+
<ArrowRight />
|
|
37
37
|
</Button>
|
|
38
38
|
</div>
|
|
39
39
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { ArrowRight } from "lucide-vue-next";
|
|
3
3
|
import { ref } from "vue";
|
|
4
4
|
import useViewAPI from "../../composables/useViewAPI";
|
|
5
5
|
const api = useViewAPI();
|
|
@@ -50,7 +50,7 @@ function finish() {
|
|
|
50
50
|
@click="finish()"
|
|
51
51
|
>
|
|
52
52
|
next
|
|
53
|
-
<
|
|
53
|
+
<ArrowRight />
|
|
54
54
|
</Button>
|
|
55
55
|
</div>
|
|
56
56
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { ArrowRight } from "lucide-vue-next";
|
|
3
3
|
import { ref } from "vue";
|
|
4
4
|
import useViewAPI from "../../composables/useViewAPI";
|
|
5
5
|
const api = useViewAPI();
|
|
@@ -50,7 +50,7 @@ function finish() {
|
|
|
50
50
|
@click="finish()"
|
|
51
51
|
>
|
|
52
52
|
next
|
|
53
|
-
<
|
|
53
|
+
<ArrowRight />
|
|
54
54
|
</Button>
|
|
55
55
|
</div>
|
|
56
56
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { X } from "lucide-vue-next";
|
|
3
3
|
import { watch, onUnmounted } from "vue";
|
|
4
4
|
import useAPI from "../../composables/useAPI";
|
|
5
5
|
const props = defineProps({
|
|
@@ -50,7 +50,7 @@ onUnmounted(() => {
|
|
|
50
50
|
aria-label="close"
|
|
51
51
|
@click="$emit('toggleConsent')"
|
|
52
52
|
>
|
|
53
|
-
<
|
|
53
|
+
<X class="text-xl" />
|
|
54
54
|
</Button>
|
|
55
55
|
|
|
56
56
|
<!-- Modal content container -->
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IFa6SolidArrowLeft from "~icons/fa6-solid/arrow-left";
|
|
4
|
-
import IFa6SolidArrowRight from "~icons/fa6-solid/arrow-right";
|
|
5
|
-
import IFa6SolidSquareCheck from "~icons/fa6-solid/square-check";
|
|
2
|
+
import { ArrowLeft, ArrowRight, CircleAlert, SquareCheckBig } from "lucide-vue-next";
|
|
6
3
|
import { computed } from "vue";
|
|
7
4
|
import useViewAPI from "../../composables/useViewAPI";
|
|
8
5
|
const api = useViewAPI();
|
|
@@ -132,7 +129,7 @@ init();
|
|
|
132
129
|
>
|
|
133
130
|
<template #title>
|
|
134
131
|
<h3 class="text-3xl font-bold mb-4">
|
|
135
|
-
<
|
|
132
|
+
<SquareCheckBig class="inline mr-2" /> Did we explain things clearly?
|
|
136
133
|
</h3>
|
|
137
134
|
<p class="text-lg mb-8">
|
|
138
135
|
Using the information provided in the previous pages, please select the correct answer for each question. Do
|
|
@@ -205,7 +202,7 @@ init();
|
|
|
205
202
|
variant="outline"
|
|
206
203
|
@click="api.goPrevStep()"
|
|
207
204
|
>
|
|
208
|
-
<
|
|
205
|
+
<ArrowLeft />
|
|
209
206
|
Previous page
|
|
210
207
|
</Button>
|
|
211
208
|
<div v-else />
|
|
@@ -215,7 +212,7 @@ init();
|
|
|
215
212
|
@click="api.isLastBlockStep() ? submitQuiz() : api.goNextStep()"
|
|
216
213
|
>
|
|
217
214
|
{{ api.isLastBlockStep() ? 'Submit' : 'Next page' }}
|
|
218
|
-
<
|
|
215
|
+
<ArrowRight v-if="!api.isLastBlockStep()" />
|
|
219
216
|
</Button>
|
|
220
217
|
</div>
|
|
221
218
|
</div>
|
|
@@ -234,7 +231,7 @@ init();
|
|
|
234
231
|
<div class="text-center items-center justify-center">
|
|
235
232
|
<h3 class="text-3xl font-bold mb-4">
|
|
236
233
|
<div class="flex justify-center mb-2">
|
|
237
|
-
<
|
|
234
|
+
<SquareCheckBig class="text-[4rem]" />
|
|
238
235
|
</div>
|
|
239
236
|
Congrats! You passed.
|
|
240
237
|
</h3>
|
|
@@ -261,7 +258,7 @@ init();
|
|
|
261
258
|
<div class="text-center items-center justify-center">
|
|
262
259
|
<h3 class="text-3xl font-bold mb-4">
|
|
263
260
|
<div class="flex justify-center mb-2">
|
|
264
|
-
<
|
|
261
|
+
<CircleAlert class="text-[4rem]" />
|
|
265
262
|
</div>
|
|
266
263
|
Sorry! You did not get all the answers correct.
|
|
267
264
|
</h3>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IMaterialSymbolsIntegrationInstructions from "~icons/material-symbols/integration-instructions";
|
|
2
|
+
import { ArrowRight, BookOpen } from "lucide-vue-next";
|
|
4
3
|
import { computed } from "vue";
|
|
5
4
|
import useViewAPI from "../../composables/useViewAPI";
|
|
6
5
|
const api = useViewAPI();
|
|
@@ -35,7 +34,7 @@ function finish(_goto) {
|
|
|
35
34
|
<div class="w-[80%] h-[80%]">
|
|
36
35
|
<!-- Instruction header with icon -->
|
|
37
36
|
<h1 class="text-2xl font-bold mb-4">
|
|
38
|
-
<
|
|
37
|
+
<BookOpen class="inline-block mr-2 text-3xl" /> Instructions
|
|
39
38
|
</h1>
|
|
40
39
|
|
|
41
40
|
<!-- Dynamic instruction text based on condition -->
|
|
@@ -53,7 +52,7 @@ function finish(_goto) {
|
|
|
53
52
|
@click="finish()"
|
|
54
53
|
>
|
|
55
54
|
next
|
|
56
|
-
<
|
|
55
|
+
<ArrowRight />
|
|
57
56
|
</Button>
|
|
58
57
|
</div>
|
|
59
58
|
</div>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IFa6SolidHand from "~icons/fa6-solid/hand";
|
|
4
|
-
import IFa6SolidMagnifyingGlass from "~icons/fa6-solid/magnifying-glass";
|
|
2
|
+
import { CircleX, Hand, Search } from "lucide-vue-next";
|
|
5
3
|
import { ref } from "vue";
|
|
6
4
|
import useSmileStore from "../../stores/smilestore";
|
|
7
5
|
import useAPI from "../../composables/useAPI";
|
|
@@ -85,7 +83,7 @@ function submitWithdraw() {
|
|
|
85
83
|
size="xs"
|
|
86
84
|
@click="toggleConsent()"
|
|
87
85
|
>
|
|
88
|
-
<
|
|
86
|
+
<Search />
|
|
89
87
|
<span class="@[400px]:inline hidden">View consent</span>
|
|
90
88
|
</Button>
|
|
91
89
|
<Button
|
|
@@ -98,7 +96,7 @@ function submitWithdraw() {
|
|
|
98
96
|
size="xs"
|
|
99
97
|
@click="toggleWithdraw()"
|
|
100
98
|
>
|
|
101
|
-
<
|
|
99
|
+
<CircleX />
|
|
102
100
|
<span class="@[400px]:inline hidden">Withdraw</span>
|
|
103
101
|
</Button>
|
|
104
102
|
<Button
|
|
@@ -107,7 +105,7 @@ function submitWithdraw() {
|
|
|
107
105
|
size="xs"
|
|
108
106
|
@click="toggleReport()"
|
|
109
107
|
>
|
|
110
|
-
<
|
|
108
|
+
<Hand />
|
|
111
109
|
Report issue
|
|
112
110
|
</Button>
|
|
113
111
|
</div>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { Sparkles } from "lucide-vue-next";
|
|
3
3
|
import useAPI from "../../composables/useAPI";
|
|
4
4
|
const api = useAPI();
|
|
5
5
|
const _props = defineProps({
|
|
@@ -61,7 +61,7 @@ const _props = defineProps({
|
|
|
61
61
|
<article class="border border-gray-300 rounded-lg shadow-lg">
|
|
62
62
|
<!-- Card header -->
|
|
63
63
|
<div class="bg-gray-100 px-3 py-2 text-xs font-medium border-b border-gray-300 rounded-t-lg">
|
|
64
|
-
<p><
|
|
64
|
+
<p><Sparkles class="inline" /> Who are we?</p>
|
|
65
65
|
</div>
|
|
66
66
|
|
|
67
67
|
<!-- Card content with lab details -->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { Pencil } from "lucide-vue-next";
|
|
3
3
|
import { reactive, computed } from "vue";
|
|
4
4
|
import useViewAPI from "../../composables/useViewAPI";
|
|
5
5
|
const api = useViewAPI();
|
|
@@ -48,7 +48,7 @@ function finish() {
|
|
|
48
48
|
<!-- Page title and description section -->
|
|
49
49
|
<template #title>
|
|
50
50
|
<h3 class="text-3xl font-bold mb-4">
|
|
51
|
-
<
|
|
51
|
+
<Pencil class="inline mr-2" /> Give us feedback
|
|
52
52
|
</h3>
|
|
53
53
|
<p class="text-lg mb-8">
|
|
54
54
|
Please give us feedback about your experience with the study. Your feedback will help us improve our study and
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IFa6SolidClipboard from "~icons/fa6-solid/clipboard";
|
|
4
|
-
import IFa6SolidSquareCheck from "~icons/fa6-solid/square-check";
|
|
2
|
+
import { ArrowRight, ClipboardCopy, SquareCheckBig } from "lucide-vue-next";
|
|
5
3
|
import Clipboard from "clipboard";
|
|
6
4
|
import { onMounted, ref } from "vue";
|
|
7
5
|
import useAPI from "../../composables/useAPI";
|
|
@@ -81,7 +79,7 @@ onMounted(() => {
|
|
|
81
79
|
>
|
|
82
80
|
<template #title>
|
|
83
81
|
<h1 class="text-3xl font-bold mb-4">
|
|
84
|
-
<
|
|
82
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
85
83
|
</h1>
|
|
86
84
|
<p class="text-lg mb-8">
|
|
87
85
|
Please click the button below to begin the process of payment. This will notify Prolific you successfully
|
|
@@ -107,7 +105,7 @@ onMounted(() => {
|
|
|
107
105
|
:href="`https://app.prolific.co/submissions/complete?cc=${completionCode}`"
|
|
108
106
|
>
|
|
109
107
|
Submit my work to Prolific
|
|
110
|
-
<
|
|
108
|
+
<ArrowRight />
|
|
111
109
|
</Button>
|
|
112
110
|
</div>
|
|
113
111
|
</template>
|
|
@@ -123,7 +121,7 @@ onMounted(() => {
|
|
|
123
121
|
>
|
|
124
122
|
<template #title>
|
|
125
123
|
<h1 class="text-3xl font-bold mb-4">
|
|
126
|
-
<
|
|
124
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
127
125
|
</h1>
|
|
128
126
|
<p class="text-lg mb-8">
|
|
129
127
|
Please copy the code displayed below (or click the button) and paste it into the Mechanical Turk window to
|
|
@@ -157,7 +155,7 @@ onMounted(() => {
|
|
|
157
155
|
data-clipboard-target=".completioncode-cloudresearch"
|
|
158
156
|
>
|
|
159
157
|
Copy Code
|
|
160
|
-
<
|
|
158
|
+
<ClipboardCopy />
|
|
161
159
|
</Button>
|
|
162
160
|
</div>
|
|
163
161
|
</div>
|
|
@@ -174,7 +172,7 @@ onMounted(() => {
|
|
|
174
172
|
>
|
|
175
173
|
<template #title>
|
|
176
174
|
<h1 class="text-3xl font-bold mb-4">
|
|
177
|
-
<
|
|
175
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
178
176
|
</h1>
|
|
179
177
|
<p class="text-lg mb-8">
|
|
180
178
|
Please verify the code displayed below is visible in the form on the Mechanical Turk website. If it is not
|
|
@@ -209,7 +207,7 @@ onMounted(() => {
|
|
|
209
207
|
data-clipboard-target=".completioncode-mturk"
|
|
210
208
|
>
|
|
211
209
|
Copy Code
|
|
212
|
-
<
|
|
210
|
+
<ClipboardCopy />
|
|
213
211
|
</Button>
|
|
214
212
|
</div>
|
|
215
213
|
</div>
|
|
@@ -226,7 +224,7 @@ onMounted(() => {
|
|
|
226
224
|
>
|
|
227
225
|
<template #title>
|
|
228
226
|
<h1 class="text-3xl font-bold mb-4">
|
|
229
|
-
<
|
|
227
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
230
228
|
</h1>
|
|
231
229
|
<p class="text-lg mb-8">
|
|
232
230
|
This still needs to be implemented
|
|
@@ -250,7 +248,7 @@ onMounted(() => {
|
|
|
250
248
|
:href="!api.config.anonymousMode ? 'http://gureckislab.org' : 'http://google.com'"
|
|
251
249
|
>
|
|
252
250
|
Submit my work
|
|
253
|
-
<
|
|
251
|
+
<ArrowRight />
|
|
254
252
|
</Button>
|
|
255
253
|
</div>
|
|
256
254
|
</template>
|
|
@@ -266,7 +264,7 @@ onMounted(() => {
|
|
|
266
264
|
>
|
|
267
265
|
<template #title>
|
|
268
266
|
<h1 class="text-3xl font-bold mb-4">
|
|
269
|
-
<
|
|
267
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's record your credit!
|
|
270
268
|
</h1>
|
|
271
269
|
<p class="text-lg mb-8">
|
|
272
270
|
Please click the button below to return to SONA and receive credit for completing this study.
|
|
@@ -291,7 +289,7 @@ onMounted(() => {
|
|
|
291
289
|
:href="`${api.config.sona.url}/webstudy_credit.aspx?experiment_id=${api.config.sona.experimentId}&credit_token=${api.config.sona.creditToken}&survey_code=${api.store.private.recruitmentInfo.survey_code}`"
|
|
292
290
|
>
|
|
293
291
|
Return to SONA for credit
|
|
294
|
-
<
|
|
292
|
+
<ArrowRight />
|
|
295
293
|
</Button>
|
|
296
294
|
</div>
|
|
297
295
|
</template>
|
|
@@ -307,7 +305,7 @@ onMounted(() => {
|
|
|
307
305
|
>
|
|
308
306
|
<template #title>
|
|
309
307
|
<h1 class="text-3xl font-bold mb-4">
|
|
310
|
-
<
|
|
308
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
311
309
|
</h1>
|
|
312
310
|
<p class="text-lg mb-8">
|
|
313
311
|
Please click the button below to return to SONA and begin the payment process.
|
|
@@ -332,7 +330,7 @@ onMounted(() => {
|
|
|
332
330
|
:href="`${api.config.sonaPaid.url}/webstudy_credit.aspx?experiment_id=${api.config.sonaPaid.experimentId}&credit_token=${api.config.sonaPaid.creditToken}&survey_code=${api.store.private.recruitmentInfo.survey_code}`"
|
|
333
331
|
>
|
|
334
332
|
Return to SONA for payment
|
|
335
|
-
<
|
|
333
|
+
<ArrowRight />
|
|
336
334
|
</Button>
|
|
337
335
|
</div>
|
|
338
336
|
</template>
|
|
@@ -348,7 +346,7 @@ onMounted(() => {
|
|
|
348
346
|
>
|
|
349
347
|
<template #title>
|
|
350
348
|
<h1 class="text-3xl font-bold mb-4">
|
|
351
|
-
<
|
|
349
|
+
<SquareCheckBig class="inline mr-2" /> Thanks for your contribution to science!
|
|
352
350
|
</h1>
|
|
353
351
|
<p class="text-lg mb-8">
|
|
354
352
|
Please click the button below to return to SPARK and complete your session.
|
|
@@ -373,7 +371,7 @@ onMounted(() => {
|
|
|
373
371
|
:href="`${api.config.spark.completionUrl}/${api.store.private.recruitmentInfo.subject_ID}`"
|
|
374
372
|
>
|
|
375
373
|
Return to SPARK
|
|
376
|
-
<
|
|
374
|
+
<ArrowRight />
|
|
377
375
|
</Button>
|
|
378
376
|
</div>
|
|
379
377
|
</template>
|
|
@@ -389,7 +387,7 @@ onMounted(() => {
|
|
|
389
387
|
>
|
|
390
388
|
<template #title>
|
|
391
389
|
<h1 class="text-3xl font-bold mb-4">
|
|
392
|
-
<
|
|
390
|
+
<SquareCheckBig class="inline mr-2" /> Thanks for your contribution to science!
|
|
393
391
|
</h1>
|
|
394
392
|
<p class="text-lg mb-8">
|
|
395
393
|
Your data have been successfully recorded. You may now close this window or follow any
|
|
@@ -425,7 +423,7 @@ onMounted(() => {
|
|
|
425
423
|
>
|
|
426
424
|
<template #title>
|
|
427
425
|
<h1 class="text-3xl font-bold mb-4">
|
|
428
|
-
<
|
|
426
|
+
<SquareCheckBig class="inline mr-2" /> Thanks for your contribution to science!
|
|
429
427
|
</h1>
|
|
430
428
|
<p class="text-lg mb-8">
|
|
431
429
|
Your data have been successfully recorded and you can close this window or navigate to another page.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IFa6SolidArrowsUpDownLeftRight from "~icons/fa6-solid/arrows-up-down-left-right";
|
|
2
|
+
import { ArrowRight, Move } from "lucide-vue-next";
|
|
4
3
|
import useViewAPI from "../../composables/useViewAPI";
|
|
5
4
|
const api = useViewAPI();
|
|
6
5
|
const props = defineProps(["triggered"]);
|
|
@@ -30,7 +29,7 @@ function finish() {
|
|
|
30
29
|
>
|
|
31
30
|
<!-- Resize icon -->
|
|
32
31
|
<div class="text-4xl text-window-sizer-text mb-4 flex justify-center">
|
|
33
|
-
<
|
|
32
|
+
<Move />
|
|
34
33
|
</div>
|
|
35
34
|
|
|
36
35
|
<!-- Main instruction text -->
|
|
@@ -58,7 +57,7 @@ function finish() {
|
|
|
58
57
|
@click="finish()"
|
|
59
58
|
>
|
|
60
59
|
It is visible now, I'm ready
|
|
61
|
-
<
|
|
60
|
+
<ArrowRight />
|
|
62
61
|
</Button>
|
|
63
62
|
</div>
|
|
64
63
|
</div>
|
|
@@ -70,7 +69,7 @@ function finish() {
|
|
|
70
69
|
>
|
|
71
70
|
<!-- Resize icon -->
|
|
72
71
|
<span class="text-4xl text-window-sizer-text mb-4 flex justify-center">
|
|
73
|
-
<
|
|
72
|
+
<Move />
|
|
74
73
|
</span>
|
|
75
74
|
|
|
76
75
|
<!-- Re-adjustment instruction text -->
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IPhHandWithdrawThin from "~icons/ph/hand-withdraw-thin";
|
|
2
|
+
import { LogOut, X } from "lucide-vue-next";
|
|
4
3
|
import { reactive, watch, onUnmounted } from "vue";
|
|
5
4
|
import useAPI from "../../composables/useAPI";
|
|
6
5
|
const props = defineProps({
|
|
@@ -75,7 +74,7 @@ onUnmounted(() => {
|
|
|
75
74
|
aria-label="close"
|
|
76
75
|
@click="$emit('toggleWithdraw')"
|
|
77
76
|
>
|
|
78
|
-
<
|
|
77
|
+
<X class="text-xl" />
|
|
79
78
|
</Button>
|
|
80
79
|
|
|
81
80
|
<!-- Modal content container -->
|
|
@@ -86,7 +85,7 @@ onUnmounted(() => {
|
|
|
86
85
|
<!-- Modal header with title -->
|
|
87
86
|
<template #title>
|
|
88
87
|
<h3 class="text-3xl font-semibold">
|
|
89
|
-
<
|
|
88
|
+
<LogOut class="text-red-500 inline-block mr-2" />Withdraw from study?
|
|
90
89
|
</h3>
|
|
91
90
|
</template>
|
|
92
91
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
3
|
-
import IIconParkOutlineBye from "~icons/icon-park-outline/bye";
|
|
2
|
+
import { AlertTriangle, HandMetal } from "lucide-vue-next";
|
|
4
3
|
import { computed } from "vue";
|
|
5
4
|
import useAPI from "../../composables/useAPI";
|
|
6
5
|
const api = useAPI();
|
|
@@ -69,7 +68,7 @@ const content = computed(() => {
|
|
|
69
68
|
>
|
|
70
69
|
<CardHeader>
|
|
71
70
|
<p class="text-xl font-semibold text-center">
|
|
72
|
-
<
|
|
71
|
+
<HandMetal class="text-withdraw-text inline-block text-5xl mb-2" />
|
|
73
72
|
<br>{{ content.title }}
|
|
74
73
|
</p>
|
|
75
74
|
</CardHeader>
|
|
@@ -85,7 +84,7 @@ const content = computed(() => {
|
|
|
85
84
|
>
|
|
86
85
|
<CardHeader>
|
|
87
86
|
<p class="text-xl font-semibold text-center">
|
|
88
|
-
<
|
|
87
|
+
<AlertTriangle class="text-warning-text inline-block text-5xl mb-2" />
|
|
89
88
|
<br>Access Error
|
|
90
89
|
</p>
|
|
91
90
|
</CardHeader>
|