@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
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
* @property {object} 'ipad-13' iPad 13-inch dimensions
|
|
19
19
|
* @property {object} desktop1 800x600 desktop resolution
|
|
20
20
|
* @property {object} desktop2 1024x768 desktop resolution
|
|
21
|
-
* @property {
|
|
22
|
-
* @property {
|
|
23
|
-
* @property {
|
|
24
|
-
* @property {
|
|
21
|
+
* @property {object} desktop3 1280x1024 desktop resolution
|
|
22
|
+
* @property {object} desktop4 1440x900 desktop resolution
|
|
23
|
+
* @property {object} desktop5 1600x1200 desktop resolution
|
|
24
|
+
* @property {object} desktop16 1920x1080 desktop resolution
|
|
25
25
|
*/
|
|
26
26
|
export const devicePresets = {
|
|
27
27
|
'iphone': { width: 393, height: 852, name: 'iPhone' },
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { RotateCcw } from "lucide-vue-next";
|
|
2
3
|
import ResponsiveDeviceSelect from "./ResponsiveDeviceSelect.vue";
|
|
3
4
|
import { devicePresets } from "../devicePresets.js";
|
|
5
|
+
import useAPI from "../../../composables/useAPI";
|
|
4
6
|
const api = useAPI();
|
|
5
7
|
const checkForMatchingPreset = () => {
|
|
6
8
|
for (const [key, preset] of Object.entries(devicePresets)) {
|
|
@@ -152,7 +154,7 @@ function resetDevState() {
|
|
|
152
154
|
size="xs"
|
|
153
155
|
@click="toggleRotation"
|
|
154
156
|
>
|
|
155
|
-
<
|
|
157
|
+
<RotateCcw :class="{ 'text-link-button-foreground': api.store.dev.isRotated }" />
|
|
156
158
|
</Button>
|
|
157
159
|
</TooltipTrigger>
|
|
158
160
|
<TooltipContent side="bottom">
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { BookMarked, BugPlay, Moon, Presentation, Settings, Smile, Sun } from "lucide-vue-next";
|
|
3
|
+
import { useSmileColorMode } from "../../../composables/useColorMode";
|
|
2
4
|
import { computed } from "vue";
|
|
3
5
|
import DevConfigPanel from "./DevConfigPanel.vue";
|
|
6
|
+
import useAPI from "../../../composables/useAPI";
|
|
4
7
|
const props = defineProps({
|
|
5
8
|
side: { type: String, required: false },
|
|
6
9
|
variant: { type: String, required: false },
|
|
@@ -24,7 +27,7 @@ const isDarkMode = computed({
|
|
|
24
27
|
<template>
|
|
25
28
|
<!-- Main sidebar container with icon-only layout -->
|
|
26
29
|
<Sidebar
|
|
27
|
-
class="w-[calc(var(--sidebar-width-icon)+1px)]! border-r"
|
|
30
|
+
class="w-[calc(var(--sidebar-width-icon)+1px)]! border-r border-dev-lines"
|
|
28
31
|
v-bind="props"
|
|
29
32
|
>
|
|
30
33
|
<!-- Sidebar header with main logo button -->
|
|
@@ -36,9 +39,9 @@ const isDarkMode = computed({
|
|
|
36
39
|
as-child
|
|
37
40
|
class="md:h-8 md:p-0"
|
|
38
41
|
>
|
|
39
|
-
<a href="
|
|
42
|
+
<a href="/">
|
|
40
43
|
<div class="mainbutton text-foreground flex aspect-square size-8 items-center justify-center rounded-lg">
|
|
41
|
-
<
|
|
44
|
+
<Smile />
|
|
42
45
|
</div>
|
|
43
46
|
</a>
|
|
44
47
|
</SidebarMenuButton>
|
|
@@ -62,7 +65,7 @@ const isDarkMode = computed({
|
|
|
62
65
|
tooltip="Developer Mode"
|
|
63
66
|
@click="api.store.dev.mainView = 'devmode'"
|
|
64
67
|
>
|
|
65
|
-
<
|
|
68
|
+
<BugPlay class="!size-5" />
|
|
66
69
|
</SidebarMenuButton>
|
|
67
70
|
</SidebarMenuItem>
|
|
68
71
|
|
|
@@ -95,36 +98,36 @@ const isDarkMode = computed({
|
|
|
95
98
|
</SidebarMenuItem>
|
|
96
99
|
-->
|
|
97
100
|
|
|
98
|
-
<!--
|
|
101
|
+
<!-- Presentation Mode -->
|
|
99
102
|
<SidebarMenuItem>
|
|
100
103
|
<SidebarMenuButton
|
|
101
104
|
class="px-[0.05rem] group-data-[collapsible=icon]:!p-1.5 my-1"
|
|
102
105
|
:class="{
|
|
103
|
-
'bg-chart-4 hover:!bg-chart-4/80': api.store.dev.mainView === '
|
|
104
|
-
'hover:!bg-sidebar-border': api.store.dev.mainView !== '
|
|
106
|
+
'bg-chart-4 hover:!bg-chart-4/80': api.store.dev.mainView === 'presentation',
|
|
107
|
+
'hover:!bg-sidebar-border': api.store.dev.mainView !== 'presentation',
|
|
105
108
|
}"
|
|
106
|
-
tooltip="
|
|
107
|
-
@click="api.store.dev.mainView = '
|
|
109
|
+
tooltip="Presentation Mode"
|
|
110
|
+
@click="api.store.dev.mainView = api.store.dev.mainView === 'presentation' ? 'devmode' : 'presentation'"
|
|
108
111
|
>
|
|
109
|
-
<
|
|
112
|
+
<Presentation class="!size-5" />
|
|
110
113
|
</SidebarMenuButton>
|
|
111
114
|
</SidebarMenuItem>
|
|
112
115
|
|
|
113
|
-
<!--
|
|
116
|
+
<!-- Docs (coming soon)
|
|
114
117
|
<SidebarMenuItem>
|
|
115
118
|
<SidebarMenuButton
|
|
116
|
-
|
|
117
|
-
class="
|
|
118
|
-
|
|
119
|
+
class="px-[0.05rem] group-data-[collapsible=icon]:!p-1.5 my-1"
|
|
120
|
+
:class="{
|
|
121
|
+
'bg-chart-4 hover:!bg-chart-4/80': api.store.dev.mainView === 'docs',
|
|
122
|
+
'hover:!bg-sidebar-border': api.store.dev.mainView !== 'docs',
|
|
123
|
+
}"
|
|
124
|
+
tooltip="Documentation"
|
|
125
|
+
@click="api.store.dev.mainView = 'docs'"
|
|
119
126
|
>
|
|
120
|
-
<
|
|
121
|
-
href="/info"
|
|
122
|
-
target="_blank"
|
|
123
|
-
>
|
|
124
|
-
<i-lucide-info class="!size-5" />
|
|
125
|
-
</a>
|
|
127
|
+
<BookMarked class="!size-5" />
|
|
126
128
|
</SidebarMenuButton>
|
|
127
129
|
</SidebarMenuItem>
|
|
130
|
+
-->
|
|
128
131
|
</SidebarMenu>
|
|
129
132
|
</SidebarGroupContent>
|
|
130
133
|
</SidebarGroup>
|
|
@@ -141,11 +144,11 @@ const isDarkMode = computed({
|
|
|
141
144
|
tooltip="Toggle Dark Mode"
|
|
142
145
|
@click="isDarkMode = !isDarkMode"
|
|
143
146
|
>
|
|
144
|
-
<
|
|
147
|
+
<Moon
|
|
145
148
|
v-if="isDarkMode"
|
|
146
149
|
class="!size-5"
|
|
147
150
|
/>
|
|
148
|
-
<
|
|
151
|
+
<Sun
|
|
149
152
|
v-else
|
|
150
153
|
class="!size-5"
|
|
151
154
|
/>
|
|
@@ -165,7 +168,7 @@ const isDarkMode = computed({
|
|
|
165
168
|
as-child
|
|
166
169
|
tooltip="Configuration"
|
|
167
170
|
>
|
|
168
|
-
<
|
|
171
|
+
<Settings class="!size-5" />
|
|
169
172
|
</SidebarMenuButton>
|
|
170
173
|
</PopoverTrigger>
|
|
171
174
|
<PopoverContent
|
|
@@ -180,5 +183,5 @@ const isDarkMode = computed({
|
|
|
180
183
|
</template>
|
|
181
184
|
|
|
182
185
|
<style scoped>
|
|
183
|
-
.mainbutton{background-color
|
|
186
|
+
.mainbutton{background-color:var(--dev-brand-bg);color:var(--dev-brand-text)}
|
|
184
187
|
</style>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { Moon, Sun, SunMoon } from "lucide-vue-next";
|
|
3
|
+
import { useSmileColorMode } from "../../../composables/useColorMode";
|
|
2
4
|
const { mode: experimentColorMode, toggle: toggleColorMode, system } = useSmileColorMode("experiment");
|
|
3
5
|
</script>
|
|
4
6
|
|
|
@@ -12,9 +14,9 @@ const { mode: experimentColorMode, toggle: toggleColorMode, system } = useSmileC
|
|
|
12
14
|
variant="outline"
|
|
13
15
|
@click="toggleColorMode()"
|
|
14
16
|
>
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
<
|
|
17
|
+
<Moon v-if="experimentColorMode === 'light'" />
|
|
18
|
+
<SunMoon v-else-if="experimentColorMode === 'dark'" />
|
|
19
|
+
<Sun v-else />
|
|
18
20
|
</Button>
|
|
19
21
|
</TooltipTrigger>
|
|
20
22
|
<TooltipContent side="bottom">
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { Database, RefreshCw } from "lucide-vue-next";
|
|
2
3
|
import { computed } from "vue";
|
|
3
4
|
import CircleProgress from "./CircleProgress.vue";
|
|
5
|
+
import useAPI from "../../../composables/useAPI";
|
|
4
6
|
const api = useAPI();
|
|
5
7
|
const database_tooltip = computed(() => {
|
|
6
8
|
let msg = "";
|
|
@@ -32,7 +34,7 @@ const database_tooltip = computed(() => {
|
|
|
32
34
|
variant="outline"
|
|
33
35
|
>
|
|
34
36
|
<!-- Database icon with status styling -->
|
|
35
|
-
<
|
|
37
|
+
<Database
|
|
36
38
|
style="font-size: 2em"
|
|
37
39
|
class="disconnected"
|
|
38
40
|
:class="{ connected: api.store.browserEphemeral.dataLoaded }"
|
|
@@ -40,13 +42,13 @@ const database_tooltip = computed(() => {
|
|
|
40
42
|
|
|
41
43
|
<!-- Sync icon with status styling -->
|
|
42
44
|
<template v-if="!api.store.browserEphemeral.dataLoaded">
|
|
43
|
-
<
|
|
45
|
+
<RefreshCw class="has-text-grey" />
|
|
44
46
|
</template>
|
|
45
47
|
<template v-else-if="api.store.browserEphemeral.unsavedChanges && api.store.browserEphemeral.dataLoaded">
|
|
46
|
-
<
|
|
48
|
+
<RefreshCw class="outofsync" />
|
|
47
49
|
</template>
|
|
48
50
|
<template v-else>
|
|
49
|
-
<
|
|
51
|
+
<RefreshCw class="insync" />
|
|
50
52
|
</template>
|
|
51
53
|
|
|
52
54
|
<!-- Progress circle for data usage -->
|
|
@@ -56,8 +58,8 @@ const database_tooltip = computed(() => {
|
|
|
56
58
|
:percentage="Math.round(api.store.localState.approxDataSize / 1048576) * 100"
|
|
57
59
|
:size="12"
|
|
58
60
|
:stroke-width="40"
|
|
59
|
-
slicecolor="
|
|
60
|
-
basecolor="
|
|
61
|
+
slicecolor="var(--muted-foreground)"
|
|
62
|
+
basecolor="var(--muted-foreground)"
|
|
61
63
|
/>
|
|
62
64
|
</div>
|
|
63
65
|
</template>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { Maximize, Minimize } from "lucide-vue-next";
|
|
3
|
+
import useAPI from "../../../composables/useAPI";
|
|
2
4
|
const api = useAPI();
|
|
3
5
|
</script>
|
|
4
6
|
|
|
@@ -12,11 +14,11 @@ const api = useAPI();
|
|
|
12
14
|
variant="outline"
|
|
13
15
|
@click="api.store.dev.isFullscreen = !api.store.dev.isFullscreen"
|
|
14
16
|
>
|
|
15
|
-
<
|
|
17
|
+
<Maximize
|
|
16
18
|
v-if="!api.store.dev.isFullscreen"
|
|
17
19
|
:stroke-width="2.5"
|
|
18
20
|
/>
|
|
19
|
-
<
|
|
21
|
+
<Minimize
|
|
20
22
|
v-else
|
|
21
23
|
:stroke-width="2.5"
|
|
22
24
|
/>
|
|
@@ -54,5 +54,5 @@ const _props = defineProps({
|
|
|
54
54
|
</template>
|
|
55
55
|
|
|
56
56
|
<style scoped>
|
|
57
|
-
.notification{background:var(--background);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.05);left:60px;max-width:300px;overflow:hidden;position:fixed;top:50px;z-index:9999}.error-notification{background
|
|
57
|
+
.notification{background:var(--background);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.05);left:60px;max-width:300px;overflow:hidden;position:fixed;top:50px;z-index:9999}.error-notification{background:var(--error-notif-bg);border:1px solid var(--error-notif-border)}.notification-content{background:linear-gradient(135deg,var(--background) 0,var(--muted) 100%);padding:12px 16px}.error-content{background:linear-gradient(135deg,var(--error-notif-bg) 0,var(--error-notif-bg-end) 100%)}.command-badge{align-items:center;display:flex;margin-bottom:8px}.command-key{background:var(--primary);border:1px solid var(--primary);border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:var(--primary-foreground);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.875rem;font-weight:600;letter-spacing:.025em;padding:4px 8px}.error-key{background:var(--error-notif-text);border:1px solid var(--error-notif-text);color:var(--error-notif-bg)}.action-text{color:var(--foreground);font-size:.875rem;font-weight:500;line-height:1.4}.error-text{color:var(--error-notif-text)}.notification-arrow{background:var(--background);border-left:1px solid var(--border);border-top:1px solid var(--border);height:12px;left:20px;position:absolute;top:-6px;transform:rotate(45deg);width:12px}.error-arrow{background:var(--error-notif-bg);border-left:1px solid var(--error-notif-border);border-top:1px solid var(--error-notif-border)}.slide-up-enter-active,.slide-up-leave-active{transition:all .3s cubic-bezier(.4,0,.2,1)}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateX(-100%) translateY(-10px)}@media (prefers-color-scheme:dark){.notification{box-shadow:0 4px 6px -1px rgba(0,0,0,.3),0 2px 4px -1px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1)}}
|
|
58
58
|
</style>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: typeof __VLS_export;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import useAPI from "../../../composables/useAPI";
|
|
3
|
+
const api = useAPI();
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<template>
|
|
7
|
+
<TooltipProvider>
|
|
8
|
+
<ButtonGroup
|
|
9
|
+
variant="outline"
|
|
10
|
+
size="menu"
|
|
11
|
+
>
|
|
12
|
+
<!-- Console toggle -->
|
|
13
|
+
<Tooltip>
|
|
14
|
+
<TooltipTrigger as-child>
|
|
15
|
+
<ButtonGroupItem @click="api.store.dev.showConsoleBar = !api.store.dev.showConsoleBar">
|
|
16
|
+
<!-- Console icon (rectangle with bottom panel line) -->
|
|
17
|
+
<svg
|
|
18
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
19
|
+
width="14"
|
|
20
|
+
height="14"
|
|
21
|
+
viewBox="0 0 24 24"
|
|
22
|
+
fill="none"
|
|
23
|
+
stroke="currentColor"
|
|
24
|
+
stroke-width="2.3"
|
|
25
|
+
stroke-linecap="round"
|
|
26
|
+
stroke-linejoin="round"
|
|
27
|
+
:opacity="api.store.dev.showConsoleBar ? 1 : 0.4"
|
|
28
|
+
>
|
|
29
|
+
<rect
|
|
30
|
+
width="18"
|
|
31
|
+
height="18"
|
|
32
|
+
x="3"
|
|
33
|
+
y="3"
|
|
34
|
+
rx="2"
|
|
35
|
+
/>
|
|
36
|
+
<path d="M3 15h18" />
|
|
37
|
+
</svg>
|
|
38
|
+
</ButtonGroupItem>
|
|
39
|
+
</TooltipTrigger>
|
|
40
|
+
<TooltipContent side="bottom">
|
|
41
|
+
{{ api.store.dev.showConsoleBar ? 'Hide Console' : 'Show Console' }} (Ctrl + `)
|
|
42
|
+
</TooltipContent>
|
|
43
|
+
</Tooltip>
|
|
44
|
+
|
|
45
|
+
<!-- Sidebar toggle -->
|
|
46
|
+
<Tooltip>
|
|
47
|
+
<TooltipTrigger as-child>
|
|
48
|
+
<ButtonGroupItem @click="api.store.dev.showSideBar = !api.store.dev.showSideBar">
|
|
49
|
+
<!-- Sidebar icon -->
|
|
50
|
+
<svg
|
|
51
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
52
|
+
width="14"
|
|
53
|
+
height="14"
|
|
54
|
+
viewBox="0 0 24 24"
|
|
55
|
+
fill="none"
|
|
56
|
+
stroke="currentColor"
|
|
57
|
+
stroke-width="2.3"
|
|
58
|
+
stroke-linecap="round"
|
|
59
|
+
stroke-linejoin="round"
|
|
60
|
+
:opacity="api.store.dev.showSideBar ? 1 : 0.4"
|
|
61
|
+
>
|
|
62
|
+
<rect
|
|
63
|
+
width="18"
|
|
64
|
+
height="18"
|
|
65
|
+
x="3"
|
|
66
|
+
y="3"
|
|
67
|
+
rx="2"
|
|
68
|
+
/>
|
|
69
|
+
<path d="M15 3v18" />
|
|
70
|
+
</svg>
|
|
71
|
+
</ButtonGroupItem>
|
|
72
|
+
</TooltipTrigger>
|
|
73
|
+
<TooltipContent side="bottom">
|
|
74
|
+
{{ api.store.dev.showSideBar ? 'Hide Sidebar' : 'Show Sidebar' }} (Ctrl + 1)
|
|
75
|
+
</TooltipContent>
|
|
76
|
+
</Tooltip>
|
|
77
|
+
</ButtonGroup>
|
|
78
|
+
</TooltipProvider>
|
|
79
|
+
</template>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: typeof __VLS_export;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { RotateCcw } from "lucide-vue-next";
|
|
3
|
+
import useAPI from "../../../composables/useAPI";
|
|
2
4
|
const api = useAPI();
|
|
3
5
|
</script>
|
|
4
6
|
|
|
@@ -12,7 +14,7 @@ const api = useAPI();
|
|
|
12
14
|
variant="outline"
|
|
13
15
|
@click="api.reloadBrowser()"
|
|
14
16
|
>
|
|
15
|
-
<
|
|
17
|
+
<RotateCcw :stroke-width="2.5" />
|
|
16
18
|
</Button>
|
|
17
19
|
</TooltipTrigger>
|
|
18
20
|
<TooltipContent side="bottom">
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { Zap } from "lucide-vue-next";
|
|
3
|
+
import useAPI from "../../../composables/useAPI";
|
|
2
4
|
const api = useAPI();
|
|
3
5
|
</script>
|
|
4
6
|
|
|
@@ -12,7 +14,7 @@ const api = useAPI();
|
|
|
12
14
|
variant="outline"
|
|
13
15
|
@click="api.resetLocalState()"
|
|
14
16
|
>
|
|
15
|
-
<
|
|
17
|
+
<Zap />
|
|
16
18
|
</Button>
|
|
17
19
|
</TooltipTrigger>
|
|
18
20
|
<TooltipContent side="bottom">
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { ArrowDown, Diamond, House, Presentation } from "lucide-vue-next";
|
|
2
3
|
import { watch, ref, computed } from "vue";
|
|
4
|
+
import { useRoute, navigateTo } from "#imports";
|
|
5
|
+
import useLog from "../../../stores/log";
|
|
6
|
+
import useAPI from "../../../composables/useAPI";
|
|
3
7
|
const api = useAPI();
|
|
4
8
|
const _props = defineProps(["routeName"]);
|
|
5
9
|
const log = useLog();
|
|
@@ -39,12 +43,12 @@ function goHome() {
|
|
|
39
43
|
<!-- Dropdown menu listing all routes for navigation -->
|
|
40
44
|
<DropdownMenuContent align="end">
|
|
41
45
|
<DropdownMenuItem
|
|
42
|
-
class="cursor-pointer border-b border-
|
|
46
|
+
class="cursor-pointer border-b border-dev-lines mb-1"
|
|
43
47
|
@click="goHome"
|
|
44
48
|
>
|
|
45
49
|
<span class="text-[0.65rem] font-mono">
|
|
46
50
|
<div class="routename font-medium">
|
|
47
|
-
<
|
|
51
|
+
<House class="inline mr-1" />
|
|
48
52
|
{{ isPresentation ? '/home' : '/recruit' }}
|
|
49
53
|
</div>
|
|
50
54
|
</span>
|
|
@@ -70,15 +74,15 @@ function goHome() {
|
|
|
70
74
|
style="margin-left: 5px"
|
|
71
75
|
> </span>
|
|
72
76
|
</template>
|
|
73
|
-
<
|
|
77
|
+
<ArrowDown
|
|
74
78
|
v-if="r.meta.sequential"
|
|
75
79
|
class="inline mr-1"
|
|
76
80
|
/>
|
|
77
|
-
<
|
|
81
|
+
<Presentation
|
|
78
82
|
v-else-if="r.name === 'presentation_home'"
|
|
79
83
|
class="inline mr-1"
|
|
80
84
|
/>
|
|
81
|
-
<
|
|
85
|
+
<Diamond
|
|
82
86
|
v-else
|
|
83
87
|
class="inline mr-1"
|
|
84
88
|
/>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { BugPlay } from "lucide-vue-next";
|
|
2
3
|
import StepInfoButtonGroup from "./StepInfoButtonGroup.vue";
|
|
3
4
|
import ViewInfoButtonGroup from "./ViewInfoButtonGroup.vue";
|
|
4
5
|
import ResetButton from "./ResetButton.vue";
|
|
@@ -6,11 +7,12 @@ import ReloadButton from "./ReloadButton.vue";
|
|
|
6
7
|
import ColorModeButton from "./ColorModeButton.vue";
|
|
7
8
|
import DatabaseButtonGroup from "./DatabaseButtonGroup.vue";
|
|
8
9
|
import FullScreenButton from "./FullScreenButton.vue";
|
|
9
|
-
import
|
|
10
|
+
import PanelButtonGroup from "./PanelButtonGroup.vue";
|
|
10
11
|
import KeyCommandNotification from "./KeyCommandNotification.vue";
|
|
11
12
|
import LogoutButton from "../presentation/LogoutButton.vue";
|
|
12
13
|
import { ref } from "vue";
|
|
13
14
|
import { onKeyDown } from "@vueuse/core";
|
|
15
|
+
import useAPI from "../../../composables/useAPI";
|
|
14
16
|
const api = useAPI();
|
|
15
17
|
const showNotification = ref(false);
|
|
16
18
|
const notificationCommand = ref("");
|
|
@@ -40,25 +42,15 @@ onKeyDown((e) => {
|
|
|
40
42
|
onKeyDown((e) => {
|
|
41
43
|
if (e.ctrlKey && e.key === "1") {
|
|
42
44
|
e.preventDefault();
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
showTemporaryNotification("Ctrl + 1", "Showing Console");
|
|
53
|
-
} else if (!sideBar && consoleBar) {
|
|
54
|
-
api.store.dev.showSideBar = true;
|
|
55
|
-
api.store.dev.showConsoleBar = true;
|
|
56
|
-
showTemporaryNotification("Ctrl + 1", "Showing Both Panels");
|
|
57
|
-
} else {
|
|
58
|
-
api.store.dev.showSideBar = false;
|
|
59
|
-
api.store.dev.showConsoleBar = false;
|
|
60
|
-
showTemporaryNotification("Ctrl + 1", "Hiding All Panels");
|
|
61
|
-
}
|
|
45
|
+
api.store.dev.showSideBar = !api.store.dev.showSideBar;
|
|
46
|
+
showTemporaryNotification("Ctrl + 1", api.store.dev.showSideBar ? "Showing Sidebar" : "Hiding Sidebar");
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
onKeyDown((e) => {
|
|
50
|
+
if (e.ctrlKey && e.key === "`") {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
api.store.dev.showConsoleBar = !api.store.dev.showConsoleBar;
|
|
53
|
+
showTemporaryNotification("Ctrl + `", api.store.dev.showConsoleBar ? "Showing Console" : "Hiding Console");
|
|
62
54
|
}
|
|
63
55
|
});
|
|
64
56
|
onKeyDown((e) => {
|
|
@@ -149,21 +141,21 @@ onKeyDown((e) => {
|
|
|
149
141
|
|
|
150
142
|
<template>
|
|
151
143
|
<!-- Main navigation bar container -->
|
|
152
|
-
<nav class="flex items-center justify-between w-full border-b min-h-[36px] max-h-[36px] text-sm px-2">
|
|
144
|
+
<nav class="flex items-center justify-between w-full border-b border-dev-lines min-h-[36px] max-h-[36px] text-sm px-2">
|
|
153
145
|
<!-- Left section - Developer mode indicator -->
|
|
154
146
|
<div class="flex items-center flex-shrink-0 px-2 py-1 rounded">
|
|
155
147
|
<div class="flex items-center">
|
|
156
148
|
<!-- Desktop version -->
|
|
157
149
|
<div class="hidden sm:block">
|
|
158
150
|
<div class="flex items-center text-xs font-normal">
|
|
159
|
-
<
|
|
151
|
+
<BugPlay class="size-4 mr-1" />
|
|
160
152
|
<b>DEVELOPER MODE</b> ({{ api.config.smileVersion }})
|
|
161
153
|
</div>
|
|
162
154
|
</div>
|
|
163
155
|
<!-- Mobile version -->
|
|
164
156
|
<div class="block sm:hidden">
|
|
165
157
|
<div class="flex items-center text-xs font-normal">
|
|
166
|
-
<
|
|
158
|
+
<BugPlay class="size-4 mr-1" />
|
|
167
159
|
<b>DEV</b> ({{ api.config.smileVersion }})
|
|
168
160
|
</div>
|
|
169
161
|
</div>
|
|
@@ -173,7 +165,7 @@ onKeyDown((e) => {
|
|
|
173
165
|
<!-- Middle section - Centered content area -->
|
|
174
166
|
<div class="flex items-center justify-center flex-1 min-w-0 px-2 py-1 rounded">
|
|
175
167
|
<div class="flex items-center space-x-2">
|
|
176
|
-
<div class="text-xs text-
|
|
168
|
+
<div class="text-xs text-muted-foreground">
|
|
177
169
|
<!-- Middle content placeholder -->
|
|
178
170
|
</div>
|
|
179
171
|
</div>
|
|
@@ -181,7 +173,7 @@ onKeyDown((e) => {
|
|
|
181
173
|
|
|
182
174
|
<!-- Right section - Control buttons -->
|
|
183
175
|
<div class="flex items-center flex-shrink-0 px-1 py-1 rounded">
|
|
184
|
-
<div class="flex items-center space-x-2.5 border-
|
|
176
|
+
<div class="flex items-center space-x-2.5 border-border pl-4 rounded-l">
|
|
185
177
|
<!-- Logout button (only when authenticated) -->
|
|
186
178
|
<div class="flex items-center">
|
|
187
179
|
<LogoutButton />
|
|
@@ -226,9 +218,9 @@ onKeyDown((e) => {
|
|
|
226
218
|
<ViewInfoButtonGroup />
|
|
227
219
|
</div>
|
|
228
220
|
|
|
229
|
-
<!--
|
|
221
|
+
<!-- Panel toggles (console + sidebar) -->
|
|
230
222
|
<div class="flex items-center">
|
|
231
|
-
<
|
|
223
|
+
<PanelButtonGroup />
|
|
232
224
|
</div>
|
|
233
225
|
</div>
|
|
234
226
|
</div>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import { ChevronLeft, ChevronRight, SquareMinus } from "lucide-vue-next";
|
|
3
|
+
import useViewAPI from "../../../composables/useViewAPI";
|
|
2
4
|
const api = useViewAPI();
|
|
3
5
|
</script>
|
|
4
6
|
|
|
@@ -16,7 +18,7 @@ const api = useViewAPI();
|
|
|
16
18
|
:disabled="!api.store.dev.viewProvidesStepper || !api.hasPrevStep()"
|
|
17
19
|
@click="api.goPrevStep()"
|
|
18
20
|
>
|
|
19
|
-
<
|
|
21
|
+
<ChevronLeft />
|
|
20
22
|
</ButtonGroupItem>
|
|
21
23
|
</TooltipTrigger>
|
|
22
24
|
<TooltipContent side="bottom">
|
|
@@ -32,7 +34,7 @@ const api = useViewAPI();
|
|
|
32
34
|
v-if="api.pathString"
|
|
33
35
|
class="counter"
|
|
34
36
|
>{{ api.pathString }}</span>
|
|
35
|
-
<
|
|
37
|
+
<SquareMinus v-else />
|
|
36
38
|
</ButtonGroupItem>
|
|
37
39
|
</TooltipTrigger>
|
|
38
40
|
<TooltipContent side="bottom">
|
|
@@ -47,7 +49,7 @@ const api = useViewAPI();
|
|
|
47
49
|
:disabled="!api.store.dev.viewProvidesStepper || !api.hasNextStep()"
|
|
48
50
|
@click="api.goNextStep()"
|
|
49
51
|
>
|
|
50
|
-
<
|
|
52
|
+
<ChevronRight />
|
|
51
53
|
</ButtonGroupItem>
|
|
52
54
|
</TooltipTrigger>
|
|
53
55
|
<TooltipContent side="bottom">
|