@3cr/viewer-browser 0.0.248 → 0.0.293

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 (520) hide show
  1. package/.circleci/config.yml +53 -0
  2. package/README.md +79 -74
  3. package/components.d.ts +94 -36
  4. package/dist/Viewer3CR.js +663 -47
  5. package/dist/Viewer3CR.mjs +107687 -36565
  6. package/dist/Viewer3CR.umd.js +663 -47
  7. package/index.html +35 -33
  8. package/package.json +27 -8
  9. package/playground/img.png +0 -0
  10. package/playground/index.html +6 -2
  11. package/src/App.vue +41 -97
  12. package/src/__tests__/app.spec.ts +2 -1
  13. package/src/__tests__/main.spec.ts +14 -14
  14. package/src/assets/_palette.scss +112 -0
  15. package/src/assets/_settings.scss +64 -0
  16. package/src/assets/_typography.scss +187 -0
  17. package/src/assets/images/cloud-storage.svg +22 -0
  18. package/src/assets/images/courtney.png +0 -0
  19. package/src/assets/images/dark/magic-wand.svg +32 -0
  20. package/src/assets/images/dark-theme.svg +33 -0
  21. package/src/assets/images/dot.svg +5 -0
  22. package/src/assets/images/dr-miles.png +0 -0
  23. package/src/assets/images/illustration.svg +118 -0
  24. package/src/assets/images/intro.svg +30 -0
  25. package/src/assets/{magic_wand.svg → images/light/magic-wand.svg} +22 -14
  26. package/src/assets/images/light-theme.svg +33 -0
  27. package/src/assets/images/system-theme.svg +51 -0
  28. package/src/assets/images/totalSegmentator.png +0 -0
  29. package/src/assets/logos/3dicom/black/black.svg +30 -0
  30. package/src/assets/logos/3dicom/colour/colour.svg +18 -0
  31. package/src/assets/logos/3dicom/colour/colour_single.svg +18 -0
  32. package/src/assets/logos/3dicom/wordmark/patients/patients.svg +29 -0
  33. package/src/assets/logos/3dicom/wordmark/powered-by/powered-by.svg +41 -0
  34. package/src/assets/logos/3dicom/wordmark/practitioners/practitioner.svg +34 -0
  35. package/src/assets/logos/3dicom/wordmark/research/research.svg +29 -0
  36. package/src/assets/logos/license/black/black.svg +22 -0
  37. package/src/assets/logos/license/white/white.svg +22 -0
  38. package/src/assets/styles.scss +435 -12
  39. package/src/components/ShFlatIconBtn.vue +36 -0
  40. package/src/components/ShPlainIconBtn.vue +42 -0
  41. package/src/components/ShSelect.vue +48 -0
  42. package/src/components/ShTextField.vue +39 -0
  43. package/src/components/ShTextarea.vue +39 -0
  44. package/src/components/__tests__/ShFlatIconBtn.spec.ts +32 -0
  45. package/src/components/__tests__/ShPlainIconBtn.spec.ts +37 -0
  46. package/src/components/__tests__/ShSelect.spec.ts +30 -0
  47. package/src/components/__tests__/ShTextField.spec.ts +30 -0
  48. package/src/components/__tests__/ShTextarea.spec.ts +30 -0
  49. package/src/components/demo/CloudDropZone.vue +105 -0
  50. package/src/components/demo/DemoAvatarDropdownMenu.vue +343 -0
  51. package/src/components/demo/DemoInfoModal.vue +60 -0
  52. package/src/components/demo/DemoNotificationNavigationDrawer.vue +118 -0
  53. package/src/components/demo/DemoPurchaseCreditsModal.vue +141 -0
  54. package/src/components/demo/DemoUpgradeCloudStorageModal.vue +74 -0
  55. package/src/components/demo/DemoUpgradePlanModal.vue +17 -0
  56. package/src/components/demo/UploadDicomToCloudModal.vue +225 -0
  57. package/src/components/demo/__tests__/CloudDropZone.spec.ts +132 -0
  58. package/src/components/demo/__tests__/DemoAvatarDropdownMenu.spec.ts +16 -0
  59. package/src/components/demo/{licence/__tests__/DemoLicenceEnableCloudStorageModal.spec.ts → __tests__/DemoEnableCloudStorageModal.spec.ts} +11 -11
  60. package/src/components/demo/{licence/__tests__/DemoLicenceInfoModal.spec.ts → __tests__/DemoInfoModal.spec.ts} +11 -8
  61. package/src/components/demo/__tests__/DemoNotificationNavigationDrawer.spec.ts +56 -0
  62. package/src/components/demo/__tests__/UploadDicomToCloudModal.spec.ts +320 -0
  63. package/src/components/demo/__tests__/demo-payload.spec.ts +10 -0
  64. package/src/components/demo/demo-notifications.ts +45 -0
  65. package/src/components/demo/demo-payload.ts +9 -0
  66. package/src/components/demo/fileReader.ts +47 -0
  67. package/src/{composables/useViewerOptions.ts → components/demo/mockDemoViewerStlDecimator.ts} +8 -12
  68. package/src/components/intro/ViewerIntro.vue +56 -0
  69. package/src/components/intro/ViewerTour.vue +53 -0
  70. package/src/components/intro/tour/Tour.vue +205 -0
  71. package/src/components/intro/tour/step.ts +6 -0
  72. package/src/components/modal/ActionRail.vue +4 -0
  73. package/src/components/modal/Viewer3cr.vue +224 -0
  74. package/src/components/modal/Viewer3crWebGL.vue +65 -0
  75. package/src/components/modal/ViewerActionRail.vue +10 -27
  76. package/src/components/modal/ViewerMain.vue +84 -0
  77. package/src/components/modal/ViewerNavigationDrawer.vue +269 -68
  78. package/src/components/modal/ViewerScanView.vue +223 -67
  79. package/src/components/modal/__tests__/{MftpWebGL3DRModal.spec.ts → Viewer3cr.spec.ts} +154 -53
  80. package/src/components/modal/__tests__/{WebGL3DR.spec.ts → Viewer3crWebGL.spec.ts} +11 -11
  81. package/src/components/modal/__tests__/ViewerNavigationDrawer.spec.ts +271 -11
  82. package/src/components/modal/__tests__/ViewerScanView.spec.ts +15 -7
  83. package/src/components/modal/actions/Action.vue +3 -8
  84. package/src/components/modal/actions/Flip3dAction.vue +31 -16
  85. package/src/components/modal/actions/FlipHorizontalAction.vue +14 -5
  86. package/src/components/modal/actions/FlipVerticalAction.vue +14 -5
  87. package/src/components/modal/actions/FullscreenAction.vue +9 -5
  88. package/src/components/modal/actions/PanAction.vue +11 -51
  89. package/src/components/modal/actions/ResetViewAction.vue +10 -8
  90. package/src/components/modal/actions/Rotate2dAction.vue +25 -15
  91. package/src/components/modal/actions/Slice3dAction.vue +22 -10
  92. package/src/components/modal/actions/ZoomAction.vue +21 -13
  93. package/src/components/modal/actions/__tests__/Action.spec.ts +2 -2
  94. package/src/components/modal/actions/__tests__/Flip3dAction.spec.ts +58 -14
  95. package/src/components/modal/actions/__tests__/FlipHorizontalAction.spec.ts +15 -5
  96. package/src/components/modal/actions/__tests__/FlipVerticalAction.spec.ts +15 -5
  97. package/src/components/modal/actions/__tests__/FullscreenAction.spec.ts +7 -5
  98. package/src/components/modal/actions/__tests__/PanAction.spec.ts +13 -32
  99. package/src/components/modal/actions/__tests__/ResetViewAction.spec.ts +5 -3
  100. package/src/components/modal/actions/__tests__/Rotate2dAction.spec.ts +13 -6
  101. package/src/components/modal/actions/__tests__/Slice3dAction.spec.ts +1 -1
  102. package/src/components/modal/actions/__tests__/ZoomAction.spec.ts +25 -11
  103. package/src/components/modal/app-bars/ViewerActionBar.vue +224 -0
  104. package/src/components/modal/app-bars/ViewerAppBar.vue +126 -0
  105. package/src/components/modal/app-bars/__tests__/ViewerActionBar.spec.ts +176 -0
  106. package/src/components/modal/app-bars/__tests__/ViewerAppBar.spec.ts +99 -0
  107. package/src/components/modal/layouts/Layout1x3ClipPath.vue +35 -0
  108. package/src/components/modal/layouts/Layout2x2ClipPath.vue +35 -0
  109. package/src/components/modal/layouts/LayoutFullscreenClipPath.vue +29 -0
  110. package/src/components/modal/layouts/__tests__/Layout1x3ClipPath.spec.ts +15 -0
  111. package/src/components/modal/layouts/__tests__/Layout2x2ClipPath.spec.ts +15 -0
  112. package/src/components/modal/layouts/__tests__/LayoutFullscreenClipPath.spec.ts +15 -0
  113. package/src/components/modal/layouts/composables/__tests__/useLayout1x3.spec.ts +40 -0
  114. package/src/components/modal/layouts/composables/__tests__/useLayout2x2.spec.ts +40 -0
  115. package/src/components/modal/layouts/composables/__tests__/useLayoutFullscreen.spec.ts +40 -0
  116. package/src/components/modal/layouts/composables/useLayout1x3.ts +46 -0
  117. package/src/components/modal/layouts/composables/useLayout2x2.ts +46 -0
  118. package/src/components/modal/layouts/composables/useLayoutFullscreen.ts +24 -0
  119. package/src/components/modal/menus/AutoAnnotateMenu.vue +67 -0
  120. package/src/components/modal/menus/AvatarDropdownMenu.vue +66 -0
  121. package/src/components/modal/menus/HelpMenu.vue +47 -0
  122. package/src/components/modal/menus/SettingsMenu.vue +242 -92
  123. package/src/components/modal/menus/ShareMenu.vue +58 -0
  124. package/src/components/modal/menus/__tests__/AutoAnnotateMenu.spec.ts +80 -0
  125. package/src/components/modal/menus/__tests__/AvatarDropdownMenu.spec.ts +49 -0
  126. package/src/components/modal/menus/__tests__/HelpMenu.spec.ts +12 -0
  127. package/src/components/modal/menus/__tests__/SettingsMenu.spec.ts +163 -57
  128. package/src/components/modal/modal/AboutModal.vue +61 -0
  129. package/src/components/modal/modal/AiModelList.vue +70 -0
  130. package/src/components/modal/{AskAI.vue → modal/AskAiModal.vue} +26 -34
  131. package/src/components/modal/modal/AutoAnnotateModal.vue +136 -0
  132. package/src/components/modal/modal/CloseViewerModal.vue +108 -0
  133. package/src/components/modal/modal/DataOverlayGeneralModal.vue +122 -0
  134. package/src/components/modal/modal/DataOverlayMeasurementModal.vue +59 -0
  135. package/src/components/modal/modal/DataOverlayModal.vue +121 -0
  136. package/src/components/modal/modal/ShareModal.vue +201 -0
  137. package/src/components/modal/modal/UploadsDrawer.vue +165 -0
  138. package/src/components/modal/modal/WhatsNewModal.vue +45 -0
  139. package/src/components/modal/modal/__tests__/AboutModal.spec.ts +60 -0
  140. package/src/components/modal/modal/__tests__/AiModelList.spec.ts +50 -0
  141. package/src/components/modal/{__tests__ → modal/__tests__}/AskAI.spec.ts +8 -7
  142. package/src/components/modal/modal/__tests__/AutoAnnotateModal.spec.ts +29 -0
  143. package/src/components/modal/modal/__tests__/CloseViewerModal.spec.ts +60 -0
  144. package/src/components/modal/modal/__tests__/DataOverlayGeneralModal.spec.ts +55 -0
  145. package/src/components/modal/modal/__tests__/DataOverlayMeasurementModal.spec.ts +82 -0
  146. package/src/components/modal/modal/__tests__/DataOverlayModal.spec.ts +94 -0
  147. package/src/components/modal/modal/__tests__/ShareModal.spec.ts +260 -0
  148. package/src/components/modal/modal/__tests__/UploadsDrawer.spec.ts +174 -0
  149. package/src/components/modal/modal/__tests__/WhatsNewModal.spec.ts +29 -0
  150. package/src/components/modal/snackbars/AnnotationGeneratedSnackbar.vue +34 -0
  151. package/src/components/modal/snackbars/ImagesSharedSnackbar.vue +26 -0
  152. package/src/components/modal/snackbars/LinkCopiedSnackbar.vue +26 -0
  153. package/src/components/modal/snackbars/__tests__/AnnotationGeneratedSnackbar.spec.ts +43 -0
  154. package/src/components/modal/snackbars/__tests__/ImagesSharedSnackbar.spec.ts +22 -0
  155. package/src/components/modal/snackbars/__tests__/LinkCopiedSnackbar.spec.ts +21 -0
  156. package/src/components/navigation/annotation/AnnotationCreateModal.vue +104 -0
  157. package/src/components/navigation/annotation/AnnotationCreateSnackbar.vue +20 -0
  158. package/src/components/navigation/annotation/AnnotationDataTable.vue +157 -0
  159. package/src/components/navigation/annotation/AnnotationDeleteModal.vue +48 -0
  160. package/src/components/navigation/annotation/AnnotationDeleteSnackbar.vue +25 -0
  161. package/src/components/navigation/annotation/AnnotationForm.vue +253 -0
  162. package/src/components/navigation/annotation/AnnotationIcon.vue +45 -0
  163. package/src/components/navigation/annotation/AnnotationInfo.vue +141 -0
  164. package/src/components/navigation/annotation/AnnotationMenu.vue +99 -0
  165. package/src/components/navigation/annotation/AnnotationPanel.vue +30 -0
  166. package/src/components/navigation/annotation/AnnotationTools.vue +106 -0
  167. package/src/components/navigation/annotation/AnnotationUpdateModal.vue +92 -0
  168. package/src/components/navigation/annotation/AnnotationVisibilityBtn.vue +52 -0
  169. package/src/components/navigation/annotation/DrawerTitle.vue +25 -0
  170. package/src/components/navigation/annotation/__tests__/AnnotationCreateModal.spec.ts +175 -0
  171. package/src/components/navigation/annotation/__tests__/AnnotationCreateSnackbar.spec.ts +31 -0
  172. package/src/components/navigation/annotation/__tests__/AnnotationDataTable.spec.ts +79 -0
  173. package/src/components/navigation/annotation/__tests__/AnnotationDeleteSnackbar.spec.ts +66 -0
  174. package/src/components/navigation/annotation/__tests__/AnnotationForm.spec.ts +248 -0
  175. package/src/components/navigation/annotation/__tests__/AnnotationIcon.spec.ts +13 -0
  176. package/src/components/navigation/annotation/__tests__/AnnotationTools.spec.ts +107 -0
  177. package/src/components/navigation/display/DisplayPanel.vue +156 -0
  178. package/src/components/{views/__tests__/DisplaySettings.spec.ts → navigation/display/__tests__/DisplayPanel.spec.ts} +14 -3
  179. package/src/components/navigation/history/HistoryModal.vue +140 -0
  180. package/src/components/navigation/mcad/McadAddObjectBtn.vue +41 -0
  181. package/src/components/navigation/mcad/McadDataTable.vue +78 -0
  182. package/src/components/navigation/mcad/McadDataTableItems.vue +382 -0
  183. package/src/components/navigation/mcad/McadDeleteModal.vue +44 -0
  184. package/src/components/navigation/mcad/McadDropZone.vue +148 -0
  185. package/src/components/navigation/mcad/McadFloating.vue +193 -0
  186. package/src/components/navigation/mcad/McadIcon.vue +34 -0
  187. package/src/components/navigation/mcad/McadInvert.vue +91 -0
  188. package/src/components/navigation/mcad/McadLockBtn.vue +62 -0
  189. package/src/components/navigation/mcad/McadMenu.vue +249 -0
  190. package/src/components/navigation/mcad/McadOpacity.vue +79 -0
  191. package/src/components/navigation/mcad/McadPanel.vue +31 -0
  192. package/src/components/navigation/mcad/McadToggleSortBtn.vue +18 -0
  193. package/src/components/navigation/mcad/McadToggleVisibilityBtn.vue +46 -0
  194. package/src/components/navigation/mcad/McadUpdateModal.vue +108 -0
  195. package/src/components/navigation/mcad/McadVisibilityBtn.vue +46 -0
  196. package/src/components/navigation/mcad/__tests__/McadAddObjectBtn.spec.ts +73 -0
  197. package/src/components/navigation/mcad/__tests__/McadDataTable.spec.ts +27 -0
  198. package/src/components/navigation/mcad/__tests__/McadDataTableItems.spec.ts +621 -0
  199. package/src/components/navigation/mcad/__tests__/McadDeleteModal.spec.ts +67 -0
  200. package/src/components/navigation/mcad/__tests__/McadDropZone.spec.ts +109 -0
  201. package/src/components/navigation/mcad/__tests__/McadIcon.spec.ts +13 -0
  202. package/src/components/navigation/mcad/__tests__/McadInvert.spec.ts +45 -0
  203. package/src/components/navigation/mcad/__tests__/McadLockBtn.spec.ts +38 -0
  204. package/src/components/navigation/mcad/__tests__/McadMenu.spec.ts +258 -0
  205. package/src/components/navigation/mcad/__tests__/McadOpacity.spec.ts +68 -0
  206. package/src/components/navigation/mcad/__tests__/McadToggleSortBtn.spec.ts +36 -0
  207. package/src/components/navigation/mcad/__tests__/McadToggleVisibilityBtn.spec.ts +53 -0
  208. package/src/components/navigation/mcad/__tests__/McadUpdateModal.spec.ts +122 -0
  209. package/src/components/navigation/mcad/__tests__/McadVisibilityBtn.spec.ts +45 -0
  210. package/src/components/navigation/measurement/MeasurementAngleSnackbar.vue +18 -0
  211. package/src/components/navigation/measurement/MeasurementDataTable.vue +162 -0
  212. package/src/components/navigation/measurement/MeasurementDeleteModal.vue +49 -0
  213. package/src/components/navigation/measurement/MeasurementDeleteSnackbar.vue +40 -0
  214. package/src/components/navigation/measurement/MeasurementIcon.vue +41 -0
  215. package/src/components/navigation/measurement/MeasurementInfo.vue +25 -0
  216. package/src/components/navigation/measurement/MeasurementInfoAngle.vue +36 -0
  217. package/src/components/navigation/measurement/MeasurementInfoLength.vue +37 -0
  218. package/src/components/navigation/measurement/MeasurementInfoPolygon.vue +58 -0
  219. package/src/components/navigation/measurement/MeasurementLengthSnackbar.vue +18 -0
  220. package/src/components/navigation/measurement/MeasurementMenu.vue +97 -0
  221. package/src/components/navigation/measurement/MeasurementPanel.vue +30 -0
  222. package/src/components/navigation/measurement/MeasurementPolygonSnackbar.vue +18 -0
  223. package/src/components/navigation/measurement/MeasurementTools.vue +101 -0
  224. package/src/components/navigation/measurement/MeasurementVisibilityBtn.vue +53 -0
  225. package/src/components/navigation/measurement/__tests__/MeasurementAngleSnackbar.spec.ts +34 -0
  226. package/src/components/navigation/measurement/__tests__/MeasurementDataTable.spec.ts +79 -0
  227. package/src/components/navigation/measurement/__tests__/MeasurementDeleteSnackbar.spec.ts +51 -0
  228. package/src/components/navigation/measurement/__tests__/MeasurementInfo.spec.ts +77 -0
  229. package/src/components/navigation/measurement/__tests__/MeasurementLengthSnackbar.spec.ts +35 -0
  230. package/src/components/navigation/measurement/__tests__/MeasurementPolygonSnackbar.spec.ts +35 -0
  231. package/src/components/navigation/measurement/__tests__/MeasurementTools.spec.ts +87 -0
  232. package/src/components/shared/ColourPalette.vue +71 -0
  233. package/src/components/shared/DoubleSliderSelector.vue +66 -28
  234. package/src/components/shared/HorizontalSliderSelector.vue +80 -0
  235. package/src/components/shared/KeyboardShortcuts.vue +184 -0
  236. package/src/components/shared/LoadingSpinner.vue +508 -144
  237. package/src/components/shared/MultiLoginError.vue +98 -0
  238. package/src/components/shared/NotificationToaster.vue +112 -0
  239. package/src/components/shared/UpdateSnackbar.vue +22 -9
  240. package/src/components/shared/ValueSelector.vue +10 -10
  241. package/src/components/shared/VerticalSliderSelector.vue +45 -44
  242. package/src/components/shared/__tests__/ColourPalette.spec.ts +21 -0
  243. package/src/components/shared/__tests__/DoubleSliderSelector.spec.ts +58 -46
  244. package/src/components/shared/__tests__/HorizontalSliderSelector.spec.ts +35 -0
  245. package/src/components/shared/__tests__/KeyboardShortcuts.spec.ts +50 -0
  246. package/src/components/shared/__tests__/MultiLoginError.spec.ts +50 -0
  247. package/src/components/shared/__tests__/NotificationToaster.spec.ts +65 -0
  248. package/src/components/shared/__tests__/UpdateSnackbar.spec.ts +7 -7
  249. package/src/components/shared/__tests__/ValueSelector.spec.ts +6 -0
  250. package/src/composables/__tests__/useDebounce.spec.ts +17 -0
  251. package/src/composables/__tests__/useMovingAverage.spec.ts +40 -0
  252. package/src/composables/__tests__/useNavigationCube.spec.ts +79 -0
  253. package/src/{functions/__tests__/notification.spec.ts → composables/__tests__/useNotificationHandler.spec.ts} +74 -17
  254. package/src/composables/__tests__/useToolGroup.spec.ts +41 -0
  255. package/src/composables/__tests__/useViewName.spec.ts +29 -0
  256. package/src/composables/useBoundingBox.ts +32 -0
  257. package/src/composables/useEventListener.ts +7 -9
  258. package/src/composables/useMedia.ts +27 -0
  259. package/src/composables/useNavigationCube.ts +80 -0
  260. package/src/composables/useNotificationHandler.ts +82 -0
  261. package/src/composables/useResizeObserver.ts +31 -0
  262. package/src/composables/useToolGroup.ts +36 -0
  263. package/src/composables/useViewName.ts +34 -0
  264. package/src/composables/useViewer3cr.ts +3 -2
  265. package/src/config.ts +1 -1
  266. package/src/constants.ts +8 -0
  267. package/src/functions/HotkeyScope.ts +87 -0
  268. package/src/functions/__tests__/HotkeyScope.spec.ts +49 -0
  269. package/src/functions/__tests__/colours.spec.ts +42 -0
  270. package/src/functions/__tests__/fileReader.spec.ts +130 -0
  271. package/src/functions/__tests__/modelHelper.spec.ts +1 -0
  272. package/src/functions/__tests__/tsHelper.spec.ts +7 -0
  273. package/src/functions/chunker.ts +21 -0
  274. package/src/functions/colours.ts +45 -0
  275. package/src/functions/fileReader.ts +48 -0
  276. package/src/functions/guards/__tests__/isDataOverlayAngle.spec.ts +21 -0
  277. package/src/functions/guards/__tests__/isDataOverlayLength.spec.ts +21 -0
  278. package/src/functions/guards/__tests__/isDataOverlayPolygon.spec.ts +21 -0
  279. package/src/functions/guards/isDataOverlayAngle.ts +3 -4
  280. package/src/functions/guards/isDataOverlayLength.ts +3 -4
  281. package/src/functions/guards/isDataOverlayPolygon.ts +3 -4
  282. package/src/functions/openUrl.ts +3 -0
  283. package/src/functions/{__tests__ → parsers/__tests__}/parseAction.spec.ts +1 -1
  284. package/src/functions/{__tests__ → parsers/__tests__}/parseCallToAction.spec.ts +1 -1
  285. package/src/functions/{__tests__ → parsers/__tests__}/parseDataOverlay.spec.ts +1 -1
  286. package/src/functions/{__tests__ → parsers/__tests__}/parseDataOverlayData.spec.ts +1 -1
  287. package/src/functions/{__tests__ → parsers/__tests__}/parseDataOverlayEvent.spec.ts +3 -3
  288. package/src/functions/{__tests__ → parsers/__tests__}/parseMcadEvent.spec.ts +3 -3
  289. package/src/functions/{parseAction.ts → parsers/parseAction.ts} +1 -2
  290. package/src/functions/{parseCallToAction.ts → parsers/parseCallToAction.ts} +2 -2
  291. package/src/functions/{parseDataOverlay.ts → parsers/parseDataOverlay.ts} +3 -3
  292. package/src/functions/parsers/parseDataOverlayData.ts +9 -0
  293. package/src/functions/parsers/parseDataOverlayEvent.ts +19 -0
  294. package/src/functions/parsers/parseMcadEvent.ts +9 -0
  295. package/src/functions/platform.ts +7 -0
  296. package/src/functions/translateTooltipShortcut.ts +35 -0
  297. package/src/functions/tsHelper.ts +3 -0
  298. package/src/main.ts +70 -48
  299. package/src/models/__tests__/iso-languages.spec.ts +23 -0
  300. package/src/models/__tests__/scanState.spec.ts +14 -38
  301. package/src/models/iso-languages.ts +1609 -0
  302. package/src/models/progress.ts +23 -0
  303. package/src/models/scanState.ts +56 -100
  304. package/src/plugins/__tests__/pinia.spec.ts +7 -0
  305. package/src/plugins/__tests__/vue-i18n.spec.ts +7 -0
  306. package/src/plugins/__tests__/vuetify.spec.ts +3 -3
  307. package/src/plugins/locales/en.json +442 -0
  308. package/src/plugins/material-symbols/aliases.ts +43 -0
  309. package/src/plugins/material-symbols/material-symbols-filled.ts +11 -0
  310. package/src/plugins/material-symbols/material-symbols-outlined.ts +9 -0
  311. package/src/plugins/pinia.ts +3 -0
  312. package/src/plugins/vue-i18n.ts +9 -0
  313. package/src/plugins/vuetify.ts +157 -25
  314. package/src/services/__tests__/features.service.spec.ts +14 -0
  315. package/src/services/__tests__/gpt.service.spec.ts +64 -3
  316. package/src/services/__tests__/viewer-3cr.service.spec.ts +616 -192
  317. package/src/services/features.service.ts +32 -0
  318. package/src/services/gpt.service.ts +5 -2
  319. package/src/services/viewer-3cr.service.ts +374 -307
  320. package/src/stores/__tests__/data-overlay.store.spec.ts +92 -0
  321. package/src/stores/__tests__/demo.store.spec.ts +196 -0
  322. package/src/stores/__tests__/drawer.store.spec.ts +27 -0
  323. package/src/stores/__tests__/intro.store.spec.ts +102 -0
  324. package/src/stores/__tests__/language.store.spec.ts +83 -0
  325. package/src/stores/__tests__/mcad-floating.store.spec.ts +339 -0
  326. package/src/stores/__tests__/mcad.store.spec.ts +88 -0
  327. package/src/stores/__tests__/save.store.spec.ts +51 -0
  328. package/src/stores/__tests__/theme.store.spec.ts +18 -0
  329. package/src/stores/__tests__/tool.store.spec.ts +53 -0
  330. package/src/stores/__tests__/upload.store.spec.ts +19 -0
  331. package/src/stores/__tests__/viewer.store.spec.ts +18 -0
  332. package/src/stores/data-overlay.store.ts +93 -0
  333. package/src/stores/demo.store.ts +284 -0
  334. package/src/stores/drawer.store.ts +23 -0
  335. package/src/stores/intro.store.ts +35 -0
  336. package/src/stores/language.store.ts +59 -0
  337. package/src/stores/mcad-floating.store.ts +141 -0
  338. package/src/stores/mcad.store.ts +53 -0
  339. package/src/stores/save.store.ts +59 -0
  340. package/src/stores/theme.store.ts +45 -0
  341. package/src/stores/tool.store.ts +41 -0
  342. package/src/stores/upload.store.ts +19 -0
  343. package/src/stores/viewer.store.ts +30 -0
  344. package/src/tools/__tests__/annotation-create.tool.spec.ts +87 -0
  345. package/src/tools/__tests__/annotation-move.tool.spec.ts +107 -0
  346. package/src/tools/__tests__/data-overlay.tool.spec.ts +127 -0
  347. package/src/tools/__tests__/mcad-move.tool.spec.ts +106 -0
  348. package/src/tools/__tests__/mcad-rotate.tool.spec.ts +103 -0
  349. package/src/tools/__tests__/mcad-scale.tool.spec.ts +8 -0
  350. package/src/tools/__tests__/mcad-select.tool.spec.ts +63 -0
  351. package/src/tools/__tests__/measurement-angle.tool.spec.ts +26 -0
  352. package/src/tools/__tests__/measurement-length.tool.spec.ts +26 -0
  353. package/src/tools/__tests__/measurement-polygon.tool.spec.ts +26 -0
  354. package/src/tools/annotation-create.tool.ts +48 -0
  355. package/src/tools/annotation-move.tool.ts +48 -0
  356. package/src/tools/data-overlay.tool.ts +45 -48
  357. package/src/tools/mcad-move.tool.ts +47 -0
  358. package/src/tools/mcad-rotate.tool.ts +47 -0
  359. package/src/tools/mcad-scale-tool.ts +10 -0
  360. package/src/tools/mcad-select-tool.ts +32 -0
  361. package/src/tools/measurement-angle.tool.ts +20 -0
  362. package/src/tools/measurement-length.tool.ts +20 -0
  363. package/src/tools/measurement-polygon.tool.ts +20 -0
  364. package/src/types/feature.ts +6 -0
  365. package/src/types/viewer-tool.ts +5 -0
  366. package/test/MockImportOriginal.ts +7 -0
  367. package/test/assertions/beTypeOrNull.ts +24 -0
  368. package/test/fakers/action-data.faker.ts +1 -1
  369. package/test/fakers/action.faker.ts +1 -1
  370. package/test/fakers/call-to-action.faker.ts +1 -1
  371. package/test/fakers/data-overlay-angle.faker.ts +1 -1
  372. package/test/fakers/data-overlay-annotation.faker.ts +1 -1
  373. package/test/fakers/data-overlay-data.faker.ts +18 -15
  374. package/test/fakers/data-overlay-interaction.faker.ts +25 -17
  375. package/test/fakers/data-overlay-length.faker.ts +1 -1
  376. package/test/fakers/data-overlay-mcad.faker.ts +4 -3
  377. package/test/fakers/data-overlay-polygon.faker.ts +1 -1
  378. package/test/fakers/feature.faker.ts +13 -0
  379. package/test/fakers/file.faker.ts +11 -0
  380. package/test/fakers/gpt-question.faker.ts +1 -1
  381. package/test/fakers/gpt-response.faker.ts +1 -1
  382. package/test/fakers/mcad-object-interaction.faker.ts +4 -4
  383. package/test/fakers/orientation.faker.ts +1 -1
  384. package/test/fakers/segment-angle.faker.ts +1 -1
  385. package/test/fakers/upload.faker.ts +14 -0
  386. package/test/getAnimationFrame.ts +3 -0
  387. package/test/plugins/findByTestId.ts +13 -6
  388. package/test/plugins/pinia.ts +20 -0
  389. package/test/plugins/vitest.d.ts +8 -0
  390. package/test/plugins/vue-i18n.ts +22 -0
  391. package/test/plugins/vuetify.ts +10 -0
  392. package/test/setup.ts +37 -12
  393. package/tsconfig.json +1 -1
  394. package/vite.config.mts +48 -18
  395. package/vitest.config.mts +12 -3
  396. package/src/assets/images/MainBackdrop.svg +0 -48
  397. package/src/assets/images/dark/Singular-Health-Disc-Mono.svg +0 -9
  398. package/src/assets/images/dark/demo-icon-small.png +0 -0
  399. package/src/assets/images/dark/demo-logo-small.svg +0 -27
  400. package/src/assets/images/dark/demo-logo.svg +0 -1
  401. package/src/assets/images/light/Singular-Health-Disc-Mono.svg +0 -9
  402. package/src/assets/logos/3dicom/white-mini.svg +0 -20
  403. package/src/components/demo/DemoModal.vue +0 -44
  404. package/src/components/demo/DemoPatientModal.vue +0 -52
  405. package/src/components/demo/__tests__/DemoModal.spec.ts +0 -26
  406. package/src/components/demo/__tests__/DemoPatientModal.spec.ts +0 -38
  407. package/src/components/demo/__tests__/options.spec.ts +0 -25
  408. package/src/components/demo/licence/DemoLicenceEnableCloudStorageModal.vue +0 -64
  409. package/src/components/demo/licence/DemoLicenceInfoModal.vue +0 -49
  410. package/src/components/demo/licence/DemoLicenceSendToPartyModal.vue +0 -178
  411. package/src/components/demo/licence/DemoLicenceShareToMobileModal.vue +0 -102
  412. package/src/components/demo/licence/__tests__/DemoLicenceSendToPartyModal.spec.ts +0 -36
  413. package/src/components/demo/licence/__tests__/DemoLicenceShareToMobileModal.spec.ts +0 -52
  414. package/src/components/demo/options.ts +0 -170
  415. package/src/components/demo/patient/DemoPatientEnableCloudStorageModal.vue +0 -64
  416. package/src/components/demo/patient/DemoPatientInfoModal.vue +0 -49
  417. package/src/components/demo/patient/DemoPatientSendToPartyModal.vue +0 -177
  418. package/src/components/demo/patient/DemoPatientShareToMobileModal.vue +0 -102
  419. package/src/components/demo/patient/__tests__/DemoPatientEnableCloudStorageModal.spec.ts +0 -38
  420. package/src/components/demo/patient/__tests__/DemoPatientInfoModal.spec.ts +0 -38
  421. package/src/components/demo/patient/__tests__/DemoPatientSendToPartyModal.spec.ts +0 -36
  422. package/src/components/demo/patient/__tests__/DemoPatientShareToMobileModal.spec.ts +0 -52
  423. package/src/components/modal/CloseViewerModal.vue +0 -69
  424. package/src/components/modal/MftpWebGL3DRModal.vue +0 -336
  425. package/src/components/modal/ViewerNavigationDrawerContent.vue +0 -168
  426. package/src/components/modal/ViewerNavigationDrawerFooter.vue +0 -131
  427. package/src/components/modal/ViewerNavigationDrawerHeader.vue +0 -33
  428. package/src/components/modal/WebGL3DR.vue +0 -91
  429. package/src/components/modal/__tests__/CloseViewerModal.spec.ts +0 -70
  430. package/src/components/modal/__tests__/ViewerNavigationDrawerContent.spec.ts +0 -11
  431. package/src/components/modal/__tests__/ViewerNavigationDrawerFooter.spec.ts +0 -46
  432. package/src/components/modal/__tests__/ViewerNavigationDrawerHeader.spec.ts +0 -40
  433. package/src/components/modal/actions/NavigationCubeAction.vue +0 -26
  434. package/src/components/modal/actions/__tests__/NavigationCubeAction.spec.ts +0 -25
  435. package/src/components/modal/buttons/AutoAnnotateBtn.vue +0 -197
  436. package/src/components/modal/buttons/__tests__/AutoAnnotateBtn.spec.ts +0 -28
  437. package/src/components/modal/menus/FileMenu.vue +0 -73
  438. package/src/components/modal/menus/__tests__/FileMenu.spec.ts +0 -110
  439. package/src/components/navigation/mcad/McadGlobalActions.vue +0 -20
  440. package/src/components/navigation/mcad/McadGlobalOpacitySlider.vue +0 -103
  441. package/src/components/navigation/mcad/McadGlobalScanViewBtn.vue +0 -28
  442. package/src/components/navigation/mcad/McadGlobalVisibilityBtn.vue +0 -38
  443. package/src/components/views/AnnotationTreeView.vue +0 -236
  444. package/src/components/views/DisplaySettings.vue +0 -94
  445. package/src/components/views/MarkupTreeView.vue +0 -201
  446. package/src/components/views/McadObjectTreeView.vue +0 -129
  447. package/src/components/views/__tests__/AnnotationTreeView.spec.ts +0 -62
  448. package/src/components/views/__tests__/MarkupTreeView.spec.ts +0 -41
  449. package/src/components/views/__tests__/McadObjectTreeView.spec.ts +0 -47
  450. package/src/components/views/modals/DataOverlayGeneralModal.vue +0 -71
  451. package/src/components/views/modals/DataOverlayMarkupModal.vue +0 -60
  452. package/src/components/views/modals/DataOverlayModal.vue +0 -88
  453. package/src/components/views/shared/MaskIcon.vue +0 -44
  454. package/src/components/views/shared/ObjectColor.vue +0 -31
  455. package/src/components/views/shared/ObjectLabel.vue +0 -30
  456. package/src/components/views/shared/Opacity.vue +0 -65
  457. package/src/components/views/shared/VisibilityBtn.vue +0 -25
  458. package/src/components/views/shared/__tests__/MaskIcon.spec.ts +0 -10
  459. package/src/components/views/shared/__tests__/ObjectColor.spec.ts +0 -10
  460. package/src/components/views/shared/__tests__/ObjectLabel.spec.ts +0 -10
  461. package/src/components/views/shared/__tests__/Opacity.spec.ts +0 -24
  462. package/src/components/views/shared/__tests__/VisibilityBtn.spec.ts +0 -11
  463. package/src/components/views/types/annotation-tree-view-item-child-action.ts +0 -6
  464. package/src/components/views/types/annotation-tree-view-item-child.ts +0 -9
  465. package/src/components/views/types/annotation-tree-view-item.ts +0 -13
  466. package/src/components/views/types/markup-tree-view-item-child.ts +0 -6
  467. package/src/components/views/types/markup-tree-view-item.ts +0 -14
  468. package/src/components/views/types/mcad-object-tree-view-item.ts +0 -13
  469. package/src/composables/__tests__/useAnnotations.spec.ts +0 -35
  470. package/src/composables/__tests__/useIntroJs.spec.ts +0 -51
  471. package/src/composables/__tests__/useMarkups.spec.ts +0 -39
  472. package/src/composables/__tests__/useMcadObjects.spec.ts +0 -36
  473. package/src/composables/__tests__/useNavigationCubeObserver.spec.ts +0 -61
  474. package/src/composables/useAnnotations.ts +0 -37
  475. package/src/composables/useIntroJs.ts +0 -142
  476. package/src/composables/useMarkups.ts +0 -41
  477. package/src/composables/useMcadObjects.ts +0 -32
  478. package/src/composables/useNavigationCubeObserver.ts +0 -114
  479. package/src/composables/useVersion3cr.ts +0 -7
  480. package/src/functions/__tests__/layoutOverlayStyle.spec.ts +0 -325
  481. package/src/functions/asyncTools.ts +0 -3
  482. package/src/functions/layoutOverlayStyle.ts +0 -84
  483. package/src/functions/notification.ts +0 -82
  484. package/src/functions/parseDataOverlayData.ts +0 -10
  485. package/src/functions/parseDataOverlayEvent.ts +0 -17
  486. package/src/functions/parseMcadEvent.ts +0 -10
  487. package/src/functions/rgbaToCss.ts +0 -13
  488. package/src/models/__tests__/loadViewerOptions.spec.ts +0 -72
  489. package/src/models/__tests__/loadViewerPayload.spec.ts +0 -10
  490. package/src/models/callbacks.ts +0 -4
  491. package/src/models/loadViewerOptions.ts +0 -79
  492. package/src/models/loadViewerPayload.ts +0 -17
  493. package/src/plugins/__tests__/usePlugins.spec.ts +0 -12
  494. package/src/plugins/usePlugins.ts +0 -8
  495. package/src/types/action-data.ts +0 -4
  496. package/src/types/action.ts +0 -13
  497. package/src/types/call-to-action.ts +0 -9
  498. package/src/types/colour.ts +0 -6
  499. package/src/types/data-overlay-angle.ts +0 -16
  500. package/src/types/data-overlay-annotation.ts +0 -18
  501. package/src/types/data-overlay-data.ts +0 -15
  502. package/src/types/data-overlay-event.ts +0 -5
  503. package/src/types/data-overlay-info.ts +0 -18
  504. package/src/types/data-overlay-interaction.ts +0 -15
  505. package/src/types/data-overlay-length.ts +0 -16
  506. package/src/types/data-overlay-markup.ts +0 -7
  507. package/src/types/data-overlay-mcad.ts +0 -20
  508. package/src/types/data-overlay-polygon.ts +0 -18
  509. package/src/types/data-overlay.ts +0 -16
  510. package/src/types/demo-type.ts +0 -4
  511. package/src/types/gpt-question.ts +0 -4
  512. package/src/types/gpt-response-payload.ts +0 -6
  513. package/src/types/mcad-object-interaction.ts +0 -15
  514. package/src/types/segment-angle.ts +0 -5
  515. package/src/types/vector2.ts +0 -4
  516. package/src/types/vector3.ts +0 -5
  517. package/test/fakers/data-overlay-info.faker.ts +0 -29
  518. /package/src/assets/logos/3dicom/{white.svg → white/white.svg} +0 -0
  519. /package/src/assets/{images/light/Singular-Health-Trademark-mono.svg → logos/singular-health/black/black.svg} +0 -0
  520. /package/src/assets/{images/dark/Singular-Health-Trademark-mono.svg → logos/singular-health/white/white.svg} +0 -0
