@qoretechnologies/reqraft 0.10.50-pr.117.ge967522 → 0.10.50

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 (51) hide show
  1. package/dist/components/form/engine/FormEngine.d.ts +24 -0
  2. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  3. package/dist/components/form/engine/FormEngine.js +49 -31
  4. package/dist/components/form/engine/FormEngine.js.map +1 -1
  5. package/dist/components/form/expressions/ExpressionField.d.ts +2 -4
  6. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  7. package/dist/components/form/expressions/ExpressionField.js +2 -2
  8. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  9. package/dist/components/form/expressions/builder/argumentWrapper.d.ts +2 -13
  10. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  11. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -59
  12. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  13. package/dist/components/form/expressions/builder/index.d.ts +2 -4
  14. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  15. package/dist/components/form/expressions/builder/index.js +15 -86
  16. package/dist/components/form/expressions/builder/index.js.map +1 -1
  17. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  18. package/dist/components/form/expressions/mockExpressions.js +0 -18
  19. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  20. package/dist/components/form/expressions/types.d.ts +0 -7
  21. package/dist/components/form/expressions/types.d.ts.map +1 -1
  22. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +2 -3
  23. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  24. package/dist/components/form/fields/schema-definition/MigrationsTab.js +3 -3
  25. package/dist/components/form/fields/schema-definition/MigrationsTab.js.map +1 -1
  26. package/dist/components/form/fields/schema-definition/helpers.d.ts +2 -0
  27. package/dist/components/form/fields/schema-definition/helpers.d.ts.map +1 -1
  28. package/dist/components/form/fields/schema-definition/helpers.js +20 -1
  29. package/dist/components/form/fields/schema-definition/helpers.js.map +1 -1
  30. package/dist/components/form/fields/template/TemplateField.d.ts +1 -20
  31. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  32. package/dist/components/form/fields/template/TemplateField.js +6 -21
  33. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  34. package/dist/helpers/common.d.ts +0 -4
  35. package/dist/helpers/common.d.ts.map +1 -1
  36. package/dist/helpers/common.js +1 -30
  37. package/dist/helpers/common.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/components/form/engine/FormEngine.stories.tsx +179 -4
  40. package/src/components/form/engine/FormEngine.tsx +78 -20
  41. package/src/components/form/expressions/ExpressionField.tsx +1 -5
  42. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -288
  43. package/src/components/form/expressions/builder/argumentWrapper.tsx +11 -136
  44. package/src/components/form/expressions/builder/index.tsx +5 -136
  45. package/src/components/form/expressions/mockExpressions.ts +0 -18
  46. package/src/components/form/expressions/types.ts +0 -9
  47. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +1 -1
  48. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +1 -1
  49. package/src/components/form/fields/schema-definition/helpers.ts +9 -0
  50. package/src/components/form/fields/template/TemplateField.tsx +3 -70
  51. package/src/helpers/common.ts +0 -31
@@ -153,6 +153,11 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
153
153
  * breathing room) so the form sits flush to its container's edges. For embeds
154
154
  * that own their own gutters — e.g. the SchemaDefinition tab body, where the
155
155
  * form should line up with the section description above it. Default `false`.
156
+ *
157
+ * @deprecated No-op. The wrap has never had the gutter this prop claims to
158
+ * drop — the value reached a styled template with no interpolation slot — so
159
+ * every form already renders flush. Kept so existing call sites keep
160
+ * compiling; do not add new ones.
156
161
  */
157
162
  compactFlush?: boolean;
158
163
  /**
@@ -161,8 +166,27 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
161
166
  * scroll context, so the toolbar isn't sticky and its header drops the dark
162
167
  * blurred backdrop (and the stacking context that goes with it) — it sits
163
168
  * transparently inside the parent's edit card. Default `false`.
169
+ *
170
+ * Implies `compactScroll: 'host'` — a nested sub-form never owns a scroller.
164
171
  */
165
172
  compactNested?: boolean;
