@scenetest/vite-plugin 0.11.0 → 0.13.0

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 (86) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +11 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/panels/observer/audio.d.ts +81 -0
  5. package/dist/panels/observer/audio.d.ts.map +1 -0
  6. package/dist/panels/observer/audio.js +296 -0
  7. package/dist/panels/observer/audio.js.map +1 -0
  8. package/dist/panels/observer/auto.d.ts +10 -0
  9. package/dist/panels/observer/auto.d.ts.map +1 -0
  10. package/dist/panels/observer/auto.js +11 -0
  11. package/dist/panels/observer/auto.js.map +1 -0
  12. package/dist/panels/observer/fs-viewer.d.ts +20 -0
  13. package/dist/panels/observer/fs-viewer.d.ts.map +1 -0
  14. package/dist/panels/observer/fs-viewer.js +536 -0
  15. package/dist/panels/observer/fs-viewer.js.map +1 -0
  16. package/dist/panels/observer/fullscreen.d.ts +24 -0
  17. package/dist/panels/observer/fullscreen.d.ts.map +1 -0
  18. package/dist/panels/observer/fullscreen.js +701 -0
  19. package/dist/panels/observer/fullscreen.js.map +1 -0
  20. package/dist/panels/observer/history.d.ts +41 -0
  21. package/dist/panels/observer/history.d.ts.map +1 -0
  22. package/dist/panels/observer/history.js +307 -0
  23. package/dist/panels/observer/history.js.map +1 -0
  24. package/dist/panels/observer/index.d.ts +33 -0
  25. package/dist/panels/observer/index.d.ts.map +1 -0
  26. package/dist/panels/observer/index.js +128 -0
  27. package/dist/panels/observer/index.js.map +1 -0
  28. package/dist/panels/observer/panel.d.ts +12 -0
  29. package/dist/panels/observer/panel.d.ts.map +1 -0
  30. package/dist/panels/observer/panel.js +461 -0
  31. package/dist/panels/observer/panel.js.map +1 -0
  32. package/dist/panels/observer/render.d.ts +109 -0
  33. package/dist/panels/observer/render.d.ts.map +1 -0
  34. package/dist/panels/observer/render.js +760 -0
  35. package/dist/panels/observer/render.js.map +1 -0
  36. package/dist/panels/observer/state.d.ts +57 -0
  37. package/dist/panels/observer/state.d.ts.map +1 -0
  38. package/dist/panels/observer/state.js +187 -0
  39. package/dist/panels/observer/state.js.map +1 -0
  40. package/dist/panels/observer/styles.d.ts +6 -0
  41. package/dist/panels/observer/styles.d.ts.map +1 -0
  42. package/dist/panels/observer/styles.js +1706 -0
  43. package/dist/panels/observer/styles.js.map +1 -0
  44. package/dist/panels/observer/types.d.ts +102 -0
  45. package/dist/panels/observer/types.d.ts.map +1 -0
  46. package/dist/panels/observer/types.js +5 -0
  47. package/dist/panels/observer/types.js.map +1 -0
  48. package/dist/panels/observer/utils.d.ts +45 -0
  49. package/dist/panels/observer/utils.d.ts.map +1 -0
  50. package/dist/panels/observer/utils.js +101 -0
  51. package/dist/panels/observer/utils.js.map +1 -0
  52. package/dist/panels/recorder/auto.d.ts +10 -0
  53. package/dist/panels/recorder/auto.d.ts.map +1 -0
  54. package/dist/panels/recorder/auto.js +11 -0
  55. package/dist/panels/recorder/auto.js.map +1 -0
  56. package/dist/panels/recorder/capture.d.ts +18 -0
  57. package/dist/panels/recorder/capture.d.ts.map +1 -0
  58. package/dist/panels/recorder/capture.js +218 -0
  59. package/dist/panels/recorder/capture.js.map +1 -0
  60. package/dist/panels/recorder/index.d.ts +41 -0
  61. package/dist/panels/recorder/index.d.ts.map +1 -0
  62. package/dist/panels/recorder/index.js +208 -0
  63. package/dist/panels/recorder/index.js.map +1 -0
  64. package/dist/panels/recorder/panel.d.ts +55 -0
  65. package/dist/panels/recorder/panel.d.ts.map +1 -0
  66. package/dist/panels/recorder/panel.js +284 -0
  67. package/dist/panels/recorder/panel.js.map +1 -0
  68. package/dist/panels/recorder/reverse-selector.d.ts +31 -0
  69. package/dist/panels/recorder/reverse-selector.d.ts.map +1 -0
  70. package/dist/panels/recorder/reverse-selector.js +116 -0
  71. package/dist/panels/recorder/reverse-selector.js.map +1 -0
  72. package/dist/panels/recorder/styles.d.ts +5 -0
  73. package/dist/panels/recorder/styles.d.ts.map +1 -0
  74. package/dist/panels/recorder/styles.js +300 -0
  75. package/dist/panels/recorder/styles.js.map +1 -0
  76. package/dist/panels/recorder/types.d.ts +51 -0
  77. package/dist/panels/recorder/types.d.ts.map +1 -0
  78. package/dist/panels/recorder/types.js +15 -0
  79. package/dist/panels/recorder/types.js.map +1 -0
  80. package/dist/strip.d.ts.map +1 -1
  81. package/dist/strip.js +6 -3
  82. package/dist/strip.js.map +1 -1
  83. package/dist/transform.d.ts.map +1 -1
  84. package/dist/transform.js +5 -2
  85. package/dist/transform.js.map +1 -1
  86. package/package.json +8 -6
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Reverse selector resolution: given a DOM element, produce a scenetest selector string.
3
+ *
4
+ * This is the inverse of resolveSelector() in @scenetest/cli.
5
+ * Instead of selector → element, it goes element → selector.
6
+ *
7
+ * Algorithm:
8
+ * 1. Starting from the target element, find the first addressable attribute
9
+ * 2. Walk up ancestors collecting addressable tokens to build a unique path
10
+ * 3. Return the space-separated selector string (parent child grandchild)
11
+ */
12
+ import { SELECTOR_ATTRIBUTES } from './types.js';
13
+ /**
14
+ * Elements that are part of the recorder UI and should be ignored
15
+ */
16
+ const RECORDER_PANEL_ID = 'scenetest-recorder';
17
+ const OBSERVER_PANEL_ID = 'scenetest-panel';
18
+ /**
19
+ * Get the best scenetest selector token for a single element.
20
+ * Returns the attribute value from the highest-priority attribute found,
21
+ * or null if the element has no addressable attributes.
22
+ */
23
+ function getElementToken(el) {
24
+ for (const attr of SELECTOR_ATTRIBUTES) {
25
+ const value = el.getAttribute(attr);
26
+ if (value) {
27
+ return { token: value, attr };
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ /**
33
+ * Check if a selector token uniquely identifies an element within a parent scope.
34
+ */
35
+ function isUniqueInScope(token, scope) {
36
+ const selector = SELECTOR_ATTRIBUTES
37
+ .map(attr => `[${attr}="${CSS.escape(token)}"]`)
38
+ .join(', ');
39
+ const matches = scope.querySelectorAll(selector);
40
+ return matches.length === 1;
41
+ }
42
+ /**
43
+ * Resolve a DOM element to a scenetest selector string.
44
+ *
45
+ * Walks up from the element collecting addressable tokens until
46
+ * the path uniquely identifies the element.
47
+ *
48
+ * @returns The selector string, or null if the element can't be addressed
49
+ */
50
+ export function reverseSelector(element) {
51
+ // Don't resolve elements inside the recorder or observer panels
52
+ if (isInsidePanel(element)) {
53
+ return null;
54
+ }
55
+ const tokens = [];
56
+ let current = element;
57
+ // Walk up from the target, collecting addressable ancestor tokens
58
+ while (current && current !== document.body && current !== document.documentElement) {
59
+ const info = getElementToken(current);
60
+ if (info) {
61
+ tokens.unshift(info.token);
62
+ // Check if the path so far is unique from document root
63
+ if (tokens.length === 1 && isUniqueInScope(info.token, document)) {
64
+ return tokens.join(' ');
65
+ }
66
+ // With multiple tokens, check if the full path is likely unique
67
+ if (tokens.length >= 2) {
68
+ // For nested selectors, we have enough context
69
+ return tokens.join(' ');
70
+ }
71
+ }
72
+ current = current.parentElement;
73
+ }
74
+ // If we collected any tokens, return them
75
+ if (tokens.length > 0) {
76
+ return tokens.join(' ');
77
+ }
78
+ return null;
79
+ }
80
+ /**
81
+ * Find the nearest addressable ancestor (or self) for an element.
82
+ * Useful when the clicked element itself has no selector but a parent does.
83
+ */
84
+ export function nearestAddressable(element) {
85
+ let current = element;
86
+ while (current && current !== document.body && current !== document.documentElement) {
87
+ if (getElementToken(current)) {
88
+ return current;
89
+ }
90
+ current = current.parentElement;
91
+ }
92
+ return null;
93
+ }
94
+ /**
95
+ * Check if an element is inside the recorder or observer panel
96
+ */
97
+ function isInsidePanel(element) {
98
+ let current = element;
99
+ while (current) {
100
+ if (current.id === RECORDER_PANEL_ID || current.id === OBSERVER_PANEL_ID) {
101
+ return true;
102
+ }
103
+ current = current.parentElement;
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * Get a human-readable description of why an element can't be addressed.
109
+ * Used to show warnings when clicking unaddressable elements.
110
+ */
111
+ export function explainUnaddressable(element) {
112
+ const tag = element.tagName.toLowerCase();
113
+ const text = element.textContent?.slice(0, 30) || '';
114
+ return `<${tag}>${text ? ` "${text}..."` : ''} has no aria-label, data-testid, or other addressable attribute`;
115
+ }
116
+ //# sourceMappingURL=reverse-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-selector.js","sourceRoot":"","sources":["../../../src/panels/recorder/reverse-selector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * CSS styles for the recorder sidebar panel
3
+ */
4
+ export declare const recorderStyles = "\n#scenetest-recorder {\n position: fixed;\n top: 0;\n left: 0;\n width: 360px;\n height: 100vh;\n background: #0f0f1a;\n border-right: 2px solid #4a4a6a;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;\n font-size: 12px;\n color: #e0e0e0;\n z-index: 999998;\n display: flex;\n flex-direction: column;\n box-shadow: 4px 0 24px rgba(0,0,0,0.4);\n}\n#scenetest-recorder.collapsed {\n width: 48px;\n}\n#scenetest-recorder.collapsed .recorder-header-title,\n#scenetest-recorder.collapsed .recorder-actions,\n#scenetest-recorder.collapsed .recorder-lines,\n#scenetest-recorder.collapsed .recorder-footer {\n display: none;\n}\n#scenetest-recorder.collapsed .recorder-header {\n flex-direction: column;\n padding: 12px 8px;\n gap: 8px;\n}\n\n/* Push app content right when recorder is open */\n#scenetest-recorder:not(.collapsed) ~ *,\n#scenetest-recorder:not(.collapsed) ~ #scenetest-panel {\n /* Can't push siblings reliably; app should use the CSS var */\n}\n\n/* Header */\n.recorder-header {\n padding: 12px 16px;\n background: #1a1a2e;\n border-bottom: 1px solid #4a4a6a;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n.recorder-header-left {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.recorder-header-title {\n font-weight: 600;\n color: #a0a0ff;\n font-size: 13px;\n}\n.recorder-rec-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #f87171;\n animation: rec-pulse 1.2s ease-in-out infinite;\n}\n.recorder-rec-dot.paused {\n background: #6a6a8a;\n animation: none;\n}\n@keyframes rec-pulse {\n 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(248, 113, 113, 0.4); }\n 50% { opacity: 0.6; box-shadow: 0 0 0 6px rgba(248, 113, 113, 0); }\n}\n.recorder-toggle-btn {\n background: none;\n border: 1px solid #4a4a6a;\n color: #a0a0a0;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s;\n flex-shrink: 0;\n}\n.recorder-toggle-btn:hover {\n background: #3a3a5a;\n color: #e0e0e0;\n}\n\n/* Actions bar */\n.recorder-actions {\n padding: 8px 16px;\n background: #151528;\n border-bottom: 1px solid #3a3a5a;\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n flex-wrap: wrap;\n}\n.recorder-btn {\n background: none;\n border: 1px solid #4a4a6a;\n color: #a0a0a0;\n padding: 4px 10px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 11px;\n font-family: inherit;\n transition: all 0.15s;\n}\n.recorder-btn:hover {\n background: #3a3a5a;\n color: #e0e0e0;\n}\n.recorder-btn.active {\n background: #4a4a6a;\n color: #fff;\n}\n.recorder-btn.danger:hover {\n background: #3a1a1a;\n color: #f87171;\n border-color: #f87171;\n}\n.recorder-btn.primary {\n background: #2a2a6a;\n color: #a0a0ff;\n border-color: #6a6aaa;\n}\n.recorder-btn.primary:hover {\n background: #3a3a8a;\n color: #c0c0ff;\n}\n\n/* Lines container */\n.recorder-lines {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n}\n.recorder-empty {\n padding: 40px 20px;\n text-align: center;\n color: #6a6a8a;\n line-height: 1.6;\n}\n.recorder-empty-icon {\n font-size: 32px;\n margin-bottom: 12px;\n}\n\n/* Individual DSL line */\n.recorder-line {\n padding: 6px 16px;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n border-bottom: 1px solid #1a1a2e;\n transition: background 0.1s;\n cursor: default;\n min-height: 28px;\n}\n.recorder-line:hover {\n background: #1a1a2e;\n}\n.recorder-line:hover .recorder-line-delete {\n opacity: 1;\n}\n.recorder-line-number {\n color: #4a4a6a;\n font-size: 10px;\n min-width: 20px;\n text-align: right;\n padding-top: 2px;\n user-select: none;\n flex-shrink: 0;\n}\n.recorder-line-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.recorder-line-text {\n word-break: break-word;\n line-height: 1.5;\n}\n\n/* Syntax highlighting for DSL */\n.recorder-action {\n color: #c792ea;\n font-weight: 500;\n}\n.recorder-selector {\n color: #82aaff;\n}\n.recorder-value {\n color: #c3e88d;\n}\n.recorder-prefix {\n color: #6a6a8a;\n user-select: none;\n}\n\n/* Delete button */\n.recorder-line-delete {\n opacity: 0;\n background: none;\n border: none;\n color: #6a6a8a;\n cursor: pointer;\n font-size: 14px;\n padding: 0 4px;\n transition: all 0.1s;\n flex-shrink: 0;\n}\n.recorder-line-delete:hover {\n color: #f87171;\n}\n\n/* New line animation */\n.recorder-line.new {\n animation: line-slide-in 0.2s ease-out;\n}\n@keyframes line-slide-in {\n from {\n opacity: 0;\n transform: translateX(-10px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n/* Assertion annotation */\n.recorder-annotation {\n padding: 3px 16px 3px 46px;\n font-size: 11px;\n display: flex;\n align-items: center;\n gap: 6px;\n animation: annotation-fade-in 0.3s ease-out;\n}\n.recorder-annotation.pass {\n color: #4ade80;\n}\n.recorder-annotation.fail {\n color: #f87171;\n background: rgba(248, 113, 113, 0.05);\n}\n.recorder-annotation-icon {\n font-size: 10px;\n flex-shrink: 0;\n}\n.recorder-annotation-text {\n font-style: italic;\n}\n@keyframes annotation-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* Warning toast */\n.recorder-warning {\n padding: 4px 16px 4px 46px;\n font-size: 11px;\n color: #f59e0b;\n display: flex;\n align-items: center;\n gap: 6px;\n animation: annotation-fade-in 0.3s ease-out;\n}\n.recorder-warning-icon {\n flex-shrink: 0;\n}\n\n/* Footer */\n.recorder-footer {\n padding: 10px 16px;\n background: #1a1a2e;\n border-top: 1px solid #4a4a6a;\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n}\n.recorder-line-count {\n color: #6a6a8a;\n font-size: 11px;\n}\n";
5
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/panels/recorder/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc,qxLAuS1B,CAAA"}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * CSS styles for the recorder sidebar panel
3
+ */
4
+ export const recorderStyles = `
5
+ #scenetest-recorder {
6
+ position: fixed;
7
+ top: 0;
8
+ left: 0;
9
+ width: 360px;
10
+ height: 100vh;
11
+ background: #0f0f1a;
12
+ border-right: 2px solid #4a4a6a;
13
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
14
+ font-size: 12px;
15
+ color: #e0e0e0;
16
+ z-index: 999998;
17
+ display: flex;
18
+ flex-direction: column;
19
+ box-shadow: 4px 0 24px rgba(0,0,0,0.4);
20
+ }
21
+ #scenetest-recorder.collapsed {
22
+ width: 48px;
23
+ }
24
+ #scenetest-recorder.collapsed .recorder-header-title,
25
+ #scenetest-recorder.collapsed .recorder-actions,
26
+ #scenetest-recorder.collapsed .recorder-lines,
27
+ #scenetest-recorder.collapsed .recorder-footer {
28
+ display: none;
29
+ }
30
+ #scenetest-recorder.collapsed .recorder-header {
31
+ flex-direction: column;
32
+ padding: 12px 8px;
33
+ gap: 8px;
34
+ }
35
+
36
+ /* Push app content right when recorder is open */
37
+ #scenetest-recorder:not(.collapsed) ~ *,
38
+ #scenetest-recorder:not(.collapsed) ~ #scenetest-panel {
39
+ /* Can't push siblings reliably; app should use the CSS var */
40
+ }
41
+
42
+ /* Header */
43
+ .recorder-header {
44
+ padding: 12px 16px;
45
+ background: #1a1a2e;
46
+ border-bottom: 1px solid #4a4a6a;
47
+ display: flex;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ flex-shrink: 0;
51
+ }
52
+ .recorder-header-left {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 10px;
56
+ }
57
+ .recorder-header-title {
58
+ font-weight: 600;
59
+ color: #a0a0ff;
60
+ font-size: 13px;
61
+ }
62
+ .recorder-rec-dot {
63
+ width: 10px;
64
+ height: 10px;
65
+ border-radius: 50%;
66
+ background: #f87171;
67
+ animation: rec-pulse 1.2s ease-in-out infinite;
68
+ }
69
+ .recorder-rec-dot.paused {
70
+ background: #6a6a8a;
71
+ animation: none;
72
+ }
73
+ @keyframes rec-pulse {
74
+ 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(248, 113, 113, 0.4); }
75
+ 50% { opacity: 0.6; box-shadow: 0 0 0 6px rgba(248, 113, 113, 0); }
76
+ }
77
+ .recorder-toggle-btn {
78
+ background: none;
79
+ border: 1px solid #4a4a6a;
80
+ color: #a0a0a0;
81
+ width: 28px;
82
+ height: 28px;
83
+ border-radius: 4px;
84
+ cursor: pointer;
85
+ font-size: 14px;
86
+ display: flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+ transition: all 0.15s;
90
+ flex-shrink: 0;
91
+ }
92
+ .recorder-toggle-btn:hover {
93
+ background: #3a3a5a;
94
+ color: #e0e0e0;
95
+ }
96
+
97
+ /* Actions bar */
98
+ .recorder-actions {
99
+ padding: 8px 16px;
100
+ background: #151528;
101
+ border-bottom: 1px solid #3a3a5a;
102
+ display: flex;
103
+ gap: 6px;
104
+ flex-shrink: 0;
105
+ flex-wrap: wrap;
106
+ }
107
+ .recorder-btn {
108
+ background: none;
109
+ border: 1px solid #4a4a6a;
110
+ color: #a0a0a0;
111
+ padding: 4px 10px;
112
+ border-radius: 4px;
113
+ cursor: pointer;
114
+ font-size: 11px;
115
+ font-family: inherit;
116
+ transition: all 0.15s;
117
+ }
118
+ .recorder-btn:hover {
119
+ background: #3a3a5a;
120
+ color: #e0e0e0;
121
+ }
122
+ .recorder-btn.active {
123
+ background: #4a4a6a;
124
+ color: #fff;
125
+ }
126
+ .recorder-btn.danger:hover {
127
+ background: #3a1a1a;
128
+ color: #f87171;
129
+ border-color: #f87171;
130
+ }
131
+ .recorder-btn.primary {
132
+ background: #2a2a6a;
133
+ color: #a0a0ff;
134
+ border-color: #6a6aaa;
135
+ }
136
+ .recorder-btn.primary:hover {
137
+ background: #3a3a8a;
138
+ color: #c0c0ff;
139
+ }
140
+
141
+ /* Lines container */
142
+ .recorder-lines {
143
+ flex: 1;
144
+ overflow-y: auto;
145
+ padding: 8px 0;
146
+ }
147
+ .recorder-empty {
148
+ padding: 40px 20px;
149
+ text-align: center;
150
+ color: #6a6a8a;
151
+ line-height: 1.6;
152
+ }
153
+ .recorder-empty-icon {
154
+ font-size: 32px;
155
+ margin-bottom: 12px;
156
+ }
157
+
158
+ /* Individual DSL line */
159
+ .recorder-line {
160
+ padding: 6px 16px;
161
+ display: flex;
162
+ align-items: flex-start;
163
+ gap: 8px;
164
+ border-bottom: 1px solid #1a1a2e;
165
+ transition: background 0.1s;
166
+ cursor: default;
167
+ min-height: 28px;
168
+ }
169
+ .recorder-line:hover {
170
+ background: #1a1a2e;
171
+ }
172
+ .recorder-line:hover .recorder-line-delete {
173
+ opacity: 1;
174
+ }
175
+ .recorder-line-number {
176
+ color: #4a4a6a;
177
+ font-size: 10px;
178
+ min-width: 20px;
179
+ text-align: right;
180
+ padding-top: 2px;
181
+ user-select: none;
182
+ flex-shrink: 0;
183
+ }
184
+ .recorder-line-content {
185
+ flex: 1;
186
+ min-width: 0;
187
+ display: flex;
188
+ flex-direction: column;
189
+ gap: 2px;
190
+ }
191
+ .recorder-line-text {
192
+ word-break: break-word;
193
+ line-height: 1.5;
194
+ }
195
+
196
+ /* Syntax highlighting for DSL */
197
+ .recorder-action {
198
+ color: #c792ea;
199
+ font-weight: 500;
200
+ }
201
+ .recorder-selector {
202
+ color: #82aaff;
203
+ }
204
+ .recorder-value {
205
+ color: #c3e88d;
206
+ }
207
+ .recorder-prefix {
208
+ color: #6a6a8a;
209
+ user-select: none;
210
+ }
211
+
212
+ /* Delete button */
213
+ .recorder-line-delete {
214
+ opacity: 0;
215
+ background: none;
216
+ border: none;
217
+ color: #6a6a8a;
218
+ cursor: pointer;
219
+ font-size: 14px;
220
+ padding: 0 4px;
221
+ transition: all 0.1s;
222
+ flex-shrink: 0;
223
+ }
224
+ .recorder-line-delete:hover {
225
+ color: #f87171;
226
+ }
227
+
228
+ /* New line animation */
229
+ .recorder-line.new {
230
+ animation: line-slide-in 0.2s ease-out;
231
+ }
232
+ @keyframes line-slide-in {
233
+ from {
234
+ opacity: 0;
235
+ transform: translateX(-10px);
236
+ }
237
+ to {
238
+ opacity: 1;
239
+ transform: translateX(0);
240
+ }
241
+ }
242
+
243
+ /* Assertion annotation */
244
+ .recorder-annotation {
245
+ padding: 3px 16px 3px 46px;
246
+ font-size: 11px;
247
+ display: flex;
248
+ align-items: center;
249
+ gap: 6px;
250
+ animation: annotation-fade-in 0.3s ease-out;
251
+ }
252
+ .recorder-annotation.pass {
253
+ color: #4ade80;
254
+ }
255
+ .recorder-annotation.fail {
256
+ color: #f87171;
257
+ background: rgba(248, 113, 113, 0.05);
258
+ }
259
+ .recorder-annotation-icon {
260
+ font-size: 10px;
261
+ flex-shrink: 0;
262
+ }
263
+ .recorder-annotation-text {
264
+ font-style: italic;
265
+ }
266
+ @keyframes annotation-fade-in {
267
+ from { opacity: 0; }
268
+ to { opacity: 1; }
269
+ }
270
+
271
+ /* Warning toast */
272
+ .recorder-warning {
273
+ padding: 4px 16px 4px 46px;
274
+ font-size: 11px;
275
+ color: #f59e0b;
276
+ display: flex;
277
+ align-items: center;
278
+ gap: 6px;
279
+ animation: annotation-fade-in 0.3s ease-out;
280
+ }
281
+ .recorder-warning-icon {
282
+ flex-shrink: 0;
283
+ }
284
+
285
+ /* Footer */
286
+ .recorder-footer {
287
+ padding: 10px 16px;
288
+ background: #1a1a2e;
289
+ border-top: 1px solid #4a4a6a;
290
+ display: flex;
291
+ justify-content: space-between;
292
+ align-items: center;
293
+ flex-shrink: 0;
294
+ }
295
+ .recorder-line-count {
296
+ color: #6a6a8a;
297
+ font-size: 11px;
298
+ }
299
+ `;
300
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/panels/recorder/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuS7B,CAAA"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Types for the scene recorder
3
+ */
4
+ export interface DslLine {
5
+ /** Unique id for this line */
6
+ id: number;
7
+ /** The DSL action text (e.g., "click submit-button") */
8
+ text: string;
9
+ /** Timestamp when the action was recorded */
10
+ timestamp: number;
11
+ /** Whether this line has been "played" / confirmed */
12
+ played: boolean;
13
+ }
14
+ export interface AssertionAnnotation {
15
+ /** Which DSL line this annotation is attached to (by id) */
16
+ afterLineId: number;
17
+ /** Pass or fail */
18
+ type: 'pass' | 'fail';
19
+ /** The assertion description */
20
+ description: string;
21
+ /** Timestamp */
22
+ timestamp: number;
23
+ }
24
+ export interface RecorderState {
25
+ /** Whether we're currently recording */
26
+ recording: boolean;
27
+ /** Accumulated DSL lines */
28
+ lines: DslLine[];
29
+ /** Assertion annotations between lines */
30
+ annotations: AssertionAnnotation[];
31
+ /** Next line id counter */
32
+ nextId: number;
33
+ /** Whether an input is currently being typed into (debounce) */
34
+ pendingInput: PendingInput | null;
35
+ }
36
+ export interface PendingInput {
37
+ /** The target element */
38
+ element: HTMLElement;
39
+ /** The resolved selector */
40
+ selector: string;
41
+ /** Current value */
42
+ value: string;
43
+ /** Debounce timer */
44
+ timer: ReturnType<typeof setTimeout>;
45
+ }
46
+ /**
47
+ * Selector attribute in priority order
48
+ */
49
+ export declare const SELECTOR_ATTRIBUTES: readonly ["aria-label", "id", "data-testid", "data-name", "data-key", "name"];
50
+ export type SelectorAttribute = typeof SELECTOR_ATTRIBUTES[number];
51
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/panels/recorder/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAA;IAClB,4BAA4B;IAC5B,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,0CAA0C;IAC1C,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,gEAAgE;IAChE,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAA;IACpB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,+EAOtB,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Types for the scene recorder
3
+ */
4
+ /**
5
+ * Selector attribute in priority order
6
+ */
7
+ export const SELECTOR_ATTRIBUTES = [
8
+ 'aria-label',
9
+ 'id',
10
+ 'data-testid',
11
+ 'data-name',
12
+ 'data-key',
13
+ 'name',
14
+ ];
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/panels/recorder/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgDH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,IAAI;IACJ,aAAa;IACb,WAAW;IACX,UAAU;IACV,MAAM;CACE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAkBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,GAAG,IAAI,CA0L3F"}
1
+ {"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;CACnD;AAED,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,GAAG,IAAI,CA0L3F"}
package/dist/strip.js CHANGED
@@ -5,7 +5,10 @@ import MagicString from 'magic-string';
5
5
  // Handle ESM/CJS interop for @babel/traverse
6
6
  // Cast through any because @types/babel__traverse@7.28+ types the default export as a namespace, not a function
7
7
  const traverse = (typeof _traverse === 'function' ? _traverse : _traverse.default);
8
- // All scenetest packages that should be stripped
8
+ // All scenetest packages that should be stripped. '@scenetest/checks' also
9
+ // covers its subpath entries (./react, ./vue, ./solid, ./svelte, ./runtime);
10
+ // the standalone checks-* names are the pre-0.12 framework binding packages,
11
+ // kept so apps still on them keep stripping cleanly.
9
12
  const SCENETEST_PACKAGES = [
10
13
  '@scenetest/checks',
11
14
  '@scenetest/checks-react',
@@ -14,10 +17,10 @@ const SCENETEST_PACKAGES = [
14
17
  '@scenetest/checks-svelte',
15
18
  ];
16
19
  /**
17
- * Check if a module source is a scenetest package
20
+ * Check if a module source is a scenetest package (or a subpath of one)
18
21
  */
19
22
  function isScenetestPackage(source) {
20
- return SCENETEST_PACKAGES.includes(source);
23
+ return SCENETEST_PACKAGES.some((pkg) => source === pkg || source.startsWith(pkg + '/'));
21
24
  }
22
25
  /**
23
26
  * Strip all scenetest imports and function calls from source code.
package/dist/strip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"strip.js","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strip.js","sourceRoot":"","sources":["../src/strip.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB;IACjB,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;IAClD,2BAA2B;IAC3B,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,GAAG,IAAI,CAwKxG"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,cAAc,CAAA;AAStC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAA;IACV,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB;IACjB,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAA;IAClD,2BAA2B;IAC3B,mBAAmB,EAAE,kBAAkB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAqED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,GAAG,IAAI,CA4KxG"}
package/dist/transform.js CHANGED
@@ -75,7 +75,9 @@ export function transformAssertions(code, options = {}) {
75
75
  if (!code.includes('serverCheck')) {
76
76
  return null;
77
77
  }
78
- // All scenetest packages
78
+ // All scenetest packages. '@scenetest/checks' also covers its framework
79
+ // subpaths (./react etc.); the checks-* names are the pre-0.12 binding
80
+ // packages, kept for apps still importing from them.
79
81
  const SCENETEST_PACKAGES = [
80
82
  '@scenetest/checks',
81
83
  '@scenetest/checks-react',
@@ -83,6 +85,7 @@ export function transformAssertions(code, options = {}) {
83
85
  '@scenetest/checks-solid',
84
86
  '@scenetest/checks-svelte',
85
87
  ];
88
+ const isScenetestSource = (source) => SCENETEST_PACKAGES.some((pkg) => source === pkg || source.startsWith(pkg + '/'));
86
89
  // Track imported serverCheck name
87
90
  let serverCheckLocalName = null;
88
91
  // Parse with Babel
@@ -115,7 +118,7 @@ export function transformAssertions(code, options = {}) {
115
118
  traverse(ast, {
116
119
  ImportDeclaration(path) {
117
120
  const source = path.node.source.value;
118
- if (!SCENETEST_PACKAGES.includes(source)) {
121
+ if (!isScenetestSource(source)) {
119
122
  return;
120
123
  }
121
124
  for (const specifier of path.node.specifiers) {
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}