@osdk/react-components 0.17.0 → 0.18.0-main-ca8ef7c5d52f3369478e1d4c5b7eded97eb73215

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/browser/object-table/ObjectTable.js +4 -4
  3. package/build/browser/object-table/ObjectTable.js.map +1 -1
  4. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  5. package/build/browser/object-table/hooks/useRowSelection.js +5 -4
  6. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -1
  7. package/build/browser/util/UserAgent.js +1 -1
  8. package/build/browser/util/UserAgent.js.map +1 -1
  9. package/build/cjs/chunk-2BLJCM7D.cjs +11 -0
  10. package/build/cjs/{chunk-DVE44R2H.cjs.map → chunk-2BLJCM7D.cjs.map} +1 -1
  11. package/build/cjs/{chunk-QOKXBBSR.cjs → chunk-2QDWXDLC.cjs} +204 -236
  12. package/build/cjs/chunk-2QDWXDLC.cjs.map +1 -0
  13. package/build/cjs/{chunk-ONBWRKWJ.cjs → chunk-3P75JCUA.cjs} +14 -14
  14. package/build/cjs/chunk-3P75JCUA.cjs.map +1 -0
  15. package/build/cjs/chunk-6SWH5XK7.cjs +11 -0
  16. package/build/cjs/{chunk-HHVL4RYG.cjs.map → chunk-6SWH5XK7.cjs.map} +1 -1
  17. package/build/cjs/{chunk-25R5WVUR.cjs → chunk-7N22MOQP.cjs} +4 -4
  18. package/build/cjs/{chunk-25R5WVUR.cjs.map → chunk-7N22MOQP.cjs.map} +1 -1
  19. package/build/cjs/{chunk-JNFOPEN2.cjs → chunk-DDIMME5J.cjs} +4 -4
  20. package/build/cjs/{chunk-JNFOPEN2.cjs.map → chunk-DDIMME5J.cjs.map} +1 -1
  21. package/build/cjs/{chunk-6HVKQP7I.cjs → chunk-DSBCDOFJ.cjs} +4 -4
  22. package/build/cjs/{chunk-6HVKQP7I.cjs.map → chunk-DSBCDOFJ.cjs.map} +1 -1
  23. package/build/cjs/{chunk-ZBJEZKOD.cjs → chunk-FRSIMUPL.cjs} +90 -59
  24. package/build/cjs/chunk-FRSIMUPL.cjs.map +1 -0
  25. package/build/cjs/{chunk-R4M6VGVD.cjs → chunk-IEF4VCDI.cjs} +3 -3
  26. package/build/cjs/chunk-IEF4VCDI.cjs.map +1 -0
  27. package/build/cjs/chunk-M3FP4G7N.cjs +11 -0
  28. package/build/cjs/{chunk-AL43X5RI.cjs.map → chunk-M3FP4G7N.cjs.map} +1 -1
  29. package/build/cjs/chunk-XJ5TTKHA.cjs +11 -0
  30. package/build/cjs/{chunk-U2JT7LIS.cjs.map → chunk-XJ5TTKHA.cjs.map} +1 -1
  31. package/build/cjs/{chunk-BKLX3JZ5.cjs → chunk-YD76TX23.cjs} +4 -4
  32. package/build/cjs/{chunk-BKLX3JZ5.cjs.map → chunk-YD76TX23.cjs.map} +1 -1
  33. package/build/cjs/{chunk-BGTMZNYD.cjs → chunk-YNPAQDMC.cjs} +4 -4
  34. package/build/cjs/{chunk-BGTMZNYD.cjs.map → chunk-YNPAQDMC.cjs.map} +1 -1
  35. package/build/cjs/chunk-Z7VYBF3X.cjs +11 -0
  36. package/build/cjs/{chunk-VICC2NSA.cjs.map → chunk-Z7VYBF3X.cjs.map} +1 -1
  37. package/build/cjs/public/experimental/action-form.cjs +5 -5
  38. package/build/cjs/public/experimental/document-viewer.cjs +4 -4
  39. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  40. package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
  41. package/build/cjs/public/experimental/filter-list.cjs +13 -13
  42. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  43. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  44. package/build/cjs/public/experimental/object-table.cjs +9 -9
  45. package/build/cjs/public/experimental/object-table.d.cts +11 -14
  46. package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
  47. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  48. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  49. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  50. package/build/cjs/public/experimental.cjs +47 -47
  51. package/build/esm/object-table/ObjectTable.js +4 -4
  52. package/build/esm/object-table/ObjectTable.js.map +1 -1
  53. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  54. package/build/esm/object-table/hooks/useRowSelection.js +5 -4
  55. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -1
  56. package/build/esm/util/UserAgent.js +1 -1
  57. package/build/esm/util/UserAgent.js.map +1 -1
  58. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  59. package/build/types/object-table/ObjectTableApi.d.ts +11 -14
  60. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  61. package/build/types/object-table/hooks/useRowSelection.d.ts +0 -1
  62. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -1
  63. package/docs/ObjectTable.md +17 -17
  64. package/package.json +4 -4
  65. package/build/cjs/chunk-AL43X5RI.cjs +0 -11
  66. package/build/cjs/chunk-DVE44R2H.cjs +0 -11
  67. package/build/cjs/chunk-HHVL4RYG.cjs +0 -11
  68. package/build/cjs/chunk-ONBWRKWJ.cjs.map +0 -1
  69. package/build/cjs/chunk-QOKXBBSR.cjs.map +0 -1
  70. package/build/cjs/chunk-R4M6VGVD.cjs.map +0 -1
  71. package/build/cjs/chunk-U2JT7LIS.cjs +0 -11
  72. package/build/cjs/chunk-VICC2NSA.cjs +0 -11
  73. package/build/cjs/chunk-ZBJEZKOD.cjs.map +0 -1
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkSFQMJMTV_cjs = require('./chunk-SFQMJMTV.cjs');
4
- var chunkZBJEZKOD_cjs = require('./chunk-ZBJEZKOD.cjs');
4
+ var chunkFRSIMUPL_cjs = require('./chunk-FRSIMUPL.cjs');
5
5
  var chunkZ4JDLERD_cjs = require('./chunk-Z4JDLERD.cjs');
6
6
  var chunkI3OSD6CF_cjs = require('./chunk-I3OSD6CF.cjs');
7
7
  var chunk7LXS66DW_cjs = require('./chunk-7LXS66DW.cjs');
8
8
  var chunkMD4KDE44_cjs = require('./chunk-MD4KDE44.cjs');
9
9
  var chunkUCTQICPR_cjs = require('./chunk-UCTQICPR.cjs');
10
- var chunkR4M6VGVD_cjs = require('./chunk-R4M6VGVD.cjs');
10
+ var chunkIEF4VCDI_cjs = require('./chunk-IEF4VCDI.cjs');
11
11
  var react = require('@osdk/react');
12
- var React18 = require('react');
12
+ var React17 = require('react');
13
13
  var icons = require('@blueprintjs/icons');
14
14
  var classnames = require('classnames');
15
15
  var reactHookForm = require('react-hook-form');
@@ -23,30 +23,12 @@ var collapsible = require('@base-ui/react/collapsible');
23
23
 
24
24
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
25
25
 
26
- function _interopNamespace(e) {
27
- if (e && e.__esModule) return e;
28
- var n = Object.create(null);
29
- if (e) {
30
- Object.keys(e).forEach(function (k) {
31
- if (k !== 'default') {
32
- var d = Object.getOwnPropertyDescriptor(e, k);
33
- Object.defineProperty(n, k, d.get ? d : {
34
- enumerable: true,
35
- get: function () { return e[k]; }
36
- });
37
- }
38
- });
39
- }
40
- n.default = e;
41
- return Object.freeze(n);
42
- }
43
-
44
- var React18__namespace = /*#__PURE__*/_interopNamespace(React18);
26
+ var React17__default = /*#__PURE__*/_interopDefault(React17);
45
27
  var classnames__default = /*#__PURE__*/_interopDefault(classnames);
46
28
 