173
+ /**
174
+ * Compact mode only: who owns the form's vertical scroll.
175
+ *
176
+ * - `'host'` (default) — the surrounding page, panel or drawer scrolls, and
177
+ * the form grows to its content. This is right almost everywhere: a form
178
+ * inside something that already scrolls must not cap its own height, or the
179
+ * reader gets two scrollbars side by side in two different styles and no
180
+ * way to tell which one moves what.
181
+ * - `'own'` — the form caps at the host's available height and scrolls its
182
+ * own body. Reach for this only when the host has a definite height and is
183
+ * NOT itself a scroll container (it would clip the form instead of
184
+ * scrolling it), or when the host's scrollport is padded and the sticky
185
+ * toolbar must pin flush against an unpadded box.
186
+ *
187
+ * Default `'host'`.
188
+ */
189
+ compactScroll?: 'own' | 'host';
166
190
  /**
167
191
  * Compact mode only: props forwarded to the read-first form's outer
168
192
  * `ReqorePanel` — the panel that carries the sticky toolbar header and holds
@@ -1 +1 @@
1
- {"version":3,"file":"FormEngine.d.ts","sourceRoot":"","sources":["../../../../src/components/form/engine/FormEngine.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormEngine.d.ts","sourceRoot":"","sources":["../../../../src/components/form/engine/FormEngine.tsx"],"names":[],"mappings":"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"}
@@ -111,7 +111,7 @@ var reduce_1 = __importDefault(require("lodash/reduce"));
111
111
  var size_1 = __importDefault(require("lodash/size"));
112
112
  var react_2 = __importStar(require("react"));
113
113
  var react_use_1 = require("react-use");
114
- var styled_components_1 = __importDefault(require("styled-components"));
114
+ var styled_components_1 = __importStar(require("styled-components"));
115
115
  var use_context_selector_1 = require("use-context-selector");
116
116
  var common_1 = require("../../../helpers/common");
117
117
  var options_1 = require("../../../helpers/options");
@@ -186,12 +186,16 @@ var PositiveColorEffect = {
186
186
  };
187
187
  // Compact (read-first) layout: flat label | value | action rows in collapsible
188
188
  // group panels; colours come in as props so the layout follows the Reqore theme.
189
- var StyledCompactWrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 10px;\n width: 100%;\n /* Allow the wrap to shrink inside flex/grid parents so its rows' ellipsis can\n engage instead of overflowing the container horizontally. */\n min-width: 0;\n max-width: 100%;\n /* Own our scroll context instead of borrowing the host's. The sticky toolbar\n pins to whatever scrolls; if that scroller carries top padding (e.g. a\n ReqorePanel/ReqoreContent body), sticky `top: 0` resolves against its\n padding box and leaves an unblurred strip above the toolbar. By scrolling\n here \u2014 an UNPADDED box \u2014 the toolbar always pins flush and content ghosts\n cleanly beneath it, regardless of host padding (mirrors how the IDE\n dashboard keeps its StyledScrollBody scroller unpadded).\n We cap at the host's available height and scroll past it, but do NOT grow\n to fill it \u2014 short forms still hug their content. When the host height is\n indefinite, `max-height: 100%` resolves to none and the box grows so the\n host scrolls as before (graceful fallback). */\n min-height: 0;\n max-height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n\n /* Option logos (e.g. language images) render as <img> inside ReqoreIcon's\n square box; constrain them so portrait PNGs don't overflow the row. */\n .reqore-icon img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 10px;\n width: 100%;\n /* Allow the wrap to shrink inside flex/grid parents so its rows' ellipsis can\n engage instead of overflowing the container horizontally. */\n min-width: 0;\n max-width: 100%;\n /* Own our scroll context instead of borrowing the host's. The sticky toolbar\n pins to whatever scrolls; if that scroller carries top padding (e.g. a\n ReqorePanel/ReqoreContent body), sticky \\`top: 0\\` resolves against its\n padding box and leaves an unblurred strip above the toolbar. By scrolling\n here \u2014 an UNPADDED box \u2014 the toolbar always pins flush and content ghosts\n cleanly beneath it, regardless of host padding (mirrors how the IDE\n dashboard keeps its StyledScrollBody scroller unpadded).\n We cap at the host's available height and scroll past it, but do NOT grow\n to fill it \u2014 short forms still hug their content. When the host height is\n indefinite, \\`max-height: 100%\\` resolves to none and the box grows so the\n host scrolls as before (graceful fallback). */\n min-height: 0;\n max-height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n\n /* Option logos (e.g. language images) render as <img> inside ReqoreIcon's\n square box; constrain them so portrait PNGs don't overflow the row. */\n .reqore-icon img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n"])));
189
+ var StyledCompactWrap = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 10px;\n width: 100%;\n /* Allow the wrap to shrink inside flex/grid parents so its rows' ellipsis can\n engage instead of overflowing the container horizontally. */\n min-width: 0;\n max-width: 100%;\n\n /* Scroll ownership \u2014 see `compactScroll`.\n\n 'host' (the default): the page or panel around us already scrolls, so we\n must not cap our height and scroll our own body, or the reader gets two\n scrollbars in two styles and cannot tell which moves what.\n\n `overflow-x: clip`, NOT `hidden`: CSS coerces an `overflow-y: visible`\n to `auto` whenever the other axis is neither visible nor clip, which would\n leave this box a scroll container \u2014 the element stops scrolling only\n because `max-height: none` means nothing overflows, while `position:\n sticky` inside it still resolves against US instead of the host, so the\n toolbar silently stops pinning. `clip` keeps the horizontal guard without\n that coercion. */\n ", "\n\n /* Option logos (e.g. language images) render as <img> inside ReqoreIcon's\n square box; constrain them so portrait PNGs don't overflow the row. */\n .reqore-icon img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 10px;\n width: 100%;\n /* Allow the wrap to shrink inside flex/grid parents so its rows' ellipsis can\n engage instead of overflowing the container horizontally. */\n min-width: 0;\n max-width: 100%;\n\n /* Scroll ownership \u2014 see \\`compactScroll\\`.\n\n 'host' (the default): the page or panel around us already scrolls, so we\n must not cap our height and scroll our own body, or the reader gets two\n scrollbars in two styles and cannot tell which moves what.\n\n \\`overflow-x: clip\\`, NOT \\`hidden\\`: CSS coerces an \\`overflow-y: visible\\`\n to \\`auto\\` whenever the other axis is neither visible nor clip, which would\n leave this box a scroll container \u2014 the element stops scrolling only\n because \\`max-height: none\\` means nothing overflows, while \\`position:\n sticky\\` inside it still resolves against US instead of the host, so the\n toolbar silently stops pinning. \\`clip\\` keeps the horizontal guard without\n that coercion. */\n ", "\n\n /* Option logos (e.g. language images) render as <img> inside ReqoreIcon's\n square box; constrain them so portrait PNGs don't overflow the row. */\n .reqore-icon img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n"])), function (_a) {
190
+ var $ownScroll = _a.$ownScroll;
191
+ return $ownScroll
192
+ ? (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n /* 'own': we are the scroller. The sticky toolbar pins to whatever\n scrolls, so a host whose scrollport carries top padding would\n resolve sticky `top: 0` against its padding box and leave an\n unblurred strip above the toolbar. Scrolling in this unpadded box\n pins it flush. Cap at the host's available height, but do not grow\n to fill it \u2014 short forms still hug their content.\n\n `min-height: 0` is what lets a flex item shrink below its content\n so there is something to scroll; it belongs to this branch only. */\n min-height: 0;\n max-height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n "], ["\n /* 'own': we are the scroller. The sticky toolbar pins to whatever\n scrolls, so a host whose scrollport carries top padding would\n resolve sticky \\`top: 0\\` against its padding box and leave an\n unblurred strip above the toolbar. Scrolling in this unpadded box\n pins it flush. Cap at the host's available height, but do not grow\n to fill it \u2014 short forms still hug their content.\n\n \\`min-height: 0\\` is what lets a flex item shrink below its content\n so there is something to scroll; it belongs to this branch only. */\n min-height: 0;\n max-height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n "]))) : (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n /* `min-height: auto` is load-bearing, not a default: inside a column\n flex parent the shrink allowance above collapses this box to zero\n height while its rows paint outside it, so the form looks right but\n contributes nothing to layout \u2014 the host cannot size or scroll to\n it and anything below it stacks against nothing. */\n min-height: auto;\n max-height: none;\n overflow-y: visible;\n overflow-x: clip;\n "], ["\n /* \\`min-height: auto\\` is load-bearing, not a default: inside a column\n flex parent the shrink allowance above collapses this box to zero\n height while its rows paint outside it, so the form looks right but\n contributes nothing to layout \u2014 the host cannot size or scroll to\n it and anything below it stacks against nothing. */\n min-height: auto;\n max-height: none;\n overflow-y: visible;\n overflow-x: clip;\n "])));
193
+ });
190
194
  // Batched-commit dock: a floating Save/Discard card pinned bottom-right. Sticky
