@uipath/apollo-react 6.59.0 → 6.61.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 (49) hide show
  1. package/dist/canvas/components/Guardrails/components/guardrail-field-picker.cjs +227 -0
  2. package/dist/canvas/components/Guardrails/components/guardrail-field-picker.d.ts +23 -0
  3. package/dist/canvas/components/Guardrails/components/guardrail-field-picker.d.ts.map +1 -0
  4. package/dist/canvas/components/Guardrails/components/guardrail-field-picker.js +193 -0
  5. package/dist/canvas/components/Guardrails/components/guardrail-rule-card.cjs +276 -0
  6. package/dist/canvas/components/Guardrails/components/guardrail-rule-card.d.ts +17 -0
  7. package/dist/canvas/components/Guardrails/components/guardrail-rule-card.d.ts.map +1 -0
  8. package/dist/canvas/components/Guardrails/components/guardrail-rule-card.js +242 -0
  9. package/dist/canvas/components/Guardrails/guardrail-filter-field-selector.cjs +76 -0
  10. package/dist/canvas/components/Guardrails/guardrail-filter-field-selector.d.ts +13 -0
  11. package/dist/canvas/components/Guardrails/guardrail-filter-field-selector.d.ts.map +1 -0
  12. package/dist/canvas/components/Guardrails/guardrail-filter-field-selector.js +42 -0
  13. package/dist/canvas/components/Guardrails/guardrail-rules-section.cjs +159 -0
  14. package/dist/canvas/components/Guardrails/guardrail-rules-section.d.ts +15 -0
  15. package/dist/canvas/components/Guardrails/guardrail-rules-section.d.ts.map +1 -0
  16. package/dist/canvas/components/Guardrails/guardrail-rules-section.js +125 -0
  17. package/dist/canvas/components/Guardrails/i18n.cjs +273 -3
  18. package/dist/canvas/components/Guardrails/i18n.d.ts +59 -0
  19. package/dist/canvas/components/Guardrails/i18n.d.ts.map +1 -1
  20. package/dist/canvas/components/Guardrails/i18n.js +248 -2
  21. package/dist/canvas/components/Guardrails/index.cjs +56 -4
  22. package/dist/canvas/components/Guardrails/index.d.ts +10 -2
  23. package/dist/canvas/components/Guardrails/index.d.ts.map +1 -1
  24. package/dist/canvas/components/Guardrails/index.js +6 -2
  25. package/dist/canvas/components/Guardrails/rules-types.cjs +61 -0
  26. package/dist/canvas/components/Guardrails/rules-types.d.ts +75 -0
  27. package/dist/canvas/components/Guardrails/rules-types.d.ts.map +1 -0
  28. package/dist/canvas/components/Guardrails/rules-types.js +27 -0
  29. package/dist/canvas/components/Guardrails/rules-utils.cjs +213 -0
  30. package/dist/canvas/components/Guardrails/rules-utils.d.ts +22 -0
  31. package/dist/canvas/components/Guardrails/rules-utils.d.ts.map +1 -0
  32. package/dist/canvas/components/Guardrails/rules-utils.js +140 -0
  33. package/dist/canvas/locales/en.cjs +1 -1
  34. package/dist/canvas/locales/en.d.ts.map +1 -1
  35. package/dist/canvas/locales/en.js +1 -1
  36. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  37. package/dist/material/components/ap-chat/components/input/chat-input-actions.cjs +5 -5
  38. package/dist/material/components/ap-chat/components/input/chat-input-actions.d.ts +2 -1
  39. package/dist/material/components/ap-chat/components/input/chat-input-actions.d.ts.map +1 -1
  40. package/dist/material/components/ap-chat/components/input/chat-input-actions.js +5 -5
  41. package/dist/material/components/ap-chat/components/input/chat-input.cjs +13 -8
  42. package/dist/material/components/ap-chat/components/input/chat-input.d.ts.map +1 -1
  43. package/dist/material/components/ap-chat/components/input/chat-input.js +13 -8
  44. package/dist/material/components/ap-chat/service/ChatModel.d.ts +1 -0
  45. package/dist/material/components/ap-chat/service/ChatModel.d.ts.map +1 -1
  46. package/dist/material/stories/chat-story-support.cjs +14 -2
  47. package/dist/material/stories/chat-story-support.d.ts.map +1 -1
  48. package/dist/material/stories/chat-story-support.js +14 -2
  49. package/package.json +2 -2
