@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.
Files changed (310) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +109 -21
  3. package/dist/runtime/components/builtins/AdvertisementView.d.vue.ts +13 -1
  4. package/dist/runtime/components/builtins/AdvertisementView.vue +7 -3
  5. package/dist/runtime/components/builtins/AdvertisementView.vue.d.ts +13 -1
  6. package/dist/runtime/components/builtins/DebriefView.vue +3 -1
  7. package/dist/runtime/components/builtins/DemographicSurveyView.vue +8 -6
  8. package/dist/runtime/components/builtins/DeviceSurveyView.vue +5 -3
  9. package/dist/runtime/components/builtins/ExpView.vue +4 -2
  10. package/dist/runtime/components/builtins/ExperimentStatusBar.vue +3 -0
  11. package/dist/runtime/components/builtins/FavoriteColor.vue +3 -1
  12. package/dist/runtime/components/builtins/FavoriteNumber.vue +3 -1
  13. package/dist/runtime/components/builtins/InformedConsentModal.vue +5 -3
  14. package/dist/runtime/components/builtins/InformedConsentView.vue +3 -2
  15. package/dist/runtime/components/builtins/InstructionsQuiz.vue +7 -5
  16. package/dist/runtime/components/builtins/InstructionsView.vue +5 -3
  17. package/dist/runtime/components/builtins/LocalDevBanner.vue +16 -0
  18. package/dist/runtime/components/builtins/MTurkRecruitView.vue +4 -3
  19. package/dist/runtime/components/builtins/PresentationModeView.vue +9 -8
  20. package/dist/runtime/components/builtins/StatusBar.vue +7 -4
  21. package/dist/runtime/components/builtins/StudyPreviewText.vue +12 -10
  22. package/dist/runtime/components/builtins/TaskFeedbackSurveyView.vue +3 -1
  23. package/dist/runtime/components/builtins/ThanksView.vue +22 -21
  24. package/dist/runtime/components/builtins/WindowSizerView.vue +5 -3
  25. package/dist/runtime/components/builtins/WithdrawModal.vue +9 -7
  26. package/dist/runtime/components/builtins/WithdrawView.vue +4 -2
  27. package/dist/runtime/components/dev/RecruitmentChooserView.vue +532 -224
  28. package/dist/runtime/components/dev/ResponsiveDeviceContainer.vue +17 -8
  29. package/dist/runtime/components/dev/SmileDevPresentationView.vue +83 -0
  30. package/dist/runtime/components/dev/console/ConfigList.vue +14 -11
  31. package/dist/runtime/components/dev/console/ConsoleConfigPanel.vue +28 -7
  32. package/dist/runtime/components/dev/console/ConsoleDatabaseBrowsePanel.vue +6 -4
  33. package/dist/runtime/components/dev/console/ConsoleLogPanel.vue +68 -23
  34. package/dist/runtime/components/dev/console/DatabaseList.vue +9 -7
  35. package/dist/runtime/components/dev/console/SmileDevConsole.vue +7 -5
  36. package/dist/runtime/components/dev/devicePresets.d.ts +4 -4
  37. package/dist/runtime/components/dev/devicePresets.js +4 -4
  38. package/dist/runtime/components/dev/menu/DevConfigPanel.vue +3 -1
  39. package/dist/runtime/components/dev/menu/ResponsiveDeviceSelect.vue +1 -0
  40. package/dist/runtime/components/dev/menu/SmileDevAppMenu.vue +27 -24
  41. package/dist/runtime/components/dev/navbar/ColorModeButton.vue +5 -3
  42. package/dist/runtime/components/dev/navbar/DatabaseButtonGroup.vue +8 -6
  43. package/dist/runtime/components/dev/navbar/FullScreenButton.vue +4 -2
  44. package/dist/runtime/components/dev/navbar/KeyCommandNotification.vue +1 -1
  45. package/dist/runtime/components/dev/navbar/PanelButtonGroup.d.vue.ts +3 -0
  46. package/dist/runtime/components/dev/navbar/PanelButtonGroup.vue +79 -0
  47. package/dist/runtime/components/dev/navbar/PanelButtonGroup.vue.d.ts +3 -0
  48. package/dist/runtime/components/dev/navbar/ReloadButton.vue +3 -1
  49. package/dist/runtime/components/dev/navbar/ResetButton.vue +3 -1
  50. package/dist/runtime/components/dev/navbar/RouteJumper.vue +9 -5
  51. package/dist/runtime/components/dev/navbar/SmileDevNavBar.vue +19 -27
  52. package/dist/runtime/components/dev/navbar/StepInfoButtonGroup.vue +5 -3
  53. package/dist/runtime/components/dev/navbar/ViewInfoButtonGroup.vue +13 -10
  54. package/dist/runtime/components/dev/presentation/DarkModeButton.vue +5 -3
  55. package/dist/runtime/components/dev/presentation/LogoutButton.vue +2 -1
  56. package/dist/runtime/components/dev/presentation/PresentationModeResetButton.vue +11 -2
  57. package/dist/runtime/components/dev/presentation/PresentationNavBar.d.vue.ts +13 -1
  58. package/dist/runtime/components/dev/presentation/PresentationNavBar.vue +13 -6
  59. package/dist/runtime/components/dev/presentation/PresentationNavBar.vue.d.ts +13 -1
  60. package/dist/runtime/components/dev/presentation/QRCodeButton.vue +4 -2
  61. package/dist/runtime/components/dev/sidebar/AppProgressPanel.vue +23 -21
  62. package/dist/runtime/components/dev/sidebar/ConfigurationVariablesPanel.vue +7 -5
  63. package/dist/runtime/components/dev/sidebar/DatabaseStatusInfoPanel.vue +27 -7
  64. package/dist/runtime/components/dev/sidebar/RandomizationSidebarPanel.vue +9 -5
  65. package/dist/runtime/components/dev/sidebar/SmileDevSideBar.vue +12 -5
  66. package/dist/runtime/components/dev/sidebar/StepDataViewer.d.vue.ts +2 -2
  67. package/dist/runtime/components/dev/sidebar/StepDataViewer.vue +1 -1
  68. package/dist/runtime/components/dev/sidebar/StepDataViewer.vue.d.ts +2 -2
  69. package/dist/runtime/components/dev/sidebar/StepExplorerPanel.vue +13 -8
  70. package/dist/runtime/components/dev/sidebar/StepNode.vue +7 -5
  71. package/dist/runtime/components/dev/sidebar/StudyInfoPanel.vue +3 -2
  72. package/dist/runtime/components/forms/MonthYearDayPicker.vue +1 -0
  73. package/dist/runtime/components/layouts/ConstrainedPage.d.vue.ts +1 -1
  74. package/dist/runtime/components/layouts/ConstrainedPage.vue.d.ts +1 -1
  75. package/dist/runtime/components/layouts/ConstrainedTaskWindow.d.vue.ts +2 -2
  76. package/dist/runtime/components/layouts/ConstrainedTaskWindow.vue +1 -1
  77. package/dist/runtime/components/layouts/ConstrainedTaskWindow.vue.d.ts +2 -2
  78. package/dist/runtime/components/layouts/TitleTwoCol.d.vue.ts +1 -1
  79. package/dist/runtime/components/layouts/TitleTwoCol.vue.d.ts +1 -1
  80. package/dist/runtime/components/layouts/TwoCol.d.vue.ts +1 -1
  81. package/dist/runtime/components/layouts/TwoCol.vue.d.ts +1 -1
  82. package/dist/runtime/components/ui/avatar/Avatar.vue +1 -0
  83. package/dist/runtime/components/ui/avatar/AvatarFallback.vue +1 -0
  84. package/dist/runtime/components/ui/badge/Badge.vue +1 -0
  85. package/dist/runtime/components/ui/badge/index.d.ts +1 -1
  86. package/dist/runtime/components/ui/breadcrumb/BreadcrumbEllipsis.vue +1 -0
  87. package/dist/runtime/components/ui/breadcrumb/BreadcrumbItem.vue +1 -0
  88. package/dist/runtime/components/ui/breadcrumb/BreadcrumbLink.vue +1 -0
  89. package/dist/runtime/components/ui/breadcrumb/BreadcrumbList.vue +1 -0
  90. package/dist/runtime/components/ui/breadcrumb/BreadcrumbPage.vue +1 -0
  91. package/dist/runtime/components/ui/breadcrumb/BreadcrumbSeparator.vue +1 -0
  92. package/dist/runtime/components/ui/button/Button.vue +1 -0
  93. package/dist/runtime/components/ui/button/index.d.ts +2 -2
  94. package/dist/runtime/components/ui/button-group/ButtonGroup.vue +1 -0
  95. package/dist/runtime/components/ui/button-group/ButtonGroupItem.vue +1 -0
  96. package/dist/runtime/components/ui/calendar/Calendar.vue +1 -0
  97. package/dist/runtime/components/ui/calendar/CalendarCell.vue +1 -0
  98. package/dist/runtime/components/ui/calendar/CalendarCellTrigger.vue +1 -0
  99. package/dist/runtime/components/ui/calendar/CalendarGrid.vue +1 -0
  100. package/dist/runtime/components/ui/calendar/CalendarGridRow.vue +1 -0
  101. package/dist/runtime/components/ui/calendar/CalendarHeadCell.vue +1 -0
  102. package/dist/runtime/components/ui/calendar/CalendarHeader.vue +1 -0
  103. package/dist/runtime/components/ui/calendar/CalendarHeading.vue +1 -0
  104. package/dist/runtime/components/ui/calendar/CalendarNextButton.vue +1 -0
  105. package/dist/runtime/components/ui/calendar/CalendarPrevButton.vue +1 -0
  106. package/dist/runtime/components/ui/card/Card.vue +1 -0
  107. package/dist/runtime/components/ui/card/CardAction.vue +1 -0
  108. package/dist/runtime/components/ui/card/CardContent.vue +1 -0
  109. package/dist/runtime/components/ui/card/CardDescription.vue +1 -0
  110. package/dist/runtime/components/ui/card/CardFooter.vue +1 -0
  111. package/dist/runtime/components/ui/card/CardHeader.vue +1 -0
  112. package/dist/runtime/components/ui/card/CardTitle.vue +1 -0
  113. package/dist/runtime/components/ui/checkbox/Checkbox.d.vue.ts +6 -6
  114. package/dist/runtime/components/ui/checkbox/Checkbox.vue +1 -0
  115. package/dist/runtime/components/ui/checkbox/Checkbox.vue.d.ts +6 -6
  116. package/dist/runtime/components/ui/checkbox/index.d.ts +2 -2
  117. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.d.vue.ts +4 -4
  118. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +1 -0
  119. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +4 -4
  120. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.d.vue.ts +3 -3
  121. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue +1 -0
  122. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +3 -3
  123. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.d.vue.ts +1 -1
  124. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue +1 -0
  125. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +1 -1
  126. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue +1 -0
  127. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +1 -0
  128. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSeparator.vue +1 -0
  129. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuShortcut.vue +1 -0
  130. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.d.vue.ts +3 -3
  131. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue +1 -0
  132. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +3 -3
  133. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +1 -0
  134. package/dist/runtime/components/ui/input/Input.d.vue.ts +4 -4
  135. package/dist/runtime/components/ui/input/Input.vue +1 -0
  136. package/dist/runtime/components/ui/input/Input.vue.d.ts +4 -4
  137. package/dist/runtime/components/ui/label/Label.vue +1 -0
  138. package/dist/runtime/components/ui/multiselect/MultiSelect.d.vue.ts +1 -1
  139. package/dist/runtime/components/ui/multiselect/MultiSelect.vue +1 -0
  140. package/dist/runtime/components/ui/multiselect/MultiSelect.vue.d.ts +1 -1
  141. package/dist/runtime/components/ui/pagination/Pagination.vue +1 -0
  142. package/dist/runtime/components/ui/pagination/PaginationContent.vue +1 -0
  143. package/dist/runtime/components/ui/pagination/PaginationEllipsis.vue +1 -0
  144. package/dist/runtime/components/ui/pagination/PaginationFirst.vue +1 -0
  145. package/dist/runtime/components/ui/pagination/PaginationItem.vue +1 -0
  146. package/dist/runtime/components/ui/pagination/PaginationLast.vue +1 -0
  147. package/dist/runtime/components/ui/pagination/PaginationNext.vue +1 -0
  148. package/dist/runtime/components/ui/pagination/PaginationPrevious.vue +1 -0
  149. package/dist/runtime/components/ui/popover/PopoverContent.d.vue.ts +2 -2
  150. package/dist/runtime/components/ui/popover/PopoverContent.vue +1 -0
  151. package/dist/runtime/components/ui/popover/PopoverContent.vue.d.ts +2 -2
  152. package/dist/runtime/components/ui/progress/Progress.vue +1 -0
  153. package/dist/runtime/components/ui/resizable/ResizableHandle.vue +1 -0
  154. package/dist/runtime/components/ui/resizable/ResizablePanel.d.vue.ts +1 -1
  155. package/dist/runtime/components/ui/resizable/ResizablePanel.vue.d.ts +1 -1
  156. package/dist/runtime/components/ui/resizable/ResizablePanelGroup.vue +1 -0
  157. package/dist/runtime/components/ui/select/Select.d.vue.ts +1 -1
  158. package/dist/runtime/components/ui/select/Select.vue.d.ts +1 -1
  159. package/dist/runtime/components/ui/select/SelectContent.d.vue.ts +2 -2
  160. package/dist/runtime/components/ui/select/SelectContent.vue +1 -0
  161. package/dist/runtime/components/ui/select/SelectContent.vue.d.ts +2 -2
  162. package/dist/runtime/components/ui/select/SelectItem.vue +1 -0
  163. package/dist/runtime/components/ui/select/SelectLabel.vue +1 -0
  164. package/dist/runtime/components/ui/select/SelectScrollDownButton.vue +1 -0
  165. package/dist/runtime/components/ui/select/SelectScrollUpButton.vue +1 -0
  166. package/dist/runtime/components/ui/select/SelectSeparator.vue +1 -0
  167. package/dist/runtime/components/ui/select/SelectTrigger.vue +1 -0
  168. package/dist/runtime/components/ui/separator/Separator.vue +1 -0
  169. package/dist/runtime/components/ui/sheet/SheetContent.d.vue.ts +1 -1
  170. package/dist/runtime/components/ui/sheet/SheetContent.vue +1 -0
  171. package/dist/runtime/components/ui/sheet/SheetContent.vue.d.ts +1 -1
  172. package/dist/runtime/components/ui/sheet/SheetDescription.vue +1 -0
  173. package/dist/runtime/components/ui/sheet/SheetFooter.vue +1 -0
  174. package/dist/runtime/components/ui/sheet/SheetHeader.vue +1 -0
  175. package/dist/runtime/components/ui/sheet/SheetOverlay.vue +1 -0
  176. package/dist/runtime/components/ui/sheet/SheetTitle.vue +1 -0
  177. package/dist/runtime/components/ui/sidebar/Sidebar.d.vue.ts +1 -1
  178. package/dist/runtime/components/ui/sidebar/Sidebar.vue +1 -0
  179. package/dist/runtime/components/ui/sidebar/Sidebar.vue.d.ts +1 -1
  180. package/dist/runtime/components/ui/sidebar/SidebarContent.vue +1 -0
  181. package/dist/runtime/components/ui/sidebar/SidebarFooter.vue +1 -0
  182. package/dist/runtime/components/ui/sidebar/SidebarGroup.vue +1 -0
  183. package/dist/runtime/components/ui/sidebar/SidebarGroupAction.vue +1 -0
  184. package/dist/runtime/components/ui/sidebar/SidebarGroupContent.vue +1 -0
  185. package/dist/runtime/components/ui/sidebar/SidebarGroupLabel.vue +1 -0
  186. package/dist/runtime/components/ui/sidebar/SidebarHeader.vue +1 -0
  187. package/dist/runtime/components/ui/sidebar/SidebarInput.vue +1 -0
  188. package/dist/runtime/components/ui/sidebar/SidebarInset.vue +1 -0
  189. package/dist/runtime/components/ui/sidebar/SidebarMenu.vue +1 -0
  190. package/dist/runtime/components/ui/sidebar/SidebarMenuAction.vue +1 -0
  191. package/dist/runtime/components/ui/sidebar/SidebarMenuBadge.vue +1 -0
  192. package/dist/runtime/components/ui/sidebar/SidebarMenuButton.d.vue.ts +1 -1
  193. package/dist/runtime/components/ui/sidebar/SidebarMenuButton.vue.d.ts +1 -1
  194. package/dist/runtime/components/ui/sidebar/SidebarMenuButtonChild.d.vue.ts +1 -1
  195. package/dist/runtime/components/ui/sidebar/SidebarMenuButtonChild.vue +1 -0
  196. package/dist/runtime/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +1 -1
  197. package/dist/runtime/components/ui/sidebar/SidebarMenuItem.vue +1 -0
  198. package/dist/runtime/components/ui/sidebar/SidebarMenuSkeleton.vue +1 -0
  199. package/dist/runtime/components/ui/sidebar/SidebarMenuSub.vue +1 -0
  200. package/dist/runtime/components/ui/sidebar/SidebarMenuSubButton.vue +1 -0
  201. package/dist/runtime/components/ui/sidebar/SidebarMenuSubItem.vue +1 -0
  202. package/dist/runtime/components/ui/sidebar/SidebarProvider.vue +1 -0
  203. package/dist/runtime/components/ui/sidebar/SidebarRail.vue +1 -0
  204. package/dist/runtime/components/ui/sidebar/SidebarSeparator.vue +1 -0
  205. package/dist/runtime/components/ui/sidebar/SidebarTrigger.vue +1 -0
  206. package/dist/runtime/components/ui/sidebar/index.d.ts +1 -1
  207. package/dist/runtime/components/ui/skeleton/Skeleton.vue +1 -0
  208. package/dist/runtime/components/ui/sonner/Sonner.d.vue.ts +4 -4
  209. package/dist/runtime/components/ui/sonner/Sonner.vue.d.ts +4 -4
  210. package/dist/runtime/components/ui/stepper/Stepper.vue +1 -0
  211. package/dist/runtime/components/ui/stepper/StepperDescription.vue +1 -0
  212. package/dist/runtime/components/ui/stepper/StepperIndicator.vue +1 -0
  213. package/dist/runtime/components/ui/stepper/StepperItem.d.vue.ts +1 -1
  214. package/dist/runtime/components/ui/stepper/StepperItem.vue +1 -0
  215. package/dist/runtime/components/ui/stepper/StepperItem.vue.d.ts +1 -1
  216. package/dist/runtime/components/ui/stepper/StepperSeparator.vue +1 -0
  217. package/dist/runtime/components/ui/stepper/StepperTitle.vue +1 -0
  218. package/dist/runtime/components/ui/stepper/StepperTrigger.vue +1 -0
  219. package/dist/runtime/components/ui/switch/Switch.d.vue.ts +2 -2
  220. package/dist/runtime/components/ui/switch/Switch.vue +1 -0
  221. package/dist/runtime/components/ui/switch/Switch.vue.d.ts +2 -2
  222. package/dist/runtime/components/ui/switch/index.d.ts +2 -2
  223. package/dist/runtime/components/ui/table/Table.vue +1 -0
  224. package/dist/runtime/components/ui/table/TableBody.vue +1 -0
  225. package/dist/runtime/components/ui/table/TableCaption.vue +1 -0
  226. package/dist/runtime/components/ui/table/TableCell.vue +1 -0
  227. package/dist/runtime/components/ui/table/TableEmpty.vue +1 -0
  228. package/dist/runtime/components/ui/table/TableFooter.vue +1 -0
  229. package/dist/runtime/components/ui/table/TableHead.vue +1 -0
  230. package/dist/runtime/components/ui/table/TableHeader.vue +1 -0
  231. package/dist/runtime/components/ui/table/TableRow.vue +1 -0
  232. package/dist/runtime/components/ui/tabs/Tabs.vue +1 -0
  233. package/dist/runtime/components/ui/tabs/TabsContent.d.vue.ts +2 -2
  234. package/dist/runtime/components/ui/tabs/TabsContent.vue +1 -0
  235. package/dist/runtime/components/ui/tabs/TabsContent.vue.d.ts +2 -2
  236. package/dist/runtime/components/ui/tabs/TabsList.d.vue.ts +1 -1
  237. package/dist/runtime/components/ui/tabs/TabsList.vue +1 -0
  238. package/dist/runtime/components/ui/tabs/TabsList.vue.d.ts +1 -1
  239. package/dist/runtime/components/ui/tabs/TabsTrigger.d.vue.ts +2 -2
  240. package/dist/runtime/components/ui/tabs/TabsTrigger.vue +1 -0
  241. package/dist/runtime/components/ui/tabs/TabsTrigger.vue.d.ts +2 -2
  242. package/dist/runtime/components/ui/tags-input/TagsInput.d.vue.ts +3 -3
  243. package/dist/runtime/components/ui/tags-input/TagsInput.vue +1 -0
  244. package/dist/runtime/components/ui/tags-input/TagsInput.vue.d.ts +3 -3
  245. package/dist/runtime/components/ui/tags-input/TagsInputInput.vue +1 -0
  246. package/dist/runtime/components/ui/tags-input/TagsInputItem.d.vue.ts +2 -2
  247. package/dist/runtime/components/ui/tags-input/TagsInputItem.vue +1 -0
  248. package/dist/runtime/components/ui/tags-input/TagsInputItem.vue.d.ts +2 -2
  249. package/dist/runtime/components/ui/tags-input/TagsInputItemDelete.vue +1 -0
  250. package/dist/runtime/components/ui/tags-input/TagsInputItemText.vue +1 -0
  251. package/dist/runtime/components/ui/textarea/Textarea.d.vue.ts +4 -4
  252. package/dist/runtime/components/ui/textarea/Textarea.vue +1 -0
  253. package/dist/runtime/components/ui/textarea/Textarea.vue.d.ts +4 -4
  254. package/dist/runtime/components/ui/toggle/Toggle.d.vue.ts +2 -2
  255. package/dist/runtime/components/ui/toggle/Toggle.vue +1 -0
  256. package/dist/runtime/components/ui/toggle/Toggle.vue.d.ts +2 -2
  257. package/dist/runtime/components/ui/toggle/index.d.ts +1 -1
  258. package/dist/runtime/components/ui/toggle-group/ToggleGroup.d.vue.ts +2 -2
  259. package/dist/runtime/components/ui/toggle-group/ToggleGroup.vue +1 -0
  260. package/dist/runtime/components/ui/toggle-group/ToggleGroup.vue.d.ts +2 -2
  261. package/dist/runtime/components/ui/toggle-group/ToggleGroupItem.vue +1 -0
  262. package/dist/runtime/components/ui/tooltip/TooltipContent.d.vue.ts +2 -2
  263. package/dist/runtime/components/ui/tooltip/TooltipContent.vue +1 -0
  264. package/dist/runtime/components/ui/tooltip/TooltipContent.vue.d.ts +2 -2
  265. package/dist/runtime/composables/useAPI.d.ts +2 -2
  266. package/dist/runtime/composables/useAPI.js +6 -11
  267. package/dist/runtime/composables/useViewAPI.d.ts +1 -0
  268. package/dist/runtime/composables/useViewAPI.js +20 -4
  269. package/dist/runtime/composables/useWindowSizer.d.ts +14 -0
  270. package/dist/runtime/composables/useWindowSizer.js +48 -0
  271. package/dist/runtime/core/config.d.ts +78 -48
  272. package/dist/runtime/core/config.js +21 -27
  273. package/dist/runtime/core/stepper/Stepper.d.ts +13 -10
  274. package/dist/runtime/core/stepper/Stepper.js +70 -55
  275. package/dist/runtime/core/stepper/StepperSerializer.js +32 -14
  276. package/dist/runtime/core/timeline/Timeline.js +1 -2
  277. package/dist/runtime/css/main.css +1 -1
  278. package/dist/runtime/css/smile.css +1 -1
  279. package/dist/runtime/layouts/development.vue +38 -78
  280. package/dist/runtime/layouts/experiment.d.vue.ts +7 -10
  281. package/dist/runtime/layouts/experiment.vue +13 -0
  282. package/dist/runtime/layouts/experiment.vue.d.ts +7 -10
  283. package/dist/runtime/layouts/presentation.vue +24 -3
  284. package/dist/runtime/middleware/timeline.global.js +2 -4
  285. package/dist/runtime/pages/[...slug].vue +2 -0
  286. package/dist/runtime/pages/dev/[...slug].vue +2 -0
  287. package/dist/runtime/pages/dev-login.vue +5 -3
  288. package/dist/runtime/pages/presentation/[...slug].vue +2 -0
  289. package/dist/runtime/plugins/dev-sync.client.js +0 -2
  290. package/dist/runtime/plugins/seed.client.js +1 -3
  291. package/dist/runtime/plugins/store-sync.client.js +8 -10
  292. package/dist/runtime/public/images/helpus.png +0 -0
  293. package/dist/runtime/public/images/smile.svg +78 -0
  294. package/dist/runtime/public/images/universitylogo.png +0 -0
  295. package/dist/runtime/server/api/auth/login.post.js +11 -2
  296. package/dist/runtime/server/api/db-info.get.d.ts +5 -0
  297. package/dist/runtime/server/api/db-info.get.js +10 -0
  298. package/dist/runtime/server/api/qr.get.js +1 -2
  299. package/dist/runtime/server/middleware/dev-auth.js +10 -5
  300. package/dist/runtime/stores/log.js +4 -7
  301. package/dist/runtime/stores/smilestore.d.ts +161 -1014
  302. package/dist/runtime/stores/smilestore.js +39 -7
  303. package/dist/runtime/utils/utils.js +7 -0
  304. package/package.json +5 -3
  305. package/dist/runtime/components/dev/navbar/ViewButton.vue +0 -159
  306. package/dist/runtime/pages/info.vue +0 -462
  307. /package/dist/runtime/components/{dev/navbar/ViewButton.d.vue.ts → builtins/LocalDevBanner.d.vue.ts} +0 -0
  308. /package/dist/runtime/components/{dev/navbar/ViewButton.vue.d.ts → builtins/LocalDevBanner.vue.d.ts} +0 -0
  309. /package/dist/runtime/{pages/info.d.vue.ts → components/dev/SmileDevPresentationView.d.vue.ts} +0 -0
  310. /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 {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
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
- <i-carbon-rotate-counterclockwise-filled :class="{ 'text-blue-400': api.store.dev.isRotated }" />
157
+ <RotateCcw :class="{ 'text-link-button-foreground': api.store.dev.isRotated }" />
156
158
  </Button>
157
159
  </TooltipTrigger>
158
160
  <TooltipContent side="bottom">
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { devicePresets } from "../devicePresets.js";
3
+ import useAPI from "../../../composables/useAPI";
3
4
  const api = useAPI();
4
5
  const handleDeviceChange = (value) => {
5
6
  console.log("handleDeviceChange called with:", value);
@@ -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
- <i-lucide-smile />
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
- <i-lucide-bug-play class="!size-5" />
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
- <!-- Docs -->
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 === 'docs',
104
- 'hover:!bg-sidebar-border': api.store.dev.mainView !== 'docs',
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="Documentation"
107
- @click="api.store.dev.mainView = 'docs'"
109
+ tooltip="Presentation Mode"
110
+ @click="api.store.dev.mainView = api.store.dev.mainView === 'presentation' ? 'devmode' : 'presentation'"
108
111
  >
109
- <i-lucide-book-marked class="!size-5" />
112
+ <Presentation class="!size-5" />
110
113
  </SidebarMenuButton>
111
114
  </SidebarMenuItem>
112
115
 
113
- <!-- Info / Recruitment Setup -->
116
+ <!-- Docs (coming soon)
114
117
  <SidebarMenuItem>
115
118
  <SidebarMenuButton
116
- as-child
117
- class="px-[0.05rem] group-data-[collapsible=icon]:!p-1.5 my-1 hover:!bg-sidebar-border"
118
- tooltip="Experiment Info & Recruitment"
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
- <a
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
- <i-lucide-moon
147
+ <Moon
145
148
  v-if="isDarkMode"
146
149
  class="!size-5"
147
150
  />
148
- <i-lucide-sun
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
- <i-lucide-settings class="!size-5" />
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:#afdaec}.dark .mainbutton{background-color:#c0f0a3;color:#000}
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
- <i-lucide-moon v-if="experimentColorMode === 'light'" />
16
- <i-lucide-sun-moon v-else-if="experimentColorMode === 'dark'" />
17
- <i-lucide-sun v-else />
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
- <i-lucide-database
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
- <i-lucide-refresh-cw class="has-text-grey" />
45
+ <RefreshCw class="has-text-grey" />
44
46
  </template>
45
47
  <template v-else-if="api.store.browserEphemeral.unsavedChanges && api.store.browserEphemeral.dataLoaded">
46
- <i-lucide-refresh-cw class="outofsync" />
48
+ <RefreshCw class="outofsync" />
47
49
  </template>
48
50
  <template v-else>
49
- <i-lucide-refresh-cw class="insync" />
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="#aaa"
60
- basecolor="#aaa"
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
- <i-ic-outline-fullscreen
17
+ <Maximize
16
18
  v-if="!api.store.dev.isFullscreen"
17
19
  :stroke-width="2.5"
18
20
  />
19
- <i-ic-outline-fullscreen-exit
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:#fef2f2;border:1px solid #fecaca}.notification-content{background:linear-gradient(135deg,var(--background) 0,var(--muted) 100%);padding:12px 16px}.error-content{background:linear-gradient(135deg,#fef2f2,#fee2e2)}.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:#ef4444;border:1px solid #ef4444;color:#fef2f2}.action-text{color:var(--foreground);font-size:.875rem;font-weight:500;line-height:1.4}.error-text{color:#ef4444}.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:#fef2f2;border-left:1px solid #fecaca;border-top:1px solid #fecaca}.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)}}
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
- <i-lucide-rotate-ccw :stroke-width="2.5" />
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
- <i-f7-bolt-fill />
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-border mb-1"
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
- <i-lucide-house class="inline mr-1" />
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
  >&nbsp;</span>
72
76
  </template>
73
- <i-lucide-arrow-down
77
+ <ArrowDown
74
78
  v-if="r.meta.sequential"
75
79
  class="inline mr-1"
76
80
  />
77
- <i-lucide-presentation
81
+ <Presentation
78
82
  v-else-if="r.name === 'presentation_home'"
79
83
  class="inline mr-1"
80
84
  />
81
- <i-lucide-diamond
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 ViewButton from "./ViewButton.vue";
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
- const sideBar = api.store.dev.showSideBar;
44
- const consoleBar = api.store.dev.showConsoleBar;
45
- if (!sideBar && !consoleBar) {
46
- api.store.dev.showSideBar = true;
47
- api.store.dev.showConsoleBar = false;
48
- showTemporaryNotification("Ctrl + 1", "Showing Sidebar");
49
- } else if (sideBar && !consoleBar) {
50
- api.store.dev.showSideBar = false;
51
- api.store.dev.showConsoleBar = true;
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
- <i-lucide-bug-play class="size-4 mr-1" />
151
+ <BugPlay class="size-4 mr-1" />
160
152
  <b>DEVELOPER MODE</b> &nbsp;({{ 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
- <i-lucide-bug-play class="size-4 mr-1" />
158
+ <BugPlay class="size-4 mr-1" />
167
159
  <b>DEV</b> &nbsp;({{ 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-gray-600">
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-gray-300 pl-4 rounded-l">
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
- <!-- View button -->
221
+ <!-- Panel toggles (console + sidebar) -->
230
222
  <div class="flex items-center">
231
- <ViewButton />
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
- <i-lucide-chevron-left />
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
- <i-iconoir-remove-empty v-else />
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
- <i-lucide-chevron-right />
52
+ <ChevronRight />
51
53
  </ButtonGroupItem>
52
54
  </TooltipTrigger>
53
55
  <TooltipContent side="bottom">