@process.co/ui 0.0.8 → 0.0.10

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/dist/index.cjs CHANGED
@@ -158,10 +158,11 @@ function _unsupported_iterable_to_array(o, minLen) {
158
158
  if (n === "Map" || n === "Set") return Array.from(n);
159
159
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
160
160
  }
161
- var React3 = require('react');
161
+ var React2 = require('react');
162
162
  var reactSlot = require('@radix-ui/react-slot');
163
163
  var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
164
164
  var lucideReact = require('lucide-react');
165
+ var SelectPrimitive = require('@radix-ui/react-select');
165
166
  function _interopNamespace(e) {
166
167
  if (e && e.__esModule) return e;
167
168
  var n = Object.create(null);
@@ -181,8 +182,9 @@ function _interopNamespace(e) {
181
182
  n.default = e;
182
183
  return Object.freeze(n);
183
184
  }
184
- var React3__namespace = /*#__PURE__*/ _interopNamespace(React3);
185
+ var React2__namespace = /*#__PURE__*/ _interopNamespace(React2);
185
186
  var DropdownMenuPrimitive__namespace = /*#__PURE__*/ _interopNamespace(DropdownMenuPrimitive);
187
+ var SelectPrimitive__namespace = /*#__PURE__*/ _interopNamespace(SelectPrimitive);
186
188
  var __defProp = Object.defineProperty;
187
189
  var __export = function(target, all) {
188
190
  for(var name in all)__defProp(target, name, {
@@ -4908,7 +4910,7 @@ function Button(_param) {
4908
4910
  "asChild"
4909
4911
  ]);
4910
4912
  var Comp = asChild ? reactSlot.Slot : "button";
4911
- return /* @__PURE__ */ React3__namespace.createElement(Comp, _object_spread({
4913
+ return /* @__PURE__ */ React2__namespace.createElement(Comp, _object_spread({
4912
4914
  "data-slot": "button",
4913
4915
  className: cn(buttonVariants({
4914
4916
  variant: variant,
@@ -4919,19 +4921,19 @@ function Button(_param) {
4919
4921
  }
4920
4922
  function DropdownMenu(_param) {
4921
4923
  var props = _extends({}, _object_destructuring_empty(_param));
4922
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Root, _object_spread({
4924
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Root, _object_spread({
4923
4925
  "data-slot": "dropdown-menu"
4924
4926
  }, props));
4925
4927
  }
4926
4928
  function DropdownMenuPortal(_param) {
4927
4929
  var props = _extends({}, _object_destructuring_empty(_param));
4928
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Portal, _object_spread({
4930
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Portal, _object_spread({
4929
4931
  "data-slot": "dropdown-menu-portal"
4930
4932
  }, props));
4931
4933
  }
4932
4934
  function DropdownMenuTrigger(_param) {
4933
4935
  var props = _extends({}, _object_destructuring_empty(_param));
4934
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Trigger, _object_spread({
4936
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Trigger, _object_spread({
4935
4937
  "data-slot": "dropdown-menu-trigger"
4936
4938
  }, props));
4937
4939
  }
@@ -4940,7 +4942,7 @@ function DropdownMenuContent(_param) {
4940
4942
  "className",
4941
4943
  "sideOffset"
4942
4944
  ]);
4943
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Portal, null, /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Content, _object_spread({
4945
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Portal, null, /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Content, _object_spread({
4944
4946
  "data-slot": "dropdown-menu-content",
4945
4947
  sideOffset: sideOffset,
4946
4948
  className: cn("uii:bg-popover uii:text-popover-foreground uii:data-[state=open]:animate-in uii:data-[state=closed]:animate-out uii:data-[state=closed]:fade-out-0 uii:data-[state=open]:fade-in-0 uii:data-[state=closed]:zoom-out-95 uii:data-[state=open]:zoom-in-95 uii:data-[side=bottom]:slide-in-from-top-2 uii:data-[side=left]:slide-in-from-right-2 uii:data-[side=right]:slide-in-from-left-2 uii:data-[side=top]:slide-in-from-bottom-2 uii:z-50 uii:min-w-[8rem] uii:overflow-hidden uii:rounded-md uii:border uii:p-1 uii:shadow-md", className)
@@ -4950,14 +4952,14 @@ function DropdownMenuClose(_param) {
4950
4952
  var className = _param.className, props = _object_without_properties(_param, [
4951
4953
  "className"
4952
4954
  ]);
4953
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Item, _object_spread({
4955
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Item, _object_spread({
4954
4956
  "data-slot": "dropdown-menu-close",
4955
4957
  className: "hidden"
4956
4958
  }, props));
4957
4959
  }
4958
4960
  function DropdownMenuGroup(_param) {
4959
4961
  var props = _extends({}, _object_destructuring_empty(_param));
4960
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Group, _object_spread({
4962
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Group, _object_spread({
4961
4963
  "data-slot": "dropdown-menu-group"
4962
4964
  }, props));
4963
4965
  }
@@ -4966,14 +4968,14 @@ function ConfirmationDropdownMenuItem(_param) {
4966
4968
  var originalOnClick = props.onClick, rest = _object_without_properties(props, [
4967
4969
  "onClick"
4968
4970
  ]);
4969
- var _React3__namespace_useState = _sliced_to_array(React3__namespace.useState(false), 2), isConfirming = _React3__namespace_useState[0], setIsConfirming = _React3__namespace_useState[1];
4970
- return !isConfirming ? /* @__PURE__ */ React3__namespace.createElement(DropdownMenuItem, _object_spread_props(_object_spread({}, rest), {
4971
+ var _React2__namespace_useState = _sliced_to_array(React2__namespace.useState(false), 2), isConfirming = _React2__namespace_useState[0], setIsConfirming = _React2__namespace_useState[1];
4972
+ return !isConfirming ? /* @__PURE__ */ React2__namespace.createElement(DropdownMenuItem, _object_spread_props(_object_spread({}, rest), {
4971
4973
  onClick: function(e) {
4972
4974
  setIsConfirming(true);
4973
4975
  e.preventDefault();
4974
4976
  e.stopPropagation();
4975
4977
  }
4976
- })) : /* @__PURE__ */ React3__namespace.createElement(DropdownMenuItem, _object_spread_props(_object_spread({}, rest), {
4978
+ })) : /* @__PURE__ */ React2__namespace.createElement(DropdownMenuItem, _object_spread_props(_object_spread({}, rest), {
4977
4979
  onClick: function(e) {
4978
4980
  if (originalOnClick) {
4979
4981
  setIsConfirming(false);
@@ -4982,9 +4984,9 @@ function ConfirmationDropdownMenuItem(_param) {
4982
4984
  e.stopPropagation();
4983
4985
  }
4984
4986
  }
4985
- }), /* @__PURE__ */ React3__namespace.createElement("div", {
4987
+ }), /* @__PURE__ */ React2__namespace.createElement("div", {
4986
4988
  className: "flex flex-row gap-2 items-center"
4987
- }, /* @__PURE__ */ React3__namespace.createElement("div", {
4989
+ }, /* @__PURE__ */ React2__namespace.createElement("div", {
4988
4990
  className: "text-destructive"
4989
4991
  }, "Are you sure ?")));
4990
4992
  }
@@ -4994,7 +4996,7 @@ function DropdownMenuItem(_param) {
4994
4996
  "inset",
4995
4997
  "variant"
4996
4998
  ]);
4997
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Item, _object_spread({
4999
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Item, _object_spread({
4998
5000
  "data-slot": "dropdown-menu-item",
4999
5001
  "data-inset": inset,
5000
5002
  "data-variant": variant,
@@ -5007,19 +5009,19 @@ function DropdownMenuCheckboxItem(_param) {
5007
5009
  "children",
5008
5010
  "checked"
5009
5011
  ]);
5010
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.CheckboxItem, _object_spread({
5012
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.CheckboxItem, _object_spread({
5011
5013
  "data-slot": "dropdown-menu-checkbox-item",
5012
5014
  className: cn("uii:focus:bg-accent uii:focus:text-accent-foreground uii:relative uii:flex uii:cursor-default uii:items-center uii:gap-2 uii:rounded-sm uii:py-1.5 uii:pr-2 uii:pl-8 uii:text-sm uii:outline-hidden uii:select-none uii:data-[disabled]:pointer-events-none uii:data-[disabled]:opacity-50 uii:[&_svg]:pointer-events-none uii:[&_svg]:shrink-0 uii:[&_svg:not([class*=size-])]:size-4", className),
5013
5015
  checked: checked
5014
- }, props), /* @__PURE__ */ React3__namespace.createElement("span", {
5016
+ }, props), /* @__PURE__ */ React2__namespace.createElement("span", {
5015
5017
  className: "uii:pointer-events-none uii:absolute uii:left-2 uii:flex uii:size-3.5 uii:items-center uii:justify-center"
5016
- }, /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.ItemIndicator, null, /* @__PURE__ */ React3__namespace.createElement(lucideReact.CheckIcon, {
5018
+ }, /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.ItemIndicator, null, /* @__PURE__ */ React2__namespace.createElement(lucideReact.CheckIcon, {
5017
5019
  className: "uii:size-4"
5018
5020
  }))), children);
5019
5021
  }
5020
5022
  function DropdownMenuRadioGroup(_param) {
5021
5023
  var props = _extends({}, _object_destructuring_empty(_param));
5022
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.RadioGroup, _object_spread({
5024
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.RadioGroup, _object_spread({
5023
5025
  "data-slot": "dropdown-menu-radio-group"
5024
5026
  }, props));
5025
5027
  }
@@ -5028,12 +5030,12 @@ function DropdownMenuRadioItem(_param) {
5028
5030
  "className",
5029
5031
  "children"
5030
5032
  ]);
5031
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.RadioItem, _object_spread({
5033
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.RadioItem, _object_spread({
5032
5034
  "data-slot": "dropdown-menu-radio-item",
5033
5035
  className: cn("uii:focus:bg-accent uii:focus:text-accent-foreground uii:relative uii:flex uii:cursor-default uii:items-center uii:gap-2 uii:rounded-sm uii:py-1.5 uii:pr-2 uii:pl-8 uii:text-sm uii:outline-hidden uii:select-none uii:data-[disabled]:pointer-events-none uii:data-[disabled]:opacity-50 uii:[&_svg]:pointer-events-none uii:[&_svg]:shrink-0 uii:[&_svg:not([class*=size-])]:size-4", className)
5034
- }, props), /* @__PURE__ */ React3__namespace.createElement("span", {
5036
+ }, props), /* @__PURE__ */ React2__namespace.createElement("span", {
5035
5037
  className: "uii:pointer-events-none uii:absolute uii:left-2 uii:flex uii:size-3.5 uii:items-center uii:justify-center"
5036
- }, /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.ItemIndicator, null, /* @__PURE__ */ React3__namespace.createElement(lucideReact.CircleIcon, {
5038
+ }, /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.ItemIndicator, null, /* @__PURE__ */ React2__namespace.createElement(lucideReact.CircleIcon, {
5037
5039
  className: "uii:size-2 uii:fill-current"
5038
5040
  }))), children);
5039
5041
  }
@@ -5042,7 +5044,7 @@ function DropdownMenuLabel(_param) {
5042
5044
  "className",
5043
5045
  "inset"
5044
5046
  ]);
5045
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Label, _object_spread({
5047
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Label, _object_spread({
5046
5048
  "data-slot": "dropdown-menu-label",
5047
5049
  "data-inset": inset,
5048
5050
  className: cn("uii:px-2 uii:py-1.5 uii:text-sm uii:font-medium uii:data-[inset]:pl-8", className)
@@ -5052,7 +5054,7 @@ function DropdownMenuSeparator(_param) {
5052
5054
  var className = _param.className, props = _object_without_properties(_param, [
5053
5055
  "className"
5054
5056
  ]);
5055
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Separator, _object_spread({
5057
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Separator, _object_spread({
5056
5058
  "data-slot": "dropdown-menu-separator",
5057
5059
  className: cn("uii:bg-border uii:-mx-1 uii:my-1 uii:h-px", className)
5058
5060
  }, props));
@@ -5061,14 +5063,14 @@ function DropdownMenuShortcut(_param) {
5061
5063
  var className = _param.className, props = _object_without_properties(_param, [
5062
5064
  "className"
5063
5065
  ]);
5064
- return /* @__PURE__ */ React3__namespace.createElement("span", _object_spread({
5066
+ return /* @__PURE__ */ React2__namespace.createElement("span", _object_spread({
5065
5067
  "data-slot": "dropdown-menu-shortcut",
5066
5068
  className: cn("uii:text-muted-foreground uii:ml-auto uii:text-xs uii:tracking-widest", className)
5067
5069
  }, props));
5068
5070
  }
5069
5071
  function DropdownMenuSub(_param) {
5070
5072
  var props = _extends({}, _object_destructuring_empty(_param));
5071
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.Sub, _object_spread({
5073
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.Sub, _object_spread({
5072
5074
  "data-slot": "dropdown-menu-sub"
5073
5075
  }, props));
5074
5076
  }
@@ -5078,11 +5080,11 @@ function DropdownMenuSubTrigger(_param) {
5078
5080
  "inset",
5079
5081
  "children"
5080
5082
  ]);
5081
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.SubTrigger, _object_spread({
5083
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.SubTrigger, _object_spread({
5082
5084
  "data-slot": "dropdown-menu-sub-trigger",
5083
5085
  "data-inset": inset,
5084
5086
  className: cn("uii:focus:bg-accent uii:focus:text-accent-foreground uii:data-[state=open]:bg-accent uii:data-[state=open]:text-accent-foreground uii:flex uii:cursor-default uii:items-center uii:rounded-sm uii:px-2 uii:py-1.5 uii:text-sm uii:outline-hidden uii:select-none uii:data-[inset]:pl-8", className)
5085
- }, props), children, /* @__PURE__ */ React3__namespace.createElement(lucideReact.ChevronRightIcon, {
5087
+ }, props), children, /* @__PURE__ */ React2__namespace.createElement(lucideReact.ChevronRightIcon, {
5086
5088
  className: "uii:ml-auto uii:size-4"
5087
5089
  }));
5088
5090
  }
@@ -5090,7 +5092,7 @@ function DropdownMenuSubContent(_param) {
5090
5092
  var className = _param.className, props = _object_without_properties(_param, [
5091
5093
  "className"
5092
5094
  ]);
5093
- return /* @__PURE__ */ React3__namespace.createElement(DropdownMenuPrimitive__namespace.SubContent, _object_spread({
5095
+ return /* @__PURE__ */ React2__namespace.createElement(DropdownMenuPrimitive__namespace.SubContent, _object_spread({
5094
5096
  "data-slot": "dropdown-menu-sub-content",
5095
5097
  className: cn("uii:bg-popover uii:text-popover-foreground uii:data-[state=open]:animate-in uii:data-[state=closed]:animate-out uii:data-[state=closed]:fade-out-0 uii:data-[state=open]:fade-in-0 uii:data-[state=closed]:zoom-out-95 uii:data-[state=open]:zoom-in-95 uii:data-[side=bottom]:slide-in-from-top-2 uii:data-[side=left]:slide-in-from-right-2 uii:data-[side=right]:slide-in-from-left-2 uii:data-[side=top]:slide-in-from-bottom-2 uii:z-50 uii:min-w-[8rem] uii:overflow-hidden uii:rounded-md uii:border uii:p-1 uii:shadow-lg", className)
5096
5098
  }, props));
@@ -5110,40 +5112,82 @@ __export(fields_exports, {
5110
5112
  NestedFieldProvider: function() {
5111
5113
  return NestedFieldProvider;
5112
5114
  },
5115
+ NodePropertyProvider: function() {
5116
+ return NodePropertyProvider;
5117
+ },
5113
5118
  OPERATORS_BY_TYPE: function() {
5114
5119
  return OPERATORS_BY_TYPE;
5115
5120
  },
5116
5121
  Select: function() {
5117
- return Select;
5122
+ return Select2;
5118
5123
  },
5119
5124
  TemplateFieldProvider: function() {
5120
5125
  return TemplateFieldProvider;
5121
5126
  },
5127
+ computeExtendedType: function() {
5128
+ return computeExtendedType;
5129
+ },
5130
+ filterOperatorsByType: function() {
5131
+ return filterOperatorsByType;
5132
+ },
5133
+ getNumberConstants: function() {
5134
+ return getNumberConstants;
5135
+ },
5122
5136
  getOperatorsForType: function() {
5123
5137
  return getOperatorsForType;
5124
5138
  },
5139
+ getStringConstants: function() {
5140
+ return getStringConstants;
5141
+ },
5125
5142
  intersectTypes: function() {
5126
5143
  return intersectTypes;
5127
5144
  },
5128
5145
  parseInferSyntax: function() {
5129
5146
  return parseInferSyntax;
5130
5147
  },
5148
+ parseInferredTypes: function() {
5149
+ return parseInferredTypes;
5150
+ },
5151
+ useAllInferredTypes: function() {
5152
+ return useAllInferredTypes;
5153
+ },
5131
5154
  useFieldPath: function() {
5132
5155
  return useFieldPath;
5133
5156
  },
5157
+ useFieldValidation: function() {
5158
+ return useFieldValidation;
5159
+ },
5160
+ useInferredType: function() {
5161
+ return useInferredType;
5162
+ },
5134
5163
  useInferredTypes: function() {
5135
5164
  return useInferredTypes;
5136
5165
  },
5166
+ useIsInNodePropertyProvider: function() {
5167
+ return useIsInNodePropertyProvider;
5168
+ },
5137
5169
  useIsInTemplateFieldProvider: function() {
5138
5170
  return useIsInTemplateFieldProvider;
5139
5171
  },
5172
+ useNodeProperties: function() {
5173
+ return useNodeProperties;
5174
+ },
5175
+ useNodeProperty: function() {
5176
+ return useNodeProperty;
5177
+ },
5178
+ useSetInferredType: function() {
5179
+ return useSetInferredType;
5180
+ },
5181
+ useSetProperty: function() {
5182
+ return useSetProperty;
5183
+ },
5140
5184
  useTemplateFieldContext: function() {
5141
5185
  return useTemplateFieldContext;
5142
5186
  }
5143
5187
  });
5144
5188
  function Input(param) {
5145
5189
  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;
5146
- var displayValue = React3__namespace.useMemo(function() {
5190
+ var displayValue = React2__namespace.useMemo(function() {
5147
5191
  if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
5148
5192
  return value.expression || "";
5149
5193
  }
@@ -5151,12 +5195,12 @@ function Input(param) {
5151
5195
  }, [
5152
5196
  value
5153
5197
  ]);
5154
- var isExpression = React3__namespace.useMemo(function() {
5198
+ var isExpression = React2__namespace.useMemo(function() {
5155
5199
  return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value;
5156
5200
  }, [
5157
5201
  value
5158
5202
  ]);
5159
- var handleChange = React3__namespace.useCallback(function(e) {
5203
+ var handleChange = React2__namespace.useCallback(function(e) {
5160
5204
  var newValue = e.target.value;
5161
5205
  if (newValue.includes("{{")) {
5162
5206
  onChange({
@@ -5170,20 +5214,20 @@ function Input(param) {
5170
5214
  onChange
5171
5215
  ]);
5172
5216
  var showError = hasRequiredError || required && !displayValue;
5173
- return /* @__PURE__ */ React3__namespace.createElement("div", {
5217
+ return /* @__PURE__ */ React2__namespace.createElement("div", {
5174
5218
  className: cn("uii:mb-2", className)
5175
- }, /* @__PURE__ */ React3__namespace.createElement("div", {
5219
+ }, /* @__PURE__ */ React2__namespace.createElement("div", {
5176
5220
  className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
5177
- }, /* @__PURE__ */ React3__namespace.createElement("label", {
5221
+ }, /* @__PURE__ */ React2__namespace.createElement("label", {
5178
5222
  htmlFor: fieldName,
5179
5223
  className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
5180
- }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React3__namespace.createElement("span", {
5224
+ }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React2__namespace.createElement("span", {
5181
5225
  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"
5182
- }, expectedType), showError && /* @__PURE__ */ React3__namespace.createElement("span", {
5226
+ }, expectedType), showError && /* @__PURE__ */ React2__namespace.createElement("span", {
5183
5227
  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"
5184
- }, "Required")), /* @__PURE__ */ React3__namespace.createElement("div", {
5228
+ }, "Required")), /* @__PURE__ */ React2__namespace.createElement("div", {
5185
5229
  className: "uii:mt-0.5"
5186
- }, /* @__PURE__ */ React3__namespace.createElement("input", {
5230
+ }, /* @__PURE__ */ React2__namespace.createElement("input", {
5187
5231
  id: fieldName,
5188
5232
  name: fieldName,
5189
5233
  type: "text",
@@ -5194,11 +5238,93 @@ function Input(param) {
5194
5238
  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)
5195
5239
  })));
5196
5240
  }
5197
- function Select(param) {
5241
+ function Select(_param) {
5242
+ var props = _extends({}, _object_destructuring_empty(_param));
5243
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Root, _object_spread({
5244
+ "data-slot": "select"
5245
+ }, props));
5246
+ }
5247
+ function SelectValue(_param) {
5248
+ var props = _extends({}, _object_destructuring_empty(_param));
5249
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Value, _object_spread({
5250
+ "data-slot": "select-value"
5251
+ }, props));
5252
+ }
5253
+ function SelectTrigger(_param) {
5254
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
5255
+ "className",
5256
+ "children"
5257
+ ]);
5258
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Trigger, _object_spread({
5259
+ "data-slot": "select-trigger",
5260
+ className: cn("uii:border-input uii:data-[placeholder]:text-muted-foreground uii:[&_svg:not([class*=text-])]:text-muted-foreground uii:focus-visible:border-ring uii:focus-visible:ring-ring/50 uii:aria-invalid:ring-destructive/20 uii:dark:aria-invalid:ring-destructive/40 uii:aria-invalid:border-destructive uii:flex uii:h-9 uii:w-full uii:items-center uii:justify-between uii:gap-2 uii:rounded-md uii:border uii:bg-transparent uii:px-3 uii:py-2 uii:text-sm uii:whitespace-nowrap uii:shadow-xs uii:transition-[color,box-shadow] uii:outline-none uii:focus-visible:ring-[3px] uii:disabled:cursor-not-allowed uii:disabled:opacity-50 uii:*:data-[slot=select-value]:line-clamp-1 uii:*:data-[slot=select-value]:flex uii:*:data-[slot=select-value]:items-center uii:*:data-[slot=select-value]:gap-2 uii:[&_svg]:pointer-events-none uii:[&_svg]:shrink-0 uii:[&_svg:not([class*=size-])]:size-4", className)
5261
+ }, props), children, /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Icon, {
5262
+ asChild: true
5263
+ }, /* @__PURE__ */ React2__namespace.createElement(lucideReact.ChevronDownIcon, {
5264
+ className: "uii:size-4 uii:opacity-50"
5265
+ })));
5266
+ }
5267
+ function SelectContent(_param) {
5268
+ var className = _param.className, children = _param.children, _param_position = _param.position, position = _param_position === void 0 ? "popper" : _param_position, footer = _param.footer, _param_hideScrollUpButton = _param.hideScrollUpButton, hideScrollUpButton = _param_hideScrollUpButton === void 0 ? false : _param_hideScrollUpButton, _param_hideScrollDownButton = _param.hideScrollDownButton, hideScrollDownButton = _param_hideScrollDownButton === void 0 ? false : _param_hideScrollDownButton, props = _object_without_properties(_param, [
5269
+ "className",
5270
+ "children",
5271
+ "position",
5272
+ "footer",
5273
+ "hideScrollUpButton",
5274
+ "hideScrollDownButton"
5275
+ ]);
5276
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Portal, null, /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Content, _object_spread({
5277
+ "data-slot": "select-content",
5278
+ className: cn("uii:bg-popover uii:text-popover-foreground uii:data-[state=open]:animate-in uii:data-[state=closed]:animate-out uii:data-[state=closed]:fade-out-0 uii:data-[state=open]:fade-in-0 uii:data-[state=closed]:zoom-out-95 uii:data-[state=open]:zoom-in-95 uii:data-[side=bottom]:slide-in-from-top-2 uii:data-[side=left]:slide-in-from-right-2 uii:data-[side=right]:slide-in-from-left-2 uii:data-[side=top]:slide-in-from-bottom-2 uii:relative uii:z-50 uii:max-h-96 uii:min-w-[8rem] uii:overflow-hidden uii:rounded-md uii:border uii:shadow-md", position === "popper" && "uii:data-[side=bottom]:translate-y-1 uii:data-[side=left]:-translate-x-1 uii:data-[side=right]:translate-x-1 uii:data-[side=top]:-translate-y-1", "uii:slide-in-from-right-6", className),
5279
+ position: position
5280
+ }, props), !hideScrollUpButton && /* @__PURE__ */ React2__namespace.createElement(SelectScrollUpButton, null), /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Viewport, {
5281
+ className: cn("uii:p-1", position === "popper" && "uii:h-[var(--radix-select-trigger-height)] uii:w-full uii:min-w-[var(--radix-select-trigger-width)] uii:scroll-my-1")
5282
+ }, children), footer ? /* @__PURE__ */ React2__namespace.createElement("div", {
5283
+ className: "uii:border-t uii:p-2 uii:bg-popover"
5284
+ }, footer) : null, !hideScrollDownButton && /* @__PURE__ */ React2__namespace.createElement(SelectScrollDownButton, null)));
5285
+ }
5286
+ function SelectItem(_param) {
5287
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
5288
+ "className",
5289
+ "children"
5290
+ ]);
5291
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.Item, _object_spread({
5292
+ "data-slot": "select-item",
5293
+ className: cn("uii:focus:bg-accent uii:focus:text-accent-foreground uii:[&_svg:not([class*=text-])]:text-muted-foreground uii:relative uii:flex uii:w-full uii:cursor-default uii:items-center uii:gap-2 uii:rounded-sm uii:py-1.5 uii:pr-8 uii:pl-2 uii:text-sm uii:outline-hidden uii:select-none uii:data-[disabled]:pointer-events-none uii:data-[disabled]:opacity-50 uii:[&_svg]:pointer-events-none uii:[&_svg]:shrink-0 uii:[&_svg:not([class*=size-])]:size-4 uii:*:[span]:last:flex uii:*:[span]:last:items-center uii:*:[span]:last:gap-2", className)
5294
+ }, props), /* @__PURE__ */ React2__namespace.createElement("span", {
5295
+ className: "uii:absolute uii:right-2 uii:flex uii:size-3.5 uii:items-center uii:justify-center"
5296
+ }, /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.ItemIndicator, null, /* @__PURE__ */ React2__namespace.createElement(lucideReact.CheckIcon, {
5297
+ className: "uii:size-4"
5298
+ }))), /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.ItemText, null, children));
5299
+ }
5300
+ function SelectScrollUpButton(_param) {
5301
+ var className = _param.className, props = _object_without_properties(_param, [
5302
+ "className"
5303
+ ]);
5304
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.ScrollUpButton, _object_spread({
5305
+ "data-slot": "select-scroll-up-button",
5306
+ className: cn("uii:flex uii:cursor-default uii:items-center uii:justify-center uii:py-1", className)
5307
+ }, props), /* @__PURE__ */ React2__namespace.createElement(lucideReact.ChevronUpIcon, {
5308
+ className: "uii:size-4"
5309
+ }));
5310
+ }
5311
+ function SelectScrollDownButton(_param) {
5312
+ var className = _param.className, props = _object_without_properties(_param, [
5313
+ "className"
5314
+ ]);
5315
+ return /* @__PURE__ */ React2__namespace.createElement(SelectPrimitive__namespace.ScrollDownButton, _object_spread({
5316
+ "data-slot": "select-scroll-down-button",
5317
+ className: cn("uii:flex uii:cursor-default uii:items-center uii:justify-center uii:py-1", className)
5318
+ }, props), /* @__PURE__ */ React2__namespace.createElement(lucideReact.ChevronDownIcon, {
5319
+ className: "uii:size-4"
5320
+ }));
5321
+ }
5322
+ // src/components/fields/Select.tsx
5323
+ function Select2(param) {
5198
5324
  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;
5199
- var _React3__namespace_useState = _sliced_to_array(React3__namespace.useState(false), 2), isExpressionMode = _React3__namespace_useState[0], setIsExpressionMode = _React3__namespace_useState[1];
5200
- var _React3__namespace_useState1 = _sliced_to_array(React3__namespace.useState(""), 2), expressionValue = _React3__namespace_useState1[0], setExpressionValue = _React3__namespace_useState1[1];
5201
- var options = React3__namespace.useMemo(function() {
5325
+ var _React2__namespace_useState = _sliced_to_array(React2__namespace.useState(false), 2), isExpressionMode = _React2__namespace_useState[0], setIsExpressionMode = _React2__namespace_useState[1];
5326
+ var _React2__namespace_useState1 = _sliced_to_array(React2__namespace.useState(""), 2), expressionValue = _React2__namespace_useState1[0], setExpressionValue = _React2__namespace_useState1[1];
5327
+ var options = React2__namespace.useMemo(function() {
5202
5328
  return rawOptions.map(function(opt) {
5203
5329
  return typeof opt === "string" ? {
5204
5330
  value: opt,
@@ -5208,7 +5334,7 @@ function Select(param) {
5208
5334
  }, [
5209
5335
  rawOptions
5210
5336
  ]);
5211
- var displayValue = React3__namespace.useMemo(function() {
5337
+ var displayValue = React2__namespace.useMemo(function() {
5212
5338
  if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
5213
5339
  return value.expression || "";
5214
5340
  }
@@ -5216,12 +5342,12 @@ function Select(param) {
5216
5342
  }, [
5217
5343
  value
5218
5344
  ]);
5219
- var isExpression = React3__namespace.useMemo(function() {
5345
+ var isExpression = React2__namespace.useMemo(function() {
5220
5346
  return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value;
5221
5347
  }, [
5222
5348
  value
5223
5349
  ]);
5224
- React3__namespace.useEffect(function() {
5350
+ React2__namespace.useEffect(function() {
5225
5351
  if (isExpression) {
5226
5352
  setIsExpressionMode(true);
5227
5353
  setExpressionValue(displayValue);
@@ -5230,7 +5356,7 @@ function Select(param) {
5230
5356
  isExpression,
5231
5357
  displayValue
5232
5358
  ]);
5233
- var handleSelectChange = React3__namespace.useCallback(function(newValue) {
5359
+ var handleSelectChange = React2__namespace.useCallback(function(newValue) {
5234
5360
  if (newValue === "__expression__") {
5235
5361
  setIsExpressionMode(true);
5236
5362
  return;
@@ -5239,7 +5365,7 @@ function Select(param) {
5239
5365
  }, [
5240
5366
  onChange
5241
5367
  ]);
5242
- var handleExpressionChange = React3__namespace.useCallback(function(e) {
5368
+ var handleExpressionChange = React2__namespace.useCallback(function(e) {
5243
5369
  var newValue = e.target.value;
5244
5370
  setExpressionValue(newValue);
5245
5371
  onChange({
@@ -5249,7 +5375,7 @@ function Select(param) {
5249
5375
  }, [
5250
5376
  onChange
5251
5377
  ]);
5252
- var handleSwitchToValue = React3__namespace.useCallback(function() {
5378
+ var handleSwitchToValue = React2__namespace.useCallback(function() {
5253
5379
  setIsExpressionMode(false);
5254
5380
  setExpressionValue("");
5255
5381
  onChange("");
@@ -5284,24 +5410,24 @@ function Select(param) {
5284
5410
  },
5285
5411
  hasError: showError
5286
5412
  };
5287
- return /* @__PURE__ */ React3__namespace.createElement("div", {
5413
+ return /* @__PURE__ */ React2__namespace.createElement("div", {
5288
5414
  className: cn("uii:mb-2", className)
5289
- }, /* @__PURE__ */ React3__namespace.createElement("div", {
5415
+ }, /* @__PURE__ */ React2__namespace.createElement("div", {
5290
5416
  className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
5291
- }, /* @__PURE__ */ React3__namespace.createElement("label", {
5417
+ }, /* @__PURE__ */ React2__namespace.createElement("label", {
5292
5418
  htmlFor: fieldName,
5293
5419
  className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
5294
- }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React3__namespace.createElement("span", {
5420
+ }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React2__namespace.createElement("span", {
5295
5421
  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"
5296
- }, expectedType), showError && /* @__PURE__ */ React3__namespace.createElement("span", {
5422
+ }, expectedType), showError && /* @__PURE__ */ React2__namespace.createElement("span", {
5297
5423
  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"
5298
- }, "Required")), /* @__PURE__ */ React3__namespace.createElement("div", {
5424
+ }, "Required")), /* @__PURE__ */ React2__namespace.createElement("div", {
5299
5425
  className: "uii:mt-0.5"
5300
5426
  }, children ? // Use custom render function
5301
5427
  children(renderProps) : isExpressionMode ? // Expression mode - show input with clear button
5302
- /* @__PURE__ */ React3__namespace.createElement("div", {
5428
+ /* @__PURE__ */ React2__namespace.createElement("div", {
5303
5429
  className: "uii:flex uii:items-center uii:h-9 uii:rounded-sm uii:border uii:border-amber-500/50 uii:bg-amber-500/5"
5304
- }, /* @__PURE__ */ React3__namespace.createElement("input", {
5430
+ }, /* @__PURE__ */ React2__namespace.createElement("input", {
5305
5431
  id: fieldName,
5306
5432
  name: fieldName,
5307
5433
  type: "text",
@@ -5310,32 +5436,183 @@ function Select(param) {
5310
5436
  disabled: disabled,
5311
5437
  placeholder: "Enter expression...",
5312
5438
  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")
5313
- }), /* @__PURE__ */ React3__namespace.createElement("button", {
5439
+ }), /* @__PURE__ */ React2__namespace.createElement("button", {
5314
5440
  type: "button",
5315
5441
  onClick: handleSwitchToValue,
5316
5442
  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",
5317
5443
  title: "Clear and return to value mode"
5318
5444
  }, "\xD7")) : // Value mode - show select
5319
- /* @__PURE__ */ React3__namespace.createElement("select", {
5320
- id: fieldName,
5321
- name: fieldName,
5445
+ // <select
5446
+ // id={fieldName}
5447
+ // name={fieldName}
5448
+ // value={displayValue}
5449
+ // onChange={(e) => handleSelectChange(e.target.value)}
5450
+ // disabled={disabled}
5451
+ // className={cn(
5452
+ // 'uii:w-full uii:h-9 uii:px-3 uii:rounded-sm uii:border uii:bg-background uii:text-sm',
5453
+ // 'uii:outline-none uii:transition-all uii:cursor-pointer',
5454
+ // 'focus:uii:border-ring focus:uii:ring-ring/50 focus:uii:ring-[3px]',
5455
+ // showError
5456
+ // ? 'uii:border-red-500 hover:uii:border-red-600'
5457
+ // : 'uii:border-input hover:uii:border-ring/50',
5458
+ // disabled && 'uii:opacity-50 uii:cursor-not-allowed'
5459
+ // )}
5460
+ // >
5461
+ // {placeholder && (
5462
+ // <option value="" disabled>
5463
+ // {placeholder}
5464
+ // </option>
5465
+ // )}
5466
+ // {options.map(opt => (
5467
+ // <option key={opt.value} value={opt.value}>
5468
+ // {opt.label}
5469
+ // </option>
5470
+ // ))}
5471
+ // <option value="__expression__">
5472
+ // 📝 Custom Expression
5473
+ // </option>
5474
+ // </select>
5475
+ /* @__PURE__ */ React2__namespace.createElement(Select, {
5322
5476
  value: displayValue,
5323
- onChange: function(e) {
5324
- return handleSelectChange(e.target.value);
5477
+ onValueChange: function(e) {
5478
+ return handleSelectChange(e);
5325
5479
  },
5326
- disabled: disabled,
5327
- 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")
5328
- }, placeholder && /* @__PURE__ */ React3__namespace.createElement("option", {
5329
- value: "",
5330
- disabled: true
5331
- }, placeholder), options.map(function(opt) {
5332
- return /* @__PURE__ */ React3__namespace.createElement("option", {
5480
+ disabled: disabled !== null && disabled !== void 0 ? disabled : disabled
5481
+ }, /* @__PURE__ */ React2__namespace.createElement(SelectTrigger, {
5482
+ className: "ui:w-full ui:h-9 ui:px-3 ui:border ui:border-input ui:rounded-sm ui:bg-background"
5483
+ }, /* @__PURE__ */ React2__namespace.createElement(SelectValue, {
5484
+ placeholder: placeholder
5485
+ })), /* @__PURE__ */ React2__namespace.createElement(SelectContent, null, options.map(function(opt) {
5486
+ return /* @__PURE__ */ React2__namespace.createElement(SelectItem, {
5333
5487
  key: opt.value,
5334
5488
  value: opt.value
5335
- }, opt.label);
5336
- }), /* @__PURE__ */ React3__namespace.createElement("option", {
5337
- value: "__expression__"
5338
- }, "\uD83D\uDCDD Custom Expression"))));
5489
+ }, opt.node ? opt.node : /* @__PURE__ */ React2__namespace.createElement(React2__namespace.Fragment, null, opt.label));
5490
+ })))));
5491
+ }
5492
+ // src/components/template-editor/operatorTypes.ts
5493
+ function parseInferredTypes(typeStr) {
5494
+ var result = {
5495
+ baseTypes: [],
5496
+ stringConstants: [],
5497
+ numberConstants: [],
5498
+ hasConstants: false,
5499
+ rawTypes: []
5500
+ };
5501
+ if (!typeStr || typeStr === "any" || typeStr === "unknown") {
5502
+ result.baseTypes = [
5503
+ "any"
5504
+ ];
5505
+ result.rawTypes = [
5506
+ "any"
5507
+ ];
5508
+ return result;
5509
+ }
5510
+ var types = typeStr.split("|").map(function(t) {
5511
+ return t.trim();
5512
+ }).filter(Boolean);
5513
+ var baseTypesSet = /* @__PURE__ */ new Set();
5514
+ var rawTypesSet = /* @__PURE__ */ new Set();
5515
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5516
+ try {
5517
+ for(var _iterator = types[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5518
+ var t = _step.value;
5519
+ rawTypesSet.add(t);
5520
+ var stringLiteralMatch = t.match(/^["'](.*)["']$/);
5521
+ if (stringLiteralMatch && stringLiteralMatch[1] !== void 0) {
5522
+ result.stringConstants.push(stringLiteralMatch[1]);
5523
+ baseTypesSet.add("string");
5524
+ result.hasConstants = true;
5525
+ continue;
5526
+ }
5527
+ if (/^-?\d+(\.\d+)?$/.test(t)) {
5528
+ result.numberConstants.push(parseFloat(t));
5529
+ baseTypesSet.add("number");
5530
+ result.hasConstants = true;
5531
+ continue;
5532
+ }
5533
+ if (t === "true" || t === "false") {
5534
+ baseTypesSet.add("boolean");
5535
+ result.hasConstants = true;
5536
+ continue;
5537
+ }
5538
+ baseTypesSet.add(t);
5539
+ }
5540
+ } catch (err) {
5541
+ _didIteratorError = true;
5542
+ _iteratorError = err;
5543
+ } finally{
5544
+ try {
5545
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
5546
+ _iterator.return();
5547
+ }
5548
+ } finally{
5549
+ if (_didIteratorError) {
5550
+ throw _iteratorError;
5551
+ }
5552
+ }
5553
+ }
5554
+ result.baseTypes = Array.from(baseTypesSet);
5555
+ result.rawTypes = Array.from(rawTypesSet);
5556
+ return result;
5557
+ }
5558
+ function computeExtendedType(inferredType, opDef) {
5559
+ if (!opDef.extendsWithBase || opDef.narrowsTo === "never") {
5560
+ return opDef.narrowsTo;
5561
+ }
5562
+ var parsed = parseInferredTypes(inferredType);
5563
+ var matchingTypes = [];
5564
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5565
+ try {
5566
+ for(var _iterator = parsed.rawTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5567
+ var t = _step.value;
5568
+ if (opDef.narrowsTo === "string") {
5569
+ if (t === "string" || /^["'].*["']$/.test(t)) {
5570
+ matchingTypes.push(t);
5571
+ }
5572
+ } else if (opDef.narrowsTo === "number") {
5573
+ if (t === "number" || /^-?\d+(\.\d+)?$/.test(t)) {
5574
+ matchingTypes.push(t);
5575
+ }
5576
+ } else if (opDef.narrowsTo === "boolean") {
5577
+ if (t === "boolean" || t === "true" || t === "false") {
5578
+ matchingTypes.push(t);
5579
+ }
5580
+ }
5581
+ }
5582
+ } catch (err) {
5583
+ _didIteratorError = true;
5584
+ _iteratorError = err;
5585
+ } finally{
5586
+ try {
5587
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
5588
+ _iterator.return();
5589
+ }
5590
+ } finally{
5591
+ if (_didIteratorError) {
5592
+ throw _iteratorError;
5593
+ }
5594
+ }
5595
+ }
5596
+ if (opDef.extendsWithBase && !matchingTypes.includes(opDef.narrowsTo)) {
5597
+ matchingTypes.push(opDef.narrowsTo);
5598
+ }
5599
+ return matchingTypes.length > 0 ? matchingTypes.join(" | ") : opDef.narrowsTo;
5600
+ }
5601
+ function filterOperatorsByType(operators, inferredType) {
5602
+ var parsed = parseInferredTypes(inferredType);
5603
+ var baseTypes = parsed.baseTypes;
5604
+ return operators.filter(function(op) {
5605
+ if (op.types.includes("any")) return true;
5606
+ return op.types.some(function(t) {
5607
+ return baseTypes.includes(t) || baseTypes.includes("any");
5608
+ });
5609
+ });
5610
+ }
5611
+ function getStringConstants(inferredType) {
5612
+ return parseInferredTypes(inferredType).stringConstants;
5613
+ }
5614
+ function getNumberConstants(inferredType) {
5615
+ return parseInferredTypes(inferredType).numberConstants;
5339
5616
  }
5340
5617
  // src/components/fields/index.tsx
5341
5618
  function useTemplateFieldContext() {
@@ -5364,19 +5641,19 @@ function useFieldPath(fieldName) {
5364
5641
  }
5365
5642
  function TemplateFieldProvider(param) {
5366
5643
  var children = param.children;
5367
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
5644
+ return /* @__PURE__ */ React2__namespace.default.createElement(React2__namespace.default.Fragment, null, children);
5368
5645
  }
5369
5646
  function NestedFieldProvider(param) {
5370
5647
  var children = param.children;
5371
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
5648
+ return /* @__PURE__ */ React2__namespace.default.createElement(React2__namespace.default.Fragment, null, children);
5372
5649
  }
5373
- var InferredTypesContext = React3.createContext(null);
5650
+ var InferredTypesContext = React2.createContext(null);
5374
5651
  function useInferredTypes() {
5375
- return React3.useContext(InferredTypesContext);
5652
+ return React2.useContext(InferredTypesContext);
5376
5653
  }
5377
5654
  function InferredTypesProvider(param) {
5378
5655
  var children = param.children;
5379
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
5656
+ return /* @__PURE__ */ React2__namespace.default.createElement(React2__namespace.default.Fragment, null, children);
5380
5657
  }
5381
5658
  function intersectTypes(types) {
5382
5659
  var validTypes = types.filter(function(t) {
@@ -5497,6 +5774,77 @@ function getOperatorsForType(type) {
5497
5774
  }
5498
5775
  ];
5499
5776
  }
5777
+ function NodePropertyProvider(param) {
5778
+ var children = param.children;
5779
+ return /* @__PURE__ */ React2__namespace.default.createElement(React2__namespace.default.Fragment, null, children);
5780
+ }
5781
+ function useIsInNodePropertyProvider() {
5782
+ return false;
5783
+ }
5784
+ function useNodeProperty(key) {
5785
+ var noopSetter = React2.useCallback(function() {
5786
+ console.warn('[useNodeProperty] Mock mode - cannot set "'.concat(key, '"'));
5787
+ }, [
5788
+ key
5789
+ ]);
5790
+ return [
5791
+ void 0,
5792
+ noopSetter
5793
+ ];
5794
+ }
5795
+ function useNodeProperties() {
5796
+ var noopSetter = React2.useCallback(function() {
5797
+ console.warn("[useNodeProperties] Mock mode - cannot set properties");
5798
+ }, []);
5799
+ return [
5800
+ {},
5801
+ noopSetter
5802
+ ];
5803
+ }
5804
+ function useInferredType(fieldName) {
5805
+ return void 0;
5806
+ }
5807
+ function useSetInferredType() {
5808
+ return React2.useCallback(function(fieldName, type) {
5809
+ console.warn('[useSetInferredType] Mock mode - cannot set "'.concat(fieldName, '" to "').concat(type, '"'));
5810
+ }, []);
5811
+ }
5812
+ function useAllInferredTypes() {
5813
+ return {};
5814
+ }
5815
+ function useSetProperty() {
5816
+ return React2.useCallback(function(key, value) {
5817
+ console.warn('[useSetProperty] Mock mode - cannot set "'.concat(key, '"'));
5818
+ }, []);
5819
+ }
5820
+ function useFieldValidation() {
5821
+ var setFieldRequired = React2.useCallback(function(fieldName, required) {
5822
+ console.warn('[useFieldValidation] Mock mode - cannot set required for "'.concat(fieldName, '"'));
5823
+ }, []);
5824
+ var setFieldRequiredIf = React2.useCallback(function(fieldName, requiredIf) {
5825
+ console.warn('[useFieldValidation] Mock mode - cannot set requiredIf for "'.concat(fieldName, '"'));
5826
+ }, []);
5827
+ var setFieldValidation = React2.useCallback(function(fieldName, customValidation) {
5828
+ console.warn('[useFieldValidation] Mock mode - cannot set validation for "'.concat(fieldName, '"'));
5829
+ }, []);
5830
+ var clearFieldValidation = React2.useCallback(function(fieldName) {
5831
+ console.warn('[useFieldValidation] Mock mode - cannot clear validation for "'.concat(fieldName, '"'));
5832
+ }, []);
5833
+ var isFieldRequired = React2.useCallback(function(fieldName) {
5834
+ return false;
5835
+ }, []);
5836
+ var validateField = React2.useCallback(function(fieldName) {
5837
+ return null;
5838
+ }, []);
5839
+ return {
5840
+ setFieldRequired: setFieldRequired,
5841
+ setFieldRequiredIf: setFieldRequiredIf,
5842
+ setFieldValidation: setFieldValidation,
5843
+ clearFieldValidation: clearFieldValidation,
5844
+ isFieldRequired: isFieldRequired,
5845
+ validateField: validateField
5846
+ };
5847
+ }
5500
5848
  exports.Button = Button;
5501
5849
  exports.ConfirmationDropdownMenuItem = ConfirmationDropdownMenuItem;
5502
5850
  exports.DropdownMenu = DropdownMenu;