@@ -0,0 +1,276 @@
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
+ GuardrailRuleCard: ()=>GuardrailRuleCard
28
+ });
29
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
+ const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
31
+ const external_lucide_react_namespaceObject = require("lucide-react");
32
+ const external_react_namespaceObject = require("react");
33
+ const external_i18n_cjs_namespaceObject = require("../i18n.cjs");
34
+ const external_rules_types_cjs_namespaceObject = require("../rules-types.cjs");
35
+ const external_rules_utils_cjs_namespaceObject = require("../rules-utils.cjs");
36
+ const external_guardrail_field_picker_cjs_namespaceObject = require("./guardrail-field-picker.cjs");
37
+ const RULE_TYPE_LABEL_KEYS = {
38
+ word: 'ruleTypeWord',
39
+ number: 'ruleTypeNumber',
40
+ boolean: 'ruleTypeBoolean'
41
+ };
42
+ const OPERATOR_LABEL_KEYS = {
43
+ contains: 'operatorContains',
44
+ doesNotContain: 'operatorDoesNotContain',
45
+ equals: 'operatorEquals',
46
+ doesNotEqual: 'operatorDoesNotEqual',
47
+ startsWith: 'operatorStartsWith',
48
+ doesNotStartWith: 'operatorDoesNotStartWith',
49
+ endsWith: 'operatorEndsWith',
50
+ doesNotEndWith: 'operatorDoesNotEndWith',
51
+ isEmpty: 'operatorIsEmpty',
52
+ isNotEmpty: 'operatorIsNotEmpty',
53
+ matchesRegex: 'operatorMatchesRegex',
54
+ greaterThan: 'operatorGreaterThan',
55
+ greaterThanOrEqual: 'operatorGreaterThanOrEqual',
56
+ lessThan: 'operatorLessThan',
57
+ lessThanOrEqual: 'operatorLessThanOrEqual'
58
+ };
59
+ function NumberValueInput({ id, rule, onChange, error, placeholder }) {
60
+ const [draft, setDraft] = (0, external_react_namespaceObject.useState)(null);
61
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.Input, {
62
+ id: id,
63
+ type: "number",
64
+ step: "any",
65
+ value: draft ?? String(rule.value),
66
+ placeholder: placeholder,
67
+ error: error,
68
+ onChange: (e)=>{
69
+ setDraft(e.target.value);
70
+ const parsed = Number.parseFloat(e.target.value);
71
+ onChange({
72
+ ...rule,
73
+ value: Number.isFinite(parsed) ? parsed : 0
74
+ });
75
+ },
76
+ onBlur: ()=>setDraft(null)
77
+ });
78
+ }
79
+ function GuardrailRuleCard({ index, position, rule, ruleTypes, fields, onChange, onDelete, errors, renderFieldSelector, selectionChips, labels }) {
80
+ const uid = (0, external_react_namespaceObject.useId)();
81
+ const typeOptions = ruleTypes.includes(rule.$ruleType) ? ruleTypes : [
82
+ ...ruleTypes,
83
+ rule.$ruleType
84
+ ];
85
+ const fieldSelectorContext = {
86
+ index,
87
+ ruleType: rule.$ruleType,
88
+ selector: rule.fieldSelector,
89
+ fields,
90
+ onChange: (fieldSelector)=>onChange({
91
+ ...rule,
92
+ fieldSelector
93
+ }),
94
+ label: labels.fieldsLabel,
95
+ labelId: `${uid}-fields-label`,
96
+ invalid: Boolean(errors?.fields),
97
+ error: errors?.fields
98
+ };
99
+ const customFieldSelector = renderFieldSelector?.(fieldSelectorContext);
100
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
101
+ role: "group",
102
+ "aria-labelledby": `${uid}-title`,
103
+ "data-slot": "guardrail-rule",
104
+ className: "rounded-lg border border-border p-3 space-y-3",
105
+ children: [
106
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
107
+ className: "flex items-center justify-between",
108
+ children: [
109
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
110
+ id: `${uid}-title`,
111
+ className: "text-xs font-medium text-muted-foreground",
112
+ children: (0, external_i18n_cjs_namespaceObject.formatGuardrailFormMessage)(labels.ruleTitle, {
113
+ position
114
+ })
115
+ }),
116
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.Button, {
117
+ type: "button",
118
+ variant: "ghost",
119
+ size: "3xs",
120
+ icon: true,
121
+ "aria-label": (0, external_i18n_cjs_namespaceObject.formatGuardrailFormMessage)(labels.deleteRule, {
122
+ position
123
+ }),
124
+ className: "text-destructive future:text-destructive hover:text-destructive future:hover:text-destructive",
125
+ onClick: onDelete,
126
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.Trash2, {})
127
+ })
128
+ ]
129
+ }),
130
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
131
+ className: "grid grid-cols-1 @sm:grid-cols-2 @3xl:grid-cols-4 gap-3 items-start",
132
+ children: [
133
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.FormField, {
134
+ children: [
135
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldLabel, {
136
+ htmlFor: `${uid}-type`,
137
+ required: true,
138
+ children: labels.ruleTypeLabel
139
+ }),
140
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Select, {
141
+ value: rule.$ruleType,
142
+ onValueChange: (type)=>onChange((0, external_rules_utils_cjs_namespaceObject.changeGuardrailRuleType)(rule, type)),
143
+ children: [
144
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectTrigger, {
145
+ id: `${uid}-type`,
146
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectValue, {})
147
+ }),
148
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectContent, {
149
+ children: typeOptions.map((type)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectItem, {
150
+ value: type,
151
+ children: labels[RULE_TYPE_LABEL_KEYS[type]]
152
+ }, type))
153
+ })
154
+ ]
155
+ })
156
+ ]
157
+ }),
158
+ void 0 === customFieldSelector ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_guardrail_field_picker_cjs_namespaceObject.GuardrailFieldPicker, {
159
+ id: `${uid}-fields`,
160
+ labelId: fieldSelectorContext.labelId,
161
+ label: labels.fieldsLabel,
162
+ fields: fields,
163
+ selected: 'specific' === rule.fieldSelector.$selectorType ? rule.fieldSelector.fields : [],
164
+ onToggle: (field)=>fieldSelectorContext.onChange((0, external_rules_utils_cjs_namespaceObject.toggleGuardrailSelectorField)(rule.fieldSelector, field)),
165
+ allFields: {
166
+ label: labels.allFields,
167
+ selected: 'all' === rule.fieldSelector.$selectorType,
168
+ onSelect: ()=>fieldSelectorContext.onChange({
169
+ $selectorType: 'all'
170
+ })
171
+ },
172
+ chips: selectionChips,
173
+ error: errors?.fields,
174
+ labels: labels
175
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.FormField, {
176
+ children: [
177
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldLabel, {
178
+ id: fieldSelectorContext.labelId,
179
+ required: true,
180
+ children: labels.fieldsLabel
181
+ }),
182
+ customFieldSelector
183
+ ]
184
+ }),
185
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.FormField, {
186
+ children: [
187
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldLabel, {
188
+ htmlFor: `${uid}-operator`,
189
+ required: true,
190
+ children: labels.operatorLabel
191
+ }),
192
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Select, {
193
+ value: rule.operator,
194
+ onValueChange: (operator)=>onChange({
195
+ ...rule,
196
+ operator
197
+ }),
198
+ children: [
199
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectTrigger, {
200
+ id: `${uid}-operator`,
201
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectValue, {})
202
+ }),
203
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectContent, {
204
+ children: external_rules_types_cjs_namespaceObject.GUARDRAIL_RULE_OPERATORS[rule.$ruleType].map((operator)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectItem, {
205
+ value: operator,
206
+ children: labels[OPERATOR_LABEL_KEYS[operator]]
207
+ }, operator))
208
+ })
209
+ ]
210
+ })
211
+ ]
212
+ }),
213
+ (0, external_rules_utils_cjs_namespaceObject.guardrailOperatorTakesValue)(rule.operator) && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.FormField, {
214
+ children: [
215
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldLabel, {
216
+ htmlFor: `${uid}-value`,
217
+ required: true,
218
+ children: labels.valueLabel
219
+ }),
220
+ 'word' === rule.$ruleType && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.Input, {
221
+ id: `${uid}-value`,
222
+ value: rule.value ?? '',
223
+ placeholder: labels.valuePlaceholder,
224
+ error: errors?.value,
225
+ onChange: (e)=>onChange({
226
+ ...rule,
227
+ value: e.target.value
228
+ })
229
+ }),
230
+ 'number' === rule.$ruleType && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(NumberValueInput, {
231
+ id: `${uid}-value`,
232
+ rule: rule,
233
+ onChange: onChange,
234
+ error: errors?.value,
235
+ placeholder: labels.valuePlaceholder
236
+ }),
237
+ 'boolean' === rule.$ruleType && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Select, {
238
+ value: String(rule.value),
239
+ onValueChange: (value)=>onChange({
240
+ ...rule,
241
+ value: 'true' === value
242
+ }),
243
+ children: [
244
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectTrigger, {
245
+ id: `${uid}-value`,
246
+ error: errors?.value,
247
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectValue, {})
248
+ }),
249
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.SelectContent, {
250
+ children: [
251
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectItem, {
252
+ value: "true",
253
+ children: labels.valueTrue
254
+ }),
255
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.SelectItem, {
256
+ value: "false",
257
+ children: labels.valueFalse
258
+ })
259
+ ]
260
+ })
261
+ ]
262
+ })
263
+ ]
264
+ })
265
+ ]
266
+ })
267
+ ]
268
+ });
269
+ }
270
+ exports.GuardrailRuleCard = __webpack_exports__.GuardrailRuleCard;
271
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
272
+ "GuardrailRuleCard"
273
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
274
+ Object.defineProperty(exports, '__esModule', {
275
+ value: true
276
+ });
@@ -0,0 +1,17 @@
1
+ import { type GuardrailRulesLabels } from '../i18n';
2
+ import { type GuardrailFieldGroup, type GuardrailFieldRule, type GuardrailFieldRuleType, type GuardrailRule, type GuardrailRuleErrors, type GuardrailRuleFieldSelectorRenderer } from '../rules-types';
3
+ export interface GuardrailRuleCardProps {
4
+ index: number;
5
+ position: number;
6
+ rule: GuardrailFieldRule;
7
+ ruleTypes: readonly GuardrailFieldRuleType[];
8
+ fields: GuardrailFieldGroup;
9
+ onChange: (rule: GuardrailRule) => void;
10
+ onDelete: () => void;
11
+ errors?: GuardrailRuleErrors;
12
+ renderFieldSelector?: GuardrailRuleFieldSelectorRenderer;
13
+ selectionChips?: boolean;
14
+ labels: GuardrailRulesLabels;
15
+ }
16
+ export declare function GuardrailRuleCard({ index, position, rule, ruleTypes, fields, onChange, onDelete, errors, renderFieldSelector, selectionChips, labels, }: GuardrailRuleCardProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=guardrail-rule-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-rule-card.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Guardrails/components/guardrail-rule-card.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAExB,KAAK,kCAAkC,EAExC,MAAM,gBAAgB,CAAC;AAkCxB,MAAM,WAAW,sBAAsB;IAErC,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;IAEzB,SAAS,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,kCAAkC,CAAC;IAEzD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAqCD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,cAAc,EACd,MAAM,GACP,EAAE,sBAAsB,2CAwKxB"}
@@ -0,0 +1,242 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Button, FormField, FormFieldLabel, Input, Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@uipath/apollo-wind";
3
+ import { Trash2 } from "lucide-react";
4
+ import { useId, useState } from "react";
5
+ import { formatGuardrailFormMessage } from "../i18n.js";
6
+ import { GUARDRAIL_RULE_OPERATORS } from "../rules-types.js";
7
+ import { changeGuardrailRuleType, guardrailOperatorTakesValue, toggleGuardrailSelectorField } from "../rules-utils.js";
8
+ import { GuardrailFieldPicker } from "./guardrail-field-picker.js";
9
+ const RULE_TYPE_LABEL_KEYS = {
10
+ word: 'ruleTypeWord',
11
+ number: 'ruleTypeNumber',
12
+ boolean: 'ruleTypeBoolean'
13
+ };
14
+ const OPERATOR_LABEL_KEYS = {
15
+ contains: 'operatorContains',
16
+ doesNotContain: 'operatorDoesNotContain',
17
+ equals: 'operatorEquals',
18
+ doesNotEqual: 'operatorDoesNotEqual',
19
+ startsWith: 'operatorStartsWith',
20
+ doesNotStartWith: 'operatorDoesNotStartWith',
21
+ endsWith: 'operatorEndsWith',
22
+ doesNotEndWith: 'operatorDoesNotEndWith',
23
+ isEmpty: 'operatorIsEmpty',
24
+ isNotEmpty: 'operatorIsNotEmpty',
25
+ matchesRegex: 'operatorMatchesRegex',
26
+ greaterThan: 'operatorGreaterThan',
27
+ greaterThanOrEqual: 'operatorGreaterThanOrEqual',
28
+ lessThan: 'operatorLessThan',
29
+ lessThanOrEqual: 'operatorLessThanOrEqual'
30
+ };
31
+ function NumberValueInput({ id, rule, onChange, error, placeholder }) {
32
+ const [draft, setDraft] = useState(null);
33
+ return /*#__PURE__*/ jsx(Input, {
34
+ id: id,
35
+ type: "number",
36
+ step: "any",
37
+ value: draft ?? String(rule.value),
38
+ placeholder: placeholder,
39
+ error: error,
40
+ onChange: (e)=>{
41
+ setDraft(e.target.value);
42
+ const parsed = Number.parseFloat(e.target.value);
43
+ onChange({
44
+ ...rule,
45
+ value: Number.isFinite(parsed) ? parsed : 0
46
+ });
47
+ },
48
+ onBlur: ()=>setDraft(null)
49
+ });
50
+ }
51
+ function GuardrailRuleCard({ index, position, rule, ruleTypes, fields, onChange, onDelete, errors, renderFieldSelector, selectionChips, labels }) {
52
+ const uid = useId();
53
+ const typeOptions = ruleTypes.includes(rule.$ruleType) ? ruleTypes : [
54
+ ...ruleTypes,
55
+ rule.$ruleType
56
+ ];
57
+ const fieldSelectorContext = {
58
+ index,
59
+ ruleType: rule.$ruleType,
60
+ selector: rule.fieldSelector,
61
+ fields,
62
+ onChange: (fieldSelector)=>onChange({
63
+ ...rule,
64
+ fieldSelector
65
+ }),
66
+ label: labels.fieldsLabel,
67
+ labelId: `${uid}-fields-label`,
68
+ invalid: Boolean(errors?.fields),
69
+ error: errors?.fields
70
+ };
71
+ const customFieldSelector = renderFieldSelector?.(fieldSelectorContext);
72
+ return /*#__PURE__*/ jsxs("div", {
73
+ role: "group",
74
+ "aria-labelledby": `${uid}-title`,
75
+ "data-slot": "guardrail-rule",
76
+ className: "rounded-lg border border-border p-3 space-y-3",
77
+ children: [
78
+ /*#__PURE__*/ jsxs("div", {
79
+ className: "flex items-center justify-between",
80
+ children: [
81
+ /*#__PURE__*/ jsx("span", {
82
+ id: `${uid}-title`,
83
+ className: "text-xs font-medium text-muted-foreground",
84
+ children: formatGuardrailFormMessage(labels.ruleTitle, {
85
+ position
86
+ })
87
+ }),
88
+ /*#__PURE__*/ jsx(Button, {
89
+ type: "button",
90
+ variant: "ghost",
91
+ size: "3xs",
92
+ icon: true,
93
+ "aria-label": formatGuardrailFormMessage(labels.deleteRule, {
94
+ position
95
+ }),
96
+ className: "text-destructive future:text-destructive hover:text-destructive future:hover:text-destructive",
97
+ onClick: onDelete,
98
+ children: /*#__PURE__*/ jsx(Trash2, {})
99
+ })
100
+ ]
101
+ }),
102
+ /*#__PURE__*/ jsxs("div", {
103
+ className: "grid grid-cols-1 @sm:grid-cols-2 @3xl:grid-cols-4 gap-3 items-start",
104
+ children: [
105
+ /*#__PURE__*/ jsxs(FormField, {
106
+ children: [
107
+ /*#__PURE__*/ jsx(FormFieldLabel, {
108
+ htmlFor: `${uid}-type`,
109
+ required: true,
110
+ children: labels.ruleTypeLabel
111
+ }),
112
+ /*#__PURE__*/ jsxs(Select, {
113
+ value: rule.$ruleType,
114
+ onValueChange: (type)=>onChange(changeGuardrailRuleType(rule, type)),
115
+ children: [
116
+ /*#__PURE__*/ jsx(SelectTrigger, {
117
+ id: `${uid}-type`,
118
+ children: /*#__PURE__*/ jsx(SelectValue, {})
119
+ }),
120
+ /*#__PURE__*/ jsx(SelectContent, {
121
+ children: typeOptions.map((type)=>/*#__PURE__*/ jsx(SelectItem, {
122
+ value: type,
123
+ children: labels[RULE_TYPE_LABEL_KEYS[type]]
124
+ }, type))
125
+ })
126
+ ]
127
+ })
128
+ ]
129
+ }),
130
+ void 0 === customFieldSelector ? /*#__PURE__*/ jsx(GuardrailFieldPicker, {
131
+ id: `${uid}-fields`,
132
+ labelId: fieldSelectorContext.labelId,
133
+ label: labels.fieldsLabel,
134
+ fields: fields,
135
+ selected: 'specific' === rule.fieldSelector.$selectorType ? rule.fieldSelector.fields : [],
136
+ onToggle: (field)=>fieldSelectorContext.onChange(toggleGuardrailSelectorField(rule.fieldSelector, field)),
137
+ allFields: {
138
+ label: labels.allFields,
139
+ selected: 'all' === rule.fieldSelector.$selectorType,
140
+ onSelect: ()=>fieldSelectorContext.onChange({
141
+ $selectorType: 'all'
142
+ })
143
+ },
144
+ chips: selectionChips,
145
+ error: errors?.fields,
146
+ labels: labels
147
+ }) : /*#__PURE__*/ jsxs(FormField, {
148
+ children: [
149
+ /*#__PURE__*/ jsx(FormFieldLabel, {
150
+ id: fieldSelectorContext.labelId,
151
+ required: true,
152
+ children: labels.fieldsLabel
153
+ }),
154
+ customFieldSelector
155
+ ]
156
+ }),
157
+ /*#__PURE__*/ jsxs(FormField, {
158
+ children: [
159
+ /*#__PURE__*/ jsx(FormFieldLabel, {
160
+ htmlFor: `${uid}-operator`,
161
+ required: true,
162
+ children: labels.operatorLabel
163
+ }),
164
+ /*#__PURE__*/ jsxs(Select, {
165
+ value: rule.operator,
166
+ onValueChange: (operator)=>onChange({
167
+ ...rule,
168
+ operator
169
+ }),
170
+ children: [
171
+ /*#__PURE__*/ jsx(SelectTrigger, {
172
+ id: `${uid}-operator`,
173
+ children: /*#__PURE__*/ jsx(SelectValue, {})
174
+ }),
175
+ /*#__PURE__*/ jsx(SelectContent, {
176
+ children: GUARDRAIL_RULE_OPERATORS[rule.$ruleType].map((operator)=>/*#__PURE__*/ jsx(SelectItem, {
177
+ value: operator,
178
+ children: labels[OPERATOR_LABEL_KEYS[operator]]
179
+ }, operator))
180
+ })
181
+ ]
182
+ })
183
+ ]
184
+ }),
185
+ guardrailOperatorTakesValue(rule.operator) && /*#__PURE__*/ jsxs(FormField, {
186
+ children: [
187
+ /*#__PURE__*/ jsx(FormFieldLabel, {
188
+ htmlFor: `${uid}-value`,
189
+ required: true,
190
+ children: labels.valueLabel
191
+ }),
192
+ 'word' === rule.$ruleType && /*#__PURE__*/ jsx(Input, {
193
+ id: `${uid}-value`,
194
+ value: rule.value ?? '',
195
+ placeholder: labels.valuePlaceholder,
196
+ error: errors?.value,
197
+ onChange: (e)=>onChange({
198
+ ...rule,
199
+ value: e.target.value
200
+ })
201
+ }),
202
+ 'number' === rule.$ruleType && /*#__PURE__*/ jsx(NumberValueInput, {
203
+ id: `${uid}-value`,
204
+ rule: rule,
205
+ onChange: onChange,
206
+ error: errors?.value,
207
+ placeholder: labels.valuePlaceholder
208
+ }),
209
+ 'boolean' === rule.$ruleType && /*#__PURE__*/ jsxs(Select, {
210
+ value: String(rule.value),
211
+ onValueChange: (value)=>onChange({
212
+ ...rule,
213
+ value: 'true' === value
214
+ }),
215
+ children: [
216
+ /*#__PURE__*/ jsx(SelectTrigger, {
217
+ id: `${uid}-value`,
218
+ error: errors?.value,
219
+ children: /*#__PURE__*/ jsx(SelectValue, {})
220
+ }),
221
+ /*#__PURE__*/ jsxs(SelectContent, {
222
+ children: [
223
+ /*#__PURE__*/ jsx(SelectItem, {
224
+ value: "true",
225
+ children: labels.valueTrue
226
+ }),
227
+ /*#__PURE__*/ jsx(SelectItem, {
228
+ value: "false",
229
+ children: labels.valueFalse
230
+ })
231
+ ]
232
+ })
233
+ ]
234
+ })
235
+ ]
236
+ })
237
+ ]
238
+ })
239
+ ]
240
+ });
241
+ }
242
+ export { GuardrailRuleCard };
@@ -0,0 +1,76 @@
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
+ GuardrailFilterFieldSelector: ()=>GuardrailFilterFieldSelector
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 guardrail_field_picker_cjs_namespaceObject = require("./components/guardrail-field-picker.cjs");
33
+ const external_i18n_cjs_namespaceObject = require("./i18n.cjs");
34
+ const external_rules_utils_cjs_namespaceObject = require("./rules-utils.cjs");
35
+ function GuardrailFilterFieldSelector({ fields, value, onChange, error, selectionChips = false, labels: labelOverrides, className }) {
36
+ const labels = (0, external_i18n_cjs_namespaceObject.useGuardrailFilterFieldSelectorLabels)(labelOverrides);
37
+ const uid = (0, external_react_namespaceObject.useId)();
38
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
39
+ "data-slot": "guardrail-filter-field-selector",
40
+ className: className,
41
+ children: fields ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(guardrail_field_picker_cjs_namespaceObject.GuardrailFieldPicker, {
42
+ id: `${uid}-fields`,
43
+ labelId: `${uid}-label`,
44
+ label: labels.filterFieldsLabel,
45
+ tooltip: labels.filterFieldsTooltip,
46
+ fields: fields,
47
+ selected: value,
48
+ onToggle: (field)=>onChange((0, external_rules_utils_cjs_namespaceObject.toggleGuardrailFieldReference)(value, field)),
49
+ chips: selectionChips,
50
+ error: error,
51
+ labels: labels
52
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.FormField, {
53
+ children: [
54
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldLabel, {
55
+ id: `${uid}-label`,
56
+ required: true,
57
+ children: labels.filterFieldsLabel
58
+ }),
59
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("p", {
60
+ className: "text-sm italic text-muted-foreground",
61
+ children: labels.filterNoSchema
62
+ }),
63
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldError, {
64
+ children: error
65
+ })
66
+ ]
67
+ })
68
+ });
69
+ }
70
+ exports.GuardrailFilterFieldSelector = __webpack_exports__.GuardrailFilterFieldSelector;
71
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
72
+ "GuardrailFilterFieldSelector"
73
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
74
+ Object.defineProperty(exports, '__esModule', {
75
+ value: true
76
+ });
@@ -0,0 +1,13 @@
1
+ import { type GuardrailFilterFieldSelectorLabels } from './i18n';
2
+ import type { GuardrailFieldGroup, GuardrailFieldReference } from './rules-types';
3
+ export interface GuardrailFilterFieldSelectorProps {
4
+ fields?: GuardrailFieldGroup | null;
5
+ value: readonly GuardrailFieldReference[];
6
+ onChange: (fields: GuardrailFieldReference[]) => void;
7
+ error?: string;
8
+ selectionChips?: boolean;
9
+ labels?: Partial<GuardrailFilterFieldSelectorLabels>;
10
+ className?: string;
11
+ }
12
+ export declare function GuardrailFilterFieldSelector({ fields, value, onChange, error, selectionChips, labels: labelOverrides, className, }: GuardrailFilterFieldSelectorProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=guardrail-filter-field-selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-filter-field-selector.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Guardrails/guardrail-filter-field-selector.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kCAAkC,EAExC,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGlF,MAAM,WAAW,iCAAiC;IAEhD,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEpC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAE1C,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,IAAI,CAAC;IAKtD,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,MAAM,CAAC,EAAE,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,4BAA4B,CAAC,EAC3C,MAAM,EACN,KAAK,EACL,QAAQ,EACR,KAAK,EACL,cAAsB,EACtB,MAAM,EAAE,cAAc,EACtB,SAAS,GACV,EAAE,iCAAiC,2CA+BnC"}