opensignalbox-ui-web 0.1.0__tar.gz

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 (178) hide show
  1. opensignalbox_ui_web-0.1.0/.gitignore +182 -0
  2. opensignalbox_ui_web-0.1.0/.python-version +1 -0
  3. opensignalbox_ui_web-0.1.0/CHANGELOG.md +10 -0
  4. opensignalbox_ui_web-0.1.0/PKG-INFO +16 -0
  5. opensignalbox_ui_web-0.1.0/README.md +1 -0
  6. opensignalbox_ui_web-0.1.0/pyproject.toml +30 -0
  7. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/__init__.py +1 -0
  8. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/assets/favicon.ico +0 -0
  9. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/main.py +72 -0
  10. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/routes.py +3 -0
  11. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/version.py +1 -0
  12. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/.gitignore +24 -0
  13. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/.vscode/extensions.json +3 -0
  14. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/README.md +9 -0
  15. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/components.json +14 -0
  16. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/android-chrome-192x192.png +0 -0
  17. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/android-chrome-512x512.png +0 -0
  18. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/apple-touch-icon.png +0 -0
  19. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/avatar-BU8mQty8.png +0 -0
  20. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/index-ALVNcvdn.js +145 -0
  21. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/index-Cln2Hg_9.css +1 -0
  22. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/osb-qYB6mILv.png +0 -0
  23. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/osb_dark-WtNDq6pB.png +0 -0
  24. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/osbo-BRAvsk3_.png +0 -0
  25. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/assets/osbo_dark-B0sk5H04.png +0 -0
  26. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/favicon-16x16.png +0 -0
  27. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/favicon-32x32.png +0 -0
  28. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/favicon.ico +0 -0
  29. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/icon.svg +65 -0
  30. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/index.html +17 -0
  31. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/dist/site.webmanifest +1 -0
  32. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/index.html +16 -0
  33. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/package-lock.json +3402 -0
  34. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/package.json +35 -0
  35. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/android-chrome-192x192.png +0 -0
  36. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/android-chrome-512x512.png +0 -0
  37. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/apple-touch-icon.png +0 -0
  38. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/favicon-16x16.png +0 -0
  39. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/favicon-32x32.png +0 -0
  40. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/favicon.ico +0 -0
  41. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/icon.svg +65 -0
  42. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/public/site.webmanifest +1 -0
  43. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/App.vue +537 -0
  44. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/avatar.png +0 -0
  45. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/favicon.ico +0 -0
  46. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/icon.svg +65 -0
  47. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/index.css +97 -0
  48. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/osb.png +0 -0
  49. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/osb_dark.png +0 -0
  50. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/osbo.png +0 -0
  51. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/assets/osbo_dark.png +0 -0
  52. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/avatar/Avatar.vue +21 -0
  53. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/avatar/AvatarFallback.vue +11 -0
  54. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/avatar/AvatarImage.vue +9 -0
  55. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/avatar/index.ts +24 -0
  56. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/badge/Badge.vue +16 -0
  57. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/badge/index.ts +25 -0
  58. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/Breadcrumb.vue +13 -0
  59. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +22 -0
  60. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/BreadcrumbItem.vue +16 -0
  61. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/BreadcrumbLink.vue +19 -0
  62. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/BreadcrumbList.vue +16 -0
  63. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/BreadcrumbPage.vue +19 -0
  64. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +21 -0
  65. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/breadcrumb/index.ts +7 -0
  66. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/button/Button.vue +26 -0
  67. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/button/index.ts +34 -0
  68. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/Card.vue +21 -0
  69. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/CardContent.vue +14 -0
  70. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/CardDescription.vue +14 -0
  71. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/CardFooter.vue +14 -0
  72. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/CardHeader.vue +14 -0
  73. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/CardTitle.vue +18 -0
  74. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/card/index.ts +6 -0
  75. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/clock-control/ClockControl.vue +152 -0
  76. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/clock-control/index.js +1 -0
  77. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/collapsible/Collapsible.vue +15 -0
  78. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/collapsible/CollapsibleContent.vue +11 -0
  79. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/collapsible/CollapsibleTrigger.vue +11 -0
  80. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/collapsible/index.ts +3 -0
  81. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/darkmode-trigger/DarkModeTrigger.vue +42 -0
  82. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/darkmode-trigger/index.ts +1 -0
  83. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/Dialog.vue +14 -0
  84. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogClose.vue +11 -0
  85. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogContent.vue +50 -0
  86. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogDescription.vue +24 -0
  87. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogFooter.vue +19 -0
  88. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogHeader.vue +16 -0
  89. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogScrollContent.vue +59 -0
  90. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogTitle.vue +29 -0
  91. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/DialogTrigger.vue +11 -0
  92. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dialog/index.ts +9 -0
  93. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenu.vue +14 -0
  94. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +40 -0
  95. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuContent.vue +38 -0
  96. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +11 -0
  97. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuItem.vue +28 -0
  98. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +24 -0
  99. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +19 -0
  100. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +41 -0
  101. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +22 -0
  102. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
  103. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuSub.vue +19 -0
  104. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +30 -0
  105. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +33 -0
  106. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +13 -0
  107. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/dropdown-menu/index.ts +16 -0
  108. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/input/Input.vue +24 -0
  109. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/input/index.ts +1 -0
  110. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/nameplate/Nameplate.vue +13 -0
  111. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/nameplate/index.ts +1 -0
  112. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/popover/Popover.vue +15 -0
  113. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/popover/PopoverContent.vue +45 -0
  114. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/popover/PopoverTrigger.vue +12 -0
  115. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/popover/index.ts +3 -0
  116. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/separator/Separator.vue +20 -0
  117. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/separator/index.ts +1 -0
  118. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/Sheet.vue +14 -0
  119. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetClose.vue +11 -0
  120. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetContent.vue +56 -0
  121. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetDescription.vue +22 -0
  122. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetFooter.vue +19 -0
  123. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetHeader.vue +16 -0
  124. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetTitle.vue +22 -0
  125. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/SheetTrigger.vue +11 -0
  126. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sheet/index.ts +31 -0
  127. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/Sidebar.vue +91 -0
  128. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarContent.vue +17 -0
  129. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarFooter.vue +17 -0
  130. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarGroup.vue +17 -0
  131. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarGroupAction.vue +27 -0
  132. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarGroupContent.vue +17 -0
  133. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarGroupLabel.vue +24 -0
  134. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarHeader.vue +17 -0
  135. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarInput.vue +21 -0
  136. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarInset.vue +20 -0
  137. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenu.vue +17 -0
  138. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuAction.vue +32 -0
  139. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuBadge.vue +25 -0
  140. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuButton.vue +51 -0
  141. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuButtonChild.vue +33 -0
  142. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuItem.vue +17 -0
  143. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuSkeleton.vue +33 -0
  144. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuSub.vue +21 -0
  145. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuSubButton.vue +35 -0
  146. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarMenuSubItem.vue +9 -0
  147. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarProvider.vue +79 -0
  148. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarRail.vue +32 -0
  149. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarSeparator.vue +18 -0
  150. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/SidebarTrigger.vue +28 -0
  151. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/index.ts +51 -0
  152. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/sidebar/utils.ts +19 -0
  153. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/skeleton/Skeleton.vue +14 -0
  154. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/skeleton/index.ts +1 -0
  155. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/Toast.vue +26 -0
  156. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/ToastAction.vue +17 -0
  157. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/ToastClose.vue +20 -0
  158. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/ToastDescription.vue +17 -0
  159. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/ToastProvider.vue +12 -0
  160. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/ToastTitle.vue +17 -0
  161. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/ToastViewport.vue +15 -0
  162. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/Toaster.vue +30 -0
  163. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/index.ts +39 -0
  164. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/toast/use-toast.ts +165 -0
  165. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/tooltip/Tooltip.vue +14 -0
  166. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/tooltip/TooltipContent.vue +31 -0
  167. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/tooltip/TooltipProvider.vue +11 -0
  168. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/tooltip/TooltipTrigger.vue +11 -0
  169. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/components/ui/tooltip/index.ts +4 -0
  170. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/libs/utils.ts +6 -0
  171. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/main.ts +17 -0
  172. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/store.js +0 -0
  173. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/src/vite-env.d.ts +1 -0
  174. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/tailwind.config.js +103 -0
  175. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/tsconfig.json +30 -0
  176. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/tsconfig.node.json +11 -0
  177. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/tsconfig.node.tsbuildinfo +1 -0
  178. opensignalbox_ui_web-0.1.0/src/opensignalbox/ui/web/web_ui/vite.config.ts +42 -0
