@godscene/visualizer 1.7.11

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 (221) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/es/component/blackboard/highlights.mjs +47 -0
  4. package/dist/es/component/blackboard/index.css +118 -0
  5. package/dist/es/component/blackboard/index.mjs +122 -0
  6. package/dist/es/component/config-selector/index.mjs +251 -0
  7. package/dist/es/component/context-preview/index.mjs +37 -0
  8. package/dist/es/component/env-config/index.mjs +237 -0
  9. package/dist/es/component/env-config-reminder/index.css +30 -0
  10. package/dist/es/component/env-config-reminder/index.mjs +27 -0
  11. package/dist/es/component/form-field/index.mjs +158 -0
  12. package/dist/es/component/history-selector/index.css +237 -0
  13. package/dist/es/component/history-selector/index.mjs +197 -0
  14. package/dist/es/component/index.mjs +1 -0
  15. package/dist/es/component/logo/index.css +19 -0
  16. package/dist/es/component/logo/index.mjs +20 -0
  17. package/dist/es/component/logo/logo.mjs +2 -0
  18. package/dist/es/component/misc/index.mjs +96 -0
  19. package/dist/es/component/nav-actions/index.mjs +14 -0
  20. package/dist/es/component/nav-actions/style.css +35 -0
  21. package/dist/es/component/player/index.css +296 -0
  22. package/dist/es/component/player/index.mjs +702 -0
  23. package/dist/es/component/player/playback-controls.mjs +4 -0
  24. package/dist/es/component/player/report-download.mjs +61 -0
  25. package/dist/es/component/player/scenes/StepScene.mjs +194 -0
  26. package/dist/es/component/player/scenes/derive-frame-state.mjs +229 -0
  27. package/dist/es/component/player/scenes/export-branded-video.mjs +360 -0
  28. package/dist/es/component/player/scenes/frame-calculator.mjs +149 -0
  29. package/dist/es/component/player/scenes/playback-frame.mjs +6 -0
  30. package/dist/es/component/player/scenes/playback-layout.mjs +12 -0
  31. package/dist/es/component/player/scenes/pointer-layout.mjs +36 -0
  32. package/dist/es/component/player/use-frame-player.mjs +87 -0
  33. package/dist/es/component/playground/index.css +930 -0
  34. package/dist/es/component/playground/playground-demo-ui-context.json +290 -0
  35. package/dist/es/component/playground-result/index.css +92 -0
  36. package/dist/es/component/playground-result/index.mjs +232 -0
  37. package/dist/es/component/prompt-input/index.css +832 -0
  38. package/dist/es/component/prompt-input/index.mjs +959 -0
  39. package/dist/es/component/screenshot-viewer/index.css +237 -0
  40. package/dist/es/component/screenshot-viewer/index.mjs +319 -0
  41. package/dist/es/component/service-mode-control/index.mjs +107 -0
  42. package/dist/es/component/shiny-text/index.css +107 -0
  43. package/dist/es/component/shiny-text/index.mjs +15 -0
  44. package/dist/es/component/universal-playground/empty-state.mjs +5 -0
  45. package/dist/es/component/universal-playground/index.css +619 -0
  46. package/dist/es/component/universal-playground/index.mjs +558 -0
  47. package/dist/es/component/universal-playground/providers/context-provider.mjs +90 -0
  48. package/dist/es/component/universal-playground/providers/indexeddb-storage-provider.mjs +280 -0
  49. package/dist/es/component/universal-playground/providers/storage-provider.mjs +279 -0
  50. package/dist/es/component/universal-playground/universal-playground-electron.mjs +668 -0
  51. package/dist/es/hooks/useMinimalTypeGate.mjs +47 -0
  52. package/dist/es/hooks/usePlaygroundExecution.mjs +435 -0
  53. package/dist/es/hooks/usePlaygroundState.mjs +278 -0
  54. package/dist/es/hooks/useSafeOverrideAIConfig.mjs +20 -0
  55. package/dist/es/hooks/useServerValid.mjs +55 -0
  56. package/dist/es/hooks/useTheme.mjs +25 -0
  57. package/dist/es/icons/action-chevron.mjs +61 -0
  58. package/dist/es/icons/avatar.mjs +70 -0
  59. package/dist/es/icons/close.mjs +61 -0
  60. package/dist/es/icons/global-perspective.mjs +58 -0
  61. package/dist/es/icons/history.mjs +72 -0
  62. package/dist/es/icons/magnifying-glass.mjs +81 -0
  63. package/dist/es/icons/player-setting.mjs +68 -0
  64. package/dist/es/icons/prompt-history.mjs +70 -0
  65. package/dist/es/icons/setting.mjs +62 -0
  66. package/dist/es/icons/show-marker.mjs +58 -0
  67. package/dist/es/index.mjs +26 -0
  68. package/dist/es/static/image/logo.png +0 -0
  69. package/dist/es/store/history.mjs +128 -0
  70. package/dist/es/store/store.mjs +277 -0
  71. package/dist/es/types.mjs +73 -0
  72. package/dist/es/utils/action-label.mjs +15 -0
  73. package/dist/es/utils/color.mjs +35 -0
  74. package/dist/es/utils/constants.mjs +99 -0
  75. package/dist/es/utils/device-capabilities.mjs +13 -0
  76. package/dist/es/utils/empty-state-scroll.mjs +8 -0
  77. package/dist/es/utils/highlight-element.mjs +62 -0
  78. package/dist/es/utils/index.mjs +13 -0
  79. package/dist/es/utils/playground-utils.mjs +43 -0
  80. package/dist/es/utils/progress-action-icon.mjs +30 -0
  81. package/dist/es/utils/prompt-input-utils.mjs +49 -0
  82. package/dist/es/utils/prompt-placeholder.mjs +19 -0
  83. package/dist/es/utils/replay-scripts.mjs +428 -0
  84. package/dist/lib/component/blackboard/highlights.js +84 -0
  85. package/dist/lib/component/blackboard/index.css +118 -0
  86. package/dist/lib/component/blackboard/index.js +169 -0
  87. package/dist/lib/component/config-selector/index.js +295 -0
  88. package/dist/lib/component/context-preview/index.js +82 -0
  89. package/dist/lib/component/env-config/index.js +271 -0
  90. package/dist/lib/component/env-config-reminder/index.css +30 -0
  91. package/dist/lib/component/env-config-reminder/index.js +61 -0
  92. package/dist/lib/component/form-field/index.js +204 -0
  93. package/dist/lib/component/history-selector/index.css +237 -0
  94. package/dist/lib/component/history-selector/index.js +243 -0
  95. package/dist/lib/component/index.js +58 -0
  96. package/dist/lib/component/logo/index.css +19 -0
  97. package/dist/lib/component/logo/index.js +67 -0
  98. package/dist/lib/component/logo/logo.js +24 -0
  99. package/dist/lib/component/misc/index.js +152 -0
  100. package/dist/lib/component/nav-actions/index.js +48 -0
  101. package/dist/lib/component/nav-actions/style.css +35 -0
  102. package/dist/lib/component/player/index.css +296 -0
  103. package/dist/lib/component/player/index.js +747 -0
  104. package/dist/lib/component/player/playback-controls.js +38 -0
  105. package/dist/lib/component/player/report-download.js +98 -0
  106. package/dist/lib/component/player/scenes/StepScene.js +228 -0
  107. package/dist/lib/component/player/scenes/derive-frame-state.js +266 -0
  108. package/dist/lib/component/player/scenes/export-branded-video.js +403 -0
  109. package/dist/lib/component/player/scenes/frame-calculator.js +186 -0
  110. package/dist/lib/component/player/scenes/playback-frame.js +40 -0
  111. package/dist/lib/component/player/scenes/playback-layout.js +46 -0
  112. package/dist/lib/component/player/scenes/pointer-layout.js +88 -0
  113. package/dist/lib/component/player/use-frame-player.js +121 -0
  114. package/dist/lib/component/playground/index.css +930 -0
  115. package/dist/lib/component/playground/playground-demo-ui-context.json +290 -0
  116. package/dist/lib/component/playground-result/index.css +92 -0
  117. package/dist/lib/component/playground-result/index.js +276 -0
  118. package/dist/lib/component/prompt-input/index.css +832 -0
  119. package/dist/lib/component/prompt-input/index.js +1005 -0
  120. package/dist/lib/component/screenshot-viewer/index.css +237 -0
  121. package/dist/lib/component/screenshot-viewer/index.js +353 -0
  122. package/dist/lib/component/service-mode-control/index.js +141 -0
  123. package/dist/lib/component/shiny-text/index.css +107 -0
  124. package/dist/lib/component/shiny-text/index.js +49 -0
  125. package/dist/lib/component/universal-playground/empty-state.js +39 -0
  126. package/dist/lib/component/universal-playground/index.css +619 -0
  127. package/dist/lib/component/universal-playground/index.js +607 -0
  128. package/dist/lib/component/universal-playground/providers/context-provider.js +133 -0
  129. package/dist/lib/component/universal-playground/providers/indexeddb-storage-provider.js +320 -0
  130. package/dist/lib/component/universal-playground/providers/storage-provider.js +337 -0
  131. package/dist/lib/component/universal-playground/universal-playground-electron.js +717 -0
  132. package/dist/lib/hooks/useMinimalTypeGate.js +81 -0
  133. package/dist/lib/hooks/usePlaygroundExecution.js +478 -0
  134. package/dist/lib/hooks/usePlaygroundState.js +312 -0
  135. package/dist/lib/hooks/useSafeOverrideAIConfig.js +57 -0
  136. package/dist/lib/hooks/useServerValid.js +89 -0
  137. package/dist/lib/hooks/useTheme.js +59 -0
  138. package/dist/lib/icons/action-chevron.js +95 -0
  139. package/dist/lib/icons/avatar.js +104 -0
  140. package/dist/lib/icons/close.js +95 -0
  141. package/dist/lib/icons/global-perspective.js +92 -0
  142. package/dist/lib/icons/history.js +106 -0
  143. package/dist/lib/icons/magnifying-glass.js +115 -0
  144. package/dist/lib/icons/player-setting.js +102 -0
  145. package/dist/lib/icons/prompt-history.js +104 -0
  146. package/dist/lib/icons/setting.js +96 -0
  147. package/dist/lib/icons/show-marker.js +92 -0
  148. package/dist/lib/index.js +204 -0
  149. package/dist/lib/static/image/logo.png +0 -0
  150. package/dist/lib/store/history.js +135 -0
  151. package/dist/lib/store/store.js +287 -0
  152. package/dist/lib/types.js +119 -0
  153. package/dist/lib/utils/action-label.js +52 -0
  154. package/dist/lib/utils/color.js +75 -0
  155. package/dist/lib/utils/constants.js +172 -0
  156. package/dist/lib/utils/device-capabilities.js +50 -0
  157. package/dist/lib/utils/empty-state-scroll.js +42 -0
  158. package/dist/lib/utils/highlight-element.js +99 -0
  159. package/dist/lib/utils/index.js +69 -0
  160. package/dist/lib/utils/playground-utils.js +86 -0
  161. package/dist/lib/utils/progress-action-icon.js +67 -0
  162. package/dist/lib/utils/prompt-input-utils.js +89 -0
  163. package/dist/lib/utils/prompt-placeholder.js +53 -0
  164. package/dist/lib/utils/replay-scripts.js +474 -0
  165. package/dist/types/component/blackboard/highlights.d.ts +11 -0
  166. package/dist/types/component/blackboard/index.d.ts +10 -0
  167. package/dist/types/component/config-selector/index.d.ts +15 -0
  168. package/dist/types/component/context-preview/index.d.ts +9 -0
  169. package/dist/types/component/env-config/index.d.ts +8 -0
  170. package/dist/types/component/env-config-reminder/index.d.ts +6 -0
  171. package/dist/types/component/form-field/index.d.ts +17 -0
  172. package/dist/types/component/history-selector/index.d.ts +13 -0
  173. package/dist/types/component/index.d.ts +1 -0
  174. package/dist/types/component/logo/index.d.ts +5 -0
  175. package/dist/types/component/misc/index.d.ts +6 -0
  176. package/dist/types/component/nav-actions/index.d.ts +12 -0
  177. package/dist/types/component/player/index.d.ts +15 -0
  178. package/dist/types/component/player/playback-controls.d.ts +1 -0
  179. package/dist/types/component/player/report-download.d.ts +32 -0
  180. package/dist/types/component/player/scenes/StepScene.d.ts +9 -0
  181. package/dist/types/component/player/scenes/derive-frame-state.d.ts +40 -0
  182. package/dist/types/component/player/scenes/export-branded-video.d.ts +33 -0
  183. package/dist/types/component/player/scenes/frame-calculator.d.ts +40 -0
  184. package/dist/types/component/player/scenes/playback-frame.d.ts +3 -0
  185. package/dist/types/component/player/scenes/playback-layout.d.ts +7 -0
  186. package/dist/types/component/player/scenes/pointer-layout.d.ts +20 -0
  187. package/dist/types/component/player/use-frame-player.d.ts +17 -0
  188. package/dist/types/component/playground-result/index.d.ts +22 -0
  189. package/dist/types/component/prompt-input/index.d.ts +23 -0
  190. package/dist/types/component/screenshot-viewer/index.d.ts +23 -0
  191. package/dist/types/component/service-mode-control/index.d.ts +6 -0
  192. package/dist/types/component/shiny-text/index.d.ts +12 -0
  193. package/dist/types/component/universal-playground/empty-state.d.ts +3 -0
  194. package/dist/types/component/universal-playground/index.d.ts +4 -0
  195. package/dist/types/component/universal-playground/providers/context-provider.d.ts +37 -0
  196. package/dist/types/component/universal-playground/providers/indexeddb-storage-provider.d.ts +71 -0
  197. package/dist/types/component/universal-playground/providers/storage-provider.d.ts +58 -0
  198. package/dist/types/component/universal-playground/universal-playground-electron.d.ts +4 -0
  199. package/dist/types/hooks/useMinimalTypeGate.d.ts +72 -0
  200. package/dist/types/hooks/usePlaygroundExecution.d.ts +40 -0
  201. package/dist/types/hooks/usePlaygroundState.d.ts +26 -0
  202. package/dist/types/hooks/useSafeOverrideAIConfig.d.ts +16 -0
  203. package/dist/types/hooks/useServerValid.d.ts +1 -0
  204. package/dist/types/hooks/useTheme.d.ts +7 -0
  205. package/dist/types/index.d.ts +29 -0
  206. package/dist/types/store/history.d.ts +16 -0
  207. package/dist/types/store/store.d.ts +57 -0
  208. package/dist/types/types.d.ts +278 -0
  209. package/dist/types/utils/action-label.d.ts +11 -0
  210. package/dist/types/utils/color.d.ts +4 -0
  211. package/dist/types/utils/constants.d.ts +80 -0
  212. package/dist/types/utils/device-capabilities.d.ts +9 -0
  213. package/dist/types/utils/empty-state-scroll.d.ts +11 -0
  214. package/dist/types/utils/highlight-element.d.ts +3 -0
  215. package/dist/types/utils/index.d.ts +5 -0
  216. package/dist/types/utils/playground-utils.d.ts +11 -0
  217. package/dist/types/utils/progress-action-icon.d.ts +12 -0
  218. package/dist/types/utils/prompt-input-utils.d.ts +24 -0
  219. package/dist/types/utils/prompt-placeholder.d.ts +1 -0
  220. package/dist/types/utils/replay-scripts.d.ts +50 -0
  221. package/package.json +82 -0
