@process.co/ui 0.0.5 → 0.0.7
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.
- package/css/ui.css +36 -0
- package/dist/components/fields/index.cjs +5117 -0
- package/dist/components/fields/index.cjs.map +1 -0
- package/dist/components/fields/index.d.cts +2 -0
- package/dist/components/fields/index.d.ts +2 -0
- package/dist/components/fields/index.js +5086 -0
- package/dist/components/fields/index.js.map +1 -0
- package/dist/index-_mVyhd0I.d.cts +384 -0
- package/dist/index-_mVyhd0I.d.ts +384 -0
- package/dist/index.cjs +417 -2213
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -47
- package/dist/index.d.ts +3 -47
- package/dist/index.js +417 -2213
- package/dist/index.js.map +1 -1
- package/package.json +11 -1
package/dist/index.js
CHANGED
|
@@ -9,35 +9,6 @@ function _array_with_holes(arr) {
|
|
|
9
9
|
function _array_without_holes(arr) {
|
|
10
10
|
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
11
11
|
}
|
|
12
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
13
|
-
try {
|
|
14
|
-
var info = gen[key](arg);
|
|
15
|
-
var value = info.value;
|
|
16
|
-
} catch (error) {
|
|
17
|
-
reject(error);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
if (info.done) {
|
|
21
|
-
resolve(value);
|
|
22
|
-
} else {
|
|
23
|
-
Promise.resolve(value).then(_next, _throw);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function _async_to_generator(fn) {
|
|
27
|
-
return function() {
|
|
28
|
-
var self = this, args = arguments;
|
|
29
|
-
return new Promise(function(resolve, reject) {
|
|
30
|
-
var gen = fn.apply(self, args);
|
|
31
|
-
function _next(value) {
|
|
32
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
33
|
-
}
|
|
34
|
-
function _throw(err) {
|
|
35
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
36
|
-
}
|
|
37
|
-
_next(undefined);
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
12
|
function _define_property(obj, key, value) {
|
|
42
13
|
if (key in obj) {
|
|
43
14
|
Object.defineProperty(obj, key, {
|
|
@@ -51,13 +22,6 @@ function _define_property(obj, key, value) {
|
|
|
51
22
|
}
|
|
52
23
|
return obj;
|
|
53
24
|
}
|
|
54
|
-
function _instanceof(left, right) {
|
|
55
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
56
|
-
return !!right[Symbol.hasInstance](left);
|
|
57
|
-
} else {
|
|
58
|
-
return left instanceof right;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
25
|
function _iterable_to_array(iter) {
|
|
62
26
|
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
63
27
|
}
|
|
@@ -106,30 +70,6 @@ function _object_spread(target) {
|
|
|
106
70
|
}
|
|
107
71
|
return target;
|
|
108
72
|
}
|
|
109
|
-
function ownKeys(object, enumerableOnly) {
|
|
110
|
-
var keys = Object.keys(object);
|
|
111
|
-
if (Object.getOwnPropertySymbols) {
|
|
112
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
113
|
-
if (enumerableOnly) {
|
|
114
|
-
symbols = symbols.filter(function(sym) {
|
|
115
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
keys.push.apply(keys, symbols);
|
|
119
|
-
}
|
|
120
|
-
return keys;
|
|
121
|
-
}
|
|
122
|
-
function _object_spread_props(target, source) {
|
|
123
|
-
source = source != null ? source : {};
|
|
124
|
-
if (Object.getOwnPropertyDescriptors) {
|
|
125
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
126
|
-
} else {
|
|
127
|
-
ownKeys(Object(source)).forEach(function(key) {
|
|
128
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
return target;
|
|
132
|
-
}
|
|
133
73
|
function _object_without_properties(source, excluded) {
|
|
134
74
|
if (source == null) return {};
|
|
135
75
|
var target = _object_without_properties_loose(source, excluded);
|
|
@@ -175,105 +115,16 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
175
115
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
176
116
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
177
117
|
}
|
|
178
|
-
function _ts_generator(thisArg, body) {
|
|
179
|
-
var f, y, t, _ = {
|
|
180
|
-
label: 0,
|
|
181
|
-
sent: function() {
|
|
182
|
-
if (t[0] & 1) throw t[1];
|
|
183
|
-
return t[1];
|
|
184
|
-
},
|
|
185
|
-
trys: [],
|
|
186
|
-
ops: []
|
|
187
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
188
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
189
|
-
return this;
|
|
190
|
-
}), g;
|
|
191
|
-
function verb(n) {
|
|
192
|
-
return function(v) {
|
|
193
|
-
return step([
|
|
194
|
-
n,
|
|
195
|
-
v
|
|
196
|
-
]);
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
function step(op) {
|
|
200
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
201
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
202
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
203
|
-
if (y = 0, t) op = [
|
|
204
|
-
op[0] & 2,
|
|
205
|
-
t.value
|
|
206
|
-
];
|
|
207
|
-
switch(op[0]){
|
|
208
|
-
case 0:
|
|
209
|
-
case 1:
|
|
210
|
-
t = op;
|
|
211
|
-
break;
|
|
212
|
-
case 4:
|
|
213
|
-
_.label++;
|
|
214
|
-
return {
|
|
215
|
-
value: op[1],
|
|
216
|
-
done: false
|
|
217
|
-
};
|
|
218
|
-
case 5:
|
|
219
|
-
_.label++;
|
|
220
|
-
y = op[1];
|
|
221
|
-
op = [
|
|
222
|
-
0
|
|
223
|
-
];
|
|
224
|
-
continue;
|
|
225
|
-
case 7:
|
|
226
|
-
op = _.ops.pop();
|
|
227
|
-
_.trys.pop();
|
|
228
|
-
continue;
|
|
229
|
-
default:
|
|
230
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
231
|
-
_ = 0;
|
|
232
|
-
continue;
|
|
233
|
-
}
|
|
234
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
235
|
-
_.label = op[1];
|
|
236
|
-
break;
|
|
237
|
-
}
|
|
238
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
239
|
-
_.label = t[1];
|
|
240
|
-
t = op;
|
|
241
|
-
break;
|
|
242
|
-
}
|
|
243
|
-
if (t && _.label < t[2]) {
|
|
244
|
-
_.label = t[2];
|
|
245
|
-
_.ops.push(op);
|
|
246
|
-
break;
|
|
247
|
-
}
|
|
248
|
-
if (t[2]) _.ops.pop();
|
|
249
|
-
_.trys.pop();
|
|
250
|
-
continue;
|
|
251
|
-
}
|
|
252
|
-
op = body.call(thisArg, _);
|
|
253
|
-
} catch (e) {
|
|
254
|
-
op = [
|
|
255
|
-
6,
|
|
256
|
-
e
|
|
257
|
-
];
|
|
258
|
-
y = 0;
|
|
259
|
-
} finally{
|
|
260
|
-
f = t = 0;
|
|
261
|
-
}
|
|
262
|
-
if (op[0] & 5) throw op[1];
|
|
263
|
-
return {
|
|
264
|
-
value: op[0] ? op[1] : void 0,
|
|
265
|
-
done: true
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
118
|
import * as React4 from 'react';
|
|
270
|
-
import
|
|
271
|
-
import { create } from 'zustand';
|
|
272
|
-
import { Editor } from '@monaco-editor/react';
|
|
273
|
-
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
274
|
-
import { faExpand, faSpinner } from '@fortawesome/pro-regular-svg-icons';
|
|
119
|
+
import { createContext, useContext } from 'react';
|
|
275
120
|
import { Slot } from '@radix-ui/react-slot';
|
|
276
|
-
|
|
121
|
+
var __defProp = Object.defineProperty;
|
|
122
|
+
var __export = function(target, all) {
|
|
123
|
+
for(var name in all)__defProp(target, name, {
|
|
124
|
+
get: all[name],
|
|
125
|
+
enumerable: true
|
|
126
|
+
});
|
|
127
|
+
};
|
|
277
128
|
// ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
|
|
278
129
|
function r(e) {
|
|
279
130
|
var t, f, n = "";
|
|
@@ -288,7 +139,47 @@ function clsx() {
|
|
|
288
139
|
for(var e, t, f = 0, n = "", o = arguments.length; f < o; f++)(e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
289
140
|
return n;
|
|
290
141
|
}
|
|
291
|
-
|
|
142
|
+
// ../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs
|
|
143
|
+
var falsyToString = function(value) {
|
|
144
|
+
return typeof value === "boolean" ? "".concat(value) : value === 0 ? "0" : value;
|
|
145
|
+
};
|
|
146
|
+
var cx = clsx;
|
|
147
|
+
var cva = function(base, config) {
|
|
148
|
+
return function(props) {
|
|
149
|
+
var _config_compoundVariants;
|
|
150
|
+
if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
151
|
+
var variants = config.variants, defaultVariants = config.defaultVariants;
|
|
152
|
+
var getVariantClassNames = Object.keys(variants).map(function(variant) {
|
|
153
|
+
var variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
154
|
+
var defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
155
|
+
if (variantProp === null) return null;
|
|
156
|
+
var variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
157
|
+
return variants[variant][variantKey];
|
|
158
|
+
});
|
|
159
|
+
var propsWithoutUndefined = props && Object.entries(props).reduce(function(acc, param) {
|
|
160
|
+
var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
|
|
161
|
+
if (value === void 0) {
|
|
162
|
+
return acc;
|
|
163
|
+
}
|
|
164
|
+
acc[key] = value;
|
|
165
|
+
return acc;
|
|
166
|
+
}, {});
|
|
167
|
+
var getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce(function(acc, param) {
|
|
168
|
+
var cvClass = param.class, cvClassName = param.className, compoundVariantOptions = _object_without_properties(param, [
|
|
169
|
+
"class",
|
|
170
|
+
"className"
|
|
171
|
+
]);
|
|
172
|
+
return Object.entries(compoundVariantOptions).every(function(param2) {
|
|
173
|
+
var _param2 = _sliced_to_array(param2, 2), key = _param2[0], value = _param2[1];
|
|
174
|
+
return Array.isArray(value) ? value.includes(_object_spread({}, defaultVariants, propsWithoutUndefined)[key]) : _object_spread({}, defaultVariants, propsWithoutUndefined)[key] === value;
|
|
175
|
+
}) ? _to_consumable_array(acc).concat([
|
|
176
|
+
cvClass,
|
|
177
|
+
cvClassName
|
|
178
|
+
]) : acc;
|
|
179
|
+
}, []);
|
|
180
|
+
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
181
|
+
};
|
|
182
|
+
};
|
|
292
183
|
// ../../node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
293
184
|
var concatArrays = function(array1, array2) {
|
|
294
185
|
var combinedArray = new Array(array1.length + array2.length);
|
|
@@ -4921,2116 +4812,429 @@ function cn() {
|
|
|
4921
4812
|
}
|
|
4922
4813
|
return twMerge(clsx(inputs));
|
|
4923
4814
|
}
|
|
4924
|
-
// src/components/ui/
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
className: cn("uii:relative", wrapperClassName)
|
|
4935
|
-
}, /* @__PURE__ */ React4.createElement("input", _object_spread({
|
|
4936
|
-
"aria-invalid": error,
|
|
4937
|
-
type: type,
|
|
4938
|
-
"data-slot": "input",
|
|
4939
|
-
className: cn("uii:border-input uii:file:text-foreground uii:placeholder:text-muted-foreground uii:selection:bg-primary uii:selection:text-primary-foreground uii:flex uii:h-9 uii:w-full uii:min-w-0 uii:rounded-sm uii:border uii:bg-transparent uii:px-3 uii:py-1 uii:text-base uii:shadow-xs uii:transition-[color,box-shadow] uii:outline-none uii:file:inline-flex uii:file:h-7 uii:file:border-0 uii:file:bg-transparent uii:file:text-sm uii:file:font-medium uii:disabled:pointer-events-none uii:disabled:cursor-not-allowed uii:disabled:opacity-50 uii:md:text-sm", "uii:focus-visible:border-ring uii:focus-visible:ring-ring/50 uii:focus-visible:ring-[3px]", "uii:aria-invalid:ring-destructive/20 uii:dark:aria-invalid:ring-destructive/40 uii:aria-invalid:border-destructive", {
|
|
4940
|
-
"uii:pr-30": error
|
|
4941
|
-
}, className)
|
|
4942
|
-
}, props)), error && /* @__PURE__ */ React4.createElement("span", {
|
|
4943
|
-
className: "uii:absolute uii:inset-y-0 uii:right-0 uii:flex uii:items-center uii:pr-2 uii:border-l-10 uii:border-l-background uii:my-[6px] uii:pointer-events-none "
|
|
4944
|
-
}, /* @__PURE__ */ React4.createElement("span", {
|
|
4945
|
-
className: "uii:bg-destructive uii:text-white uii:px-1.5 uii:py-1.5 uii:rounded-xs uii:uppercase uii:tracking-wide uii:font-medium uii:text-xs uii:leading-none uii:font-sans"
|
|
4946
|
-
}, error && required ? "required" : "error")));
|
|
4947
|
-
}
|
|
4948
|
-
var defaultState = {
|
|
4949
|
-
expression: "",
|
|
4950
|
-
mode: "value",
|
|
4951
|
-
isEditing: false,
|
|
4952
|
-
currentValue: void 0,
|
|
4953
|
-
isFullScreen: false
|
|
4954
|
-
};
|
|
4955
|
-
var useExpressionModeStore = create(function(set, get) {
|
|
4956
|
-
return {
|
|
4957
|
-
states: {},
|
|
4958
|
-
setState: function(fieldName, state) {
|
|
4959
|
-
set(function(store) {
|
|
4960
|
-
return {
|
|
4961
|
-
states: _object_spread_props(_object_spread({}, store.states), _define_property({}, fieldName, state))
|
|
4962
|
-
};
|
|
4963
|
-
});
|
|
4964
|
-
},
|
|
4965
|
-
getState: function(fieldName) {
|
|
4966
|
-
var store = get();
|
|
4967
|
-
return store.states[fieldName] || defaultState;
|
|
4968
|
-
},
|
|
4969
|
-
clear: function(fieldName) {
|
|
4970
|
-
set(function(store) {
|
|
4971
|
-
return {
|
|
4972
|
-
states: _object_spread_props(_object_spread({}, store.states), _define_property({}, fieldName, defaultState))
|
|
4973
|
-
};
|
|
4974
|
-
});
|
|
4975
|
-
},
|
|
4976
|
-
switchToValue: function(fieldName) {
|
|
4977
|
-
var currentState = get().getState(fieldName);
|
|
4978
|
-
get().setState(fieldName, _object_spread_props(_object_spread({}, currentState), {
|
|
4979
|
-
mode: "value",
|
|
4980
|
-
isEditing: false
|
|
4981
|
-
}));
|
|
4982
|
-
},
|
|
4983
|
-
switchToExpression: function(fieldName) {
|
|
4984
|
-
var currentState = get().getState(fieldName);
|
|
4985
|
-
get().setState(fieldName, _object_spread_props(_object_spread({}, currentState), {
|
|
4986
|
-
mode: "expression",
|
|
4987
|
-
isEditing: false
|
|
4988
|
-
}));
|
|
4989
|
-
},
|
|
4990
|
-
switchToEditor: function(fieldName) {
|
|
4991
|
-
var currentState = get().getState(fieldName);
|
|
4992
|
-
get().setState(fieldName, _object_spread_props(_object_spread({}, currentState), {
|
|
4993
|
-
mode: "expression",
|
|
4994
|
-
isEditing: true
|
|
4995
|
-
}));
|
|
4996
|
-
},
|
|
4997
|
-
setExpression: function(fieldName, expression) {
|
|
4998
|
-
var currentState = get().getState(fieldName);
|
|
4999
|
-
get().setState(fieldName, _object_spread_props(_object_spread({}, currentState), {
|
|
5000
|
-
expression: expression
|
|
5001
|
-
}));
|
|
5002
|
-
},
|
|
5003
|
-
setEditing: function(fieldName, isEditing) {
|
|
5004
|
-
var currentState = get().getState(fieldName);
|
|
5005
|
-
get().setState(fieldName, _object_spread_props(_object_spread({}, currentState), {
|
|
5006
|
-
isEditing: isEditing
|
|
5007
|
-
}));
|
|
5008
|
-
},
|
|
5009
|
-
setFullScreen: function(fieldName, isFullScreen) {
|
|
5010
|
-
var currentState = get().getState(fieldName);
|
|
5011
|
-
get().setState(fieldName, _object_spread_props(_object_spread({}, currentState), {
|
|
5012
|
-
isFullScreen: isFullScreen
|
|
5013
|
-
}));
|
|
4815
|
+
// src/components/ui/button.tsx
|
|
4816
|
+
var buttonVariants = cva("ui:inline-flex ui:items-center ui:justify-center ui:gap-2 ui:whitespace-nowrap ui:rounded-sm ui:text-sm ui:font-medium ui:transition-[color,box-shadow] ui:disabled:pointer-events-none ui:disabled:opacity-50 ui:[&_svg]:pointer-events-none ui:[&_svg:not([class*=size-])]:size-4 ui:shrink-0 ui:[&_svg]:shrink-0 ui:outline-none ui:focus-visible:border-ring ui:focus-visible:ring-ring/50 ui:focus-visible:ring-[3px] ui:aria-invalid:ring-destructive/20 ui:dark:aria-invalid:ring-destructive/40 ui:aria-invalid:border-destructive ui:cursor-pointer", {
|
|
4817
|
+
variants: {
|
|
4818
|
+
variant: {
|
|
4819
|
+
default: "ui:bg-primary ui:text-primary-foreground ui:shadow-xs ui:hover:bg-primary/90 ui:select-none",
|
|
4820
|
+
destructive: "ui:bg-destructive ui:text-white ui:shadow-xs ui:hover:bg-destructive/90 ui:focus-visible:ring-destructive/20 ui:dark:focus-visible:ring-destructive/40",
|
|
4821
|
+
outline: "ui:border ui:border-input ui:bg-background ui:shadow-xs ui:hover:bg-accent ui:hover:text-accent-foreground",
|
|
4822
|
+
secondary: "ui:bg-secondary ui:text-secondary-foreground ui:shadow-xs ui:hover:bg-secondary/80",
|
|
4823
|
+
ghost: "ui:hover:bg-accent ui:hover:text-accent-foreground",
|
|
4824
|
+
link: "ui:text-primary ui:underline-offset-4 ui:hover:underline"
|
|
5014
4825
|
},
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
4826
|
+
size: {
|
|
4827
|
+
default: "ui:h-9 ui:px-4 ui:py-2 ui:has-[>svg]:px-3",
|
|
4828
|
+
sm: "ui:h-8 ui:rounded-sm ui:gap-1.5 ui:px-3 ui:has-[>svg]:px-2.5",
|
|
4829
|
+
lg: "ui:h-10 ui:rounded-sm ui:px-6 ui:has-[>svg]:px-4",
|
|
4830
|
+
icon: "ui:size-9"
|
|
5020
4831
|
}
|
|
5021
|
-
}
|
|
4832
|
+
},
|
|
4833
|
+
defaultVariants: {
|
|
4834
|
+
variant: "default",
|
|
4835
|
+
size: "default"
|
|
4836
|
+
}
|
|
5022
4837
|
});
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
}, [
|
|
5030
|
-
store,
|
|
5031
|
-
fieldName
|
|
5032
|
-
]);
|
|
5033
|
-
var switchToExpression = useCallback(function() {
|
|
5034
|
-
store.switchToExpression(fieldName);
|
|
5035
|
-
}, [
|
|
5036
|
-
store,
|
|
5037
|
-
fieldName
|
|
5038
|
-
]);
|
|
5039
|
-
var switchToEditor = useCallback(function() {
|
|
5040
|
-
store.switchToEditor(fieldName);
|
|
5041
|
-
}, [
|
|
5042
|
-
store,
|
|
5043
|
-
fieldName
|
|
5044
|
-
]);
|
|
5045
|
-
var clear = useCallback(function() {
|
|
5046
|
-
store.clear(fieldName);
|
|
5047
|
-
}, [
|
|
5048
|
-
store,
|
|
5049
|
-
fieldName
|
|
5050
|
-
]);
|
|
5051
|
-
var setExpression = useCallback(function(expr) {
|
|
5052
|
-
store.setExpression(fieldName, expr);
|
|
5053
|
-
}, [
|
|
5054
|
-
store,
|
|
5055
|
-
fieldName
|
|
5056
|
-
]);
|
|
5057
|
-
var setEditing = useCallback(function(editing) {
|
|
5058
|
-
store.setEditing(fieldName, editing);
|
|
5059
|
-
}, [
|
|
5060
|
-
store,
|
|
5061
|
-
fieldName
|
|
5062
|
-
]);
|
|
5063
|
-
var setCurrentValue = useCallback(function(value) {
|
|
5064
|
-
store.setCurrentValue(fieldName, value);
|
|
5065
|
-
}, [
|
|
5066
|
-
store,
|
|
5067
|
-
fieldName
|
|
5068
|
-
]);
|
|
5069
|
-
var setFullScreen = useCallback(function(isFullScreen) {
|
|
5070
|
-
store.setFullScreen(fieldName, isFullScreen);
|
|
5071
|
-
}, [
|
|
5072
|
-
store,
|
|
5073
|
-
fieldName
|
|
4838
|
+
function Button(_param) {
|
|
4839
|
+
var className = _param.className, variant = _param.variant, size = _param.size, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, props = _object_without_properties(_param, [
|
|
4840
|
+
"className",
|
|
4841
|
+
"variant",
|
|
4842
|
+
"size",
|
|
4843
|
+
"asChild"
|
|
5074
4844
|
]);
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
setExpression: setExpression,
|
|
5085
|
-
isEditing: state.isEditing,
|
|
5086
|
-
setEditing: setEditing,
|
|
5087
|
-
currentValue: state.currentValue,
|
|
5088
|
-
setCurrentValue: setCurrentValue,
|
|
5089
|
-
isFullScreen: state.isFullScreen,
|
|
5090
|
-
setFullScreen: setFullScreen
|
|
5091
|
-
};
|
|
5092
|
-
}
|
|
5093
|
-
function inferTypeFromMonaco(editor, monaco, expression) {
|
|
5094
|
-
var logPrefix = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "\uD83D\uDD37";
|
|
5095
|
-
return _async_to_generator(function() {
|
|
5096
|
-
var currentModel, markers, hasErrors, wrappedCode, tempModel, worker, client, exprIndex, position, quickInfo, extractedType, foundColon, typeParts, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, part, prevPart, typeString, error;
|
|
5097
|
-
return _ts_generator(this, function(_state) {
|
|
5098
|
-
switch(_state.label){
|
|
5099
|
-
case 0:
|
|
5100
|
-
if (!expression.trim()) {
|
|
5101
|
-
console.log("".concat(logPrefix, " Type inference skipped - no expression"));
|
|
5102
|
-
return [
|
|
5103
|
-
2,
|
|
5104
|
-
null
|
|
5105
|
-
];
|
|
5106
|
-
}
|
|
5107
|
-
if (!editor.hasTextFocus()) {
|
|
5108
|
-
console.log("".concat(logPrefix, " Skipping type inference - editor does not have focus"));
|
|
5109
|
-
return [
|
|
5110
|
-
2,
|
|
5111
|
-
null
|
|
5112
|
-
];
|
|
5113
|
-
}
|
|
5114
|
-
console.log("".concat(logPrefix, " Running type inference, expression:"), expression);
|
|
5115
|
-
_state.label = 1;
|
|
5116
|
-
case 1:
|
|
5117
|
-
_state.trys.push([
|
|
5118
|
-
1,
|
|
5119
|
-
5,
|
|
5120
|
-
,
|
|
5121
|
-
6
|
|
5122
|
-
]);
|
|
5123
|
-
currentModel = editor.getModel();
|
|
5124
|
-
if (currentModel) {
|
|
5125
|
-
markers = monaco.editor.getModelMarkers({
|
|
5126
|
-
resource: currentModel.uri
|
|
5127
|
-
});
|
|
5128
|
-
hasErrors = markers.some(function(marker) {
|
|
5129
|
-
return marker.severity === monaco.MarkerSeverity.Error;
|
|
5130
|
-
});
|
|
5131
|
-
if (hasErrors) {
|
|
5132
|
-
console.log("".concat(logPrefix, " Type inference skipped - expression has validation errors"));
|
|
5133
|
-
return [
|
|
5134
|
-
2,
|
|
5135
|
-
"error"
|
|
5136
|
-
];
|
|
5137
|
-
}
|
|
5138
|
-
}
|
|
5139
|
-
wrappedCode = "const __expr__ = (".concat(expression, ");");
|
|
5140
|
-
tempModel = monaco.editor.createModel(wrappedCode, "typescript");
|
|
5141
|
-
return [
|
|
5142
|
-
4,
|
|
5143
|
-
monaco.languages.typescript.getTypeScriptWorker()
|
|
5144
|
-
];
|
|
5145
|
-
case 2:
|
|
5146
|
-
worker = _state.sent();
|
|
5147
|
-
return [
|
|
5148
|
-
4,
|
|
5149
|
-
worker(tempModel.uri)
|
|
5150
|
-
];
|
|
5151
|
-
case 3:
|
|
5152
|
-
client = _state.sent();
|
|
5153
|
-
exprIndex = wrappedCode.indexOf("__expr__");
|
|
5154
|
-
position = tempModel.getPositionAt(exprIndex);
|
|
5155
|
-
return [
|
|
5156
|
-
4,
|
|
5157
|
-
client.getQuickInfoAtPosition(tempModel.uri.toString(), tempModel.getOffsetAt(position))
|
|
5158
|
-
];
|
|
5159
|
-
case 4:
|
|
5160
|
-
quickInfo = _state.sent();
|
|
5161
|
-
console.log("".concat(logPrefix, " QuickInfo response:"), quickInfo);
|
|
5162
|
-
extractedType = null;
|
|
5163
|
-
if (quickInfo && quickInfo.displayParts) {
|
|
5164
|
-
foundColon = false;
|
|
5165
|
-
typeParts = [];
|
|
5166
|
-
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
5167
|
-
try {
|
|
5168
|
-
for(_iterator = quickInfo.displayParts[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
5169
|
-
part = _step.value;
|
|
5170
|
-
if (foundColon) typeParts.push(part);
|
|
5171
|
-
if (part.kind === "punctuation" && part.text === ":" && !foundColon) {
|
|
5172
|
-
prevPart = quickInfo.displayParts[quickInfo.displayParts.indexOf(part) - 1];
|
|
5173
|
-
if (prevPart && (prevPart.kind === "localName" || prevPart.kind === "parameterName")) {
|
|
5174
|
-
foundColon = true;
|
|
5175
|
-
}
|
|
5176
|
-
}
|
|
5177
|
-
}
|
|
5178
|
-
} catch (err) {
|
|
5179
|
-
_didIteratorError = true;
|
|
5180
|
-
_iteratorError = err;
|
|
5181
|
-
} finally{
|
|
5182
|
-
try {
|
|
5183
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
5184
|
-
_iterator.return();
|
|
5185
|
-
}
|
|
5186
|
-
} finally{
|
|
5187
|
-
if (_didIteratorError) {
|
|
5188
|
-
throw _iteratorError;
|
|
5189
|
-
}
|
|
5190
|
-
}
|
|
5191
|
-
}
|
|
5192
|
-
if (typeParts.length > 0) {
|
|
5193
|
-
typeString = typeParts.map(function(p) {
|
|
5194
|
-
return p.text;
|
|
5195
|
-
}).join("").trim();
|
|
5196
|
-
console.log("".concat(logPrefix, " Extracted type:"), typeString);
|
|
5197
|
-
if (typeString && typeString !== "any") {
|
|
5198
|
-
extractedType = typeString;
|
|
5199
|
-
}
|
|
5200
|
-
}
|
|
5201
|
-
}
|
|
5202
|
-
tempModel.dispose();
|
|
5203
|
-
return [
|
|
5204
|
-
2,
|
|
5205
|
-
extractedType
|
|
5206
|
-
];
|
|
5207
|
-
case 5:
|
|
5208
|
-
error = _state.sent();
|
|
5209
|
-
console.warn("".concat(logPrefix, " Type inference failed:"), error);
|
|
5210
|
-
return [
|
|
5211
|
-
2,
|
|
5212
|
-
null
|
|
5213
|
-
];
|
|
5214
|
-
case 6:
|
|
5215
|
-
return [
|
|
5216
|
-
2
|
|
5217
|
-
];
|
|
5218
|
-
}
|
|
5219
|
-
});
|
|
5220
|
-
})();
|
|
4845
|
+
var Comp = asChild ? Slot : "button";
|
|
4846
|
+
return /* @__PURE__ */ React4.createElement(Comp, _object_spread({
|
|
4847
|
+
"data-slot": "button",
|
|
4848
|
+
className: cn(buttonVariants({
|
|
4849
|
+
variant: variant,
|
|
4850
|
+
size: size,
|
|
4851
|
+
className: className
|
|
4852
|
+
}))
|
|
4853
|
+
}, props));
|
|
5221
4854
|
}
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
lineNumbers: "off",
|
|
5228
|
-
lineNumbersMinChars: 0,
|
|
5229
|
-
overviewRulerLanes: 0,
|
|
5230
|
-
overviewRulerBorder: false,
|
|
5231
|
-
hideCursorInOverviewRuler: true,
|
|
5232
|
-
lineDecorationsWidth: 0,
|
|
5233
|
-
glyphMargin: false,
|
|
5234
|
-
folding: false,
|
|
5235
|
-
scrollBeyondLastColumn: 0,
|
|
5236
|
-
scrollbar: {
|
|
5237
|
-
horizontal: "hidden",
|
|
5238
|
-
vertical: "hidden",
|
|
5239
|
-
alwaysConsumeMouseWheel: false
|
|
4855
|
+
// src/components/fields/index.tsx
|
|
4856
|
+
var fields_exports = {};
|
|
4857
|
+
__export(fields_exports, {
|
|
4858
|
+
InferredTypesContext: function() {
|
|
4859
|
+
return InferredTypesContext;
|
|
5240
4860
|
},
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
autoFindInSelection: "never",
|
|
5244
|
-
seedSearchStringFromSelection: false
|
|
4861
|
+
Input: function() {
|
|
4862
|
+
return Input;
|
|
5245
4863
|
},
|
|
5246
|
-
|
|
5247
|
-
|
|
4864
|
+
NestedFieldProvider: function() {
|
|
4865
|
+
return NestedFieldProvider;
|
|
5248
4866
|
},
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
links: false,
|
|
5252
|
-
occurrencesHighlight: false,
|
|
5253
|
-
cursorStyle: "line",
|
|
5254
|
-
// Match input cursor
|
|
5255
|
-
renderLineHighlight: "none",
|
|
5256
|
-
contextmenu: false,
|
|
5257
|
-
roundedSelection: false,
|
|
5258
|
-
hover: {
|
|
5259
|
-
delay: 300
|
|
4867
|
+
OPERATORS_BY_TYPE: function() {
|
|
4868
|
+
return OPERATORS_BY_TYPE;
|
|
5260
4869
|
},
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
fixedOverflowWidgets: true,
|
|
5264
|
-
// Match Input component styling
|
|
5265
|
-
padding: {
|
|
5266
|
-
top: 4,
|
|
5267
|
-
bottom: 4
|
|
4870
|
+
Select: function() {
|
|
4871
|
+
return Select;
|
|
5268
4872
|
},
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
// Use system font
|
|
5272
|
-
letterSpacing: "normal",
|
|
5273
|
-
lineHeight: "normal"
|
|
5274
|
-
};
|
|
5275
|
-
var FullPanelEditorOptions = {
|
|
5276
|
-
fontSize: "14px",
|
|
5277
|
-
fontWeight: "normal",
|
|
5278
|
-
wordWrap: "on",
|
|
5279
|
-
lineNumbers: "on",
|
|
5280
|
-
lineNumbersMinChars: 3,
|
|
5281
|
-
overviewRulerLanes: 3,
|
|
5282
|
-
overviewRulerBorder: true,
|
|
5283
|
-
hideCursorInOverviewRuler: false,
|
|
5284
|
-
lineDecorationsWidth: 10,
|
|
5285
|
-
glyphMargin: true,
|
|
5286
|
-
folding: true,
|
|
5287
|
-
scrollBeyondLastColumn: 5,
|
|
5288
|
-
scrollbar: {
|
|
5289
|
-
horizontal: "auto",
|
|
5290
|
-
vertical: "auto",
|
|
5291
|
-
alwaysConsumeMouseWheel: false
|
|
4873
|
+
TemplateFieldProvider: function() {
|
|
4874
|
+
return TemplateFieldProvider;
|
|
5292
4875
|
},
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
autoFindInSelection: "never",
|
|
5296
|
-
seedSearchStringFromSelection: false
|
|
4876
|
+
getOperatorsForType: function() {
|
|
4877
|
+
return getOperatorsForType;
|
|
5297
4878
|
},
|
|
5298
|
-
|
|
5299
|
-
|
|
4879
|
+
parseInferSyntax: function() {
|
|
4880
|
+
return parseInferSyntax;
|
|
5300
4881
|
},
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
occurrencesHighlight: true,
|
|
5304
|
-
cursorStyle: "line",
|
|
5305
|
-
renderLineHighlight: "line",
|
|
5306
|
-
contextmenu: true,
|
|
5307
|
-
roundedSelection: true,
|
|
5308
|
-
hover: {
|
|
5309
|
-
delay: 300
|
|
4882
|
+
useFieldPath: function() {
|
|
4883
|
+
return useFieldPath;
|
|
5310
4884
|
},
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
function InlineExpressionEditor(param) {
|
|
5320
|
-
var value = param.value, onChange = param.onChange, onBlur = param.onBlur, onEnter = param.onEnter, onTypeInferred = param.onTypeInferred, onValidationChange = param.onValidationChange, _param_context = param.context, context = _param_context === void 0 ? {} : _param_context, className = param.className, _param_placeholder = param.placeholder, placeholder = _param_placeholder === void 0 ? "Enter expression..." : _param_placeholder;
|
|
5321
|
-
var editorRef = useRef(null);
|
|
5322
|
-
var monacoRef = useRef(null);
|
|
5323
|
-
var typeInferenceTimeoutRef = useRef(null);
|
|
5324
|
-
var handleEditorWillMount = function(monaco) {
|
|
5325
|
-
monacoRef.current = monaco;
|
|
5326
|
-
var contextKeys = Object.keys(context);
|
|
5327
|
-
if (contextKeys.length > 0) {
|
|
5328
|
-
monaco.languages.typescript.javascriptDefaults.addExtraLib("\n declare const ".concat(contextKeys.join(", "), ": any;\n "), "context.d.ts");
|
|
5329
|
-
}
|
|
5330
|
-
};
|
|
5331
|
-
var handleEditorDidMount = function(editor, monaco) {
|
|
5332
|
-
editorRef.current = editor;
|
|
5333
|
-
editor.updateOptions(InlineEditorOptions);
|
|
5334
|
-
console.log("\uD83D\uDD37 Inline editor mounted!");
|
|
5335
|
-
editor.getDomNode();
|
|
5336
|
-
var findCommand = editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_F, function() {});
|
|
5337
|
-
var enterKeyDisposable = editor.onKeyDown(function(e) {
|
|
5338
|
-
if (e.keyCode === monaco.KeyCode.Enter) {
|
|
5339
|
-
var _editor__contentWidgets, _contextKeyService_getContextKeyValue;
|
|
5340
|
-
if (!editor.hasTextFocus()) {
|
|
5341
|
-
console.log("\uD83D\uDD37 Enter keydown but inline editor does NOT have focus - allowing default");
|
|
5342
|
-
return;
|
|
5343
|
-
}
|
|
5344
|
-
if (e.shiftKey) {
|
|
5345
|
-
console.log("\uD83D\uDD37 Shift+Enter in INLINE editor - switching to full-screen");
|
|
5346
|
-
e.preventDefault();
|
|
5347
|
-
e.stopPropagation();
|
|
5348
|
-
if (onEnter) {
|
|
5349
|
-
onEnter();
|
|
5350
|
-
}
|
|
5351
|
-
return;
|
|
5352
|
-
}
|
|
5353
|
-
var suggestWidget = (_editor__contentWidgets = editor._contentWidgets) === null || _editor__contentWidgets === void 0 ? void 0 : _editor__contentWidgets["editor.widget.suggestWidget"];
|
|
5354
|
-
var isSuggestVisible = (suggestWidget === null || suggestWidget === void 0 ? void 0 : suggestWidget.widget) && !suggestWidget.widget._hidden && suggestWidget.widget.state !== void 0 && suggestWidget.widget.state !== 0;
|
|
5355
|
-
var contextKeyService = editor._contextKeyService;
|
|
5356
|
-
var suggestWidgetVisible = contextKeyService === null || contextKeyService === void 0 ? void 0 : (_contextKeyService_getContextKeyValue = contextKeyService.getContextKeyValue) === null || _contextKeyService_getContextKeyValue === void 0 ? void 0 : _contextKeyService_getContextKeyValue.call(contextKeyService, "suggestWidgetVisible");
|
|
5357
|
-
if (isSuggestVisible || suggestWidgetVisible) {
|
|
5358
|
-
console.log("\uD83D\uDD37 Enter in INLINE editor - accepting autocomplete");
|
|
5359
|
-
e.preventDefault();
|
|
5360
|
-
e.stopPropagation();
|
|
5361
|
-
editor.trigger("", "acceptSelectedSuggestion");
|
|
5362
|
-
} else {
|
|
5363
|
-
console.log("\uD83D\uDD37 Enter in INLINE editor - blurring (finishing edit)");
|
|
5364
|
-
e.preventDefault();
|
|
5365
|
-
e.stopPropagation();
|
|
5366
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur({});
|
|
5367
|
-
}
|
|
5368
|
-
}
|
|
5369
|
-
});
|
|
5370
|
-
editor.onDidPaste(function(e) {
|
|
5371
|
-
if (e.endLineNumber <= 1) {
|
|
5372
|
-
return;
|
|
5373
|
-
}
|
|
5374
|
-
var newContent = "";
|
|
5375
|
-
var textModel = editor.getModel();
|
|
5376
|
-
var lineCount = textModel.getLineCount();
|
|
5377
|
-
for(var i = 0; i < lineCount; i += 1){
|
|
5378
|
-
newContent += textModel.getLineContent(i + 1);
|
|
5379
|
-
}
|
|
5380
|
-
textModel.setValue(newContent);
|
|
5381
|
-
editor.setPosition({
|
|
5382
|
-
column: newContent.length + 1,
|
|
5383
|
-
lineNumber: 1
|
|
5384
|
-
});
|
|
5385
|
-
});
|
|
5386
|
-
editor.onDidBlurEditorText(function(e) {
|
|
5387
|
-
var currentValue = editor.getValue();
|
|
5388
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(_object_spread_props(_object_spread({}, e), {
|
|
5389
|
-
currentValue: currentValue
|
|
5390
|
-
}));
|
|
5391
|
-
});
|
|
5392
|
-
editor.onDidChangeModelContent(function() {
|
|
5393
|
-
var model = editor.getModel();
|
|
5394
|
-
if (model) {
|
|
5395
|
-
if (onValidationChange) {
|
|
5396
|
-
var markers = monaco.editor.getModelMarkers({
|
|
5397
|
-
resource: model.uri
|
|
5398
|
-
});
|
|
5399
|
-
var hasErrors = markers.some(function(marker) {
|
|
5400
|
-
return marker.severity === monaco.MarkerSeverity.Error;
|
|
5401
|
-
});
|
|
5402
|
-
onValidationChange(!hasErrors, markers);
|
|
5403
|
-
}
|
|
5404
|
-
if (onTypeInferred) {
|
|
5405
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5406
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5407
|
-
}
|
|
5408
|
-
console.log("\uD83D\uDD37 Content changed - debouncing type inference");
|
|
5409
|
-
typeInferenceTimeoutRef.current = setTimeout(function() {
|
|
5410
|
-
return _async_to_generator(function() {
|
|
5411
|
-
var expressionToAnalyze, inferredType;
|
|
5412
|
-
return _ts_generator(this, function(_state) {
|
|
5413
|
-
switch(_state.label){
|
|
5414
|
-
case 0:
|
|
5415
|
-
expressionToAnalyze = model.getValue();
|
|
5416
|
-
return [
|
|
5417
|
-
4,
|
|
5418
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDD37")
|
|
5419
|
-
];
|
|
5420
|
-
case 1:
|
|
5421
|
-
inferredType = _state.sent();
|
|
5422
|
-
if (inferredType) {
|
|
5423
|
-
onTypeInferred(inferredType);
|
|
5424
|
-
}
|
|
5425
|
-
return [
|
|
5426
|
-
2
|
|
5427
|
-
];
|
|
5428
|
-
}
|
|
5429
|
-
});
|
|
5430
|
-
})();
|
|
5431
|
-
}, 200);
|
|
5432
|
-
}
|
|
5433
|
-
}
|
|
5434
|
-
});
|
|
5435
|
-
var markerChangeDisposable = monaco.editor.onDidChangeMarkers(function(uris) {
|
|
5436
|
-
var model = editor.getModel();
|
|
5437
|
-
if (!model || !onTypeInferred) return;
|
|
5438
|
-
var isOurModel = uris.some(function(uri) {
|
|
5439
|
-
return uri.toString() === model.uri.toString();
|
|
5440
|
-
});
|
|
5441
|
-
if (!isOurModel) return;
|
|
5442
|
-
var markers = monaco.editor.getModelMarkers({
|
|
5443
|
-
resource: model.uri
|
|
5444
|
-
});
|
|
5445
|
-
var hasErrors = markers.some(function(marker) {
|
|
5446
|
-
return marker.severity === monaco.MarkerSeverity.Error;
|
|
5447
|
-
});
|
|
5448
|
-
console.log("\uD83D\uDD37 Monaco markers changed - hasErrors:", hasErrors);
|
|
5449
|
-
if (hasErrors) {
|
|
5450
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5451
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5452
|
-
typeInferenceTimeoutRef.current = null;
|
|
5453
|
-
}
|
|
5454
|
-
console.log("\uD83D\uDD37 ERROR detected - immediately setting type to error");
|
|
5455
|
-
onTypeInferred("error");
|
|
5456
|
-
} else {
|
|
5457
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5458
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5459
|
-
}
|
|
5460
|
-
console.log("\uD83D\uDD37 Errors cleared - triggering type inference");
|
|
5461
|
-
typeInferenceTimeoutRef.current = setTimeout(function() {
|
|
5462
|
-
return _async_to_generator(function() {
|
|
5463
|
-
var expressionToAnalyze, inferredType;
|
|
5464
|
-
return _ts_generator(this, function(_state) {
|
|
5465
|
-
switch(_state.label){
|
|
5466
|
-
case 0:
|
|
5467
|
-
expressionToAnalyze = model.getValue();
|
|
5468
|
-
return [
|
|
5469
|
-
4,
|
|
5470
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDD37")
|
|
5471
|
-
];
|
|
5472
|
-
case 1:
|
|
5473
|
-
inferredType = _state.sent();
|
|
5474
|
-
if (inferredType) {
|
|
5475
|
-
onTypeInferred(inferredType);
|
|
5476
|
-
}
|
|
5477
|
-
return [
|
|
5478
|
-
2
|
|
5479
|
-
];
|
|
5480
|
-
}
|
|
5481
|
-
});
|
|
5482
|
-
})();
|
|
5483
|
-
}, 100);
|
|
5484
|
-
}
|
|
5485
|
-
});
|
|
5486
|
-
editor.addCommand(monaco.KeyCode.F1, function() {});
|
|
5487
|
-
var cursorDisposable = editor.onDidChangeCursorPosition(function() {
|
|
5488
|
-
return _async_to_generator(function() {
|
|
5489
|
-
var model, expressionToAnalyze, inferredType;
|
|
5490
|
-
return _ts_generator(this, function(_state) {
|
|
5491
|
-
switch(_state.label){
|
|
5492
|
-
case 0:
|
|
5493
|
-
if (!(onTypeInferred && editor.hasTextFocus())) return [
|
|
5494
|
-
3,
|
|
5495
|
-
2
|
|
5496
|
-
];
|
|
5497
|
-
model = editor.getModel();
|
|
5498
|
-
if (!(model && model.getValue().trim())) return [
|
|
5499
|
-
3,
|
|
5500
|
-
2
|
|
5501
|
-
];
|
|
5502
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5503
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5504
|
-
}
|
|
5505
|
-
expressionToAnalyze = model.getValue();
|
|
5506
|
-
return [
|
|
5507
|
-
4,
|
|
5508
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDD37")
|
|
5509
|
-
];
|
|
5510
|
-
case 1:
|
|
5511
|
-
inferredType = _state.sent();
|
|
5512
|
-
if (inferredType) {
|
|
5513
|
-
onTypeInferred(inferredType);
|
|
5514
|
-
}
|
|
5515
|
-
_state.label = 2;
|
|
5516
|
-
case 2:
|
|
5517
|
-
return [
|
|
5518
|
-
2
|
|
5519
|
-
];
|
|
5520
|
-
}
|
|
5521
|
-
});
|
|
5522
|
-
})();
|
|
5523
|
-
});
|
|
5524
|
-
editor.setPosition({
|
|
5525
|
-
lineNumber: 1,
|
|
5526
|
-
column: 999999
|
|
5527
|
-
});
|
|
5528
|
-
window.requestAnimationFrame(function() {
|
|
5529
|
-
editor.focus();
|
|
5530
|
-
setTimeout(function() {
|
|
5531
|
-
return _async_to_generator(function() {
|
|
5532
|
-
var model, markers, hasErrors, expressionToAnalyze, inferredType;
|
|
5533
|
-
return _ts_generator(this, function(_state) {
|
|
5534
|
-
switch(_state.label){
|
|
5535
|
-
case 0:
|
|
5536
|
-
model = editor.getModel();
|
|
5537
|
-
if (!(onTypeInferred && model && model.getValue())) return [
|
|
5538
|
-
3,
|
|
5539
|
-
3
|
|
5540
|
-
];
|
|
5541
|
-
console.log("\uD83D\uDD37 Triggering initial type inference for inline editor");
|
|
5542
|
-
markers = monaco.editor.getModelMarkers({
|
|
5543
|
-
resource: model.uri
|
|
5544
|
-
});
|
|
5545
|
-
hasErrors = markers.some(function(marker) {
|
|
5546
|
-
return marker.severity === monaco.MarkerSeverity.Error;
|
|
5547
|
-
});
|
|
5548
|
-
if (!hasErrors) return [
|
|
5549
|
-
3,
|
|
5550
|
-
1
|
|
5551
|
-
];
|
|
5552
|
-
onTypeInferred("error");
|
|
5553
|
-
return [
|
|
5554
|
-
3,
|
|
5555
|
-
3
|
|
5556
|
-
];
|
|
5557
|
-
case 1:
|
|
5558
|
-
expressionToAnalyze = model.getValue();
|
|
5559
|
-
return [
|
|
5560
|
-
4,
|
|
5561
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDD37")
|
|
5562
|
-
];
|
|
5563
|
-
case 2:
|
|
5564
|
-
inferredType = _state.sent();
|
|
5565
|
-
if (inferredType) {
|
|
5566
|
-
onTypeInferred(inferredType);
|
|
5567
|
-
}
|
|
5568
|
-
_state.label = 3;
|
|
5569
|
-
case 3:
|
|
5570
|
-
return [
|
|
5571
|
-
2
|
|
5572
|
-
];
|
|
5573
|
-
}
|
|
5574
|
-
});
|
|
5575
|
-
})();
|
|
5576
|
-
}, 100);
|
|
5577
|
-
});
|
|
5578
|
-
editorRef.current._inlineDisposables = {
|
|
5579
|
-
enterKeyDisposable: enterKeyDisposable,
|
|
5580
|
-
findCommand: findCommand,
|
|
5581
|
-
markerChangeDisposable: markerChangeDisposable,
|
|
5582
|
-
cursorDisposable: cursorDisposable
|
|
5583
|
-
};
|
|
5584
|
-
};
|
|
5585
|
-
useEffect(function() {
|
|
5586
|
-
return function() {
|
|
5587
|
-
if (editorRef.current) {
|
|
5588
|
-
console.log("\uD83D\uDD37 Inline editor unmounting - cleaning up");
|
|
5589
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5590
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5591
|
-
}
|
|
5592
|
-
if (editorRef.current._inlineDisposables) {
|
|
5593
|
-
var _disposables_enterKeyDisposable_dispose, _disposables_enterKeyDisposable, _disposables_findCommand_dispose, _disposables_findCommand, _disposables_markerChangeDisposable_dispose, _disposables_markerChangeDisposable, _disposables_cursorDisposable_dispose, _disposables_cursorDisposable;
|
|
5594
|
-
var disposables = editorRef.current._inlineDisposables;
|
|
5595
|
-
(_disposables_enterKeyDisposable = disposables.enterKeyDisposable) === null || _disposables_enterKeyDisposable === void 0 ? void 0 : (_disposables_enterKeyDisposable_dispose = _disposables_enterKeyDisposable.dispose) === null || _disposables_enterKeyDisposable_dispose === void 0 ? void 0 : _disposables_enterKeyDisposable_dispose.call(_disposables_enterKeyDisposable);
|
|
5596
|
-
(_disposables_findCommand = disposables.findCommand) === null || _disposables_findCommand === void 0 ? void 0 : (_disposables_findCommand_dispose = _disposables_findCommand.dispose) === null || _disposables_findCommand_dispose === void 0 ? void 0 : _disposables_findCommand_dispose.call(_disposables_findCommand);
|
|
5597
|
-
(_disposables_markerChangeDisposable = disposables.markerChangeDisposable) === null || _disposables_markerChangeDisposable === void 0 ? void 0 : (_disposables_markerChangeDisposable_dispose = _disposables_markerChangeDisposable.dispose) === null || _disposables_markerChangeDisposable_dispose === void 0 ? void 0 : _disposables_markerChangeDisposable_dispose.call(_disposables_markerChangeDisposable);
|
|
5598
|
-
(_disposables_cursorDisposable = disposables.cursorDisposable) === null || _disposables_cursorDisposable === void 0 ? void 0 : (_disposables_cursorDisposable_dispose = _disposables_cursorDisposable.dispose) === null || _disposables_cursorDisposable_dispose === void 0 ? void 0 : _disposables_cursorDisposable_dispose.call(_disposables_cursorDisposable);
|
|
5599
|
-
}
|
|
5600
|
-
editorRef.current = null;
|
|
5601
|
-
}
|
|
5602
|
-
};
|
|
5603
|
-
}, []);
|
|
5604
|
-
var handleEditorChange = function(newValue) {
|
|
5605
|
-
onChange(newValue || "");
|
|
5606
|
-
};
|
|
5607
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
5608
|
-
className: cn("uii:relative uii:flex-1", className)
|
|
5609
|
-
}, /* @__PURE__ */ React4__default.createElement(Editor, {
|
|
5610
|
-
theme: "vs-dark",
|
|
5611
|
-
height: "26px",
|
|
5612
|
-
language: "typescript",
|
|
5613
|
-
value: value,
|
|
5614
|
-
onChange: handleEditorChange,
|
|
5615
|
-
onMount: handleEditorDidMount,
|
|
5616
|
-
beforeMount: handleEditorWillMount,
|
|
5617
|
-
width: "100%",
|
|
5618
|
-
loading: /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null, /* @__PURE__ */ React4__default.createElement(FontAwesomeIcon, {
|
|
5619
|
-
icon: faSpinner,
|
|
5620
|
-
className: "uii:animate-spin"
|
|
5621
|
-
})),
|
|
5622
|
-
options: InlineEditorOptions,
|
|
5623
|
-
className: "uii:-ml-[4px] uii:-mt-[1px] inline-editor"
|
|
5624
|
-
}), !value && /* @__PURE__ */ React4__default.createElement("div", {
|
|
5625
|
-
className: "uii:absolute uii:inset-0 uii:flex uii:items-center uii:pointer-events-none uii:text-muted-foreground uii:text-sm"
|
|
5626
|
-
}, placeholder));
|
|
5627
|
-
}
|
|
5628
|
-
function FullPanelExpressionEditor(param) {
|
|
5629
|
-
var value = param.value, onChange = param.onChange, onClose = param.onClose, onBlur = param.onBlur, onTypeInferred = param.onTypeInferred, _param_context = param.context, context = _param_context === void 0 ? {} : _param_context, className = param.className, _param_placeholder = param.placeholder, placeholder = _param_placeholder === void 0 ? "Enter expression..." : _param_placeholder;
|
|
5630
|
-
var editorRef = useRef(null);
|
|
5631
|
-
var monacoRef = useRef(null);
|
|
5632
|
-
var typeInferenceTimeoutRef = useRef(null);
|
|
5633
|
-
var handleEditorWillMount = function(monaco) {
|
|
5634
|
-
monacoRef.current = monaco;
|
|
5635
|
-
var contextKeys = Object.keys(context);
|
|
5636
|
-
if (contextKeys.length > 0) {
|
|
5637
|
-
monaco.languages.typescript.javascriptDefaults.addExtraLib("\n declare const ".concat(contextKeys.join(", "), ": any;\n "), "context.d.ts");
|
|
5638
|
-
}
|
|
5639
|
-
};
|
|
5640
|
-
var handleFPEditorDidMount = function(editor, monaco) {
|
|
5641
|
-
editorRef.current = editor;
|
|
5642
|
-
editor.updateOptions(FullPanelEditorOptions);
|
|
5643
|
-
console.log("\uD83D\uDFE6 FULL-SCREEN panel editor mounted!");
|
|
5644
|
-
console.log("Full-screen editor is read-only?", editor.getOption(monaco.editor.EditorOption.readOnly));
|
|
5645
|
-
var escapeKeyDisposable = editor.onKeyDown(function(e) {
|
|
5646
|
-
if (e.keyCode === monaco.KeyCode.Escape) {
|
|
5647
|
-
console.log("\uD83D\uDFE6 Escape pressed in FULL-SCREEN editor - closing");
|
|
5648
|
-
e.preventDefault();
|
|
5649
|
-
e.stopPropagation();
|
|
5650
|
-
onClose();
|
|
5651
|
-
}
|
|
5652
|
-
if (e.keyCode === monaco.KeyCode.Enter) {
|
|
5653
|
-
var _editor__contentWidgets, _contextKeyService_getContextKeyValue;
|
|
5654
|
-
var suggestWidget = (_editor__contentWidgets = editor._contentWidgets) === null || _editor__contentWidgets === void 0 ? void 0 : _editor__contentWidgets["editor.widget.suggestWidget"];
|
|
5655
|
-
var isSuggestVisible = (suggestWidget === null || suggestWidget === void 0 ? void 0 : suggestWidget.widget) && !suggestWidget.widget._hidden && suggestWidget.widget.state !== void 0 && suggestWidget.widget.state !== 0;
|
|
5656
|
-
var contextKeyService = editor._contextKeyService;
|
|
5657
|
-
var suggestWidgetVisible = contextKeyService === null || contextKeyService === void 0 ? void 0 : (_contextKeyService_getContextKeyValue = contextKeyService.getContextKeyValue) === null || _contextKeyService_getContextKeyValue === void 0 ? void 0 : _contextKeyService_getContextKeyValue.call(contextKeyService, "suggestWidgetVisible");
|
|
5658
|
-
if (isSuggestVisible || suggestWidgetVisible) {
|
|
5659
|
-
console.log("\uD83D\uDFE6 Enter in FULL-SCREEN - accepting autocomplete");
|
|
5660
|
-
e.preventDefault();
|
|
5661
|
-
e.stopPropagation();
|
|
5662
|
-
editor.trigger("", "acceptSelectedSuggestion");
|
|
5663
|
-
} else {
|
|
5664
|
-
console.log("\uD83D\uDFE6 Enter in FULL-SCREEN - allowing newline (default behavior)");
|
|
5665
|
-
}
|
|
5666
|
-
}
|
|
5667
|
-
});
|
|
5668
|
-
var changeCount = 0;
|
|
5669
|
-
var changeDisposable = editor.onDidChangeModelContent(function(e) {
|
|
5670
|
-
var _editor_getModel;
|
|
5671
|
-
changeCount++;
|
|
5672
|
-
var newValue = editor.getValue();
|
|
5673
|
-
console.log("\uD83D\uDFE6 FULL-SCREEN content changed (".concat(changeCount, "):"), newValue);
|
|
5674
|
-
console.log("\uD83D\uDFE6 Line count: ".concat((_editor_getModel = editor.getModel()) === null || _editor_getModel === void 0 ? void 0 : _editor_getModel.getLineCount()));
|
|
5675
|
-
if (onTypeInferred) {
|
|
5676
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5677
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5678
|
-
}
|
|
5679
|
-
console.log("\uD83D\uDFE6 Content changed - debouncing type inference");
|
|
5680
|
-
typeInferenceTimeoutRef.current = setTimeout(function() {
|
|
5681
|
-
return _async_to_generator(function() {
|
|
5682
|
-
var expressionToAnalyze, inferredType;
|
|
5683
|
-
return _ts_generator(this, function(_state) {
|
|
5684
|
-
switch(_state.label){
|
|
5685
|
-
case 0:
|
|
5686
|
-
expressionToAnalyze = newValue;
|
|
5687
|
-
return [
|
|
5688
|
-
4,
|
|
5689
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDFE6")
|
|
5690
|
-
];
|
|
5691
|
-
case 1:
|
|
5692
|
-
inferredType = _state.sent();
|
|
5693
|
-
if (inferredType) {
|
|
5694
|
-
onTypeInferred(inferredType);
|
|
5695
|
-
}
|
|
5696
|
-
return [
|
|
5697
|
-
2
|
|
5698
|
-
];
|
|
5699
|
-
}
|
|
5700
|
-
});
|
|
5701
|
-
})();
|
|
5702
|
-
}, 200);
|
|
5703
|
-
}
|
|
5704
|
-
});
|
|
5705
|
-
var markerChangeDisposable = monaco.editor.onDidChangeMarkers(function(uris) {
|
|
5706
|
-
var model2 = editor.getModel();
|
|
5707
|
-
if (!model2 || !onTypeInferred) return;
|
|
5708
|
-
var isOurModel = uris.some(function(uri) {
|
|
5709
|
-
return uri.toString() === model2.uri.toString();
|
|
5710
|
-
});
|
|
5711
|
-
if (!isOurModel) return;
|
|
5712
|
-
var markers = monaco.editor.getModelMarkers({
|
|
5713
|
-
resource: model2.uri
|
|
5714
|
-
});
|
|
5715
|
-
var hasErrors = markers.some(function(marker) {
|
|
5716
|
-
return marker.severity === monaco.MarkerSeverity.Error;
|
|
5717
|
-
});
|
|
5718
|
-
console.log("\uD83D\uDFE6 Monaco markers changed - hasErrors:", hasErrors);
|
|
5719
|
-
if (hasErrors) {
|
|
5720
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5721
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5722
|
-
typeInferenceTimeoutRef.current = null;
|
|
5723
|
-
}
|
|
5724
|
-
console.log("\uD83D\uDFE6 ERROR detected - immediately setting type to error");
|
|
5725
|
-
onTypeInferred("error");
|
|
5726
|
-
} else {
|
|
5727
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5728
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5729
|
-
}
|
|
5730
|
-
console.log("\uD83D\uDFE6 Errors cleared - triggering type inference");
|
|
5731
|
-
typeInferenceTimeoutRef.current = setTimeout(function() {
|
|
5732
|
-
return _async_to_generator(function() {
|
|
5733
|
-
var expressionToAnalyze, inferredType;
|
|
5734
|
-
return _ts_generator(this, function(_state) {
|
|
5735
|
-
switch(_state.label){
|
|
5736
|
-
case 0:
|
|
5737
|
-
expressionToAnalyze = model2.getValue();
|
|
5738
|
-
return [
|
|
5739
|
-
4,
|
|
5740
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDFE6")
|
|
5741
|
-
];
|
|
5742
|
-
case 1:
|
|
5743
|
-
inferredType = _state.sent();
|
|
5744
|
-
if (inferredType) {
|
|
5745
|
-
onTypeInferred(inferredType);
|
|
5746
|
-
}
|
|
5747
|
-
return [
|
|
5748
|
-
2
|
|
5749
|
-
];
|
|
5750
|
-
}
|
|
5751
|
-
});
|
|
5752
|
-
})();
|
|
5753
|
-
}, 100);
|
|
5754
|
-
}
|
|
5755
|
-
});
|
|
5756
|
-
editor.onDidBlurEditorText(function(e) {
|
|
5757
|
-
var currentValue = editor.getValue();
|
|
5758
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(_object_spread_props(_object_spread({}, e), {
|
|
5759
|
-
currentValue: currentValue
|
|
5760
|
-
}));
|
|
5761
|
-
});
|
|
5762
|
-
var model = editor.getModel();
|
|
5763
|
-
if (model) {
|
|
5764
|
-
var lineCount = model.getLineCount();
|
|
5765
|
-
var lastLineLength = model.getLineLength(lineCount);
|
|
5766
|
-
editor.setPosition({
|
|
5767
|
-
lineNumber: lineCount,
|
|
5768
|
-
column: lastLineLength + 1
|
|
5769
|
-
});
|
|
5770
|
-
}
|
|
5771
|
-
editor.focus();
|
|
5772
|
-
setTimeout(function() {
|
|
5773
|
-
return _async_to_generator(function() {
|
|
5774
|
-
var markers, hasErrors, expressionToAnalyze, inferredType;
|
|
5775
|
-
return _ts_generator(this, function(_state) {
|
|
5776
|
-
switch(_state.label){
|
|
5777
|
-
case 0:
|
|
5778
|
-
if (!(onTypeInferred && model)) return [
|
|
5779
|
-
3,
|
|
5780
|
-
3
|
|
5781
|
-
];
|
|
5782
|
-
console.log("\uD83D\uDFE6 Triggering initial type inference for full-screen editor");
|
|
5783
|
-
markers = monaco.editor.getModelMarkers({
|
|
5784
|
-
resource: model.uri
|
|
5785
|
-
});
|
|
5786
|
-
hasErrors = markers.some(function(marker) {
|
|
5787
|
-
return marker.severity === monaco.MarkerSeverity.Error;
|
|
5788
|
-
});
|
|
5789
|
-
if (!hasErrors) return [
|
|
5790
|
-
3,
|
|
5791
|
-
1
|
|
5792
|
-
];
|
|
5793
|
-
console.log("\uD83D\uDFE6 Initial load has error - setting type to error");
|
|
5794
|
-
onTypeInferred("error");
|
|
5795
|
-
return [
|
|
5796
|
-
3,
|
|
5797
|
-
3
|
|
5798
|
-
];
|
|
5799
|
-
case 1:
|
|
5800
|
-
expressionToAnalyze = model.getValue();
|
|
5801
|
-
return [
|
|
5802
|
-
4,
|
|
5803
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDFE6")
|
|
5804
|
-
];
|
|
5805
|
-
case 2:
|
|
5806
|
-
inferredType = _state.sent();
|
|
5807
|
-
if (inferredType) {
|
|
5808
|
-
onTypeInferred(inferredType);
|
|
5809
|
-
}
|
|
5810
|
-
_state.label = 3;
|
|
5811
|
-
case 3:
|
|
5812
|
-
return [
|
|
5813
|
-
2
|
|
5814
|
-
];
|
|
5815
|
-
}
|
|
5816
|
-
});
|
|
5817
|
-
})();
|
|
5818
|
-
}, 100);
|
|
5819
|
-
var cursorDisposable = editor.onDidChangeCursorPosition(function() {
|
|
5820
|
-
return _async_to_generator(function() {
|
|
5821
|
-
var model2, expressionToAnalyze, inferredType;
|
|
5822
|
-
return _ts_generator(this, function(_state) {
|
|
5823
|
-
switch(_state.label){
|
|
5824
|
-
case 0:
|
|
5825
|
-
if (!(onTypeInferred && editor.hasTextFocus())) return [
|
|
5826
|
-
3,
|
|
5827
|
-
2
|
|
5828
|
-
];
|
|
5829
|
-
model2 = editor.getModel();
|
|
5830
|
-
if (!(model2 && model2.getValue().trim())) return [
|
|
5831
|
-
3,
|
|
5832
|
-
2
|
|
5833
|
-
];
|
|
5834
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5835
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5836
|
-
}
|
|
5837
|
-
expressionToAnalyze = model2.getValue();
|
|
5838
|
-
return [
|
|
5839
|
-
4,
|
|
5840
|
-
inferTypeFromMonaco(editor, monaco, expressionToAnalyze, "\uD83D\uDFE6")
|
|
5841
|
-
];
|
|
5842
|
-
case 1:
|
|
5843
|
-
inferredType = _state.sent();
|
|
5844
|
-
if (inferredType) {
|
|
5845
|
-
onTypeInferred(inferredType);
|
|
5846
|
-
}
|
|
5847
|
-
_state.label = 2;
|
|
5848
|
-
case 2:
|
|
5849
|
-
return [
|
|
5850
|
-
2
|
|
5851
|
-
];
|
|
5852
|
-
}
|
|
5853
|
-
});
|
|
5854
|
-
})();
|
|
5855
|
-
});
|
|
5856
|
-
editorRef.current._fullScreenDisposables = {
|
|
5857
|
-
escapeKeyDisposable: escapeKeyDisposable,
|
|
5858
|
-
changeDisposable: changeDisposable,
|
|
5859
|
-
markerChangeDisposable: markerChangeDisposable,
|
|
5860
|
-
cursorDisposable: cursorDisposable
|
|
5861
|
-
};
|
|
5862
|
-
};
|
|
5863
|
-
useEffect(function() {
|
|
5864
|
-
return function() {
|
|
5865
|
-
if (editorRef.current) {
|
|
5866
|
-
console.log("\uD83D\uDFE6 Full-screen editor unmounting - cleaning up");
|
|
5867
|
-
if (typeInferenceTimeoutRef.current) {
|
|
5868
|
-
clearTimeout(typeInferenceTimeoutRef.current);
|
|
5869
|
-
}
|
|
5870
|
-
if (editorRef.current._fullScreenDisposables) {
|
|
5871
|
-
var _disposables_escapeKeyDisposable_dispose, _disposables_escapeKeyDisposable, _disposables_changeDisposable_dispose, _disposables_changeDisposable, _disposables_markerChangeDisposable_dispose, _disposables_markerChangeDisposable, _disposables_cursorDisposable_dispose, _disposables_cursorDisposable;
|
|
5872
|
-
var disposables = editorRef.current._fullScreenDisposables;
|
|
5873
|
-
(_disposables_escapeKeyDisposable = disposables.escapeKeyDisposable) === null || _disposables_escapeKeyDisposable === void 0 ? void 0 : (_disposables_escapeKeyDisposable_dispose = _disposables_escapeKeyDisposable.dispose) === null || _disposables_escapeKeyDisposable_dispose === void 0 ? void 0 : _disposables_escapeKeyDisposable_dispose.call(_disposables_escapeKeyDisposable);
|
|
5874
|
-
(_disposables_changeDisposable = disposables.changeDisposable) === null || _disposables_changeDisposable === void 0 ? void 0 : (_disposables_changeDisposable_dispose = _disposables_changeDisposable.dispose) === null || _disposables_changeDisposable_dispose === void 0 ? void 0 : _disposables_changeDisposable_dispose.call(_disposables_changeDisposable);
|
|
5875
|
-
(_disposables_markerChangeDisposable = disposables.markerChangeDisposable) === null || _disposables_markerChangeDisposable === void 0 ? void 0 : (_disposables_markerChangeDisposable_dispose = _disposables_markerChangeDisposable.dispose) === null || _disposables_markerChangeDisposable_dispose === void 0 ? void 0 : _disposables_markerChangeDisposable_dispose.call(_disposables_markerChangeDisposable);
|
|
5876
|
-
(_disposables_cursorDisposable = disposables.cursorDisposable) === null || _disposables_cursorDisposable === void 0 ? void 0 : (_disposables_cursorDisposable_dispose = _disposables_cursorDisposable.dispose) === null || _disposables_cursorDisposable_dispose === void 0 ? void 0 : _disposables_cursorDisposable_dispose.call(_disposables_cursorDisposable);
|
|
5877
|
-
}
|
|
5878
|
-
editorRef.current = null;
|
|
5879
|
-
}
|
|
5880
|
-
};
|
|
5881
|
-
}, []);
|
|
5882
|
-
var handleEditorChange = function(newValue) {
|
|
5883
|
-
onChange(newValue || "");
|
|
5884
|
-
};
|
|
5885
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
5886
|
-
className: cn("uii:relative uii:border uii:rounded-md uii:bg-background", className)
|
|
5887
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
5888
|
-
className: "uii:flex uii:items-center uii:justify-between uii:p-2 uii:border-b uii:bg-muted/50"
|
|
5889
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
5890
|
-
className: "uii:text-sm uii:font-medium"
|
|
5891
|
-
}, "Expression Editor"), /* @__PURE__ */ React4__default.createElement("button", {
|
|
5892
|
-
type: "button",
|
|
5893
|
-
onClick: onClose,
|
|
5894
|
-
className: "uii:text-muted-foreground hover:uii:text-foreground uii:p-1 uii:rounded uii:cursor-pointer uii:text-xs"
|
|
5895
|
-
}, "\u2715")), /* @__PURE__ */ React4__default.createElement(Editor, {
|
|
5896
|
-
height: "300px",
|
|
5897
|
-
theme: "vs-dark",
|
|
5898
|
-
language: "typescript",
|
|
5899
|
-
value: value,
|
|
5900
|
-
onChange: handleEditorChange,
|
|
5901
|
-
onMount: handleFPEditorDidMount,
|
|
5902
|
-
beforeMount: handleEditorWillMount,
|
|
5903
|
-
options: FullPanelEditorOptions
|
|
5904
|
-
}), !value && /* @__PURE__ */ React4__default.createElement("div", {
|
|
5905
|
-
className: "uii:absolute uii:inset-0 uii:flex uii:items-center uii:justify-center uii:pointer-events-none uii:text-muted-foreground"
|
|
5906
|
-
}, placeholder));
|
|
5907
|
-
}
|
|
5908
|
-
function useASTParser(expression, controlKey) {
|
|
5909
|
-
var _useState = _sliced_to_array(useState(null), 2), ast = _useState[0], setAST = _useState[1];
|
|
5910
|
-
var _useState1 = _sliced_to_array(useState([]), 2), tokens = _useState1[0], setTokens = _useState1[1];
|
|
5911
|
-
var _useState2 = _sliced_to_array(useState([]), 2), dependencies = _useState2[0], setDependencies = _useState2[1];
|
|
5912
|
-
var _useState3 = _sliced_to_array(useState(false), 2), isLoading = _useState3[0], setIsLoading = _useState3[1];
|
|
5913
|
-
var _useState4 = _sliced_to_array(useState(null), 2), error = _useState4[0], setError = _useState4[1];
|
|
5914
|
-
var requestIdRef = useRef(0);
|
|
5915
|
-
var messageHandlerRef = useRef(null);
|
|
5916
|
-
var controlKeyRef = useRef(controlKey || "default");
|
|
5917
|
-
useEffect(function() {
|
|
5918
|
-
controlKeyRef.current = controlKey || "default";
|
|
5919
|
-
}, [
|
|
5920
|
-
controlKey
|
|
5921
|
-
]);
|
|
5922
|
-
useEffect(function() {
|
|
5923
|
-
if (typeof window === "undefined" || !navigator.serviceWorker) {
|
|
5924
|
-
setError("Service worker not available");
|
|
5925
|
-
return;
|
|
5926
|
-
}
|
|
5927
|
-
var handleMessage = function(event) {
|
|
5928
|
-
if (event.data.type === "AST_PARSE_RESULT") {
|
|
5929
|
-
var _event_data_payload = event.data.payload, id = _event_data_payload.id, controlKey2 = _event_data_payload.controlKey, result = _event_data_payload.result;
|
|
5930
|
-
if (id === requestIdRef.current && controlKey2 === controlKeyRef.current) {
|
|
5931
|
-
console.log("Service worker AST response:", {
|
|
5932
|
-
id: id,
|
|
5933
|
-
controlKey: controlKey2,
|
|
5934
|
-
result: result
|
|
5935
|
-
});
|
|
5936
|
-
setAST(result.ast);
|
|
5937
|
-
setTokens(result.tokens);
|
|
5938
|
-
setDependencies(result.dependencies || []);
|
|
5939
|
-
setError(result.error || null);
|
|
5940
|
-
setIsLoading(false);
|
|
5941
|
-
} else {
|
|
5942
|
-
console.log("Ignoring AST response - wrong control:", {
|
|
5943
|
-
receivedId: id,
|
|
5944
|
-
expectedId: requestIdRef.current,
|
|
5945
|
-
receivedKey: controlKey2,
|
|
5946
|
-
expectedKey: controlKeyRef.current
|
|
5947
|
-
});
|
|
5948
|
-
}
|
|
5949
|
-
}
|
|
5950
|
-
};
|
|
5951
|
-
messageHandlerRef.current = handleMessage;
|
|
5952
|
-
navigator.serviceWorker.addEventListener("message", handleMessage);
|
|
5953
|
-
return function() {
|
|
5954
|
-
if (messageHandlerRef.current) {
|
|
5955
|
-
navigator.serviceWorker.removeEventListener("message", messageHandlerRef.current);
|
|
5956
|
-
}
|
|
5957
|
-
};
|
|
5958
|
-
}, []);
|
|
5959
|
-
useEffect(function() {
|
|
5960
|
-
if (!expression.trim()) {
|
|
5961
|
-
setAST(null);
|
|
5962
|
-
setTokens([]);
|
|
5963
|
-
setDependencies([]);
|
|
5964
|
-
setError(null);
|
|
5965
|
-
setIsLoading(false);
|
|
5966
|
-
return;
|
|
5967
|
-
}
|
|
5968
|
-
if (!navigator.serviceWorker || !navigator.serviceWorker.controller) {
|
|
5969
|
-
setError("Service worker not ready");
|
|
5970
|
-
setIsLoading(false);
|
|
5971
|
-
return;
|
|
5972
|
-
}
|
|
5973
|
-
setIsLoading(true);
|
|
5974
|
-
setError(null);
|
|
5975
|
-
requestIdRef.current++;
|
|
5976
|
-
console.log("Sending expression to service worker:", {
|
|
5977
|
-
expression: expression.trim(),
|
|
5978
|
-
controlKey: controlKeyRef.current,
|
|
5979
|
-
id: requestIdRef.current
|
|
5980
|
-
});
|
|
5981
|
-
navigator.serviceWorker.controller.postMessage({
|
|
5982
|
-
type: "PARSE_AST",
|
|
5983
|
-
payload: {
|
|
5984
|
-
expression: expression.trim(),
|
|
5985
|
-
id: requestIdRef.current,
|
|
5986
|
-
controlKey: controlKeyRef.current
|
|
5987
|
-
}
|
|
5988
|
-
});
|
|
5989
|
-
}, [
|
|
5990
|
-
expression
|
|
5991
|
-
]);
|
|
5992
|
-
return {
|
|
5993
|
-
ast: ast,
|
|
5994
|
-
tokens: tokens,
|
|
5995
|
-
dependencies: dependencies,
|
|
5996
|
-
isLoading: isLoading,
|
|
5997
|
-
error: error
|
|
5998
|
-
};
|
|
5999
|
-
}
|
|
6000
|
-
function ASTRenderer(param) {
|
|
6001
|
-
var ast = param.ast, key = param.key, className = param.className, _param_variant = param.variant, variant = _param_variant === void 0 ? "inline" : _param_variant, _param_showTokens = param.showTokens, showTokens = _param_showTokens === void 0 ? false : _param_showTokens, _param_tokens = param.tokens, tokens = _param_tokens === void 0 ? [] : _param_tokens;
|
|
6002
|
-
var getNodeColor = function(type) {
|
|
6003
|
-
switch(type){
|
|
6004
|
-
case "StringLiteral":
|
|
6005
|
-
return "uii:text-green-600 uii:bg-green-100";
|
|
6006
|
-
case "NumericLiteral":
|
|
6007
|
-
return "uii:text-purple-600 uii:bg-purple-100";
|
|
6008
|
-
case "Identifier":
|
|
6009
|
-
return "uii:text-blue-600 uii:bg-blue-100";
|
|
6010
|
-
case "Keyword":
|
|
6011
|
-
case "Literal":
|
|
6012
|
-
return "uii:text-orange-600 uii:bg-orange-100";
|
|
6013
|
-
case "BinaryExpression":
|
|
6014
|
-
return "uii:text-gray-700 uii:bg-gray-100";
|
|
6015
|
-
case "CallExpression":
|
|
6016
|
-
return "uii:text-indigo-600 uii:bg-indigo-100";
|
|
6017
|
-
case "MemberExpression":
|
|
6018
|
-
return "uii:text-cyan-600 uii:bg-cyan-100";
|
|
6019
|
-
case "UnaryExpression":
|
|
6020
|
-
return "uii:text-pink-600 uii:bg-pink-100";
|
|
6021
|
-
case "ParenthesizedExpression":
|
|
6022
|
-
return "uii:text-yellow-600 uii:bg-yellow-100";
|
|
6023
|
-
default:
|
|
6024
|
-
return "uii:text-gray-600 uii:bg-gray-100";
|
|
6025
|
-
}
|
|
6026
|
-
};
|
|
6027
|
-
var renderInlineNode = function(node) {
|
|
6028
|
-
var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
6029
|
-
if (depth > 2) return null;
|
|
6030
|
-
if (node.type === "Identifier") {
|
|
6031
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6032
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6033
|
-
className: "uii:inline-flex uii:items-center uii:mr-1"
|
|
6034
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6035
|
-
className: "uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-blue-100 uii:text-blue-800 uii:font-mono"
|
|
6036
|
-
}, node.name || node.value));
|
|
6037
|
-
}
|
|
6038
|
-
if (node.type === "StringLiteral" || node.type === "NumericLiteral") {
|
|
6039
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6040
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6041
|
-
className: "uii:inline-flex uii:items-center uii:mr-1"
|
|
6042
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6043
|
-
className: "uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-green-100 uii:text-green-800 uii:font-mono"
|
|
6044
|
-
}, node.value));
|
|
6045
|
-
}
|
|
6046
|
-
if (node.type === "BinaryExpression") {
|
|
6047
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6048
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6049
|
-
className: "uii:inline-flex uii:items-center uii:mr-1"
|
|
6050
|
-
}, node.left && renderInlineNode(node.left, depth + 1), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6051
|
-
className: "uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-purple-100 uii:text-purple-800 uii:font-mono uii:mx-1"
|
|
6052
|
-
}, node.operator), node.right && renderInlineNode(node.right, depth + 1));
|
|
6053
|
-
}
|
|
6054
|
-
if (node.type === "CallExpression") {
|
|
6055
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6056
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6057
|
-
className: "uii:inline-flex uii:items-center uii:mr-1"
|
|
6058
|
-
}, node.callee && renderInlineNode(node.callee, depth + 1), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6059
|
-
className: "text-xs text-gray-600"
|
|
6060
|
-
}, "()"));
|
|
6061
|
-
}
|
|
6062
|
-
if (node.type === "PropertyAccessExpression") {
|
|
6063
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6064
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6065
|
-
className: "uii:inline-flex uii:items-center uii:mr-1"
|
|
6066
|
-
}, node.object && renderInlineNode(node.object, depth + 1), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6067
|
-
className: "text-xs text-gray-600"
|
|
6068
|
-
}, "."), node.property && renderInlineNode(node.property, depth + 1));
|
|
6069
|
-
}
|
|
6070
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6071
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6072
|
-
className: "uii:inline-flex uii:items-center uii:mr-1"
|
|
6073
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6074
|
-
className: "px-1 py-0.5 rounded text-xs bg-gray-100 text-gray-600 font-mono"
|
|
6075
|
-
}, node.type));
|
|
6076
|
-
};
|
|
6077
|
-
var renderTreeNode = function(node) {
|
|
6078
|
-
var depth = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
6079
|
-
if (depth > 4) return null;
|
|
6080
|
-
var indent = " ".repeat(depth);
|
|
6081
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
6082
|
-
key: "".concat(node.start, "-").concat(node.end),
|
|
6083
|
-
className: "font-mono text-xs"
|
|
6084
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6085
|
-
className: "uii:flex uii:items-start uii:gap-2"
|
|
6086
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6087
|
-
className: "uii:text-gray-400"
|
|
6088
|
-
}, indent), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6089
|
-
className: cn("uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:font-semibold", getNodeColor(node.type))
|
|
6090
|
-
}, node.type), node.value && /* @__PURE__ */ React4__default.createElement("span", {
|
|
6091
|
-
className: "uii:text-green-600"
|
|
6092
|
-
}, '"', node.value, '"'), node.operator && /* @__PURE__ */ React4__default.createElement("span", {
|
|
6093
|
-
className: "uii:text-purple-600"
|
|
6094
|
-
}, node.operator), node.name && /* @__PURE__ */ React4__default.createElement("span", {
|
|
6095
|
-
className: "uii:text-blue-600"
|
|
6096
|
-
}, node.name)), node.left && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6097
|
-
className: "uii:ml-2"
|
|
6098
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6099
|
-
className: "uii:text-gray-500 uii:text-xs"
|
|
6100
|
-
}, "left: "), renderTreeNode(node.left, depth + 1)), node.right && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6101
|
-
className: "uii:ml-2"
|
|
6102
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6103
|
-
className: "uii:text-gray-500 uii:text-xs"
|
|
6104
|
-
}, "right: "), renderTreeNode(node.right, depth + 1)), node.argument && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6105
|
-
className: "uii:ml-2"
|
|
6106
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6107
|
-
className: "uii:text-gray-500 uii:text-xs"
|
|
6108
|
-
}, "arg: "), renderTreeNode(node.argument, depth + 1)), node.object && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6109
|
-
className: "uii:ml-2"
|
|
6110
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6111
|
-
className: "uii:text-gray-500 uii:text-xs"
|
|
6112
|
-
}, "obj: "), renderTreeNode(node.object, depth + 1)), node.property && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6113
|
-
className: "uii:ml-2"
|
|
6114
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6115
|
-
className: "uii:text-gray-500 uii:text-xs"
|
|
6116
|
-
}, "prop: "), renderTreeNode(node.property, depth + 1)), node.index && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6117
|
-
className: "uii:ml-2"
|
|
6118
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6119
|
-
className: "uii:text-gray-500 uii:text-xs"
|
|
6120
|
-
}, "idx: "), renderTreeNode(node.index, depth + 1)), !node.left && !node.right && !node.argument && !node.object && !node.property && !node.index && node.children && node.children.length > 0 && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6121
|
-
className: "uii:ml-2"
|
|
6122
|
-
}, node.children.slice(0, 3).map(function(child, index) {
|
|
6123
|
-
return renderTreeNode(child, depth + 1);
|
|
6124
|
-
}), node.children.length > 3 && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6125
|
-
className: "uii:ml-2 uii:text-gray-500 uii:text-xs"
|
|
6126
|
-
}, "... and ", node.children.length - 3, " more")));
|
|
6127
|
-
};
|
|
6128
|
-
var renderTokens = function() {
|
|
6129
|
-
if (tokens.length === 0) return null;
|
|
6130
|
-
var displayTokens = tokens.slice(0, 10);
|
|
6131
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
6132
|
-
className: "uii:space-y-2"
|
|
6133
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6134
|
-
className: "uii:text-sm uii:font-semibold uii:text-gray-700"
|
|
6135
|
-
}, "Tokens ", tokens.length > 10 && "(".concat(tokens.length, " total)"), ":"), /* @__PURE__ */ React4__default.createElement("div", {
|
|
6136
|
-
className: "uii:flex uii:flex-wrap uii:gap-1"
|
|
6137
|
-
}, displayTokens.map(function(token, index) {
|
|
6138
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6139
|
-
key: index,
|
|
6140
|
-
className: cn("uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:font-mono", token.type.includes("Keyword") && "uii:bg-blue-100 uii:text-blue-800", token.type.includes("Identifier") && "uii:bg-green-100 uii:text-green-800", token.type.includes("String") && "uii:bg-yellow-100 uii:text-yellow-800", token.type.includes("Numeric") && "uii:bg-purple-100 uii:text-purple-800", token.type.includes("Punctuation") && "uii:bg-gray-100 uii:text-gray-800", "uii:bg-gray-100 uii:text-gray-600")
|
|
6141
|
-
}, token.value);
|
|
6142
|
-
}), tokens.length > 10 && /* @__PURE__ */ React4__default.createElement("span", {
|
|
6143
|
-
className: "uii:px-1 uii:py-0.5 uii:rounded uii:text-xs uii:bg-gray-200 uii:text-gray-600"
|
|
6144
|
-
}, "+", tokens.length - 10, " more")));
|
|
6145
|
-
};
|
|
6146
|
-
if (!ast) {
|
|
6147
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
6148
|
-
className: cn("uii:text-gray-500 uii:text-sm uii:italic", className)
|
|
6149
|
-
}, "No AST available");
|
|
6150
|
-
}
|
|
6151
|
-
if (variant === "inline") {
|
|
6152
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
6153
|
-
className: cn("uii:inline-flex uii:items-center uii:gap-2", className)
|
|
6154
|
-
}, renderInlineNode(ast));
|
|
6155
|
-
}
|
|
6156
|
-
if (variant === "compact") {
|
|
6157
|
-
return /* @__PURE__ */ React4__default.createElement("div", {
|
|
6158
|
-
className: cn("uii:space-y-2", className)
|
|
6159
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6160
|
-
className: "uii:flex uii:flex-wrap uii:gap-1"
|
|
6161
|
-
}, renderInlineNode(ast)), showTokens && renderTokens());
|
|
4885
|
+
useInferredTypes: function() {
|
|
4886
|
+
return useInferredTypes;
|
|
4887
|
+
},
|
|
4888
|
+
useIsInTemplateFieldProvider: function() {
|
|
4889
|
+
return useIsInTemplateFieldProvider;
|
|
4890
|
+
},
|
|
4891
|
+
useTemplateFieldContext: function() {
|
|
4892
|
+
return useTemplateFieldContext;
|
|
6162
4893
|
}
|
|
6163
|
-
|
|
6164
|
-
|
|
6165
|
-
|
|
6166
|
-
|
|
6167
|
-
|
|
6168
|
-
|
|
6169
|
-
}, "AST Tree:"), /* @__PURE__ */ React4__default.createElement("div", {
|
|
6170
|
-
className: "uii:p-3 uii:border uii:rounded-md uii:bg-gray-50 uii:max-h-64 uii:overflow-auto"
|
|
6171
|
-
}, renderTreeNode(ast))), showTokens && renderTokens());
|
|
6172
|
-
}
|
|
6173
|
-
function ExpressionWrapper(param) {
|
|
6174
|
-
var label = param.label, value = param.value, type = param.type, _param_valuesLoading = param.valuesLoading, valuesLoading = _param_valuesLoading === void 0 ? false : _param_valuesLoading, key = param.key, onValueChange = param.onValueChange, onDependenciesChange = param.onDependenciesChange, metadata = param.metadata, children = param.children, fieldName = param.fieldName, _param_expressionContext = param.expressionContext, expressionContext = _param_expressionContext === void 0 ? {} : _param_expressionContext, availableNodes = param.availableNodes, myInterface = param.myInterface, contextTypeDefinitions = param.contextTypeDefinitions, _param_inlineEditor = param.inlineEditor, inlineEditor = _param_inlineEditor === void 0 ? true : _param_inlineEditor, className = param.className, editorClassName = param.editorClassName, _param_expressionPlaceholder = param.expressionPlaceholder, expressionPlaceholder = _param_expressionPlaceholder === void 0 ? "Enter expression..." : _param_expressionPlaceholder, evaluateExpression = param.evaluateExpression, expressionResult = param.expressionResult, _param_isEvaluating = param.isEvaluating, isEvaluating = _param_isEvaluating === void 0 ? false : _param_isEvaluating, _param_isExpressionValid = param.isExpressionValid, isExpressionValid = _param_isExpressionValid === void 0 ? true : _param_isExpressionValid, _param_expectedType = param.expectedType, expectedType = _param_expectedType === void 0 ? "any" : _param_expectedType;
|
|
6175
|
-
var _useState = _sliced_to_array(useState(function() {
|
|
6176
|
-
var initialMetadata = metadata || {
|
|
6177
|
-
expression: "",
|
|
6178
|
-
mode: "value",
|
|
6179
|
-
isEditing: false,
|
|
6180
|
-
isFullScreen: false,
|
|
6181
|
-
value: void 0
|
|
6182
|
-
};
|
|
6183
|
-
return _object_spread_props(_object_spread({}, initialMetadata), {
|
|
6184
|
-
isEditing: false,
|
|
6185
|
-
isFullScreen: false,
|
|
6186
|
-
mode: "value"
|
|
6187
|
-
});
|
|
6188
|
-
}), 2), expressionMetadata = _useState[0], setExpressionMetadata = _useState[1];
|
|
6189
|
-
var _useState1 = _sliced_to_array(useState(value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value && "type" in value && value.type === "expression" ? value.value : value), 2), originalValue = _useState1[0], setOriginalValue = _useState1[1];
|
|
6190
|
-
var _useState2 = _sliced_to_array(useState(value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value && "type" in value && value.type === "expression" ? value.value : value), 2), currentValue = _useState2[0], setCurrentValue = _useState2[1];
|
|
6191
|
-
var formatValue = useCallback(function(value2) {
|
|
6192
|
-
switch(type){
|
|
6193
|
-
case "float":
|
|
6194
|
-
{
|
|
6195
|
-
return typeof value2 === "string" && !isNaN(parseFloat(value2)) ? parseFloat(value2) : value2;
|
|
6196
|
-
}
|
|
6197
|
-
case "integer":
|
|
6198
|
-
case "number":
|
|
6199
|
-
{
|
|
6200
|
-
return typeof value2 === "string" && !isNaN(parseInt(value2)) ? parseInt(value2) : value2;
|
|
6201
|
-
}
|
|
6202
|
-
case "string[]":
|
|
6203
|
-
{
|
|
6204
|
-
return typeof value2 === "string" ? value2.split(",") : value2;
|
|
6205
|
-
}
|
|
6206
|
-
case "string":
|
|
6207
|
-
default:
|
|
6208
|
-
{
|
|
6209
|
-
return value2;
|
|
6210
|
-
}
|
|
6211
|
-
}
|
|
6212
|
-
}, [
|
|
6213
|
-
type
|
|
6214
|
-
]);
|
|
6215
|
-
var _useState3 = _sliced_to_array(useState(), 2), currentEditorValue = _useState3[0], setCurrentEditorValue = _useState3[1];
|
|
6216
|
-
var currentExpressionValueExt = useExpressionModeStore.getState().getState(fieldName).expression;
|
|
6217
|
-
useEffect(function() {
|
|
6218
|
-
if (metadata) {
|
|
6219
|
-
setExpressionMetadata(_object_spread_props(_object_spread({}, metadata), {
|
|
6220
|
-
// Don't restore editing/fullscreen state from metadata
|
|
6221
|
-
// User needs to explicitly click to edit
|
|
6222
|
-
isEditing: false,
|
|
6223
|
-
isFullScreen: false
|
|
6224
|
-
}));
|
|
4894
|
+
});
|
|
4895
|
+
function Input(param) {
|
|
4896
|
+
var fieldName = param.fieldName, label = param.label, value = param.value, onChange = param.onChange, _param_disabled = param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, placeholder = param.placeholder, _param_expectedType = param.expectedType, expectedType = _param_expectedType === void 0 ? "string" : _param_expectedType, _param_required = param.required, required = _param_required === void 0 ? false : _param_required, _param_hasRequiredError = param.hasRequiredError, hasRequiredError = _param_hasRequiredError === void 0 ? false : _param_hasRequiredError, className = param.className, editorClassName = param.editorClassName;
|
|
4897
|
+
var displayValue = React4.useMemo(function() {
|
|
4898
|
+
if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
|
|
4899
|
+
return value.expression || "";
|
|
6225
4900
|
}
|
|
4901
|
+
return String(value !== null && value !== void 0 ? value : "");
|
|
6226
4902
|
}, [
|
|
6227
|
-
|
|
4903
|
+
value
|
|
6228
4904
|
]);
|
|
6229
|
-
var
|
|
6230
|
-
return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value
|
|
4905
|
+
var isExpression = React4.useMemo(function() {
|
|
4906
|
+
return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value;
|
|
6231
4907
|
}, [
|
|
6232
4908
|
value
|
|
6233
4909
|
]);
|
|
6234
|
-
var
|
|
6235
|
-
|
|
6236
|
-
if (
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
setOriginalValue(formatValue(exprValue));
|
|
6242
|
-
}
|
|
6243
|
-
if (exprString && expressionMode.expression !== exprString) {
|
|
6244
|
-
expressionMode.setExpression(exprString);
|
|
6245
|
-
if (isInitialMount.current && !expressionMode.isEditing) {
|
|
6246
|
-
expressionMode.switchToExpression();
|
|
6247
|
-
}
|
|
6248
|
-
}
|
|
6249
|
-
var isMetadataOutOfSync = !metadata || metadata.expression !== exprString || metadata.mode === "value" || // If value has expression but mode is 'value', it's out of sync
|
|
6250
|
-
metadata.isEditing === true || // Should never start editing on load
|
|
6251
|
-
metadata.isFullScreen === true;
|
|
6252
|
-
if (isInitialMount.current && isMetadataOutOfSync) {
|
|
6253
|
-
var syncedMetadata = {
|
|
6254
|
-
expression: exprString || "",
|
|
6255
|
-
value: formatValue(exprValue),
|
|
6256
|
-
mode: "expression",
|
|
6257
|
-
// Show expression display (not editing)
|
|
6258
|
-
isEditing: false,
|
|
6259
|
-
isFullScreen: false
|
|
6260
|
-
};
|
|
6261
|
-
setTimeout(function() {
|
|
6262
|
-
onValueChange(value, _object_spread_props(_object_spread({}, syncedMetadata), {
|
|
6263
|
-
value: formatValue(value)
|
|
6264
|
-
}));
|
|
6265
|
-
}, 0);
|
|
6266
|
-
}
|
|
4910
|
+
var handleChange = React4.useCallback(function(e) {
|
|
4911
|
+
var newValue = e.target.value;
|
|
4912
|
+
if (newValue.includes("{{")) {
|
|
4913
|
+
onChange({
|
|
4914
|
+
expression: newValue,
|
|
4915
|
+
type: "expression"
|
|
4916
|
+
});
|
|
6267
4917
|
} else {
|
|
6268
|
-
|
|
6269
|
-
setCurrentValue(formatValue(value));
|
|
6270
|
-
setOriginalValue(formatValue(value));
|
|
6271
|
-
if (isInitialMount.current && ((metadata === null || metadata === void 0 ? void 0 : metadata.expression) || (metadata === null || metadata === void 0 ? void 0 : metadata.mode) === "expression")) {
|
|
6272
|
-
var syncedMetadata1 = {
|
|
6273
|
-
expression: "",
|
|
6274
|
-
value: formatValue(value),
|
|
6275
|
-
mode: "value",
|
|
6276
|
-
isEditing: false,
|
|
6277
|
-
isFullScreen: false
|
|
6278
|
-
};
|
|
6279
|
-
setTimeout(function() {
|
|
6280
|
-
onValueChange(formatValue(value), _object_spread_props(_object_spread({}, syncedMetadata1), {
|
|
6281
|
-
value: formatValue(value)
|
|
6282
|
-
}));
|
|
6283
|
-
}, 0);
|
|
6284
|
-
}
|
|
6285
|
-
}
|
|
6286
|
-
}
|
|
6287
|
-
if (isInitialMount.current) {
|
|
6288
|
-
setTimeout(function() {
|
|
6289
|
-
isInitialMount.current = false;
|
|
6290
|
-
}, 100);
|
|
4918
|
+
onChange(newValue);
|
|
6291
4919
|
}
|
|
6292
4920
|
}, [
|
|
6293
|
-
|
|
6294
|
-
valuesLoading
|
|
4921
|
+
onChange
|
|
6295
4922
|
]);
|
|
6296
|
-
var
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
4923
|
+
var showError = hasRequiredError || required && !displayValue;
|
|
4924
|
+
return /* @__PURE__ */ React4.createElement("div", {
|
|
4925
|
+
className: cn("uii:mb-2", className)
|
|
4926
|
+
}, /* @__PURE__ */ React4.createElement("div", {
|
|
4927
|
+
className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
|
|
4928
|
+
}, /* @__PURE__ */ React4.createElement("label", {
|
|
4929
|
+
htmlFor: fieldName,
|
|
4930
|
+
className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
|
|
4931
|
+
}, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React4.createElement("span", {
|
|
4932
|
+
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:text-muted-foreground uii:font-light"
|
|
4933
|
+
}, expectedType), showError && /* @__PURE__ */ React4.createElement("span", {
|
|
4934
|
+
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-red-100 uii:text-red-600 uii:rounded-sm uii:text-[10px] uii:font-medium"
|
|
4935
|
+
}, "Required")), /* @__PURE__ */ React4.createElement("div", {
|
|
4936
|
+
className: "uii:mt-0.5"
|
|
4937
|
+
}, /* @__PURE__ */ React4.createElement("input", {
|
|
4938
|
+
id: fieldName,
|
|
4939
|
+
name: fieldName,
|
|
4940
|
+
type: "text",
|
|
4941
|
+
value: displayValue,
|
|
4942
|
+
onChange: handleChange,
|
|
4943
|
+
disabled: disabled,
|
|
4944
|
+
placeholder: placeholder || "Enter value or {{ expression }}...",
|
|
4945
|
+
className: cn("uii:w-full uii:h-9 uii:px-3 uii:rounded-sm uii:border uii:bg-background uii:text-sm", "uii:outline-none uii:transition-all", "focus:uii:border-ring focus:uii:ring-ring/50 focus:uii:ring-[3px]", showError ? "uii:border-red-500 hover:uii:border-red-600" : "uii:border-input hover:uii:border-ring/50", isExpression && "uii:font-mono uii:text-amber-600", disabled && "uii:opacity-50 uii:cursor-not-allowed", editorClassName)
|
|
4946
|
+
})));
|
|
4947
|
+
}
|
|
4948
|
+
function Select(param) {
|
|
4949
|
+
var fieldName = param.fieldName, label = param.label, value = param.value, onChange = param.onChange, rawOptions = param.options, _param_disabled = param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, placeholder = param.placeholder, _param_expectedType = param.expectedType, expectedType = _param_expectedType === void 0 ? "string" : _param_expectedType, _param_required = param.required, required = _param_required === void 0 ? false : _param_required, _param_hasRequiredError = param.hasRequiredError, hasRequiredError = _param_hasRequiredError === void 0 ? false : _param_hasRequiredError, className = param.className, children = param.children;
|
|
4950
|
+
var _React4_useState = _sliced_to_array(React4.useState(false), 2), isExpressionMode = _React4_useState[0], setIsExpressionMode = _React4_useState[1];
|
|
4951
|
+
var _React4_useState1 = _sliced_to_array(React4.useState(""), 2), expressionValue = _React4_useState1[0], setExpressionValue = _React4_useState1[1];
|
|
4952
|
+
var options = React4.useMemo(function() {
|
|
4953
|
+
return rawOptions.map(function(opt) {
|
|
4954
|
+
return typeof opt === "string" ? {
|
|
4955
|
+
value: opt,
|
|
4956
|
+
label: opt
|
|
4957
|
+
} : opt;
|
|
6308
4958
|
});
|
|
6309
4959
|
}, [
|
|
6310
|
-
|
|
6311
|
-
expressionContext,
|
|
6312
|
-
ast
|
|
4960
|
+
rawOptions
|
|
6313
4961
|
]);
|
|
6314
|
-
var
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
return expressionMode.expression.includes("\n") || expressionMode.expression.includes("\r");
|
|
4962
|
+
var displayValue = React4.useMemo(function() {
|
|
4963
|
+
if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
|
|
4964
|
+
return value.expression || "";
|
|
4965
|
+
}
|
|
4966
|
+
return String(value !== null && value !== void 0 ? value : "");
|
|
6320
4967
|
}, [
|
|
6321
|
-
|
|
4968
|
+
value
|
|
6322
4969
|
]);
|
|
6323
|
-
var
|
|
6324
|
-
return
|
|
4970
|
+
var isExpression = React4.useMemo(function() {
|
|
4971
|
+
return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value;
|
|
6325
4972
|
}, [
|
|
6326
|
-
|
|
4973
|
+
value
|
|
6327
4974
|
]);
|
|
6328
|
-
|
|
6329
|
-
if (
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
var normalizedInferred = inferredReturnType.toLowerCase().trim();
|
|
6333
|
-
var normalizedExpected = (type || expectedType || "any").toLowerCase().trim();
|
|
6334
|
-
if (normalizedExpected === "array" && normalizedInferred.endsWith("[]")) {
|
|
6335
|
-
return false;
|
|
6336
|
-
}
|
|
6337
|
-
if (normalizedInferred === normalizedExpected) {
|
|
6338
|
-
return false;
|
|
6339
|
-
}
|
|
6340
|
-
if (normalizedExpected === "any") {
|
|
6341
|
-
return false;
|
|
6342
|
-
}
|
|
6343
|
-
if (normalizedExpected === "string" && (normalizedInferred.startsWith('"') || normalizedInferred.startsWith("'"))) {
|
|
6344
|
-
return false;
|
|
6345
|
-
}
|
|
6346
|
-
if (normalizedExpected === "number" && /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(normalizedInferred)) {
|
|
6347
|
-
return false;
|
|
6348
|
-
}
|
|
6349
|
-
if (normalizedExpected === "integer" && /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(normalizedInferred)) {
|
|
6350
|
-
return false;
|
|
4975
|
+
React4.useEffect(function() {
|
|
4976
|
+
if (isExpression) {
|
|
4977
|
+
setIsExpressionMode(true);
|
|
4978
|
+
setExpressionValue(displayValue);
|
|
6351
4979
|
}
|
|
6352
|
-
if (normalizedExpected === "integer" && normalizedInferred === "number") {
|
|
6353
|
-
return false;
|
|
6354
|
-
}
|
|
6355
|
-
if (normalizedExpected === "float" && /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(normalizedInferred)) {
|
|
6356
|
-
return false;
|
|
6357
|
-
}
|
|
6358
|
-
if (normalizedExpected === "float" && normalizedInferred === "number") {
|
|
6359
|
-
return false;
|
|
6360
|
-
}
|
|
6361
|
-
if (normalizedExpected === "boolean" && (normalizedInferred === "true" || normalizedInferred === "false")) {
|
|
6362
|
-
return false;
|
|
6363
|
-
}
|
|
6364
|
-
return true;
|
|
6365
4980
|
}, [
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
expectedType
|
|
4981
|
+
isExpression,
|
|
4982
|
+
displayValue
|
|
6369
4983
|
]);
|
|
6370
|
-
var
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
var _useState9 = _sliced_to_array(useState({
|
|
6375
|
-
syntax: true,
|
|
6376
|
-
expression: true,
|
|
6377
|
-
context: true,
|
|
6378
|
-
type: true,
|
|
6379
|
-
security: true
|
|
6380
|
-
}), 2), validationState = _useState9[0], setValidationState = _useState9[1];
|
|
6381
|
-
var hasExpressionError = useMemo(function() {
|
|
6382
|
-
if (!expressionMode.expression || !expressionMode.expression.trim()) {
|
|
6383
|
-
return false;
|
|
6384
|
-
}
|
|
6385
|
-
if (!internalIsExpressionValid || !isExpressionValid) {
|
|
6386
|
-
return true;
|
|
6387
|
-
}
|
|
6388
|
-
if (parseError) {
|
|
6389
|
-
return true;
|
|
6390
|
-
}
|
|
6391
|
-
if (!validationState.syntax || !validationState.expression) {
|
|
6392
|
-
return true;
|
|
6393
|
-
}
|
|
6394
|
-
if ((expressionResult === null || expressionResult === void 0 ? void 0 : expressionResult.error) || (internalExpressionResult === null || internalExpressionResult === void 0 ? void 0 : internalExpressionResult.error)) {
|
|
6395
|
-
return true;
|
|
4984
|
+
var handleSelectChange = React4.useCallback(function(newValue) {
|
|
4985
|
+
if (newValue === "__expression__") {
|
|
4986
|
+
setIsExpressionMode(true);
|
|
4987
|
+
return;
|
|
6396
4988
|
}
|
|
6397
|
-
|
|
4989
|
+
onChange(newValue);
|
|
6398
4990
|
}, [
|
|
6399
|
-
|
|
6400
|
-
internalIsExpressionValid,
|
|
6401
|
-
isExpressionValid,
|
|
6402
|
-
parseError,
|
|
6403
|
-
validationState,
|
|
6404
|
-
expressionResult,
|
|
6405
|
-
internalExpressionResult
|
|
4991
|
+
onChange
|
|
6406
4992
|
]);
|
|
6407
|
-
var
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
return _object_spread_props(_object_spread({}, prev), {
|
|
6414
|
-
syntax: isValid
|
|
6415
|
-
});
|
|
4993
|
+
var handleExpressionChange = React4.useCallback(function(e) {
|
|
4994
|
+
var newValue = e.target.value;
|
|
4995
|
+
setExpressionValue(newValue);
|
|
4996
|
+
onChange({
|
|
4997
|
+
expression: newValue,
|
|
4998
|
+
type: "expression"
|
|
6416
4999
|
});
|
|
6417
|
-
}, []);
|
|
6418
|
-
var checkForMultiLine = useCallback(function(expression) {
|
|
6419
|
-
var hasNewlines = expression.includes("\n");
|
|
6420
|
-
var isLong = expression.length > 80;
|
|
6421
|
-
if (!expressionMode.isFullScreen) {
|
|
6422
|
-
expressionMode.setFullScreen(hasNewlines || isLong);
|
|
6423
|
-
}
|
|
6424
5000
|
}, [
|
|
6425
|
-
|
|
5001
|
+
onChange
|
|
6426
5002
|
]);
|
|
6427
|
-
var
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
switch(_state.label){
|
|
6432
|
-
case 0:
|
|
6433
|
-
if (!evaluateExpression || !expression.trim()) return [
|
|
6434
|
-
2
|
|
6435
|
-
];
|
|
6436
|
-
setInternalIsEvaluating(true);
|
|
6437
|
-
_state.label = 1;
|
|
6438
|
-
case 1:
|
|
6439
|
-
_state.trys.push([
|
|
6440
|
-
1,
|
|
6441
|
-
3,
|
|
6442
|
-
4,
|
|
6443
|
-
5
|
|
6444
|
-
]);
|
|
6445
|
-
return [
|
|
6446
|
-
4,
|
|
6447
|
-
evaluateExpression(expression, context)
|
|
6448
|
-
];
|
|
6449
|
-
case 2:
|
|
6450
|
-
result = _state.sent();
|
|
6451
|
-
setInternalExpressionResult(result);
|
|
6452
|
-
return [
|
|
6453
|
-
3,
|
|
6454
|
-
5
|
|
6455
|
-
];
|
|
6456
|
-
case 3:
|
|
6457
|
-
error = _state.sent();
|
|
6458
|
-
setInternalExpressionResult({
|
|
6459
|
-
value: null,
|
|
6460
|
-
ast: {
|
|
6461
|
-
kind: 0,
|
|
6462
|
-
text: "",
|
|
6463
|
-
color: "#ff0000"
|
|
6464
|
-
},
|
|
6465
|
-
error: _instanceof(error, Error) ? error.message : "Unknown error",
|
|
6466
|
-
isValid: false,
|
|
6467
|
-
validation: {
|
|
6468
|
-
syntax: false,
|
|
6469
|
-
expression: false,
|
|
6470
|
-
context: false,
|
|
6471
|
-
type: false,
|
|
6472
|
-
security: false
|
|
6473
|
-
}
|
|
6474
|
-
});
|
|
6475
|
-
return [
|
|
6476
|
-
3,
|
|
6477
|
-
5
|
|
6478
|
-
];
|
|
6479
|
-
case 4:
|
|
6480
|
-
setInternalIsEvaluating(false);
|
|
6481
|
-
return [
|
|
6482
|
-
7
|
|
6483
|
-
];
|
|
6484
|
-
case 5:
|
|
6485
|
-
return [
|
|
6486
|
-
2
|
|
6487
|
-
];
|
|
6488
|
-
}
|
|
6489
|
-
});
|
|
6490
|
-
})();
|
|
5003
|
+
var handleSwitchToValue = React4.useCallback(function() {
|
|
5004
|
+
setIsExpressionMode(false);
|
|
5005
|
+
setExpressionValue("");
|
|
5006
|
+
onChange("");
|
|
6491
5007
|
}, [
|
|
6492
|
-
|
|
5008
|
+
onChange
|
|
6493
5009
|
]);
|
|
6494
|
-
var
|
|
5010
|
+
var showError = hasRequiredError || required && !displayValue;
|
|
5011
|
+
var renderProps = {
|
|
5012
|
+
value: displayValue,
|
|
5013
|
+
onChange: handleSelectChange,
|
|
5014
|
+
onExpressionClick: function() {
|
|
5015
|
+
return setIsExpressionMode(true);
|
|
5016
|
+
},
|
|
5017
|
+
options: options,
|
|
5018
|
+
localInput: displayValue,
|
|
5019
|
+
setLocalInput: function() {},
|
|
5020
|
+
expressionMode: {
|
|
5021
|
+
current: isExpressionMode ? "expression" : "value",
|
|
5022
|
+
isExpressionMode: isExpressionMode,
|
|
5023
|
+
isEditorMode: false,
|
|
5024
|
+
isEditing: false,
|
|
5025
|
+
isFullScreen: false,
|
|
5026
|
+
expression: expressionValue,
|
|
5027
|
+
switchToValue: handleSwitchToValue,
|
|
5028
|
+
switchToExpression: function() {
|
|
5029
|
+
return setIsExpressionMode(true);
|
|
5030
|
+
},
|
|
5031
|
+
switchToEditor: function() {
|
|
5032
|
+
return setIsExpressionMode(true);
|
|
5033
|
+
},
|
|
5034
|
+
clear: handleSwitchToValue
|
|
5035
|
+
},
|
|
5036
|
+
hasError: showError
|
|
5037
|
+
};
|
|
5038
|
+
return /* @__PURE__ */ React4.createElement("div", {
|
|
5039
|
+
className: cn("uii:mb-2", className)
|
|
5040
|
+
}, /* @__PURE__ */ React4.createElement("div", {
|
|
5041
|
+
className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
|
|
5042
|
+
}, /* @__PURE__ */ React4.createElement("label", {
|
|
5043
|
+
htmlFor: fieldName,
|
|
5044
|
+
className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
|
|
5045
|
+
}, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React4.createElement("span", {
|
|
5046
|
+
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:text-muted-foreground uii:font-light"
|
|
5047
|
+
}, expectedType), showError && /* @__PURE__ */ React4.createElement("span", {
|
|
5048
|
+
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-red-100 uii:text-red-600 uii:rounded-sm uii:text-[10px] uii:font-medium"
|
|
5049
|
+
}, "Required")), /* @__PURE__ */ React4.createElement("div", {
|
|
5050
|
+
className: "uii:mt-0.5"
|
|
5051
|
+
}, children ? // Use custom render function
|
|
5052
|
+
children(renderProps) : isExpressionMode ? // Expression mode - show input with clear button
|
|
5053
|
+
/* @__PURE__ */ React4.createElement("div", {
|
|
5054
|
+
className: "uii:flex uii:items-center uii:h-9 uii:rounded-sm uii:border uii:border-amber-500/50 uii:bg-amber-500/5"
|
|
5055
|
+
}, /* @__PURE__ */ React4.createElement("input", {
|
|
5056
|
+
id: fieldName,
|
|
5057
|
+
name: fieldName,
|
|
5058
|
+
type: "text",
|
|
5059
|
+
value: expressionValue,
|
|
5060
|
+
onChange: handleExpressionChange,
|
|
5061
|
+
disabled: disabled,
|
|
5062
|
+
placeholder: "Enter expression...",
|
|
5063
|
+
className: cn("uii:flex-1 uii:h-full uii:px-3 uii:bg-transparent uii:text-sm uii:font-mono uii:text-amber-600", "uii:outline-none uii:border-none", disabled && "uii:opacity-50 uii:cursor-not-allowed")
|
|
5064
|
+
}), /* @__PURE__ */ React4.createElement("button", {
|
|
5065
|
+
type: "button",
|
|
5066
|
+
onClick: handleSwitchToValue,
|
|
5067
|
+
className: "uii:flex uii:items-center uii:justify-center uii:h-full uii:px-2 uii:text-amber-600 hover:uii:text-red-600 uii:border-l uii:border-amber-500/30",
|
|
5068
|
+
title: "Clear and return to value mode"
|
|
5069
|
+
}, "\xD7")) : // Value mode - show select
|
|
5070
|
+
/* @__PURE__ */ React4.createElement("select", {
|
|
5071
|
+
id: fieldName,
|
|
5072
|
+
name: fieldName,
|
|
5073
|
+
value: displayValue,
|
|
5074
|
+
onChange: function(e) {
|
|
5075
|
+
return handleSelectChange(e.target.value);
|
|
5076
|
+
},
|
|
5077
|
+
disabled: disabled,
|
|
5078
|
+
className: cn("uii:w-full uii:h-9 uii:px-3 uii:rounded-sm uii:border uii:bg-background uii:text-sm", "uii:outline-none uii:transition-all uii:cursor-pointer", "focus:uii:border-ring focus:uii:ring-ring/50 focus:uii:ring-[3px]", showError ? "uii:border-red-500 hover:uii:border-red-600" : "uii:border-input hover:uii:border-ring/50", disabled && "uii:opacity-50 uii:cursor-not-allowed")
|
|
5079
|
+
}, placeholder && /* @__PURE__ */ React4.createElement("option", {
|
|
5080
|
+
value: "",
|
|
5081
|
+
disabled: true
|
|
5082
|
+
}, placeholder), options.map(function(opt) {
|
|
5083
|
+
return /* @__PURE__ */ React4.createElement("option", {
|
|
5084
|
+
key: opt.value,
|
|
5085
|
+
value: opt.value
|
|
5086
|
+
}, opt.label);
|
|
5087
|
+
}), /* @__PURE__ */ React4.createElement("option", {
|
|
5088
|
+
value: "__expression__"
|
|
5089
|
+
}, "\uD83D\uDCDD Custom Expression"))));
|
|
5090
|
+
}
|
|
5091
|
+
// src/components/fields/index.tsx
|
|
5092
|
+
function useTemplateFieldContext() {
|
|
5093
|
+
return {
|
|
5094
|
+
yDoc: null,
|
|
5095
|
+
collabUser: null,
|
|
5096
|
+
awareness: null,
|
|
5097
|
+
availableNodes: null,
|
|
5098
|
+
myInterface: null,
|
|
5099
|
+
typeDeclarations: "",
|
|
5100
|
+
element: null,
|
|
5101
|
+
nodeId: "",
|
|
5102
|
+
onControlFocus: function() {},
|
|
5103
|
+
onControlBlur: function() {},
|
|
5104
|
+
onRecordChange: function() {},
|
|
5105
|
+
onValidationChange: function() {},
|
|
5106
|
+
parentFieldPath: null,
|
|
5107
|
+
disabled: false
|
|
5108
|
+
};
|
|
5109
|
+
}
|
|
5110
|
+
function useIsInTemplateFieldProvider() {
|
|
5111
|
+
return false;
|
|
5112
|
+
}
|
|
5113
|
+
function useFieldPath(fieldName) {
|
|
5114
|
+
return fieldName;
|
|
5115
|
+
}
|
|
5116
|
+
function TemplateFieldProvider(param) {
|
|
5117
|
+
var children = param.children;
|
|
5118
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
|
|
5119
|
+
}
|
|
5120
|
+
function NestedFieldProvider(param) {
|
|
5121
|
+
var children = param.children;
|
|
5122
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
|
|
5123
|
+
}
|
|
5124
|
+
var InferredTypesContext = createContext(null);
|
|
5125
|
+
function useInferredTypes() {
|
|
5126
|
+
return useContext(InferredTypesContext);
|
|
5127
|
+
}
|
|
5128
|
+
function parseInferSyntax(expectedType) {
|
|
5129
|
+
var _match_;
|
|
5130
|
+
if (!expectedType || !expectedType.startsWith("$infer<")) {
|
|
6495
5131
|
return {
|
|
6496
|
-
|
|
6497
|
-
value: currentValue,
|
|
6498
|
-
mode: expressionMode.current,
|
|
6499
|
-
isEditing: expressionMode.isEditing,
|
|
6500
|
-
isFullScreen: expressionMode.isFullScreen
|
|
5132
|
+
mode: "normal"
|
|
6501
5133
|
};
|
|
6502
|
-
}
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
expressionMode.isFullScreen,
|
|
6506
|
-
expressionMode.isEditing,
|
|
6507
|
-
currentValue
|
|
6508
|
-
]);
|
|
6509
|
-
var currentExpressionValue = useMemo(function() {
|
|
5134
|
+
}
|
|
5135
|
+
var match = expectedType.match(/^\$infer<(.+)>$/);
|
|
5136
|
+
if (!match) {
|
|
6510
5137
|
return {
|
|
6511
|
-
|
|
6512
|
-
type: "expression"
|
|
5138
|
+
mode: "normal"
|
|
6513
5139
|
};
|
|
6514
|
-
}
|
|
6515
|
-
|
|
6516
|
-
])
|
|
6517
|
-
var handleValueChange = useCallback(function(newValue) {
|
|
6518
|
-
onValueChange(formatValue(newValue), _object_spread_props(_object_spread({}, currentMetadata), {
|
|
6519
|
-
value: formatValue(newValue)
|
|
6520
|
-
}));
|
|
6521
|
-
}, [
|
|
6522
|
-
onValueChange,
|
|
6523
|
-
expressionMode,
|
|
6524
|
-
isExpressionValue,
|
|
6525
|
-
currentValue
|
|
6526
|
-
]);
|
|
6527
|
-
var handleExpressionChange = useCallback(function(newExpression) {
|
|
6528
|
-
isProgrammaticallyClearing.current = false;
|
|
6529
|
-
expressionMode.setExpression(newExpression);
|
|
6530
|
-
setCurrentEditorValue(newExpression);
|
|
6531
|
-
checkForMultiLine(newExpression);
|
|
6532
|
-
onValueChange({
|
|
6533
|
-
expression: newExpression,
|
|
6534
|
-
type: "expression"
|
|
6535
|
-
}, _object_spread_props(_object_spread({}, currentMetadata), {
|
|
6536
|
-
expression: newExpression
|
|
6537
|
-
}));
|
|
6538
|
-
}, [
|
|
6539
|
-
expressionMode,
|
|
6540
|
-
expressionContext,
|
|
6541
|
-
onValueChange,
|
|
6542
|
-
evaluateExpression,
|
|
6543
|
-
internalEvaluateExpression,
|
|
6544
|
-
checkForMultiLine
|
|
6545
|
-
]);
|
|
6546
|
-
var handleExpressionBlur = useCallback(function(e) {
|
|
6547
|
-
var forceBlur = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
6548
|
-
return _async_to_generator(function() {
|
|
6549
|
-
return _ts_generator(this, function(_state) {
|
|
6550
|
-
if (isProgrammaticallyClearing.current) {
|
|
6551
|
-
isProgrammaticallyClearing.current = false;
|
|
6552
|
-
return [
|
|
6553
|
-
2
|
|
6554
|
-
];
|
|
6555
|
-
}
|
|
6556
|
-
if (isSwitchingToFullScreen.current) {
|
|
6557
|
-
isSwitchingToFullScreen.current = false;
|
|
6558
|
-
return [
|
|
6559
|
-
2
|
|
6560
|
-
];
|
|
6561
|
-
}
|
|
6562
|
-
if (expressionMode.isFullScreen && !forceBlur) {
|
|
6563
|
-
return [
|
|
6564
|
-
2
|
|
6565
|
-
];
|
|
6566
|
-
}
|
|
6567
|
-
if (expressionHasNewlines && !forceBlur) {
|
|
6568
|
-
return [
|
|
6569
|
-
2
|
|
6570
|
-
];
|
|
6571
|
-
}
|
|
6572
|
-
isBlur.current = true;
|
|
6573
|
-
expressionMode.setEditing(false);
|
|
6574
|
-
expressionMode.setFullScreen(false);
|
|
6575
|
-
return [
|
|
6576
|
-
2
|
|
6577
|
-
];
|
|
6578
|
-
});
|
|
6579
|
-
})();
|
|
6580
|
-
}, [
|
|
6581
|
-
expressionMode,
|
|
6582
|
-
expressionResult,
|
|
6583
|
-
internalExpressionResult,
|
|
6584
|
-
expressionContext,
|
|
6585
|
-
onValueChange,
|
|
6586
|
-
currentValue,
|
|
6587
|
-
isEvaluating,
|
|
6588
|
-
internalIsEvaluating,
|
|
6589
|
-
currentExpressionValue,
|
|
6590
|
-
expressionHasNewlines
|
|
6591
|
-
]);
|
|
6592
|
-
useEffect(function() {
|
|
6593
|
-
onValueChange(currentValue, _object_spread_props(_object_spread({}, currentMetadata), {
|
|
6594
|
-
isFullScreen: expressionMode.isFullScreen
|
|
6595
|
-
}));
|
|
6596
|
-
}, [
|
|
6597
|
-
expressionMode.isFullScreen
|
|
6598
|
-
]);
|
|
6599
|
-
useEffect(function() {
|
|
6600
|
-
if (expressionMode.isEditing && expressionHasNewlines && !expressionMode.isFullScreen) {
|
|
6601
|
-
expressionMode.setFullScreen(true);
|
|
6602
|
-
}
|
|
6603
|
-
}, [
|
|
6604
|
-
expressionHasNewlines,
|
|
6605
|
-
expressionMode.isEditing,
|
|
6606
|
-
expressionMode.isFullScreen
|
|
6607
|
-
]);
|
|
6608
|
-
var handleModeChange = useCallback(function(newMode) {
|
|
6609
|
-
switch(newMode){
|
|
6610
|
-
case "value":
|
|
6611
|
-
expressionMode.switchToValue();
|
|
6612
|
-
expressionMode.setFullScreen(false);
|
|
6613
|
-
onValueChange(originalValue || value, void 0);
|
|
6614
|
-
break;
|
|
6615
|
-
case "editor":
|
|
6616
|
-
expressionMode.switchToEditor();
|
|
6617
|
-
var shouldBeFullScreen = expressionHasNewlines;
|
|
6618
|
-
if (shouldBeFullScreen) {
|
|
6619
|
-
expressionMode.setFullScreen(true);
|
|
6620
|
-
}
|
|
6621
|
-
var editorMetadata = {
|
|
6622
|
-
expression: expressionMode.expression,
|
|
6623
|
-
value: currentValue,
|
|
6624
|
-
mode: "expression",
|
|
6625
|
-
isEditing: true,
|
|
6626
|
-
isFullScreen: shouldBeFullScreen
|
|
6627
|
-
};
|
|
6628
|
-
onValueChange(expressionMode.expression ? {
|
|
6629
|
-
expression: expressionMode.expression,
|
|
6630
|
-
type: "expression"
|
|
6631
|
-
} : currentValue, editorMetadata);
|
|
6632
|
-
break;
|
|
6633
|
-
case "expression":
|
|
6634
|
-
setOriginalValue(currentValue);
|
|
6635
|
-
expressionMode.switchToExpression();
|
|
6636
|
-
if (expressionHasNewlines) {
|
|
6637
|
-
expressionMode.setFullScreen(true);
|
|
6638
|
-
}
|
|
6639
|
-
break;
|
|
6640
|
-
}
|
|
6641
|
-
}, [
|
|
6642
|
-
expressionMode,
|
|
6643
|
-
currentValue,
|
|
6644
|
-
onValueChange,
|
|
6645
|
-
expressionHasNewlines,
|
|
6646
|
-
originalValue,
|
|
6647
|
-
value
|
|
6648
|
-
]);
|
|
6649
|
-
useEffect(function() {
|
|
6650
|
-
if (isBlur.current) {
|
|
6651
|
-
if (!(expressionMode.expression && expressionMode.expression.trim())) {
|
|
6652
|
-
expressionMode.switchToValue();
|
|
6653
|
-
var _currentMetadata_value;
|
|
6654
|
-
onValueChange((_currentMetadata_value = currentMetadata.value) !== null && _currentMetadata_value !== void 0 ? _currentMetadata_value : "", _object_spread_props(_object_spread({}, currentMetadata), {
|
|
6655
|
-
mode: "value",
|
|
6656
|
-
expression: "",
|
|
6657
|
-
isEditing: false,
|
|
6658
|
-
isFullScreen: false
|
|
6659
|
-
}));
|
|
6660
|
-
} else {
|
|
6661
|
-
var _currentMetadata_value1;
|
|
6662
|
-
onValueChange(currentMetadata.mode === "value" ? (_currentMetadata_value1 = currentMetadata.value) !== null && _currentMetadata_value1 !== void 0 ? _currentMetadata_value1 : "" : {
|
|
6663
|
-
expression: currentMetadata.expression.trim(),
|
|
6664
|
-
type: "expression"
|
|
6665
|
-
}, _object_spread_props(_object_spread({}, currentMetadata), {
|
|
6666
|
-
isEditing: false,
|
|
6667
|
-
isFullScreen: false
|
|
6668
|
-
}));
|
|
6669
|
-
}
|
|
6670
|
-
isBlur.current = false;
|
|
6671
|
-
}
|
|
6672
|
-
}, [
|
|
6673
|
-
expressionMode.isEditing,
|
|
6674
|
-
expressionMode.isFullScreen,
|
|
6675
|
-
isBlur.current
|
|
6676
|
-
]);
|
|
6677
|
-
useEffect(function() {
|
|
6678
|
-
if (onDependenciesChange) {
|
|
6679
|
-
onDependenciesChange(dependencies);
|
|
6680
|
-
}
|
|
6681
|
-
}, [
|
|
6682
|
-
dependencies,
|
|
6683
|
-
onDependenciesChange
|
|
6684
|
-
]);
|
|
6685
|
-
var handleClear = useCallback(function() {
|
|
6686
|
-
isProgrammaticallyClearing.current = true;
|
|
6687
|
-
onValueChange(currentValue, currentMetadata);
|
|
6688
|
-
handleModeChange("value");
|
|
6689
|
-
expressionMode.setFullScreen(false);
|
|
6690
|
-
}, [
|
|
6691
|
-
onValueChange,
|
|
6692
|
-
expressionMode,
|
|
6693
|
-
originalValue
|
|
6694
|
-
]);
|
|
6695
|
-
var _useState10 = _sliced_to_array(useState(currentValue), 2), localInput = _useState10[0], setLocalInput = _useState10[1];
|
|
6696
|
-
useEffect(function() {
|
|
6697
|
-
setLocalInput(currentValue);
|
|
6698
|
-
}, [
|
|
6699
|
-
currentValue
|
|
6700
|
-
]);
|
|
6701
|
-
var controlProps = useMemo(function() {
|
|
5140
|
+
}
|
|
5141
|
+
var content = ((_match_ = match[1]) === null || _match_ === void 0 ? void 0 : _match_.trim()) || "";
|
|
5142
|
+
if (!content.includes("|") && /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(content)) {
|
|
6702
5143
|
return {
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
onExpressionClick: function() {
|
|
6706
|
-
return handleModeChange("editor");
|
|
6707
|
-
},
|
|
6708
|
-
// Click handler to trigger expression mode
|
|
6709
|
-
inferredType: inferredReturnType,
|
|
6710
|
-
// Inferred TypeScript type
|
|
6711
|
-
hasTypeMismatch: hasTypeMismatch,
|
|
6712
|
-
// Whether inferred type matches expected
|
|
6713
|
-
hasError: hasExpressionError,
|
|
6714
|
-
// Whether expression has syntax/validation errors
|
|
6715
|
-
localInput: localInput,
|
|
6716
|
-
setLocalInput: setLocalInput,
|
|
6717
|
-
expressionMode: {
|
|
6718
|
-
current: expressionMode.current,
|
|
6719
|
-
switchToValue: function() {
|
|
6720
|
-
return handleModeChange("value");
|
|
6721
|
-
},
|
|
6722
|
-
switchToExpression: function() {
|
|
6723
|
-
return handleModeChange("expression");
|
|
6724
|
-
},
|
|
6725
|
-
switchToEditor: function() {
|
|
6726
|
-
return handleModeChange("editor");
|
|
6727
|
-
},
|
|
6728
|
-
clear: handleClear,
|
|
6729
|
-
isExpressionMode: expressionMode.isExpressionMode,
|
|
6730
|
-
isEditorMode: expressionMode.isEditorMode,
|
|
6731
|
-
expression: expressionMode.expression,
|
|
6732
|
-
setExpression: handleExpressionChange,
|
|
6733
|
-
isEditing: expressionMode.isEditing,
|
|
6734
|
-
setEditing: expressionMode.setEditing,
|
|
6735
|
-
isFullScreen: expressionMode.isFullScreen,
|
|
6736
|
-
setFullScreen: expressionMode.setFullScreen
|
|
6737
|
-
}
|
|
5144
|
+
mode: "subscribe",
|
|
5145
|
+
subscribeToField: content
|
|
6738
5146
|
};
|
|
6739
|
-
}
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
inferredReturnType,
|
|
6747
|
-
hasTypeMismatch,
|
|
6748
|
-
hasExpressionError
|
|
6749
|
-
]);
|
|
6750
|
-
var renderContent = function() {
|
|
6751
|
-
switch(expressionMode.current){
|
|
6752
|
-
// case 'value':
|
|
6753
|
-
// return children(controlProps);
|
|
6754
|
-
case "expression":
|
|
6755
|
-
var _this;
|
|
6756
|
-
expressionMode.expression && expressionMode.expression.trim();
|
|
6757
|
-
(_this = expressionResult || internalExpressionResult) === null || _this === void 0 ? void 0 : _this.isValid;
|
|
6758
|
-
return controlProps.expressionMode.isEditing ? /* @__PURE__ */ React4__default.createElement("div", {
|
|
6759
|
-
key: "expression",
|
|
6760
|
-
className: cn("relative", className)
|
|
6761
|
-
}, inlineEditor && !expressionMode.isFullScreen && !expressionHasNewlines ? /* @__PURE__ */ React4__default.createElement("div", {
|
|
6762
|
-
className: cn("uii:flex uii:h-9 uii:w-full \n uii:min-w-0 uii:rounded-sm \n uii:border uii:border-ring \n uii:bg-background uii:px-3 uii:py-1 uii:text-base uii:shadow-xs \n uii:ring-ring/50 uii:ring-[3px] uii:transition-[color,box-shadow] \n uii:outline-none uii:md:text-sm uii:cursor-pointer\n uii:mt-0.5 ", editorClassName)
|
|
6763
|
-
}, /* @__PURE__ */ React4__default.createElement(InlineExpressionEditor, {
|
|
6764
|
-
value: expressionMode.expression,
|
|
6765
|
-
onChange: function(newValue) {
|
|
6766
|
-
handleExpressionChange(newValue);
|
|
6767
|
-
},
|
|
6768
|
-
onEnter: function() {
|
|
6769
|
-
isSwitchingToFullScreen.current = true;
|
|
6770
|
-
expressionMode.setFullScreen(true);
|
|
6771
|
-
setTimeout(function() {
|
|
6772
|
-
isSwitchingToFullScreen.current = false;
|
|
6773
|
-
}, 100);
|
|
6774
|
-
},
|
|
6775
|
-
onBlur: handleExpressionBlur,
|
|
6776
|
-
onTypeInferred: handleTypeInferred,
|
|
6777
|
-
onValidationChange: handleValidationChange,
|
|
6778
|
-
context: expressionContext,
|
|
6779
|
-
placeholder: expressionPlaceholder
|
|
6780
|
-
}), /* @__PURE__ */ React4__default.createElement("div", {
|
|
6781
|
-
className: "uii:flex uii:items-center uii:gap-2 uii:mt-0.5"
|
|
6782
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6783
|
-
className: "uii:text-xs uii:font-mono uii:cursor-pointer uii:text-muted-foreground",
|
|
6784
|
-
onMouseDown: function(e) {
|
|
6785
|
-
e.preventDefault();
|
|
6786
|
-
e.stopPropagation();
|
|
6787
|
-
isSwitchingToFullScreen.current = true;
|
|
6788
|
-
expressionMode.setFullScreen(true);
|
|
6789
|
-
setTimeout(function() {
|
|
6790
|
-
isSwitchingToFullScreen.current = false;
|
|
6791
|
-
}, 100);
|
|
6792
|
-
}
|
|
6793
|
-
}, /* @__PURE__ */ React4__default.createElement(FontAwesomeIcon, {
|
|
6794
|
-
icon: faExpand
|
|
6795
|
-
})), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6796
|
-
className: "uii:text-xs uii:font-mono uii:cursor-pointer uii:text-muted-foreground",
|
|
6797
|
-
onMouseDown: function(e) {
|
|
6798
|
-
e.preventDefault();
|
|
6799
|
-
handleClear();
|
|
6800
|
-
}
|
|
6801
|
-
}, "Clear"))) : /* @__PURE__ */ React4__default.createElement("div", {
|
|
6802
|
-
className: "uii:space-y-4"
|
|
6803
|
-
}, /* @__PURE__ */ React4__default.createElement(FullPanelExpressionEditor, {
|
|
6804
|
-
value: expressionMode.expression,
|
|
6805
|
-
onChange: function(newValue) {
|
|
6806
|
-
handleExpressionChange(newValue);
|
|
6807
|
-
},
|
|
6808
|
-
onClose: function() {
|
|
6809
|
-
handleExpressionBlur(void 0, true);
|
|
6810
|
-
expressionMode.setFullScreen(false);
|
|
6811
|
-
},
|
|
6812
|
-
onBlur: handleExpressionBlur,
|
|
6813
|
-
onTypeInferred: handleTypeInferred,
|
|
6814
|
-
context: expressionContext,
|
|
6815
|
-
placeholder: expressionPlaceholder
|
|
6816
|
-
}), (ast || dependencies.length > 0) && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6817
|
-
className: "uii:space-y-3"
|
|
6818
|
-
}, inferredReturnType && inferredReturnType !== "unknown" && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6819
|
-
className: "uii:space-y-2"
|
|
6820
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6821
|
-
className: "uii:flex uii:items-center uii:gap-2"
|
|
6822
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6823
|
-
className: "uii:text-sm uii:font-semibold uii:text-gray-700"
|
|
6824
|
-
}, "Inferred Return Type:"), typeScriptInferredType && inferredReturnType !== "error" && /* @__PURE__ */ React4__default.createElement("span", {
|
|
6825
|
-
className: "uii:px-1.5 uii:py-0.5 uii:text-xs uii:rounded uii:bg-blue-100 uii:text-blue-700 uii:border uii:border-blue-200"
|
|
6826
|
-
}, "TypeScript")), /* @__PURE__ */ React4__default.createElement("div", {
|
|
6827
|
-
className: "uii:flex uii:items-center uii:gap-2"
|
|
6828
|
-
}, inferredReturnType === "error" ? /* @__PURE__ */ React4__default.createElement("span", {
|
|
6829
|
-
className: "uii:px-3 uii:py-1.5 uii:text-sm uii:font-mono uii:rounded uii:border uii:bg-red-50 uii:text-red-800 uii:border-red-200"
|
|
6830
|
-
}, "\u274C Syntax Error") : /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6831
|
-
className: "uii:px-3 uii:py-1.5 uii:text-sm uii:font-mono uii:rounded uii:border uii:bg-purple-50 uii:text-purple-800 uii:border-purple-200"
|
|
6832
|
-
}, inferredReturnType), hasTypeMismatch && /* @__PURE__ */ React4__default.createElement("span", {
|
|
6833
|
-
className: "uii:text-xs uii:text-orange-600 uii:font-semibold"
|
|
6834
|
-
}, "\u26A0\uFE0F Expected: ", type || expectedType)))), dependencyList.length > 0 && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6835
|
-
className: "uii:space-y-2"
|
|
6836
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6837
|
-
className: "uii:text-sm uii:font-semibold uii:text-gray-700"
|
|
6838
|
-
}, "Dependencies (", dependencyList.length, "):"), /* @__PURE__ */ React4__default.createElement("div", {
|
|
6839
|
-
className: "uii:flex uii:flex-wrap uii:gap-2"
|
|
6840
|
-
}, dependencyList.map(function(dep, index) {
|
|
6841
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6842
|
-
key: index,
|
|
6843
|
-
className: cn("uii:px-2 uii:py-1 uii:text-sm uii:rounded uii:border", dep.exists ? "uii:bg-blue-100 uii:text-blue-800 uii:border-blue-200" : "uii:bg-red-100 uii:text-red-800 uii:border-red-200"),
|
|
6844
|
-
title: dep.exists ? "Value: ".concat(JSON.stringify(dep.value)) : "Not found in context"
|
|
6845
|
-
}, dep.name);
|
|
6846
|
-
}))), ast && /* @__PURE__ */ React4__default.createElement(ASTRenderer, {
|
|
6847
|
-
ast: ast,
|
|
6848
|
-
tokens: tokens,
|
|
6849
|
-
variant: "tree",
|
|
6850
|
-
showTokens: true,
|
|
6851
|
-
className: "uii:w-full"
|
|
6852
|
-
}), isParsing && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6853
|
-
className: "uii:text-sm uii:text-gray-500 uii:italic"
|
|
6854
|
-
}, "Parsing expression..."), parseError && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6855
|
-
className: "uii:text-sm uii:text-red-600"
|
|
6856
|
-
}, "Parse Error: ", parseError)))) : /* @__PURE__ */ React4__default.createElement("div", {
|
|
6857
|
-
className: cn("uii:relative", className),
|
|
6858
|
-
key: "expression-display"
|
|
6859
|
-
}, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6860
|
-
className: clsx_default("uii:flex uii:h-9 uii:w-full uii:min-w-0 uii:rounded-sm uii:border uii:border-input uii:bg-transparent uii:px-3 uii:py-1 uii:text-base uii:shadow-xs uii:transition-[color,box-shadow] uii:outline-none uii:focus-visible:border-ring uii:focus-visible:ring-ring/50 uii:focus-visible:ring-[3px] uii:md:text-sm uii:cursor-pointer uii:hover:bg-muted/50", "uii:mt-0.5 uii:bg-white uii:rounded-md uii:items-center"),
|
|
6861
|
-
onClick: function() {
|
|
6862
|
-
return handleModeChange("editor");
|
|
6863
|
-
},
|
|
6864
|
-
onMouseEnter: function() {
|
|
6865
|
-
return setIsHovering(true);
|
|
6866
|
-
},
|
|
6867
|
-
onMouseLeave: function() {
|
|
6868
|
-
return setIsHovering(false);
|
|
6869
|
-
}
|
|
6870
|
-
}, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6871
|
-
className: "uii:flex-1 uii:truncate uii:text-foreground uii:items-center"
|
|
6872
|
-
}, isHovering ? // Hover state: show AST preview with dependencies
|
|
6873
|
-
/* @__PURE__ */ React4__default.createElement("div", {
|
|
6874
|
-
className: "uii:flex uii:items-center uii:gap-2"
|
|
6875
|
-
}, ast ? /* @__PURE__ */ React4__default.createElement(ASTRenderer, {
|
|
6876
|
-
key: "ast",
|
|
6877
|
-
ast: ast,
|
|
6878
|
-
tokens: tokens,
|
|
6879
|
-
variant: "inline",
|
|
6880
|
-
showTokens: false,
|
|
6881
|
-
className: "uii:text-xs"
|
|
6882
|
-
}) : /* @__PURE__ */ React4__default.createElement("div", {
|
|
6883
|
-
className: "uii:text-xs uii:text-gray-500"
|
|
6884
|
-
}, isParsing ? "Parsing..." : parseError ? "Error: ".concat(parseError) : "No AST available"), dependencies.length > 0 && /* @__PURE__ */ React4__default.createElement("div", {
|
|
6885
|
-
className: "uii:flex uii:gap-1"
|
|
6886
|
-
}, dependencies.map(function(dep, index) {
|
|
6887
|
-
return /* @__PURE__ */ React4__default.createElement("span", {
|
|
6888
|
-
key: index,
|
|
6889
|
-
className: "uii:px-1 uii:py-0.5 uii:bg-blue-100 uii:text-blue-800 uii:text-xs uii:rounded"
|
|
6890
|
-
}, dep);
|
|
6891
|
-
}))) : // At rest: show the expression text
|
|
6892
|
-
/* @__PURE__ */ React4__default.createElement("span", {
|
|
6893
|
-
className: "uii:font-mono uii:text-sm"
|
|
6894
|
-
}, currentExpressionValueExt || "No expression"))));
|
|
6895
|
-
default:
|
|
6896
|
-
return children(controlProps);
|
|
6897
|
-
}
|
|
5147
|
+
}
|
|
5148
|
+
var allowedTypes = content.split("|").map(function(t) {
|
|
5149
|
+
return t.trim();
|
|
5150
|
+
}).filter(Boolean);
|
|
5151
|
+
return {
|
|
5152
|
+
mode: "publish",
|
|
5153
|
+
allowedTypes: allowedTypes
|
|
6898
5154
|
};
|
|
6899
|
-
return /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null, /* @__PURE__ */ React4__default.createElement("div", {
|
|
6900
|
-
className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
|
|
6901
|
-
}, /* @__PURE__ */ React4__default.createElement("label", {
|
|
6902
|
-
className: "uii:text-xs uii:text-muted-foreground uii:font-bold",
|
|
6903
|
-
htmlFor: fieldName
|
|
6904
|
-
}, label, ":"), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6905
|
-
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:text-muted-foreground uii:font-light"
|
|
6906
|
-
}, type), hasTypeMismatch || inferredReturnType === "error" ? /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null, expressionMode.current === "expression" ? /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null, /* @__PURE__ */ React4__default.createElement("span", {
|
|
6907
|
-
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:text-muted-foreground uii:font-light"
|
|
6908
|
-
}, expressionMode.expression.trim() !== "" ? inferredReturnType : "empty"), /* @__PURE__ */ React4__default.createElement("span", {
|
|
6909
|
-
className: "uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:bg-gray-200 uii:rounded-sm uii:text-[10px] uii:font-mono uii:font-light uii:text-orange-600 "
|
|
6910
|
-
}, "\u26A0\uFE0F Expected: ", type || expectedType)) : /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null)) : /* @__PURE__ */ React4__default.createElement(React4__default.Fragment, null)), renderContent());
|
|
6911
5155
|
}
|
|
6912
|
-
|
|
6913
|
-
|
|
6914
|
-
|
|
6915
|
-
|
|
6916
|
-
|
|
6917
|
-
]);
|
|
6918
|
-
var _props_label, _props_key, _props_name;
|
|
6919
|
-
return /* @__PURE__ */ React4.createElement(ExpressionWrapper, {
|
|
6920
|
-
label: (_props_label = props.label) !== null && _props_label !== void 0 ? _props_label : "Test Entry",
|
|
6921
|
-
key: (_props_key = props.key) !== null && _props_key !== void 0 ? _props_key : props.name,
|
|
6922
|
-
type: expectedType !== null && expectedType !== void 0 ? expectedType : "string",
|
|
6923
|
-
valuesLoading: false,
|
|
6924
|
-
value: props.value,
|
|
6925
|
-
onValueChange: function(val, metadata) {
|
|
6926
|
-
props.onChange && props.onChange(val);
|
|
5156
|
+
var OPERATORS_BY_TYPE = {
|
|
5157
|
+
string: [
|
|
5158
|
+
{
|
|
5159
|
+
value: "==",
|
|
5160
|
+
label: "equals (==)"
|
|
6927
5161
|
},
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
6933
|
-
|
|
6934
|
-
|
|
6935
|
-
|
|
6936
|
-
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
|
|
6941
|
-
|
|
6942
|
-
|
|
6943
|
-
}), /* @__PURE__ */ React4.createElement("div", {
|
|
6944
|
-
className: "uii:flex uii:bg-white uii:border-white/40 uii:border-l-8 uii:items-center uii:gap-1 uii:absolute uii:right-1.5 uii:top-2.5 uii:cursor-pointer uii:truncate",
|
|
6945
|
-
onClick: function() {
|
|
6946
|
-
return onExpressionClick();
|
|
6947
|
-
}
|
|
6948
|
-
}, /* @__PURE__ */ React4.createElement("span", {
|
|
6949
|
-
className: "uii:border-l uii:border-gray-200 uii:px-2"
|
|
6950
|
-
}, "Custom Expression")));
|
|
5162
|
+
{
|
|
5163
|
+
value: "!=",
|
|
5164
|
+
label: "not equals (!=)"
|
|
5165
|
+
},
|
|
5166
|
+
{
|
|
5167
|
+
value: "contains",
|
|
5168
|
+
label: "contains"
|
|
5169
|
+
},
|
|
5170
|
+
{
|
|
5171
|
+
value: "startsWith",
|
|
5172
|
+
label: "starts with"
|
|
5173
|
+
},
|
|
5174
|
+
{
|
|
5175
|
+
value: "endsWith",
|
|
5176
|
+
label: "ends with"
|
|
6951
5177
|
}
|
|
6952
|
-
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
}
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
6974
|
-
|
|
6975
|
-
|
|
6976
|
-
|
|
6977
|
-
|
|
6978
|
-
|
|
6979
|
-
|
|
6980
|
-
|
|
6981
|
-
|
|
6982
|
-
|
|
6983
|
-
|
|
6984
|
-
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
|
|
6993
|
-
|
|
5178
|
+
],
|
|
5179
|
+
number: [
|
|
5180
|
+
{
|
|
5181
|
+
value: "==",
|
|
5182
|
+
label: "equals (==)"
|
|
5183
|
+
},
|
|
5184
|
+
{
|
|
5185
|
+
value: "!=",
|
|
5186
|
+
label: "not equals (!=)"
|
|
5187
|
+
},
|
|
5188
|
+
{
|
|
5189
|
+
value: "<",
|
|
5190
|
+
label: "less than (<)"
|
|
5191
|
+
},
|
|
5192
|
+
{
|
|
5193
|
+
value: ">",
|
|
5194
|
+
label: "greater than (>)"
|
|
5195
|
+
},
|
|
5196
|
+
{
|
|
5197
|
+
value: "<=",
|
|
5198
|
+
label: "less than or equal (<=)"
|
|
5199
|
+
},
|
|
5200
|
+
{
|
|
5201
|
+
value: ">=",
|
|
5202
|
+
label: "greater than or equal (>=)"
|
|
5203
|
+
}
|
|
5204
|
+
],
|
|
5205
|
+
boolean: [
|
|
5206
|
+
{
|
|
5207
|
+
value: "==",
|
|
5208
|
+
label: "equals (==)"
|
|
5209
|
+
},
|
|
5210
|
+
{
|
|
5211
|
+
value: "!=",
|
|
5212
|
+
label: "not equals (!=)"
|
|
5213
|
+
}
|
|
5214
|
+
],
|
|
5215
|
+
any: [
|
|
5216
|
+
{
|
|
5217
|
+
value: "==",
|
|
5218
|
+
label: "equals (==)"
|
|
5219
|
+
},
|
|
5220
|
+
{
|
|
5221
|
+
value: "!=",
|
|
5222
|
+
label: "not equals (!=)"
|
|
5223
|
+
}
|
|
5224
|
+
]
|
|
6994
5225
|
};
|
|
6995
|
-
|
|
6996
|
-
var
|
|
6997
|
-
|
|
6998
|
-
|
|
6999
|
-
|
|
7000
|
-
|
|
7001
|
-
outline: "ui:border ui:border-input ui:bg-background ui:shadow-xs ui:hover:bg-accent ui:hover:text-accent-foreground",
|
|
7002
|
-
secondary: "ui:bg-secondary ui:text-secondary-foreground ui:shadow-xs ui:hover:bg-secondary/80",
|
|
7003
|
-
ghost: "ui:hover:bg-accent ui:hover:text-accent-foreground",
|
|
7004
|
-
link: "ui:text-primary ui:underline-offset-4 ui:hover:underline"
|
|
5226
|
+
function getOperatorsForType(type) {
|
|
5227
|
+
var _OPERATORS_BY_TYPE_type, _ref;
|
|
5228
|
+
return (_ref = (_OPERATORS_BY_TYPE_type = OPERATORS_BY_TYPE[type]) !== null && _OPERATORS_BY_TYPE_type !== void 0 ? _OPERATORS_BY_TYPE_type : OPERATORS_BY_TYPE.any) !== null && _ref !== void 0 ? _ref : [
|
|
5229
|
+
{
|
|
5230
|
+
value: "==",
|
|
5231
|
+
label: "equals (==)"
|
|
7005
5232
|
},
|
|
7006
|
-
|
|
7007
|
-
|
|
7008
|
-
|
|
7009
|
-
lg: "ui:h-10 ui:rounded-sm ui:px-6 ui:has-[>svg]:px-4",
|
|
7010
|
-
icon: "ui:size-9"
|
|
5233
|
+
{
|
|
5234
|
+
value: "!=",
|
|
5235
|
+
label: "not equals (!=)"
|
|
7011
5236
|
}
|
|
7012
|
-
|
|
7013
|
-
defaultVariants: {
|
|
7014
|
-
variant: "default",
|
|
7015
|
-
size: "default"
|
|
7016
|
-
}
|
|
7017
|
-
});
|
|
7018
|
-
function Button(_param) {
|
|
7019
|
-
var className = _param.className, variant = _param.variant, size = _param.size, _param_asChild = _param.asChild, asChild = _param_asChild === void 0 ? false : _param_asChild, props = _object_without_properties(_param, [
|
|
7020
|
-
"className",
|
|
7021
|
-
"variant",
|
|
7022
|
-
"size",
|
|
7023
|
-
"asChild"
|
|
7024
|
-
]);
|
|
7025
|
-
var Comp = asChild ? Slot : "button";
|
|
7026
|
-
return /* @__PURE__ */ React4.createElement(Comp, _object_spread({
|
|
7027
|
-
"data-slot": "button",
|
|
7028
|
-
className: cn(buttonVariants({
|
|
7029
|
-
variant: variant,
|
|
7030
|
-
size: size,
|
|
7031
|
-
className: className
|
|
7032
|
-
}))
|
|
7033
|
-
}, props));
|
|
5237
|
+
];
|
|
7034
5238
|
}
|
|
7035
|
-
export { Button,
|
|
5239
|
+
export { Button, buttonVariants, fields_exports as fields }; //# sourceMappingURL=index.js.map
|
|
7036
5240
|
//# sourceMappingURL=index.js.map
|