47
29
  function useIsMounted() {
48
- const isMountedRef = React18.useRef(true);
49
- React18.useEffect(function trackMountedState() {
30
+ const isMountedRef = React17.useRef(true);
31
+ React17.useEffect(function trackMountedState() {
50
32
  return () => {
51
33
  isMountedRef.current = false;
52
34
  };
@@ -56,10 +38,10 @@ function useIsMounted() {
56
38
 
57
39
  // src/shared/hooks/useAsyncAction.ts
58
40
  function useAsyncAction(action) {
59
- const [isPending, setIsPending] = React18.useState(false);
60
- const [error, setError] = React18.useState(void 0);
41
+ const [isPending, setIsPending] = React17.useState(false);
42
+ const [error, setError] = React17.useState(void 0);
61
43
  const isMountedRef = useIsMounted();
62
- const execute = React18.useCallback(async (...args) => {
44
+ const execute = React17.useCallback(async (...args) => {
63
45
  setError(void 0);
64
46
  setIsPending(true);
65
47
  try {
@@ -74,7 +56,7 @@ function useAsyncAction(action) {
74
56
  }
75
57
  }
76
58
  }, [action, isMountedRef]);
77
- const clearError = React18.useCallback(() => {
59
+ const clearError = React17.useCallback(() => {
78
60
  setError(void 0);
79
61
  }, []);
80
62
  return {
@@ -248,7 +230,7 @@ function formatBytes(bytes) {
248
230
  var FormField_default = {};
249
231
 
250
232
  // src/action-form/FormField.tsx
251
- var FormField = /* @__PURE__ */ React18.memo(function FormFieldFn({
233
+ var FormField = /* @__PURE__ */ React17.memo(function FormFieldFn({
252
234
  fieldKey,
253
235
  label,
254
236
  isRequired,
@@ -261,26 +243,26 @@ var FormField = /* @__PURE__ */ React18.memo(function FormFieldFn({
261
243
  const hasHelperText = helperText != null && helperText !== "";
262
244
  const showTooltip = hasHelperText && helperTextPlacement === "tooltip";
263
245
  const showBottomText = hasHelperText && helperTextPlacement === "bottom";
264
- const labelElement = label != null ? /* @__PURE__ */ React18__namespace.default.createElement("label", {
246
+ const labelElement = label != null ? /* @__PURE__ */ React17__default.default.createElement("label", {
265
247
  className: FormField_default.osdkFormFieldLabel,
266
248
  htmlFor: fieldKey
267
- }, label, isRequired === true && /* @__PURE__ */ React18__namespace.default.createElement("span", {
249
+ }, label, isRequired === true && /* @__PURE__ */ React17__default.default.createElement("span", {
268
250
  className: FormField_default.osdkFormFieldRequired,
269
251
  "aria-label": "required"
270
252
  }, " ", "*")) : null;
271
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
253
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
272
254
  className: FormField_default.osdkFormField,
273
255
  onBlur
274
- }, showTooltip ? /* @__PURE__ */ React18__namespace.default.createElement("div", {
256
+ }, showTooltip ? /* @__PURE__ */ React17__default.default.createElement("div", {
275
257
  className: FormField_default.osdkFormFieldLabelRow
276
- }, labelElement, /* @__PURE__ */ React18__namespace.default.createElement(InfoTip, {
258
+ }, labelElement, /* @__PURE__ */ React17__default.default.createElement(InfoTip, {
277
259
  label
278
- }, helperText)) : labelElement, showBottomText && /* @__PURE__ */ React18__namespace.default.createElement("div", {
260
+ }, helperText)) : labelElement, showBottomText && /* @__PURE__ */ React17__default.default.createElement("div", {
279
261
  className: FormField_default.osdkFormFieldHelperText
280
- }, helperText), children, /* @__PURE__ */ React18__namespace.default.createElement("div", {
262
+ }, helperText), children, /* @__PURE__ */ React17__default.default.createElement("div", {
281
263
  className: FormField_default.osdkFormFieldErrorSlot,
282
264
  "data-osdk-form-field-error-slot": ""
283
- }, error != null && /* @__PURE__ */ React18__namespace.default.createElement("div", {
265
+ }, error != null && /* @__PURE__ */ React17__default.default.createElement("div", {
284
266
  className: FormField_default.osdkFormFieldError,
285
267
  role: "alert"
286
268
  }, error)));
@@ -289,33 +271,33 @@ function InfoTip({
289
271
  label,
290
272
  children
291
273
  }) {
292
- return /* @__PURE__ */ React18__namespace.default.createElement(popover.Popover.Root, null, /* @__PURE__ */ React18__namespace.default.createElement(popover.Popover.Trigger, {
293
- render: /* @__PURE__ */ React18__namespace.default.createElement("span", {
274
+ return /* @__PURE__ */ React17__default.default.createElement(popover.Popover.Root, null, /* @__PURE__ */ React17__default.default.createElement(popover.Popover.Trigger, {
275
+ render: /* @__PURE__ */ React17__default.default.createElement("span", {
294
276
  className: FormField_default.osdkFormFieldInfoIcon
295
277
  }),
296
278
  nativeButton: false,
297
279
  openOnHover: true,
298
280
  "aria-label": label != null ? `Info about ${label}` : "More information"
299
- }, /* @__PURE__ */ React18__namespace.default.createElement(icons.InfoSign, {
281
+ }, /* @__PURE__ */ React17__default.default.createElement(icons.InfoSign, {
300
282
  size: 12
301
- })), /* @__PURE__ */ React18__namespace.default.createElement(popover.Popover.Portal, null, /* @__PURE__ */ React18__namespace.default.createElement(popover.Popover.Positioner, {
283
+ })), /* @__PURE__ */ React17__default.default.createElement(popover.Popover.Portal, null, /* @__PURE__ */ React17__default.default.createElement(popover.Popover.Positioner, {
302
284
  sideOffset: 4
303
- }, /* @__PURE__ */ React18__namespace.default.createElement(popover.Popover.Popup, {
285
+ }, /* @__PURE__ */ React17__default.default.createElement(popover.Popover.Popup, {
304
286
  className: FormField_default.osdkFormFieldInfoPopup
305
287
  }, children))));
306
288
  }
307
- var CustomField = /* @__PURE__ */ React18.memo(function CustomFieldFn({
289
+ var CustomField = /* @__PURE__ */ React17.memo(function CustomFieldFn({
308
290
  customRenderer: CustomRenderer,
309
291
  ...baseProps
310
292
  }) {
311
- return /* @__PURE__ */ React18__namespace.default.createElement(CustomRenderer, baseProps);
293
+ return /* @__PURE__ */ React17__default.default.createElement(CustomRenderer, baseProps);
312
294
  });
313
295
 
314
296
  // src/action-form/fields/FilePickerField.module.css
315
297
  var FilePickerField_default = {};
316
298
 
317
299
  // src/action-form/fields/FilePickerField.tsx
318
- var FilePickerField = /* @__PURE__ */ React18.memo(function FilePickerFieldFn({
300
+ var FilePickerField = /* @__PURE__ */ React17.memo(function FilePickerFieldFn({
319
301
  id,
320
302
  value,
321
303
  onChange,
@@ -329,23 +311,23 @@ var FilePickerField = /* @__PURE__ */ React18.memo(function FilePickerFieldFn({
329
311
  text = "No file chosen",
330
312
  buttonText = "Browse"
331
313
  }) {
332
- const inputRef = React18.useRef(null);
333
- const fileTriggerRef = React18.useRef(null);
334
- const openFileDialog = React18.useCallback(() => {
314
+ const inputRef = React17.useRef(null);
315
+ const fileTriggerRef = React17.useRef(null);
316
+ const openFileDialog = React17.useCallback(() => {
335
317
  inputRef.current?.click();
336
318
  }, []);
337
- const focusFileTrigger = React18.useCallback(() => {
319
+ const focusFileTrigger = React17.useCallback(() => {
338
320
  fileTriggerRef.current?.focus();
339
321
  }, []);
340
- const handleBrowsePointerDown = React18.useCallback((event) => {
322
+ const handleBrowsePointerDown = React17.useCallback((event) => {
341
323
  event.preventDefault();
342
324
  focusFileTrigger();
343
325
  }, [focusFileTrigger]);
344
- const handleBrowseClick = React18.useCallback(() => {
326
+ const handleBrowseClick = React17.useCallback(() => {
345
327
  focusFileTrigger();
346
328
  openFileDialog();
347
329
  }, [focusFileTrigger, openFileDialog]);
348
- const handleInputChange = React18.useCallback((event) => {
330
+ const handleInputChange = React17.useCallback((event) => {
349
331
  const files = event.target.files;
350
332
  if (files == null || files.length === 0) {
351
333
  onChange?.(null);
@@ -357,26 +339,26 @@ var FilePickerField = /* @__PURE__ */ React18.memo(function FilePickerFieldFn({
357
339
  onChange?.(files[0] ?? null);
358
340
  }
359
341
  }, [onChange, isMulti]);
360
- const handleClear = React18.useCallback((event) => {
342
+ const handleClear = React17.useCallback((event) => {
361
343
  event.preventDefault();
362
344
  onChange?.(null);
363
345
  if (inputRef.current != null) {
364
346
  inputRef.current.value = "";
365
347
  }
366
348
  }, [onChange]);
367
- const handleKeyDown = React18.useCallback((event) => {
349
+ const handleKeyDown = React17.useCallback((event) => {
368
350
  if (event.key === "Enter" || event.key === " ") {
369
351
  event.preventDefault();
370
352
  openFileDialog();
371
353
  }
372
354
  }, [openFileDialog]);
373
- const displayText = React18.useMemo(() => getDisplayText(value), [value]);
355
+ const displayText = React17.useMemo(() => getDisplayText(value), [value]);
374
356
  const hasValue = displayText != null;
375
- const acceptString = React18.useMemo(() => normalizeAccept(accept), [accept]);
376
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
357
+ const acceptString = React17.useMemo(() => normalizeAccept(accept), [accept]);
358
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
377
359
  className: FilePickerField_default.osdkFilePickerTrigger,
378
360
  "aria-invalid": error != null || void 0
379
- }, /* @__PURE__ */ React18__namespace.default.createElement("input", {
361
+ }, /* @__PURE__ */ React17__default.default.createElement("input", {
380
362
  ref: inputRef,
381
363
  type: "file",
382
364
  className: FilePickerField_default.osdkFilePickerHiddenInput,
@@ -384,7 +366,7 @@ var FilePickerField = /* @__PURE__ */ React18.memo(function FilePickerFieldFn({
384
366
  accept: acceptString,
385
367
  onChange: handleInputChange,
386
368
  tabIndex: -1
387
- }), /* @__PURE__ */ React18__namespace.default.createElement(button.Button, {
369
+ }), /* @__PURE__ */ React17__default.default.createElement(button.Button, {
388
370
  ref: fileTriggerRef,
389
371
  id,
390
372
  type: "button",
@@ -393,12 +375,12 @@ var FilePickerField = /* @__PURE__ */ React18.memo(function FilePickerFieldFn({
393
375
  onKeyDown: handleKeyDown,
394
376
  "aria-label": "Choose file",
395
377
  "aria-invalid": error != null || void 0
396
- }, displayText ?? text), hasValue && /* @__PURE__ */ React18__namespace.default.createElement(button.Button, {
378
+ }, displayText ?? text), hasValue && /* @__PURE__ */ React17__default.default.createElement(button.Button, {
397
379
  type: "button",
398
380
  className: FilePickerField_default.osdkFilePickerClear,
399
381
  onClick: handleClear,
400
382
  "aria-label": "Clear selection"
401
- }, /* @__PURE__ */ React18__namespace.default.createElement(icons.Cross, null)), /* @__PURE__ */ React18__namespace.default.createElement(chunkMD4KDE44_cjs.ActionButton, {
383
+ }, /* @__PURE__ */ React17__default.default.createElement(icons.Cross, null)), /* @__PURE__ */ React17__default.default.createElement(chunkMD4KDE44_cjs.ActionButton, {
402
384
  type: "button",
403
385
  tabIndex: -1,
404
386
  className: FilePickerField_default.osdkFilePickerBrowse,
@@ -439,8 +421,8 @@ function NumberInputField({
439
421
  max,
440
422
  step
441
423
  }) {
442
- const [displayValue, setDisplayValue] = React18.useState(() => formatNumberForDisplay(value));
443
- const prevValueRef = React18.useRef(value);
424
+ const [displayValue, setDisplayValue] = React17.useState(() => formatNumberForDisplay(value));
425
+ const prevValueRef = React17.useRef(value);
444
426
  if (prevValueRef.current !== value) {
445
427
  prevValueRef.current = value;
446
428
  const currentParsed = parseNumericValue(displayValue);
@@ -448,14 +430,14 @@ function NumberInputField({
448
430
  setDisplayValue(formatNumberForDisplay(value));
449
431
  }
450
432
  }
451
- const handleValueChange = React18.useCallback((newValue) => {
433
+ const handleValueChange = React17.useCallback((newValue) => {
452
434
  if (!isValidInput(newValue)) {
453
435
  return;
454
436
  }
455
437
  setDisplayValue(newValue);
456
438
  onChange?.(parseNumericValue(newValue));
457
439
  }, [onChange]);
458
- const applyStep = React18.useCallback((direction) => {
440
+ const applyStep = React17.useCallback((direction) => {
459
441
  const current = parseNumericValue(displayValue) ?? 0;
460
442
  const delta = direction * (step ?? DEFAULT_STEP);
461
443
  const next = clamp(current + delta, min, max);
@@ -463,23 +445,23 @@ function NumberInputField({
463
445
  setDisplayValue(formatted);
464
446
  onChange?.(next);
465
447
  }, [displayValue, onChange, step, min, max]);
466
- const handleKeyDown = React18.useCallback((e) => {
448
+ const handleKeyDown = React17.useCallback((e) => {
467
449
  if (e.key !== "ArrowUp" && e.key !== "ArrowDown") {
468
450
  return;
469
451
  }
470
452
  e.preventDefault();
471
453
  applyStep(e.key === "ArrowUp" ? 1 : -1);
472
454
  }, [applyStep]);
473
- const handleStepUp = React18.useCallback(() => {
455
+ const handleStepUp = React17.useCallback(() => {
474
456
  applyStep(1);
475
457
  }, [applyStep]);
476
- const handleStepDown = React18.useCallback(() => {
458
+ const handleStepDown = React17.useCallback(() => {
477
459
  applyStep(-1);
478
460
  }, [applyStep]);
479
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
461
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
480
462
  className: NumberInputField_default.osdkNumberInputWrapper,
481
463
  "aria-invalid": error != null || void 0
482
- }, /* @__PURE__ */ React18__namespace.default.createElement(input.Input, {
464
+ }, /* @__PURE__ */ React17__default.default.createElement(input.Input, {
483
465
  id,
484
466
  className: NumberInputField_default.osdkNumberInputField,
485
467
  type: "text",
@@ -488,21 +470,21 @@ function NumberInputField({
488
470
  onValueChange: handleValueChange,
489
471
  onKeyDown: handleKeyDown,
490
472
  placeholder
491
- }), /* @__PURE__ */ React18__namespace.default.createElement("div", {
473
+ }), /* @__PURE__ */ React17__default.default.createElement("div", {
492
474
  className: NumberInputField_default.osdkNumberInputStepper
493
- }, /* @__PURE__ */ React18__namespace.default.createElement(button.Button, {
475
+ }, /* @__PURE__ */ React17__default.default.createElement(button.Button, {
494
476
  className: NumberInputField_default.osdkNumberInputStepButton,
495
477
  "aria-label": "Increment",
496
478
  tabIndex: -1,
497
479
  onClick: handleStepUp
498
- }, /* @__PURE__ */ React18__namespace.default.createElement(icons.ChevronUp, {
480
+ }, /* @__PURE__ */ React17__default.default.createElement(icons.ChevronUp, {
499
481
  size: CHEVRON_SIZE
500
- })), /* @__PURE__ */ React18__namespace.default.createElement(button.Button, {
482
+ })), /* @__PURE__ */ React17__default.default.createElement(button.Button, {
501
483
  className: NumberInputField_default.osdkNumberInputStepButton,
502
484
  "aria-label": "Decrement",
503
485
  tabIndex: -1,
504
486
  onClick: handleStepDown
505
- }, /* @__PURE__ */ React18__namespace.default.createElement(icons.ChevronDown, {
487
+ }, /* @__PURE__ */ React17__default.default.createElement(icons.ChevronDown, {
506
488
  size: CHEVRON_SIZE
507
489
  }))));
508
490
  }
@@ -525,8 +507,8 @@ function clamp(value, min, max) {
525
507
  return value;
526
508
  }
527
509
  function useDebouncedValue(value, debounceMs) {
528
- const [debouncedValue, setDebouncedValue] = React18.useState(value);
529
- React18.useEffect(function debounceValue() {
510
+ const [debouncedValue, setDebouncedValue] = React17.useState(value);
511
+ React17.useEffect(function debounceValue() {
530
512
  const timer = setTimeout(() => {
531
513
  setDebouncedValue(value);
532
514
  }, debounceMs);
@@ -536,20 +518,6 @@ function useDebouncedValue(value, debounceMs) {
536
518
  }, [value, debounceMs]);
537
519
  return debouncedValue;
538
520
  }
539
- function useEventCallback(callback) {
540
- const latestCallbackValueWrapper = React18__namespace.useRef((...args) => {
541
- if (typeof globalThis.console !== "undefined") {
542
- globalThis.console.error("A callback created with `useEventCallback` was called during the initial render of a component. This will throw an error in the future.");
543
- }
544
- return callback(...args);
545
- });
546
- React18__namespace.useEffect(() => {
547
- latestCallbackValueWrapper.current = callback;
548
- }, [callback]);
549
- return React18__namespace.useCallback((...args) => latestCallbackValueWrapper.current(...args), []);
550
- }
551
-
552
- // src/shared/hooks/useInfiniteScroll.ts
553
521
  var THRESHOLD = 0.5;
554
522
  var OPTIONS = {
555
523
  threshold: THRESHOLD
@@ -558,11 +526,11 @@ function useInfiniteScroll({
558
526
  callback,
559
527
  loadedCount
560
528
  }) {
561
- const observer = React18.useRef();
562
- const targetRef = React18.useRef();
563
- const eventCallback = useEventCallback(callback);
564
- const throttledCallback = React18.useCallback(lodashEs.throttle(eventCallback), []);
565
- const handleObserverUpdate = React18.useCallback(
529
+ const observer = React17.useRef();
530
+ const targetRef = React17.useRef();
531
+ const eventCallback = chunkFRSIMUPL_cjs.useEventCallback(callback);
532
+ const throttledCallback = React17.useCallback(lodashEs.throttle(eventCallback), []);
533
+ const handleObserverUpdate = React17.useCallback(
566
534
  (entries) => {
567
535
  const ent = entries[0];
568
536
  if (ent && ent.isIntersecting) {
@@ -572,7 +540,7 @@ function useInfiniteScroll({
572
540
  // eslint-disable-next-line react-hooks/exhaustive-deps
573
541
  []
574
542
  );
575
- React18.useEffect(() => {
543
+ React17.useEffect(() => {
576
544
  const {
577
545
  current: targetElement
578
546
  } = targetRef;
@@ -611,7 +579,7 @@ function _extends() {
611
579
  return n;
612
580
  }, _extends.apply(null, arguments);
613
581
  }
614
- var AsyncDropdownField = chunkZBJEZKOD_cjs.typedReactMemo(function AsyncDropdownFieldFn({
582
+ var AsyncDropdownField = chunkFRSIMUPL_cjs.typedReactMemo(function AsyncDropdownFieldFn({
615
583
  isLoading,
616
584
  hasMore,
617
585
  isSearching,
@@ -620,20 +588,20 @@ var AsyncDropdownField = chunkZBJEZKOD_cjs.typedReactMemo(function AsyncDropdown
620
588
  ...dropdownProps
621
589
  }) {
622
590
  const itemCount = dropdownProps.items.length;
623
- const popupStatus = React18.useMemo(() => {
591
+ const popupStatus = React17.useMemo(() => {
624
592
  if (fetchError != null) {
625
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
593
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
626
594
  className: AsyncDropdownField_default.osdkAsyncDropdownError,
627
595
  role: "alert"
628
596
  }, fetchError.message);
629
597
  }
630
598
  if (isSearching) {
631
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
599
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
632
600
  className: AsyncDropdownField_default.osdkAsyncDropdownStatus
633
601
  }, "Searching\u2026");
634
602
  }
635
603
  if (isLoading && itemCount === 0) {
636
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
604
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
637
605
  className: AsyncDropdownField_default.osdkAsyncDropdownStatus
638
606
  }, "Loading\u2026");
639
607
  }
@@ -643,10 +611,10 @@ var AsyncDropdownField = chunkZBJEZKOD_cjs.typedReactMemo(function AsyncDropdown
643
611
  callback: onFetchMore,
644
612
  loadedCount: itemCount
645
613
  });
646
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkZBJEZKOD_cjs.DropdownField, _extends({}, dropdownProps, {
614
+ return /* @__PURE__ */ React17__default.default.createElement(chunkFRSIMUPL_cjs.DropdownField, _extends({}, dropdownProps, {
647
615
  isSearchable: true,
648
616
  popupStatus,
649
- trailingItem: hasMore ? /* @__PURE__ */ React18__namespace.default.createElement(InfiniteScrollSentinel, {
617
+ trailingItem: hasMore ? /* @__PURE__ */ React17__default.default.createElement(InfiniteScrollSentinel, {
650
618
  key: "sentinel",
651
619
  infiniteScrollRef
652
620
  }) : null,
@@ -656,10 +624,10 @@ var AsyncDropdownField = chunkZBJEZKOD_cjs.typedReactMemo(function AsyncDropdown
656
624
  function InfiniteScrollSentinel({
657
625
  infiniteScrollRef
658
626
  }) {
659
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
627
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
660
628
  ref: infiniteScrollRef,
661
629
  role: "presentation"
662
- }, /* @__PURE__ */ React18__namespace.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
630
+ }, /* @__PURE__ */ React17__default.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
663
631
  className: AsyncDropdownField_default.osdkAsyncDropdownSkeleton
664
632
  }));
665
633
  }
@@ -677,13 +645,13 @@ function _extends2() {
677
645
  var SEARCH_DEBOUNCE_MS = 300;
678
646
  var PAGE_SIZE = 50;
679
647
  var EMPTY_OBJECT_SELECT_ITEMS = [];
680
- var ObjectSelectField = /* @__PURE__ */ React18.memo(function ObjectSelectFieldFn(props) {
648
+ var ObjectSelectField = /* @__PURE__ */ React17.memo(function ObjectSelectFieldFn(props) {
681
649
  const source = resolveObjectSelectSource(props);
682
- return /* @__PURE__ */ React18__namespace.default.createElement(ObjectSelectInner, _extends2({}, props, {
650
+ return /* @__PURE__ */ React17__default.default.createElement(ObjectSelectInner, _extends2({}, props, {
683
651
  source
684
652
  }));
685
653
  });
686
- var ObjectSelectInner = /* @__PURE__ */ React18.memo(function ObjectSelectInnerFn({
654
+ var ObjectSelectInner = /* @__PURE__ */ React17.memo(function ObjectSelectInnerFn({
687
655
  source,
688
656
  value,
689
657
  onChange,
@@ -694,9 +662,9 @@ var ObjectSelectInner = /* @__PURE__ */ React18.memo(function ObjectSelectInnerF
694
662
  portalRef,
695
663
  portalContainer
696
664
  }) {
697
- const [query, setQuery] = React18.useState("");
665
+ const [query, setQuery] = React17.useState("");
698
666
  const debouncedQuery = useDebouncedValue(query, SEARCH_DEBOUNCE_MS);
699
- const handleChange = React18.useCallback((newValue) => {
667
+ const handleChange = React17.useCallback((newValue) => {
700
668
  onChange?.(newValue);
701
669
  setQuery("");
702
670
  }, [onChange]);
@@ -704,7 +672,7 @@ var ObjectSelectInner = /* @__PURE__ */ React18.memo(function ObjectSelectInnerF
704
672
  metadata
705
673
  } = react.useOsdkMetadata(source.objectType);
706
674
  const titleProperty = typeof metadata?.titleProperty === "string" ? metadata.titleProperty : void 0;
707
- const where = React18.useMemo(() => {
675
+ const where = React17.useMemo(() => {
708
676
  const trimmed = debouncedQuery.trim();
709
677
  if (trimmed === "" || titleProperty == null) {
710
678
  return void 0;
@@ -733,10 +701,10 @@ var ObjectSelectInner = /* @__PURE__ */ React18.memo(function ObjectSelectInnerF
733
701
  hasMore
734
702
  } = source.kind === "objectSet" ? objectSetResult : objectTypeResult;
735
703
  const items = data ?? EMPTY_OBJECT_SELECT_ITEMS;
736
- const handleFetchMore = React18.useCallback(() => {
704
+ const handleFetchMore = React17.useCallback(() => {
737
705
  void fetchMore?.();
738
706
  }, [fetchMore]);
739
- return /* @__PURE__ */ React18__namespace.default.createElement(AsyncDropdownField, {
707
+ return /* @__PURE__ */ React17__default.default.createElement(AsyncDropdownField, {
740
708
  id,
741
709
  value,
742
710
  onChange: handleChange,
@@ -779,23 +747,23 @@ function itemToKey(obj) {
779
747
  function isItemEqual(a, b) {
780
748
  return a.$primaryKey === b.$primaryKey;
781
749
  }
782
- var BlueprintIcon = /* @__PURE__ */ React18__namespace.default.memo(function BlueprintIconFn({
750
+ var BlueprintIcon = /* @__PURE__ */ React17__default.default.memo(function BlueprintIconFn({
783
751
  icon,
784
752
  size
785
753
  }) {
786
754
  const paths = useIcon(icon.name, size);
787
- return /* @__PURE__ */ React18__namespace.default.createElement(icons.SVGIconContainer, {
755
+ return /* @__PURE__ */ React17__default.default.createElement(icons.SVGIconContainer, {
788
756
  iconName: icon.name,
789
757
  color: icon.color
790
- }, paths != null ? paths.map((d, i) => /* @__PURE__ */ React18__namespace.default.createElement("path", {
758
+ }, paths != null ? paths.map((d, i) => /* @__PURE__ */ React17__default.default.createElement("path", {
791
759
  key: i,
792
760
  d,
793
761
  fillRule: "evenodd"
794
762
  })) : []);
795
763
  });
796
764
  function useIcon(icon, size) {
797
- const [iconPaths, setIconPaths] = React18__namespace.default.useState(() => icons.Icons.getPaths(icon, size));
798
- React18__namespace.default.useEffect(function loadIconPaths() {
765
+ const [iconPaths, setIconPaths] = React17__default.default.useState(() => icons.Icons.getPaths(icon, size));
766
+ React17__default.default.useEffect(function loadIconPaths() {
799
767
  let isMounted = true;
800
768
  const loadedIconPaths = icons.Icons.getPaths(icon, size);
801
769
  if (loadedIconPaths != null) {
@@ -824,20 +792,20 @@ var DEFAULT_OBJECT_ICON = {
824
792
  };
825
793
  var ICON_SIZE = icons.IconSize.STANDARD;
826
794
  var DEFAULT_EMPTY_MESSAGE = "Object set is not defined";
827
- var ObjectSetField = chunkZBJEZKOD_cjs.typedReactMemo(function ObjectSetFieldFn({
795
+ var ObjectSetField = chunkFRSIMUPL_cjs.typedReactMemo(function ObjectSetFieldFn({
828
796
  value,
829
797
  emptyMessage = DEFAULT_EMPTY_MESSAGE
830
798
  }) {
831
799
  if (value == null) {
832
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
800
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
833
801
  className: classnames__default.default(ObjectSetField_default.osdkObjectSetField, ObjectSetField_default.osdkObjectSetFieldEmpty)
834
802
  }, emptyMessage);
835
803
  }
836
- return /* @__PURE__ */ React18__namespace.default.createElement(ObjectSetFieldContent, {
804
+ return /* @__PURE__ */ React17__default.default.createElement(ObjectSetFieldContent, {
837
805
  objectSet: value
838
806
  });
839
807
  });
840
- var ObjectSetFieldContent = /* @__PURE__ */ React18__namespace.default.memo(function ObjectSetFieldContentFn({
808
+ var ObjectSetFieldContent = /* @__PURE__ */ React17__default.default.memo(function ObjectSetFieldContentFn({
841
809
  objectSet
842
810
  }) {
843
811
  const objectTypeDef = objectSet.$objectSetInternals.def;
@@ -855,22 +823,22 @@ var ObjectSetFieldContent = /* @__PURE__ */ React18__namespace.default.memo(func
855
823
  pageSize: 1
856
824
  });
857
825
  const hasMetadata = metadata != null;
858
- const icon = React18__namespace.default.useMemo(() => metadata != null && "icon" in metadata && metadata.icon != null ? toComponentIcon(metadata.icon) : DEFAULT_OBJECT_ICON, [metadata]);
826
+ const icon = React17__default.default.useMemo(() => metadata != null && "icon" in metadata && metadata.icon != null ? toComponentIcon(metadata.icon) : DEFAULT_OBJECT_ICON, [metadata]);
859
827
  const displayName = totalCount === "1" || !hasMetadata || !("pluralDisplayName" in metadata) ? metadata?.displayName : metadata.pluralDisplayName;
860
828
  const showLoadingState = metadataLoading && !hasMetadata;
861
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
829
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
862
830
  className: ObjectSetField_default.osdkObjectSetField
863
- }, showLoadingState ? /* @__PURE__ */ React18__namespace.default.createElement(React18__namespace.default.Fragment, null, OBJECT_SET_ICON_SKELETON, OBJECT_SET_LABEL_SKELETON) : /* @__PURE__ */ React18__namespace.default.createElement(React18__namespace.default.Fragment, null, /* @__PURE__ */ React18__namespace.default.createElement(BlueprintIcon, {
831
+ }, showLoadingState ? /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, OBJECT_SET_ICON_SKELETON, OBJECT_SET_LABEL_SKELETON) : /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, /* @__PURE__ */ React17__default.default.createElement(BlueprintIcon, {
864
832
  icon,
865
833
  size: ICON_SIZE
866
- }), /* @__PURE__ */ React18__namespace.default.createElement(ObjectSetLabel, {
834
+ }), /* @__PURE__ */ React17__default.default.createElement(ObjectSetLabel, {
867
835
  displayName,
868
836
  totalCount,
869
837
  error: objectSetError,
870
838
  isLoading: objectSetLoading
871
839
  })));
872
840
  });
873
- var ObjectSetLabel = /* @__PURE__ */ React18__namespace.default.memo(function ObjectSetLabelFn({
841
+ var ObjectSetLabel = /* @__PURE__ */ React17__default.default.memo(function ObjectSetLabelFn({
874
842
  displayName,
875
843
  totalCount,
876
844
  isLoading,
@@ -880,15 +848,15 @@ var ObjectSetLabel = /* @__PURE__ */ React18__namespace.default.memo(function Ob
880
848
  const label = displayName ?? (totalCount === "1" ? "object" : "objects");
881
849
  const showSkeleton = isLoading && !hasData;
882
850
  const showError = error != null && !hasData && !isLoading;
883
- return /* @__PURE__ */ React18__namespace.default.createElement(React18__namespace.default.Fragment, null, showSkeleton && OBJECT_SET_LABEL_SKELETON, showError && /* @__PURE__ */ React18__namespace.default.createElement("span", {
851
+ return /* @__PURE__ */ React17__default.default.createElement(React17__default.default.Fragment, null, showSkeleton && OBJECT_SET_LABEL_SKELETON, showError && /* @__PURE__ */ React17__default.default.createElement("span", {
884
852
  className: ObjectSetField_default.osdkObjectSetFieldError,
885
853
  role: "alert"
886
- }, `Failed to load: ${error.message}`), !showSkeleton && !showError && /* @__PURE__ */ React18__namespace.default.createElement("span", null, `${formatCount(totalCount)} ${label}`));
854
+ }, `Failed to load: ${error.message}`), !showSkeleton && !showError && /* @__PURE__ */ React17__default.default.createElement("span", null, `${formatCount(totalCount)} ${label}`));
887
855
  });
888
- var OBJECT_SET_ICON_SKELETON = /* @__PURE__ */ React18__namespace.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
856
+ var OBJECT_SET_ICON_SKELETON = /* @__PURE__ */ React17__default.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
889
857
  className: ObjectSetField_default.osdkObjectSetIconSkeleton
890
858
  });
891
- var OBJECT_SET_LABEL_SKELETON = /* @__PURE__ */ React18__namespace.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
859
+ var OBJECT_SET_LABEL_SKELETON = /* @__PURE__ */ React17__default.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
892
860
  className: ObjectSetField_default.osdkObjectSetLabelSkeleton
893
861
  });
894
862
  function formatCount(count) {
@@ -909,51 +877,51 @@ function toComponentIcon(apiIcon) {
909
877
  var RadioButtonsField_default = {};
910
878
 
911
879
  // src/action-form/fields/RadioButtonsField.tsx
912
- var RadioButtonsField = chunkZBJEZKOD_cjs.typedReactMemo(function RadioButtonsFieldFn({
880
+ var RadioButtonsField = chunkFRSIMUPL_cjs.typedReactMemo(function RadioButtonsFieldFn({
913
881
  id,
914
882
  value,
915
883
  onChange,
916
884
  options,
917
885
  orientation
918
886
  }) {
919
- const selectedLabel = React18.useMemo(() => value != null ? options.find((opt) => opt.value === value)?.label : void 0, [options, value]);
920
- const handleValueChange = React18.useCallback((nextLabel) => {
887
+ const selectedLabel = React17.useMemo(() => value != null ? options.find((opt) => opt.value === value)?.label : void 0, [options, value]);
888
+ const handleValueChange = React17.useCallback((nextLabel) => {
921
889
  const match = options.find((opt) => opt.label === nextLabel);
922
890
  onChange?.(match?.value ?? null);
923
891
  }, [options, onChange]);
924
- return /* @__PURE__ */ React18__namespace.default.createElement(radioGroup.RadioGroup, {
892
+ return /* @__PURE__ */ React17__default.default.createElement(radioGroup.RadioGroup, {
925
893
  id,
926
894
  className: RadioButtonsField_default.osdkRadioGroup,
927
895
  "data-orientation": orientation ?? "vertical",
928
896
  value: selectedLabel,
929
897
  onValueChange: handleValueChange
930
- }, options.map((option) => /* @__PURE__ */ React18__namespace.default.createElement(RadioItem, {
898
+ }, options.map((option) => /* @__PURE__ */ React17__default.default.createElement(RadioItem, {
931
899
  key: option.label,
932
900
  option
933
901
  })));
934
902
  });
935
- var RadioItem = /* @__PURE__ */ React18.memo(function RadioItemFn({
903
+ var RadioItem = /* @__PURE__ */ React17.memo(function RadioItemFn({
936
904
  option
937
905
  }) {
938
- return /* @__PURE__ */ React18__namespace.default.createElement("label", {
906
+ return /* @__PURE__ */ React17__default.default.createElement("label", {
939
907
  className: RadioButtonsField_default.osdkRadioItem
940
- }, /* @__PURE__ */ React18__namespace.default.createElement(radio.Radio.Root, {
908
+ }, /* @__PURE__ */ React17__default.default.createElement(radio.Radio.Root, {
941
909
  value: option.label,
942
910
  className: RadioButtonsField_default.osdkRadioRoot
943
- }, /* @__PURE__ */ React18__namespace.default.createElement(radio.Radio.Indicator, {
911
+ }, /* @__PURE__ */ React17__default.default.createElement(radio.Radio.Indicator, {
944
912
  className: RadioButtonsField_default.osdkRadioIndicator
945
- })), /* @__PURE__ */ React18__namespace.default.createElement("span", {
913
+ })), /* @__PURE__ */ React17__default.default.createElement("span", {
946
914
  className: RadioButtonsField_default.osdkRadioLabel
947
915
  }, option.label));
948
916
  });
949
- var SwitchField = /* @__PURE__ */ React18__namespace.default.memo(function SwitchFieldFn({
917
+ var SwitchField = /* @__PURE__ */ React17__default.default.memo(function SwitchFieldFn({
950
918
  id,
951
919
  label,
952
920
  value,
953
921
  onChange,
954
922
  error
955
923
  }) {
956
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkSFQMJMTV_cjs.Switch, {
924
+ return /* @__PURE__ */ React17__default.default.createElement(chunkSFQMJMTV_cjs.Switch, {
957
925
  id,
958
926
  checked: value ?? false,
959
927
  onCheckedChange: onChange,
@@ -989,12 +957,12 @@ function TextAreaField({
989
957
  minLength,
990
958
  maxLength
991
959
  }) {
992
- const renderTextarea = React18.useCallback((props) => /* @__PURE__ */ React18__namespace.default.createElement("textarea", _extends3({}, props, {
960
+ const renderTextarea = React17.useCallback((props) => /* @__PURE__ */ React17__default.default.createElement("textarea", _extends3({}, props, {
993
961
  rows,
994
962
  wrap,
995
963
  style: TEXTAREA_STYLE
996
964
  })), [rows, wrap]);
997
- return /* @__PURE__ */ React18__namespace.default.createElement(input.Input, {
965
+ return /* @__PURE__ */ React17__default.default.createElement(input.Input, {
998
966
  id,
999
967
  className: BaseInput_default.osdkBaseInput,
1000
968
  value: value ?? "",
@@ -1016,13 +984,13 @@ function TextInputField({
1016
984
  maxLength,
1017
985
  disabled
1018
986
  }) {
1019
- const handleValueChange = React18.useCallback((nextValue) => {
987
+ const handleValueChange = React17.useCallback((nextValue) => {
1020
988
  if (disabled === true) {
1021
989
  return;
1022
990
  }
1023
991
  onChange?.(nextValue);
1024
992
  }, [disabled, onChange]);
1025
- return /* @__PURE__ */ React18__namespace.default.createElement(input.Input, {
993
+ return /* @__PURE__ */ React17__default.default.createElement(input.Input, {
1026
994
  id,
1027
995
  className: BaseInput_default.osdkBaseInput,
1028
996
  type: "text",
@@ -1047,7 +1015,7 @@ function _extends4() {
1047
1015
  }, _extends4.apply(null, arguments);
1048
1016
  }
1049
1017
  var UNSUPPORTED_FIELD_MESSAGE = "Unsupported field type. Use a CUSTOM field instead";
1050
- var FormFieldRenderer = /* @__PURE__ */ React18.memo(function FormFieldRendererFn({
1018
+ var FormFieldRenderer = /* @__PURE__ */ React17.memo(function FormFieldRendererFn({
1051
1019
  fieldDefinition,
1052
1020
  value,
1053
1021
  onFieldValueChange,
@@ -1062,7 +1030,7 @@ var FormFieldRenderer = /* @__PURE__ */ React18.memo(function FormFieldRendererF
1062
1030
  helperText,
1063
1031
  helperTextPlacement
1064
1032
  } = fieldDefinition;
1065
- return /* @__PURE__ */ React18__namespace.default.createElement(FormField, {
1033
+ return /* @__PURE__ */ React17__default.default.createElement(FormField, {
1066
1034
  label,
1067
1035
  isRequired,
1068
1036
  fieldKey: fieldDefinition.fieldKey,
@@ -1075,7 +1043,7 @@ var FormFieldRenderer = /* @__PURE__ */ React18.memo(function FormFieldRendererF
1075
1043
  function renderFieldComponent(fieldDefinition, value, onChange, error, portalContainer, onFieldBlur) {
1076
1044
  switch (fieldDefinition.fieldComponent) {
1077
1045
  case "DATE_RANGE_INPUT":
1078
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkZ4JDLERD_cjs.DateRangePicker, _extends4({
1046
+ return /* @__PURE__ */ React17__default.default.createElement(chunkZ4JDLERD_cjs.DateRangePicker, _extends4({
1079
1047
  id: fieldDefinition.fieldKey,
1080
1048
  value: coerceToDateRange(value),
1081
1049
  onChange,
@@ -1084,7 +1052,7 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1084
1052
  portalContainer: resolvePortalContainer(fieldDefinition.fieldComponentProps, portalContainer)
1085
1053
  }));
1086
1054
  case "TEXT_INPUT":
1087
- return /* @__PURE__ */ React18__namespace.default.createElement(TextInputField, _extends4({
1055
+ return /* @__PURE__ */ React17__default.default.createElement(TextInputField, _extends4({
1088
1056
  id: fieldDefinition.fieldKey,
1089
1057
  value: value != null ? String(value) : "",
1090
1058
  onChange,
@@ -1092,14 +1060,14 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1092
1060
  error
1093
1061
  }, fieldDefinition.fieldComponentProps));
1094
1062
  case "UNSUPPORTED":
1095
- return /* @__PURE__ */ React18__namespace.default.createElement(TextInputField, _extends4({}, fieldDefinition.fieldComponentProps, {
1063
+ return /* @__PURE__ */ React17__default.default.createElement(TextInputField, _extends4({}, fieldDefinition.fieldComponentProps, {
1096
1064
  id: fieldDefinition.fieldKey,
1097
1065
  value: UNSUPPORTED_FIELD_MESSAGE,
1098
1066
  error,
1099
1067
  disabled: true
1100
1068
  }));
1101
1069
  case "TEXT_AREA":
1102
- return /* @__PURE__ */ React18__namespace.default.createElement(TextAreaField, _extends4({
1070
+ return /* @__PURE__ */ React17__default.default.createElement(TextAreaField, _extends4({
1103
1071
  id: fieldDefinition.fieldKey,
1104
1072
  value: value != null ? String(value) : "",
1105
1073
  onChange,
@@ -1107,7 +1075,7 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1107
1075
  error
1108
1076
  }, fieldDefinition.fieldComponentProps));
1109
1077
  case "DROPDOWN": {
1110
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkZBJEZKOD_cjs.DropdownField, _extends4({
1078
+ return /* @__PURE__ */ React17__default.default.createElement(chunkFRSIMUPL_cjs.DropdownField, _extends4({
1111
1079
  id: fieldDefinition.fieldKey,
1112
1080
  value,
1113
1081
  onChange,
@@ -1119,7 +1087,7 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1119
1087
  }));
1120
1088
  }
1121
1089
  case "DATETIME_PICKER":
1122
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkZ4JDLERD_cjs.DatePicker, _extends4({
1090
+ return /* @__PURE__ */ React17__default.default.createElement(chunkZ4JDLERD_cjs.DatePicker, _extends4({
1123
1091
  id: fieldDefinition.fieldKey,
1124
1092
  placeholder: fieldDefinition.placeholder,
1125
1093
  value: value instanceof Date ? value : null,
@@ -1129,14 +1097,14 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1129
1097
  portalContainer: resolvePortalContainer(fieldDefinition.fieldComponentProps, portalContainer)
1130
1098
  }));
1131
1099
  case "RADIO_BUTTONS":
1132
- return /* @__PURE__ */ React18__namespace.default.createElement(RadioButtonsField, _extends4({
1100
+ return /* @__PURE__ */ React17__default.default.createElement(RadioButtonsField, _extends4({
1133
1101
  id: fieldDefinition.fieldKey,
1134
1102
  value,
1135
1103
  onChange,
1136
1104
  error
1137
1105
  }, fieldDefinition.fieldComponentProps));
1138
1106
  case "SWITCH":
1139
- return /* @__PURE__ */ React18__namespace.default.createElement(SwitchField, _extends4({
1107
+ return /* @__PURE__ */ React17__default.default.createElement(SwitchField, _extends4({
1140
1108
  id: fieldDefinition.fieldKey,
1141
1109
  label: fieldDefinition.label,
1142
1110
  value: !!value,
@@ -1144,14 +1112,14 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1144
1112
  error
1145
1113
  }, fieldDefinition.fieldComponentProps));
1146
1114
  case "CUSTOM":
1147
- return /* @__PURE__ */ React18__namespace.default.createElement(CustomField, _extends4({
1115
+ return /* @__PURE__ */ React17__default.default.createElement(CustomField, _extends4({
1148
1116
  id: fieldDefinition.fieldKey,
1149
1117
  value,
1150
1118
  onChange,
1151
1119
  error
1152
1120
  }, fieldDefinition.fieldComponentProps));
1153
1121
  case "NUMBER_INPUT":
1154
- return /* @__PURE__ */ React18__namespace.default.createElement(NumberInputField, _extends4({
1122
+ return /* @__PURE__ */ React17__default.default.createElement(NumberInputField, _extends4({
1155
1123
  id: fieldDefinition.fieldKey,
1156
1124
  value: typeof value === "number" ? value : null,
1157
1125
  onChange,
@@ -1159,14 +1127,14 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1159
1127
  error
1160
1128
  }, fieldDefinition.fieldComponentProps));
1161
1129
  case "FILE_PICKER":
1162
- return /* @__PURE__ */ React18__namespace.default.createElement(FilePickerField, _extends4({
1130
+ return /* @__PURE__ */ React17__default.default.createElement(FilePickerField, _extends4({
1163
1131
  id: fieldDefinition.fieldKey,
1164
1132
  value: coerceToFileValue(value),
1165
1133
  onChange,
1166
1134
  error
1167
1135
  }, fieldDefinition.fieldComponentProps));
1168
1136
  case "OBJECT_SELECT":
1169
- return /* @__PURE__ */ React18__namespace.default.createElement(ObjectSelectField, _extends4({
1137
+ return /* @__PURE__ */ React17__default.default.createElement(ObjectSelectField, _extends4({
1170
1138
  id: fieldDefinition.fieldKey,
1171
1139
  value: narrowToOsdkObject(value),
1172
1140
  onChange,
@@ -1176,7 +1144,7 @@ function renderFieldComponent(fieldDefinition, value, onChange, error, portalCon
1176
1144
  portalContainer: resolvePortalContainer(fieldDefinition.fieldComponentProps, portalContainer)
1177
1145
  }));
1178
1146
  case "OBJECT_SET":
1179
- return /* @__PURE__ */ React18__namespace.default.createElement(ObjectSetField, _extends4({
1147
+ return /* @__PURE__ */ React17__default.default.createElement(ObjectSetField, _extends4({
1180
1148
  id: fieldDefinition.fieldKey
1181
1149
  }, fieldDefinition.fieldComponentProps));
1182
1150
  default:
@@ -1217,13 +1185,13 @@ function assertUnreachableFieldComponent(value) {
1217
1185
 
1218
1186
  // src/action-form/fields/FieldBridge.tsx
1219
1187
  var SELECT_LIKE_FIELDS = /* @__PURE__ */ new Set(["RADIO_BUTTONS", "SWITCH"]);
1220
- var FieldBridge = /* @__PURE__ */ React18.memo(function FieldBridgeFn({
1188
+ var FieldBridge = /* @__PURE__ */ React17.memo(function FieldBridgeFn({
1221
1189
  fieldDef,
1222
1190
  control,
1223
1191
  onExternalChange,
1224
1192
  portalContainer
1225
1193
  }) {
1226
- const rules = React18.useMemo(() => extractValidationRules(fieldDef), [fieldDef]);
1194
+ const rules = React17.useMemo(() => extractValidationRules(fieldDef), [fieldDef]);
1227
1195
  const {
1228
1196
  field: {
1229
1197
  onChange,
@@ -1240,20 +1208,20 @@ var FieldBridge = /* @__PURE__ */ React18.memo(function FieldBridgeFn({
1240
1208
  });
1241
1209
  const isSelectLike = SELECT_LIKE_FIELDS.has(fieldDef.fieldComponent);
1242
1210
  const isDropdown = fieldDef.fieldComponent === "DROPDOWN";
1243
- const handleChange = React18.useCallback((newValue) => {
1211
+ const handleChange = React17.useCallback((newValue) => {
1244
1212
  onChange(newValue);
1245
1213
  onExternalChange?.(fieldDef.fieldKey, newValue);
1246
1214
  if (isSelectLike) {
1247
1215
  onBlur();
1248
1216
  }
1249
1217
  }, [onChange, onBlur, onExternalChange, fieldDef.fieldKey, isSelectLike]);
1250
- const handleBlur = React18.useCallback((e) => {
1218
+ const handleBlur = React17.useCallback((e) => {
1251
1219
  if (e.currentTarget.contains(e.relatedTarget)) {
1252
1220
  return;
1253
1221
  }
1254
1222
  onBlur();
1255
1223
  }, [onBlur]);
1256
- return /* @__PURE__ */ React18__namespace.default.createElement(FormFieldRenderer, {
1224
+ return /* @__PURE__ */ React17__default.default.createElement(FormFieldRenderer, {
1257
1225
  value,
1258
1226
  fieldDefinition: fieldDef,
1259
1227
  onFieldValueChange: handleChange,
@@ -1268,10 +1236,10 @@ var FieldBridge = /* @__PURE__ */ React18.memo(function FieldBridgeFn({
1268
1236
  var FormHeader_default = {};
1269
1237
 
1270
1238
  // src/action-form/FormHeader.tsx
1271
- var FormHeader = /* @__PURE__ */ React18.memo(function FormHeaderFn({
1239
+ var FormHeader = /* @__PURE__ */ React17.memo(function FormHeaderFn({
1272
1240
  title
1273
1241
  }) {
1274
- return /* @__PURE__ */ React18__namespace.default.createElement("h2", {
1242
+ return /* @__PURE__ */ React17__default.default.createElement("h2", {
1275
1243
  className: FormHeader_default.osdkFormHeader
1276
1244
  }, title);
1277
1245
  });
@@ -1280,7 +1248,7 @@ var FormHeader = /* @__PURE__ */ React18.memo(function FormHeaderFn({
1280
1248
  var FormSection_default = {};
1281
1249
 
1282
1250
  // src/action-form/FormSection.tsx
1283
- var FormSection = /* @__PURE__ */ React18.memo(function FormSectionFn({
1251
+ var FormSection = /* @__PURE__ */ React17.memo(function FormSectionFn({
1284
1252
  definition,
1285
1253
  errorCount,
1286
1254
  children
@@ -1295,65 +1263,65 @@ var FormSection = /* @__PURE__ */ React18.memo(function FormSectionFn({
1295
1263
  } = definition;
1296
1264
  const isMinimal = style === "minimal";
1297
1265
  if (isMinimal) {
1298
- return /* @__PURE__ */ React18__namespace.default.createElement(MinimalSection, {
1266
+ return /* @__PURE__ */ React17__default.default.createElement(MinimalSection, {
1299
1267
  title,
1300
1268
  description
1301
1269
  }, children);
1302
1270
  }
1303
1271
  const contentClassName = classnames__default.default(columnCount === 2 ? FormSection_default.osdkFormSectionGrid : FormSection_default.osdkFormSectionContent, FormSection_default.osdkFormSectionDivider);
1304
1272
  if (!showTitleBar) {
1305
- return /* @__PURE__ */ React18__namespace.default.createElement("div", {
1273
+ return /* @__PURE__ */ React17__default.default.createElement("div", {
1306
1274
  className: FormSection_default.osdkFormSectionBox
1307
- }, /* @__PURE__ */ React18__namespace.default.createElement("div", {
1275
+ }, /* @__PURE__ */ React17__default.default.createElement("div", {
1308
1276
  className: contentClassName
1309
1277
  }, children));
1310
1278
  }
1311
- return /* @__PURE__ */ React18__namespace.default.createElement(collapsible.Collapsible.Root, {
1279
+ return /* @__PURE__ */ React17__default.default.createElement(collapsible.Collapsible.Root, {
1312
1280
  // Inverted: Base UI uses "open" semantics, our API uses "collapsed" semantics
1313
1281
  defaultOpen: !collapsedByDefault,
1314
1282
  className: FormSection_default.osdkFormSectionBox
1315
- }, /* @__PURE__ */ React18__namespace.default.createElement("div", {
1283
+ }, /* @__PURE__ */ React17__default.default.createElement("div", {
1316
1284
  className: FormSection_default.osdkFormSectionHeader
1317
- }, /* @__PURE__ */ React18__namespace.default.createElement("div", {
1285
+ }, /* @__PURE__ */ React17__default.default.createElement("div", {
1318
1286
  className: FormSection_default.osdkFormSectionTitleArea
1319
- }, /* @__PURE__ */ React18__namespace.default.createElement("span", {
1287
+ }, /* @__PURE__ */ React17__default.default.createElement("span", {
1320
1288
  className: FormSection_default.osdkFormSectionTitle
1321
- }, title), description != null && /* @__PURE__ */ React18__namespace.default.createElement("span", {
1289
+ }, title), description != null && /* @__PURE__ */ React17__default.default.createElement("span", {
1322
1290
  className: FormSection_default.osdkFormSectionDescription
1323
- }, description)), /* @__PURE__ */ React18__namespace.default.createElement(collapsible.Collapsible.Trigger, {
1291
+ }, description)), /* @__PURE__ */ React17__default.default.createElement(collapsible.Collapsible.Trigger, {
1324
1292
  className: FormSection_default.osdkFormSectionTrigger,
1325
1293
  "aria-label": title
1326
- }, errorCount > 0 && /* @__PURE__ */ React18__namespace.default.createElement("span", {
1294
+ }, errorCount > 0 && /* @__PURE__ */ React17__default.default.createElement("span", {
1327
1295
  className: FormSection_default.osdkFormSectionErrorBadge,
1328
1296
  role: "status"
1329
- }, errorCount === 1 ? "1 error" : `${errorCount} errors`), /* @__PURE__ */ React18__namespace.default.createElement("span", {
1297
+ }, errorCount === 1 ? "1 error" : `${errorCount} errors`), /* @__PURE__ */ React17__default.default.createElement("span", {
1330
1298
  className: FormSection_default.osdkFormSectionChevron
1331
- }, /* @__PURE__ */ React18__namespace.default.createElement(icons.CaretDown, {
1299
+ }, /* @__PURE__ */ React17__default.default.createElement(icons.CaretDown, {
1332
1300
  size: 16
1333
- })))), /* @__PURE__ */ React18__namespace.default.createElement(collapsible.Collapsible.Panel, {
1301
+ })))), /* @__PURE__ */ React17__default.default.createElement(collapsible.Collapsible.Panel, {
1334
1302
  keepMounted: true
1335
- }, /* @__PURE__ */ React18__namespace.default.createElement("div", {
1303
+ }, /* @__PURE__ */ React17__default.default.createElement("div", {
1336
1304
  className: contentClassName
1337
1305
  }, children)));
1338
1306
  });
1339
- var MinimalSection = /* @__PURE__ */ React18.memo(function MinimalSectionFn({
1307
+ var MinimalSection = /* @__PURE__ */ React17.memo(function MinimalSectionFn({
1340
1308
  title,
1341
1309
  description,
1342
1310
  children
1343
1311
  }) {
1344
- return /* @__PURE__ */ React18__namespace.default.createElement("div", null, /* @__PURE__ */ React18__namespace.default.createElement("div", {
1312
+ return /* @__PURE__ */ React17__default.default.createElement("div", null, /* @__PURE__ */ React17__default.default.createElement("div", {
1345
1313
  className: FormSection_default.osdkFormSectionMinimalHeader
1346
- }, /* @__PURE__ */ React18__namespace.default.createElement("div", {
1314
+ }, /* @__PURE__ */ React17__default.default.createElement("div", {
1347
1315
  className: FormSection_default.osdkFormSectionMinimalTitle
1348
- }, title), description != null && /* @__PURE__ */ React18__namespace.default.createElement("div", {
1316
+ }, title), description != null && /* @__PURE__ */ React17__default.default.createElement("div", {
1349
1317
  className: FormSection_default.osdkFormSectionMinimalDescription
1350
- }, description)), /* @__PURE__ */ React18__namespace.default.createElement("div", {
1318
+ }, description)), /* @__PURE__ */ React17__default.default.createElement("div", {
1351
1319
  className: FormSection_default.osdkFormSectionMinimalContent
1352
1320
  }, children));
1353
1321
  });
1354
1322
 
1355
1323
  // src/action-form/BaseForm.tsx
1356
- var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1324
+ var BaseForm = /* @__PURE__ */ React17.memo(function BaseFormFn({
1357
1325
  formTitle,
1358
1326
  formContent,
1359
1327
  formState: controlledFormState,
@@ -1366,10 +1334,10 @@ var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1366
1334
  submitButtonText = "Submit",
1367
1335
  submitButtonVariant = "primary"
1368
1336
  }) {
1369
- const portalContainerRef = React18.useRef(null);
1337
+ const portalContainerRef = React17.useRef(null);
1370
1338
  const isControlled = controlledFormState != null;
1371
- const allFieldDefinitions = React18.useMemo(() => flattenFieldDefinitions(formContent), [formContent]);
1372
- const defaultValues = React18.useMemo(() => buildDefaultValues(allFieldDefinitions), [allFieldDefinitions]);
1339
+ const allFieldDefinitions = React17.useMemo(() => flattenFieldDefinitions(formContent), [formContent]);
1340
+ const defaultValues = React17.useMemo(() => buildDefaultValues(allFieldDefinitions), [allFieldDefinitions]);
1373
1341
  const {
1374
1342
  control,
1375
1343
  trigger,
@@ -1388,7 +1356,7 @@ var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1388
1356
  defaultValues
1389
1357
  }
1390
1358
  });
1391
- const [hasAttemptedSubmit, setHasAttemptedSubmit] = React18.useState(false);
1359
+ const [hasAttemptedSubmit, setHasAttemptedSubmit] = React17.useState(false);
1392
1360
  const {
1393
1361
  isPending: isSubmitting,
1394
1362
  error: submissionError,
@@ -1396,7 +1364,7 @@ var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1396
1364
  clearError
1397
1365
  } = useAsyncAction(onSubmit);
1398
1366
  const submissionErrorMessage = submissionError != null ? submissionError instanceof Error ? submissionError.message : "Submission failed" : void 0;
1399
- const submitForm = React18.useCallback(async () => {
1367
+ const submitForm = React17.useCallback(async () => {
1400
1368
  setHasAttemptedSubmit(true);
1401
1369
  const isValid = await trigger();
1402
1370
  if (!isValid) {
@@ -1404,11 +1372,11 @@ var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1404
1372
  }
1405
1373
  await executeSubmit(controlledFormState ?? getValues());
1406
1374
  }, [trigger, executeSubmit, controlledFormState, getValues]);
1407
- const handleFieldChange = React18.useCallback((fieldKey, value) => {
1375
+ const handleFieldChange = React17.useCallback((fieldKey, value) => {
1408
1376
  clearError();
1409
1377
  onFieldValueChange?.(fieldKey, value);
1410
1378
  }, [clearError, onFieldValueChange]);
1411
- const labelByFieldKey = React18.useMemo(() => new Map(allFieldDefinitions.map((d) => [d.fieldKey, d.label])), [allFieldDefinitions]);
1379
+ const labelByFieldKey = React17.useMemo(() => new Map(allFieldDefinitions.map((d) => [d.fieldKey, d.label])), [allFieldDefinitions]);
1412
1380
  const errorEntries = Object.entries(errors).map(([key, entry]) => ({
1413
1381
  label: labelByFieldKey.get(key) ?? key,
1414
1382
  message: entry?.message ?? "Invalid"
@@ -1417,24 +1385,24 @@ var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1417
1385
  const buttonErrorMessage = areErrorsPresent ? "Some fields are invalid" : submissionErrorMessage;
1418
1386
  const isFormPending = isPending || isSubmitting;
1419
1387
  const isSubmitButtonDisabled = isSubmitDisabled || hasAttemptedSubmit && areErrorsPresent;
1420
- return /* @__PURE__ */ React18__namespace.default.createElement("form", {
1388
+ return /* @__PURE__ */ React17__default.default.createElement("form", {
1421
1389
  ref: portalContainerRef,
1422
1390
  className: classnames__default.default(BaseForm_default.osdkForm, className)
1423
1391
  // Workshop widgets can run in iframes without `allow-forms`, where
1424
1392
  // native form submission is blocked. Keep the form landmark, but do not
1425
1393
  // wire any form-level submit handlers; the submit button invokes our
1426
1394
  // JavaScript submit path directly.
1427
- }, formTitle != null && /* @__PURE__ */ React18__namespace.default.createElement(FormHeader, {
1395
+ }, formTitle != null && /* @__PURE__ */ React17__default.default.createElement(FormHeader, {
1428
1396
  title: formTitle
1429
- }), isLoading && allFieldDefinitions.length === 0 && /* @__PURE__ */ React18__namespace.default.createElement("div", {
1397
+ }), isLoading && allFieldDefinitions.length === 0 && /* @__PURE__ */ React17__default.default.createElement("div", {
1430
1398
  role: "status",
1431
1399
  "aria-label": "Loading form fields",
1432
1400
  className: BaseForm_default.osdkFormFields
1433
- }, FORM_SKELETON), /* @__PURE__ */ React18__namespace.default.createElement("div", {
1401
+ }, FORM_SKELETON), /* @__PURE__ */ React17__default.default.createElement("div", {
1434
1402
  className: BaseForm_default.osdkFormFields
1435
1403
  }, formContent.map((item) => {
1436
1404
  if (item.type === "field") {
1437
- return /* @__PURE__ */ React18__namespace.default.createElement(FieldBridge, {
1405
+ return /* @__PURE__ */ React17__default.default.createElement(FieldBridge, {
1438
1406
  key: item.definition.fieldKey,
1439
1407
  fieldDef: item.definition,
1440
1408
  control,
@@ -1443,24 +1411,24 @@ var BaseForm = /* @__PURE__ */ React18.memo(function BaseFormFn({
1443
1411
  });
1444
1412
  }
1445
1413
  const sectionErrorCount = item.definition.fields.reduce((count, field) => count + (errors[field.fieldKey] != null ? 1 : 0), 0);
1446
- return /* @__PURE__ */ React18__namespace.default.createElement(FormSection, {
1414
+ return /* @__PURE__ */ React17__default.default.createElement(FormSection, {
1447
1415
  key: item.key,
1448
1416
  definition: item.definition,
1449
1417
  errorCount: sectionErrorCount
1450
- }, item.definition.fields.map((fieldDef) => /* @__PURE__ */ React18__namespace.default.createElement(FieldBridge, {
1418
+ }, item.definition.fields.map((fieldDef) => /* @__PURE__ */ React17__default.default.createElement(FieldBridge, {
1451
1419
  key: fieldDef.fieldKey,
1452
1420
  fieldDef,
1453
1421
  control,
1454
1422
  onExternalChange: handleFieldChange,
1455
1423
  portalContainer: portalContainerRef
1456
1424
  })));
1457
- })), /* @__PURE__ */ React18__namespace.default.createElement("div", {
1425
+ })), /* @__PURE__ */ React17__default.default.createElement("div", {
1458
1426
  className: BaseForm_default.osdkFormFooter
1459
- }, /* @__PURE__ */ React18__namespace.default.createElement(ErrorIndicator, {
1427
+ }, /* @__PURE__ */ React17__default.default.createElement(ErrorIndicator, {
1460
1428
  errorEntries
1461
- }), /* @__PURE__ */ React18__namespace.default.createElement("div", {
1429
+ }), /* @__PURE__ */ React17__default.default.createElement("div", {
1462
1430
  className: BaseForm_default.osdkFormSubmitButton
1463
- }, /* @__PURE__ */ React18__namespace.default.createElement(SubmitButton, {
1431
+ }, /* @__PURE__ */ React17__default.default.createElement(SubmitButton, {
1464
1432
  isPending: isFormPending,
1465
1433
  isSubmitDisabled: isSubmitButtonDisabled,
1466
1434
  errorMessage: buttonErrorMessage,
@@ -1485,12 +1453,12 @@ function flattenFieldDefinitions(formContent) {
1485
1453
  var SKELETON_FIELD_COUNT = 3;
1486
1454
  var FORM_SKELETON = Array.from({
1487
1455
  length: SKELETON_FIELD_COUNT
1488
- }, (_, i) => /* @__PURE__ */ React18__namespace.default.createElement("div", {
1456
+ }, (_, i) => /* @__PURE__ */ React17__default.default.createElement("div", {
1489
1457
  key: i,
1490
1458
  className: BaseForm_default.osdkFormSkeletonField
1491
- }, /* @__PURE__ */ React18__namespace.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
1459
+ }, /* @__PURE__ */ React17__default.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
1492
1460
  className: BaseForm_default.osdkFormSkeletonLabel
1493
- }), /* @__PURE__ */ React18__namespace.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
1461
+ }), /* @__PURE__ */ React17__default.default.createElement(chunk7LXS66DW_cjs.SkeletonBar, {
1494
1462
  className: BaseForm_default.osdkFormSkeletonInput
1495
1463
  })));
1496
1464
  function buildDefaultValues(fieldDefinitions) {
@@ -1503,7 +1471,7 @@ function buildDefaultValues(fieldDefinitions) {
1503
1471
  }
1504
1472
  return values;
1505
1473
  }
1506
- var SubmitButton = /* @__PURE__ */ React18.memo(function SubmitButtonFn({
1474
+ var SubmitButton = /* @__PURE__ */ React17.memo(function SubmitButtonFn({
1507
1475
  isPending,
1508
1476
  isSubmitDisabled,
1509
1477
  errorMessage,
@@ -1512,7 +1480,7 @@ var SubmitButton = /* @__PURE__ */ React18.memo(function SubmitButtonFn({
1512
1480
  onClick
1513
1481
  }) {
1514
1482
  const buttonLabel = isPending ? "Submitting\u2026" : buttonText;
1515
- const button = /* @__PURE__ */ React18__namespace.default.createElement(chunkMD4KDE44_cjs.ActionButton, {
1483
+ const button = /* @__PURE__ */ React17__default.default.createElement(chunkMD4KDE44_cjs.ActionButton, {
1516
1484
  type: "button",
1517
1485
  variant: buttonVariant,
1518
1486
  disabled: isSubmitDisabled || isPending,
@@ -1521,13 +1489,13 @@ var SubmitButton = /* @__PURE__ */ React18.memo(function SubmitButtonFn({
1521
1489
  if (errorMessage == null) {
1522
1490
  return button;
1523
1491
  }
1524
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Root, {
1492
+ return /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Root, {
1525
1493
  defaultOpen: true
1526
- }, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Trigger, {
1527
- render: /* @__PURE__ */ React18__namespace.default.createElement("span", {
1494
+ }, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Trigger, {
1495
+ render: /* @__PURE__ */ React17__default.default.createElement("span", {
1528
1496
  className: BaseForm_default.osdkTooltipTriggerWrapper
1529
1497
  })
1530
- }, button), /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Portal, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Positioner, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Popup, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Arrow, null), errorMessage))));
1498
+ }, button), /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Portal, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Positioner, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Popup, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Arrow, null), errorMessage))));
1531
1499
  });
1532
1500
  function ErrorIndicator({
1533
1501
  errorEntries
@@ -1536,15 +1504,15 @@ function ErrorIndicator({
1536
1504
  return null;
1537
1505
  }
1538
1506
  const count = errorEntries.length;
1539
- return /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Root, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Trigger, null, /* @__PURE__ */ React18__namespace.default.createElement("span", {
1507
+ return /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Root, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Trigger, null, /* @__PURE__ */ React17__default.default.createElement("span", {
1540
1508
  className: BaseForm_default.osdkFormErrorIndicator
1541
- }, /* @__PURE__ */ React18__namespace.default.createElement(icons.Error, {
1509
+ }, /* @__PURE__ */ React17__default.default.createElement(icons.Error, {
1542
1510
  size: 14
1543
- }), count === 1 ? "1 issue" : `${count} issues`)), /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Portal, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Positioner, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Popup, null, /* @__PURE__ */ React18__namespace.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Arrow, null), /* @__PURE__ */ React18__namespace.default.createElement("ul", {
1511
+ }), count === 1 ? "1 issue" : `${count} issues`)), /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Portal, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Positioner, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Popup, null, /* @__PURE__ */ React17__default.default.createElement(chunkI3OSD6CF_cjs.Tooltip.Arrow, null), /* @__PURE__ */ React17__default.default.createElement("ul", {
1544
1512
  className: BaseForm_default.osdkFormErrorList
1545
- }, errorEntries.map((entry) => /* @__PURE__ */ React18__namespace.default.createElement("li", {
1513
+ }, errorEntries.map((entry) => /* @__PURE__ */ React17__default.default.createElement("li", {
1546
1514
  key: entry.label
1547
- }, /* @__PURE__ */ React18__namespace.default.createElement("strong", null, entry.label, ":"), " ", entry.message)))))));
1515
+ }, /* @__PURE__ */ React17__default.default.createElement("strong", null, entry.label, ":"), " ", entry.message)))))));
1548
1516
  }
1549
1517
 
1550
1518
  // src/action-form/utils/coerceFieldValue.ts
@@ -1725,7 +1693,7 @@ function _extends5() {
1725
1693
  }
1726
1694
  var EMPTY_FIELD_DEFINITIONS = [];
1727
1695
  var EMPTY_FORM_CONTENT = [];
1728
- var ActionForm = chunkZBJEZKOD_cjs.typedReactMemo(function ActionFormFn({
1696
+ var ActionForm = chunkFRSIMUPL_cjs.typedReactMemo(function ActionFormFn({
1729
1697
  actionDefinition,
1730
1698
  formTitle,
1731
1699
  showFormTitle = false,
@@ -1747,7 +1715,7 @@ var ActionForm = chunkZBJEZKOD_cjs.typedReactMemo(function ActionFormFn({
1747
1715
  loading: metadataLoading,
1748
1716
  error: metadataError
1749
1717
  } = react.useOsdkMetadata(actionDefinition);
1750
- React18.useEffect(function saveMetadataError() {
1718
+ React17.useEffect(function saveMetadataError() {
1751
1719
  if (metadataError != null) {
1752
1720
  onError?.({
1753
1721
  type: "unknown",
@@ -1756,7 +1724,7 @@ var ActionForm = chunkZBJEZKOD_cjs.typedReactMemo(function ActionFormFn({
1756
1724
  }
1757
1725
  }, [metadataError, onError]);
1758
1726
  const parameters = metadata?.parameters;
1759
- const customFieldDefinitions = React18.useMemo(() => {
1727
+ const customFieldDefinitions = React17.useMemo(() => {
1760
1728
  if (formFieldDefinitions == null) {
1761
1729
  return null;
1762
1730
  }
@@ -1776,19 +1744,19 @@ var ActionForm = chunkZBJEZKOD_cjs.typedReactMemo(function ActionFormFn({
1776
1744
  };
1777
1745
  });
1778
1746
  }, [formFieldDefinitions, parameters]);
1779
- const rendererFieldDefinitions = React18.useMemo(() => customFieldDefinitions ?? (metadata != null ? getDefaultFieldDefinitions(metadata) : EMPTY_FIELD_DEFINITIONS), [customFieldDefinitions, metadata]);
1780
- const formContent = React18.useMemo(() => rendererFieldDefinitions.length === 0 ? EMPTY_FORM_CONTENT : rendererFieldDefinitions.map((def) => ({
1747
+ const rendererFieldDefinitions = React17.useMemo(() => customFieldDefinitions ?? (metadata != null ? getDefaultFieldDefinitions(metadata) : EMPTY_FIELD_DEFINITIONS), [customFieldDefinitions, metadata]);
1748
+ const formContent = React17.useMemo(() => rendererFieldDefinitions.length === 0 ? EMPTY_FORM_CONTENT : rendererFieldDefinitions.map((def) => ({
1781
1749
  type: "field",
1782
1750
  definition: def
1783
1751
  })), [rendererFieldDefinitions]);
1784
- const coerceFormState = React18.useCallback((rawState) => {
1752
+ const coerceFormState = React17.useCallback((rawState) => {
1785
1753
  const coerced = {};
1786
1754
  for (const [key, value] of Object.entries(rawState)) {
1787
1755
  coerced[key] = coerceFieldValue(parameters?.[key]?.type, value);
1788
1756
  }
1789
1757
  return coerced;
1790
1758
  }, [parameters]);
1791
- const handleSubmit = React18.useCallback(async (rawFormState) => {
1759
+ const handleSubmit = React17.useCallback(async (rawFormState) => {
1792
1760
  const formState = coerceFormState(rawFormState);
1793
1761
  try {
1794
1762
  if (onSubmit != null) {
@@ -1804,7 +1772,7 @@ var ActionForm = chunkZBJEZKOD_cjs.typedReactMemo(function ActionFormFn({
1804
1772
  });
1805
1773
  }
1806
1774
  }, [coerceFormState, onSubmit, osdkApplyAction, onSuccess, onError]);
1807
- const handleFieldValueChange = React18.useCallback((fieldKey, value) => {
1775
+ const handleFieldValueChange = React17.useCallback((fieldKey, value) => {
1808
1776
  onFormStateChange?.((prev) => ({
1809
1777
  ...prev,
1810
1778
  [fieldKey]: value
@@ -1822,17 +1790,17 @@ var ActionForm = chunkZBJEZKOD_cjs.typedReactMemo(function ActionFormFn({
1822
1790
  onFieldValueChange: handleFieldValueChange
1823
1791
  };
1824
1792
  if (!isControlled) {
1825
- return /* @__PURE__ */ React18__namespace.default.createElement(BaseForm, commonProps);
1793
+ return /* @__PURE__ */ React17__default.default.createElement(BaseForm, commonProps);
1826
1794
  }
1827
- return /* @__PURE__ */ React18__namespace.default.createElement(BaseForm, _extends5({}, commonProps, {
1795
+ return /* @__PURE__ */ React17__default.default.createElement(BaseForm, _extends5({}, commonProps, {
1828
1796
  formState: controlledFormState
1829
1797
  }));
1830
1798
  });
1831
1799
 
1832
1800
  // src/public/experimental/action-form.ts
1833
- var ActionForm2 = chunkR4M6VGVD_cjs.withOsdkMetrics(ActionForm, "ActionForm");
1801
+ var ActionForm2 = chunkIEF4VCDI_cjs.withOsdkMetrics(ActionForm, "ActionForm");
1834
1802
 
1835
1803
  exports.ActionForm = ActionForm2;
1836
1804
  exports.BaseForm = BaseForm;
1837
- //# sourceMappingURL=chunk-QOKXBBSR.cjs.map
1838
- //# sourceMappingURL=chunk-QOKXBBSR.cjs.map
1805
+ //# sourceMappingURL=chunk-2QDWXDLC.cjs.map
1806
+ //# sourceMappingURL=chunk-2QDWXDLC.cjs.map