191
195
  // (not fixed) so it stays within the form's own scroll bounds when the engine
192
196
  // renders inside a drawer/panel; align-self pushes it to the right edge, and it
193
197
  // elevates above the rows with an opaque surface + border + shadow.
194
- var StyledCommitDock = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: sticky;\n bottom: 8px;\n z-index: 6;\n align-self: flex-end;\n width: fit-content;\n max-width: 100%;\n padding: 8px 10px;\n background: ", ";\n border: 1px solid ", ";\n border-radius: 8px;\n box-shadow: 0 4px 16px ", ";\n"], ["\n position: sticky;\n bottom: 8px;\n z-index: 6;\n align-self: flex-end;\n width: fit-content;\n max-width: 100%;\n padding: 8px 10px;\n background: ", ";\n border: 1px solid ", ";\n border-radius: 8px;\n box-shadow: 0 4px 16px ", ";\n"])), function (_a) {
198
+ var StyledCommitDock = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: sticky;\n bottom: 8px;\n z-index: 6;\n align-self: flex-end;\n width: fit-content;\n max-width: 100%;\n padding: 8px 10px;\n background: ", ";\n border: 1px solid ", ";\n border-radius: 8px;\n box-shadow: 0 4px 16px ", ";\n"], ["\n position: sticky;\n bottom: 8px;\n z-index: 6;\n align-self: flex-end;\n width: fit-content;\n max-width: 100%;\n padding: 8px 10px;\n background: ", ";\n border: 1px solid ", ";\n border-radius: 8px;\n box-shadow: 0 4px 16px ", ";\n"])), function (_a) {
195
199
  var $bg = _a.$bg;
