@qoretechnologies/reqraft 0.10.59-pr.130.gff5fd49 → 0.10.59

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 (38) hide show
  1. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  2. package/dist/components/form/engine/CompactRow.js +18 -14
  3. package/dist/components/form/engine/CompactRow.js.map +1 -1
  4. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  5. package/dist/components/form/engine/CompactToolbar.js +1 -1
  6. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  7. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  8. package/dist/components/form/engine/FormEngine.js +24 -29
  9. package/dist/components/form/engine/FormEngine.js.map +1 -1
  10. package/dist/components/form/engine/OptionFieldMessages.d.ts +7 -14
  11. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  12. package/dist/components/form/engine/OptionFieldMessages.js +22 -6
  13. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  14. package/dist/components/form/engine/compactRowContext.d.ts +2 -0
  15. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  16. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  17. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  18. package/dist/components/form/engine/compactRowStyles.js +33 -27
  19. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  20. package/dist/components/form/engine/revealRow.d.ts +53 -0
  21. package/dist/components/form/engine/revealRow.d.ts.map +1 -0
  22. package/dist/components/form/engine/revealRow.js +120 -0
  23. package/dist/components/form/engine/revealRow.js.map +1 -0
  24. package/dist/helpers/allowedValues.d.ts +11 -1
  25. package/dist/helpers/allowedValues.d.ts.map +1 -1
  26. package/dist/helpers/allowedValues.js +25 -2
  27. package/dist/helpers/allowedValues.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/components/form/engine/CompactRow.tsx +21 -19
  30. package/src/components/form/engine/CompactToolbar.tsx +8 -1
  31. package/src/components/form/engine/FormEngine.stories.tsx +499 -9
  32. package/src/components/form/engine/FormEngine.tsx +28 -23
  33. package/src/components/form/engine/OptionFieldMessages.tsx +27 -18
  34. package/src/components/form/engine/compactRowContext.ts +2 -0
  35. package/src/components/form/engine/compactRowStyles.ts +42 -0
  36. package/src/components/form/engine/revealRow.ts +123 -0
  37. package/src/helpers/allowedValues.ts +35 -2
  38. package/src/stories/Tests/utils.ts +36 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ /**
3
+ * Bring a form row into view only when it is not already there, and never
4
+ * under a pinned header.
5
+ *
6
+ * A row that moves between status boxes (filling a field moves it from "Needs
7
+ * attention" to "Set") is followed so the reader does not lose it. That used
8
+ * to be `scrollIntoView({ block: 'center' })`, which scrolls even when the row
9
+ * is already in plain sight, and centres it against the whole scrollport while
10
+ * the box header pinned at the top hides part of it. In the qorus-ide schema
11
+ * editor the moved row landed with the "Needs attention" header (375-423)
12
+ * drawn over it (405).
13
+ *
14
+ * The visible area is the scrollport minus the pinned chrome above the row:
15
+ * the form's sticky toolbar and the sticky header of every status box the row
16
+ * sits in. Both are read from the DOM when the reveal runs, so a host's own
17
+ * offset, a toolbar that wraps, or a header that is not pinned at all are all
18
+ * accounted for without the caller knowing about them.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.revealRow = exports.isRowInView = exports.getRevealClearance = exports.getPinnedChromeHeight = exports.findScrollContainer = void 0;
22
+ /** Selectors of the elements whose header may be pinned above a row. */
23
+ var PINNED_HEADER_OWNERS = '.options-readfirst-group, .options-readfirst-scroll > .reqore-panel';
24
+ var isScrollable = function (element) {
25
+ var overflowY = getComputedStyle(element).overflowY;
26
+ return ((overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay') &&
27
+ element.scrollHeight > element.clientHeight);
28
+ };
29
+ /** The nearest ancestor that actually scrolls; `undefined` means the viewport. */
30
+ var findScrollContainer = function (element) {
31
+ for (var parent_1 = element.parentElement; parent_1; parent_1 = parent_1.parentElement) {
32
+ if (parent_1 === document.body || parent_1 === document.documentElement) {
33
+ return undefined;
34
+ }
35
+ if (isScrollable(parent_1)) {
36
+ return parent_1;
37
+ }
38
+ }
39
+ return undefined;
40
+ };
41
+ exports.findScrollContainer = findScrollContainer;
42
+ /**
43
+ * How far below the top of the scrollport the pinned chrome above `element`
44
+ * reaches: the largest `top + height` of any sticky header of an enclosing
45
+ * status box or form toolbar. Zero when nothing above it is pinned.
46
+ */
47
+ var getPinnedChromeHeight = function (element) {
48
+ var _a, _b;
49
+ var clearance = 0;
50
+ for (var owner = (_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.closest(PINNED_HEADER_OWNERS); owner; owner = (_b = owner.parentElement) === null || _b === void 0 ? void 0 : _b.closest(PINNED_HEADER_OWNERS)) {
51
+ var header = owner.querySelector(':scope > .reqore-panel-title');
52
+ if (!header || header.contains(element)) {
53
+ continue;
54
+ }
55
+ var style = getComputedStyle(header);
56
+ if (style.position !== 'sticky') {
57
+ continue;
58
+ }
59
+ var top_1 = parseFloat(style.top) || 0;
60
+ clearance = Math.max(clearance, top_1 + header.getBoundingClientRect().height);
61
+ }
62
+ return clearance;
63
+ };
64
+ exports.getPinnedChromeHeight = getPinnedChromeHeight;
65
+ /**
66
+ * How far below the top edge of the row's scrollport the pinned chrome reaches.
67
+ *
68
+ * A sticky `top` is measured from the scrollport's top edge INSET BY ITS
69
+ * PADDING, while `scrollIntoView` and `scroll-margin-top` align against the
70
+ * edge itself. Leaving the padding out put an opened row 16px under its box
71
+ * header inside a padded host scroller (the Storybook canvas, and any panel
72
+ * with padding).
73
+ */
74
+ var getRevealClearance = function (element) {
75
+ var container = (0, exports.findScrollContainer)(element);
76
+ var inset = container ? parseFloat(getComputedStyle(container).paddingTop) || 0 : 0;
77
+ return inset + (0, exports.getPinnedChromeHeight)(element);
78
+ };
79
+ exports.getRevealClearance = getRevealClearance;
80
+ /**
81
+ * Whether the whole of `element` is visible below `clearance` (measured from
82
+ * the top edge of its scrollport, see {@link getRevealClearance}).
83
+ */
84
+ var isRowInView = function (element, clearance) {
85
+ var container = (0, exports.findScrollContainer)(element);
86
+ var viewTop = container ? container.getBoundingClientRect().top + container.clientTop : 0;
87
+ var viewBottom = container ?
88
+ viewTop + container.clientHeight
89
+ : window.innerHeight || document.documentElement.clientHeight;
90
+ var rect = element.getBoundingClientRect();
91
+ return rect.top >= viewTop + clearance && rect.bottom <= viewBottom;
92
+ };
93
+ exports.isRowInView = isRowInView;
94
+ /**
95
+ * Scroll `element` the least distance that shows it clear of the pinned chrome
96
+ * above it — and not at all when it is already fully in view.
97
+ *
98
+ * `scroll-margin-top` is what keeps a row that has to come down from above from
99
+ * stopping under the header: `block: 'nearest'` aligns the row's margin box,
100
+ * so the row itself stops exactly below the pinned chrome.
101
+ *
102
+ * Returns whether a scroll was started.
103
+ */
104
+ var revealRow = function (element, behavior) {
105
+ if (behavior === void 0) { behavior = 'smooth'; }
106
+ // jsdom implements neither layout nor `scrollIntoView`; a missing reveal must
107
+ // never break a form.
108
+ if (typeof element.scrollIntoView !== 'function') {
109
+ return false;
110
+ }
111
+ var clearance = (0, exports.getRevealClearance)(element);
112
+ if ((0, exports.isRowInView)(element, clearance)) {
113
+ return false;
114
+ }
115
+ element.style.scrollMarginTop = "".concat(clearance, "px");
116
+ element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: behavior });
117
+ return true;
118
+ };
119
+ exports.revealRow = revealRow;
120
+ //# sourceMappingURL=revealRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revealRow.js","sourceRoot":"","sources":["../../../../src/components/form/engine/revealRow.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,14 @@ export interface IChoiceFieldSchema {
41
41
  /** Set when the value is an expression, which is resolved at run time. */