@@ -0,0 +1,182 @@
1
+ # Created by https://www.toptal.com/developers/gitignore/api/python
2
+ # Edit at https://www.toptal.com/developers/gitignore?templates=python
3
+
4
+ ### opensignalbox ###
5
+ tests/**/settings.toml
6
+ tests/workspace/boxes/*/resources/*
7
+ tests/workspace/boxes/Lowdham
8
+ opensignalbox/trainplanning/ltsv/icons
9
+
10
+ ### Python ###
11
+ # Byte-compiled / optimized / DLL files
12
+ __pycache__/
13
+ *.py[cod]
14
+ *$py.class
15
+
16
+ # C extensions
17
+ *.so
18
+
19
+ # Distribution / packaging
20
+ .Python
21
+ build/
22
+ develop-eggs/
23
+ #dist/
24
+ downloads/
25
+ eggs/
26
+ .eggs/
27
+ lib/
28
+ lib64/
29
+ parts/
30
+ sdist/
31
+ var/
32
+ wheels/
33
+ share/python-wheels/
34
+ *.egg-info/
35
+ .installed.cfg
36
+ *.egg
37
+ MANIFEST
38
+
39
+ # PyInstaller
40
+ # Usually these files are written by a python script from a template
41
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
42
+ *.manifest
43
+ *.spec
44
+
45
+ # Installer logs
46
+ pip-log.txt
47
+ pip-delete-this-directory.txt
48
+
49
+ # Unit test / coverage reports
50
+ htmlcov/
51
+ .tox/
52
+ .nox/
53
+ .coverage
54
+ .coverage.*
55
+ .cache
56
+ nosetests.xml
57
+ coverage.xml
58
+ *.cover
59
+ *.py,cover
60
+ .hypothesis/
61
+ .pytest_cache/
62
+ cover/
63
+
64
+ # Translations
65
+ *.mo
66
+ *.pot
67
+
68
+ # Django stuff:
69
+ *.log
70
+ local_settings.py
71
+ db.sqlite3
72
+ db.sqlite3-journal
73
+
74
+ # Flask stuff:
75
+ instance/
76
+ .webassets-cache
77
+
78
+ # Scrapy stuff:
79
+ .scrapy
80
+
81
+ # Sphinx documentation
82
+ docs/_build/
83
+
84
+ # PyBuilder
85
+ .pybuilder/
86
+ target/
87
+
88
+ # Jupyter Notebook
89
+ .ipynb_checkpoints
90
+
91
+ # IPython
92
+ profile_default/
93
+ ipython_config.py
94
+
95
+ # pyenv
96
+ # For a library or package, you might want to ignore these files since the code is
97
+ # intended to run in multiple environments; otherwise, check them in:
98
+ # .python-version
99
+
100
+ # pipenv
101
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
102
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
103
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
104
+ # install all needed dependencies.
105
+ #Pipfile.lock
106
+
107
+ # poetry
108
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
109
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
110
+ # commonly ignored for libraries.
111
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
112
+ #poetry.lock
113
+
114
+ # pdm
115
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
116
+ #pdm.lock
117
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
118
+ # in version control.
119
+ # https://pdm.fming.dev/#use-with-ide
120
+ .pdm.toml
121
+
122
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
123
+ __pypackages__/
124
+
125
+ # Celery stuff
126
+ celerybeat-schedule
127
+ celerybeat.pid
128
+
129
+ # SageMath parsed files
130
+ *.sage.py
131
+
132
+ # Environments
133
+ .env
134
+ .venv
135
+ env/
136
+ venv/
137
+ ENV/
138
+ env.bak/
139
+ venv.bak/
140
+
141
+ # Spyder project settings
142
+ .spyderproject
143
+ .spyproject
144
+
145
+ # Rope project settings
146
+ .ropeproject
147
+
148
+ # mkdocs documentation
149
+ /site
150
+
151
+ # mypy
152
+ .mypy_cache/
153
+ .dmypy.json
154
+ dmypy.json
155
+
156
+ # Pyre type checker
157
+ .pyre/
158
+
159
+ # pytype static type analyzer
160
+ .pytype/
161
+
162
+ # Cython debug symbols
163
+ cython_debug/
164
+
165
+ # PyCharm
166
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
167
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
168
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
169
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
170
+ #.idea/
171
+
172
+ ### Python Patch ###
173
+ # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
174
+ poetry.toml
175
+
176
+ # ruff
177
+ .ruff_cache/
178
+
179
+ # LSP config files
180
+ pyrightconfig.json
181
+
182
+ # End of https://www.toptal.com/developers/gitignore/api/python
@@ -0,0 +1 @@
1
+ 3.12.2
@@ -0,0 +1,10 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ - WIP
@@ -0,0 +1,16 @@
1
+ Metadata-Version: 2.4
2
+ Name: opensignalbox-ui-web
3
+ Version: 0.1.0
4
+ Summary: The official web UI module for the opensignalbox simulation framework.
5
+ Project-URL: Homepage, https://opensignalbox.org/
6
+ Project-URL: Repository, https://github.com/opensignalbox/opensignalbox
7
+ Author-email: The openSignalBox project <info@opensignalbox.org>
8
+ Maintainer-email: Laurence Stant <laurence@stant.phd>
9
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python :: 3
12
+ Requires-Python: >=3.8
13
+ Requires-Dist: fastapi>=0.110.0
14
+ Description-Content-Type: text/markdown
15
+
16
+ openSignalBox package code repo.
@@ -0,0 +1 @@
1
+ openSignalBox package code repo.
@@ -0,0 +1,30 @@
1
+ [project]
2
+ name = "opensignalbox-ui-web"
3
+ version = "0.1.0"
4
+ description = "The official web UI module for the opensignalbox simulation framework."
5
+ authors = [
6
+ { name = "The openSignalBox project", email = "info@opensignalbox.org" },
7
+ ]
8
+ maintainers = [{ name = "Laurence Stant", email = "laurence@stant.phd" }]
9
+ dependencies = ["fastapi>=0.110.0"]
10
+ readme = "README.md"
11
+ requires-python = ">= 3.8"
12
+ classifiers = [
13
+ "Programming Language :: Python :: 3",
14
+ "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
15
+ "Operating System :: OS Independent",
16
+ ]
17
+
18
+ [project.urls]
19
+ "Homepage" = "https://opensignalbox.org/"
20
+ "Repository" = "https://github.com/opensignalbox/opensignalbox"
21
+
22
+ [build-system]
23
+ requires = ["hatchling"]
24
+ build-backend = "hatchling.build"
25
+
26
+ [project.scripts]
27
+ opensignalbox-ui-web = 'opensignalbox.ui.web.main:entry_point'
28
+
29
+ [tool.hatch.build.targets.wheel]
30
+ packages = ["src/opensignalbox"]
@@ -0,0 +1 @@
1
+ __doc__ = "openSignalBox webui module."
@@ -0,0 +1,72 @@
1
+ from anyio import run
2
+ from opensignalbox.common.modules import BaseModule, ModuleInfo, module_argparser
3
+
4
+ from .routes import webui_api_router
5
+ from .version import __version__
6
+
7
+
8
+ class Module(BaseModule):
9
+ module_name = "opensignalbox-ui-web"
10
+ module_file = __file__
11
+
12
+ def __init__(
13
+ self,
14
+ module_info: ModuleInfo,
15
+ ) -> None:
16
+ super().__init__(
17
+ module_info=module_info,
18
+ )
19
+ self.fastapi_app.include_router(webui_api_router, prefix="/api")
20
+
21
+ def setup(self) -> None:
22
+ """
23
+ Module startup code goes here after the super call.
24
+ """
25
+ super().setup()
26
+
27
+ def systick_update(self, tick_json: str) -> None:
28
+ """
29
+ Module update logic goes here, executed once per clock tick.
30
+ """
31
+ # await macro_loop()
32
+ super().systick_update(tick_json)
33
+
34
+ async def user_task(self) -> None:
35
+ pass
36
+
37
+ def teardown(self) -> None:
38
+ """
39
+ Module teardown code goes here.
40
+ """
41
+ pass
42
+
43
+ def load_state(self) -> None:
44
+ return super().load_state()
45
+
46
+ def save_state(self) -> None:
47
+ return super().save_state()
48
+
49
+
50
+ args = module_argparser()
51
+ instance_name: str = args.name
52
+
53
+ module_info = ModuleInfo(
54
+ instance_name=args.name,
55
+ module_name=Module.module_name,
56
+ version=__version__,
57
+ address=args.address,
58
+ port=args.port,
59
+ session_id=args.session_id,
60
+ framework_address=args.framework_address,
61
+ config_path=args.configdir,
62
+ )
63
+ module = Module(module_info=module_info)
64
+ module.setup()
65
+
66
+
67
+ def entry_point():
68
+ run(module.run, backend="trio")
69
+
70
+
71
+ if __name__ == "__main__":
72
+ entry_point()
@@ -0,0 +1,3 @@
1
+ from fastapi.routing import APIRouter
2
+
3
+ webui_api_router = APIRouter()
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,24 @@
1
+ # Logs
2
+ logs
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ pnpm-debug.log*
8
+ lerna-debug.log*
9
+
10
+ node_modules
11
+ #dist
12
+ #dist-ssr
13
+ *.local
14
+
15
+ # Editor directories and files
16
+ .vscode/*
17
+ !.vscode/extensions.json
18
+ .idea
19
+ .DS_Store
20
+ *.suo
21
+ *.ntvs*
22
+ *.njsproj
23
+ *.sln
24
+ *.sw?
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["Vue.volar"]
3
+ }
@@ -0,0 +1,9 @@
1
+ # Vue 3 + TypeScript + Vite
2
+
3
+ This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
4
+
5
+ ## Recommended Setup
6
+
7
+ - [VS Code](https://code.visualstudio.com/) + [Vue - Official](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (previously Volar) and disable Vetur
8
+
9
+ - Use [vue-tsc](https://github.com/vuejs/language-tools/tree/master/packages/tsc) for performing the same type checking from the command line, or for generating d.ts files for SFCs.
@@ -0,0 +1,14 @@
1
+ {
2
+ "style": "default",
3
+ "tailwind": {
4
+ "config": "tailwind.config.js",
5
+ "css": "src/app/globals.css",
6
+ "baseColor": "neutral",
7
+ "cssVariables": true
8
+ },
9
+ "typescript": true,
10
+ "aliases": {
11
+ "utils": "@/libs/utils",
12
+ "components": "@/components"
13
+ }
14
+ }