@uipath/apollo-react 6.45.3 → 6.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/canvas/components/Guardrails/builder-types.cjs +47 -0
  2. package/dist/canvas/components/Guardrails/builder-types.d.ts +129 -0
  3. package/dist/canvas/components/Guardrails/builder-types.d.ts.map +1 -0
  4. package/dist/canvas/components/Guardrails/builder-types.js +10 -0
  5. package/dist/canvas/components/Guardrails/builder-utils.cjs +144 -0
  6. package/dist/canvas/components/Guardrails/builder-utils.d.ts +18 -0
  7. package/dist/canvas/components/Guardrails/builder-utils.d.ts.map +1 -0
  8. package/dist/canvas/components/Guardrails/builder-utils.js +98 -0
  9. package/dist/canvas/components/Guardrails/components/enum-list-chips-field.cjs +85 -0
  10. package/dist/canvas/components/Guardrails/components/enum-list-chips-field.d.ts +3 -0
  11. package/dist/canvas/components/Guardrails/components/enum-list-chips-field.d.ts.map +1 -0
  12. package/dist/canvas/components/Guardrails/components/enum-list-chips-field.js +51 -0
  13. package/dist/canvas/components/Guardrails/components/escalate-action-fields.cjs +268 -0
  14. package/dist/canvas/components/Guardrails/components/escalate-action-fields.d.ts +23 -0
  15. package/dist/canvas/components/Guardrails/components/escalate-action-fields.d.ts.map +1 -0
  16. package/dist/canvas/components/Guardrails/components/escalate-action-fields.js +234 -0
  17. package/dist/canvas/components/Guardrails/components/field-shell.cjs +46 -0
  18. package/dist/canvas/components/Guardrails/components/field-shell.d.ts +7 -0
  19. package/dist/canvas/components/Guardrails/components/field-shell.d.ts.map +1 -0
  20. package/dist/canvas/components/Guardrails/components/field-shell.js +12 -0
  21. package/dist/canvas/components/Guardrails/components/guardrail-action-section.cjs +173 -0
  22. package/dist/canvas/components/Guardrails/components/guardrail-action-section.d.ts +22 -0
  23. package/dist/canvas/components/Guardrails/components/guardrail-action-section.d.ts.map +1 -0
  24. package/dist/canvas/components/Guardrails/components/guardrail-action-section.js +139 -0
  25. package/dist/canvas/components/Guardrails/components/guardrail-chip.cjs +63 -0
  26. package/dist/canvas/components/Guardrails/components/guardrail-chip.d.ts +11 -0
  27. package/dist/canvas/components/Guardrails/components/guardrail-chip.d.ts.map +1 -0
  28. package/dist/canvas/components/Guardrails/components/guardrail-chip.js +26 -0
  29. package/dist/canvas/components/Guardrails/components/guardrail-scope-selector.cjs +217 -0
  30. package/dist/canvas/components/Guardrails/components/guardrail-scope-selector.d.ts +15 -0
  31. package/dist/canvas/components/Guardrails/components/guardrail-scope-selector.d.ts.map +1 -0
  32. package/dist/canvas/components/Guardrails/components/guardrail-scope-selector.js +183 -0
  33. package/dist/canvas/components/Guardrails/components/guardrail-status-banner.cjs +61 -0
  34. package/dist/canvas/components/Guardrails/components/guardrail-status-banner.d.ts +6 -0
  35. package/dist/canvas/components/Guardrails/components/guardrail-status-banner.d.ts.map +1 -0
  36. package/dist/canvas/components/Guardrails/components/guardrail-status-banner.js +27 -0
  37. package/dist/canvas/components/Guardrails/components/map-enum-field.cjs +116 -0
  38. package/dist/canvas/components/Guardrails/components/map-enum-field.d.ts +3 -0
  39. package/dist/canvas/components/Guardrails/components/map-enum-field.d.ts.map +1 -0
  40. package/dist/canvas/components/Guardrails/components/map-enum-field.js +82 -0
  41. package/dist/canvas/components/Guardrails/components/mixed-scopes-banner.cjs +69 -0
  42. package/dist/canvas/components/Guardrails/components/mixed-scopes-banner.d.ts +10 -0
  43. package/dist/canvas/components/Guardrails/components/mixed-scopes-banner.d.ts.map +1 -0
  44. package/dist/canvas/components/Guardrails/components/mixed-scopes-banner.js +35 -0
  45. package/dist/canvas/components/Guardrails/components/parameter-label.cjs +60 -0
  46. package/dist/canvas/components/Guardrails/components/parameter-label.d.ts +11 -0
  47. package/dist/canvas/components/Guardrails/components/parameter-label.d.ts.map +1 -0
  48. package/dist/canvas/components/Guardrails/components/parameter-label.js +26 -0
  49. package/dist/canvas/components/Guardrails/form-schema-builder.cjs +246 -0
  50. package/dist/canvas/components/Guardrails/form-schema-builder.d.ts +15 -0
  51. package/dist/canvas/components/Guardrails/form-schema-builder.d.ts.map +1 -0
  52. package/dist/canvas/components/Guardrails/form-schema-builder.js +197 -0
  53. package/dist/canvas/components/Guardrails/guardrail-builder.cjs +369 -0
  54. package/dist/canvas/components/Guardrails/guardrail-builder.d.ts +41 -0
  55. package/dist/canvas/components/Guardrails/guardrail-builder.d.ts.map +1 -0
  56. package/dist/canvas/components/Guardrails/guardrail-builder.js +335 -0
  57. package/dist/canvas/components/Guardrails/guardrail-form-layout.cjs +138 -0
  58. package/dist/canvas/components/Guardrails/guardrail-form-layout.d.ts +24 -0
  59. package/dist/canvas/components/Guardrails/guardrail-form-layout.d.ts.map +1 -0
  60. package/dist/canvas/components/Guardrails/guardrail-form-layout.js +104 -0
  61. package/dist/canvas/components/Guardrails/guardrail-validator-form.cjs +199 -0
  62. package/dist/canvas/components/Guardrails/guardrail-validator-form.d.ts +3 -0
  63. package/dist/canvas/components/Guardrails/guardrail-validator-form.d.ts.map +1 -0
  64. package/dist/canvas/components/Guardrails/guardrail-validator-form.js +165 -0
  65. package/dist/canvas/components/Guardrails/i18n.cjs +436 -0
  66. package/dist/canvas/components/Guardrails/i18n.d.ts +76 -0
  67. package/dist/canvas/components/Guardrails/i18n.d.ts.map +1 -0
  68. package/dist/canvas/components/Guardrails/i18n.js +384 -0
  69. package/dist/canvas/components/Guardrails/index.cjs +112 -0
  70. package/dist/canvas/components/Guardrails/index.d.ts +16 -0
  71. package/dist/canvas/components/Guardrails/index.d.ts.map +1 -0
  72. package/dist/canvas/components/Guardrails/index.js +9 -0
  73. package/dist/canvas/components/Guardrails/render-parameter-bridge.cjs +60 -0
  74. package/dist/canvas/components/Guardrails/render-parameter-bridge.d.ts +13 -0
  75. package/dist/canvas/components/Guardrails/render-parameter-bridge.d.ts.map +1 -0
  76. package/dist/canvas/components/Guardrails/render-parameter-bridge.js +23 -0
  77. package/dist/canvas/components/Guardrails/types.cjs +18 -0
  78. package/dist/canvas/components/Guardrails/types.d.ts +69 -0
  79. package/dist/canvas/components/Guardrails/types.d.ts.map +1 -0
  80. package/dist/canvas/components/Guardrails/types.js +0 -0
  81. package/dist/canvas/components/Guardrails/use-metadata-form-bridge.cjs +144 -0
  82. package/dist/canvas/components/Guardrails/use-metadata-form-bridge.d.ts +13 -0
  83. package/dist/canvas/components/Guardrails/use-metadata-form-bridge.d.ts.map +1 -0
  84. package/dist/canvas/components/Guardrails/use-metadata-form-bridge.js +110 -0
  85. package/dist/canvas/components/Guardrails/utils.cjs +174 -0
  86. package/dist/canvas/components/Guardrails/utils.d.ts +9 -0
  87. package/dist/canvas/components/Guardrails/utils.d.ts.map +1 -0
  88. package/dist/canvas/components/Guardrails/utils.js +122 -0
  89. package/dist/canvas/components/index.cjs +41 -34
  90. package/dist/canvas/components/index.d.ts +1 -0
  91. package/dist/canvas/components/index.d.ts.map +1 -1
  92. package/dist/canvas/components/index.js +1 -0
  93. package/dist/canvas/locales/de.cjs +1 -1
  94. package/dist/canvas/locales/de.d.ts.map +1 -1
  95. package/dist/canvas/locales/de.js +1 -1
  96. package/dist/canvas/locales/en.cjs +1 -1
  97. package/dist/canvas/locales/en.d.ts.map +1 -1
  98. package/dist/canvas/locales/en.js +1 -1
  99. package/dist/canvas/locales/es-MX.cjs +1 -1
  100. package/dist/canvas/locales/es-MX.d.ts.map +1 -1
  101. package/dist/canvas/locales/es-MX.js +1 -1
  102. package/dist/canvas/locales/es.cjs +1 -1
  103. package/dist/canvas/locales/es.d.ts.map +1 -1
  104. package/dist/canvas/locales/es.js +1 -1
  105. package/dist/canvas/locales/fr.cjs +1 -1
  106. package/dist/canvas/locales/fr.d.ts.map +1 -1
  107. package/dist/canvas/locales/fr.js +1 -1
  108. package/dist/canvas/locales/ja.cjs +1 -1
  109. package/dist/canvas/locales/ja.d.ts.map +1 -1
  110. package/dist/canvas/locales/ja.js +1 -1
  111. package/dist/canvas/locales/ko.cjs +1 -1
  112. package/dist/canvas/locales/ko.d.ts.map +1 -1
  113. package/dist/canvas/locales/ko.js +1 -1
  114. package/dist/canvas/locales/pt-BR.cjs +1 -1
  115. package/dist/canvas/locales/pt-BR.d.ts.map +1 -1
  116. package/dist/canvas/locales/pt-BR.js +1 -1
  117. package/dist/canvas/locales/pt.cjs +1 -1
  118. package/dist/canvas/locales/pt.d.ts.map +1 -1
  119. package/dist/canvas/locales/pt.js +1 -1
  120. package/dist/canvas/locales/ro.cjs +1 -1
  121. package/dist/canvas/locales/ro.d.ts.map +1 -1
  122. package/dist/canvas/locales/ro.js +1 -1
  123. package/dist/canvas/locales/ru.cjs +1 -1
  124. package/dist/canvas/locales/ru.d.ts.map +1 -1
  125. package/dist/canvas/locales/ru.js +1 -1
  126. package/dist/canvas/locales/tr.cjs +1 -1
  127. package/dist/canvas/locales/tr.d.ts.map +1 -1
  128. package/dist/canvas/locales/tr.js +1 -1
  129. package/dist/canvas/locales/zh-CN.cjs +1 -1
  130. package/dist/canvas/locales/zh-CN.d.ts.map +1 -1
  131. package/dist/canvas/locales/zh-CN.js +1 -1
  132. package/dist/canvas/locales/zh-TW.cjs +1 -1
  133. package/dist/canvas/locales/zh-TW.d.ts.map +1 -1
  134. package/dist/canvas/locales/zh-TW.js +1 -1
  135. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  136. package/dist/i18n/index.cjs +5 -1
  137. package/dist/i18n/index.d.ts +1 -0
  138. package/dist/i18n/index.d.ts.map +1 -1
  139. package/dist/i18n/index.js +2 -1
  140. package/dist/test/setup.d.ts.map +1 -1
  141. package/package.json +11 -3
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ GuardrailValidatorForm: ()=>GuardrailValidatorForm
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
31
+ const external_react_namespaceObject = require("react");
32
+ const enum_list_chips_field_cjs_namespaceObject = require("./components/enum-list-chips-field.cjs");
33
+ const map_enum_field_cjs_namespaceObject = require("./components/map-enum-field.cjs");
34
+ const external_form_schema_builder_cjs_namespaceObject = require("./form-schema-builder.cjs");
35
+ const external_i18n_cjs_namespaceObject = require("./i18n.cjs");
36
+ const external_render_parameter_bridge_cjs_namespaceObject = require("./render-parameter-bridge.cjs");
37
+ const external_use_metadata_form_bridge_cjs_namespaceObject = require("./use-metadata-form-bridge.cjs");
38
+ const GUARDRAIL_CUSTOM_COMPONENTS = {
39
+ [external_form_schema_builder_cjs_namespaceObject.GUARDRAIL_ENUM_LIST_CHIPS_COMPONENT]: enum_list_chips_field_cjs_namespaceObject.EnumListChipsField,
40
+ [external_form_schema_builder_cjs_namespaceObject.GUARDRAIL_MAP_ENUM_COMPONENT]: map_enum_field_cjs_namespaceObject.MapEnumField,
41
+ [external_form_schema_builder_cjs_namespaceObject.GUARDRAIL_RENDER_PARAMETER_COMPONENT]: external_render_parameter_bridge_cjs_namespaceObject.RenderParameterBridge
42
+ };
43
+ const EMPTY_OVERRIDES = new Set();
44
+ const GuardrailValidatorForm = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(({ parameterDefinitions, parameters, onChange, errors, onClearError, renderParameter, overrideParameterIds, validateLive = true, labels: labelOverrides, className }, ref)=>{
45
+ const labels = (0, external_i18n_cjs_namespaceObject.useGuardrailFormLabels)(labelOverrides);
46
+ const defsById = (0, external_react_namespaceObject.useMemo)(()=>new Map(parameterDefinitions.map((d)=>[
47
+ d.id,
48
+ d
49
+ ])), [
50
+ parameterDefinitions
51
+ ]);
52
+ const parametersRef = (0, external_react_namespaceObject.useRef)(parameters);
53
+ parametersRef.current = parameters;
54
+ const updateParam = (0, external_react_namespaceObject.useCallback)((paramDef, value)=>{
55
+ onClearError?.(paramDef.id);
56
+ const current = parametersRef.current;
57
+ const existing = current.findIndex((p)=>p.id === paramDef.id);
58
+ const newParam = {
59
+ $parameterType: paramDef.type,
60
+ id: paramDef.id,
61
+ value
62
+ };
63
+ const newParams = [
64
+ ...current
65
+ ];
66
+ if (existing >= 0) newParams[existing] = newParam;
67
+ else newParams.push(newParam);
68
+ onChange(newParams);
69
+ }, [
70
+ onChange,
71
+ onClearError
72
+ ]);
73
+ const replaceParams = (0, external_react_namespaceObject.useCallback)((paramId, next)=>{
74
+ onClearError?.(paramId);
75
+ onChange(next);
76
+ }, [
77
+ onChange,
78
+ onClearError
79
+ ]);
80
+ const declaredOverrideIds = (0, external_react_namespaceObject.useMemo)(()=>overrideParameterIds ? new Set(overrideParameterIds) : void 0, [
81
+ overrideParameterIds
82
+ ]);
83
+ const probedOverrideIds = (0, external_react_namespaceObject.useMemo)(()=>{
84
+ if (declaredOverrideIds || !renderParameter) return EMPTY_OVERRIDES;
85
+ const ids = new Set();
86
+ for (const def of parameterDefinitions){
87
+ const entry = parameters.find((p)=>p.id === def.id);
88
+ const node = renderParameter({
89
+ definition: def,
90
+ value: entry?.value,
91
+ error: errors?.[def.id],
92
+ parameters,
93
+ onValueChange: ()=>{},
94
+ onParametersChange: ()=>{}
95
+ });
96
+ if (void 0 !== node) ids.add(def.id);
97
+ }
98
+ return ids;
99
+ }, [
100
+ declaredOverrideIds,
101
+ renderParameter,
102
+ parameterDefinitions,
103
+ parameters,
104
+ errors
105
+ ]);
106
+ const overriddenIds = declaredOverrideIds ?? probedOverrideIds;
107
+ const enumSyntheticValues = (0, external_react_namespaceObject.useMemo)(()=>{
108
+ const map = {};
109
+ for (const def of parameterDefinitions){
110
+ if ('enum' !== def.type) continue;
111
+ const entry = parameters.find((p)=>p.id === def.id);
112
+ const raw = entry?.$parameterType === 'enum' ? entry.value : def.defaultValue ?? '';
113
+ const value = 'string' == typeof raw ? raw : '';
114
+ if (value.length > 0 && !(def.options ?? []).includes(value)) map[def.id] = value;
115
+ }
116
+ return map;
117
+ }, [
118
+ parameterDefinitions,
119
+ parameters
120
+ ]);
121
+ const [initialParameters] = (0, external_react_namespaceObject.useState)(parameters);
122
+ const schema = (0, external_react_namespaceObject.useMemo)(()=>(0, external_form_schema_builder_cjs_namespaceObject.buildGuardrailFormSchema)(parameterDefinitions, labels, {
123
+ overriddenIds,
124
+ initialParameters,
125
+ enumSyntheticValues
126
+ }), [
127
+ parameterDefinitions,
128
+ labels,
129
+ overriddenIds,
130
+ initialParameters,
131
+ enumSyntheticValues
132
+ ]);
133
+ const values = (0, external_react_namespaceObject.useMemo)(()=>{
134
+ const record = {};
135
+ for (const p of parameters)if (defsById.has(p.id)) record[p.id] = p.value;
136
+ return record;
137
+ }, [
138
+ parameters,
139
+ defsById
140
+ ]);
141
+ const handleValueChange = (0, external_react_namespaceObject.useCallback)((changedField, value)=>{
142
+ const def = defsById.get(changedField);
143
+ if (!def) return;
144
+ updateParam(def, (0, external_form_schema_builder_cjs_namespaceObject.coerceGuardrailParameterValue)(value, def));
145
+ }, [
146
+ defsById,
147
+ updateParam
148
+ ]);
149
+ const { plugins, schemaMode } = (0, external_use_metadata_form_bridge_cjs_namespaceObject.useMetadataFormBridge)({
150
+ values,
151
+ errors,
152
+ onValueChange: handleValueChange,
153
+ components: GUARDRAIL_CUSTOM_COMPONENTS,
154
+ validateLive
155
+ });
156
+ const bridgeContext = (0, external_react_namespaceObject.useMemo)(()=>({
157
+ renderParameter,
158
+ defsById,
159
+ parameters,
160
+ errors,
161
+ updateParam,
162
+ replaceParams
163
+ }), [
164
+ renderParameter,
165
+ defsById,
166
+ parameters,
167
+ errors,
168
+ updateParam,
169
+ replaceParams
170
+ ]);
171
+ const formSchema = (0, external_react_namespaceObject.useMemo)(()=>({
172
+ ...schema,
173
+ mode: schemaMode
174
+ }), [
175
+ schema,
176
+ schemaMode
177
+ ]);
178
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
179
+ ref: ref,
180
+ "data-slot": "guardrail-validator-form",
181
+ className: (0, apollo_wind_namespaceObject.cn)('space-y-4', className),
182
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_render_parameter_bridge_cjs_namespaceObject.GuardrailRenderParameterProvider, {
183
+ value: bridgeContext,
184
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.MetadataForm, {
185
+ schema: formSchema,
186
+ plugins: plugins,
187
+ container: "div"
188
+ })
189
+ })
190
+ });
191
+ });
192
+ GuardrailValidatorForm.displayName = 'GuardrailValidatorForm';
193
+ exports.GuardrailValidatorForm = __webpack_exports__.GuardrailValidatorForm;
194
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
195
+ "GuardrailValidatorForm"
196
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
197
+ Object.defineProperty(exports, '__esModule', {
198
+ value: true
199
+ });
@@ -0,0 +1,3 @@
1
+ import type { GuardrailValidatorFormProps } from './types';
2
+ export declare const GuardrailValidatorForm: import("react").ForwardRefExoticComponent<GuardrailValidatorFormProps & import("react").RefAttributes<HTMLDivElement>>;
3
+ //# sourceMappingURL=guardrail-validator-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-validator-form.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Guardrails/guardrail-validator-form.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAEV,2BAA2B,EAE5B,MAAM,SAAS,CAAC;AAuCjB,eAAO,MAAM,sBAAsB,wHAsKlC,CAAC"}
@@ -0,0 +1,165 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { MetadataForm, cn } from "@uipath/apollo-wind";
3
+ import { forwardRef, useCallback, useMemo, useRef, useState } from "react";
4
+ import { EnumListChipsField } from "./components/enum-list-chips-field.js";
5
+ import { MapEnumField } from "./components/map-enum-field.js";
6
+ import { GUARDRAIL_ENUM_LIST_CHIPS_COMPONENT, GUARDRAIL_MAP_ENUM_COMPONENT, GUARDRAIL_RENDER_PARAMETER_COMPONENT, buildGuardrailFormSchema, coerceGuardrailParameterValue } from "./form-schema-builder.js";
7
+ import { useGuardrailFormLabels } from "./i18n.js";
8
+ import { GuardrailRenderParameterProvider, RenderParameterBridge } from "./render-parameter-bridge.js";
9
+ import { useMetadataFormBridge } from "./use-metadata-form-bridge.js";
10
+ const GUARDRAIL_CUSTOM_COMPONENTS = {
11
+ [GUARDRAIL_ENUM_LIST_CHIPS_COMPONENT]: EnumListChipsField,
12
+ [GUARDRAIL_MAP_ENUM_COMPONENT]: MapEnumField,
13
+ [GUARDRAIL_RENDER_PARAMETER_COMPONENT]: RenderParameterBridge
14
+ };
15
+ const EMPTY_OVERRIDES = new Set();
16
+ const GuardrailValidatorForm = /*#__PURE__*/ forwardRef(({ parameterDefinitions, parameters, onChange, errors, onClearError, renderParameter, overrideParameterIds, validateLive = true, labels: labelOverrides, className }, ref)=>{
17
+ const labels = useGuardrailFormLabels(labelOverrides);
18
+ const defsById = useMemo(()=>new Map(parameterDefinitions.map((d)=>[
19
+ d.id,
20
+ d
21
+ ])), [
22
+ parameterDefinitions
23
+ ]);
24
+ const parametersRef = useRef(parameters);
25
+ parametersRef.current = parameters;
26
+ const updateParam = useCallback((paramDef, value)=>{
27
+ onClearError?.(paramDef.id);
28
+ const current = parametersRef.current;
29
+ const existing = current.findIndex((p)=>p.id === paramDef.id);
30
+ const newParam = {
31
+ $parameterType: paramDef.type,
32
+ id: paramDef.id,
33
+ value
34
+ };
35
+ const newParams = [
36
+ ...current
37
+ ];
38
+ if (existing >= 0) newParams[existing] = newParam;
39
+ else newParams.push(newParam);
40
+ onChange(newParams);
41
+ }, [
42
+ onChange,
43
+ onClearError
44
+ ]);
45
+ const replaceParams = useCallback((paramId, next)=>{
46
+ onClearError?.(paramId);
47
+ onChange(next);
48
+ }, [
49
+ onChange,
50
+ onClearError
51
+ ]);
52
+ const declaredOverrideIds = useMemo(()=>overrideParameterIds ? new Set(overrideParameterIds) : void 0, [
53
+ overrideParameterIds
54
+ ]);
55
+ const probedOverrideIds = useMemo(()=>{
56
+ if (declaredOverrideIds || !renderParameter) return EMPTY_OVERRIDES;
57
+ const ids = new Set();
58
+ for (const def of parameterDefinitions){
59
+ const entry = parameters.find((p)=>p.id === def.id);
60
+ const node = renderParameter({
61
+ definition: def,
62
+ value: entry?.value,
63
+ error: errors?.[def.id],
64
+ parameters,
65
+ onValueChange: ()=>{},
66
+ onParametersChange: ()=>{}
67
+ });
68
+ if (void 0 !== node) ids.add(def.id);
69
+ }
70
+ return ids;
71
+ }, [
72
+ declaredOverrideIds,
73
+ renderParameter,
74
+ parameterDefinitions,
75
+ parameters,
76
+ errors
77
+ ]);
78
+ const overriddenIds = declaredOverrideIds ?? probedOverrideIds;
79
+ const enumSyntheticValues = useMemo(()=>{
80
+ const map = {};
81
+ for (const def of parameterDefinitions){
82
+ if ('enum' !== def.type) continue;
83
+ const entry = parameters.find((p)=>p.id === def.id);
84
+ const raw = entry?.$parameterType === 'enum' ? entry.value : def.defaultValue ?? '';
85
+ const value = 'string' == typeof raw ? raw : '';
86
+ if (value.length > 0 && !(def.options ?? []).includes(value)) map[def.id] = value;
87
+ }
88
+ return map;
89
+ }, [
90
+ parameterDefinitions,
91
+ parameters
92
+ ]);
93
+ const [initialParameters] = useState(parameters);
94
+ const schema = useMemo(()=>buildGuardrailFormSchema(parameterDefinitions, labels, {
95
+ overriddenIds,
96
+ initialParameters,
97
+ enumSyntheticValues
98
+ }), [
99
+ parameterDefinitions,
100
+ labels,
101
+ overriddenIds,
102
+ initialParameters,
103
+ enumSyntheticValues
104
+ ]);
105
+ const values = useMemo(()=>{
106
+ const record = {};
107
+ for (const p of parameters)if (defsById.has(p.id)) record[p.id] = p.value;
108
+ return record;
109
+ }, [
110
+ parameters,
111
+ defsById
112
+ ]);
113
+ const handleValueChange = useCallback((changedField, value)=>{
114
+ const def = defsById.get(changedField);
115
+ if (!def) return;
116
+ updateParam(def, coerceGuardrailParameterValue(value, def));
117
+ }, [
118
+ defsById,
119
+ updateParam
120
+ ]);
121
+ const { plugins, schemaMode } = useMetadataFormBridge({
122
+ values,
123
+ errors,
124
+ onValueChange: handleValueChange,
125
+ components: GUARDRAIL_CUSTOM_COMPONENTS,
126
+ validateLive
127
+ });
128
+ const bridgeContext = useMemo(()=>({
129
+ renderParameter,
130
+ defsById,
131
+ parameters,
132
+ errors,
133
+ updateParam,
134
+ replaceParams
135
+ }), [
136
+ renderParameter,
137
+ defsById,
138
+ parameters,
139
+ errors,
140
+ updateParam,
141
+ replaceParams
142
+ ]);
143
+ const formSchema = useMemo(()=>({
144
+ ...schema,
145
+ mode: schemaMode
146
+ }), [
147
+ schema,
148
+ schemaMode
149
+ ]);
150
+ return /*#__PURE__*/ jsx("div", {
151
+ ref: ref,
152
+ "data-slot": "guardrail-validator-form",
153
+ className: cn('space-y-4', className),
154
+ children: /*#__PURE__*/ jsx(GuardrailRenderParameterProvider, {
155
+ value: bridgeContext,
156
+ children: /*#__PURE__*/ jsx(MetadataForm, {
157
+ schema: formSchema,
158
+ plugins: plugins,
159
+ container: "div"
160
+ })
161
+ })
162
+ });
163
+ });
164
+ GuardrailValidatorForm.displayName = 'GuardrailValidatorForm';
165
+ export { GuardrailValidatorForm };