@uipath/apollo-react 4.60.0 → 4.61.1

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 (133) hide show
  1. package/dist/canvas/components/BaseNode/BaseNode.cjs +23 -42
  2. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseNode/BaseNode.js +23 -42
  4. package/dist/canvas/components/BaseNode/BaseNodeConfigContext.d.ts.map +1 -1
  5. package/dist/canvas/stores/animatedViewportManager.cjs +4 -4
  6. package/dist/canvas/stores/animatedViewportManager.d.ts.map +1 -1
  7. package/dist/canvas/stores/animatedViewportManager.js +4 -4
  8. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  9. package/dist/material/components/ap-model-picker/ModelPicker.cjs +543 -0
  10. package/dist/material/components/ap-model-picker/ModelPicker.d.ts +56 -0
  11. package/dist/material/components/ap-model-picker/ModelPicker.d.ts.map +1 -0
  12. package/dist/material/components/ap-model-picker/ModelPicker.js +494 -0
  13. package/dist/material/components/ap-model-picker/ModelTagChip.cjs +140 -0
  14. package/dist/material/components/ap-model-picker/ModelTagChip.d.ts +11 -0
  15. package/dist/material/components/ap-model-picker/ModelTagChip.d.ts.map +1 -0
  16. package/dist/material/components/ap-model-picker/ModelTagChip.js +90 -0
  17. package/dist/material/components/ap-model-picker/badges.cjs +53 -0
  18. package/dist/material/components/ap-model-picker/badges.d.ts +9 -0
  19. package/dist/material/components/ap-model-picker/badges.d.ts.map +1 -0
  20. package/dist/material/components/ap-model-picker/badges.js +19 -0
  21. package/dist/material/components/ap-model-picker/i18n.cjs +187 -0
  22. package/dist/material/components/ap-model-picker/i18n.d.ts +53 -0
  23. package/dist/material/components/ap-model-picker/i18n.d.ts.map +1 -0
  24. package/dist/material/components/ap-model-picker/i18n.js +117 -0
  25. package/dist/material/components/ap-model-picker/index.cjs +112 -0
  26. package/dist/material/components/ap-model-picker/index.d.ts +31 -0
  27. package/dist/material/components/ap-model-picker/index.d.ts.map +1 -0
  28. package/dist/material/components/ap-model-picker/index.js +15 -0
  29. package/dist/material/components/ap-model-picker/locales/de.cjs +36 -0
  30. package/dist/material/components/ap-model-picker/locales/de.d.ts +3 -0
  31. package/dist/material/components/ap-model-picker/locales/de.d.ts.map +1 -0
  32. package/dist/material/components/ap-model-picker/locales/de.js +2 -0
  33. package/dist/material/components/ap-model-picker/locales/en.cjs +36 -0
  34. package/dist/material/components/ap-model-picker/locales/en.d.ts +3 -0
  35. package/dist/material/components/ap-model-picker/locales/en.d.ts.map +1 -0
  36. package/dist/material/components/ap-model-picker/locales/en.js +2 -0
  37. package/dist/material/components/ap-model-picker/locales/es-MX.cjs +36 -0
  38. package/dist/material/components/ap-model-picker/locales/es-MX.d.ts +3 -0
  39. package/dist/material/components/ap-model-picker/locales/es-MX.d.ts.map +1 -0
  40. package/dist/material/components/ap-model-picker/locales/es-MX.js +2 -0
  41. package/dist/material/components/ap-model-picker/locales/es.cjs +36 -0
  42. package/dist/material/components/ap-model-picker/locales/es.d.ts +3 -0
  43. package/dist/material/components/ap-model-picker/locales/es.d.ts.map +1 -0
  44. package/dist/material/components/ap-model-picker/locales/es.js +2 -0
  45. package/dist/material/components/ap-model-picker/locales/fr.cjs +36 -0
  46. package/dist/material/components/ap-model-picker/locales/fr.d.ts +3 -0
  47. package/dist/material/components/ap-model-picker/locales/fr.d.ts.map +1 -0
  48. package/dist/material/components/ap-model-picker/locales/fr.js +2 -0
  49. package/dist/material/components/ap-model-picker/locales/ja.cjs +36 -0
  50. package/dist/material/components/ap-model-picker/locales/ja.d.ts +3 -0
  51. package/dist/material/components/ap-model-picker/locales/ja.d.ts.map +1 -0
  52. package/dist/material/components/ap-model-picker/locales/ja.js +2 -0
  53. package/dist/material/components/ap-model-picker/locales/ko.cjs +36 -0
  54. package/dist/material/components/ap-model-picker/locales/ko.d.ts +3 -0
  55. package/dist/material/components/ap-model-picker/locales/ko.d.ts.map +1 -0
  56. package/dist/material/components/ap-model-picker/locales/ko.js +2 -0
  57. package/dist/material/components/ap-model-picker/locales/pt-BR.cjs +36 -0
  58. package/dist/material/components/ap-model-picker/locales/pt-BR.d.ts +3 -0
  59. package/dist/material/components/ap-model-picker/locales/pt-BR.d.ts.map +1 -0
  60. package/dist/material/components/ap-model-picker/locales/pt-BR.js +2 -0
  61. package/dist/material/components/ap-model-picker/locales/pt.cjs +36 -0
  62. package/dist/material/components/ap-model-picker/locales/pt.d.ts +3 -0
  63. package/dist/material/components/ap-model-picker/locales/pt.d.ts.map +1 -0
  64. package/dist/material/components/ap-model-picker/locales/pt.js +2 -0
  65. package/dist/material/components/ap-model-picker/locales/ru.cjs +36 -0
  66. package/dist/material/components/ap-model-picker/locales/ru.d.ts +3 -0
  67. package/dist/material/components/ap-model-picker/locales/ru.d.ts.map +1 -0
  68. package/dist/material/components/ap-model-picker/locales/ru.js +2 -0
  69. package/dist/material/components/ap-model-picker/locales/tr.cjs +36 -0
  70. package/dist/material/components/ap-model-picker/locales/tr.d.ts +3 -0
  71. package/dist/material/components/ap-model-picker/locales/tr.d.ts.map +1 -0
  72. package/dist/material/components/ap-model-picker/locales/tr.js +2 -0
  73. package/dist/material/components/ap-model-picker/locales/zh-CN.cjs +36 -0
  74. package/dist/material/components/ap-model-picker/locales/zh-CN.d.ts +3 -0
  75. package/dist/material/components/ap-model-picker/locales/zh-CN.d.ts.map +1 -0
  76. package/dist/material/components/ap-model-picker/locales/zh-CN.js +2 -0
  77. package/dist/material/components/ap-model-picker/locales/zh-TW.cjs +36 -0
  78. package/dist/material/components/ap-model-picker/locales/zh-TW.d.ts +3 -0
  79. package/dist/material/components/ap-model-picker/locales/zh-TW.d.ts.map +1 -0
  80. package/dist/material/components/ap-model-picker/locales/zh-TW.js +2 -0
  81. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.cjs +236 -0
  82. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.d.ts +15 -0
  83. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.d.ts.map +1 -0
  84. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.js +181 -0
  85. package/dist/material/components/ap-model-picker/primitives/GroupHeader.cjs +139 -0
  86. package/dist/material/components/ap-model-picker/primitives/GroupHeader.d.ts +16 -0
  87. package/dist/material/components/ap-model-picker/primitives/GroupHeader.d.ts.map +1 -0
  88. package/dist/material/components/ap-model-picker/primitives/GroupHeader.js +92 -0
  89. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.cjs +258 -0
  90. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.d.ts +29 -0
  91. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.d.ts.map +1 -0
  92. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.js +199 -0
  93. package/dist/material/components/ap-model-picker/primitives/OptionList.cjs +287 -0
  94. package/dist/material/components/ap-model-picker/primitives/OptionList.d.ts +31 -0
  95. package/dist/material/components/ap-model-picker/primitives/OptionList.d.ts.map +1 -0
  96. package/dist/material/components/ap-model-picker/primitives/OptionList.js +235 -0
  97. package/dist/material/components/ap-model-picker/primitives/PickerPopup.cjs +110 -0
  98. package/dist/material/components/ap-model-picker/primitives/PickerPopup.d.ts +16 -0
  99. package/dist/material/components/ap-model-picker/primitives/PickerPopup.d.ts.map +1 -0
  100. package/dist/material/components/ap-model-picker/primitives/PickerPopup.js +63 -0
  101. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.cjs +143 -0
  102. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.d.ts +18 -0
  103. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.d.ts.map +1 -0
  104. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.js +97 -0
  105. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.cjs +195 -0
  106. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.d.ts +25 -0
  107. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.d.ts.map +1 -0
  108. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.js +148 -0
  109. package/dist/material/components/ap-model-picker/types.cjs +18 -0
  110. package/dist/material/components/ap-model-picker/types.d.ts +77 -0
  111. package/dist/material/components/ap-model-picker/types.d.ts.map +1 -0
  112. package/dist/material/components/ap-model-picker/types.js +0 -0
  113. package/dist/material/components/ap-model-picker/useDiscoveryModels.cjs +113 -0
  114. package/dist/material/components/ap-model-picker/useDiscoveryModels.d.ts +9 -0
  115. package/dist/material/components/ap-model-picker/useDiscoveryModels.d.ts.map +1 -0
  116. package/dist/material/components/ap-model-picker/useDiscoveryModels.js +79 -0
  117. package/dist/material/components/ap-model-picker/useModelPickerState.cjs +175 -0
  118. package/dist/material/components/ap-model-picker/useModelPickerState.d.ts +40 -0
  119. package/dist/material/components/ap-model-picker/useModelPickerState.d.ts.map +1 -0
  120. package/dist/material/components/ap-model-picker/useModelPickerState.js +141 -0
  121. package/dist/material/components/ap-model-picker/usePlatformAccess.cjs +184 -0
  122. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts +32 -0
  123. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts.map +1 -0
  124. package/dist/material/components/ap-model-picker/usePlatformAccess.js +141 -0
  125. package/dist/material/components/ap-model-picker/utils.cjs +309 -0
  126. package/dist/material/components/ap-model-picker/utils.d.ts +23 -0
  127. package/dist/material/components/ap-model-picker/utils.d.ts.map +1 -0
  128. package/dist/material/components/ap-model-picker/utils.js +263 -0
  129. package/dist/material/components/index.cjs +31 -24
  130. package/dist/material/components/index.d.ts +1 -0
  131. package/dist/material/components/index.d.ts.map +1 -1
  132. package/dist/material/components/index.js +1 -0
  133. package/package.json +2 -1
