@process.co/ui 0.0.10 → 0.0.11

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.d.cts CHANGED
@@ -2,7 +2,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
2
2
  import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
- export { i as fields } from './index-DGN9LJqq.cjs';
5
+ export { i as fields } from './index-B-kAG1RW.cjs';
6
6
 
7
7
  declare const buttonVariants: (props?: ({
8
8
  variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
2
2
  import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
- export { i as fields } from './index-DGN9LJqq.js';
5
+ export { i as fields } from './index-B-kAG1RW.js';
6
6
 
7
7
  declare const buttonVariants: (props?: ({
8
8
  variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
package/dist/index.js CHANGED
@@ -158,7 +158,7 @@ function _unsupported_iterable_to_array(o, minLen) {
158
158
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
159
159
  }
160
160
  import * as React2 from 'react';
161
- import React2__default, { createContext, useContext, useCallback } from 'react';
161
+ import React2__default, { createContext, useContext, useState, useCallback } from 'react';
162
162
  import { Slot } from '@radix-ui/react-slot';
163
163
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
164
164
  import { CheckIcon, CircleIcon, ChevronRightIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';
@@ -4858,21 +4858,21 @@ function cn() {
4858
4858
  return twMerge(clsx(inputs));
4859
4859
  }
4860
4860
  // src/components/ui/button.tsx
4861
- 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", {
4861
+ var buttonVariants = cva("uii:inline-flex uii:items-center uii:justify-center uii:gap-2 uii:whitespace-nowrap uii:rounded-sm uii:text-sm uii:font-medium uii:transition-[color,box-shadow] uii:disabled:pointer-events-none uii:disabled:opacity-50 uii:[&_svg]:pointer-events-none uii:[&_svg:not([class*=size-])]:size-4 uii:shrink-0 uii:[&_svg]:shrink-0 uii:outline-none 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 uii:cursor-pointer", {
4862
4862
  variants: {
4863
4863
  variant: {
4864
- default: "ui:bg-primary ui:text-primary-foreground ui:shadow-xs ui:hover:bg-primary/90 ui:select-none",
4865
- 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",
4866
- outline: "ui:border ui:border-input ui:bg-background ui:shadow-xs ui:hover:bg-accent ui:hover:text-accent-foreground",
4867
- secondary: "ui:bg-secondary ui:text-secondary-foreground ui:shadow-xs ui:hover:bg-secondary/80",
4868
- ghost: "ui:hover:bg-accent ui:hover:text-accent-foreground",
4869
- link: "ui:text-primary ui:underline-offset-4 ui:hover:underline"
4864
+ default: "uii:bg-primary uii:text-primary-foreground uii:shadow-xs uii:hover:bg-primary/90 uii:select-none",
4865
+ destructive: "uii:bg-destructive uii:text-white uii:shadow-xs uii:hover:bg-destructive/90 uii:focus-visible:ring-destructive/20 uii:dark:focus-visible:ring-destructive/40",
4866
+ outline: "uii:border uii:border-input uii:bg-background uii:shadow-xs uii:hover:bg-accent uii:hover:text-accent-foreground",
4867
+ secondary: "uii:bg-secondary uii:text-secondary-foreground uii:shadow-xs uii:hover:bg-secondary/80",
4868
+ ghost: "uii:hover:bg-accent uii:hover:text-accent-foreground",
4869
+ link: "uii:text-primary uii:underline-offset-4 uii:hover:underline"
4870
4870
  },
4871
4871
  size: {
4872
- default: "ui:h-9 ui:px-4 ui:py-2 ui:has-[>svg]:px-3",
4873
- sm: "ui:h-8 ui:rounded-sm ui:gap-1.5 ui:px-3 ui:has-[>svg]:px-2.5",
4874
- lg: "ui:h-10 ui:rounded-sm ui:px-6 ui:has-[>svg]:px-4",
4875
- icon: "ui:size-9"
4872
+ default: "uii:h-9 uii:px-4 uii:py-2 uii:has-[>svg]:px-3",
4873
+ sm: "uii:h-8 uii:rounded-sm uii:gap-1.5 uii:px-3 uii:has-[>svg]:px-2.5",
4874
+ lg: "uii:h-10 uii:rounded-sm uii:px-6 uii:has-[>svg]:px-4",
4875
+ icon: "uii:size-9"
4876
4876
  }
4877
4877
  },
4878
4878
  defaultVariants: {
@@ -5129,6 +5129,12 @@ __export(fields_exports, {
5129
5129
  useAllInferredTypes: function() {
5130
5130
  return useAllInferredTypes;
5131
5131
  },
5132
+ useClearAllInferredTypes: function() {
5133
+ return useClearAllInferredTypes;
5134
+ },
5135
+ useClearInferredType: function() {
5136
+ return useClearInferredType;
5137
+ },
5132
5138
  useFieldPath: function() {
5133
5139
  return useFieldPath;
5134
5140
  },
@@ -5163,8 +5169,53 @@ __export(fields_exports, {
5163
5169
  return useTemplateFieldContext;
5164
5170
  }
5165
5171
  });
5172
+ var DevContext = createContext(null);
5173
+ function useResolvedExpectedType(expectedType, devCtx) {
5174
+ var inferredTypes = devCtx === null || devCtx === void 0 ? void 0 : devCtx.inferredTypes;
5175
+ return React2.useMemo(function() {
5176
+ var _match_;
5177
+ if (!expectedType) return "any";
5178
+ if (!expectedType.startsWith("$infer<")) {
5179
+ return expectedType;
5180
+ }
5181
+ var match = expectedType.match(/^\$infer<(.+)>$/);
5182
+ if (!match) return expectedType;
5183
+ var content = ((_match_ = match[1]) === null || _match_ === void 0 ? void 0 : _match_.trim()) || "";
5184
+ if (content.startsWith("[") && content.endsWith("]")) {
5185
+ var arrayContent = content.slice(1, -1);
5186
+ var fieldNames = arrayContent.split(",").map(function(s) {
5187
+ return s.trim().replace(/^["']|["']$/g, "");
5188
+ }).filter(Boolean);
5189
+ if (!inferredTypes) {
5190
+ return "Subscribing to: ".concat(fieldNames.join(", "));
5191
+ }
5192
+ var types = fieldNames.map(function(name) {
5193
+ return inferredTypes[name];
5194
+ }).filter(function(t) {
5195
+ return !!t && t.length > 0;
5196
+ });
5197
+ if (types.length === 0) {
5198
+ return "Waiting for: ".concat(fieldNames.join(", "));
5199
+ }
5200
+ return types.length === 1 ? types[0] : types.join(" & ");
5201
+ }
5202
+ if (!content.includes("|") && /^[a-zA-Z_][a-zA-Z0-9_\-]*$/.test(content)) {
5203
+ if (!inferredTypes) {
5204
+ return "Subscribing to: ".concat(content);
5205
+ }
5206
+ var resolvedType = inferredTypes[content];
5207
+ return resolvedType || "Waiting for: ".concat(content);
5208
+ }
5209
+ return content;
5210
+ }, [
5211
+ expectedType,
5212
+ inferredTypes
5213
+ ]);
5214
+ }
5166
5215
  function Input(param) {
5167
5216
  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;
5217
+ var devCtx = useContext(DevContext);
5218
+ var resolvedExpectedType = useResolvedExpectedType(expectedType, devCtx);
5168
5219
  var displayValue = React2.useMemo(function() {
5169
5220
  if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && "expression" in value) {
5170
5221
  return value.expression || "";
@@ -5192,6 +5243,7 @@ function Input(param) {
5192
5243
  onChange
5193
5244
  ]);
5194
5245
  var showError = hasRequiredError || required && !displayValue;
5246
+ var isWaiting = resolvedExpectedType.startsWith("Waiting for:") || resolvedExpectedType.startsWith("Subscribing to:");
5195
5247
  return /* @__PURE__ */ React2.createElement("div", {
5196
5248
  className: cn("uii:mb-2", className)
5197
5249
  }, /* @__PURE__ */ React2.createElement("div", {
@@ -5199,9 +5251,10 @@ function Input(param) {
5199
5251
  }, /* @__PURE__ */ React2.createElement("label", {
5200
5252
  htmlFor: fieldName,
5201
5253
  className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
5202
- }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React2.createElement("span", {
5203
- 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"
5204
- }, expectedType), showError && /* @__PURE__ */ React2.createElement("span", {
5254
+ }, label, ":"), resolvedExpectedType !== "$.interface.timer" && /* @__PURE__ */ React2.createElement("span", {
5255
+ className: cn("uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:rounded-sm uii:text-[10px] uii:font-mono uii:font-light uii:max-w-[300px] uii:truncate", isWaiting ? "uii:bg-yellow-100 uii:text-yellow-700" : "uii:bg-gray-200 uii:text-muted-foreground"),
5256
+ title: resolvedExpectedType
5257
+ }, resolvedExpectedType), showError && /* @__PURE__ */ React2.createElement("span", {
5205
5258
  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"
5206
5259
  }, "Required")), /* @__PURE__ */ React2.createElement("div", {
5207
5260
  className: "uii:mt-0.5"
@@ -5298,8 +5351,52 @@ function SelectScrollDownButton(_param) {
5298
5351
  }));
5299
5352
  }
5300
5353
  // src/components/fields/Select.tsx
5354
+ function useResolvedExpectedType2(expectedType, devCtx) {
5355
+ var inferredTypes = devCtx === null || devCtx === void 0 ? void 0 : devCtx.inferredTypes;
5356
+ return React2.useMemo(function() {
5357
+ var _match_;
5358
+ if (!expectedType) return "any";
5359
+ if (!expectedType.startsWith("$infer<")) {
5360
+ return expectedType;
5361
+ }
5362
+ var match = expectedType.match(/^\$infer<(.+)>$/);
5363
+ if (!match) return expectedType;
5364
+ var content = ((_match_ = match[1]) === null || _match_ === void 0 ? void 0 : _match_.trim()) || "";
5365
+ if (content.startsWith("[") && content.endsWith("]")) {
5366
+ var arrayContent = content.slice(1, -1);
5367
+ var fieldNames = arrayContent.split(",").map(function(s) {
5368
+ return s.trim().replace(/^["']|["']$/g, "");
5369
+ }).filter(Boolean);
5370
+ if (!inferredTypes) {
5371
+ return "Subscribing to: ".concat(fieldNames.join(", "));
5372
+ }
5373
+ var types = fieldNames.map(function(name) {
5374
+ return inferredTypes[name];
5375
+ }).filter(function(t) {
5376
+ return !!t && t.length > 0;
5377
+ });
5378
+ if (types.length === 0) {
5379
+ return "Waiting for: ".concat(fieldNames.join(", "));
5380
+ }
5381
+ return types.length === 1 ? types[0] : types.join(" & ");
5382
+ }
5383
+ if (!content.includes("|") && /^[a-zA-Z_][a-zA-Z0-9_\-]*$/.test(content)) {
5384
+ if (!inferredTypes) {
5385
+ return "Subscribing to: ".concat(content);
5386
+ }
5387
+ var resolvedType = inferredTypes[content];
5388
+ return resolvedType || "Waiting for: ".concat(content);
5389
+ }
5390
+ return content;
5391
+ }, [
5392
+ expectedType,
5393
+ inferredTypes
5394
+ ]);
5395
+ }
5301
5396
  function Select2(param) {
5302
5397
  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;
5398
+ var devCtx = useContext(DevContext);
5399
+ var resolvedExpectedType = useResolvedExpectedType2(expectedType, devCtx);
5303
5400
  var _React2_useState = _sliced_to_array(React2.useState(false), 2), isExpressionMode = _React2_useState[0], setIsExpressionMode = _React2_useState[1];
5304
5401
  var _React2_useState1 = _sliced_to_array(React2.useState(""), 2), expressionValue = _React2_useState1[0], setExpressionValue = _React2_useState1[1];
5305
5402
  var options = React2.useMemo(function() {
@@ -5388,6 +5485,7 @@ function Select2(param) {
5388
5485
  },
5389
5486
  hasError: showError
5390
5487
  };
5488
+ var isWaiting = resolvedExpectedType.startsWith("Waiting for:") || resolvedExpectedType.startsWith("Subscribing to:");
5391
5489
  return /* @__PURE__ */ React2.createElement("div", {
5392
5490
  className: cn("uii:mb-2", className)
5393
5491
  }, /* @__PURE__ */ React2.createElement("div", {
@@ -5395,9 +5493,10 @@ function Select2(param) {
5395
5493
  }, /* @__PURE__ */ React2.createElement("label", {
5396
5494
  htmlFor: fieldName,
5397
5495
  className: "uii:text-xs uii:font-bold uii:text-muted-foreground"
5398
- }, label, ":"), expectedType !== "$.interface.timer" && /* @__PURE__ */ React2.createElement("span", {
5399
- 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"
5400
- }, expectedType), showError && /* @__PURE__ */ React2.createElement("span", {
5496
+ }, label, ":"), resolvedExpectedType !== "$.interface.timer" && /* @__PURE__ */ React2.createElement("span", {
5497
+ className: cn("uii:-mt-2 uii:inline-flex uii:px-1 uii:py-0.5 uii:rounded-sm uii:text-[10px] uii:font-mono uii:font-light uii:max-w-[300px] uii:truncate", isWaiting ? "uii:bg-yellow-100 uii:text-yellow-700" : "uii:bg-gray-200 uii:text-muted-foreground"),
5498
+ title: resolvedExpectedType
5499
+ }, resolvedExpectedType), showError && /* @__PURE__ */ React2.createElement("span", {
5401
5500
  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"
5402
5501
  }, "Required")), /* @__PURE__ */ React2.createElement("div", {
5403
5502
  className: "uii:mt-0.5"
@@ -5534,26 +5633,29 @@ function parseInferredTypes(typeStr) {
5534
5633
  return result;
5535
5634
  }
5536
5635
  function computeExtendedType(inferredType, opDef) {
5537
- if (!opDef.extendsWithBase || opDef.narrowsTo === "never") {
5538
- return opDef.narrowsTo;
5636
+ if (opDef.narrowsTo === "never") {
5637
+ return "never";
5539
5638
  }
5540
5639
  var parsed = parseInferredTypes(inferredType);
5541
- var matchingTypes = [];
5640
+ var matchingLiterals = [];
5542
5641
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5543
5642
  try {
5544
5643
  for(var _iterator = parsed.rawTypes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5545
5644
  var t = _step.value;
5546
5645
  if (opDef.narrowsTo === "string") {
5547
- if (t === "string" || /^["'].*["']$/.test(t)) {
5548
- matchingTypes.push(t);
5646
+ if (t === "string") ;
5647
+ else if (/^["'].*["']$/.test(t)) {
5648
+ matchingLiterals.push(t);
5549
5649
  }
5550
5650
  } else if (opDef.narrowsTo === "number") {
5551
- if (t === "number" || /^-?\d+(\.\d+)?$/.test(t)) {
5552
- matchingTypes.push(t);
5651
+ if (t === "number") ;
5652
+ else if (/^-?\d+(\.\d+)?$/.test(t)) {
5653
+ matchingLiterals.push(t);
5553
5654
  }
5554
5655
  } else if (opDef.narrowsTo === "boolean") {
5555
- if (t === "boolean" || t === "true" || t === "false") {
5556
- matchingTypes.push(t);
5656
+ if (t === "boolean") ;
5657
+ else if (t === "true" || t === "false") {
5658
+ matchingLiterals.push(t);
5557
5659
  }
5558
5660
  }
5559
5661
  }
@@ -5571,10 +5673,13 @@ function computeExtendedType(inferredType, opDef) {
5571
5673
  }
5572
5674
  }
5573
5675
  }
5574
- if (opDef.extendsWithBase && !matchingTypes.includes(opDef.narrowsTo)) {
5575
- matchingTypes.push(opDef.narrowsTo);
5676
+ var result = _to_consumable_array(matchingLiterals);
5677
+ if (opDef.extendsWithBase || matchingLiterals.length === 0) {
5678
+ if (!result.includes(opDef.narrowsTo)) {
5679
+ result.push(opDef.narrowsTo);
5680
+ }
5576
5681
  }
5577
- return matchingTypes.length > 0 ? matchingTypes.join(" | ") : opDef.narrowsTo;
5682
+ return result.length > 0 ? result.join(" | ") : opDef.narrowsTo;
5578
5683
  }
5579
5684
  function filterOperatorsByType(operators, inferredType) {
5580
5685
  var parsed = parseInferredTypes(inferredType);
@@ -5627,7 +5732,18 @@ function NestedFieldProvider(param) {
5627
5732
  }
5628
5733
  var InferredTypesContext = createContext(null);
5629
5734
  function useInferredTypes() {
5630
- return useContext(InferredTypesContext);
5735
+ var devContext = useContext(DevContext);
5736
+ var realContext = useContext(InferredTypesContext);
5737
+ if (devContext) {
5738
+ return {
5739
+ inferredTypes: devContext.inferredTypes,
5740
+ setInferredType: devContext.setInferredType,
5741
+ getInferredType: devContext.getInferredType,
5742
+ clearInferredType: devContext.clearInferredType,
5743
+ clearAllInferredTypes: devContext.clearAllInferredTypes
5744
+ };
5745
+ }
5746
+ return realContext;
5631
5747
  }
5632
5748
  function InferredTypesProvider(param) {
5633
5749
  var children = param.children;
@@ -5757,43 +5873,175 @@ function NodePropertyProvider(param) {
5757
5873
  return /* @__PURE__ */ React2__default.createElement(React2__default.Fragment, null, children);
5758
5874
  }
5759
5875
  function useIsInNodePropertyProvider() {
5760
- return false;
5876
+ var devContext = useContext(DevContext);
5877
+ return devContext !== null;
5761
5878
  }
5762
5879
  function useNodeProperty(key) {
5880
+ var devContext = useContext(DevContext);
5881
+ var _useState = _sliced_to_array(useState(function() {
5882
+ var _devContext_data;
5883
+ return devContext === null || devContext === void 0 ? void 0 : (_devContext_data = devContext.data) === null || _devContext_data === void 0 ? void 0 : _devContext_data[key];
5884
+ }), 2), devValue = _useState[0], setDevValue = _useState[1];
5885
+ React2__default.useEffect(function() {
5886
+ if (devContext) {
5887
+ setDevValue(devContext.data[key]);
5888
+ }
5889
+ }, [
5890
+ devContext,
5891
+ key
5892
+ ]);
5893
+ var devSetter = useCallback(function(value) {
5894
+ if (devContext) {
5895
+ devContext.setProperty(key, value);
5896
+ setDevValue(value);
5897
+ }
5898
+ }, [
5899
+ devContext,
5900
+ key
5901
+ ]);
5763
5902
  var noopSetter = useCallback(function() {
5764
- console.warn('[useNodeProperty] Mock mode - cannot set "'.concat(key, '"'));
5903
+ console.warn('[useNodeProperty] No provider - cannot set "'.concat(key, '"'));
5765
5904
  }, [
5766
5905
  key
5767
5906
  ]);
5907
+ if (devContext) {
5908
+ return [
5909
+ devValue,
5910
+ devSetter
5911
+ ];
5912
+ }
5768
5913
  return [
5769
5914
  void 0,
5770
5915
  noopSetter
5771
5916
  ];
5772
5917
  }
5773
5918
  function useNodeProperties() {
5919
+ var devContext = useContext(DevContext);
5920
+ var _useState = _sliced_to_array(useState(function() {
5921
+ var _devContext_data;
5922
+ return (_devContext_data = devContext === null || devContext === void 0 ? void 0 : devContext.data) !== null && _devContext_data !== void 0 ? _devContext_data : {};
5923
+ }), 2), devData = _useState[0], setDevData = _useState[1];
5924
+ React2__default.useEffect(function() {
5925
+ if (devContext) {
5926
+ setDevData(_object_spread({}, devContext.data));
5927
+ }
5928
+ }, [
5929
+ devContext,
5930
+ devContext === null || devContext === void 0 ? void 0 : devContext.data
5931
+ ]);
5932
+ var devSetter = useCallback(function(updates) {
5933
+ if (devContext) {
5934
+ Object.entries(updates).forEach(function(param) {
5935
+ var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
5936
+ devContext.setProperty(key, value);
5937
+ });
5938
+ setDevData(function(prev) {
5939
+ return _object_spread({}, prev, updates);
5940
+ });
5941
+ }
5942
+ }, [
5943
+ devContext
5944
+ ]);
5774
5945
  var noopSetter = useCallback(function() {
5775
- console.warn("[useNodeProperties] Mock mode - cannot set properties");
5946
+ console.warn("[useNodeProperties] No provider - cannot set properties");
5776
5947
  }, []);
5948
+ if (devContext) {
5949
+ return [
5950
+ devData,
5951
+ devSetter
5952
+ ];
5953
+ }
5777
5954
  return [
5778
5955
  {},
5779
5956
  noopSetter
5780
5957
  ];
5781
5958
  }
5782
5959
  function useInferredType(fieldName) {
5960
+ var devContext = useContext(DevContext);
5961
+ var _useState = _sliced_to_array(useState(function() {
5962
+ var _devContext_inferredTypes;
5963
+ return devContext === null || devContext === void 0 ? void 0 : (_devContext_inferredTypes = devContext.inferredTypes) === null || _devContext_inferredTypes === void 0 ? void 0 : _devContext_inferredTypes[fieldName];
5964
+ }), 2), devInferredType = _useState[0], setDevInferredType = _useState[1];
5965
+ React2__default.useEffect(function() {
5966
+ if (devContext) {
5967
+ setDevInferredType(devContext.inferredTypes[fieldName]);
5968
+ }
5969
+ }, [
5970
+ devContext,
5971
+ fieldName,
5972
+ devContext === null || devContext === void 0 ? void 0 : devContext.inferredTypes
5973
+ ]);
5974
+ if (devContext) {
5975
+ return devInferredType;
5976
+ }
5783
5977
  return void 0;
5784
5978
  }
5785
5979
  function useSetInferredType() {
5980
+ var devContext = useContext(DevContext);
5786
5981
  return useCallback(function(fieldName, type) {
5787
- console.warn('[useSetInferredType] Mock mode - cannot set "'.concat(fieldName, '" to "').concat(type, '"'));
5788
- }, []);
5982
+ if (devContext) {
5983
+ devContext.setInferredType(fieldName, type);
5984
+ } else {
5985
+ console.warn('[useSetInferredType] No provider - cannot set "'.concat(fieldName, '" to "').concat(type, '"'));
5986
+ }
5987
+ }, [
5988
+ devContext
5989
+ ]);
5990
+ }
5991
+ function useClearInferredType() {
5992
+ var devContext = useContext(DevContext);
5993
+ return useCallback(function(fieldName) {
5994
+ if (devContext) {
5995
+ devContext.clearInferredType(fieldName);
5996
+ } else {
5997
+ console.warn('[useClearInferredType] No provider - cannot clear "'.concat(fieldName, '"'));
5998
+ }
5999
+ }, [
6000
+ devContext
6001
+ ]);
6002
+ }
6003
+ function useClearAllInferredTypes() {
6004
+ var devContext = useContext(DevContext);
6005
+ return useCallback(function() {
6006
+ if (devContext) {
6007
+ devContext.clearAllInferredTypes();
6008
+ } else {
6009
+ console.warn("[useClearAllInferredTypes] No provider - cannot clear all types");
6010
+ }
6011
+ }, [
6012
+ devContext
6013
+ ]);
5789
6014
  }
5790
6015
  function useAllInferredTypes() {
6016
+ var devContext = useContext(DevContext);
6017
+ var _useState = _sliced_to_array(useState(function() {
6018
+ var _devContext_inferredTypes;
6019
+ return (_devContext_inferredTypes = devContext === null || devContext === void 0 ? void 0 : devContext.inferredTypes) !== null && _devContext_inferredTypes !== void 0 ? _devContext_inferredTypes : {};
6020
+ }), 2), devTypes = _useState[0], setDevTypes = _useState[1];
6021
+ React2__default.useEffect(function() {
6022
+ if (devContext) {
6023
+ setDevTypes(_object_spread({}, devContext.inferredTypes));
6024
+ }
6025
+ }, [
6026
+ devContext,
6027
+ devContext === null || devContext === void 0 ? void 0 : devContext.inferredTypes
6028
+ ]);
6029
+ if (devContext) {
6030
+ return devTypes;
6031
+ }
5791
6032
  return {};
5792
6033
  }
5793
6034
  function useSetProperty() {
6035
+ var devContext = useContext(DevContext);
5794
6036
  return useCallback(function(key, value) {
5795
- console.warn('[useSetProperty] Mock mode - cannot set "'.concat(key, '"'));
5796
- }, []);
6037
+ if (devContext) {
6038
+ devContext.setProperty(key, value);
6039
+ } else {
6040
+ console.warn('[useSetProperty] No provider - cannot set "'.concat(key, '"'));
6041
+ }
6042
+ }, [
6043
+ devContext
6044
+ ]);
5797
6045
  }
5798
6046
  function useFieldValidation() {
5799
6047
  var setFieldRequired = useCallback(function(fieldName, required) {