@process.co/ui 0.0.6 → 0.0.8

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.js CHANGED
@@ -22,6 +22,20 @@ function _define_property(obj, key, value) {
22
22
  }
23
23
  return obj;
24
24
  }
25
+ function _extends() {
26
+ _extends = Object.assign || function(target) {
27
+ for(var i = 1; i < arguments.length; i++){
28
+ var source = arguments[i];
29
+ for(var key in source){
30
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
31
+ target[key] = source[key];
32
+ }
33
+ }
34
+ }
35
+ return target;
36
+ };
37
+ return _extends.apply(this, arguments);
38
+ }
25
39
  function _iterable_to_array(iter) {
26
40
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
41
  }
@@ -55,6 +69,10 @@ function _non_iterable_rest() {
55
69
  function _non_iterable_spread() {
56
70
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
57
71
  }
72
+ function _object_destructuring_empty(o) {
73
+ if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
74
+ return o;
75
+ }
58
76
  function _object_spread(target) {
59
77
  for(var i = 1; i < arguments.length; i++){
60
78
  var source = arguments[i] != null ? arguments[i] : {};
@@ -70,6 +88,30 @@ function _object_spread(target) {
70
88
  }
71
89
  return target;
72
90
  }
91
+ function ownKeys(object, enumerableOnly) {
92
+ var keys = Object.keys(object);
93
+ if (Object.getOwnPropertySymbols) {
94
+ var symbols = Object.getOwnPropertySymbols(object);
95
+ if (enumerableOnly) {
96
+ symbols = symbols.filter(function(sym) {
97
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
98
+ });
99
+ }
100
+ keys.push.apply(keys, symbols);
101
+ }
102
+ return keys;
103
+ }
104
+ function _object_spread_props(target, source) {
105
+ source = source != null ? source : {};
106
+ if (Object.getOwnPropertyDescriptors) {
107
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
108
+ } else {
109
+ ownKeys(Object(source)).forEach(function(key) {
110
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
111
+ });
112
+ }
113
+ return target;
114
+ }
73
115
  function _object_without_properties(source, excluded) {
74
116
  if (source == null) return {};
75
117
  var target = _object_without_properties_loose(source, excluded);
@@ -115,8 +157,11 @@ function _unsupported_iterable_to_array(o, minLen) {
115
157
  if (n === "Map" || n === "Set") return Array.from(n);
116
158
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
117
159
  }
118
- import * as React4 from 'react';
160
+ import * as React3 from 'react';
161
+ import { createContext, useContext } from 'react';
119
162
  import { Slot } from '@radix-ui/react-slot';
163
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
164
+ import { CheckIcon, CircleIcon, ChevronRightIcon } from 'lucide-react';
120
165
  var __defProp = Object.defineProperty;
121
166
  var __export = function(target, all) {
122
167
  for(var name in all)__defProp(target, name, {
@@ -4842,7 +4887,7 @@ function Button(_param) {
4842
4887
  "asChild"
4843
4888
  ]);
4844
4889
  var Comp = asChild ? Slot : "button";
4845
- return /* @__PURE__ */ React4.createElement(Comp, _object_spread({
4890
+ return /* @__PURE__ */ React3.createElement(Comp, _object_spread({
4846
4891
  "data-slot": "button",
4847
4892
  className: cn(buttonVariants({
4848
4893
  variant: variant,
@@ -4851,24 +4896,223 @@ function Button(_param) {
4851
4896
  }))
4852
4897
  }, props));
4853
4898
  }
4899
+ function DropdownMenu(_param) {
4900
+ var props = _extends({}, _object_destructuring_empty(_param));
4901
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Root, _object_spread({
4902
+ "data-slot": "dropdown-menu"
4903
+ }, props));
4904
+ }
4905
+ function DropdownMenuPortal(_param) {
4906
+ var props = _extends({}, _object_destructuring_empty(_param));
4907
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Portal, _object_spread({
4908
+ "data-slot": "dropdown-menu-portal"
4909
+ }, props));
4910
+ }
4911
+ function DropdownMenuTrigger(_param) {
4912
+ var props = _extends({}, _object_destructuring_empty(_param));
4913
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Trigger, _object_spread({
4914
+ "data-slot": "dropdown-menu-trigger"
4915
+ }, props));
4916
+ }
4917
+ function DropdownMenuContent(_param) {
4918
+ var className = _param.className, _param_sideOffset = _param.sideOffset, sideOffset = _param_sideOffset === void 0 ? 4 : _param_sideOffset, props = _object_without_properties(_param, [
4919
+ "className",
4920
+ "sideOffset"
4921
+ ]);
4922
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Portal, null, /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Content, _object_spread({
4923
+ "data-slot": "dropdown-menu-content",
4924
+ sideOffset: sideOffset,
4925
+ 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)
4926
+ }, props)));
4927
+ }
4928
+ function DropdownMenuClose(_param) {
4929
+ var className = _param.className, props = _object_without_properties(_param, [
4930
+ "className"
4931
+ ]);
4932
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Item, _object_spread({
4933
+ "data-slot": "dropdown-menu-close",
4934
+ className: "hidden"
4935
+ }, props));
4936
+ }
4937
+ function DropdownMenuGroup(_param) {
4938
+ var props = _extends({}, _object_destructuring_empty(_param));
4939
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Group, _object_spread({
4940
+ "data-slot": "dropdown-menu-group"
4941
+ }, props));
4942
+ }
4943
+ function ConfirmationDropdownMenuItem(_param) {
4944
+ var props = _extends({}, _object_destructuring_empty(_param));
4945
+ var originalOnClick = props.onClick, rest = _object_without_properties(props, [
4946
+ "onClick"
4947
+ ]);
4948
+ var _React3_useState = _sliced_to_array(React3.useState(false), 2), isConfirming = _React3_useState[0], setIsConfirming = _React3_useState[1];
4949
+ return !isConfirming ? /* @__PURE__ */ React3.createElement(DropdownMenuItem, _object_spread_props(_object_spread({}, rest), {
4950
+ onClick: function(e) {
4951
+ setIsConfirming(true);
4952
+ e.preventDefault();
4953
+ e.stopPropagation();
4954
+ }
4955
+ })) : /* @__PURE__ */ React3.createElement(DropdownMenuItem, _object_spread_props(_object_spread({}, rest), {
4956
+ onClick: function(e) {
4957
+ if (originalOnClick) {
4958
+ setIsConfirming(false);
4959
+ originalOnClick(e);
4960
+ e.preventDefault();
4961
+ e.stopPropagation();
4962
+ }
4963
+ }
4964
+ }), /* @__PURE__ */ React3.createElement("div", {
4965
+ className: "flex flex-row gap-2 items-center"
4966
+ }, /* @__PURE__ */ React3.createElement("div", {
4967
+ className: "text-destructive"
4968
+ }, "Are you sure ?")));
4969
+ }
4970
+ function DropdownMenuItem(_param) {
4971
+ var className = _param.className, inset = _param.inset, _param_variant = _param.variant, variant = _param_variant === void 0 ? "default" : _param_variant, props = _object_without_properties(_param, [
4972
+ "className",
4973
+ "inset",
4974
+ "variant"
4975
+ ]);
4976
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Item, _object_spread({
4977
+ "data-slot": "dropdown-menu-item",
4978
+ "data-inset": inset,
4979
+ "data-variant": variant,
4980
+ className: cn("uii:cursor-pointer uii:focus:bg-accent uii:focus:text-accent-foreground uii:data-[variant=destructive]:text-destructive-foreground uii:data-[variant=destructive]:focus:bg-destructive/10 uii:dark:data-[variant=destructive]:focus:bg-destructive/40 uii:data-[variant=destructive]:focus:text-destructive-foreground uii:data-[variant=destructive]:*:[svg]:!text-destructive-foreground uii:[&_svg:not([class*=text-])]:text-muted-foreground uii:relative uii:flex uii:cursor-default uii:items-center uii:gap-2 uii:rounded-sm uii:px-2 uii:py-1.5 uii:text-sm uii:outline-hidden uii:select-none uii:data-[disabled]:pointer-events-none uii:data-[disabled]:opacity-50 uii:data-[inset]:pl-8 uii:[&_svg]:pointer-events-none uii:[&_svg]:shrink-0 uii:[&_svg:not([class*=size-])]:size-4", className)
4981
+ }, props));
4982
+ }
4983
+ function DropdownMenuCheckboxItem(_param) {
4984
+ var className = _param.className, children = _param.children, checked = _param.checked, props = _object_without_properties(_param, [
4985
+ "className",
4986
+ "children",
4987
+ "checked"
4988
+ ]);
4989
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.CheckboxItem, _object_spread({
4990
+ "data-slot": "dropdown-menu-checkbox-item",
4991
+ 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),
4992
+ checked: checked
4993
+ }, props), /* @__PURE__ */ React3.createElement("span", {
4994
+ className: "uii:pointer-events-none uii:absolute uii:left-2 uii:flex uii:size-3.5 uii:items-center uii:justify-center"
4995
+ }, /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React3.createElement(CheckIcon, {
4996
+ className: "uii:size-4"
4997
+ }))), children);
4998
+ }
4999
+ function DropdownMenuRadioGroup(_param) {
5000
+ var props = _extends({}, _object_destructuring_empty(_param));
5001
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.RadioGroup, _object_spread({
5002
+ "data-slot": "dropdown-menu-radio-group"
5003
+ }, props));
5004
+ }
5005
+ function DropdownMenuRadioItem(_param) {
5006
+ var className = _param.className, children = _param.children, props = _object_without_properties(_param, [
5007
+ "className",
5008
+ "children"
5009
+ ]);
5010
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.RadioItem, _object_spread({
5011
+ "data-slot": "dropdown-menu-radio-item",
5012
+ 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
+ }, props), /* @__PURE__ */ React3.createElement("span", {
5014
+ className: "uii:pointer-events-none uii:absolute uii:left-2 uii:flex uii:size-3.5 uii:items-center uii:justify-center"
5015
+ }, /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React3.createElement(CircleIcon, {
5016
+ className: "uii:size-2 uii:fill-current"
5017
+ }))), children);
5018
+ }
5019
+ function DropdownMenuLabel(_param) {
5020
+ var className = _param.className, inset = _param.inset, props = _object_without_properties(_param, [
5021
+ "className",
5022
+ "inset"
5023
+ ]);
5024
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Label, _object_spread({
5025
+ "data-slot": "dropdown-menu-label",
5026
+ "data-inset": inset,
5027
+ className: cn("uii:px-2 uii:py-1.5 uii:text-sm uii:font-medium uii:data-[inset]:pl-8", className)
5028
+ }, props));
5029
+ }
5030
+ function DropdownMenuSeparator(_param) {
5031
+ var className = _param.className, props = _object_without_properties(_param, [
5032
+ "className"
5033
+ ]);
5034
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Separator, _object_spread({
5035
+ "data-slot": "dropdown-menu-separator",
5036
+ className: cn("uii:bg-border uii:-mx-1 uii:my-1 uii:h-px", className)
5037
+ }, props));
5038
+ }
5039
+ function DropdownMenuShortcut(_param) {
5040
+ var className = _param.className, props = _object_without_properties(_param, [
5041
+ "className"
5042
+ ]);
5043
+ return /* @__PURE__ */ React3.createElement("span", _object_spread({
5044
+ "data-slot": "dropdown-menu-shortcut",
5045
+ className: cn("uii:text-muted-foreground uii:ml-auto uii:text-xs uii:tracking-widest", className)
5046
+ }, props));
5047
+ }
5048
+ function DropdownMenuSub(_param) {
5049
+ var props = _extends({}, _object_destructuring_empty(_param));
5050
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.Sub, _object_spread({
5051
+ "data-slot": "dropdown-menu-sub"
5052
+ }, props));
5053
+ }
5054
+ function DropdownMenuSubTrigger(_param) {
5055
+ var className = _param.className, inset = _param.inset, children = _param.children, props = _object_without_properties(_param, [
5056
+ "className",
5057
+ "inset",
5058
+ "children"
5059
+ ]);
5060
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.SubTrigger, _object_spread({
5061
+ "data-slot": "dropdown-menu-sub-trigger",
5062
+ "data-inset": inset,
5063
+ 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)
5064
+ }, props), children, /* @__PURE__ */ React3.createElement(ChevronRightIcon, {
5065
+ className: "uii:ml-auto uii:size-4"
5066
+ }));
5067
+ }
5068
+ function DropdownMenuSubContent(_param) {
5069
+ var className = _param.className, props = _object_without_properties(_param, [
5070
+ "className"
5071
+ ]);
5072
+ return /* @__PURE__ */ React3.createElement(DropdownMenuPrimitive.SubContent, _object_spread({
5073
+ "data-slot": "dropdown-menu-sub-content",
5074
+ 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)
5075
+ }, props));
5076
+ }
4854
5077
  // src/components/fields/index.tsx
