@nyuccl/smile 0.2.0-beta.4 → 0.2.0-beta.41
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 +109 -21
- package/dist/runtime/components/builtins/AdvertisementView.d.vue.ts +13 -1
- package/dist/runtime/components/builtins/AdvertisementView.vue +7 -3
- package/dist/runtime/components/builtins/AdvertisementView.vue.d.ts +13 -1
- package/dist/runtime/components/builtins/DebriefView.vue +3 -1
- package/dist/runtime/components/builtins/DemographicSurveyView.vue +8 -6
- package/dist/runtime/components/builtins/DeviceSurveyView.vue +5 -3
- package/dist/runtime/components/builtins/ExpView.vue +4 -2
- package/dist/runtime/components/builtins/ExperimentStatusBar.vue +3 -0
- package/dist/runtime/components/builtins/FavoriteColor.vue +3 -1
- package/dist/runtime/components/builtins/FavoriteNumber.vue +3 -1
- package/dist/runtime/components/builtins/InformedConsentModal.vue +5 -3
- package/dist/runtime/components/builtins/InformedConsentView.vue +3 -2
- package/dist/runtime/components/builtins/InstructionsQuiz.vue +7 -5
- package/dist/runtime/components/builtins/InstructionsView.vue +5 -3
- package/dist/runtime/components/builtins/LocalDevBanner.vue +16 -0
- package/dist/runtime/components/builtins/MTurkRecruitView.vue +4 -3
- package/dist/runtime/components/builtins/PresentationModeView.vue +9 -8
- package/dist/runtime/components/builtins/StatusBar.vue +7 -4
- package/dist/runtime/components/builtins/StudyPreviewText.vue +12 -10
- package/dist/runtime/components/builtins/TaskFeedbackSurveyView.vue +3 -1
- package/dist/runtime/components/builtins/ThanksView.vue +22 -21
- package/dist/runtime/components/builtins/WindowSizerView.vue +5 -3
- package/dist/runtime/components/builtins/WithdrawModal.vue +9 -7
- package/dist/runtime/components/builtins/WithdrawView.vue +4 -2
- package/dist/runtime/components/dev/RecruitmentChooserView.vue +532 -224
- package/dist/runtime/components/dev/ResponsiveDeviceContainer.vue +17 -8
- package/dist/runtime/components/dev/SmileDevPresentationView.vue +83 -0
- package/dist/runtime/components/dev/console/ConfigList.vue +14 -11
- package/dist/runtime/components/dev/console/ConsoleConfigPanel.vue +28 -7
- package/dist/runtime/components/dev/console/ConsoleDatabaseBrowsePanel.vue +6 -4
- package/dist/runtime/components/dev/console/ConsoleLogPanel.vue +68 -23
- package/dist/runtime/components/dev/console/DatabaseList.vue +9 -7
- package/dist/runtime/components/dev/console/SmileDevConsole.vue +7 -5
- package/dist/runtime/components/dev/devicePresets.d.ts +4 -4
- package/dist/runtime/components/dev/devicePresets.js +4 -4
- package/dist/runtime/components/dev/menu/DevConfigPanel.vue +3 -1
- package/dist/runtime/components/dev/menu/ResponsiveDeviceSelect.vue +1 -0
- package/dist/runtime/components/dev/menu/SmileDevAppMenu.vue +27 -24
- package/dist/runtime/components/dev/navbar/ColorModeButton.vue +5 -3
- package/dist/runtime/components/dev/navbar/DatabaseButtonGroup.vue +8 -6
- package/dist/runtime/components/dev/navbar/FullScreenButton.vue +4 -2
- package/dist/runtime/components/dev/navbar/KeyCommandNotification.vue +1 -1
- package/dist/runtime/components/dev/navbar/PanelButtonGroup.d.vue.ts +3 -0
- package/dist/runtime/components/dev/navbar/PanelButtonGroup.vue +79 -0
- package/dist/runtime/components/dev/navbar/PanelButtonGroup.vue.d.ts +3 -0
- package/dist/runtime/components/dev/navbar/ReloadButton.vue +3 -1
- package/dist/runtime/components/dev/navbar/ResetButton.vue +3 -1
- package/dist/runtime/components/dev/navbar/RouteJumper.vue +9 -5
- package/dist/runtime/components/dev/navbar/SmileDevNavBar.vue +19 -27
- package/dist/runtime/components/dev/navbar/StepInfoButtonGroup.vue +5 -3
- package/dist/runtime/components/dev/navbar/ViewInfoButtonGroup.vue +13 -10
- package/dist/runtime/components/dev/presentation/DarkModeButton.vue +5 -3
- package/dist/runtime/components/dev/presentation/LogoutButton.vue +2 -1
- package/dist/runtime/components/dev/presentation/PresentationModeResetButton.vue +11 -2
- package/dist/runtime/components/dev/presentation/PresentationNavBar.d.vue.ts +13 -1
- package/dist/runtime/components/dev/presentation/PresentationNavBar.vue +13 -6
- package/dist/runtime/components/dev/presentation/PresentationNavBar.vue.d.ts +13 -1
- package/dist/runtime/components/dev/presentation/QRCodeButton.vue +4 -2
- package/dist/runtime/components/dev/sidebar/AppProgressPanel.vue +23 -21
- package/dist/runtime/components/dev/sidebar/ConfigurationVariablesPanel.vue +7 -5
- package/dist/runtime/components/dev/sidebar/DatabaseStatusInfoPanel.vue +27 -7
- package/dist/runtime/components/dev/sidebar/RandomizationSidebarPanel.vue +9 -5
- package/dist/runtime/components/dev/sidebar/SmileDevSideBar.vue +12 -5
- package/dist/runtime/components/dev/sidebar/StepDataViewer.d.vue.ts +2 -2
- package/dist/runtime/components/dev/sidebar/StepDataViewer.vue +1 -1
- package/dist/runtime/components/dev/sidebar/StepDataViewer.vue.d.ts +2 -2
- package/dist/runtime/components/dev/sidebar/StepExplorerPanel.vue +13 -8
- package/dist/runtime/components/dev/sidebar/StepNode.vue +7 -5
- package/dist/runtime/components/dev/sidebar/StudyInfoPanel.vue +3 -2
- package/dist/runtime/components/forms/MonthYearDayPicker.vue +1 -0
- package/dist/runtime/components/layouts/ConstrainedPage.d.vue.ts +1 -1
- package/dist/runtime/components/layouts/ConstrainedPage.vue.d.ts +1 -1
- package/dist/runtime/components/layouts/ConstrainedTaskWindow.d.vue.ts +2 -2
- package/dist/runtime/components/layouts/ConstrainedTaskWindow.vue +1 -1
- package/dist/runtime/components/layouts/ConstrainedTaskWindow.vue.d.ts +2 -2
- package/dist/runtime/components/layouts/TitleTwoCol.d.vue.ts +1 -1
- package/dist/runtime/components/layouts/TitleTwoCol.vue.d.ts +1 -1
- package/dist/runtime/components/layouts/TwoCol.d.vue.ts +1 -1
- package/dist/runtime/components/layouts/TwoCol.vue.d.ts +1 -1
- package/dist/runtime/components/ui/avatar/Avatar.vue +1 -0
- package/dist/runtime/components/ui/avatar/AvatarFallback.vue +1 -0
- package/dist/runtime/components/ui/badge/Badge.vue +1 -0
- package/dist/runtime/components/ui/badge/index.d.ts +1 -1
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbEllipsis.vue +1 -0
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbItem.vue +1 -0
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbLink.vue +1 -0
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbList.vue +1 -0
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbPage.vue +1 -0
- package/dist/runtime/components/ui/breadcrumb/BreadcrumbSeparator.vue +1 -0
- package/dist/runtime/components/ui/button/Button.vue +1 -0
- package/dist/runtime/components/ui/button/index.d.ts +2 -2
- package/dist/runtime/components/ui/button-group/ButtonGroup.vue +1 -0
- package/dist/runtime/components/ui/button-group/ButtonGroupItem.vue +1 -0
- package/dist/runtime/components/ui/calendar/Calendar.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarCell.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarCellTrigger.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarGrid.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarGridRow.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarHeadCell.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarHeader.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarHeading.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarNextButton.vue +1 -0
- package/dist/runtime/components/ui/calendar/CalendarPrevButton.vue +1 -0
- package/dist/runtime/components/ui/card/Card.vue +1 -0
- package/dist/runtime/components/ui/card/CardAction.vue +1 -0
- package/dist/runtime/components/ui/card/CardContent.vue +1 -0
- package/dist/runtime/components/ui/card/CardDescription.vue +1 -0
- package/dist/runtime/components/ui/card/CardFooter.vue +1 -0
- package/dist/runtime/components/ui/card/CardHeader.vue +1 -0
- package/dist/runtime/components/ui/card/CardTitle.vue +1 -0
- package/dist/runtime/components/ui/checkbox/Checkbox.d.vue.ts +6 -6
- package/dist/runtime/components/ui/checkbox/Checkbox.vue +1 -0
- package/dist/runtime/components/ui/checkbox/Checkbox.vue.d.ts +6 -6
- package/dist/runtime/components/ui/checkbox/index.d.ts +2 -2
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.d.vue.ts +4 -4
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +4 -4
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.d.vue.ts +3 -3
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +3 -3
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.d.vue.ts +1 -1
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +1 -1
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSeparator.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuShortcut.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.d.vue.ts +3 -3
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue +1 -0
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +3 -3
- package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +1 -0
- package/dist/runtime/components/ui/input/Input.d.vue.ts +4 -4
- package/dist/runtime/components/ui/input/Input.vue +1 -0
- package/dist/runtime/components/ui/input/Input.vue.d.ts +4 -4
- package/dist/runtime/components/ui/label/Label.vue +1 -0
- package/dist/runtime/components/ui/multiselect/MultiSelect.d.vue.ts +1 -1
- package/dist/runtime/components/ui/multiselect/MultiSelect.vue +1 -0
- package/dist/runtime/components/ui/multiselect/MultiSelect.vue.d.ts +1 -1
- package/dist/runtime/components/ui/pagination/Pagination.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationContent.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationEllipsis.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationFirst.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationItem.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationLast.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationNext.vue +1 -0
- package/dist/runtime/components/ui/pagination/PaginationPrevious.vue +1 -0
- package/dist/runtime/components/ui/popover/PopoverContent.d.vue.ts +2 -2
- package/dist/runtime/components/ui/popover/PopoverContent.vue +1 -0
- package/dist/runtime/components/ui/popover/PopoverContent.vue.d.ts +2 -2
- package/dist/runtime/components/ui/progress/Progress.vue +1 -0
- package/dist/runtime/components/ui/resizable/ResizableHandle.vue +1 -0
- 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/resizable/ResizablePanelGroup.vue +1 -0
- 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/select/SelectContent.d.vue.ts +2 -2
- package/dist/runtime/components/ui/select/SelectContent.vue +1 -0
- package/dist/runtime/components/ui/select/SelectContent.vue.d.ts +2 -2
- package/dist/runtime/components/ui/select/SelectItem.vue +1 -0
- package/dist/runtime/components/ui/select/SelectLabel.vue +1 -0
- package/dist/runtime/components/ui/select/SelectScrollDownButton.vue +1 -0
- package/dist/runtime/components/ui/select/SelectScrollUpButton.vue +1 -0
- package/dist/runtime/components/ui/select/SelectSeparator.vue +1 -0
- package/dist/runtime/components/ui/select/SelectTrigger.vue +1 -0
- package/dist/runtime/components/ui/separator/Separator.vue +1 -0
- package/dist/runtime/components/ui/sheet/SheetContent.d.vue.ts +1 -1
- package/dist/runtime/components/ui/sheet/SheetContent.vue +1 -0
- package/dist/runtime/components/ui/sheet/SheetContent.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sheet/SheetDescription.vue +1 -0
- package/dist/runtime/components/ui/sheet/SheetFooter.vue +1 -0
- package/dist/runtime/components/ui/sheet/SheetHeader.vue +1 -0
- package/dist/runtime/components/ui/sheet/SheetOverlay.vue +1 -0
- package/dist/runtime/components/ui/sheet/SheetTitle.vue +1 -0
- package/dist/runtime/components/ui/sidebar/Sidebar.d.vue.ts +1 -1
- package/dist/runtime/components/ui/sidebar/Sidebar.vue +1 -0
- package/dist/runtime/components/ui/sidebar/Sidebar.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sidebar/SidebarContent.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarFooter.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarGroup.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarGroupAction.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarGroupContent.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarGroupLabel.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarHeader.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarInput.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarInset.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenu.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuAction.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuBadge.vue +1 -0
- 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 +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +1 -1
- package/dist/runtime/components/ui/sidebar/SidebarMenuItem.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuSkeleton.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuSub.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuSubButton.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarMenuSubItem.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarProvider.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarRail.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarSeparator.vue +1 -0
- package/dist/runtime/components/ui/sidebar/SidebarTrigger.vue +1 -0
- package/dist/runtime/components/ui/sidebar/index.d.ts +1 -1
- package/dist/runtime/components/ui/skeleton/Skeleton.vue +1 -0
- package/dist/runtime/components/ui/sonner/Sonner.d.vue.ts +4 -4
- package/dist/runtime/components/ui/sonner/Sonner.vue.d.ts +4 -4
- package/dist/runtime/components/ui/stepper/Stepper.vue +1 -0
- package/dist/runtime/components/ui/stepper/StepperDescription.vue +1 -0
- package/dist/runtime/components/ui/stepper/StepperIndicator.vue +1 -0
- package/dist/runtime/components/ui/stepper/StepperItem.d.vue.ts +1 -1
- package/dist/runtime/components/ui/stepper/StepperItem.vue +1 -0
- package/dist/runtime/components/ui/stepper/StepperItem.vue.d.ts +1 -1
- package/dist/runtime/components/ui/stepper/StepperSeparator.vue +1 -0
- package/dist/runtime/components/ui/stepper/StepperTitle.vue +1 -0
- package/dist/runtime/components/ui/stepper/StepperTrigger.vue +1 -0
- package/dist/runtime/components/ui/switch/Switch.d.vue.ts +2 -2
- package/dist/runtime/components/ui/switch/Switch.vue +1 -0
- package/dist/runtime/components/ui/switch/Switch.vue.d.ts +2 -2
- package/dist/runtime/components/ui/switch/index.d.ts +2 -2
- package/dist/runtime/components/ui/table/Table.vue +1 -0
- package/dist/runtime/components/ui/table/TableBody.vue +1 -0
- package/dist/runtime/components/ui/table/TableCaption.vue +1 -0
- package/dist/runtime/components/ui/table/TableCell.vue +1 -0
- package/dist/runtime/components/ui/table/TableEmpty.vue +1 -0
- package/dist/runtime/components/ui/table/TableFooter.vue +1 -0
- package/dist/runtime/components/ui/table/TableHead.vue +1 -0
- package/dist/runtime/components/ui/table/TableHeader.vue +1 -0
- package/dist/runtime/components/ui/table/TableRow.vue +1 -0
- package/dist/runtime/components/ui/tabs/Tabs.vue +1 -0
- package/dist/runtime/components/ui/tabs/TabsContent.d.vue.ts +2 -2
- package/dist/runtime/components/ui/tabs/TabsContent.vue +1 -0
- package/dist/runtime/components/ui/tabs/TabsContent.vue.d.ts +2 -2
- package/dist/runtime/components/ui/tabs/TabsList.d.vue.ts +1 -1
- package/dist/runtime/components/ui/tabs/TabsList.vue +1 -0
- package/dist/runtime/components/ui/tabs/TabsList.vue.d.ts +1 -1
- package/dist/runtime/components/ui/tabs/TabsTrigger.d.vue.ts +2 -2
- package/dist/runtime/components/ui/tabs/TabsTrigger.vue +1 -0
- package/dist/runtime/components/ui/tabs/TabsTrigger.vue.d.ts +2 -2
- package/dist/runtime/components/ui/tags-input/TagsInput.d.vue.ts +3 -3
- package/dist/runtime/components/ui/tags-input/TagsInput.vue +1 -0
- package/dist/runtime/components/ui/tags-input/TagsInput.vue.d.ts +3 -3
- package/dist/runtime/components/ui/tags-input/TagsInputInput.vue +1 -0
- package/dist/runtime/components/ui/tags-input/TagsInputItem.d.vue.ts +2 -2
- package/dist/runtime/components/ui/tags-input/TagsInputItem.vue +1 -0
- package/dist/runtime/components/ui/tags-input/TagsInputItem.vue.d.ts +2 -2
- package/dist/runtime/components/ui/tags-input/TagsInputItemDelete.vue +1 -0
- package/dist/runtime/components/ui/tags-input/TagsInputItemText.vue +1 -0
- package/dist/runtime/components/ui/textarea/Textarea.d.vue.ts +4 -4
- package/dist/runtime/components/ui/textarea/Textarea.vue +1 -0
- package/dist/runtime/components/ui/textarea/Textarea.vue.d.ts +4 -4
- package/dist/runtime/components/ui/toggle/Toggle.d.vue.ts +2 -2
- package/dist/runtime/components/ui/toggle/Toggle.vue +1 -0
- 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 +2 -2
- package/dist/runtime/components/ui/toggle-group/ToggleGroup.vue +1 -0
- package/dist/runtime/components/ui/toggle-group/ToggleGroup.vue.d.ts +2 -2
- package/dist/runtime/components/ui/toggle-group/ToggleGroupItem.vue +1 -0
- package/dist/runtime/components/ui/tooltip/TooltipContent.d.vue.ts +2 -2
- package/dist/runtime/components/ui/tooltip/TooltipContent.vue +1 -0
- package/dist/runtime/components/ui/tooltip/TooltipContent.vue.d.ts +2 -2
- package/dist/runtime/composables/useAPI.d.ts +2 -2
- package/dist/runtime/composables/useAPI.js +6 -11
- package/dist/runtime/composables/useViewAPI.d.ts +1 -0
- package/dist/runtime/composables/useViewAPI.js +20 -4
- package/dist/runtime/composables/useWindowSizer.d.ts +14 -0
- package/dist/runtime/composables/useWindowSizer.js +48 -0
- package/dist/runtime/core/config.d.ts +78 -48
- package/dist/runtime/core/config.js +21 -27
- package/dist/runtime/core/stepper/Stepper.d.ts +13 -10
- package/dist/runtime/core/stepper/Stepper.js +70 -55
- package/dist/runtime/core/stepper/StepperSerializer.js +32 -14
- package/dist/runtime/core/timeline/Timeline.js +1 -2
- package/dist/runtime/css/main.css +1 -1
- package/dist/runtime/css/smile.css +1 -1
- package/dist/runtime/layouts/development.vue +38 -78
- package/dist/runtime/layouts/experiment.d.vue.ts +7 -10
- package/dist/runtime/layouts/experiment.vue +13 -0
- package/dist/runtime/layouts/experiment.vue.d.ts +7 -10
- package/dist/runtime/layouts/presentation.vue +24 -3
- package/dist/runtime/middleware/timeline.global.js +2 -4
- package/dist/runtime/pages/[...slug].vue +2 -0
- package/dist/runtime/pages/dev/[...slug].vue +2 -0
- package/dist/runtime/pages/dev-login.vue +5 -3
- package/dist/runtime/pages/presentation/[...slug].vue +2 -0
- package/dist/runtime/plugins/dev-sync.client.js +0 -2
- package/dist/runtime/plugins/seed.client.js +1 -3
- package/dist/runtime/plugins/store-sync.client.js +8 -10
- package/dist/runtime/public/images/helpus.png +0 -0
- package/dist/runtime/public/images/smile.svg +78 -0
- package/dist/runtime/public/images/universitylogo.png +0 -0
- package/dist/runtime/server/api/auth/login.post.js +11 -2
- package/dist/runtime/server/api/db-info.get.d.ts +5 -0
- package/dist/runtime/server/api/db-info.get.js +10 -0
- package/dist/runtime/server/api/qr.get.js +1 -2
- package/dist/runtime/server/middleware/dev-auth.js +10 -5
- package/dist/runtime/stores/log.js +4 -7
- package/dist/runtime/stores/smilestore.d.ts +161 -1014
- package/dist/runtime/stores/smilestore.js +39 -7
- package/dist/runtime/utils/utils.js +7 -0
- package/package.json +5 -3
- package/dist/runtime/components/dev/navbar/ViewButton.vue +0 -159
- package/dist/runtime/pages/info.vue +0 -462
- /package/dist/runtime/components/{dev/navbar/ViewButton.d.vue.ts → builtins/LocalDevBanner.d.vue.ts} +0 -0
- /package/dist/runtime/components/{dev/navbar/ViewButton.vue.d.ts → builtins/LocalDevBanner.vue.d.ts} +0 -0
- /package/dist/runtime/{pages/info.d.vue.ts → components/dev/SmileDevPresentationView.d.vue.ts} +0 -0
- /package/dist/runtime/{pages/info.vue.d.ts → components/dev/SmileDevPresentationView.vue.d.ts} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { ArrowRight } from "lucide-vue-next";
|
|
4
|
+
import useAPI from "../../composables/useAPI";
|
|
4
5
|
const api = useAPI();
|
|
5
6
|
const props = defineProps({
|
|
6
7
|
title: {
|
|
@@ -77,14 +78,14 @@ function goToSection(section) {
|
|
|
77
78
|
</script>
|
|
78
79
|
|
|
79
80
|
<template>
|
|
80
|
-
<div class="min-h-
|
|
81
|
+
<div class="min-h-full flex flex-col bg-background">
|
|
81
82
|
<!-- Header Section -->
|
|
82
83
|
<header class="bg-muted/50 border-b py-6">
|
|
83
84
|
<div class="w-2/3 mx-auto px-6 py-8">
|
|
84
85
|
<h1 class="text-5xl font-bold text-foreground mb-4 leading-tight">
|
|
85
86
|
{{ title }}
|
|
86
87
|
</h1>
|
|
87
|
-
<p class="text-
|
|
88
|
+
<p class="text-lg text-muted-foreground leading-relaxed">
|
|
88
89
|
{{ subtitle }}
|
|
89
90
|
</p>
|
|
90
91
|
</div>
|
|
@@ -95,7 +96,7 @@ function goToSection(section) {
|
|
|
95
96
|
<div class="w-2/3 mx-auto px-6 py-8">
|
|
96
97
|
<div class="grid grid-cols-1 md:grid-cols-12 gap-8">
|
|
97
98
|
<!-- Authors -->
|
|
98
|
-
<div class="md:col-span-
|
|
99
|
+
<div class="md:col-span-3">
|
|
99
100
|
<h3 class="text-[0.65rem] font-extralight uppercase tracking-widest text-muted-foreground mb-4">
|
|
100
101
|
Authors
|
|
101
102
|
</h3>
|
|
@@ -132,7 +133,7 @@ function goToSection(section) {
|
|
|
132
133
|
</div>
|
|
133
134
|
|
|
134
135
|
<!-- Affiliations -->
|
|
135
|
-
<div class="md:col-span-
|
|
136
|
+
<div class="md:col-span-4">
|
|
136
137
|
<h3 class="text-[0.65rem] font-extralight uppercase tracking-widest text-muted-foreground mb-4">
|
|
137
138
|
Affiliations
|
|
138
139
|
</h3>
|
|
@@ -183,13 +184,13 @@ function goToSection(section) {
|
|
|
183
184
|
</section>
|
|
184
185
|
|
|
185
186
|
<!-- Main Content -->
|
|
186
|
-
<main class="w-2/3 mx-auto px-6 py-12">
|
|
187
|
+
<main class="w-2/3 mx-auto px-6 py-12 flex-1">
|
|
187
188
|
<!-- Project Description -->
|
|
188
189
|
<div class="prose prose-gray max-w-none mb-12">
|
|
189
190
|
<p
|
|
190
191
|
v-for="(paragraph, index) in descriptionParagraphs"
|
|
191
192
|
:key="index"
|
|
192
|
-
class="text-
|
|
193
|
+
class="text-md text-muted-foreground leading-relaxed mb-4"
|
|
193
194
|
>
|
|
194
195
|
{{ paragraph }}
|
|
195
196
|
</p>
|
|
@@ -204,12 +205,12 @@ function goToSection(section) {
|
|
|
204
205
|
:key="index"
|
|
205
206
|
>
|
|
206
207
|
<div>
|
|
207
|
-
<h3 class="text-
|
|
208
|
+
<h3 class="text-base font-semibold text-foreground mb-2">
|
|
208
209
|
{{ section.title }}
|
|
209
210
|
</h3>
|
|
210
211
|
<p
|
|
211
212
|
v-if="section.description"
|
|
212
|
-
class="text-
|
|
213
|
+
class="text-md text-muted-foreground mb-3"
|
|
213
214
|
>
|
|
214
215
|
{{ section.description }}
|
|
215
216
|
</p>
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { CircleX, Hand, Search } from "lucide-vue-next";
|
|
2
3
|
import { ref } from "vue";
|
|
4
|
+
import useSmileStore from "../../stores/smilestore";
|
|
5
|
+
import useAPI from "../../composables/useAPI";
|
|
3
6
|
const smilestore = useSmileStore();
|
|
4
7
|
const api = useAPI();
|
|
5
8
|
const email = ref("");
|
|
@@ -48,7 +51,7 @@ function submitWithdraw() {
|
|
|
48
51
|
>
|
|
49
52
|
<img
|
|
50
53
|
:src="api.getPublicUrl(api.config.brandLogoFn)"
|
|
51
|
-
width="
|
|
54
|
+
width="120"
|
|
52
55
|
class="dark-aware-img"
|
|
53
56
|
>
|
|
54
57
|
</a>
|
|
@@ -80,7 +83,7 @@ function submitWithdraw() {
|
|
|
80
83
|
size="xs"
|
|
81
84
|
@click="toggleConsent()"
|
|
82
85
|
>
|
|
83
|
-
<
|
|
86
|
+
<Search />
|
|
84
87
|
<span class="@[400px]:inline hidden">View consent</span>
|
|
85
88
|
</Button>
|
|
86
89
|
<Button
|
|
@@ -93,7 +96,7 @@ function submitWithdraw() {
|
|
|
93
96
|
size="xs"
|
|
94
97
|
@click="toggleWithdraw()"
|
|
95
98
|
>
|
|
96
|
-
<
|
|
99
|
+
<CircleX />
|
|
97
100
|
<span class="@[400px]:inline hidden">Withdraw</span>
|
|
98
101
|
</Button>
|
|
99
102
|
<Button
|
|
@@ -102,7 +105,7 @@ function submitWithdraw() {
|
|
|
102
105
|
size="xs"
|
|
103
106
|
@click="toggleReport()"
|
|
104
107
|
>
|
|
105
|
-
<
|
|
108
|
+
<Hand />
|
|
106
109
|
Report issue
|
|
107
110
|
</Button>
|
|
108
111
|
</div>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { Sparkles } from "lucide-vue-next";
|
|
3
|
+
import useAPI from "../../composables/useAPI";
|
|
2
4
|
const api = useAPI();
|
|
3
5
|
const _props = defineProps({
|
|
4
6
|
estimated_time: {
|
|
@@ -37,7 +39,7 @@ const _props = defineProps({
|
|
|
37
39
|
</p>
|
|
38
40
|
|
|
39
41
|
<!-- Visual separator -->
|
|
40
|
-
<hr class="border-
|
|
42
|
+
<hr class="border-muted-foreground/30 my-4">
|
|
41
43
|
|
|
42
44
|
<!-- Study summary -->
|
|
43
45
|
<p>
|
|
@@ -50,16 +52,16 @@ const _props = defineProps({
|
|
|
50
52
|
<template #right>
|
|
51
53
|
<!-- Lab logo (hidden on smaller screens) -->
|
|
52
54
|
<img
|
|
53
|
-
src="
|
|
55
|
+
:src="api.config.advertisementImageFn"
|
|
54
56
|
width="220"
|
|
55
|
-
class="mb-4 hidden @xl:block"
|
|
57
|
+
:class="['mb-4 hidden @xl:block', { 'dark-aware-img': api.config.advertisementImageInvertDark }]"
|
|
56
58
|
>
|
|
57
59
|
|
|
58
60
|
<!-- Lab information card -->
|
|
59
|
-
<article class="border border-
|
|
61
|
+
<article class="border border-border rounded-lg shadow-lg">
|
|
60
62
|
<!-- Card header -->
|
|
61
|
-
<div class="bg-
|
|
62
|
-
<p><
|
|
63
|
+
<div class="bg-muted px-3 py-2 text-xs font-medium border-b border-border rounded-t-lg">
|
|
64
|
+
<p><Sparkles class="inline" /> Who are we?</p>
|
|
63
65
|
</div>
|
|
64
66
|
|
|
65
67
|
<!-- Card content with lab details -->
|
|
@@ -69,26 +71,26 @@ const _props = defineProps({
|
|
|
69
71
|
<a
|
|
70
72
|
href="http://gureckislab.org"
|
|
71
73
|
target="_blank"
|
|
72
|
-
class="text-
|
|
74
|
+
class="text-link-button-foreground hover:text-link-button-foreground/80"
|
|
73
75
|
>Computation and Cognition Lab</a>
|
|
74
76
|
at New York University under the direction to
|
|
75
77
|
<a
|
|
76
78
|
href="http://todd.gureckislab.org"
|
|
77
79
|
target="_blank"
|
|
78
|
-
class="text-
|
|
80
|
+
class="text-link-button-foreground hover:text-link-button-foreground/80"
|
|
79
81
|
>Dr. Todd Gureckis</a>. Our lab uses games and other fun tasks to study human intellience. Our research is funded in the public
|
|
80
82
|
interest by the United States
|
|
81
83
|
<a
|
|
82
84
|
href="https://nsf.gov"
|
|
83
85
|
target="_new"
|
|
84
|
-
class="text-
|
|
86
|
+
class="text-link-button-foreground hover:text-link-button-foreground/80"
|
|
85
87
|
>National Science Foundation</a>
|
|
86
88
|
among other organizations and non-profit foundations and we publish our work, code, and results for the
|
|
87
89
|
public. We very much appreciate research participants in our studies and have a public
|
|
88
90
|
<a
|
|
89
91
|
href="http://gureckislab.org/research-code-of-ethics.html"
|
|
90
92
|
target="_new"
|
|
91
|
-
class="text-
|
|
93
|
+
class="text-link-button-foreground hover:text-link-button-foreground/80"
|
|
92
94
|
>code of ethics</a>
|
|
93
95
|
we strive to uphold in all our studies.
|
|
94
96
|
</div>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { Pencil } from "lucide-vue-next";
|
|
2
3
|
import { reactive, computed } from "vue";
|
|
4
|
+
import useViewAPI from "../../composables/useViewAPI";
|
|
3
5
|
const api = useViewAPI();
|
|
4
6
|
if (!api.persist.isDefined("forminfo")) {
|
|
5
7
|
api.persist.forminfo = reactive({
|
|
@@ -46,7 +48,7 @@ function finish() {
|
|
|
46
48
|
<!-- Page title and description section -->
|
|
47
49
|
<template #title>
|
|
48
50
|
<h3 class="text-3xl font-bold mb-4">
|
|
49
|
-
<
|
|
51
|
+
<Pencil class="inline mr-2" /> Give us feedback
|
|
50
52
|
</h3>
|
|
51
53
|
<p class="text-lg mb-8">
|
|
52
54
|
Please give us feedback about your experience with the study. Your feedback will help us improve our study and
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import
|
|
2
|
+
import { ArrowRight, ClipboardCopy, SquareCheckBig } from "lucide-vue-next";
|
|
3
|
+
import Clipboard from "clipboard";
|
|
3
4
|
import { onMounted, ref } from "vue";
|
|
4
|
-
|
|
5
|
+
import useAPI from "../../composables/useAPI";
|
|
5
6
|
const api = useAPI();
|
|
6
7
|
const alreadyCompleted = !!api.store.cookieState.completionCode;
|
|
7
8
|
const isUploading = ref(!alreadyCompleted);
|
|
@@ -78,7 +79,7 @@ onMounted(() => {
|
|
|
78
79
|
>
|
|
79
80
|
<template #title>
|
|
80
81
|
<h1 class="text-3xl font-bold mb-4">
|
|
81
|
-
<
|
|
82
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
82
83
|
</h1>
|
|
83
84
|
<p class="text-lg mb-8">
|
|
84
85
|
Please click the button below to begin the process of payment. This will notify Prolific you successfully
|
|
@@ -104,7 +105,7 @@ onMounted(() => {
|
|
|
104
105
|
:href="`https://app.prolific.co/submissions/complete?cc=${completionCode}`"
|
|
105
106
|
>
|
|
106
107
|
Submit my work to Prolific
|
|
107
|
-
<
|
|
108
|
+
<ArrowRight />
|
|
108
109
|
</Button>
|
|
109
110
|
</div>
|
|
110
111
|
</template>
|
|
@@ -120,7 +121,7 @@ onMounted(() => {
|
|
|
120
121
|
>
|
|
121
122
|
<template #title>
|
|
122
123
|
<h1 class="text-3xl font-bold mb-4">
|
|
123
|
-
<
|
|
124
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
124
125
|
</h1>
|
|
125
126
|
<p class="text-lg mb-8">
|
|
126
127
|
Please copy the code displayed below (or click the button) and paste it into the Mechanical Turk window to
|
|
@@ -154,7 +155,7 @@ onMounted(() => {
|
|
|
154
155
|
data-clipboard-target=".completioncode-cloudresearch"
|
|
155
156
|
>
|
|
156
157
|
Copy Code
|
|
157
|
-
<
|
|
158
|
+
<ClipboardCopy />
|
|
158
159
|
</Button>
|
|
159
160
|
</div>
|
|
160
161
|
</div>
|
|
@@ -171,7 +172,7 @@ onMounted(() => {
|
|
|
171
172
|
>
|
|
172
173
|
<template #title>
|
|
173
174
|
<h1 class="text-3xl font-bold mb-4">
|
|
174
|
-
<
|
|
175
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
175
176
|
</h1>
|
|
176
177
|
<p class="text-lg mb-8">
|
|
177
178
|
Please verify the code displayed below is visible in the form on the Mechanical Turk website. If it is not
|
|
@@ -206,7 +207,7 @@ onMounted(() => {
|
|
|
206
207
|
data-clipboard-target=".completioncode-mturk"
|
|
207
208
|
>
|
|
208
209
|
Copy Code
|
|
209
|
-
<
|
|
210
|
+
<ClipboardCopy />
|
|
210
211
|
</Button>
|
|
211
212
|
</div>
|
|
212
213
|
</div>
|
|
@@ -223,7 +224,7 @@ onMounted(() => {
|
|
|
223
224
|
>
|
|
224
225
|
<template #title>
|
|
225
226
|
<h1 class="text-3xl font-bold mb-4">
|
|
226
|
-
<
|
|
227
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
227
228
|
</h1>
|
|
228
229
|
<p class="text-lg mb-8">
|
|
229
230
|
This still needs to be implemented
|
|
@@ -247,7 +248,7 @@ onMounted(() => {
|
|
|
247
248
|
:href="!api.config.anonymousMode ? 'http://gureckislab.org' : 'http://google.com'"
|
|
248
249
|
>
|
|
249
250
|
Submit my work
|
|
250
|
-
<
|
|
251
|
+
<ArrowRight />
|
|
251
252
|
</Button>
|
|
252
253
|
</div>
|
|
253
254
|
</template>
|
|
@@ -263,7 +264,7 @@ onMounted(() => {
|
|
|
263
264
|
>
|
|
264
265
|
<template #title>
|
|
265
266
|
<h1 class="text-3xl font-bold mb-4">
|
|
266
|
-
<
|
|
267
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's record your credit!
|
|
267
268
|
</h1>
|
|
268
269
|
<p class="text-lg mb-8">
|
|
269
270
|
Please click the button below to return to SONA and receive credit for completing this study.
|
|
@@ -285,10 +286,10 @@ onMounted(() => {
|
|
|
285
286
|
<Button
|
|
286
287
|
variant="default"
|
|
287
288
|
as="a"
|
|
288
|
-
:href="`${api.
|
|
289
|
+
:href="`${api.store.private.recruitmentInfo.url}/webstudy_credit.aspx?experiment_id=${api.store.private.recruitmentInfo.experimentId}&credit_token=${api.store.private.recruitmentInfo.creditToken}&survey_code=${api.store.private.recruitmentInfo.survey_code}`"
|
|
289
290
|
>
|
|
290
291
|
Return to SONA for credit
|
|
291
|
-
<
|
|
292
|
+
<ArrowRight />
|
|
292
293
|
</Button>
|
|
293
294
|
</div>
|
|
294
295
|
</template>
|
|
@@ -304,7 +305,7 @@ onMounted(() => {
|
|
|
304
305
|
>
|
|
305
306
|
<template #title>
|
|
306
307
|
<h1 class="text-3xl font-bold mb-4">
|
|
307
|
-
<
|
|
308
|
+
<SquareCheckBig class="inline mr-2" /> Thanks, let's begin the payment process!
|
|
308
309
|
</h1>
|
|
309
310
|
<p class="text-lg mb-8">
|
|
310
311
|
Please click the button below to return to SONA and begin the payment process.
|
|
@@ -326,10 +327,10 @@ onMounted(() => {
|
|
|
326
327
|
<Button
|
|
327
328
|
variant="default"
|
|
328
329
|
as="a"
|
|
329
|
-
:href="`${api.
|
|
330
|
+
:href="`${api.store.private.recruitmentInfo.url}/webstudy_credit.aspx?experiment_id=${api.store.private.recruitmentInfo.experimentId}&credit_token=${api.store.private.recruitmentInfo.creditToken}&survey_code=${api.store.private.recruitmentInfo.survey_code}`"
|
|
330
331
|
>
|
|
331
332
|
Return to SONA for payment
|
|
332
|
-
<
|
|
333
|
+
<ArrowRight />
|
|
333
334
|
</Button>
|
|
334
335
|
</div>
|
|
335
336
|
</template>
|
|
@@ -345,7 +346,7 @@ onMounted(() => {
|
|
|
345
346
|
>
|
|
346
347
|
<template #title>
|
|
347
348
|
<h1 class="text-3xl font-bold mb-4">
|
|
348
|
-
<
|
|
349
|
+
<SquareCheckBig class="inline mr-2" /> Thanks for your contribution to science!
|
|
349
350
|
</h1>
|
|
350
351
|
<p class="text-lg mb-8">
|
|
351
352
|
Please click the button below to return to SPARK and complete your session.
|
|
@@ -367,10 +368,10 @@ onMounted(() => {
|
|
|
367
368
|
<Button
|
|
368
369
|
variant="default"
|
|
369
370
|
as="a"
|
|
370
|
-
:href="`${api.
|
|
371
|
+
:href="`${api.store.private.recruitmentInfo.completionUrl}/${api.store.private.recruitmentInfo.subject_ID}`"
|
|
371
372
|
>
|
|
372
373
|
Return to SPARK
|
|
373
|
-
<
|
|
374
|
+
<ArrowRight />
|
|
374
375
|
</Button>
|
|
375
376
|
</div>
|
|
376
377
|
</template>
|
|
@@ -386,7 +387,7 @@ onMounted(() => {
|
|
|
386
387
|
>
|
|
387
388
|
<template #title>
|
|
388
389
|
<h1 class="text-3xl font-bold mb-4">
|
|
389
|
-
<
|
|
390
|
+
<SquareCheckBig class="inline mr-2" /> Thanks for your contribution to science!
|
|
390
391
|
</h1>
|
|
391
392
|
<p class="text-lg mb-8">
|
|
392
393
|
Your data have been successfully recorded. You may now close this window or follow any
|
|
@@ -422,7 +423,7 @@ onMounted(() => {
|
|
|
422
423
|
>
|
|
423
424
|
<template #title>
|
|
424
425
|
<h1 class="text-3xl font-bold mb-4">
|
|
425
|
-
<
|
|
426
|
+
<SquareCheckBig class="inline mr-2" /> Thanks for your contribution to science!
|
|
426
427
|
</h1>
|
|
427
428
|
<p class="text-lg mb-8">
|
|
428
429
|
Your data have been successfully recorded and you can close this window or navigate to another page.
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { ArrowRight, Move } from "lucide-vue-next";
|
|
3
|
+
import useViewAPI from "../../composables/useViewAPI";
|
|
2
4
|
const api = useViewAPI();
|
|
3
5
|
const props = defineProps(["triggered"]);
|
|
4
6
|
function finish() {
|
|
@@ -27,7 +29,7 @@ function finish() {
|
|
|
27
29
|
>
|
|
28
30
|
<!-- Resize icon -->
|
|
29
31
|
<div class="text-4xl text-window-sizer-text mb-4 flex justify-center">
|
|
30
|
-
<
|
|
32
|
+
<Move />
|
|
31
33
|
</div>
|
|
32
34
|
|
|
33
35
|
<!-- Main instruction text -->
|
|
@@ -55,7 +57,7 @@ function finish() {
|
|
|
55
57
|
@click="finish()"
|
|
56
58
|
>
|
|
57
59
|
It is visible now, I'm ready
|
|
58
|
-
<
|
|
60
|
+
<ArrowRight />
|
|
59
61
|
</Button>
|
|
60
62
|
</div>
|
|
61
63
|
</div>
|
|
@@ -67,7 +69,7 @@ function finish() {
|
|
|
67
69
|
>
|
|
68
70
|
<!-- Resize icon -->
|
|
69
71
|
<span class="text-4xl text-window-sizer-text mb-4 flex justify-center">
|
|
70
|
-
<
|
|
72
|
+
<Move />
|
|
71
73
|
</span>
|
|
72
74
|
|
|
73
75
|
<!-- Re-adjustment instruction text -->
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { LogOut, X } from "lucide-vue-next";
|
|
2
3
|
import { reactive, watch, onUnmounted } from "vue";
|
|
4
|
+
import useAPI from "../../composables/useAPI";
|
|
3
5
|
const props = defineProps({
|
|
4
6
|
show: {
|
|
5
7
|
type: Boolean,
|
|
@@ -68,11 +70,11 @@ onUnmounted(() => {
|
|
|
68
70
|
|
|
69
71
|
<!-- Close button -->
|
|
70
72
|
<Button
|
|
71
|
-
class="absolute top-4 right-4 text-
|
|
73
|
+
class="absolute top-4 right-4 text-muted-foreground hover:text-foreground p-2 rounded-full hover:bg-muted transition-colors"
|
|
72
74
|
aria-label="close"
|
|
73
75
|
@click="$emit('toggleWithdraw')"
|
|
74
76
|
>
|
|
75
|
-
<
|
|
77
|
+
<X class="text-xl" />
|
|
76
78
|
</Button>
|
|
77
79
|
|
|
78
80
|
<!-- Modal content container -->
|
|
@@ -83,7 +85,7 @@ onUnmounted(() => {
|
|
|
83
85
|
<!-- Modal header with title -->
|
|
84
86
|
<template #title>
|
|
85
87
|
<h3 class="text-3xl font-semibold">
|
|
86
|
-
<
|
|
88
|
+
<LogOut class="text-destructive inline-block mr-2" />Withdraw from study?
|
|
87
89
|
</h3>
|
|
88
90
|
</template>
|
|
89
91
|
|
|
@@ -114,7 +116,7 @@ onUnmounted(() => {
|
|
|
114
116
|
<Checkbox
|
|
115
117
|
:id="`withdraw-option-${index}`"
|
|
116
118
|
:checked="forminfo.reason_select.includes(option)"
|
|
117
|
-
class="border-
|
|
119
|
+
class="border-input data-[state=checked]:bg-primary data-[state=checked]:border-primary"
|
|
118
120
|
@update:checked="
|
|
119
121
|
(checked) => {
|
|
120
122
|
if (checked) {
|
|
@@ -139,7 +141,7 @@ onUnmounted(() => {
|
|
|
139
141
|
</Label>
|
|
140
142
|
</div>
|
|
141
143
|
</div>
|
|
142
|
-
<p class="text-xs text-
|
|
144
|
+
<p class="text-xs text-muted-foreground">
|
|
143
145
|
Select all that apply.
|
|
144
146
|
</p>
|
|
145
147
|
</div>
|
|
@@ -157,7 +159,7 @@ onUnmounted(() => {
|
|
|
157
159
|
class="w-full bg-background dark:bg-background text-base resize-vertical"
|
|
158
160
|
rows="4"
|
|
159
161
|
/>
|
|
160
|
-
<p class="text-xs text-
|
|
162
|
+
<p class="text-xs text-muted-foreground">
|
|
161
163
|
Please let us know any additional information you would like to share.
|
|
162
164
|
</p>
|
|
163
165
|
</div>
|
|
@@ -175,7 +177,7 @@ onUnmounted(() => {
|
|
|
175
177
|
placeholder="participant@gmail.com"
|
|
176
178
|
class="w-full text-base bg-background dark:bg-background"
|
|
177
179
|
/>
|
|
178
|
-
<p class="text-xs text-
|
|
180
|
+
<p class="text-xs text-muted-foreground">
|
|
179
181
|
Please enter your email address so we can follow up with you. This is optional and we otherwise will
|
|
180
182
|
try to figure out how to reach you. However, this can help avoid any potential problems. Feel free to
|
|
181
183
|
use an anonymized email like your Prolific contact email, Hide my email (Apple), or create a free
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { AlertTriangle, HandMetal } from "lucide-vue-next";
|
|
2
3
|
import { computed } from "vue";
|
|
4
|
+
import useAPI from "../../composables/useAPI";
|
|
3
5
|
const api = useAPI();
|
|
4
6
|
api.saveData(true);
|
|
5
7
|
const cardContent = {
|
|
@@ -66,7 +68,7 @@ const content = computed(() => {
|
|
|
66
68
|
>
|
|
67
69
|
<CardHeader>
|
|
68
70
|
<p class="text-xl font-semibold text-center">
|
|
69
|
-
<
|
|
71
|
+
<HandMetal class="text-withdraw-text inline-block text-5xl mb-2" />
|
|
70
72
|
<br>{{ content.title }}
|
|
71
73
|
</p>
|
|
72
74
|
</CardHeader>
|
|
@@ -82,7 +84,7 @@ const content = computed(() => {
|
|
|
82
84
|
>
|
|
83
85
|
<CardHeader>
|
|
84
86
|
<p class="text-xl font-semibold text-center">
|
|
85
|
-
<
|
|
87
|
+
<AlertTriangle class="text-warning-text inline-block text-5xl mb-2" />
|
|
86
88
|
<br>Access Error
|
|
87
89
|
</p>
|
|
88
90
|
</CardHeader>
|