@sungen/driver-ui 3.2.34-beta.1 → 3.3.0-alpha.1

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 (89) hide show
  1. package/dist/app-profile-presets.d.ts +12 -0
  2. package/dist/app-profile-presets.d.ts.map +1 -0
  3. package/dist/app-profile-presets.js +85 -0
  4. package/dist/app-profile-presets.js.map +1 -0
  5. package/dist/index.d.ts +37 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +93 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/patterns/assertion-patterns.d.ts +13 -0
  10. package/dist/patterns/assertion-patterns.d.ts.map +1 -0
  11. package/dist/patterns/assertion-patterns.js +903 -0
  12. package/dist/patterns/assertion-patterns.js.map +1 -0
  13. package/dist/patterns/capture-patterns.d.ts +21 -0
  14. package/dist/patterns/capture-patterns.d.ts.map +1 -0
  15. package/dist/patterns/capture-patterns.js +174 -0
  16. package/dist/patterns/capture-patterns.js.map +1 -0
  17. package/dist/patterns/focus-patterns.d.ts +22 -0
  18. package/dist/patterns/focus-patterns.d.ts.map +1 -0
  19. package/dist/patterns/focus-patterns.js +79 -0
  20. package/dist/patterns/focus-patterns.js.map +1 -0
  21. package/dist/patterns/form-patterns.d.ts +6 -0
  22. package/dist/patterns/form-patterns.d.ts.map +1 -0
  23. package/dist/patterns/form-patterns.js +239 -0
  24. package/dist/patterns/form-patterns.js.map +1 -0
  25. package/dist/patterns/interaction-patterns.d.ts +20 -0
  26. package/dist/patterns/interaction-patterns.d.ts.map +1 -0
  27. package/dist/patterns/interaction-patterns.js +633 -0
  28. package/dist/patterns/interaction-patterns.js.map +1 -0
  29. package/dist/patterns/keyboard-patterns.d.ts +7 -0
  30. package/dist/patterns/keyboard-patterns.d.ts.map +1 -0
  31. package/dist/patterns/keyboard-patterns.js +57 -0
  32. package/dist/patterns/keyboard-patterns.js.map +1 -0
  33. package/dist/patterns/navigation-patterns.d.ts +6 -0
  34. package/dist/patterns/navigation-patterns.d.ts.map +1 -0
  35. package/dist/patterns/navigation-patterns.js +185 -0
  36. package/dist/patterns/navigation-patterns.js.map +1 -0
  37. package/dist/patterns/scope-patterns.d.ts +7 -0
  38. package/dist/patterns/scope-patterns.d.ts.map +1 -0
  39. package/dist/patterns/scope-patterns.js +36 -0
  40. package/dist/patterns/scope-patterns.js.map +1 -0
  41. package/dist/patterns/scroll-patterns.d.ts +7 -0
  42. package/dist/patterns/scroll-patterns.d.ts.map +1 -0
  43. package/dist/patterns/scroll-patterns.js +25 -0
  44. package/dist/patterns/scroll-patterns.js.map +1 -0
  45. package/dist/patterns/setup-patterns.d.ts +6 -0
  46. package/dist/patterns/setup-patterns.d.ts.map +1 -0
  47. package/dist/patterns/setup-patterns.js +75 -0
  48. package/dist/patterns/setup-patterns.js.map +1 -0
  49. package/dist/patterns/storage-patterns.d.ts +26 -0
  50. package/dist/patterns/storage-patterns.d.ts.map +1 -0
  51. package/dist/patterns/storage-patterns.js +142 -0
  52. package/dist/patterns/storage-patterns.js.map +1 -0
  53. package/dist/patterns/table-pagination-patterns.d.ts +42 -0
  54. package/dist/patterns/table-pagination-patterns.d.ts.map +1 -0
  55. package/dist/patterns/table-pagination-patterns.js +93 -0
  56. package/dist/patterns/table-pagination-patterns.js.map +1 -0
  57. package/dist/patterns/table-patterns.d.ts +19 -0
  58. package/dist/patterns/table-patterns.d.ts.map +1 -0
  59. package/dist/patterns/table-patterns.js +594 -0
  60. package/dist/patterns/table-patterns.js.map +1 -0
  61. package/dist/trace-identity/aria-snapshot-head.d.ts +23 -0
  62. package/dist/trace-identity/aria-snapshot-head.d.ts.map +1 -0
  63. package/dist/trace-identity/aria-snapshot-head.js +26 -0
  64. package/dist/trace-identity/aria-snapshot-head.js.map +1 -0
  65. package/dist/trace-identity/playwright-identity-resolver.d.ts +10 -0
  66. package/dist/trace-identity/playwright-identity-resolver.d.ts.map +1 -0
  67. package/dist/trace-identity/playwright-identity-resolver.js +130 -0
  68. package/dist/trace-identity/playwright-identity-resolver.js.map +1 -0
  69. package/dist/trace-identity/trace-run-record-reporter.d.ts +39 -0
  70. package/dist/trace-identity/trace-run-record-reporter.d.ts.map +1 -0
  71. package/dist/trace-identity/trace-run-record-reporter.js +113 -0
  72. package/dist/trace-identity/trace-run-record-reporter.js.map +1 -0
  73. package/dist/utils/column-header.d.ts +37 -0
  74. package/dist/utils/column-header.d.ts.map +1 -0
  75. package/dist/utils/column-header.js +46 -0
  76. package/dist/utils/column-header.js.map +1 -0
  77. package/dist/utils/row-index.d.ts +18 -0
  78. package/dist/utils/row-index.d.ts.map +1 -0
  79. package/dist/utils/row-index.js +39 -0
  80. package/dist/utils/row-index.js.map +1 -0
  81. package/dist/utils/url-path-regex.d.ts +45 -0
  82. package/dist/utils/url-path-regex.d.ts.map +1 -0
  83. package/dist/utils/url-path-regex.js +68 -0
  84. package/dist/utils/url-path-regex.js.map +1 -0
  85. package/package.json +7 -3
  86. package/src/index.ts +5 -0
  87. package/src/trace-identity/aria-snapshot-head.ts +33 -0
  88. package/src/trace-identity/playwright-identity-resolver.ts +123 -0
  89. package/src/trace-identity/trace-run-record-reporter.ts +103 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion-patterns.js","sourceRoot":"","sources":["../../src/patterns/assertion-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { StepPattern } from '@sun-asterisk/sungen';