@@ -0,0 +1,148 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import KeyboardArrowDown from "@mui/icons-material/KeyboardArrowDown";
3
+ import Box from "@mui/material/Box";
4
+ import ButtonBase from "@mui/material/ButtonBase";
5
+ import Typography from "@mui/material/Typography";
6
+ import { Colors } from "@uipath/apollo-core";
7
+ import { useSafeLingui } from "../../../../i18n/index.js";
8
+ import { ModelTagChip } from "../ModelTagChip.js";
9
+ import { deriveModelTags } from "../utils.js";
10
+ const PickerTrigger = ({ id, selected, unknownValue, placeholder = 'Select a model', disabled, open, invalid, tagContext, tagVariants, extra, onClick, triggerRef, hideTagKinds, controlsId, describedById, required, className, 'data-testid': dataTestId })=>{
11
+ const { _ } = useSafeLingui();
12
+ const effectiveCtx = tagContext ?? {
13
+ i18n: {
14
+ _
15
+ }
16
+ };
17
+ const inlineTags = selected ? deriveModelTags(selected, effectiveCtx).filter((t)=>!hideTagKinds?.includes(t.kind)) : [];
18
+ const primary = selected ? selected.displayName ?? selected.modelName : null;
19
+ return /*#__PURE__*/ jsx(Box, {
20
+ sx: {
21
+ display: 'flex',
22
+ flexDirection: 'column',
23
+ width: '100%'
24
+ },
25
+ children: /*#__PURE__*/ jsxs(ButtonBase, {
26
+ id: id,
27
+ ref: triggerRef,
28
+ type: "button",
29
+ disabled: disabled,
30
+ onClick: onClick,
31
+ className: className,
32
+ "data-testid": dataTestId,
33
+ "aria-haspopup": "listbox",
34
+ "aria-expanded": open,
35
+ "aria-controls": open && controlsId ? controlsId : void 0,
36
+ "aria-invalid": invalid ? true : void 0,
37
+ "aria-required": required ? true : void 0,
38
+ "aria-describedby": describedById,
39
+ focusRipple: true,
40
+ sx: {
41
+ width: '100%',
42
+ minHeight: 44,
43
+ px: 1.5,
44
+ py: 1,
45
+ display: 'flex',
46
+ alignItems: 'center',
47
+ gap: 1.25,
48
+ justifyContent: 'flex-start',
49
+ textAlign: 'left',
50
+ backgroundColor: `var(--color-background-raised, ${Colors.ColorWhite})`,
51
+ borderRadius: '9px',
52
+ border: `1.5px solid ${invalid ? `var(--color-error-text, ${Colors.ColorRed700})` : `var(--color-primary, ${Colors.ColorBlue500})`}`,
53
+ boxShadow: open ? "0 0 0 3px var(--color-primary-focused, rgba(0, 103, 223, 0.15))" : 'none',
54
+ transition: 'border-color 120ms, box-shadow 120ms',
55
+ color: `var(--color-foreground, ${Colors.ColorGray850})`,
56
+ '&:hover': {
57
+ borderColor: invalid ? `var(--color-error-text, ${Colors.ColorRed700})` : `var(--color-primary-hover, ${Colors.ColorBlue600})`
58
+ },
59
+ '&.Mui-disabled': {
60
+ opacity: 0.5
61
+ }
62
+ },
63
+ children: [
64
+ /*#__PURE__*/ jsx(Box, {
65
+ sx: {
66
+ flex: 1,
67
+ minWidth: 0,
68
+ display: 'flex',
69
+ alignItems: 'center',
70
+ gap: 0.75,
71
+ flexWrap: 'nowrap'
72
+ },
73
+ children: selected ? /*#__PURE__*/ jsxs(Fragment, {
74
+ children: [
75
+ /*#__PURE__*/ jsx(Typography, {
76
+ variant: "body1",
77
+ sx: {
78
+ fontWeight: 600,
79
+ fontSize: 14,
80
+ whiteSpace: 'nowrap',
81
+ overflow: 'hidden',
82
+ textOverflow: 'ellipsis',
83
+ maxWidth: '100%',
84
+ color: `var(--color-foreground, ${Colors.ColorGray850})`
85
+ },
86
+ children: primary
87
+ }),
88
+ inlineTags.map((t)=>/*#__PURE__*/ jsx(Box, {
89
+ sx: {
90
+ flexShrink: 0
91
+ },
92
+ children: /*#__PURE__*/ jsx(ModelTagChip, {
93
+ tag: t,
94
+ variants: tagVariants
95
+ })
96
+ }, `${t.kind}-${t.label}`))
97
+ ]
98
+ }) : unknownValue ? /*#__PURE__*/ jsx(Typography, {
99
+ variant: "body1",
100
+ sx: {
101
+ fontWeight: 600,
102
+ fontSize: 14,
103
+ whiteSpace: 'nowrap',
104
+ overflow: 'hidden',
105
+ textOverflow: 'ellipsis',
106
+ maxWidth: '100%',
107
+ color: `var(--color-error-text, ${Colors.ColorRed700})`
108
+ },
109
+ title: _({
110
+ id: 'modelPicker.trigger.unknownValueTooltip',
111
+ message: '"{value}" is no longer available in this catalog. Pick a replacement to ensure your workflow continues to run.',
112
+ values: {
113
+ value: unknownValue
114
+ }
115
+ }),
116
+ children: unknownValue
117
+ }) : /*#__PURE__*/ jsx(Typography, {
118
+ variant: "body1",
119
+ sx: {
120
+ color: `var(--color-foreground-disable, ${Colors.ColorGray500})`,
121
+ fontSize: 14
122
+ },
123
+ children: placeholder
124
+ })
125
+ }),
126
+ extra && /*#__PURE__*/ jsx(Box, {
127
+ sx: {
128
+ flexShrink: 0,
129
+ display: 'flex',
130
+ alignItems: 'center'
131
+ },
132
+ onClick: (e)=>e.stopPropagation(),
133
+ children: extra
134
+ }),
135
+ /*#__PURE__*/ jsx(KeyboardArrowDown, {
136
+ sx: {
137
+ color: `var(--color-foreground-de-emp, ${Colors.ColorGray550})`,
138
+ transition: 'transform 150ms',
139
+ transform: open ? 'rotate(180deg)' : 'rotate(0)',
140
+ flexShrink: 0,
141
+ fontSize: 18
142
+ }
143
+ })
144
+ ]
145
+ })
146
+ });
147
+ };
148
+ export { PickerTrigger };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,77 @@
1
+ export type ModelVendor = 'OpenAi' | 'AzureOpenAi' | 'AnthropicClaude' | 'AwsBedrock' | 'VertexAi' | 'Custom' | string;
2
+ export type ModelSubscriptionType = 'UiPathOwned' | 'BYOMReplacedLikeForLike' | 'BYOMReplacedAlternative' | 'BYOMAdded' | string;
3
+ export type ModelGeography = 'EU' | 'CA' | 'US' | 'SI' | 'JA' | 'AU' | 'IN' | 'UK' | 'CH' | 'UAE' | 'SK' | 'GLOBAL' | string;
4
+ export interface DeprecationDetails {
5
+ usageEndDate?: string;
6
+ replacedBy?: string;
7
+ }
8
+ export interface ByomDetails {
9
+ availableOperationCodes?: string[];
10
+ integrationServiceConnectionId?: string;
11
+ defaultModel?: string;
12
+ customFieldMappings?: Record<string, string> | null;
13
+ productLlmConfigurationId?: string;
14
+ }
15
+ export interface ModelCostDetails {
16
+ inputTokenCost?: number;
17
+ outputTokenCost?: number;
18
+ currency?: string;
19
+ }
20
+ export interface ModelDetails {
21
+ maxOutputTokens?: number;
22
+ contextWindowTokens?: number;
23
+ costDetails?: ModelCostDetails;
24
+ shouldUseMaxCompletionTokens?: boolean;
25
+ shouldSkipParallelToolCalls?: boolean;
26
+ shouldSkipTemperature?: boolean;
27
+ shouldSkipTopP?: boolean;
28
+ shouldUseResponseApi?: boolean;
29
+ }
30
+ export interface RoutingDetails {
31
+ geography?: ModelGeography;
32
+ model?: string;
33
+ }
34
+ export interface DiscoveryModel {
35
+ modelId: string;
36
+ modelName: string;
37
+ displayName?: string;
38
+ effectiveModel?: string | null;
39
+ vendor: ModelVendor;
40
+ modelFamily?: string;
41
+ apiFlavor?: string;
42
+ modelSubscriptionType?: ModelSubscriptionType;
43
+ isRecommended?: boolean;
44
+ isPreview?: boolean;
45
+ deprecationDetails?: DeprecationDetails | null;
46
+ byomDetails?: ByomDetails | null;
47
+ modelDetails?: ModelDetails;
48
+ routingDetails?: RoutingDetails | null;
49
+ byoConnectionLabel?: string;
50
+ }
51
+ export type ModelTagKind = 'recommended' | 'preview' | 'deprecating' | 'substituted' | 'custom' | 'out-of-region' | 'thinking' | 'cost-basic' | 'cost-standard' | 'cost-premium' | string;
52
+ export type CostTier = 'basic' | 'standard' | 'premium';
53
+ export interface ModelTag {
54
+ kind: ModelTagKind;
55
+ label: string;
56
+ tooltip?: string;
57
+ variant?: string;
58
+ }
59
+ export interface ModelGroup {
60
+ key: string;
61
+ label: string;
62
+ hint?: string;
63
+ models: DiscoveryModel[];
64
+ }
65
+ export interface DiscoveryRequestContext {
66
+ token: string;
67
+ baseUrl?: string;
68
+ accountId: string;
69
+ tenantId: string;
70
+ requestingProduct: string;
71
+ requestingFeature: string;
72
+ operationCode?: string;
73
+ folderKey?: string;
74
+ fromDedicatedCloud?: boolean;
75
+ onlyAvailableModels?: boolean;
76
+ }
77
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
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
+ useDiscoveryModels: ()=>useDiscoveryModels
28
+ });
29
+ const external_react_namespaceObject = require("react");
30
+ function useDiscoveryModels(ctx) {
31
+ const [models, setModels] = (0, external_react_namespaceObject.useState)([]);
32
+ const [loading, setLoading] = (0, external_react_namespaceObject.useState)(false);
33
+ const [error, setError] = (0, external_react_namespaceObject.useState)(null);
34
+ const abortRef = (0, external_react_namespaceObject.useRef)(null);
35
+ const fetchModels = (0, external_react_namespaceObject.useCallback)(async ()=>{
36
+ if (!ctx) return;
37
+ abortRef.current?.abort();
38
+ const ctrl = new AbortController();
39
+ abortRef.current = ctrl;
40
+ setLoading(true);
41
+ setError(null);
42
+ const base = (ctx.baseUrl ?? '').replace(/\/$/, '');
43
+ const params = new URLSearchParams();
44
+ if (false === ctx.onlyAvailableModels) params.set('onlyAvailableModels', 'false');
45
+ const qs = params.toString();
46
+ const url = `${base}/api/discovery${qs ? `?${qs}` : ''}`;
47
+ const headers = {
48
+ Authorization: `Bearer ${ctx.token}`,
49
+ Accept: 'application/json',
50
+ 'X-UiPath-Internal-AccountId': ctx.accountId,
51
+ 'X-UiPath-Internal-TenantId': ctx.tenantId,
52
+ 'X-UiPath-LlmGateway-RequestingProduct': ctx.requestingProduct,
53
+ 'X-UiPath-LlmGateway-RequestingFeature': ctx.requestingFeature
54
+ };
55
+ if (ctx.operationCode) headers['X-UiPath-LlmGateway-OperationCode'] = ctx.operationCode;
56
+ if (ctx.folderKey) headers['X-UiPath-FolderKey'] = ctx.folderKey;
57
+ if (ctx.fromDedicatedCloud) headers['X-UiPath-LlmGateway-FromDedicatedCloud'] = 'true';
58
+ try {
59
+ const res = await fetch(url, {
60
+ headers,
61
+ signal: ctrl.signal
62
+ });
63
+ if (!res.ok) throw new Error(`Discovery API ${res.status} ${res.statusText}`);
64
+ const data = await res.json();
65
+ const list = Array.isArray(data) ? data : data.models ?? [];
66
+ if (!ctrl.signal.aborted) setModels(normalizeKeys(list));
67
+ } catch (err) {
68
+ if (err?.name === 'AbortError') return;
69
+ if (!ctrl.signal.aborted) setError(err instanceof Error ? err : new Error(String(err)));
70
+ } finally{
71
+ if (!ctrl.signal.aborted) setLoading(false);
72
+ }
73
+ }, [
74
+ ctx
75
+ ]);
76
+ (0, external_react_namespaceObject.useEffect)(()=>{
77
+ if (!ctx) {
78
+ abortRef.current?.abort();
79
+ setModels([]);
80
+ setLoading(false);
81
+ setError(null);
82
+ return;
83
+ }
84
+ fetchModels();
85
+ return ()=>abortRef.current?.abort();
86
+ }, [
87
+ ctx,
88
+ fetchModels
89
+ ]);
90
+ return {
91
+ models,
92
+ loading,
93
+ error,
94
+ refetch: fetchModels
95
+ };
96
+ }
97
+ function camelizeDeep(value) {
98
+ if (Array.isArray(value)) return value.map(camelizeDeep);
99
+ if (!value || 'object' != typeof value) return value;
100
+ const camel = Object.create(null);
101
+ for (const [k, v] of Object.entries(value))camel[k.charAt(0).toLowerCase() + k.slice(1)] = camelizeDeep(v);
102
+ return camel;
103
+ }
104
+ function normalizeKeys(list) {
105
+ return list.map((raw)=>camelizeDeep(raw));
106
+ }
107
+ exports.useDiscoveryModels = __webpack_exports__.useDiscoveryModels;
108
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
109
+ "useDiscoveryModels"
110
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
111
+ Object.defineProperty(exports, '__esModule', {
112
+ value: true
113
+ });
@@ -0,0 +1,9 @@
1
+ import type { DiscoveryModel, DiscoveryRequestContext } from './types';
2
+ export interface UseDiscoveryModelsResult {
3
+ models: DiscoveryModel[];
4
+ loading: boolean;
5
+ error: Error | null;
6
+ refetch: () => void;
7
+ }
8
+ export declare function useDiscoveryModels(ctx: DiscoveryRequestContext | null): UseDiscoveryModelsResult;
9
+ //# sourceMappingURL=useDiscoveryModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDiscoveryModels.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/useDiscoveryModels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAWD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI,GAAG,wBAAwB,CA4EhG"}
@@ -0,0 +1,79 @@
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
+ function useDiscoveryModels(ctx) {
3
+ const [models, setModels] = useState([]);
4
+ const [loading, setLoading] = useState(false);
5
+ const [error, setError] = useState(null);
6
+ const abortRef = useRef(null);
7
+ const fetchModels = useCallback(async ()=>{
8
+ if (!ctx) return;
9
+ abortRef.current?.abort();
10
+ const ctrl = new AbortController();
11
+ abortRef.current = ctrl;
12
+ setLoading(true);
13
+ setError(null);
14
+ const base = (ctx.baseUrl ?? '').replace(/\/$/, '');
15
+ const params = new URLSearchParams();
16
+ if (false === ctx.onlyAvailableModels) params.set('onlyAvailableModels', 'false');
17
+ const qs = params.toString();
18
+ const url = `${base}/api/discovery${qs ? `?${qs}` : ''}`;
19
+ const headers = {
20
+ Authorization: `Bearer ${ctx.token}`,
21
+ Accept: 'application/json',
22
+ 'X-UiPath-Internal-AccountId': ctx.accountId,
23
+ 'X-UiPath-Internal-TenantId': ctx.tenantId,
24
+ 'X-UiPath-LlmGateway-RequestingProduct': ctx.requestingProduct,
25
+ 'X-UiPath-LlmGateway-RequestingFeature': ctx.requestingFeature
26
+ };
27
+ if (ctx.operationCode) headers['X-UiPath-LlmGateway-OperationCode'] = ctx.operationCode;
28
+ if (ctx.folderKey) headers['X-UiPath-FolderKey'] = ctx.folderKey;
29
+ if (ctx.fromDedicatedCloud) headers['X-UiPath-LlmGateway-FromDedicatedCloud'] = 'true';
30
+ try {
31
+ const res = await fetch(url, {
32
+ headers,
33
+ signal: ctrl.signal
34
+ });
35
+ if (!res.ok) throw new Error(`Discovery API ${res.status} ${res.statusText}`);
36
+ const data = await res.json();
37
+ const list = Array.isArray(data) ? data : data.models ?? [];
38
+ if (!ctrl.signal.aborted) setModels(normalizeKeys(list));
39
+ } catch (err) {
40
+ if (err?.name === 'AbortError') return;
41
+ if (!ctrl.signal.aborted) setError(err instanceof Error ? err : new Error(String(err)));
42
+ } finally{
43
+ if (!ctrl.signal.aborted) setLoading(false);
44
+ }
45
+ }, [
46
+ ctx
47
+ ]);
48
+ useEffect(()=>{
49
+ if (!ctx) {
50
+ abortRef.current?.abort();
51
+ setModels([]);
52
+ setLoading(false);
53
+ setError(null);
54
+ return;
55
+ }
56
+ fetchModels();
57
+ return ()=>abortRef.current?.abort();
58
+ }, [
59
+ ctx,
60
+ fetchModels
61
+ ]);
62
+ return {
63
+ models,
64
+ loading,
65
+ error,
66
+ refetch: fetchModels
67
+ };
68
+ }
69
+ function camelizeDeep(value) {
70
+ if (Array.isArray(value)) return value.map(camelizeDeep);
71
+ if (!value || 'object' != typeof value) return value;
72
+ const camel = Object.create(null);
73
+ for (const [k, v] of Object.entries(value))camel[k.charAt(0).toLowerCase() + k.slice(1)] = camelizeDeep(v);
74
+ return camel;
75
+ }
76
+ function normalizeKeys(list) {
77
+ return list.map((raw)=>camelizeDeep(raw));
78
+ }
79
+ export { useDiscoveryModels };
@@ -0,0 +1,175 @@
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
+ useModelPickerState: ()=>useModelPickerState
28
+ });
29
+ const external_react_namespaceObject = require("react");
30
+ const external_utils_cjs_namespaceObject = require("./utils.cjs");
31
+ function useModelPickerState(opts) {
32
+ const { models, value, onChange, groupBy: initialGroupBy = "subscription", recommendedModelIds, previewModelIds, filter, initiallyCollapsedGroups, i18n } = opts;
33
+ const reactId = (0, external_react_namespaceObject.useId)();
34
+ const id = `apollo-model-picker-${reactId}`;
35
+ const triggerRef = (0, external_react_namespaceObject.useRef)(null);
36
+ const searchRef = (0, external_react_namespaceObject.useRef)(null);
37
+ const [open, setOpen] = (0, external_react_namespaceObject.useState)(false);
38
+ const [query, setQuery] = (0, external_react_namespaceObject.useState)('');
39
+ const [activeIndex, setActiveIndex] = (0, external_react_namespaceObject.useState)(0);
40
+ const [groupBy, setGroupBy] = (0, external_react_namespaceObject.useState)(initialGroupBy);
41
+ const [collapsedSet, setCollapsedSet] = (0, external_react_namespaceObject.useState)(()=>new Set(initiallyCollapsedGroups ?? []));
42
+ const visibleModels = (0, external_react_namespaceObject.useMemo)(()=>filter ? models.filter(filter) : models, [
43
+ models,
44
+ filter
45
+ ]);
46
+ const annotated = (0, external_react_namespaceObject.useMemo)(()=>{
47
+ const groups = (0, external_utils_cjs_namespaceObject.groupModels)(visibleModels, groupBy, {
48
+ recommendedModelIds,
49
+ previewModelIds,
50
+ i18n
51
+ });
52
+ return groups.flatMap((g)=>g.models.map((m)=>({
53
+ ...m,
54
+ groupKey: g.key,
55
+ groupLabel: g.label
56
+ })));
57
+ }, [
58
+ visibleModels,
59
+ groupBy,
60
+ recommendedModelIds,
61
+ previewModelIds,
62
+ i18n
63
+ ]);
64
+ const filtered = (0, external_react_namespaceObject.useMemo)(()=>(0, external_utils_cjs_namespaceObject.filterModels)(annotated, query), [
65
+ annotated,
66
+ query
67
+ ]);
68
+ const groupCounts = (0, external_react_namespaceObject.useMemo)(()=>{
69
+ const out = {};
70
+ for (const m of annotated)out[m.groupKey] = (out[m.groupKey] ?? 0) + 1;
71
+ return out;
72
+ }, [
73
+ annotated
74
+ ]);
75
+ const selected = (0, external_react_namespaceObject.useMemo)(()=>annotated.find((m)=>m.modelId === value) ?? models.find((m)=>m.modelId === value) ?? null, [
76
+ annotated,
77
+ models,
78
+ value
79
+ ]);
80
+ const unknownValue = (0, external_react_namespaceObject.useMemo)(()=>{
81
+ if (!value) return null;
82
+ if (selected) return null;
83
+ if (0 === models.length) return null;
84
+ return value;
85
+ }, [
86
+ models,
87
+ selected,
88
+ value
89
+ ]);
90
+ const collapsedGroups = (0, external_react_namespaceObject.useMemo)(()=>query.trim() ? new Set() : collapsedSet, [
91
+ query,
92
+ collapsedSet
93
+ ]);
94
+ const toggleGroup = (0, external_react_namespaceObject.useCallback)((groupKey)=>{
95
+ setCollapsedSet((prev)=>{
96
+ const next = new Set(prev);
97
+ if (next.has(groupKey)) next.delete(groupKey);
98
+ else next.add(groupKey);
99
+ return next;
100
+ });
101
+ }, []);
102
+ (0, external_react_namespaceObject.useEffect)(()=>{
103
+ if (open) {
104
+ const sel = filtered.findIndex((m)=>m.modelId === value);
105
+ setActiveIndex(sel >= 0 ? sel : 0);
106
+ requestAnimationFrame(()=>searchRef.current?.focus());
107
+ } else setQuery('');
108
+ }, [
109
+ open
110
+ ]);
111
+ (0, external_react_namespaceObject.useEffect)(()=>{
112
+ if (activeIndex >= filtered.length) setActiveIndex(0);
113
+ }, [
114
+ filtered.length,
115
+ activeIndex
116
+ ]);
117
+ const choose = (0, external_react_namespaceObject.useCallback)((m)=>{
118
+ onChange?.(m);
119
+ setOpen(false);
120
+ triggerRef.current?.focus();
121
+ }, [
122
+ onChange
123
+ ]);
124
+ const onSearchKeyDown = (0, external_react_namespaceObject.useCallback)((e)=>{
125
+ if ('ArrowDown' === e.key) {
126
+ e.preventDefault();
127
+ setActiveIndex((i)=>Math.min(i + 1, Math.max(filtered.length - 1, 0)));
128
+ } else if ('ArrowUp' === e.key) {
129
+ e.preventDefault();
130
+ setActiveIndex((i)=>Math.max(i - 1, 0));
131
+ } else if ('Enter' === e.key) {
132
+ e.preventDefault();
133
+ const m = filtered[activeIndex];
134
+ if (m) choose(m);
135
+ } else if ('Escape' === e.key) {
136
+ e.preventDefault();
137
+ setOpen(false);
138
+ triggerRef.current?.focus();
139
+ }
140
+ }, [
141
+ filtered,
142
+ activeIndex,
143
+ choose
144
+ ]);
145
+ return {
146
+ open,
147
+ setOpen,
148
+ query,
149
+ setQuery,
150
+ groupBy,
151
+ setGroupBy,
152
+ visibleModels,
153
+ annotated,
154
+ filtered,
155
+ groupCounts,
156
+ collapsedGroups,
157
+ toggleGroup,
158
+ selected,
159
+ unknownValue,
160
+ activeIndex,
161
+ setActiveIndex,
162
+ onSearchKeyDown,
163
+ choose,
164
+ id,
165
+ triggerRef,
166
+ searchRef
167
+ };
168
+ }
169
+ exports.useModelPickerState = __webpack_exports__.useModelPickerState;
170
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
171
+ "useModelPickerState"
172
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
173
+ Object.defineProperty(exports, '__esModule', {
174
+ value: true
175
+ });
@@ -0,0 +1,40 @@
1
+ import type { PickerTranslator } from './i18n';
2
+ import type { AnnotatedModel } from './primitives/OptionList';
3
+ import type { DiscoveryModel } from './types';
4
+ import { type GroupStrategy } from './utils';
5
+ export interface UseModelPickerStateOptions {
6
+ models: DiscoveryModel[];
7
+ value?: string | null;
8
+ onChange?: (model: DiscoveryModel) => void;
9
+ groupBy?: GroupStrategy;
10
+ recommendedModelIds?: readonly string[];
11
+ previewModelIds?: readonly string[];
12
+ filter?: (model: DiscoveryModel) => boolean;
13
+ initiallyCollapsedGroups?: readonly string[];
14
+ i18n?: PickerTranslator;
15
+ }
16
+ export interface UseModelPickerStateResult {
17
+ open: boolean;
18
+ setOpen: (next: boolean) => void;
19
+ query: string;
20
+ setQuery: (next: string) => void;
21
+ groupBy: GroupStrategy;
22
+ setGroupBy: (next: GroupStrategy) => void;
23
+ visibleModels: DiscoveryModel[];
24
+ annotated: AnnotatedModel[];
25
+ filtered: AnnotatedModel[];
26
+ groupCounts: Record<string, number>;
27
+ collapsedGroups: ReadonlySet<string>;
28
+ toggleGroup: (groupKey: string) => void;
29
+ selected: DiscoveryModel | null;
30
+ unknownValue: string | null;
31
+ activeIndex: number;
32
+ setActiveIndex: (i: number) => void;
33
+ onSearchKeyDown: (e: React.KeyboardEvent) => void;
34
+ choose: (m: DiscoveryModel) => void;
35
+ id: string;
36
+ triggerRef: React.RefObject<HTMLButtonElement | null>;
37
+ searchRef: React.RefObject<HTMLInputElement | null>;
38
+ }
39
+ export declare function useModelPickerState(opts: UseModelPickerStateOptions): UseModelPickerStateResult;
40
+ //# sourceMappingURL=useModelPickerState.d.ts.map