@qoretechnologies/reqraft 0.10.52 → 0.10.53-pr.121.gaf1e48a
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.
- package/.tasks/EXPORT_EXPRESSION_BUILDER.md +38 -0
- package/.tasks/INDEX.md +1 -0
- package/design/IDE_INTEGRATION.md +3 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +6 -1
- package/dist/components/form/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/index.tsx +5 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# TASK — export the bare `ExpressionBuilder` from the form barrel
|
|
2
|
+
|
|
3
|
+
**Status:** committed `0eea9e7`, pushed (branch `feature/119_export-expression-builder`), PR open — awaiting CI + review
|
|
4
|
+
|
|
5
|
+
Issue: [toolkit-react#119](https://github.com/qoretechnologies/toolkit-react/issues/119).
|
|
6
|
+
Design: [`design/IDE_INTEGRATION.md`](../design/IDE_INTEGRATION.md) (the shell-at-root / bare-builder-nested rule;
|
|
7
|
+
revised note added in this task).
|
|
8
|
+
|
|
9
|
+
## Why
|
|
10
|
+
|
|
11
|
+
The library's own `TemplateField` renders the `ExpressionField` shell for a root field (FormEngine sets
|
|
12
|
+
`allowTextExpressions`) and the bare `ExpressionBuilder` for nested operands — the June 11 "top-level
|
|
13
|
+
re-wrap" decision in `FIELD_STACK_REPORT.md`. The barrel exported the shell but not the builder, so a host
|
|
14
|
+
mirroring that rule (qorus-ide's `template.tsx`) had to deep-import `dist/components/form/expressions/builder`.
|
|
15
|
+
|
|
16
|
+
## Surface area
|
|
17
|
+
|
|
18
|
+
| File | Change |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `src/components/form/index.tsx` | `export { ExpressionBuilder }` + `export type { IExpressionBuilderProps }` next to the shell |
|
|
21
|
+
| `__tests__/formBarrelExports.test.ts` | asserts both come from the barrel — fails if the export is removed |
|
|
22
|
+
| `design/IDE_INTEGRATION.md` | one-line revision under "the shell is the host's component" |
|
|
23
|
+
| `package.json` | `0.10.52` → `0.10.53` (single bump) |
|
|
24
|
+
|
|
25
|
+
## Phases
|
|
26
|
+
|
|
27
|
+
- [x] export + type export
|
|
28
|
+
- [x] unit test through `yarn test`
|
|
29
|
+
- [x] `build:test:prod` green
|
|
30
|
+
- [ ] `yarn precheck` (lint + unit + prod tsc)
|
|
31
|
+
- [ ] **STOP — user verifies before commit** (no visual surface: nothing to click; the test is the proof)
|
|
32
|
+
- [ ] `/audit`, commit, push, PR, CI, qlip (expect 0 changed snapshots)
|
|
33
|
+
|
|
34
|
+
## Not this task
|
|
35
|
+
|
|
36
|
+
toolkit-react#120 was filed alongside this and closed as invalid: both operand mounts have forwarded
|
|
37
|
+
`expressions_url` since the port (5905e52); the symptom was qorus-ide's raw-catalogue override on its own
|
|
38
|
+
legacy builder, fixed there.
|
package/.tasks/INDEX.md
CHANGED
|
@@ -60,6 +60,7 @@ needs phase 1.
|
|
|
60
60
|
| [BRANCH_REMEDIATION](./BRANCH_REMEDIATION.md) | done pending user verify (uncommitted) — jest 268→356, plays 241→255, lint/tsc clean | **10th.** Burn-down of the 2026-06-10 full-branch audit: tests/stories/API/comment-voice remediation + behavior fixes (Select modal-click collapse, edge-triggered Url, ReqraftLspClient rename, CI auth wiring). Ledger: gitignored `SWEEP.local.md`. |
|
|
61
61
|
| [TEMPLATE_TOKEN_GRAMMAR](./TEMPLATE_TOKEN_GRAMMAR.md) | committed `0ef167c`, in PR (branch `bugfix/template-token-grammar`) — user-verified 2026-08-27; 13/13 unit, 21/21 template plays, qlip PNGs read | **11th (bugfix).** Braced `$data:{…}` state-output refs rehydrate as raw text: canonical token grammar + strict whole-token check + TemplateField renders whole-token values as the picker chip. Twin fix applied in qorus-ide the same day; ships as a normal per-PR patch release (`0.10.37`). |
|
|
62
62
|
| [EXPRESSION_FIELD_SEAMS](./EXPRESSION_FIELD_SEAMS.md) | committed `f5fb2ee`, pushed (branch `bugfix/116_expression-field-seams`) — user-verified 2026-09-07; PR not yet opened | **12th (bugfix).** The `extraActions` seam stopped one hop short of the `ExpressionField` shell hosts mount, and the builder's operand `TemplateField` mounts dropped it again — qorus-ide lost its AI-assist button on every expression card when it adopted the shell ([#116](https://github.com/qoretechnologies/toolkit-react/issues/116)). Forward it through both hops; pin with a nested-operand story; ships as a per-PR patch (`0.10.51`; re-based onto `4860e6e` after #114 published 0.10.50). |
|
|
63
|
+
| [EXPORT_EXPRESSION_BUILDER](./EXPORT_EXPRESSION_BUILDER.md) | committed `0eea9e7`, pushed, PR open (branch `feature/119_export-expression-builder`) | **13th (surface fix).** The barrel exported the `ExpressionField` shell but not the bare `ExpressionBuilder`, so a host mirroring the library's root/nested rule had to deep-import `dist/…/builder` ([#119](https://github.com/qoretechnologies/toolkit-react/issues/119)). Export + a barrel test; ships as `0.10.53`. |
|
|
63
64
|
|
|
64
65
|
Not yet scoped (acknowledged in the design doc): the remaining
|
|
65
66
|
`ui_type` editors (`tool-catalog`, `processor-mappings`, `test-cases`,
|
|
@@ -40,6 +40,9 @@ checklist the IDE-integration PR ticks off so that can't happen.
|
|
|
40
40
|
expression mounts its own builder. A seam that stops one hop short reads
|
|
41
41
|
as wired and is not — which is the silent-regression class this checklist
|
|
42
42
|
exists to prevent.
|
|
43
|
+
*Revised 2026-09-08:* a host that mirrors this rule needs the bare builder
|
|
44
|
+
from the barrel; it is exported next to the shell as of 0.10.53 (#119) — no
|
|
45
|
+
deep import of `dist/…/expressions/builder` required.
|
|
43
46
|
- **Open product call (B4):** whether reqraft should ALSO ship a *native*
|
|
44
47
|
saved-values (so non-IDE consumers get it without wiring the seam). The
|
|
45
48
|
storage primitive exists (`useReqraftStorage` mirrors the IDE's
|
|
@@ -31,4 +31,6 @@ export * from './expressions/useExpressions';
|
|
|
31
31
|
export { renderExpressionToText, useRenderExpression } from './expressions/useRenderExpression';
|
|
32
32
|
export type { IRenderedExpression, IUseRenderExpressionResult, } from './expressions/useRenderExpression';
|
|
33
33
|
export * from './expressions/ExpressionField';
|
|
34
|
+
export { ExpressionBuilder } from './expressions/builder';
|
|
35
|
+
export type { IExpressionBuilderProps } from './expressions/builder';
|
|
34
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EACV,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAChG,YAAY,EACV,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAI9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.useRenderExpression = exports.renderExpressionToText = void 0;
|
|
17
|
+
exports.ExpressionBuilder = exports.useRenderExpression = exports.renderExpressionToText = void 0;
|
|
18
18
|
__exportStar(require("./fields/Field"), exports);
|
|
19
19
|
__exportStar(require("./fields/allowed-values/AllowedValues"), exports);
|
|
20
20
|
__exportStar(require("./fields/array/ArrayAuto"), exports);
|
|
@@ -51,4 +51,9 @@ var useRenderExpression_1 = require("./expressions/useRenderExpression");
|
|
|
51
51
|
Object.defineProperty(exports, "renderExpressionToText", { enumerable: true, get: function () { return useRenderExpression_1.renderExpressionToText; } });
|
|
52
52
|
Object.defineProperty(exports, "useRenderExpression", { enumerable: true, get: function () { return useRenderExpression_1.useRenderExpression; } });
|
|
53
53
|
__exportStar(require("./expressions/ExpressionField"), exports);
|
|
54
|
+
// The bare builder is public too: the library's own rule renders the shell at a
|
|
55
|
+
// root field and the bare builder for nested operands, and a host that follows
|
|
56
|
+
// it must be able to reach the builder without a deep import (#119).
|
|
57
|
+
var builder_1 = require("./expressions/builder");
|
|
58
|
+
Object.defineProperty(exports, "ExpressionBuilder", { enumerable: true, get: function () { return builder_1.ExpressionBuilder; } });
|
|
54
59
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,wEAAsD;AACtD,2DAAyC;AACzC,gEAA8C;AAC9C,8DAA4C;AAC5C,8DAA4C;AAC5C,2DAAyC;AACzC,mDAAiC;AACjC,6DAA2C;AAC3C,2DAAyC;AACzC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,kEAAgD;AAChD,6DAA2C;AAC3C,6EAA2D;AAC3D,yDAAuC;AACvC,yDAAuC;AACvC,kEAAgD;AAChD,8DAA4C;AAC5C,yDAAuC;AACvC,mEAAiD;AACjD,yDAAuC;AACvC,sEAAoD;AACpD,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,yDAAuC;AACvC,sDAAoC;AACpC,+DAA6C;AAC7C,wEAAwE;AACxE,qDAAqD;AACrD,yEAAgG;AAAvF,6HAAA,sBAAsB,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AAKpD,gEAA8C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/form/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,wEAAsD;AACtD,2DAAyC;AACzC,gEAA8C;AAC9C,8DAA4C;AAC5C,8DAA4C;AAC5C,2DAAyC;AACzC,mDAAiC;AACjC,6DAA2C;AAC3C,2DAAyC;AACzC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,kEAAgD;AAChD,6DAA2C;AAC3C,6EAA2D;AAC3D,yDAAuC;AACvC,yDAAuC;AACvC,kEAAgD;AAChD,8DAA4C;AAC5C,yDAAuC;AACvC,mEAAiD;AACjD,yDAAuC;AACvC,sEAAoD;AACpD,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,yDAAuC;AACvC,sDAAoC;AACpC,+DAA6C;AAC7C,wEAAwE;AACxE,qDAAqD;AACrD,yEAAgG;AAAvF,6HAAA,sBAAsB,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AAKpD,gEAA8C;AAC9C,gFAAgF;AAChF,+EAA+E;AAC/E,qEAAqE;AACrE,iDAA0D;AAAjD,4GAAA,iBAAiB,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qoretechnologies/reqraft",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.53-pr.121.gaf1e48a",
|
|
4
4
|
"description": "ReQraft is a collection of React components and hooks that are used across Qore Technologies' products made using the ReQore component library from Qore.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -36,3 +36,8 @@ export type {
|
|
|
36
36
|
IUseRenderExpressionResult,
|
|
37
37
|
} from './expressions/useRenderExpression';
|
|
38
38
|
export * from './expressions/ExpressionField';
|
|
39
|
+
// The bare builder is public too: the library's own rule renders the shell at a
|
|
40
|
+
// root field and the bare builder for nested operands, and a host that follows
|
|
41
|
+
// it must be able to reach the builder without a deep import (#119).
|
|
42
|
+
export { ExpressionBuilder } from './expressions/builder';
|
|
43
|
+
export type { IExpressionBuilderProps } from './expressions/builder';
|