42
42
  isFunction?: boolean;
43
43
  is_expression?: boolean;
44
+ /** The editor the field is drawn with; see {@link hasOwnEditor}. */
45
+ ui_type?: string | readonly string[];
46
+ /**
47
+ * Set by a form that knows the field is drawn by a bespoke editor of the
48
+ * consumer's own (one it declared in `rendererOnlyUiTypes`), which reqraft's
49
+ * built-in list cannot name.
50
+ */
51
+ hasOwnEditor?: boolean;
44
52
  }
45
53
  /**
46
54
  * The parts of a stored value that are not among the field's fixed choices.
@@ -52,7 +60,9 @@ export interface IChoiceFieldSchema {
52
60
  * all of which are resolved when the interface runs;
53
61
  * - `allowed_values: []` — the server has no choices to offer right now, which
54
62
  * is "unknown", not "nothing is allowed";
55
- * - creatable choices, where any value may be added.
63
+ * - creatable choices, where any value may be added;
64
+ * - a field drawn by a bespoke editor (a renderer-only `ui_type` such as
65
+ * `tool-catalog`), whose values are whatever that editor says they are.
56
66
  *
57
67
  * A single-valued field is judged as a whole. A multi-select field, and a list
58
68
  * whose elements are constrained by `element_allowed_values`, are judged per
@@ -1 +1 @@
1
- {"version":3,"file":"allowedValues.d.ts","sourceRoot":"","sources":["../../src/helpers/allowedValues.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,UAC1B,OAAO,WACL,qBAAqB,KAC7B,GAAG,GAAG,SAoCR,CAAC;AAuBF,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,UAAW,OAAO,UAAU,kBAAkB,KAAG,OAAO,EA4CtF,CAAC;AAqBF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,UAC3B,OAAO,UACN,kBAAkB,KACzB,MAAM,GAAG,SAUX,CAAC"}
1
+ {"version":3,"file":"allowedValues.d.ts","sourceRoot":"","sources":["../../src/helpers/allowedValues.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AASrE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB,UAC1B,OAAO,WACL,qBAAqB,KAC7B,GAAG,GAAG,SAoCR,CAAC;AAuBF,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAkBD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,UAAW,OAAO,UAAU,kBAAkB,KAAG,OAAO,EAkDtF,CAAC;AAqBF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,UAC3B,OAAO,UACN,kBAAkB,KACzB,MAAM,GAAG,SAUX,CAAC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getUnlistedChoiceReason = exports.getUnlistedChoices = exports.findAllowedValueOption = void 0;
7
7
  var isEqual_1 = __importDefault(require("lodash/isEqual"));
8
+ var rendererTypes_1 = require("../components/form/engine/rendererTypes");
8
9
  var common_1 = require("./common");
9
10
  var options_1 = require("./options");
10
11
  var templates_1 = require("./templates");
@@ -84,6 +85,22 @@ var isEmptyChoiceValue = function (value) {
84
85
  value === '' ||
85
86
  (Array.isArray(value) && value.length === 0);
86
87
  };
88
+ /**
89
+ * Does a bespoke editor, rather than reqraft's choice picker, draw this field?
90
+ *
91
+ * Then the editor alone decides what a value means, and `allowed_values` is not
92
+ * a closed set of values the field may hold. The AI endpoint's Tools field is
93
+ * the case that proved it: its `tool-catalog` editor stores SELECTORS -- `*` for
94
+ * every tool, `system:*`, a connection name, `connection/tool` -- and the host
95
+ * hangs the tool catalogue's SOURCES on `allowed_values` for the editor to
96
+ * browse. Judging the selectors against the sources flagged the server's own
97
+ * default, `["*"]`, as "not one of the choices", so no chat endpoint could be
98
+ * published with it. The server says the same: a custom `ui_type` "defines its
99
+ * own value shape".
100
+ */
101
+ var hasOwnEditor = function (field) {
102
+ return !!field.hasOwnEditor || (0, rendererTypes_1.isRendererOnlyUiType)(field.ui_type);
103
+ };
87
104
  /**
88
105
  * The parts of a stored value that are not among the field's fixed choices.
89
106
  *
@@ -94,7 +111,9 @@ var isEmptyChoiceValue = function (value) {
94
111
  * all of which are resolved when the interface runs;
95
112
  * - `allowed_values: []` — the server has no choices to offer right now, which
96
113
  * is "unknown", not "nothing is allowed";
97
- * - creatable choices, where any value may be added.
114
+ * - creatable choices, where any value may be added;
115
+ * - a field drawn by a bespoke editor (a renderer-only `ui_type` such as
116
+ * `tool-catalog`), whose values are whatever that editor says they are.
98
117
  *
99
118
  * A single-valued field is judged as a whole. A multi-select field, and a list
100
119
  * whose elements are constrained by `element_allowed_values`, are judged per
@@ -102,7 +121,11 @@ var isEmptyChoiceValue = function (value) {
102
121
  */