2
+ /**
3
+ * Capture & collection patterns (P5) — enable cross-screen data consistency and
4
+ * filter-result correctness that plain single-element assertions can't express.
5
+ *
6
+ * 1. Capture: `User remember [Product Name] text as {{selected_product_name}}`
7
+ * → stores the element's text/value into a runtime variable so a
8
+ * later step (on another screen) can assert against it.
9
+ * REQUIRES runtime data mode (default) — emits `testData.set(...)`.
10
+ *
11
+ * 2. List: `User see all [Product Name] contain {{selected_category}}`
12
+ * → asserts EVERY matching element's text contains the value
13
+ * (e.g. all products belong to the selected category/brand).
14
+ *
15
+ * 3. All-card: `User see all [Product Card] contain [Add To Cart] button`
16
+ * → asserts EVERY container element holds the child element
17
+ * (structural per-card proof: every card has name/price/action).
18
+ * Roadmap Q2 — the fix for "each card exposes X" claims.
19
+ */
20
+ export declare const capturePatterns: StepPattern[];
21
+ //# sourceMappingURL=capture-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-patterns.d.ts","sourceRoot":"","sources":["../../src/patterns/capture-patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAGrE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,EA2KxC,CAAC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.capturePatterns = void 0;
4
+ const row_index_1 = require("../utils/row-index");
5
+ /**
6
+ * Capture & collection patterns (P5) — enable cross-screen data consistency and
7
+ * filter-result correctness that plain single-element assertions can't express.
8
+ *
9
+ * 1. Capture: `User remember [Product Name] text as {{selected_product_name}}`
10
+ * → stores the element's text/value into a runtime variable so a
11
+ * later step (on another screen) can assert against it.
12
+ * REQUIRES runtime data mode (default) — emits `testData.set(...)`.
13
+ *
14
+ * 2. List: `User see all [Product Name] contain {{selected_category}}`
15
+ * → asserts EVERY matching element's text contains the value
16
+ * (e.g. all products belong to the selected category/brand).
17
+ *
18
+ * 3. All-card: `User see all [Product Card] contain [Add To Cart] button`
19
+ * → asserts EVERY container element holds the child element
20
+ * (structural per-card proof: every card has name/price/action).
21
+ * Roadmap Q2 — the fix for "each card exposes X" claims.
22
+ */
23
+ exports.capturePatterns = [
24
+ {
25
+ // FR2 (issue #468): `User remember [Col] column in [Table] table row {{n}} as {{var}}`
26
+ // — read a cell by POSITION so a later `… in [Table] table row {{n}}` action targets
27
+ // the same `getByRole('row').nth(...)` chain (no read-then-act two-query race).
28
+ // The cell comes from the table entry's `columns:` config (index); without one, the
29
+ // whole row's text is captured.
30
+ // NOTE: the `table-` name prefix opts out of generateStep's parentRef auto-scoping
31
+ // (the table locator is resolved internally from the step text, like all table-* patterns).
32
+ name: 'table-capture-row-nth',
33
+ platforms: ['web'],
34
+ platformAlternative: 'there is no HTML table on a native screen - remember the value from the row element itself with the generic capture step (`User remember [Row 2 Amount] as {{v}}`)',
35
+ matcher: (step) => /\bremember\b/i.test(step.text) && /\bas\s+\{\{[^}]+\}\}/i.test(step.text) && row_index_1.TABLE_ROW_NTH.test(step.text),
36
+ resolver: (step, context) => {
37
+ const brackets = step.text.match(/\[([^\]]+)\]/g) || [];
38
+ const columnName = brackets[0]?.replace(/[\[\]]/g, '') || '';
39
+ const tableName = brackets.length >= 2 ? brackets[1].replace(/[\[\]]/g, '') : '';
40
+ const rowToken = step.text.match(row_index_1.TABLE_ROW_NTH)[1];
41
+ const varName = step.text.match(/\bas\s+\{\{([^}]+)\}\}/i)[1].trim();
42
+ const tableResolved = context.selectorResolver.resolveSelector(tableName, context.featureName, 'table', 0);
43
+ // Cell by column index from the table entry's `columns:` config.
44
+ const columnKey = columnName.normalize('NFC').toLowerCase().trim().replace(/\s+/g, ' ');
45
+ const column = tableResolved.columns?.[columnKey];
46
+ const cellExpr = column !== undefined
47
+ ? `tableRow.getByRole('cell').nth(${column.index})`
48
+ : 'tableRow';
49
+ context.dataResolver.registerCaptured(varName);
50
+ return {
51
+ templateName: 'capture-row-column',
52
+ data: { ...tableResolved, varName, cellExpr, rowIndexExpr: (0, row_index_1.rowIndexExpr)(rowToken, context) },
53
+ comment: `Remember ${columnName} column in ${tableName} table row ${rowToken} as ${varName}`,
54
+ };
55
+ },
56
+ priority: 36,
57
+ },
58
+ {
59
+ name: 'capture-variable',
60
+ matcher: (step) => /\bremember\b/i.test(step.text) && /\bas\b/i.test(step.text) && !!step.selectorRef && !!step.dataRef,
61
+ resolver: (step, context) => {
62
+ const resolved = context.selectorResolver.resolveSelector(step.selectorRef, undefined, step.elementType, step.nth);
63
+ const varName = step.dataRef;
64
+ // What to capture is stated BETWEEN the reference and `as` — nowhere else (#736). Scanning the
65
+ // whole sentence also saw the word inside the reference name and inside the variable name, so
66
+ // `remember [Name Value] text as {{v}}` and `remember [Label] text as {{value}}` both compiled
67
+ // to .inputValue() and died on a <span> with "Node is not an <input>".
68
+ //
69
+ // `step.elementType` alone is NOT enough: it holds only the FIRST token after `]`, so the
70
+ // documented `remember [Email] field value as {{v}}` reads as 'field' and would lose its value
71
+ // capture. Slicing after `]` first is also what makes the `as` split safe — a reference like
72
+ // `[As Of Date]` never reaches it.
73
+ const descriptor = step.text.slice(step.text.indexOf(']') + 1).split(/\bas\b/i)[0];
74
+ const isValue = /\bvalue\b/i.test(descriptor);
75
+ // Register so later `{{varName}}` references resolve to testData.get(varName)
76
+ // and skip YAML validation.
77
+ context.dataResolver.registerCaptured(varName);
78
+ // A capture reads ONE element, and the template now takes the first match rather than dying
79
+ // in strict mode. That is the right default — the documented workaround for the failure was
80
+ // `nth: 0`, i.e. this — but taking the first of many is a decision, and nothing else would
81
+ // ever say so: a capture feeds later steps, so a value read off the wrong row travels
82
+ // silently into whatever consumes it, possibly in another file.
83
+ //
84
+ // Reported on what the entry PROVES about cardinality, not on its strategy name. An id, a
85
+ // testid, a role WITH an accessible name, a label or a placeholder each address one thing by
86
+ // construction. `getByText` does not — it matches every element containing the text, which is
87
+ // exactly a list — and neither does a bare role or a class selector. The earlier reading of
88
+ // this rule ("warn for locator/css") got both halves wrong: it fired on `#order-id`, which is
89
+ // singular by definition, and stayed silent on `type: text`, which the `.first()` above
90
+ // silently narrows.
91
+ const value = String(resolved.value ?? '');
92
+ // Strategies that address ONE element by construction. The mobile native four are here for the
93
+ // same reason `testid` is: they are hand-written targeting expressions naming an element by an
94
+ // identifying attribute, so warning on them would fire on most captures in a mobile suite.
95
+ const IDENTIFYING = new Set([
96
+ 'id', 'testid', 'label', 'placeholder',
97
+ 'accessibility-id', 'xpath', 'android-uiautomator', 'ios-predicate',
98
+ ]);
99
+ const singular = resolved.nth !== undefined
100
+ || IDENTIFYING.has(String(resolved.strategy))
101
+ || (resolved.strategy === 'role' && !!resolved.name)
102
+ || ((resolved.strategy === 'locator' || resolved.strategy === 'css') && value.includes('#'));
103
+ if (!singular) {
104
+ const fix = resolved.strategy === 'role'
105
+ ? 'give the role an accessible name, or declare the index you want ("nth: 0")'
106
+ : 'declare the index you want ("nth: 0"), or narrow the selector to the one element';
107
+ context.diagnostics?.add('SG-W036', `"[${step.selectorRef}]" is captured through a ${resolved.strategy} selector `
108
+ + `("${value}") that can match several elements and declares no "nth:", so this step reads `
109
+ + `whichever one the page yields FIRST. If it describes every item in a list, the captured `
110
+ + `{{${varName}}} is the first row's value rather than the one the scenario means. `
111
+ + `To say the first one is meant, ${fix}.`, { feature: context.featureName, step: step.text });
112
+ }
113
+ return {
114
+ templateName: 'capture-variable',
115
+ data: { ...resolved, varName, capture: isValue ? 'inputValue' : 'textContent' },
116
+ comment: `Remember ${step.selectorRef} ${isValue ? 'value' : 'text'} as ${varName}`,
117
+ };
118
+ },
119
+ priority: 35,
120
+ },
121
+ {
122
+ name: 'all-contain-assertion',
123
+ matcher: (step) => /\b(see|sees)\b/i.test(step.text) &&
124
+ /\ball\b/i.test(step.text) &&
125
+ /(contain|contains|match|matches|belong)/i.test(step.text) &&
126
+ !!step.selectorRef && !!(step.value || step.dataRef),
127
+ resolver: (step, context) => {
128
+ const resolved = context.selectorResolver.resolveSelector(step.selectorRef, undefined, step.elementType, step.nth);
129
+ const expectedText = step.value || context.dataResolver.resolveData(step.dataRef, context.featureName);
130
+ return {
131
+ templateName: 'all-contain-assertion',
132
+ data: { ...resolved, expectedText, selectorRef: step.selectorRef, stepCounter: context.stepCounter },
133
+ comment: `Assert all ${step.selectorRef} contain "${step.value || step.dataRef}"`,
134
+ };
135
+ },
136
+ priority: 34,
137
+ },
138
+ {
139
+ // Q2 — all-card structural assertion: every container holds the child element.
140
+ // Distinguished from `all-contain-assertion` by a second [ref] (childRef) and the
141
+ // ABSENCE of a value/data (which would make it a text-contains assertion instead).
142
+ name: 'all-contain-element',
143
+ matcher: (step) => /\b(see|sees)\b/i.test(step.text) &&
144
+ /\ball\b/i.test(step.text) &&
145
+ /(contain|contains|include|includes)/i.test(step.text) &&
146
+ !!step.selectorRef && !!step.childRef && !step.value && !step.dataRef,
147
+ resolver: (step, context) => {
148
+ const container = context.selectorResolver.resolveSelector(step.selectorRef, undefined, step.elementType, step.nth);
149
+ const child = context.selectorResolver.resolveSelector(step.childRef, undefined, step.childElementType, 0);
150
+ const sc = context.stepCounter;
151
+ return {
152
+ templateName: 'all-contain-element',
153
+ data: {
154
+ ...container,
155
+ selectorRef: step.selectorRef,
156
+ childRef: step.childRef,
157
+ stepCounter: sc,
158
+ // C4 — plain variable NAMES only, no built locator expression. `.nth()` is a
159
+ // Playwright-only method; baking it into a string here (as the driver-agnostic
160
+ // pattern layer) leaked into the Appium output. Each adapter's own
161
+ // all-contain-element template composes its own per-index child chain
162
+ // (Playwright: `{{containerVar}}.nth({{containerIndexVar}})`; Appium:
163
+ // `{{containerVar}}[{{containerIndexVar}}]`).
164
+ containerVar: `__cards_${sc}`,
165
+ containerIndexVar: `__i_${sc}`,
166
+ child,
167
+ },
168
+ comment: `Assert all ${step.selectorRef} contain [${step.childRef}]`,
169
+ };
170
+ },
171
+ priority: 36,
172
+ },
173
+ ];
174
+ //# sourceMappingURL=capture-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-patterns.js","sourceRoot":"","sources":["../../src/patterns/capture-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Focus/tab-order assertion — a Gherkin data table declares the expected keyboard
3
+ * focus sequence:
4
+ *
5
+ * Then User see tab order:
6
+ * | Ref |
7
+ * | [Station Dropdown] |
8
+ * | [Departure Date] |
9
+ *
10
+ * Compiles to: focus row 1 (the pinned origin — there is deliberately no separate
11
+ * `focus [X]` step), then for each following row press Tab and assert that element
12
+ * is focused. Web-only: no Appium twin — a mobile feature using this step fails
13
+ * loudly at compile ("Template not found") instead of faking a result.
14
+ *
15
+ * Cell refs ARE selector references (unlike storage keys) — each resolves through
16
+ * selectors.yaml. Resolution failures are COLLECTED and thrown as one compile error
17
+ * listing every broken row: neither the fail-open `getByRole` guess some table
18
+ * paths use (a wrong a11y assertion on a deliverable), nor dying on the first typo.
19
+ */
20
+ import { StepPattern } from '@sun-asterisk/sungen';
21
+ export declare const focusPatterns: StepPattern[];
22
+ //# sourceMappingURL=focus-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-patterns.d.ts","sourceRoot":"","sources":["../../src/patterns/focus-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD,eAAO,MAAM,aAAa,EAAE,WAAW,EAwDtC,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * Focus/tab-order assertion — a Gherkin data table declares the expected keyboard
4
+ * focus sequence:
5
+ *
6
+ * Then User see tab order:
7
+ * | Ref |
8
+ * | [Station Dropdown] |
9
+ * | [Departure Date] |
10
+ *
11
+ * Compiles to: focus row 1 (the pinned origin — there is deliberately no separate
12
+ * `focus [X]` step), then for each following row press Tab and assert that element
13
+ * is focused. Web-only: no Appium twin — a mobile feature using this step fails
14
+ * loudly at compile ("Template not found") instead of faking a result.
15
+ *
16
+ * Cell refs ARE selector references (unlike storage keys) — each resolves through
17
+ * selectors.yaml. Resolution failures are COLLECTED and thrown as one compile error
18
+ * listing every broken row: neither the fail-open `getByRole` guess some table
19
+ * paths use (a wrong a11y assertion on a deliverable), nor dying on the first typo.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.focusPatterns = void 0;
23
+ // The step line carries no refs, so masked text == raw text. Anchored: exactly
24
+ // `see tab order:` — nothing else fits, nothing else may claim it.
25
+ const reTabOrder = /^\s*(?:user\s+)?sees?\s+tab\s+order\s*:?\s*$/i;
26
+ /** `[Ref]` with an optional trailing element type: `[Save] button`. */
27
+ const CELL = /^\s*\[([^\]]+)\]\s*([A-Za-z][A-Za-z-]*)?\s*$/;
28
+ exports.focusPatterns = [
29
+ {
30
+ name: 'tab-order-assertion',
31
+ platforms: ['web'],
32
+ platformAlternative: 'a touch screen has no keyboard focus traversal - run the accessibility audit manually and tag the scenario @manual:M10',
33
+ matcher: (step) => reTabOrder.test(step.text),
34
+ resolver: (step, context) => {
35
+ const table = step.dataTable;
36
+ // The parser silently DROPS a table with fewer than 2 total rows, so a
37
+ // missing header row and a missing table look identical here — both must
38
+ // be a loud compile error, or the scenario would pass asserting nothing.
39
+ if (!table) {
40
+ throw new Error(`"${step.text}": tab order needs a data table with a header row and at least 2 element rows:\n` +
41
+ ' | Ref |\n | [First Element] |\n | [Second Element] |');
42
+ }
43
+ if (/^\s*\[/.test(table.headers[0] ?? '')) {
44
+ throw new Error(`"${step.text}": the first table row looks like an element ("${table.headers[0]}") — it was consumed as the HEADER. ` +
45
+ 'Add a header row (`| Ref |`) so no element is silently swallowed.');
46
+ }
47
+ if (table.rows.length < 2) {
48
+ throw new Error(`"${step.text}": a tab order needs at least 2 element rows — with one row there is nothing after the origin to assert, and the step would pass unconditionally.`);
49
+ }
50
+ const cells = [];
51
+ const errors = [];
52
+ table.rows.forEach((row, i) => {
53
+ const raw = row.cells[0] ?? '';
54
+ const m = raw.match(CELL);
55
+ if (!m) {
56
+ errors.push(`row ${i + 1} ("${raw}"): cell must be "[Ref]" with an optional element type, e.g. "[Save] button"`);
57
+ return;
58
+ }
59
+ try {
60
+ const resolved = context.selectorResolver.resolveSelector(m[1], context.featureName, m[2], 0);
61
+ cells.push({ ...resolved, label: m[1] });
62
+ }
63
+ catch (e) {
64
+ errors.push(`row ${i + 1} [${m[1]}]: ${e instanceof Error ? e.message : String(e)}`);
65
+ }
66
+ });
67
+ if (errors.length > 0) {
68
+ throw new Error(`"${step.text}": ${errors.length} tab-order cell(s) failed to resolve — fix selectors.yaml, no fallback is guessed:\n - ${errors.join('\n - ')}`);
69
+ }
70
+ return {
71
+ templateName: 'tab-order-assertion',
72
+ data: { cells, stepCounter: context.stepCounter },
73
+ comment: `Assert tab order: ${cells.map((c) => `[${c.label}]`).join(' → ')}`,
74
+ };
75
+ },
76
+ priority: 60,
77
+ },
78
+ ];
79
+ //# sourceMappingURL=focus-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-patterns.js","sourceRoot":"","sources":["../../src/patterns/focus-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { StepPattern } from '@sun-asterisk/sungen';
2
+ /**
3
+ * Form action patterns: fill, type, select, check, uncheck
4
+ */
5
+ export declare const formPatterns: StepPattern[];
6
+ //# sourceMappingURL=form-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-patterns.d.ts","sourceRoot":"","sources":["../../src/patterns/form-patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkC,MAAM,sBAAsB,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,WAAW,EAmPrC,CAAC"}