@@ -1,176 +1,540 @@
1
- <script setup lang="ts">
2
- export interface Props {
3
- text?: string;
4
- }
5
-
6
- const props = withDefaults(defineProps<Props>(), {
7
- text: 'Loading Online Viewer'
8
- });
9
- </script>
10
-
11
1
  <template>
12
- <div class="w-100 h-100">
13
- <div id="spinner">
14
- <div class="content">
15
- <div class="circle"></div>
16
- <div class="circle"></div>
17
- <div class="circle"></div>
18
- <div class="circle"></div>
2
+ <div class="background bg-background">
3
+ <div class="container ma-auto position-absolute">
4
+ <div class="text-center">
5
+ <svg
6
+ width="142"
7
+ height="185"
8
+ viewBox="0 0 142 185"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ class="left-frame"
12
+ >
13
+ <g filter="url(#filter0_b_16_6496)">
14
+ <path d="M141.213 37.379L0.890625 0.492188V144.351L141.213 184.926V37.379Z" fill="#E1EAFE" />
15
+ </g>
16
+ <mask
17
+ id="mask0_16_6496"
18
+ style="mask-type: alpha"
19
+ maskUnits="userSpaceOnUse"
20
+ x="1"
21
+ y="1"
22
+ width="141"
23
+ height="184"
24
+ >
25
+ <path d="M141.215 37.162L1 1V145.07L141.215 184.926V37.162Z" fill="#E1EAFE" />
26
+ </mask>
27
+ <g mask="url(#mask0_16_6496)" class="left-avatar">
28
+ <path
29
+ d="M112.005 154.878C112.005 154.878 117.75 174.762 116.054 178.831C114.368 182.9 105.897 180.615 105.897 180.615L102.406 156.76L112.005 154.888V154.878Z"
30
+ fill="#FCA397"
31
+ />
32
+ <path
33
+ d="M73.8446 77.7442C73.8446 77.7442 89.2477 79.1364 98.0915 93.6669C106.935 108.197 116.044 156.838 116.044 156.838C116.044 156.838 107.906 161.74 100.611 160.819L93.3166 159.897L61.6085 91.9119L56.9219 79.7149L73.8544 77.7344L73.8446 77.7442Z"
34
+ fill="#F9E6D2"
35
+ />
36
+ <path
37
+ d="M74.1066 79.9904C74.1066 79.9904 86.8036 92.903 94.1178 116.807C101.432 140.71 102.148 152.397 102.148 152.397C102.148 152.397 82.6955 153.358 67.5179 150.731C52.3404 148.103 50.2422 147.809 50.2422 147.809L60.7723 76.7646L74.1066 79.9904Z"
38
+ fill="#7C6053"
39
+ />
40
+ <path
41
+ d="M86.4864 93.9619C86.4864 93.9619 95.4381 134.68 98.8501 153.064C102.262 171.448 108.223 216 109.39 214.49C110.567 212.98 112.724 204.94 111.743 193.263C110.763 181.586 99.2324 114.659 99.2324 114.659L86.4766 93.9619H86.4864Z"
42
+ fill="#F9E6D2"
43
+ />
44
+ <path
45
+ d="M98.8629 146.054C98.8629 146.054 106.04 180.077 109.648 205.725C113.256 231.374 115.286 272.985 112.932 274.534C110.589 276.083 83.0284 277.985 83.0284 277.985C83.0284 277.985 73.7434 281.505 57.7031 281.074C46.065 280.76 36.5938 278.034 36.5938 278.034C36.5938 278.034 38.9469 168.85 50.2516 146.113C57.105 132.338 98.8629 146.054 98.8629 146.054Z"
46
+ fill="#FFBF69"
47
+ />
48
+ <path
49
+ d="M67.1892 47.3306C67.1892 47.3306 59.2082 28.7508 48.6192 37.5063C39.7559 44.8304 52.3254 57.3411 60.0906 54.3016C67.8559 51.2622 67.1892 47.3306 67.1892 47.3306Z"
50
+ fill="black"
51
+ />
52
+ <path
53
+ d="M78.8755 62.7432C78.8755 62.7432 82.4051 59.0958 81.6207 53.2425C81.0913 49.2716 79.3755 47.9382 79.3755 47.9382C79.3755 47.9382 82.2384 42.6437 74.2575 42.6927C66.2765 42.7417 61.4625 46.4969 61.4625 46.4969C61.4625 46.4969 57.8838 44.585 56.0993 48.7716C54.3149 52.9582 55.7464 59.2821 55.7464 59.2821L78.8755 62.7334V62.7432Z"
54
+ fill="black"
55
+ />
56
+ <path
57
+ d="M61.1742 68.7139L61.0859 78.4499C61.0859 78.4499 62.8115 81.2638 68.508 81.7736C72.7436 82.156 74.1065 79.9892 74.1065 79.9892L73.1554 71.4592L62.89 69.106L61.1644 68.7139H61.1742Z"
58
+ fill="#FCA397"
59
+ />
60
+ <path
61
+ d="M61.1953 68.126C61.2149 68.3907 61.313 68.7045 61.4698 69.0672C63.6072 73.9499 71.2548 76.0383 73.6962 76.2834L73.1569 71.4694L61.1953 68.126Z"
62
+ fill="black"
63
+ />
64
+ <path
65
+ d="M75.5126 49.3007C75.5126 49.3007 80.5129 61.5467 78.4343 68.3119C76.3558 75.0771 70.1789 73.8515 66.5021 72.4396C62.8254 71.0376 61.1586 68.7139 61.1586 68.7139C61.1586 68.7139 57.6584 69.8022 55.4229 66.5274C53.1875 63.2527 54.6974 59.576 56.6975 58.7818C58.6977 57.9778 61.0213 59.4681 61.0213 59.4681L59.2663 55.8992C59.2663 55.8992 67.463 38.1921 75.5126 49.3007Z"
66
+ fill="#FCA397"
67
+ />
68
+ <path
69
+ d="M61.0272 59.4692C61.0272 59.4692 66.204 60.6948 70.018 55.0179C73.832 49.341 73.5869 46.9487 73.5869 46.9487L76.9891 53.057C76.9891 53.057 77.9401 48.9292 76.3616 46.2329C74.7928 43.5269 73.0476 44.0171 73.0476 44.0171L61.4586 46.4977L58.125 55.6062L61.0272 59.4594V59.4692Z"
70
+ fill="black"
71
+ />
72
+ <path
73
+ d="M74.5997 64.6665C74.5997 64.6665 74.5213 64.6665 74.4821 64.6469C74.286 64.5783 74.1879 64.3724 74.2566 64.1763C75.0213 61.9605 73.4232 59.4897 73.4036 59.4603C73.2957 59.2936 73.3349 59.0583 73.5114 58.9504C73.6781 58.8426 73.9134 58.8818 74.0213 59.0583C74.0997 59.1759 75.8351 61.8526 74.9527 64.4116C74.9037 64.5685 74.7566 64.6567 74.6095 64.6567L74.5997 64.6665Z"
74
+ fill="black"
75
+ />
76
+ <path
77
+ d="M60.3506 65.1174C60.2526 65.1174 60.1447 65.0781 60.0761 64.9899L56.8896 61.4014C56.7523 61.2543 56.7719 61.019 56.919 60.8818C57.0661 60.7445 57.3014 60.7641 57.4386 60.9112L60.6251 64.4997C60.7624 64.6467 60.7428 64.8821 60.5957 65.0193C60.5271 65.0781 60.4389 65.1076 60.3506 65.1076V65.1174Z"
78
+ fill="black"
79
+ />
80
+ <path
81
+ d="M56.8959 64.0684C56.7096 64.0684 56.5527 63.9311 56.5331 63.7448C56.5135 63.5389 56.6508 63.3624 56.8567 63.333L59.1411 63.0585C59.347 63.0389 59.5235 63.1762 59.5529 63.3821C59.5725 63.588 59.4353 63.7644 59.2294 63.7938L56.9449 64.0684C56.9449 64.0684 56.9155 64.0684 56.9057 64.0684H56.8959Z"
82
+ fill="black"
83
+ />
84
+ <path
85
+ d="M77.2729 54.8213C77.2729 54.8213 77.2239 54.8213 77.1945 54.8213L75.057 54.3703C74.861 54.331 74.7335 54.1349 74.7727 53.9389C74.8119 53.7428 75.008 53.6055 75.2041 53.6545L77.3415 54.1055C77.5376 54.1447 77.6651 54.3408 77.6259 54.5369C77.5866 54.7134 77.4396 54.8311 77.2631 54.8311L77.2729 54.8213Z"
86
+ fill="black"
87
+ />
88
+ <path
89
+ d="M68.2742 55.9288C68.137 55.9288 67.9997 55.8504 67.9409 55.7131C67.8526 55.5268 67.9409 55.3111 68.1174 55.2229L71.7058 53.5561C71.8823 53.4679 72.1078 53.5561 72.1961 53.7326C72.2843 53.9189 72.1961 54.1346 72.0196 54.2228L68.4311 55.8896C68.3821 55.9092 68.3331 55.919 68.2742 55.919V55.9288Z"
90
+ fill="black"
91
+ />
92
+ <path
93
+ d="M77.095 59.7918C76.9284 59.7918 76.7813 59.6839 76.7421 59.5172L76.144 57.3112C76.1146 57.1935 76.144 57.0661 76.2224 56.9778L76.9186 56.1837C77.0558 56.0268 77.2813 56.017 77.4382 56.1444C77.5951 56.2817 77.6049 56.5072 77.4774 56.6641L76.9088 57.3112L77.4578 59.3309C77.5068 59.527 77.399 59.7329 77.2029 59.782C77.1735 59.782 77.1343 59.7918 77.1049 59.7918H77.095Z"
94
+ fill="black"
95
+ />
96
+ <path
97
+ d="M70.9621 60.1751C70.7954 60.1751 70.6483 60.0672 70.6091 59.9006L70.011 57.6945C69.9816 57.5769 70.011 57.4396 70.0993 57.3514L71.0601 56.3023C71.1974 56.1552 71.4327 56.1454 71.5798 56.2827C71.7268 56.4199 71.7366 56.6552 71.5994 56.8023L70.7758 57.7043L71.315 59.7241C71.3641 59.9202 71.2562 60.1261 71.0601 60.1751C71.0307 60.1751 70.9915 60.1849 70.9621 60.1849V60.1751Z"
98
+ fill="black"
99
+ />
100
+ <path
101
+ d="M72.8078 67.8024C71.2881 67.8024 69.6409 66.0473 69.4252 65.8218C69.288 65.6748 69.2978 65.4394 69.4448 65.3022C69.5919 65.1649 69.8272 65.1747 69.9645 65.3218C70.543 65.9493 72.249 67.469 73.2588 66.9592C73.4451 66.8709 73.6608 66.9396 73.7491 67.1258C73.8373 67.3023 73.7687 67.5278 73.5824 67.6161C73.3275 67.7435 73.0627 67.8024 72.798 67.8024H72.8078Z"
102
+ fill="black"
103
+ />
104
+ <path
105
+ d="M78.619 64.8915C78.57 64.8915 78.521 64.8915 78.4622 64.8915C76.5012 64.7935 74.9913 62.911 75.0992 60.6853C75.207 58.4597 76.9032 56.7243 78.8544 56.8223C80.8153 56.9204 82.3252 58.8028 82.2173 61.0285C82.1095 63.1953 80.5113 64.9013 78.619 64.9013V64.8915ZM78.6975 57.4988C77.168 57.4988 75.8738 58.9107 75.7855 60.7147C75.6973 62.558 76.913 64.1268 78.5014 64.2052C80.0799 64.264 81.4428 62.8424 81.531 60.9893C81.6193 59.146 80.4035 57.5773 78.8151 57.4988C78.7759 57.4988 78.7367 57.4988 78.6975 57.4988Z"
106
+ fill="white"
107
+ />
108
+ <path
109
+ d="M69.7514 64.4897C69.6827 64.4897 69.6239 64.4897 69.5553 64.4897C67.3198 64.3818 65.5844 62.4699 65.6923 60.2345C65.7413 59.1462 66.2119 58.1461 67.0159 57.4206C67.8199 56.695 68.869 56.3225 69.9475 56.3715C71.0358 56.4205 72.0359 56.8911 72.7614 57.6951C73.4869 58.4991 73.8693 59.5384 73.8105 60.6267C73.7026 62.8033 71.9084 64.4995 69.7514 64.4995V64.4897ZM69.7416 57.097C68.9082 57.097 68.1238 57.401 67.5061 57.9598C66.8492 58.5579 66.4668 59.3717 66.4178 60.2639C66.3786 61.1561 66.6825 61.9993 67.2806 62.666C67.8787 63.3229 68.6925 63.7151 69.5847 63.7544C71.4182 63.8426 72.9771 62.4209 73.0653 60.5875C73.1046 59.6952 72.8006 58.852 72.2025 58.1853C71.6044 57.5284 70.7907 57.1362 69.8984 57.097C69.8396 57.097 69.7906 57.097 69.7318 57.097H69.7416Z"
110
+ fill="white"
111
+ />
112
+ <path
113
+ d="M75.4888 60.186C75.4103 60.186 75.3319 60.1664 75.2633 60.1075C74.8221 59.7742 73.7926 59.9703 73.469 60.0683C73.2729 60.1271 73.067 60.0193 73.0082 59.8232C72.9494 59.6271 73.0572 59.4212 73.2533 59.3624C73.42 59.3134 74.8809 58.9016 75.7045 59.5193C75.8614 59.6369 75.9006 59.8722 75.7731 60.0389C75.7045 60.1369 75.5868 60.186 75.479 60.186H75.4888Z"
114
+ fill="white"
115
+ />
116
+ <path
117
+ d="M66.0511 60.6153C65.9334 60.6153 65.8256 60.5663 65.7569 60.4585C64.7863 59.1152 60.5409 58.8995 58.982 58.9191C58.7368 58.9191 58.6094 58.7623 58.6094 58.5564C58.6094 58.3505 58.7662 58.1838 58.9721 58.1838C59.58 58.1838 64.9922 58.125 66.3648 60.0271C66.4825 60.1937 66.4433 60.4192 66.2864 60.5369C66.2178 60.5859 66.1491 60.6055 66.0707 60.6055L66.0511 60.6153Z"
118
+ fill="white"
119
+ />
120
+ <path
121
+ d="M60.7699 76.7646C60.7699 76.7646 45.6021 77.1372 29.9245 96.9818C14.2568 116.836 21.2769 133.631 40.8665 141.563C60.4561 149.485 80.6732 150.829 80.6732 150.829L83.5656 123.111L66.1428 118.15C66.1428 118.15 67.6919 86.834 60.7699 76.7646Z"
122
+ fill="#F9E6D2"
123
+ />
124
+ <path
125
+ d="M88.0347 132.994L82.2107 97.6977L57.6698 96.5211C56.856 96.4819 56.2089 97.178 56.2971 97.982L60.2288 133.73L88.0347 132.994Z"
126
+ fill="#C45543"
127
+ />
128
+ <path
129
+ d="M59.0957 96.5801L63.1941 133.867L73.4301 133.593L85.225 133.289L91 133.132L90.7058 131.386L88.6174 118.739L86.1369 103.718L85.3623 99.041C85.2447 98.3351 84.6564 97.8057 83.9406 97.7762L59.0859 96.5801H59.0957Z"
130
+ fill="#DD6B50"
131
+ />
132
+ <path
133
+ d="M96.6786 133.719L91.4331 105.551L69.9022 104.521C69.4904 104.502 69.1669 104.855 69.2257 105.266L73.8142 138.377L96.6884 133.729L96.6786 133.719Z"
134
+ fill="#46467F"
135
+ />
136
+ <path
137
+ d="M72.5176 104.649L74.4785 118.807L77.2042 138.534L80.8025 137.809L85.9892 136.75L100.078 133.877L95.0486 106.895C94.9212 106.199 94.3329 105.689 93.627 105.659L72.5078 104.649H72.5176Z"
138
+ fill="#7772D3"
139
+ />
140
+ <path
141
+ d="M92.4933 124.23C92.4933 124.23 103.563 123.779 101.719 126.906C99.8762 130.034 90.8265 128.524 90.8265 128.524L85.3359 127.436L92.4933 124.23Z"
142
+ fill="#FCA397"
143
+ />
144
+ <path
145
+ d="M80.9735 127.435C80.9735 127.435 86.0327 125.033 88.474 124.523C90.7781 124.033 92.4939 124.229 92.4939 124.229L93.0822 127.808C93.0822 127.808 100.896 129.916 106.338 132.965C111.77 136.014 110.642 138.505 110.642 138.505C110.642 138.505 114.074 140.956 112.486 142.397C110.897 143.838 105.142 142.044 105.142 142.044C105.142 142.044 112.348 145.182 109.23 146.682C106.113 148.182 99.4454 147.358 99.4454 147.358C99.4454 147.358 84.7483 149.192 80.1793 143.897C75.6104 138.603 80.9735 127.445 80.9735 127.445V127.435Z"
146
+ fill="#FCA397"
147
+ />
148
+ <path
149
+ d="M110.324 138.504C110.324 138.504 110.236 138.504 110.187 138.484L99.039 134.67C98.8135 134.592 98.6959 134.347 98.7743 134.131C98.8527 133.905 99.088 133.788 99.3135 133.866L110.461 137.68C110.687 137.759 110.805 138.004 110.726 138.219C110.667 138.396 110.501 138.513 110.324 138.513V138.504Z"
150
+ fill="black"
151
+ />
152
+ <path
153
+ d="M105.894 142.681C105.894 142.681 105.795 142.681 105.756 142.661L98.7656 140.249C98.5401 140.171 98.4224 139.926 98.5009 139.71C98.5793 139.484 98.8244 139.367 99.0401 139.445L106.031 141.857C106.256 141.936 106.374 142.181 106.296 142.396C106.237 142.573 106.07 142.681 105.894 142.681Z"
154
+ fill="black"
155
+ />
156
+ <path
157
+ d="M51.9907 111.257L83.6989 120.062L82.2184 150.897C82.2184 150.897 44.9412 147.966 31.5285 136.416C18.106 124.876 37.7937 110.159 37.7937 110.159L51.9907 111.247V111.257Z"
158
+ fill="#F9E6D2"
159
+ />
160
+ <path
161
+ d="M50.758 114.552C47.4637 114.552 44.5713 113.836 43.3654 112.846C42.7771 112.365 42.7084 111.905 42.7673 111.601C42.8751 111.012 43.4732 110.532 44.6105 110.15C50.4345 108.15 57.8076 112.405 58.1213 112.591C58.239 112.66 58.3174 112.797 58.2978 112.934C58.288 113.071 58.1997 113.199 58.0625 113.248C55.7388 114.17 53.1406 114.552 50.758 114.552ZM47.9833 110.365C46.9146 110.365 45.8459 110.503 44.8459 110.846C43.6693 111.248 43.5124 111.63 43.4928 111.738C43.4536 111.944 43.6889 112.169 43.836 112.277C45.4145 113.562 51.6208 114.679 57.033 112.846C55.4937 112.071 51.7091 110.365 47.9833 110.365Z"
162
+ fill="white"
163
+ />
164
+ <path
165
+ d="M68.5935 142.248C68.5935 142.248 62.9166 221.421 61.5146 221.764C60.1125 222.107 51.2884 223.607 47.0332 223.509C42.778 223.411 38.6208 224.352 36.7775 221.764C34.9343 219.166 35.2774 149.141 43.1113 138.072C50.9452 127.002 68.5837 142.248 68.5837 142.248H68.5935Z"
166
+ fill="#F9E6D2"
167
+ />
168
+ <path
169
+ d="M66.0234 148.435C56.6012 148.249 43.1198 142.651 42.9826 142.592C42.7963 142.513 42.708 142.298 42.7865 142.111C42.8649 141.925 43.0806 141.837 43.2669 141.915C43.4042 141.974 56.758 147.514 66.0332 147.7C66.2391 147.7 66.396 147.877 66.396 148.073C66.396 148.269 66.2293 148.435 66.0234 148.435Z"
170
+ fill="white"
171
+ />
172
+ <path
173
+ d="M69.1172 82.3719C65.7346 82.3719 62.3815 80.7835 62.1658 80.6757C61.9795 80.5875 61.9108 80.3717 61.9991 80.1855C62.0873 79.9992 62.303 79.9305 62.4893 80.0188C62.5678 80.058 70.4114 83.7838 73.8333 79.7541C73.9607 79.5972 74.196 79.5776 74.3529 79.7148C74.5098 79.8423 74.5294 80.0776 74.3921 80.2345C73.0097 81.8522 71.0585 82.3817 69.1172 82.3817V82.3719Z"
174
+ fill="white"
175
+ />
176
+ <path
177
+ d="M83.0275 278.347C83.0275 278.347 82.9785 278.347 82.9491 278.347C82.753 278.298 82.6256 278.102 82.6746 277.906C88.5868 251.502 87.6553 170.477 87.6455 169.663C87.6455 169.516 87.7338 169.379 87.8612 169.32L97.0482 165.231C97.2344 165.153 97.4501 165.231 97.5384 165.418C97.6168 165.604 97.5384 165.82 97.3521 165.908L88.3907 169.898C88.4397 174.85 89.175 252.296 83.4001 278.073C83.3609 278.239 83.2138 278.357 83.0374 278.357L83.0275 278.347Z"
178
+ fill="#303070"
179
+ />
180
+ </g>
181
+ <defs>
182
+ <filter
183
+ id="filter0_b_16_6496"
184
+ x="-36.3285"
185
+ y="-36.727"
186
+ width="214.761"
187
+ height="258.872"
188
+ filterUnits="userSpaceOnUse"
189
+ color-interpolation-filters="sRGB"
190
+ >
191
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
192
+ <feGaussianBlur in="BackgroundImageFix" stdDeviation="18.6096" />
193
+ <feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_16_6496" />
194
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_backgroundBlur_16_6496" result="shape" />
195
+ </filter>
196
+ </defs>
197
+ </svg>
198
+ <svg
199
+ width="177"
200
+ height="195"
201
+ viewBox="0 0 177 195"
202
+ fill="none"
203
+ xmlns="http://www.w3.org/2000/svg"
204
+ class="ml-n7 right-frame"
205
+ >
206
+ <g filter="url(#filter0_b_16_6550)">
207
+ <path d="M176.182 47.4522L35.8594 10.5654V154.424L176.182 194.999V47.4522Z" fill="#C9D7FC" />
208
+ </g>
209
+ <mask
210
+ id="mask0_16_6550"
211
+ style="mask-type: alpha"
212
+ maskUnits="userSpaceOnUse"
213
+ x="0"
214
+ y="0"
215
+ width="177"
216
+ height="195"
217
+ >
218
+ <path
219
+ d="M176.183 47.2352L0.96875 0.0732422V144.144L176.183 195V47.2352Z"
220
+ fill="#A8BCF9"
221
+ fill-opacity="0.7"
222
+ />
223
+ </mask>
224
+ <g mask="url(#mask0_16_6550)" class="right-avatar">
225
+ <path
226
+ d="M34.0158 96.056C34.0158 96.056 31.5533 85.0507 28.5205 84.8226C25.4876 84.5945 27.8645 93.6801 27.8645 93.6801L19.6691 90.5438C19.6691 90.5438 10.3423 87.9398 8.48838 88.7571C6.63444 89.565 9.68632 92.5966 9.68632 92.5966C9.68632 92.5966 3.04064 90.6009 3.97237 93.8416C4.90409 97.0824 9.44863 98.9452 9.44863 98.9452C9.44863 98.9452 2.95507 96.6452 4.41921 100.437C5.20833 102.49 19.4884 111.129 29.1194 110.825C38.7409 110.521 34.8999 103.098 34.8999 103.098L34.0158 96.0655V96.056Z"
227
+ fill="#F2887C"
228
+ />
229
+ <path
230
+ d="M99.3438 51.3413C99.3438 51.3413 110.353 42.807 119.747 48.6232C129.14 54.43 125.518 66.5948 125.518 66.5948C125.518 66.5948 137.183 69.7786 138.866 84.5949C140.549 99.4113 126.459 102.215 126.459 102.215L106.208 90.2211L99.3438 51.3413Z"
231
+ fill="black"
232
+ />
233
+ <path
234
+ d="M131.828 281.95C131.828 281.95 86.6105 271.344 81.3434 237.188C74.8593 195.162 86.3443 174.567 86.3443 174.567L115.884 209.807L124.745 252.394L136.429 260.842L142.932 274.613L131.828 281.96V281.95Z"
235
+ fill="#E57E76"
236
+ />
237
+ <path
238
+ d="M81.341 150.273C81.341 150.273 78.1275 168.406 78.1275 181.93C78.1275 195.454 76.5398 210.289 78.1275 211.61C79.7153 212.931 95.4405 217.36 114.455 216.372C133.47 215.383 139.175 210.945 138.861 209.368C138.547 207.79 136.322 206.469 136.322 206.469C136.322 206.469 137.587 167.38 132.519 156.916C127.452 146.453 105.832 144.172 105.832 144.172H82.5865L81.341 150.273Z"
239
+ fill="#727CD3"
240
+ />
241
+ <path
242
+ d="M113.957 148.544C113.957 148.544 95.8647 152.574 86.7946 148.164C77.7341 143.754 82.8396 118.379 82.8396 118.379C82.8396 118.379 87.7644 83.6334 94.8284 82.8921C101.892 82.1508 108.129 83.0916 108.129 83.0916L116.838 112.62L113.957 148.544Z"
243
+ fill="#727CD3"
244
+ />
245
+ <path
246
+ d="M97.7815 81.9521C97.7815 81.9521 96.5931 82.2943 94.8438 82.9025L106.994 83.6628C106.994 83.6628 108.629 100.656 109.219 120.138C109.637 133.947 113.421 189.877 113.126 195.959L137.351 195.76C138.207 195.76 138.892 195.075 138.911 194.22C139.015 189.734 139.291 176.239 138.873 165.471C137.713 135.648 132.265 94.2405 127.777 90.0683C121.312 84.062 105.283 82.0567 105.283 82.0567L97.7815 81.9521Z"
247
+ fill="#F9E6D2"
248
+ />
249
+ <path
250
+ d="M77.8856 190.646C77.3437 183.243 87.2884 127.922 88.9807 110.33C91.1389 87.9583 94.5996 83.1875 94.8088 82.9023C90.1786 84.48 81.584 87.8633 79.9962 91.5032C78.1043 95.875 75.2235 165.176 74.4914 183.547C74.3773 186.332 75.6513 188.983 77.8856 190.646Z"
251
+ fill="#F9E6D2"
252
+ />
253
+ <path
254
+ d="M110.417 144.239C110.417 144.239 93.2946 147.071 89.91 150.189C86.5253 153.306 94.7302 165.252 96.8409 167.191C98.9515 169.13 113.983 159.293 113.983 159.293L116.16 150.702L110.427 144.239H110.417Z"
255
+ fill="#F2887C"
256
+ />
257
+ <path
258
+ d="M89.9007 150.18C89.9007 150.18 82.7416 160.406 83.93 164.625C85.1089 168.845 93.7321 155.796 93.7321 155.796L89.9007 150.18Z"
259
+ fill="#F2887C"
260
+ />
261
+ <path
262
+ d="M102.513 164.35C102.513 164.35 111.383 163.096 109.634 166.308C107.885 169.52 98.4058 168.96 96.8466 167.182C95.2778 165.405 100.222 160.549 100.222 160.549L102.513 164.341V164.35Z"
263
+ fill="#F2887C"
264
+ />
265
+ <path
266
+ d="M103.652 165.318C103.509 165.318 103.376 165.233 103.319 165.09C103.253 164.91 103.338 164.701 103.528 164.634L105.468 163.893L103.966 162.781C103.804 162.667 103.776 162.439 103.89 162.287C104.004 162.125 104.232 162.097 104.384 162.211L106.419 163.712C106.523 163.788 106.58 163.921 106.561 164.045C106.542 164.178 106.457 164.282 106.333 164.33L103.785 165.299C103.785 165.299 103.7 165.318 103.662 165.318H103.652Z"
267
+ fill="black"
268
+ />
269
+ <path
270
+ d="M90.9295 159.086C90.9295 159.086 90.8439 159.086 90.7964 159.057C90.6157 158.991 90.5206 158.781 90.5967 158.601C90.7583 158.183 92.213 154.467 93.0876 153.725C93.2398 153.602 93.4584 153.621 93.5915 153.763C93.7151 153.916 93.7056 154.134 93.5535 154.267C93.0021 154.742 91.8612 157.337 91.2717 158.857C91.2147 159 91.0816 159.086 90.939 159.086H90.9295Z"
271
+ fill="black"
272
+ />
273
+ <path
274
+ d="M93.652 163.408C93.595 163.408 93.5475 163.399 93.4904 163.37C93.3193 163.285 93.2432 163.066 93.3383 162.895L96.4187 156.822C96.5043 156.651 96.7229 156.575 96.8941 156.67C97.0652 156.756 97.1413 156.974 97.0557 157.145L93.9753 163.218C93.9087 163.342 93.7851 163.418 93.6615 163.418L93.652 163.408Z"
275
+ fill="black"
276
+ />
277
+ <path
278
+ d="M90.4347 68.5602C90.4347 68.5602 87.1832 64.8727 88.2195 59.237C88.9135 55.4165 90.6439 54.2 90.6439 54.2C90.6439 54.2 88.1244 48.9349 95.8444 49.3626C103.564 49.7903 108.061 53.6488 108.061 53.6488C108.061 53.6488 111.617 51.9666 113.148 56.1008C114.679 60.2444 113.005 66.2983 113.005 66.2983L90.4442 68.5697L90.4347 68.5602Z"
279
+ fill="black"
280
+ />
281
+ <path
282
+ d="M107.319 75.166L106.948 84.5937C106.948 84.5937 105.142 87.2358 99.6088 87.4734C95.4826 87.6444 94.2656 85.4871 94.2656 85.4871L95.5872 77.2758L105.636 75.4701L107.319 75.166Z"
283
+ fill="#F2887C"
284
+ />
285
+ <path
286
+ d="M107.321 74.5869C107.283 74.8435 107.178 75.1476 107.007 75.4898C104.716 80.1181 97.205 81.7908 94.8281 81.9048L95.5792 77.267L107.321 74.5869Z"
287
+ fill="black"
288
+ />
289
+ <path
290
+ d="M94.3187 55.6935C94.3187 55.6935 88.909 67.3165 90.6013 73.9597C92.2936 80.6028 98.3403 79.7094 101.963 78.512C105.594 77.324 107.315 75.1571 107.315 75.1571C107.315 75.1571 110.652 76.3736 112.972 73.3039C115.292 70.2342 113.999 66.6133 112.098 65.7389C110.196 64.8741 107.886 66.2046 107.886 66.2046L109.759 62.8308C109.759 62.8308 102.638 45.3059 94.3282 55.684L94.3187 55.6935Z"
291
+ fill="#F2887C"
292
+ />
293
+ <path
294
+ d="M107.885 66.2141C107.885 66.2141 102.817 67.1645 99.3852 61.4908C95.9531 55.817 96.3048 53.5171 96.3048 53.5171L92.7205 59.2764C92.7205 59.2764 91.998 55.2373 93.6428 52.6998C95.2875 50.1528 96.9513 50.7135 96.9513 50.7135L108.056 53.6502L110.87 62.6217L107.885 66.2236V66.2141Z"
295
+ fill="black"
296
+ />
297
+ <path
298
+ d="M94.5165 70.6145C94.3644 70.6145 94.2218 70.51 94.1743 70.3579C93.4422 67.8394 95.2486 65.3209 95.3247 65.2164C95.4388 65.0548 95.6574 65.0263 95.8191 65.1403C95.9807 65.2544 96.0092 65.4825 95.8951 65.6345C95.8761 65.6535 94.2123 67.982 94.8493 70.1583C94.9063 70.3484 94.7922 70.548 94.6116 70.5955C94.5736 70.605 94.5451 70.6145 94.5165 70.6145Z"
299
+ fill="black"
300
+ />
301
+ <path
302
+ d="M108.292 71.7153C108.206 71.7153 108.111 71.6773 108.044 71.6108C107.902 71.4682 107.902 71.2496 108.044 71.1071L111.296 67.7807C111.429 67.6382 111.657 67.6382 111.8 67.7807C111.942 67.9138 111.942 68.1419 111.8 68.2844L108.548 71.6108C108.482 71.6868 108.387 71.7153 108.292 71.7153Z"
303
+ fill="black"
304
+ />
305
+ <path
306
+ d="M111.686 70.861C111.686 70.861 111.648 70.861 111.629 70.861L109.424 70.4903C109.233 70.4618 109.1 70.2717 109.129 70.0817C109.157 69.8916 109.348 69.7585 109.538 69.7871L111.743 70.1577C111.934 70.1862 112.067 70.3763 112.038 70.5664C112.01 70.7374 111.857 70.861 111.686 70.861Z"
307
+ fill="black"
308
+ />
309
+ <path
310
+ d="M92.3869 60.9676C92.2157 60.9676 92.0636 60.844 92.0351 60.6635C92.0066 60.4734 92.1397 60.2833 92.3298 60.2548L94.4215 59.9222C94.6211 59.8842 94.8018 60.0267 94.8303 60.2168C94.8588 60.4069 94.7257 60.5969 94.5355 60.6255L92.4439 60.9581C92.4439 60.9581 92.4059 60.9581 92.3869 60.9581V60.9676Z"
311
+ fill="black"
312
+ />
313
+ <path
314
+ d="M101.036 62.4589C100.979 62.4589 100.922 62.4494 100.874 62.4209L97.4706 60.6437C97.2995 60.5487 97.2329 60.3396 97.3185 60.159C97.4136 59.9879 97.6227 59.9214 97.8034 60.0069L101.207 61.7841C101.378 61.8792 101.445 62.0883 101.359 62.2688C101.293 62.3924 101.169 62.4589 101.045 62.4589H101.036Z"
315
+ fill="black"
316
+ />
317
+ <path
318
+ d="M92.3155 65.786C92.3155 65.786 92.2394 65.786 92.2014 65.767C92.0112 65.71 91.9067 65.5104 91.9732 65.3203L92.6007 63.3911L92.0778 62.7353C91.9542 62.5833 91.9827 62.3552 92.1348 62.2316C92.287 62.1081 92.5151 62.1366 92.6387 62.2886L93.2757 63.0965C93.3518 63.1915 93.3708 63.315 93.3328 63.4291L92.6482 65.5389C92.6007 65.691 92.4581 65.786 92.306 65.786H92.3155Z"
319
+ fill="black"
320
+ />
321
+ <path
322
+ d="M98.2535 66.4429C98.2535 66.4429 98.1774 66.4429 98.1394 66.4239C97.9493 66.3669 97.8447 66.1673 97.9112 65.9772L98.5292 64.0479L97.7686 63.1356C97.645 62.9835 97.664 62.7554 97.8162 62.6319C97.9683 62.5083 98.1965 62.5273 98.3201 62.6794L99.2042 63.7438C99.2803 63.8389 99.3088 63.9624 99.2708 64.086L98.5863 66.1958C98.5387 66.3478 98.3961 66.4429 98.244 66.4429H98.2535Z"
323
+ fill="black"
324
+ />
325
+ <path
326
+ d="M96.1813 73.7416C95.8866 73.7416 95.6014 73.6751 95.3352 73.523C95.164 73.428 95.107 73.2094 95.2021 73.0383C95.2971 72.8672 95.5158 72.8102 95.6869 72.9053C96.6377 73.447 98.368 72.0499 98.948 71.4702C99.0906 71.3276 99.3092 71.3276 99.4519 71.4702C99.5945 71.6128 99.5945 71.8313 99.4519 71.9739C99.2427 72.183 97.6264 73.7416 96.1813 73.7416Z"
327
+ fill="black"
328
+ />
329
+ <path
330
+ d="M124.66 87.835C124.66 87.835 152.117 105.265 151.908 132.16C151.69 159.047 115.286 167.096 115.286 167.096L104.086 139.402L122.787 128.711L124.65 87.8445L124.66 87.835Z"
331
+ fill="#F9E6D2"
332
+ />
333
+ <path
334
+ d="M109.312 136.769C109.208 136.769 109.093 136.722 109.027 136.627C108.903 136.475 108.941 136.247 109.093 136.123C109.569 135.762 120.883 127.171 125.399 125.574C125.589 125.507 125.788 125.602 125.855 125.792C125.922 125.983 125.826 126.182 125.636 126.249C121.215 127.807 109.645 136.608 109.521 136.693C109.455 136.741 109.379 136.769 109.303 136.769H109.312Z"
335
+ fill="#FFBF69"
336
+ />
337
+ <path
338
+ d="M119.742 129.223C119.742 129.223 119.656 129.223 119.609 129.195C119.476 129.138 119.39 129.014 119.381 128.872C119.362 128.178 119.286 122.019 121.244 120.755C121.577 120.546 122.119 120.366 122.86 120.717C123.469 121.012 123.83 121.468 123.944 122.086C124.382 124.576 120.17 128.929 119.989 129.109C119.923 129.176 119.828 129.214 119.732 129.214L119.742 129.223ZM122.052 121.231C121.862 121.231 121.729 121.297 121.634 121.354C120.446 122.124 120.132 125.802 120.094 127.959C121.425 126.458 123.507 123.721 123.241 122.219C123.174 121.839 122.946 121.554 122.556 121.373C122.357 121.278 122.185 121.24 122.043 121.24L122.052 121.231Z"
339
+ fill="#FFBF69"
340
+ />
341
+ <path
342
+ d="M98.7645 87.8629C95.2563 87.8629 94.0013 85.753 93.9442 85.658C93.8492 85.4869 93.9062 85.2684 94.0773 85.1733C94.2485 85.0783 94.4671 85.1353 94.5622 85.3064C94.6098 85.3919 95.8742 87.4637 99.5631 87.1121C103.062 86.789 106.703 84.318 106.732 84.299C106.893 84.1849 107.112 84.2324 107.226 84.394C107.34 84.5556 107.293 84.7742 107.131 84.8882C106.979 84.9927 103.309 87.4827 99.6202 87.8249C99.3159 87.8534 99.0307 87.8629 98.755 87.8629H98.7645Z"
343
+ fill="#FFBF69"
344
+ />
345
+ <path
346
+ d="M111.143 94.725C111.143 94.725 111.067 94.725 111.029 94.7155C110.772 94.6585 110.611 94.4019 110.677 94.1453C111.647 90.0397 111.457 86.8654 110.097 84.6986C108.918 82.8168 107.283 82.4367 107.216 82.4177C106.96 82.3607 106.798 82.1041 106.855 81.857C106.912 81.6004 107.169 81.4388 107.416 81.4958C107.502 81.5148 109.489 81.9615 110.886 84.1759C112.398 86.5613 112.636 89.9922 111.599 94.3734C111.552 94.592 111.352 94.7345 111.134 94.7345L111.143 94.725Z"
347
+ fill="#46467F"
348
+ />
349
+ <path
350
+ d="M122.16 104.179L112.185 105.021C111.259 105.1 110.571 105.914 110.65 106.839L110.836 109.046C110.914 109.972 111.728 110.659 112.655 110.58L122.63 109.738C123.556 109.659 124.244 108.846 124.165 107.92L123.979 105.713C123.901 104.788 123.086 104.101 122.16 104.179Z"
351
+ fill="#46467F"
352
+ />
353
+ <path
354
+ d="M88.0223 105.616C87.7656 105.616 87.547 105.407 87.547 105.141C87.547 104.4 87.4424 86.9794 93.993 82.218C94.2022 82.066 94.5064 82.1135 94.6585 82.3226C94.8106 82.5316 94.7631 82.8358 94.5539 82.9878C88.4026 87.4641 88.4977 104.96 88.5072 105.132C88.5072 105.398 88.2981 105.607 88.0318 105.607L88.0223 105.616Z"
355
+ fill="#46467F"
356
+ />
357
+ <path
358
+ d="M110.223 110.378C110.156 110.378 110.09 110.368 110.033 110.339C109.795 110.235 109.681 109.95 109.785 109.712C109.833 109.608 114.435 98.9635 111.031 95.2856C110.603 94.8294 110.109 94.6298 109.491 94.6868C106.391 94.9624 101.581 101.453 99.9834 103.934C99.8407 104.153 99.546 104.219 99.3273 104.077C99.1087 103.934 99.0421 103.639 99.1847 103.421C99.4319 103.041 105.222 94.1071 109.415 93.7364C110.318 93.6509 111.107 93.9645 111.735 94.6393C115.556 98.7734 110.86 109.627 110.66 110.092C110.584 110.273 110.403 110.378 110.223 110.378Z"
359
+ fill="#46467F"
360
+ />
361
+ <path
362
+ d="M101.716 104.637H98.0457C97.7795 104.637 97.5703 104.428 97.5703 104.162C97.5703 103.896 97.7795 103.687 98.0457 103.687H101.716C101.982 103.687 102.191 103.896 102.191 104.162C102.191 104.428 101.982 104.637 101.716 104.637Z"
363
+ fill="#46467F"
364
+ />
365
+ <path
366
+ d="M110.757 111.936C110.595 111.936 110.443 111.86 110.348 111.708L108.428 108.582C108.295 108.353 108.361 108.068 108.58 107.926C108.799 107.793 109.093 107.859 109.236 108.078L111.156 111.205C111.29 111.433 111.223 111.718 111.004 111.86C110.928 111.908 110.843 111.927 110.757 111.927V111.936Z"
367
+ fill="#46467F"
368
+ />
369
+ <path
370
+ d="M116.813 190.58C116.718 190.58 116.632 190.542 116.566 190.485C116.499 190.418 116.461 190.323 116.461 190.228V170.27C116.461 170.071 116.623 169.919 116.813 169.909L134.23 169.843C134.325 169.843 134.42 169.881 134.487 169.947C134.554 170.014 134.592 170.109 134.592 170.204V189.563C134.592 189.753 134.439 189.915 134.249 189.924L116.832 190.599H116.822L116.813 190.58ZM117.165 170.613V189.848L133.869 189.202V170.546L117.165 170.613Z"
371
+ fill="#FFBF69"
372
+ />
373
+ <path
374
+ d="M26.4531 113.038C26.4531 113.038 36.2267 126.476 54.3954 128.52C72.564 130.554 83.8018 120.613 83.8018 120.613L86.7966 86.4941C86.7966 86.4941 67.9054 95.3041 58.5691 97.2144C49.2329 99.1246 35.0478 93.4224 35.0478 93.4224L26.4531 113.038Z"
375
+ fill="#F9E6D2"
376
+ />
377
+ <path
378
+ d="M59.5747 107.659C59.0993 107.659 58.681 107.488 58.3577 107.146C56.4752 105.188 58.0345 97.9464 58.2151 97.1291C58.2436 96.9865 58.3672 96.8725 58.5098 96.8535C58.6524 96.8345 58.8046 96.9105 58.8711 97.0341C59.0232 97.3192 62.598 103.981 61.3525 106.576C61.0768 107.146 60.611 107.498 59.955 107.621C59.8218 107.64 59.6983 107.659 59.5651 107.659H59.5747ZM58.7095 98.279C58.2341 100.836 57.6732 105.407 58.8711 106.652C59.1183 106.908 59.4225 106.994 59.8314 106.918C60.2497 106.842 60.5444 106.633 60.7155 106.272C61.4952 104.637 59.8218 100.531 58.7095 98.2695V98.279Z"
379
+ fill="#FFBF69"
380
+ />
381
+ <path
382
+ d="M90.8539 106.072C90.8539 107.64 89.5799 108.904 88.0207 108.904C86.4615 108.904 85.1875 107.631 85.1875 106.072C85.1875 104.514 86.4615 103.24 88.0207 103.24C89.5799 103.24 90.8539 104.514 90.8539 106.072Z"
383
+ fill="#46467F"
384
+ />
385
+ <path
386
+ d="M88.0091 107.176C88.6182 107.176 89.112 106.682 89.112 106.073C89.112 105.464 88.6182 104.971 88.0091 104.971C87.4 104.971 86.9062 105.464 86.9062 106.073C86.9062 106.682 87.4 107.176 88.0091 107.176Z"
387
+ fill="#DD6B50"
388
+ />
389
+ </g>
390
+ <defs>
391
+ <filter
392
+ id="filter0_b_16_6550"
393
+ x="-1.35977"
394
+ y="-26.6537"
395
+ width="214.761"
396
+ height="258.872"
397
+ filterUnits="userSpaceOnUse"
398
+ color-interpolation-filters="sRGB"
399
+ >
400
+ <feFlood flood-opacity="0" result="BackgroundImageFix" />
401
+ <feGaussianBlur in="BackgroundImageFix" stdDeviation="18.6096" />
402
+ <feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_16_6550" />
403
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_backgroundBlur_16_6550" result="shape" />
404
+ </filter>
405
+ </defs>
406
+ </svg>
407
+ </div>
408
+ <div class="text-center">
409
+ <div class="rendering mb-2">
410
+ {{ t('texts.renderingImages') }}
411
+ </div>
412
+ <div class="rendering-sub">
413
+ {{ t('texts.gettingThingsReady') }}
414
+ </div>
415
+ <v-progress-circular indeterminate class="mt-4" color="primary" />
19
416
  </div>