196
200
  return $bg;
197
201
  }, function (_a) {
@@ -397,12 +401,26 @@ var FormEngineImpl = function (_a) {
397
401
  var _b, _c, _d, _f, _g, _h;
398
402
  var name = _a.name, uniqueName = _a.uniqueName, value = _a.value, onChange = _a.onChange, onSingleOptionsChange = _a.onSingleOptionsChange, onDependableOptionChange = _a.onDependableOptionChange, placeholder = _a.placeholder, noValueString = _a.noValueString, // eslint-disable-line @typescript-eslint/no-unused-vars
399
403
  isValid = _a.isValid, // eslint-disable-line @typescript-eslint/no-unused-vars
400
- url = _a.url, customUrl = _a.customUrl, operatorsUrl = _a.operatorsUrl, onOptionsLoaded = _a.onOptionsLoaded, recordRequiresSearchOptions = _a.recordRequiresSearchOptions, readOnly = _a.readOnly, _j = _a.allowTemplates, allowTemplates = _j === void 0 ? true : _j, interfaceContext = _a.interfaceContext, templateFieldProps = _a.templateFieldProps, forceDropdown = _a.forceDropdown, _k = _a.showTypeToggle, showTypeToggle = _k === void 0 ? true : _k, compact = _a.compact, _l = _a.compactFlush, compactFlush = _l === void 0 ? false : _l, _m = _a.compactNested, compactNested = _m === void 0 ? false : _m, compactPanelProps = _a.compactPanelProps, _o = _a.compactCollapsedGroups, compactCollapsedGroups = _o === void 0 ? ['optional'] : _o, _p = _a.compactToolbar, compactToolbar = _p === void 0 ? true : _p, _q = _a.commitMode, commitMode = _q === void 0 ? 'immediate' : _q, _r = _a.expandMode, expandMode = _r === void 0 ? 'single' : _r, onCommit = _a.onCommit, operatorsProp = _a.operators, groups = _a.groups, optionsLoader = _a.optionsLoader, onValidityChange = _a.onValidityChange, optionActions = _a.optionActions, _s = _a.optionActionsCollapse, optionActionsCollapse = _s === void 0 ? 'auto' : _s, componentOverrides = _a.componentOverrides, codePreviewRenderer = _a.codePreviewRenderer,
404
+ url = _a.url, customUrl = _a.customUrl, operatorsUrl = _a.operatorsUrl, onOptionsLoaded = _a.onOptionsLoaded, recordRequiresSearchOptions = _a.recordRequiresSearchOptions, readOnly = _a.readOnly, _j = _a.allowTemplates, allowTemplates = _j === void 0 ? true : _j, interfaceContext = _a.interfaceContext, templateFieldProps = _a.templateFieldProps, forceDropdown = _a.forceDropdown, _k = _a.showTypeToggle, showTypeToggle = _k === void 0 ? true : _k, compact = _a.compact,
405
+ // Destructured only to keep it out of `rest` (and so off the DOM). The gutter
406
+ // this prop documents was never implemented: it was passed to the wrap as
407
+ // `$flush`, whose styled template had no interpolation slot, so it has always
408
+ // been a no-op. Removing it from the API is a separate, breaking change —
409
+ // every consumer passing it today already gets the flush layout by default.
410
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
411
+ _l = _a.compactFlush,
412
+ // Destructured only to keep it out of `rest` (and so off the DOM). The gutter
413
+ // this prop documents was never implemented: it was passed to the wrap as
414
+ // `$flush`, whose styled template had no interpolation slot, so it has always
415
+ // been a no-op. Removing it from the API is a separate, breaking change —
416
+ // every consumer passing it today already gets the flush layout by default.
417
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
418
+ compactFlush = _l === void 0 ? false : _l, _m = _a.compactNested, compactNested = _m === void 0 ? false : _m, _o = _a.compactScroll, compactScroll = _o === void 0 ? 'host' : _o, compactPanelProps = _a.compactPanelProps, _p = _a.compactCollapsedGroups, compactCollapsedGroups = _p === void 0 ? ['optional'] : _p, _q = _a.compactToolbar, compactToolbar = _q === void 0 ? true : _q, _r = _a.commitMode, commitMode = _r === void 0 ? 'immediate' : _r, _s = _a.expandMode, expandMode = _s === void 0 ? 'single' : _s, onCommit = _a.onCommit, operatorsProp = _a.operators, groups = _a.groups, optionsLoader = _a.optionsLoader, onValidityChange = _a.onValidityChange, optionActions = _a.optionActions, _t = _a.optionActionsCollapse, optionActionsCollapse = _t === void 0 ? 'auto' : _t, componentOverrides = _a.componentOverrides, codePreviewRenderer = _a.codePreviewRenderer,
401
419
  // consumed by the wrapper below, which publishes it to every description this
402
420
  // form draws; destructured here only so it cannot reach `rest` and be spread
403
421
  // onto a DOM node
404
422
  _markdownRenderer = _a.markdownRenderer, // eslint-disable-line @typescript-eslint/no-unused-vars
405
- rendererOnlyUiTypes = _a.rendererOnlyUiTypes, inheritedFromParent = _a.inheritedFromParent, autoFocusFirstRequired = _a.autoFocusFirstRequired, expandFirstRequired = _a.expandFirstRequired, initialExpandedOptions = _a.initialExpandedOptions, maxFieldsShown = _a.maxFieldsShown, rest = __rest(_a, ["name", "uniqueName", "value", "onChange", "onSingleOptionsChange", "onDependableOptionChange", "placeholder", "noValueString", "isValid", "url", "customUrl", "operatorsUrl", "onOptionsLoaded", "recordRequiresSearchOptions", "readOnly", "allowTemplates", "interfaceContext", "templateFieldProps", "forceDropdown", "showTypeToggle", "compact", "compactFlush", "compactNested", "compactPanelProps", "compactCollapsedGroups", "compactToolbar", "commitMode", "expandMode", "onCommit", "operators", "groups", "optionsLoader", "onValidityChange", "optionActions", "optionActionsCollapse", "componentOverrides", "codePreviewRenderer", "markdownRenderer", "rendererOnlyUiTypes", "inheritedFromParent", "autoFocusFirstRequired", "expandFirstRequired", "initialExpandedOptions", "maxFieldsShown"]);
423
+ rendererOnlyUiTypes = _a.rendererOnlyUiTypes, inheritedFromParent = _a.inheritedFromParent, autoFocusFirstRequired = _a.autoFocusFirstRequired, expandFirstRequired = _a.expandFirstRequired, initialExpandedOptions = _a.initialExpandedOptions, maxFieldsShown = _a.maxFieldsShown, rest = __rest(_a, ["name", "uniqueName", "value", "onChange", "onSingleOptionsChange", "onDependableOptionChange", "placeholder", "noValueString", "isValid", "url", "customUrl", "operatorsUrl", "onOptionsLoaded", "recordRequiresSearchOptions", "readOnly", "allowTemplates", "interfaceContext", "templateFieldProps", "forceDropdown", "showTypeToggle", "compact", "compactFlush", "compactNested", "compactScroll", "compactPanelProps", "compactCollapsedGroups", "compactToolbar", "commitMode", "expandMode", "onCommit", "operators", "groups", "optionsLoader", "onValidityChange", "optionActions", "optionActionsCollapse", "componentOverrides", "codePreviewRenderer", "markdownRenderer", "rendererOnlyUiTypes", "inheritedFromParent", "autoFocusFirstRequired", "expandFirstRequired", "initialExpandedOptions", "maxFieldsShown"]);
406
424
  // Built-ins + whatever the consumer declared for its own injected editors.
407
425
  var isRendererOnly = (0, react_2.useMemo)(function () { return (0, rendererTypes_1.createRendererOnlyUiTypeCheck)(rendererOnlyUiTypes); }, [JSON.stringify(rendererOnlyUiTypes)]);
408
426
  // Pointer CAPABILITY and viewport WIDTH are different questions and both
@@ -420,33 +438,33 @@ var FormEngineImpl = function (_a) {
420
438
  var collapseOptionActions = optionActionsCollapse === 'always' ? true
421
439
  : optionActionsCollapse === 'never' ? false
422
440
  : !isHoverCapable || !!isMobile;
423
- var _t = (0, react_2.useState)((rest === null || rest === void 0 ? void 0 : rest.options) || undefined), options = _t[0], setOptions = _t[1];
441
+ var _u = (0, react_2.useState)((rest === null || rest === void 0 ? void 0 : rest.options) || undefined), options = _u[0], setOptions = _u[1];
424
442
  // optionsLoader lifecycle: loading feeds the skeleton gate, error the banner.
425
- var _u = (0, react_2.useState)(!!optionsLoader && !(rest === null || rest === void 0 ? void 0 : rest.options)), optionsLoading = _u[0], setOptionsLoading = _u[1];
426
- var _v = (0, react_2.useState)(), optionsError = _v[0], setOptionsError = _v[1];
443
+ var _v = (0, react_2.useState)(!!optionsLoader && !(rest === null || rest === void 0 ? void 0 : rest.options)), optionsLoading = _v[0], setOptionsLoading = _v[1];
444
+ var _w = (0, react_2.useState)(), optionsError = _w[0], setOptionsError = _w[1];
427
445
  // Operators: prop-provided (compact) or fetched via operatorsUrl (dpql,
428
446
  // ported from IDE Options) — the fetch overrides the seeded prop value.
429
- var _w = (0, react_2.useState)(operatorsProp), operators = _w[0], setOperators = _w[1];
447
+ var _x = (0, react_2.useState)(operatorsProp), operators = _x[0], setOperators = _x[1];
430
448
  // Remote-fetch loading (ported from IDE Options); only relevant when one of
431
449
  // the fetch urls is set — schema-as-props consumers never see the skeleton.
432
- var _x = (0, react_2.useState)(!!(url || customUrl || operatorsUrl)), loading = _x[0], setLoading = _x[1];
450
+ var _y = (0, react_2.useState)(!!(url || customUrl || operatorsUrl)), loading = _y[0], setLoading = _y[1];
433
451
  var confirmAction = (0, reqore_1.useReqoreProperty)('confirmAction');
434
452
  var theme = (0, reqore_1.useReqoreTheme)();
435
- var _y = (0, react_2.useState)(), focusedEditing = _y[0], setFocusedEditing = _y[1];
436
- var _z = (0, react_2.useState)(false), showFieldTypes = _z[0], setShowFieldTypes = _z[1];
453
+ var _z = (0, react_2.useState)(), focusedEditing = _z[0], setFocusedEditing = _z[1];
454
+ var _0 = (0, react_2.useState)(false), showFieldTypes = _0[0], setShowFieldTypes = _0[1];
437
455
  // Global toggle (toolbar ⓘ): reveal the short-description info panel on every
438
456
  // field that has a short_desc. Per-row ⓘ overrides still win over it.
439
457
  // Global field-info visibility, tri-state: `undefined` = default (critical
440
458
  // messages auto-open, the rest closed); `true` = show all; `false` = hide all
441
459
  // (even message fields). The toolbar ⓘ drives it.
442
- var _0 = (0, react_2.useState)(undefined), showAllDescriptions = _0[0], setShowAllDescriptions = _0[1];
443
- var _1 = (0, react_2.useState)(), showHelpForOption = _1[0], setShowHelpForOption = _1[1];
444
- var _2 = (0, react_2.useState)(false), showInvalidOptionsOnly = _2[0], setShowInvalidOptionsOnly = _2[1];
460
+ var _1 = (0, react_2.useState)(undefined), showAllDescriptions = _1[0], setShowAllDescriptions = _1[1];
461
+ var _2 = (0, react_2.useState)(), showHelpForOption = _2[0], setShowHelpForOption = _2[1];
462
+ var _3 = (0, react_2.useState)(false), showInvalidOptionsOnly = _3[0], setShowInvalidOptionsOnly = _3[1];
445
463
  // Which options are expanded into their editor (several can be open at once).
446
- var _3 = (0, react_2.useState)([]), expandedOptions = _3[0], setExpandedOptions = _3[1];
464
+ var _4 = (0, react_2.useState)([]), expandedOptions = _4[0], setExpandedOptions = _4[1];
447
465
  /** Status boxes whose "N more fields" control the reader has opened. Keyed by
448
466
  box so opening Optional does not also unfold Set. */
449
- var _4 = (0, react_2.useState)([]), expandedMoreBoxes = _4[0], setExpandedMoreBoxes = _4[1];
467
+ var _5 = (0, react_2.useState)([]), expandedMoreBoxes = _5[0], setExpandedMoreBoxes = _5[1];
450
468
  // --- Reveal a status box's content when it is opened ----------------------
451
469
  //
452
470
  // The status boxes stack, so the last one ("Optional", which holds every
@@ -462,7 +480,7 @@ var FormEngineImpl = function (_a) {
462
480
  // box has not grown and there is nothing to scroll to. A layout effect runs
463
481
  // after the DOM is updated and before paint, which makes the reveal
464
482
  // deterministic instead of a guessed delay.
465
- var _5 = (0, react_2.useState)(undefined), openedStatusBox = _5[0], setOpenedStatusBox = _5[1];
483
+ var _6 = (0, react_2.useState)(undefined), openedStatusBox = _6[0], setOpenedStatusBox = _6[1];
466
484
  var statusBoxRefs = (0, react_2.useRef)({});
467
485
  (0, react_2.useLayoutEffect)(function () {
468
486
  var _a, _b;
@@ -493,13 +511,13 @@ var FormEngineImpl = function (_a) {
493
511
  var settledBucket = (0, react_2.useRef)({});
494
512
  // Measured form width (not viewport — the form lives in drawers/panels of
495
513
  // arbitrary width) drives the stacked narrow layout.
496
- var _6 = (0, react_use_1.useMeasure)(), compactWrapRef = _6[0], compactWrapWidth = _6[1].width;
514
+ var _7 = (0, react_use_1.useMeasure)(), compactWrapRef = _7[0], compactWrapWidth = _7[1].width;
497
515
  // Own handle on the scroll wrap (useMeasure's ref is a callback, no `.current`)
498
516
  // so the label-column measurement can publish its CSS var on the element. It's
499
517
  // STATE, not a ref: the wrap mounts only after the loading-skeleton gate
500
518
  // resolves, so the measurement effect must re-run when the node appears — a
501
519
  // ref wouldn't retrigger it.
502
- var _7 = (0, react_2.useState)(null), compactWrapNode = _7[0], setCompactWrapNode = _7[1];
520
+ var _8 = (0, react_2.useState)(null), compactWrapNode = _8[0], setCompactWrapNode = _8[1];
503
521
  // Ref mirror of the wrap node for callbacks that must not re-create when it
504
522
  // mounts (flashOptions reads it inside a rAF).
505
523
  var compactWrapNodeRef = (0, react_2.useRef)(null);
@@ -553,8 +571,8 @@ var FormEngineImpl = function (_a) {
553
571
  var readRowHeights = (0, react_2.useRef)({});
554
572
  // Required-groups linkage: hovering a group chip highlights every member row;
555
573
  // clicking a sibling in the chip's popover scrolls to it and flashes it.
556
- var _8 = (0, react_2.useState)([]), highlightedOptions = _8[0], setHighlightedOptions = _8[1];
557
- var _9 = (0, react_2.useState)([]), flashedOptions = _9[0], setFlashedOptions = _9[1];
574
+ var _9 = (0, react_2.useState)([]), highlightedOptions = _9[0], setHighlightedOptions = _9[1];
575
+ var _10 = (0, react_2.useState)([]), flashedOptions = _10[0], setFlashedOptions = _10[1];
558
576
  var flashTimeout = (0, react_2.useRef)();
559
577
  var flashOptions = (0, react_2.useCallback)(function (optionNames, scrollToFirst) {
560
578
  if (scrollToFirst === void 0) { scrollToFirst = false; }
@@ -603,16 +621,16 @@ var FormEngineImpl = function (_a) {
603
621
  });
604
622
  var compactNarrow = !!compactWrapWidth && compactWrapWidth < 480;
605
623
  // Info panels auto-open on Tier-1 content; the per-row user override sticks.
606
- var _10 = (0, react_2.useState)({}), infoPanelOverrides = _10[0], setInfoPanelOverrides = _10[1];
624
+ var _11 = (0, react_2.useState)({}), infoPanelOverrides = _11[0], setInfoPanelOverrides = _11[1];
607
625
  // Toolbar filters affect the listed rows only — the meter reflects the full set.
608
- var _11 = (0, react_2.useState)(false), requiredOnly = _11[0], setRequiredOnly = _11[1];
609
- var _12 = (0, react_2.useState)(''), compactQuery = _12[0], setCompactQuery = _12[1];
626
+ var _12 = (0, react_2.useState)(false), requiredOnly = _12[0], setRequiredOnly = _12[1];
627
+ var _13 = (0, react_2.useState)(''), compactQuery = _13[0], setCompactQuery = _13[1];
610
628
  // Compact field sort (Fields menu → "Sort by"); 'schema' = declared order.
611
- var _13 = (0, react_2.useState)('schema'), compactSort = _13[0], setCompactSort = _13[1];
612
- var _14 = (0, react_2.useState)(function () { return ({
629
+ var _14 = (0, react_2.useState)('schema'), compactSort = _14[0], setCompactSort = _14[1];
630
+ var _15 = (0, react_2.useState)(function () { return ({
613
631
  fields: (0, exports.fixOptions)(value, options || {}, undefined, isRendererOnly),
614
632
  meta: undefined,
615
- }); }), localValue = _14[0], setLocalValue = _14[1];
633
+ }); }), localValue = _15[0], setLocalValue = _15[1];
616
634
  var originalValue = (0, react_2.useRef)();
617
635
  // Track the last value we emitted via onChange so we can skip re-applying fixOptions
618
636
  // when the parent echoes it back as the new value prop (controlled component loop prevention)
@@ -621,7 +639,7 @@ var FormEngineImpl = function (_a) {
621
639
  originalValue.current = localValue.fields;
622
640
  }
623
641
  var unavailableOptionsCount = (0, react_2.useRef)(0);
624
- var _15 = (0, useQorusTypes_1.useQorusTypes)(), compactValue = _15.compactValue, typesLoading = _15.loading;
642
+ var _16 = (0, useQorusTypes_1.useQorusTypes)(), compactValue = _16.compactValue, typesLoading = _16.loading;
625
643
  var templates = (0, useTemplates_1.useTemplates)(allowTemplates, rest.stringTemplates, interfaceContext);
626
644
  (0, react_2.useEffect)(function () {
627
645
  if ((0, lodash_1.isEqual)(localValue.fields, value)) {
@@ -2086,7 +2104,7 @@ var FormEngineImpl = function (_a) {
2086
2104
  }, children: groupConfig.subtitle })
2087
2105
  : null, renderGroupRows(rows)] }, groupName));
2088
2106
  };
2089
- return ((0, jsx_runtime_1.jsx)(exports.OptionsContext.Provider, { value: { schema: options, value: availableOptions }, children: (0, jsx_runtime_1.jsx)(compactRowContext_1.CompactRowContext.Provider, { value: compactRowContextValue, children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreErrorBoundary, { children: [showHelpForOption && ((0, jsx_runtime_1.jsx)(OptionsHelpDialog_1.OptionsHelpDialog, { onClose: function () { return setShowHelpForOption(undefined); }, option: options[showHelpForOption] })), (0, jsx_runtime_1.jsx)(compactToolbarContext_1.CompactToolbarContext.Provider, { value: compactToolbarContextValue, children: (0, jsx_runtime_1.jsxs)(StyledCompactWrap, { ref: setCompactWrap, className: 'options-readfirst-scroll', "$flush": compactFlush || compactNested, children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledCompactPanel
2107
+ return ((0, jsx_runtime_1.jsx)(exports.OptionsContext.Provider, { value: { schema: options, value: availableOptions }, children: (0, jsx_runtime_1.jsx)(compactRowContext_1.CompactRowContext.Provider, { value: compactRowContextValue, children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreErrorBoundary, { children: [showHelpForOption && ((0, jsx_runtime_1.jsx)(OptionsHelpDialog_1.OptionsHelpDialog, { onClose: function () { return setShowHelpForOption(undefined); }, option: options[showHelpForOption] })), (0, jsx_runtime_1.jsx)(compactToolbarContext_1.CompactToolbarContext.Provider, { value: compactToolbarContextValue, children: (0, jsx_runtime_1.jsxs)(StyledCompactWrap, { ref: setCompactWrap, className: 'options-readfirst-scroll', "$ownScroll": compactScroll === 'own' && !compactNested, children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledCompactPanel
2090
2108
  // Mirrors the toolbar's own search-row gate: when no search
2091
2109
  // row renders, the header is a thin strip and sits tight to
2092
2110
  // the first status box (see StyledCompactPanel).
@@ -2403,5 +2421,5 @@ var FormEngineImpl = function (_a) {
2403
2421
  var FormEngine = function (props) { return ((0, jsx_runtime_1.jsx)(markdownRendererContext_1.MarkdownRendererContext.Provider, { value: props.markdownRenderer, children: (0, jsx_runtime_1.jsx)(FormEngineImpl, __assign({}, props)) })); };
2404
2422
  exports.FormEngine = FormEngine;
2405
2423
  exports.default = exports.FormEngine;
2406
- var templateObject_1, templateObject_2;
2424
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
2407
2425
  //# sourceMappingURL=FormEngine.js.map