@@ -0,0 +1,118 @@
1
+ .blackboard .footer {
2
+ color: #aaa;
3
+ }
4
+
5
+ .blackboard ul {
6
+ padding-left: 0;
7
+ }
8
+
9
+ .blackboard li {
10
+ list-style: none;
11
+ }
12
+
13
+ .blackboard .bottom-tip {
14
+ height: 30px;
15
+ }
16
+
17
+ .blackboard .bottom-tip-item {
18
+ color: #aaa;
19
+ text-overflow: ellipsis;
20
+ word-wrap: break-word;
21
+ max-width: 500px;
22
+ }
23
+
24
+ .blackboard-main-content {
25
+ position: relative;
26
+ overflow: hidden;
27
+ }
28
+
29
+ .blackboard-screenshot {
30
+ box-sizing: border-box;
31
+ border: 1px solid #888;
32
+ width: 100%;
33
+ display: block;
34
+ }
35
+
36
+ .blackboard-overlay {
37
+ pointer-events: none;
38
+ width: 100%;
39
+ position: absolute;
40
+ top: 0;
41
+ left: 0;
42
+ }
43
+
44
+ .blackboard-rect {
45
+ box-sizing: content-box;
46
+ pointer-events: none;
47
+ z-index: 1;
48
+ position: absolute;
49
+ }
50
+
51
+ .blackboard-rect-label {
52
+ white-space: nowrap;
53
+ padding: 1px 4px;
54
+ font-size: 14px;
55
+ font-weight: 600;
56
+ line-height: 1.4;
57
+ position: absolute;
58
+ bottom: 100%;
59
+ left: 0;
60
+ }
61
+
62
+ .blackboard-rect-search {
63
+ border: calc(1px * var(--ui-scale, 1)) solid #028391;
64
+ background: rgba(2, 131, 145, .15);
65
+ }
66
+
67
+ .blackboard-rect-search .blackboard-rect-label {
68
+ color: #028391;
69
+ }
70
+
71
+ .blackboard-rect-highlight {
72
+ border: calc(1px * var(--ui-scale, 1)) solid #fd5907;
73
+ background: rgba(253, 89, 7, .15);
74
+ animation: 1.2s ease-in-out infinite blackboard-pulse;
75
+ }
76
+
77
+ .blackboard-rect-highlight .blackboard-rect-label {
78
+ color: #000;
79
+ }
80
+
81
+ .blackboard-point {
82
+ width: calc(20px * var(--ui-scale, 1));
83
+ height: calc(20px * var(--ui-scale, 1));
84
+ margin-left: calc(-10px * var(--ui-scale, 1));
85
+ margin-top: calc(-10px * var(--ui-scale, 1));
86
+ border: calc(2px * var(--ui-scale, 1)) solid #fd5907;
87
+ box-shadow: 0 0 calc(6px * var(--ui-scale, 1)) rgba(253, 89, 7, .5);
88
+ pointer-events: none;
89
+ z-index: 2;
90
+ background: rgba(253, 89, 7, .4);
91
+ border-radius: 50%;
92
+ animation: 1.2s ease-in-out infinite blackboard-pulse;
93
+ position: absolute;
94
+ }
95
+
96
+ @keyframes blackboard-pulse {
97
+ 0%, 100% {
98
+ opacity: .4;
99
+ }
100
+
101
+ 50% {
102
+ opacity: 1;
103
+ box-shadow: 0 0 12px rgba(253, 89, 7, .5);
104
+ }
105
+ }
106
+
107
+ [data-theme="dark"] .blackboard .footer, [data-theme="dark"] .blackboard .bottom-tip-item {
108
+ color: rgba(255, 255, 255, .45);
109
+ }
110
+
111
+ [data-theme="dark"] .blackboard-screenshot {
112
+ border-color: rgba(255, 255, 255, .12);
113
+ }
114
+
115
+ [data-theme="dark"] .blackboard-rect-highlight .blackboard-rect-label {
116
+ color: #fff;
117
+ }
118
+
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ "use client";
3
+ var __webpack_require__ = {};
4
+ (()=>{
5
+ __webpack_require__.n = (module)=>{
6
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
7
+ __webpack_require__.d(getter, {
8
+ a: getter
9
+ });
10
+ return getter;
11
+ };
12
+ })();
13
+ (()=>{
14
+ __webpack_require__.d = (exports1, definition)=>{
15
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ get: definition[key]
18
+ });
19
+ };
20
+ })();
21
+ (()=>{
22
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.r = (exports1)=>{
26
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
27
+ value: 'Module'
28
+ });
29
+ Object.defineProperty(exports1, '__esModule', {
30
+ value: true
31
+ });
32
+ };
33
+ })();
34
+ var __webpack_exports__ = {};
35
+ __webpack_require__.r(__webpack_exports__);
36
+ __webpack_require__.d(__webpack_exports__, {
37
+ Blackboard: ()=>Blackboard,
38
+ default: ()=>blackboard
39
+ });
40
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
41
+ const external_react_namespaceObject = require("react");
42
+ var external_react_default = /*#__PURE__*/ __webpack_require__.n(external_react_namespaceObject);
43
+ const highlight_element_js_namespaceObject = require("../../utils/highlight-element.js");
44
+ const external_highlights_js_namespaceObject = require("./highlights.js");
45
+ require("./index.css");
46
+ const Blackboard = (props)=>{
47
+ var _props_uiContext;
48
+ const highlightElements = props.highlightElements || [];
49
+ const highlightRect = props.highlightRect;
50
+ if (!(null == (_props_uiContext = props.uiContext) ? void 0 : _props_uiContext.shotSize)) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
51
+ className: "blackboard",
52
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
53
+ className: "blackboard-main-content",
54
+ style: {
55
+ padding: '20px'
56
+ },
57
+ children: "No UI context available"
58
+ })
59
+ });
60
+ const context = props.uiContext;
61
+ const { shotSize, screenshot } = context;
62
+ const screenWidth = shotSize.width;
63
+ const screenHeight = shotSize.height;
64
+ const highlightOverlays = external_react_default().useMemo(()=>(0, external_highlights_js_namespaceObject.normalizeBlackboardHighlights)(highlightElements), [
65
+ highlightElements
66
+ ]);
67
+ const screenshotBase64 = external_react_default().useMemo(()=>{
68
+ if (!screenshot) return '';
69
+ if ('object' == typeof screenshot && 'base64' in screenshot) return screenshot.base64;
70
+ if ('string' == typeof screenshot) return screenshot;
71
+ return '';
72
+ }, [
73
+ screenshot
74
+ ]);
75
+ const highlightBoxes = highlightOverlays.map((highlight)=>(0, highlight_element_js_namespaceObject.getCenterHighlightBox)(highlight));
76
+ let bottomTipA = null;
77
+ if (1 === highlightBoxes.length) bottomTipA = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
78
+ className: "bottom-tip",
79
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
80
+ className: "bottom-tip-item",
81
+ children: [
82
+ "Element: ",
83
+ JSON.stringify(highlightBoxes[0])
84
+ ]
85
+ })
86
+ });
87
+ else if (highlightBoxes.length > 1) bottomTipA = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
88
+ className: "bottom-tip",
89
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
90
+ className: "bottom-tip-item",
91
+ children: [
92
+ "Element: ",
93
+ JSON.stringify(highlightBoxes)
94
+ ]
95
+ })
96
+ });
97
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
98
+ className: "blackboard",
99
+ children: [
100
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
101
+ className: "blackboard-main-content",
102
+ style: {
103
+ width: 'fit-content',
104
+ maxWidth: '100%',
105
+ position: 'relative'
106
+ },
107
+ children: [
108
+ screenshotBase64 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("img", {
109
+ src: screenshotBase64,
110
+ alt: "screenshot",
111
+ className: "blackboard-screenshot",
112
+ draggable: false
113
+ }),
114
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
115
+ className: "blackboard-overlay",
116
+ style: {
117
+ aspectRatio: `${screenWidth}/${screenHeight}`,
118
+ '--ui-scale': Math.max(1, Math.sqrt(screenWidth / 1920))
119
+ },
120
+ children: [
121
+ highlightRect && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
122
+ className: "blackboard-rect blackboard-rect-search",
123
+ style: {
124
+ left: `${highlightRect.left / screenWidth * 100}%`,
125
+ top: `${highlightRect.top / screenHeight * 100}%`,
126
+ width: `${highlightRect.width / screenWidth * 100}%`,
127
+ height: `${highlightRect.height / screenHeight * 100}%`
128
+ },
129
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
130
+ className: "blackboard-rect-label",
131
+ children: "Search Area"
132
+ })
133
+ }),
134
+ highlightOverlays.map((el)=>{
135
+ const highlightBox = (0, highlight_element_js_namespaceObject.getCenterHighlightBox)(el);
136
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
137
+ className: "blackboard-rect blackboard-rect-highlight",
138
+ style: {
139
+ left: `${highlightBox.left / screenWidth * 100}%`,
140
+ top: `${highlightBox.top / screenHeight * 100}%`,
141
+ width: `${highlightBox.width / screenWidth * 100}%`,
142
+ height: `${highlightBox.height / screenHeight * 100}%`
143
+ }
144
+ }, `${el.key}-rect`);
145
+ })
146
+ ]
147
+ })
148
+ ]
149
+ }),
150
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
151
+ className: "bottom-tip",
152
+ style: {
153
+ display: props.hideController ? 'none' : 'block'
154
+ },
155
+ children: bottomTipA
156
+ })
157
+ ]
158
+ });
159
+ };
160
+ const blackboard = Blackboard;
161
+ exports.Blackboard = __webpack_exports__.Blackboard;
162
+ exports["default"] = __webpack_exports__["default"];
163
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
164
+ "Blackboard",
165
+ "default"
166
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
167
+ Object.defineProperty(exports, '__esModule', {
168
+ value: true
169
+ });
@@ -0,0 +1,295 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ ConfigSelector: ()=>ConfigSelector
37
+ });
38
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
39
+ const external_antd_namespaceObject = require("antd");
40
+ const setting_js_namespaceObject = require("../../icons/setting.js");
41
+ var setting_js_default = /*#__PURE__*/ __webpack_require__.n(setting_js_namespaceObject);
42
+ const store_js_namespaceObject = require("../../store/store.js");
43
+ const constants_js_namespaceObject = require("../../utils/constants.js");
44
+ const device_capabilities_js_namespaceObject = require("../../utils/device-capabilities.js");
45
+ const ConfigSelector = ({ showDeepLocateOption = false, showDeepThinkOption = false, enableTracking = false, showDataExtractionOptions = false, hideDomAndScreenshotOptions = false, deviceType, trigger, popupPlacement = 'bottomRight' })=>{
46
+ const forceSameTabNavigation = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.forceSameTabNavigation);
47
+ const setForceSameTabNavigation = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setForceSameTabNavigation);
48
+ const deepLocate = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.deepLocate);
49
+ const setDeepLocate = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setDeepLocate);
50
+ const deepThink = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.deepThink);
51
+ const setDeepThink = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setDeepThink);
52
+ const screenshotIncluded = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.screenshotIncluded);
53
+ const setScreenshotIncluded = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setScreenshotIncluded);
54
+ const domIncluded = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.domIncluded);
55
+ const setDomIncluded = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setDomIncluded);
56
+ const imeStrategy = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.imeStrategy);
57
+ const setImeStrategy = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setImeStrategy);
58
+ const autoDismissKeyboard = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.autoDismissKeyboard);
59
+ const setAutoDismissKeyboard = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setAutoDismissKeyboard);
60
+ const keyboardDismissStrategy = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.keyboardDismissStrategy);
61
+ const setKeyboardDismissStrategy = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setKeyboardDismissStrategy);
62
+ const alwaysRefreshScreenInfo = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.alwaysRefreshScreenInfo);
63
+ const setAlwaysRefreshScreenInfo = (0, store_js_namespaceObject.useEnvConfig)((state)=>state.setAlwaysRefreshScreenInfo);
64
+ const deviceCapabilities = (0, device_capabilities_js_namespaceObject.getDeviceCapabilities)(deviceType);
65
+ const hasDeviceOptions = (0, device_capabilities_js_namespaceObject.hasDeviceSpecificConfig)(deviceType);
66
+ if (!enableTracking && !showDeepLocateOption && !showDeepThinkOption && !showDataExtractionOptions && !hasDeviceOptions) return null;
67
+ const configItems = buildConfigItems();
68
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
69
+ className: "selector-trigger",
70
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Dropdown, {
71
+ getPopupContainer: (triggerNode)=>triggerNode.ownerDocument.body,
72
+ menu: {
73
+ items: configItems
74
+ },
75
+ overlayClassName: "config-selector-dropdown",
76
+ overlayStyle: {
77
+ zIndex: 10010
78
+ },
79
+ placement: popupPlacement,
80
+ trigger: [
81
+ 'click'
82
+ ],
83
+ children: null != trigger ? trigger : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(setting_js_default(), {
84
+ width: 24,
85
+ height: 24
86
+ })
87
+ })
88
+ });
89
+ function buildConfigItems() {
90
+ const items = [];
91
+ if (enableTracking) items.push({
92
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Checkbox, {
93
+ onChange: (e)=>setForceSameTabNavigation(e.target.checked),
94
+ checked: forceSameTabNavigation,
95
+ children: constants_js_namespaceObject.trackingTip
96
+ }),
97
+ key: 'track-config'
98
+ });
99
+ if (showDeepLocateOption) items.push({
100
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Checkbox, {
101
+ onChange: (e)=>{
102
+ setDeepLocate(e.target.checked);
103
+ },
104
+ checked: deepLocate,
105
+ children: constants_js_namespaceObject.deepLocateTip
106
+ }),
107
+ key: 'deep-locate-config'
108
+ });
109
+ if (showDeepThinkOption) items.push({
110
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
111
+ style: {
112
+ padding: '4px 0'
113
+ },
114
+ children: [
115
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
116
+ style: {
117
+ marginBottom: '4px',
118
+ fontSize: '14px'
119
+ },
120
+ children: constants_js_namespaceObject.deepThinkTip
121
+ }),
122
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_antd_namespaceObject.Radio.Group, {
123
+ size: "small",
124
+ value: deepThink,
125
+ onChange: (e)=>setDeepThink(e.target.value),
126
+ children: [
127
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Tooltip, {
128
+ title: "Controlled by MIDSCENE_MODEL_REASONING_ENABLED env variable",
129
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
130
+ value: 'unset',
131
+ children: "Auto"
132
+ })
133
+ }),
134
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
135
+ value: true,
136
+ children: "On"
137
+ }),
138
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
139
+ value: false,
140
+ children: "Off"
141
+ })
142
+ ]
143
+ })
144
+ ]
145
+ }),
146
+ key: 'deep-think-config'
147
+ });
148
+ if (showDataExtractionOptions && !hideDomAndScreenshotOptions) {
149
+ items.push({
150
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Checkbox, {
151
+ onChange: (e)=>{
152
+ setScreenshotIncluded(e.target.checked);
153
+ },
154
+ checked: screenshotIncluded,
155
+ children: constants_js_namespaceObject.screenshotIncludedTip
156
+ }),
157
+ key: 'screenshot-included-config'
158
+ });
159
+ items.push({
160
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
161
+ style: {
162
+ padding: '4px 0'
163
+ },
164
+ children: [
165
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
166
+ style: {
167
+ marginBottom: '4px',
168
+ fontSize: '14px'
169
+ },
170
+ children: constants_js_namespaceObject.domIncludedTip
171
+ }),
172
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_antd_namespaceObject.Radio.Group, {
173
+ size: "small",
174
+ value: domIncluded,
175
+ onChange: (e)=>setDomIncluded(e.target.value),
176
+ children: [
177
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
178
+ value: false,
179
+ children: "Off"
180
+ }),
181
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
182
+ value: true,
183
+ children: "All"
184
+ }),
185
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
186
+ value: 'visible-only',
187
+ children: "Visible only"
188
+ })
189
+ ]
190
+ })
191
+ ]
192
+ }),
193
+ key: 'dom-included-config'
194
+ });
195
+ }
196
+ if (deviceCapabilities.supportsImeStrategy) {
197
+ items.push({
198
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
199
+ style: {
200
+ padding: '4px 0'
201
+ },
202
+ children: [
203
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
204
+ style: {
205
+ marginBottom: '4px',
206
+ fontSize: '14px'
207
+ },
208
+ children: constants_js_namespaceObject.imeStrategyTip
209
+ }),
210
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_antd_namespaceObject.Radio.Group, {
211
+ size: "small",
212
+ value: imeStrategy,
213
+ onChange: (e)=>setImeStrategy(e.target.value),
214
+ children: [
215
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
216
+ value: "always-yadb",
217
+ children: "Always YADB"
218
+ }),
219
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
220
+ value: "yadb-for-non-ascii",
221
+ children: "YADB for non-ASCII"
222
+ })
223
+ ]
224
+ })
225
+ ]
226
+ }),
227
+ key: 'ime-strategy-config'
228
+ });
229
+ if (deviceCapabilities.supportsAutoDismissKeyboard) items.push({
230
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Checkbox, {
231
+ onChange: (e)=>setAutoDismissKeyboard(e.target.checked),
232
+ checked: autoDismissKeyboard,
233
+ children: constants_js_namespaceObject.autoDismissKeyboardTip
234
+ }),
235
+ key: 'auto-dismiss-keyboard-config'
236
+ });
237
+ if (deviceCapabilities.supportsKeyboardDismissStrategy) items.push({
238
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
239
+ style: {
240
+ padding: '4px 0'
241
+ },
242
+ children: [
243
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
244
+ style: {
245
+ marginBottom: '4px',
246
+ fontSize: '14px'
247
+ },
248
+ children: constants_js_namespaceObject.keyboardDismissStrategyTip
249
+ }),
250
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_antd_namespaceObject.Radio.Group, {
251
+ size: "small",
252
+ value: keyboardDismissStrategy,
253
+ onChange: (e)=>setKeyboardDismissStrategy(e.target.value),
254
+ children: [
255
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
256
+ value: "esc-first",
257
+ children: "ESC first"
258
+ }),
259
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Radio, {
260
+ value: "back-first",
261
+ children: "Back first"
262
+ })
263
+ ]
264
+ })
265
+ ]
266
+ }),
267
+ key: 'keyboard-dismiss-strategy-config'
268
+ });
269
+ if (deviceCapabilities.supportsAlwaysRefreshScreenInfo) items.push({
270
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Checkbox, {
271
+ onChange: (e)=>setAlwaysRefreshScreenInfo(e.target.checked),
272
+ checked: alwaysRefreshScreenInfo,
273
+ children: constants_js_namespaceObject.alwaysRefreshScreenInfoTip
274
+ }),
275
+ key: 'always-refresh-screen-info-config'
276
+ });
277
+ }
278
+ if (!deviceCapabilities.supportsImeStrategy && deviceCapabilities.supportsAutoDismissKeyboard) items.push({
279
+ label: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Checkbox, {
280
+ onChange: (e)=>setAutoDismissKeyboard(e.target.checked),
281
+ checked: autoDismissKeyboard,
282
+ children: constants_js_namespaceObject.autoDismissKeyboardTip
283
+ }),
284
+ key: 'auto-dismiss-keyboard-config'
285
+ });
286
+ return items;
287
+ }
288
+ };
289
+ exports.ConfigSelector = __webpack_exports__.ConfigSelector;
290
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
291
+ "ConfigSelector"
292
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
293
+ Object.defineProperty(exports, '__esModule', {
294
+ value: true
295
+ });
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ ContextPreview: ()=>ContextPreview
37
+ });
38
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
39
+ const external_antd_namespaceObject = require("antd");
40
+ const index_js_namespaceObject = require("../blackboard/index.js");
41
+ var index_js_default = /*#__PURE__*/ __webpack_require__.n(index_js_namespaceObject);
42
+ const external_misc_index_js_namespaceObject = require("../misc/index.js");
43
+ const playground_demo_ui_context_json_namespaceObject = require("../playground/playground-demo-ui-context.json");
44
+ var playground_demo_ui_context_json_default = /*#__PURE__*/ __webpack_require__.n(playground_demo_ui_context_json_namespaceObject);
45
+ const ContextPreview = ({ uiContextPreview, setUiContextPreview, showContextPreview })=>{
46
+ if (!showContextPreview) return null;
47
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
48
+ className: "form-part context-panel",
49
+ children: [
50
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("h3", {
51
+ children: "UI Context"
52
+ }),
53
+ uiContextPreview ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_default(), {
54
+ uiContext: uiContextPreview,
55
+ hideController: true
56
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
57
+ children: [
58
+ (0, external_misc_index_js_namespaceObject.iconForStatus)('failed'),
59
+ " No UI context",
60
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_antd_namespaceObject.Button, {
61
+ type: "link",
62
+ onClick: (e)=>{
63
+ e.preventDefault();
64
+ setUiContextPreview(playground_demo_ui_context_json_default());
65
+ },
66
+ children: "Load Demo"
67
+ }),
68
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
69
+ children: "To load the UI context, you can either use the demo data above, or click the 'Send to Playground' in the report page."
70
+ })
71
+ ]
72
+ })
73
+ ]
74
+ });
75
+ };
76
+ exports.ContextPreview = __webpack_exports__.ContextPreview;
77
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
78
+ "ContextPreview"
79
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
80
+ Object.defineProperty(exports, '__esModule', {
81
+ value: true
82
+ });