@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,227 @@
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
+ GuardrailFieldPicker: ()=>GuardrailFieldPicker
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_utils_cjs_namespaceObject = require("../rules-utils.cjs");
35
+ const filterFields = (value, search, keywords)=>{
36
+ const needle = search.trim().toLowerCase();
37
+ return (keywords ?? [
38
+ value
39
+ ]).some((keyword)=>keyword.toLowerCase().includes(needle)) ? 1 : 0;
40
+ };
41
+ function triggerText(props) {
42
+ const { fields, selected, allFields, labels } = props;
43
+ if (allFields?.selected) return allFields.label;
44
+ if (0 === selected.length) return labels.selectFields;
45
+ if (1 === selected.length) return (0, external_rules_utils_cjs_namespaceObject.getGuardrailFieldName)(selected[0], fields);
46
+ return (0, external_i18n_cjs_namespaceObject.formatGuardrailFormMessage)(labels.fieldsSelected, {
47
+ count: selected.length
48
+ });
49
+ }
50
+ function GuardrailFieldPicker({ id, labelId, label, tooltip, fields, selected, onToggle, allFields, chips = false, error, labels }) {
51
+ const errorId = `${id}-error`;
52
+ const [open, setOpen] = (0, external_react_namespaceObject.useState)(false);
53
+ const renderGroup = (source, heading)=>{
54
+ const stale = selected.filter((field)=>field.source === source && !fields[source].some((offered)=>offered.path === field.path));
55
+ const options = [
56
+ ...fields[source],
57
+ ...stale
58
+ ];
59
+ if (0 === options.length) return null;
60
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.CommandGroup, {
61
+ heading: heading,
62
+ children: options.map((field)=>{
63
+ const name = field.title || field.path;
64
+ const isSelected = (0, external_rules_utils_cjs_namespaceObject.isGuardrailFieldSelected)(selected, field);
65
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.CommandItem, {
66
+ value: `${source}:${field.path}`,
67
+ keywords: [
68
+ name,
69
+ field.path
70
+ ],
71
+ "aria-checked": isSelected,
72
+ onSelect: ()=>onToggle({
73
+ ...field,
74
+ source
75
+ }),
76
+ children: [
77
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.Check, {
78
+ className: (0, apollo_wind_namespaceObject.cn)(isSelected ? 'opacity-100' : 'opacity-0'),
79
+ "aria-hidden": "true"
80
+ }),
81
+ name === field.path ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
82
+ className: "truncate",
83
+ children: name
84
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Tooltip, {
85
+ children: [
86
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.TooltipTrigger, {
87
+ asChild: true,
88
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
89
+ className: "truncate",
90
+ children: name
91
+ })
92
+ }),
93
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.TooltipContent, {
94
+ side: "right",
95
+ className: "max-w-[300px]",
96
+ children: field.path
97
+ })
98
+ ]
99
+ })
100
+ ]
101
+ }, `${source}:${field.path}`);
102
+ })
103
+ });
104
+ };
105
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.FormField, {
106
+ children: [
107
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldLabel, {
108
+ id: labelId,
109
+ htmlFor: id,
110
+ required: true,
111
+ tooltip: tooltip,
112
+ tooltipAriaLabel: labels.moreInformation,
113
+ children: label
114
+ }),
115
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Popover, {
116
+ open: open,
117
+ onOpenChange: setOpen,
118
+ children: [
119
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.PopoverTrigger, {
120
+ asChild: true,
121
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("button", {
122
+ id: id,
123
+ type: "button",
124
+ role: "combobox",
125
+ "aria-expanded": open,
126
+ "aria-invalid": error ? true : void 0,
127
+ "aria-describedby": error ? errorId : void 0,
128
+ className: "flex h-9 w-full cursor-pointer items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring md:text-sm future:h-10 future:rounded-xl future:border-0 future:bg-surface-overlay future:hover:bg-surface-hover future:px-4 future:gap-4 future:font-normal aria-invalid:border-error aria-invalid:focus-visible:ring-error future:aria-invalid:ring-1 future:aria-invalid:ring-error/40",
129
+ children: [
130
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
131
+ className: "truncate",
132
+ children: triggerText({
133
+ fields,
134
+ selected,
135
+ allFields,
136
+ labels
137
+ })
138
+ }),
139
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.ChevronDown, {
140
+ className: "h-4 w-4 shrink-0 opacity-50",
141
+ "aria-hidden": "true"
142
+ })
143
+ ]
144
+ })
145
+ }),
146
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.PopoverContent, {
147
+ "aria-labelledby": labelId,
148
+ className: "min-w-[220px] p-0",
149
+ align: "start",
150
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Command, {
151
+ filter: filterFields,
152
+ label: labels.searchFields,
153
+ children: [
154
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.CommandInput, {
155
+ placeholder: labels.searchFields
156
+ }),
157
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.CommandList, {
158
+ children: [
159
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.CommandEmpty, {
160
+ children: labels.noFieldsFound
161
+ }),
162
+ allFields && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.CommandItem, {
163
+ value: "all",
164
+ keywords: [
165
+ allFields.label
166
+ ],
167
+ "aria-checked": allFields.selected,
168
+ onSelect: allFields.onSelect,
169
+ children: [
170
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.Check, {
171
+ className: (0, apollo_wind_namespaceObject.cn)(allFields.selected ? 'opacity-100' : 'opacity-0'),
172
+ "aria-hidden": "true"
173
+ }),
174
+ allFields.label
175
+ ]
176
+ }),
177
+ renderGroup('input', labels.inputGroup),
178
+ renderGroup('output', labels.outputGroup)
179
+ ]
180
+ })
181
+ ]
182
+ })
183
+ })
184
+ ]
185
+ }),
186
+ chips && selected.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("ul", {
187
+ className: "flex flex-wrap gap-1",
188
+ children: selected.map((field)=>{
189
+ const name = (0, external_rules_utils_cjs_namespaceObject.getGuardrailFieldName)(field, fields);
190
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("li", {
191
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.Badge, {
192
+ variant: "secondary",
193
+ className: "gap-1 pr-1",
194
+ title: name === field.path ? void 0 : field.path,
195
+ children: [
196
+ name,
197
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
198
+ type: "button",
199
+ "aria-label": (0, external_i18n_cjs_namespaceObject.formatGuardrailFormMessage)(labels.removeField, {
200
+ name
201
+ }),
202
+ className: "rounded-full hover:bg-muted-foreground/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
203
+ onClick: ()=>onToggle(field),
204
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_lucide_react_namespaceObject.X, {
205
+ className: "size-3",
206
+ "aria-hidden": "true"
207
+ })
208
+ })
209
+ ]
210
+ })
211
+ }, `${field.source}:${field.path}`);
212
+ })
213
+ }),
214
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.FormFieldError, {
215
+ id: errorId,
216
+ children: error
217
+ })
218
+ ]
219
+ });
220
+ }
221
+ exports.GuardrailFieldPicker = __webpack_exports__.GuardrailFieldPicker;
222
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
223
+ "GuardrailFieldPicker"
224
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
225
+ Object.defineProperty(exports, '__esModule', {
226
+ value: true
227
+ });
@@ -0,0 +1,23 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type GuardrailRulesLabels } from '../i18n';
3
+ import type { GuardrailFieldGroup, GuardrailFieldReference } from '../rules-types';
4
+ export type GuardrailFieldPickerLabels = Pick<GuardrailRulesLabels, 'moreInformation' | 'selectFields' | 'fieldsSelected' | 'searchFields' | 'noFieldsFound' | 'inputGroup' | 'outputGroup' | 'removeField'>;
5
+ export interface GuardrailFieldPickerProps {
6
+ id: string;
7
+ labelId: string;
8
+ label: string;
9
+ tooltip?: ReactNode;
10
+ fields: GuardrailFieldGroup;
11
+ selected: readonly GuardrailFieldReference[];
12
+ onToggle: (field: GuardrailFieldReference) => void;
13
+ allFields?: {
14
+ label: string;
15
+ selected: boolean;
16
+ onSelect: () => void;
17
+ };
18
+ chips?: boolean;
19
+ error?: string;
20
+ labels: GuardrailFieldPickerLabels;
21
+ }
22
+ export declare function GuardrailFieldPicker({ id, labelId, label, tooltip, fields, selected, onToggle, allFields, chips, error, labels, }: GuardrailFieldPickerProps): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=guardrail-field-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrail-field-picker.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Guardrails/components/guardrail-field-picker.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AACjD,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EAExB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,oBAAoB,EAClB,iBAAiB,GACjB,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,YAAY,GACZ,aAAa,GACb,aAAa,CAChB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IAExC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB,MAAM,EAAE,mBAAmB,CAAC;IAE5B,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAEnD,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAEvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAyBD,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EACF,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,KAAa,EACb,KAAK,EACL,MAAM,GACP,EAAE,yBAAyB,2CA+H3B"}
@@ -0,0 +1,193 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Badge, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, FormField, FormFieldError, FormFieldLabel, Popover, PopoverContent, PopoverTrigger, Tooltip, TooltipContent, TooltipTrigger, cn } from "@uipath/apollo-wind";
3
+ import { Check, ChevronDown, X } from "lucide-react";
4
+ import { useState } from "react";
5
+ import { formatGuardrailFormMessage } from "../i18n.js";
6
+ import { getGuardrailFieldName, isGuardrailFieldSelected } from "../rules-utils.js";
7
+ const filterFields = (value, search, keywords)=>{
8
+ const needle = search.trim().toLowerCase();
9
+ return (keywords ?? [
10
+ value
11
+ ]).some((keyword)=>keyword.toLowerCase().includes(needle)) ? 1 : 0;
12
+ };
13
+ function triggerText(props) {
14
+ const { fields, selected, allFields, labels } = props;
15
+ if (allFields?.selected) return allFields.label;
16
+ if (0 === selected.length) return labels.selectFields;
17
+ if (1 === selected.length) return getGuardrailFieldName(selected[0], fields);
18
+ return formatGuardrailFormMessage(labels.fieldsSelected, {
19
+ count: selected.length
20
+ });
21
+ }
22
+ function GuardrailFieldPicker({ id, labelId, label, tooltip, fields, selected, onToggle, allFields, chips = false, error, labels }) {
23
+ const errorId = `${id}-error`;
24
+ const [open, setOpen] = useState(false);
25
+ const renderGroup = (source, heading)=>{
26
+ const stale = selected.filter((field)=>field.source === source && !fields[source].some((offered)=>offered.path === field.path));
27
+ const options = [
28
+ ...fields[source],
29
+ ...stale
30
+ ];
31
+ if (0 === options.length) return null;
32
+ return /*#__PURE__*/ jsx(CommandGroup, {
33
+ heading: heading,
34
+ children: options.map((field)=>{
35
+ const name = field.title || field.path;
36
+ const isSelected = isGuardrailFieldSelected(selected, field);
37
+ return /*#__PURE__*/ jsxs(CommandItem, {
38
+ value: `${source}:${field.path}`,
39
+ keywords: [
40
+ name,
41
+ field.path
42
+ ],
43
+ "aria-checked": isSelected,
44
+ onSelect: ()=>onToggle({
45
+ ...field,
46
+ source
47
+ }),
48
+ children: [
49
+ /*#__PURE__*/ jsx(Check, {
50
+ className: cn(isSelected ? 'opacity-100' : 'opacity-0'),
51
+ "aria-hidden": "true"
52
+ }),
53
+ name === field.path ? /*#__PURE__*/ jsx("span", {
54
+ className: "truncate",
55
+ children: name
56
+ }) : /*#__PURE__*/ jsxs(Tooltip, {
57
+ children: [
58
+ /*#__PURE__*/ jsx(TooltipTrigger, {
59
+ asChild: true,
60
+ children: /*#__PURE__*/ jsx("span", {
61
+ className: "truncate",
62
+ children: name
63
+ })
64
+ }),
65
+ /*#__PURE__*/ jsx(TooltipContent, {
66
+ side: "right",
67
+ className: "max-w-[300px]",
68
+ children: field.path
69
+ })
70
+ ]
71
+ })
72
+ ]
73
+ }, `${source}:${field.path}`);
74
+ })
75
+ });
76
+ };
77
+ return /*#__PURE__*/ jsxs(FormField, {
78
+ children: [
79
+ /*#__PURE__*/ jsx(FormFieldLabel, {
80
+ id: labelId,
81
+ htmlFor: id,
82
+ required: true,
83
+ tooltip: tooltip,
84
+ tooltipAriaLabel: labels.moreInformation,
85
+ children: label
86
+ }),
87
+ /*#__PURE__*/ jsxs(Popover, {
88
+ open: open,
89
+ onOpenChange: setOpen,
90
+ children: [
91
+ /*#__PURE__*/ jsx(PopoverTrigger, {
92
+ asChild: true,
93
+ children: /*#__PURE__*/ jsxs("button", {
94
+ id: id,
95
+ type: "button",
96
+ role: "combobox",
97
+ "aria-expanded": open,
98
+ "aria-invalid": error ? true : void 0,
99
+ "aria-describedby": error ? errorId : void 0,
100
+ className: "flex h-9 w-full cursor-pointer items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-colors focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring md:text-sm future:h-10 future:rounded-xl future:border-0 future:bg-surface-overlay future:hover:bg-surface-hover future:px-4 future:gap-4 future:font-normal aria-invalid:border-error aria-invalid:focus-visible:ring-error future:aria-invalid:ring-1 future:aria-invalid:ring-error/40",
101
+ children: [
102
+ /*#__PURE__*/ jsx("span", {
103
+ className: "truncate",
104
+ children: triggerText({
105
+ fields,
106
+ selected,
107
+ allFields,
108
+ labels
109
+ })
110
+ }),
111
+ /*#__PURE__*/ jsx(ChevronDown, {
112
+ className: "h-4 w-4 shrink-0 opacity-50",
113
+ "aria-hidden": "true"
114
+ })
115
+ ]
116
+ })
117
+ }),
118
+ /*#__PURE__*/ jsx(PopoverContent, {
119
+ "aria-labelledby": labelId,
120
+ className: "min-w-[220px] p-0",
121
+ align: "start",
122
+ children: /*#__PURE__*/ jsxs(Command, {
123
+ filter: filterFields,
124
+ label: labels.searchFields,
125
+ children: [
126
+ /*#__PURE__*/ jsx(CommandInput, {
127
+ placeholder: labels.searchFields
128
+ }),
129
+ /*#__PURE__*/ jsxs(CommandList, {
130
+ children: [
131
+ /*#__PURE__*/ jsx(CommandEmpty, {
132
+ children: labels.noFieldsFound
133
+ }),
134
+ allFields && /*#__PURE__*/ jsxs(CommandItem, {
135
+ value: "all",
136
+ keywords: [
137
+ allFields.label
138
+ ],
139
+ "aria-checked": allFields.selected,
140
+ onSelect: allFields.onSelect,
141
+ children: [
142
+ /*#__PURE__*/ jsx(Check, {
143
+ className: cn(allFields.selected ? 'opacity-100' : 'opacity-0'),
144
+ "aria-hidden": "true"
145
+ }),
146
+ allFields.label
147
+ ]
148
+ }),
149
+ renderGroup('input', labels.inputGroup),
150
+ renderGroup('output', labels.outputGroup)
151
+ ]
152
+ })
153
+ ]
154
+ })
155
+ })
156
+ ]
157
+ }),
158
+ chips && selected.length > 0 && /*#__PURE__*/ jsx("ul", {
159
+ className: "flex flex-wrap gap-1",
160
+ children: selected.map((field)=>{
161
+ const name = getGuardrailFieldName(field, fields);
162
+ return /*#__PURE__*/ jsx("li", {
163
+ children: /*#__PURE__*/ jsxs(Badge, {
164
+ variant: "secondary",
165
+ className: "gap-1 pr-1",
166
+ title: name === field.path ? void 0 : field.path,
167
+ children: [
168
+ name,
169
+ /*#__PURE__*/ jsx("button", {
170
+ type: "button",
171
+ "aria-label": formatGuardrailFormMessage(labels.removeField, {
172
+ name
173
+ }),
174
+ className: "rounded-full hover:bg-muted-foreground/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
175
+ onClick: ()=>onToggle(field),
176
+ children: /*#__PURE__*/ jsx(X, {
177
+ className: "size-3",
178
+ "aria-hidden": "true"
179
+ })
180
+ })
181
+ ]
182
+ })
183
+ }, `${field.source}:${field.path}`);
184
+ })
185
+ }),
186
+ /*#__PURE__*/ jsx(FormFieldError, {
187
+ id: errorId,
188
+ children: error
189
+ })
190
+ ]
191
+ });
192
+ }
193
+ export { GuardrailFieldPicker };