4855
5078
  var fields_exports = {};
4856
5079
  __export(fields_exports, {
5080
+ InferredTypesContext: function() {
5081
+ return InferredTypesContext;
5082
+ },
5083
+ InferredTypesProvider: function() {
5084
+ return InferredTypesProvider;
5085
+ },
4857
5086
  Input: function() {
4858
5087
  return Input;
4859
5088
  },
4860
5089
  NestedFieldProvider: function() {
4861
5090
  return NestedFieldProvider;
4862
5091
  },
5092
+ OPERATORS_BY_TYPE: function() {
5093
+ return OPERATORS_BY_TYPE;
5094
+ },
4863
5095
  Select: function() {
4864
5096
  return Select;
4865
5097
  },
4866
5098
  TemplateFieldProvider: function() {
4867
5099
  return TemplateFieldProvider;
4868
5100
  },
5101
+ getOperatorsForType: function() {
5102
+ return getOperatorsForType;
5103
+ },
5104
+ intersectTypes: function() {
5105
+ return intersectTypes;
5106
+ },
5107
+ parseInferSyntax: function() {
5108
+ return parseInferSyntax;
5109
+ },
4869
5110
  useFieldPath: function() {
4870
5111
  return useFieldPath;
4871
5112
  },
5113
+ useInferredTypes: function() {
5114
+ return useInferredTypes;
5115
+ },
4872
5116
  useIsInTemplateFieldProvider: function() {
4873
5117
  return useIsInTemplateFieldProvider;
4874
5118
  },
@@ -4878,7 +5122,7 @@ __export(fields_exports, {
4878
5122
  });
4879
5123
  function Input(param) {
4880
5124
  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;
4881
- var displayValue = React4.useMemo(function() {
5125
+ var displayValue = React3.useMemo(function() {
4882
5126
  if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
4883
5127
  return value.expression || "";
4884
5128
  }
@@ -4886,12 +5130,12 @@ function Input(param) {
4886
5130
  }, [
4887
5131
  value
4888
5132
  ]);
4889
- var isExpression = React4.useMemo(function() {
5133
+ var isExpression = React3.useMemo(function() {
4890
5134
  return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value;
4891
5135
  }, [
4892
5136
  value
4893
5137
  ]);
4894
- var handleChange = React4.useCallback(function(e) {
5138
+ var handleChange = React3.useCallback(function(e) {
4895
5139
  var newValue = e.target.value;
4896
5140
  if (newValue.includes("{{")) {
4897
5141
  onChange({
@@ -4905,20 +5149,20 @@ function Input(param) {
4905
5149
  onChange
4906
5150
  ]);
4907
5151
  var showError = hasRequiredError || required && !displayValue;
4908
- return /* @__PURE__ */ React4.createElement("div", {
5152
+ return /* @__PURE__ */ React3.createElement("div", {
4909
5153
  className: cn("uii:mb-2", className)
4910
- }, /* @__PURE__ */ React4.createElement("div", {
5154
+ }, /* @__PURE__ */ React3.createElement("div", {
4911
5155
  className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
4912
- }, /* @__PURE__ */ React4.createElement("label", {
5156
+ }, /* @__PURE__ */ React3.createElement("label", {
4913
5157
  htmlFor: fieldName,
4914
5158
  className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
4915
- }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React4.createElement("span", {
5159
+ }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React3.createElement("span", {
4916
5160
  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"
4917
- }, expectedType), showError && /* @__PURE__ */ React4.createElement("span", {
5161
+ }, expectedType), showError && /* @__PURE__ */ React3.createElement("span", {
4918
5162
  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"
4919
- }, "Required")), /* @__PURE__ */ React4.createElement("div", {
5163
+ }, "Required")), /* @__PURE__ */ React3.createElement("div", {
4920
5164
  className: "uii:mt-0.5"
4921
- }, /* @__PURE__ */ React4.createElement("input", {
5165
+ }, /* @__PURE__ */ React3.createElement("input", {
4922
5166
  id: fieldName,
4923
5167
  name: fieldName,
4924
5168
  type: "text",
@@ -4931,9 +5175,9 @@ function Input(param) {
4931
5175
  }
4932
5176
  function Select(param) {
4933
5177
  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;
4934
- var _React4_useState = _sliced_to_array(React4.useState(false), 2), isExpressionMode = _React4_useState[0], setIsExpressionMode = _React4_useState[1];
4935
- var _React4_useState1 = _sliced_to_array(React4.useState(""), 2), expressionValue = _React4_useState1[0], setExpressionValue = _React4_useState1[1];
4936
- var options = React4.useMemo(function() {
5178
+ var _React3_useState = _sliced_to_array(React3.useState(false), 2), isExpressionMode = _React3_useState[0], setIsExpressionMode = _React3_useState[1];
5179
+ var _React3_useState1 = _sliced_to_array(React3.useState(""), 2), expressionValue = _React3_useState1[0], setExpressionValue = _React3_useState1[1];
5180
+ var options = React3.useMemo(function() {
4937
5181
  return rawOptions.map(function(opt) {
4938
5182
  return typeof opt === "string" ? {
4939
5183
  value: opt,
@@ -4943,7 +5187,7 @@ function Select(param) {
4943
5187
  }, [
4944
5188
  rawOptions
4945
5189
  ]);
4946
- var displayValue = React4.useMemo(function() {
5190
+ var displayValue = React3.useMemo(function() {
4947
5191
  if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
4948
5192
  return value.expression || "";
4949
5193
  }
@@ -4951,12 +5195,12 @@ function Select(param) {
4951
5195
  }, [
4952
5196
  value
4953
5197
  ]);
4954
- var isExpression = React4.useMemo(function() {
5198
+ var isExpression = React3.useMemo(function() {
4955
5199
  return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value;
4956
5200
  }, [
4957
5201
  value
4958
5202
  ]);
4959
- React4.useEffect(function() {
5203
+ React3.useEffect(function() {
4960
5204
  if (isExpression) {
4961
5205
  setIsExpressionMode(true);
4962
5206
  setExpressionValue(displayValue);
@@ -4965,7 +5209,7 @@ function Select(param) {
4965
5209
  isExpression,
4966
5210
  displayValue
4967
5211
  ]);
4968
- var handleSelectChange = React4.useCallback(function(newValue) {
5212
+ var handleSelectChange = React3.useCallback(function(newValue) {
4969
5213
  if (newValue === "__expression__") {
4970
5214
  setIsExpressionMode(true);
4971
5215
  return;
@@ -4974,7 +5218,7 @@ function Select(param) {
4974
5218
  }, [
4975
5219
  onChange
4976
5220
  ]);
4977
- var handleExpressionChange = React4.useCallback(function(e) {
5221
+ var handleExpressionChange = React3.useCallback(function(e) {
4978
5222
  var newValue = e.target.value;
4979
5223
  setExpressionValue(newValue);
4980
5224
  onChange({
@@ -4984,7 +5228,7 @@ function Select(param) {
4984
5228
  }, [
4985
5229
  onChange
4986
5230
  ]);
4987
- var handleSwitchToValue = React4.useCallback(function() {
5231
+ var handleSwitchToValue = React3.useCallback(function() {
4988
5232
  setIsExpressionMode(false);
4989
5233
  setExpressionValue("");
4990
5234
  onChange("");
@@ -5019,24 +5263,24 @@ function Select(param) {
5019
5263
  },
5020
5264
  hasError: showError
5021
5265
  };
5022
- return /* @__PURE__ */ React4.createElement("div", {
5266
+ return /* @__PURE__ */ React3.createElement("div", {
5023
5267
  className: cn("uii:mb-2", className)
5024
- }, /* @__PURE__ */ React4.createElement("div", {
5268
+ }, /* @__PURE__ */ React3.createElement("div", {
5025
5269
  className: "uii:flex uii:items-center uii:gap-2 uii:mt-2"
5026
- }, /* @__PURE__ */ React4.createElement("label", {
5270
+ }, /* @__PURE__ */ React3.createElement("label", {
5027
5271
  htmlFor: fieldName,
5028
5272
  className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
5029
- }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React4.createElement("span", {
5273
+ }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React3.createElement("span", {
5030
5274
  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"
5031
- }, expectedType), showError && /* @__PURE__ */ React4.createElement("span", {
5275
+ }, expectedType), showError && /* @__PURE__ */ React3.createElement("span", {
5032
5276
  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"
5033
- }, "Required")), /* @__PURE__ */ React4.createElement("div", {
5277
+ }, "Required")), /* @__PURE__ */ React3.createElement("div", {
5034
5278
  className: "uii:mt-0.5"
5035
5279
  }, children ? // Use custom render function
5036
5280
  children(renderProps) : isExpressionMode ? // Expression mode - show input with clear button
5037
- /* @__PURE__ */ React4.createElement("div", {
5281
+ /* @__PURE__ */ React3.createElement("div", {
5038
5282
  className: "uii:flex uii:items-center uii:h-9 uii:rounded-sm uii:border uii:border-amber-500/50 uii:bg-amber-500/5"
5039
- }, /* @__PURE__ */ React4.createElement("input", {
5283
+ }, /* @__PURE__ */ React3.createElement("input", {
5040
5284
  id: fieldName,
5041
5285
  name: fieldName,
5042
5286
  type: "text",
@@ -5045,13 +5289,13 @@ function Select(param) {
5045
5289
  disabled: disabled,
5046
5290
  placeholder: "Enter expression...",
5047
5291
  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")
5048
- }), /* @__PURE__ */ React4.createElement("button", {
5292
+ }), /* @__PURE__ */ React3.createElement("button", {
5049
5293
  type: "button",
5050
5294
  onClick: handleSwitchToValue,
5051
5295
  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",
5052
5296
  title: "Clear and return to value mode"
5053
5297
  }, "\xD7")) : // Value mode - show select
5054
- /* @__PURE__ */ React4.createElement("select", {
5298
+ /* @__PURE__ */ React3.createElement("select", {
5055
5299
  id: fieldName,
5056
5300
  name: fieldName,
5057
5301
  value: displayValue,
@@ -5060,15 +5304,15 @@ function Select(param) {
5060
5304
  },
5061
5305
  disabled: disabled,
5062
5306
  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")
5063
- }, placeholder && /* @__PURE__ */ React4.createElement("option", {
5307
+ }, placeholder && /* @__PURE__ */ React3.createElement("option", {
5064
5308
  value: "",
5065
5309
  disabled: true
5066
5310
  }, placeholder), options.map(function(opt) {
5067
- return /* @__PURE__ */ React4.createElement("option", {
5311
+ return /* @__PURE__ */ React3.createElement("option", {
5068
5312
  key: opt.value,
5069
5313
  value: opt.value
5070
5314
  }, opt.label);
5071
- }), /* @__PURE__ */ React4.createElement("option", {
5315
+ }), /* @__PURE__ */ React3.createElement("option", {
5072
5316
  value: "__expression__"
5073
5317
  }, "\uD83D\uDCDD Custom Expression"))));
5074
5318
  }
@@ -5105,5 +5349,132 @@ function NestedFieldProvider(param) {
5105
5349
  var children = param.children;
5106
5350
  return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
5107
5351
  }
5108
- export { Button, buttonVariants, fields_exports as fields }; //# sourceMappingURL=index.js.map
5352
+ var InferredTypesContext = createContext(null);
5353
+ function useInferredTypes() {
5354
+ return useContext(InferredTypesContext);
5355
+ }
5356
+ function InferredTypesProvider(param) {
5357
+ var children = param.children;
5358
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
5359
+ }
5360
+ function intersectTypes(types) {
5361
+ var validTypes = types.filter(function(t) {
5362
+ return !!t && t.length > 0;
5363
+ });
5364
+ if (validTypes.length === 0) return "any";
5365
+ if (validTypes.length === 1) return validTypes[0];
5366
+ return validTypes[0];
5367
+ }
5368
+ function parseInferSyntax(expectedType) {
5369
+ var _match_;
5370
+ if (!expectedType || !expectedType.startsWith("$infer<")) {
5371
+ return {
5372
+ mode: "normal"
5373
+ };
5374
+ }
5375
+ var match = expectedType.match(/^\$infer<(.+)>$/);
5376
+ if (!match) {
5377
+ return {
5378
+ mode: "normal"
5379
+ };
5380
+ }
5381
+ var content = ((_match_ = match[1]) === null || _match_ === void 0 ? void 0 : _match_.trim()) || "";
5382
+ if (!content.includes("|") && /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(content)) {
5383
+ return {
5384
+ mode: "subscribe",
5385
+ subscribeToField: content
5386
+ };
5387
+ }
5388
+ var allowedTypes = content.split("|").map(function(t) {
5389
+ return t.trim();
5390
+ }).filter(Boolean);
5391
+ return {
5392
+ mode: "publish",
5393
+ allowedTypes: allowedTypes
5394
+ };
5395
+ }
5396
+ var OPERATORS_BY_TYPE = {
5397
+ string: [
5398
+ {
5399
+ value: "==",
5400
+ label: "equals (==)"
5401
+ },
5402
+ {
5403
+ value: "!=",
5404
+ label: "not equals (!=)"
5405
+ },
5406
+ {
5407
+ value: "contains",
5408
+ label: "contains"
5409
+ },
5410
+ {
5411
+ value: "startsWith",
5412
+ label: "starts with"
5413
+ },
5414
+ {
5415
+ value: "endsWith",
5416
+ label: "ends with"
5417
+ }
5418
+ ],
5419
+ number: [
5420
+ {
5421
+ value: "==",
5422
+ label: "equals (==)"
5423
+ },
5424
+ {
5425
+ value: "!=",
5426
+ label: "not equals (!=)"
5427
+ },
5428
+ {
5429
+ value: "<",
5430
+ label: "less than (<)"
5431
+ },
5432
+ {
5433
+ value: ">",
5434
+ label: "greater than (>)"
5435
+ },
5436
+ {
5437
+ value: "<=",
5438
+ label: "less than or equal (<=)"
5439
+ },
5440
+ {
5441
+ value: ">=",
5442
+ label: "greater than or equal (>=)"
5443
+ }
5444
+ ],
5445
+ boolean: [
5446
+ {
5447
+ value: "==",
5448
+ label: "equals (==)"
5449
+ },
5450
+ {
5451
+ value: "!=",
5452
+ label: "not equals (!=)"
5453
+ }
5454
+ ],
5455
+ any: [
5456
+ {
5457
+ value: "==",
5458
+ label: "equals (==)"
5459
+ },
5460
+ {
5461
+ value: "!=",
5462
+ label: "not equals (!=)"
5463
+ }
5464
+ ]
5465
+ };
5466
+ function getOperatorsForType(type) {
5467
+ var _OPERATORS_BY_TYPE_type, _ref;
5468
+ 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 : [
5469
+ {
5470
+ value: "==",
5471
+ label: "equals (==)"
5472
+ },
5473
+ {
5474
+ value: "!=",
5475
+ label: "not equals (!=)"
5476
+ }
5477
+ ];
5478
+ }
5479
+ export { Button, ConfirmationDropdownMenuItem, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuClose, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, buttonVariants, fields_exports as fields }; //# sourceMappingURL=index.js.map
5109
5480
  //# sourceMappingURL=index.js.map