103
122
  var getUnlistedChoices = function (value, field) {
104
123
  var _a, _b;
105
- if (!field || isEmptyChoiceValue(value) || field.isFunction || field.is_expression) {
124
+ if (!field ||
125
+ isEmptyChoiceValue(value) ||
126
+ field.isFunction ||
127
+ field.is_expression ||
128
+ hasOwnEditor(field)) {
106
129
  return [];
107
130
  }
108
131
  var judgeElements = function (elements, choices) {
@@ -1 +1 @@
1
- {"version":3,"file":"allowedValues.js","sourceRoot":"","sources":["../../src/helpers/allowedValues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowedValues.js","sourceRoot":"","sources":["../../src/helpers/allowedValues.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qoretechnologies/reqraft",
3
- "version": "0.10.59-pr.130.gff5fd49",
3
+ "version": "0.10.59",
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",
@@ -35,6 +35,7 @@ import { Description } from '../../Description';
35
35
  import { useMarkdownRenderer } from '../../Description/markdownRendererContext';
36
36
  import { FocusedEditing } from '../../FocusedEditing';
37
37
  import { CompactRowContext } from './compactRowContext';
38
+ import { revealRow } from './revealRow';
38
39
  import {
39
40
  StyledActionSlot,
40
41
  StyledCardHeading,
@@ -278,6 +279,7 @@ export const CompactRow = memo(
278
279
  (v) => v.removeSelectedOption
279
280
  );
280
281
  const getTypeForOption = useContextSelector(CompactRowContext, (v) => v.getTypeForOption);
282
+ const isRendererOnly = useContextSelector(CompactRowContext, (v) => v.isRendererOnly);
281
283
  const confirmAction = useContextSelector(CompactRowContext, (v) => v.confirmAction);
282
284
  const optionActions = useContextSelector(CompactRowContext, (v) => v.optionActions);
283
285
  const collapseOptionActions = useContextSelector(
@@ -930,8 +932,11 @@ export const CompactRow = memo(
930
932
  }
931
933
  const control = findRowFocusTarget(editor);
932
934
  if (!control) return false;
933
- // Optional call: jsdom does not implement `scrollIntoView`.
934
- rowRef.current?.scrollIntoView?.({ block: 'nearest', inline: 'nearest' });
935
+ // The least scroll that shows the row clear of the pinned box header,
936
+ // and none when it is already in view (see `revealRow`).
937
+ if (rowRef.current) {
938
+ revealRow(rowRef.current, 'auto');
939
+ }
935
940
  // `preventScroll`, because the reveal above has already put the row
936
941
  // where it belongs; letting focus scroll as well moves it twice.
937
942
  control.focus({ preventScroll: true });
@@ -1214,24 +1219,23 @@ export const CompactRow = memo(
1214
1219
  })
1215
1220
  ) as TInfoMsg[])
1216
1221
  : [];
1217
- // Validation verdicts and dependency hints are the editor's: "text value
1218
- // is empty", "disabled until X is set" tell someone what to do next, and
1219
- // a reader has no next. A read-only row states the value and leaves it.
1220
- // The default-value note below is different — it says what applies when
1221
- // nothing is set, which is a fact about the record — and stays.
1222
+ // A row states what is wrong with what it holds, read-only or not: "This
1223
+ // field is required" under an empty required field, a value that is not a
1224
+ // choice, an unmet dependency. A read-only reader is often the one who has
1225
+ // to get the record fixed, and a view that hides why it is incomplete
1226
+ // leaves them guessing. The value slot of an empty field keeps its plain
1227
+ // "—" (or the default it falls back to), so the message is the only place
1228
+ // the requirement is said: once, and the same way in both modes.
1222
1229
  const fieldMessages: TInfoMsg[] =
1223
- infoActive && !readOnly ?
1230
+ infoActive ?
1224
1231
  getOptionFieldMessages({
1225
1232
  schema: options || {},
1226
1233
  option: optionField || ({} as IQorusFormField),
1227
1234
  name: optionName,
1228
1235
  allOptions: availableOptions,
1229
1236
  getType: getTypeForOption,
1230
- })
1231
- // The empty required field's value slot already reads "Required — not
1232
- // set", so the plain required message would duplicate it.
1233
- .filter((m) => m.label !== 'This field is required')
1234
- .map((m) => ({ intent: m.intent as string, content: String(m.label) }))
1237
+ isRendererOnly,
1238
+ }).map((m) => ({ intent: m.intent as string, content: String(m.label) }))
1235
1239
  : [];
1236
1240
  // TWO display channels, matching the Focus prototype:
1237
1241
  // • dedicated schema `messages` → prominent coloured PANELS below the row;
@@ -1586,9 +1590,7 @@ export const CompactRow = memo(
1586
1590
  <StyledRowActions>
1587
1591
  {draftChip}
1588
1592
  {/* No Required tag here: while editing, the editor's own
1589
- OptionFieldMessages strip below already says it — showing
1590
- both was redundant. The tag stays on READ rows, where no
1591
- message strip is visible. */}
1593
+ OptionFieldMessages strip below already says it. */}
1592
1594
  {editRowRevertButton}
1593
1595
  {cancelEditButton}
1594
1596
  {clearValueButton}
@@ -2526,9 +2528,9 @@ export const CompactRow = memo(
2526
2528
  the right, so the ⓘ sits at the same x on every row. Revert is shown
2527
2529
  whenever a field has changed; delete reveals on hover. */}
2528
2530
  {/* No generic invalid/required chip: the intent stripe + the field's
2529
- own message already flag invalidity, and an empty required field's
2530
- value slot reads "Required — not set". Only the required-GROUP chip
2531
- (One of / Covers) stays — it carries info nothing else does. */}
2531
+ own message ("This field is required" for an empty required field)
2532
+ already flag it. Only the required-GROUP chip (One of / Covers)
2533
+ stays — it carries info nothing else does. */}
2532
2534
  {/* Railed (clustered) members: the rail conveys the grouping, so drop
2533
2535
  the "One of"/"Covers" chip — keep only "Covered by <X>", the one fact
2534
2536
  the rail can't show. Non-clustered members (split-across-panels or
@@ -147,7 +147,14 @@ export const CompactToolbar = memo((reqoreProps: Partial<IReqoreControlGroupProp
147
147
  const attentionPct = completion.total ? (attentionCount / completion.total) * 100 : 0;
148
148
 
149
149
  return (
150
- <ReqoreControlGroup {...reqoreProps} vertical fluid fixed={false} gapSize='big'>
150
+ <ReqoreControlGroup
151
+ {...reqoreProps}
152
+ className='options-readfirst-toolbar'
153
+ vertical
154
+ fluid
155
+ fixed={false}
156
+ gapSize='big'
157
+ >
151
158
  {/* No completion in a read-only form. The meter answers "how much is
152
159
  left to do", and a reader can do none of it: "4/6 set · 67%" over a
153
160
  form nobody can fill in is a progress report on somebody else's