20
417
  </div>
21
- <div
22
- class="mx-auto text-center text-white text-h3"
23
- style="position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%)"
24
- v-html="props.text"
25
- ></div>
26
418
  </div>
27
419
  </template>
28
420
 
29
- <style>
30
- :root {
31
- --sp: 2.5s; /* change speed */
32
- }
33
-
34
- #spinner {
35
- margin: 0;
36
- padding: 0;
37
- width: 100%;
38
- height: 100%;
39
- overflow: hidden;
40
- display: flex;
41
- align-items: center;
42
- justify-content: center;
43
- }
421
+ <script setup lang="ts">
422
+ import { useI18n } from 'vue-i18n';
44
423
 
45
- .content {
46
- width: 50vmin;
47
- height: 50vmin;
48
- position: relative;
49
- display: flex;
50
- align-items: center;
51
- justify-content: center;
52
- transform: scale(0.65);
53
- animation: spin-all calc(var(--sp) * 2) linear 1s infinite;
54
- }
424
+ const { t } = useI18n();
425
+ </script>
55
426
 
56
- .circle {
57
- --in: 80%;
58
- --ar: #8799a4;
59
- --dt: #ffffff;
60
- --shadow: drop-shadow(0vmin 0vmin 0.5vmin rgba(0, 0, 0, 0.35)) drop-shadow(0vmin 1vmin 0.5vmin rgba(0, 0, 0, 0.09));
61
- --cross: linear-gradient(0deg, #fff0 calc(50% - 2px), #000 calc(50% - 1px) calc(50% + 1px), #fff0 calc(50% + 2px)),
62
- linear-gradient(90deg, #fff0 calc(50% - 2px), #000 calc(50% - 1px) calc(50% + 1px), #fff0 calc(50% + 2px));
63
- border: 6vmin solid var(--ar);
64
- width: var(--in);
65
- height: var(--in);
66
- border-radius: 100%;
67
- position: absolute;
68
- box-sizing: border-box;
69
- border-top-color: #fff0;
70
- border-left-color: #fff0;
71
- top: 15vmin;
72
- right: -10vmin;
73
- animation: spin-bot var(--sp) ease 0s infinite;
74
- background-image: var(--cross), radial-gradient(var(--dt) 5.5vmin, #fff0 calc(5.5vmin + 1px));
75
- background-repeat: no-repeat;
76
- background-size:
77
- 3vmin 1vmin,
78
- 1vmin 3vmin,
79
- 100% 100%;
80
- background-position: center center;
81
- filter: var(--shadow);
427
+ <style scoped lang="scss">
428
+ @keyframes left-avatar {
429
+ 0%,
430
+ 10% {
431
+ transform: translateX(-160px);
432
+ }
433
+ 60% {
434
+ transform: translateX(16px);
435
+ }
436
+ 70% {
437
+ transform: translateX(-8px);
438
+ }
439
+ 80% {
440
+ transform: translateX(8px);
441
+ }
442
+ 90%,
443
+ 100% {
444
+ transform: translateX(0px);
445
+ }
82
446
  }
83
447
 
84
- .circle:nth-child(2) {
85
- --in: 60%;
86
- top: -2vmin;
87
- animation: spin-top var(--sp) ease 0s infinite;
88
- transform: rotate(-45deg);
89
- background-image: var(--cross), radial-gradient(var(--dt) 1.25vmin, #fff0 calc(1.25vmin + 1px));
90
- right: -4vmin;
91
- filter: hue-rotate(10deg) var(--shadow);
92
- background-size:
93
- 1.4vmin 1vmin,
94
- 1vmin 1.4vmin,
95
- 100% 100%;
448
+ @keyframes right-avatar {
449
+ 0%,
450
+ 10% {
451
+ transform: translateX(160px);
452
+ }
453
+ 60% {
454
+ transform: translateX(-16px);
455
+ }
456
+ 70% {
457
+ transform: translateX(8px);
458
+ }
459
+ 80% {
460
+ transform: translateX(-8px);
461
+ }
462
+ 90% {
463
+ transform: translateX(0px);
464
+ }
96
465
  }
97
466
 
98
- .circle:nth-child(3) {
99
- --in: 100%;
100
- top: -5vmin;
101
- left: -13vmin;
102
- transform: rotate(175deg);
103
- animation: spin-left var(--sp) ease calc(var(--sp) / 4) infinite;
104
- background-image: var(--cross), radial-gradient(var(--dt) 9vmin, #fff0 calc(9vmin + 1px));
105
- filter: hue-rotate(20deg) var(--shadow);
106
- background-size:
107
- 5vmin 1vmin,
108
- 1vmin 5vmin,
109
- 100% 100%;
467
+ .left-avatar {
468
+ animation: left-avatar 1s ease;
110
469
  }
111
470
 
112
- .circle:nth-child(4) {
113
- --in: 60%;
114
- top: 35vmin;
115
- left: -6vmin;
116
- transform: rotate(-280deg);
117
- animation: spin-last var(--sp) ease calc(calc(calc(var(--sp) / 4) + var(--sp)) * -1) infinite;
118
- background-image: var(--cross), radial-gradient(var(--dt) 2.5vmin, #fff0 calc(2.5vmin + 1px));
119
- filter: hue-rotate(30deg) var(--shadow);
120
- background-size:
121
- 2vmin 1vmin,
122
- 1vmin 2vmin,
123
- 100% 100%;
471
+ .right-avatar {
472
+ animation: right-avatar 1s ease;
124
473
  }
125
474
 
126
- @keyframes spin-all {
475
+ @keyframes left-frame {
127
476
  0% {
128
- transform: rotate(0deg) scale(0.65);
477
+ transform: translateY(-20px);
129
478
  }
130
- 100% {
131
- transform: rotate(360deg) scale(0.65);
479
+ 50% {
480
+ transform: translateY(10px);
132
481
  }
133
482
  }
134
483
 
135
- @keyframes spin-top {
484
+ @keyframes right-frame {
136
485
  0% {
137
- transform: rotate(-45deg);
486
+ transform: translateY(20px);
138
487
  }
139
- 100% {
140
- transform: rotate(315deg);
488
+ 50% {
489
+ transform: translateY(-10px);
141
490
  }
142
491
  }
143
492
 
144
- @keyframes spin-bot {
145
- 0%,
146
- 35% {
147
- transform: rotate(0deg);
148
- }
149
- 80%,
150
- 100% {
151
- transform: rotate(-360deg);
152
- }
493
+ .left-frame {
494
+ animation: left-frame 2s ease 0.8s infinite;
495
+ transform: translateY(-20px);
153
496
  }
154
497
 
155
- @keyframes spin-left {
156
- 0%,
157
- 35% {
158
- transform: rotate(175deg);
159
- }
160
- 80%,
161
- 100% {
162
- transform: rotate(535deg);
163
- }
498
+ .right-frame {
499
+ animation: right-frame 2s ease 0.8s infinite;
500
+ transform: translateY(20px);
164
501
  }
165
502
 
166
- @keyframes spin-last {
167
- 0%,
168
- 10% {
169
- transform: rotate(-280deg);
170
- }
171
- 90%,
172
- 100% {
173
- transform: rotate(-640deg);
174
- }
503
+ .background {
504
+ height: 100vh;
505
+ left: 0;
506
+ position: fixed;
507
+ top: 0;
508
+ width: 100vw;
509
+ z-index: 10000;
510
+ }
511
+
512
+ .container {
513
+ left: 50%;
514
+ top: 50%;
515
+ transform: translate(-50%, -50%);
516
+ }
517
+
518
+ .rendering {
519
+ margin-top: 30px;
520
+ color: rgb(var(--v-theme-text));
521
+ text-align: center;
522
+
523
+ font-size: 40px;
524
+ font-style: normal;
525
+ font-weight: 700;
526
+ line-height: 48px; /* 120% */
527
+ letter-spacing: -0.8px;
528
+ }
529
+
530
+ .rendering-sub {
531
+ color: rgb(var(--v-theme-subtext));
532
+ text-align: center;
533
+
534
+ /* Body/Base/Regular */
535
+ font-size: 16px;
536
+ font-style: normal;
537
+ font-weight: 400;
538
+ line-height: 24px; /* 150% */
175
539
  }
176
540
  </style>