@wise/dynamic-flow-client-internal 5.20.0-exp-box-cq-2-e95523a → 5.20.0

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/build/main.css CHANGED
@@ -52,44 +52,6 @@
52
52
  width: 66.66%;
53
53
  }
54
54
  }
55
- /* NEW box renderer styles */
56
- @media screen and (width >=1px) {
57
- /* container queries (when .df-prefer-container-queries is set on a parent) */
58
- /* In container-query mode, ignore viewport-based width overrides by resetting to narrow defaults. */
59
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-border {
60
- padding: var(--size-16);
61
- }
62
-
63
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-xs,
64
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-sm,
65
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-md,
66
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-lg {
67
- width: 100%;
68
- }
69
-
70
- /* @container (min-width: 576px) { */
71
- @container (min-width: 480px) {
72
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-border {
73
- padding: var(--size-24);
74
- }
75
-
76
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-xs {
77
- width: 33.33%;
78
- }
79
-
80
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-sm {
81
- width: 50%;
82
- }
83
-
84
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-md {
85
- width: 66.66%;
86
- }
87
-
88
- .df-prefer-container-queries .df-box-renderer.df-box-renderer-width-lg {
89
- width: 83.33%;
90
- }
91
- }
92
- }
93
55
  .df-columns-renderer-container {
94
56
  display: flex;
95
57
  gap: var(--size-4);
@@ -175,6 +137,13 @@
175
137
  width: 300px;
176
138
  }
177
139
  }
140
+ /**
141
+ * This speficies the container for container queries about width.
142
+ * We don't use it by default, but integrations can specify it using the className prop in the DF component.
143
+ */
144
+ .df-prefer-container-queries {
145
+ container-type: inline-size;
146
+ }
178
147
  /* narrow container */
179
148
  @container (max-width: 576px) {
180
149
  .df-image.xs img.df-reserve-space {
@@ -261,13 +230,6 @@
261
230
  margin-left: auto;
262
231
  margin-right: auto;
263
232
  }
264
- /**
265
- * This specifies the container for container queries about width.
266
- * We don't use it by default, but integrations can specify it using the className prop in the DF component.
267
- */
268
- .df-prefer-container-queries {
269
- container-type: inline-size;
270
- }
271
233
  .df-context-menu {
272
234
  position: fixed;
273
235
  z-index: 10;
package/build/main.js CHANGED
@@ -145,7 +145,7 @@ var import_dynamic_flow_client4 = require("@wise/dynamic-flow-client");
145
145
  // src/dynamicFlow/telemetry/app-version.ts
146
146
  var appVersion = (
147
147
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
148
- typeof process !== "undefined" ? "5.19.3" : "0.0.0"
148
+ typeof process !== "undefined" ? "5.20.0" : "0.0.0"
149
149
  );
150
150
 
151
151
  // src/dynamicFlow/context-menu/useContextMenu.tsx
@@ -395,30 +395,25 @@ var AlertRenderer_default = AlertRenderer;
395
395
  // ../renderers/src/BoxRenderer.tsx
396
396
  var import_classnames = __toESM(require_classnames());
397
397
  var import_jsx_runtime3 = require("react/jsx-runtime");
398
- var getBoxRenderer = (className) => {
399
- const renderer = {
400
- canRenderType: "box",
401
- render: ({ children, control, margin, width }) => {
402
- const hasFixedWidth = width !== "xl";
403
- const hasBorder = control === "bordered" || control === "bordered-web";
404
- const contents = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
405
- "div",
406
- {
407
- className: (0, import_classnames.default)({
408
- [className]: !!className,
409
- "df-box-renderer-border": hasBorder,
410
- [`df-box-renderer-width-${width}`]: hasFixedWidth,
411
- [getMargin(margin)]: !hasFixedWidth
412
- }),
413
- children
414
- }
415
- );
416
- return hasFixedWidth ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: (0, import_classnames.default)("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
417
- }
418
- };
419
- return renderer;
398
+ var BoxRenderer = {
399
+ canRenderType: "box",
400
+ render: ({ children, control, margin, width }) => {
401
+ const hasFixedWidth = width !== "xl";
402
+ const hasBorder = control === "bordered" || control === "bordered-web";
403
+ const contents = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
404
+ "div",
405
+ {
406
+ className: (0, import_classnames.default)({
407
+ "df-box-renderer-border": hasBorder,
408
+ [`df-box-renderer-width-${width}`]: hasFixedWidth,
409
+ [getMargin(margin)]: !hasFixedWidth
410
+ }),
411
+ children
412
+ }
413
+ );
414
+ return hasFixedWidth ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: (0, import_classnames.default)("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
415
+ }
420
416
  };
421
- var BoxRenderer = getBoxRenderer("df-box-renderer");
422
417
  var BoxRenderer_default = BoxRenderer;
423
418
 
424
419
  // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
@@ -939,16 +934,18 @@ function FieldInput({
939
934
  description,
940
935
  help,
941
936
  loadingState = "idle",
942
- inlineAlert
937
+ inlineAlert,
938
+ features
943
939
  }) {
944
940
  const labelContent = label && help ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(LabelContentWithHelp, { text: label, help }) : label;
945
941
  const message = validation == null ? void 0 : validation.message;
946
942
  const ref = (0, import_react4.useRef)(null);
943
+ const shouldScrollToError = features.scrollToError !== false;
947
944
  (0, import_react4.useEffect)(() => {
948
- if (message) {
945
+ if (message && shouldScrollToError) {
949
946
  scrollToIfNotVisible(ref.current);
950
947
  }
951
- }, [message]);
948
+ }, [message, shouldScrollToError]);
952
949
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { ref, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
953
950
  import_components8.Field,
954
951
  {
@@ -1049,6 +1046,7 @@ var CheckboxComponent = (props) => {
1049
1046
  help,
1050
1047
  inlineAlert: rest.inlineAlert,
1051
1048
  loadingState: rest.fieldLoadingState,
1049
+ features: rest.features,
1052
1050
  children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components11.Checkbox, __spreadValues({ id }, checkboxProps))
1053
1051
  }
1054
1052
  );
@@ -1246,6 +1244,7 @@ var DateInputRenderer = {
1246
1244
  inlineAlert: props.inlineAlert,
1247
1245
  loadingState: props.fieldLoadingState,
1248
1246
  help,
1247
+ features: props.features,
1249
1248
  children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(VariableDateInput_default, { control, inputProps })
1250
1249
  }
1251
1250
  );
@@ -1935,6 +1934,7 @@ var IntegerInputRenderer = {
1935
1934
  inlineAlert: props.inlineAlert,
1936
1935
  loadingState: props.fieldLoadingState,
1937
1936
  help,
1937
+ features: props.features,
1938
1938
  children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_components23.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
1939
1939
  import_components23.Input,
1940
1940
  __spreadValues({
@@ -2198,6 +2198,7 @@ function MoneyInputRendererComponent(props) {
2198
2198
  description,
2199
2199
  validation: validationState,
2200
2200
  help,
2201
+ features: props.features,
2201
2202
  children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2202
2203
  import_components31.MoneyInput,
2203
2204
  {
@@ -2267,6 +2268,7 @@ function InlineComponent(props) {
2267
2268
  id,
2268
2269
  description,
2269
2270
  disabled,
2271
+ features,
2270
2272
  help,
2271
2273
  options,
2272
2274
  selectedIndices,
@@ -2282,6 +2284,7 @@ function InlineComponent(props) {
2282
2284
  help,
2283
2285
  description,
2284
2286
  validation: validationState,
2287
+ features,
2285
2288
  children: options.map((option, index) => {
2286
2289
  var _a;
2287
2290
  const {
@@ -2349,6 +2352,7 @@ function DefaultComponent(props) {
2349
2352
  autoComplete,
2350
2353
  description,
2351
2354
  disabled,
2355
+ features,
2352
2356
  help,
2353
2357
  options,
2354
2358
  placeholder,
@@ -2394,6 +2398,7 @@ function DefaultComponent(props) {
2394
2398
  help,
2395
2399
  description,
2396
2400
  validation: validationState,
2401
+ features,
2397
2402
  children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2398
2403
  import_components33.SelectInput,
2399
2404
  __spreadValues({
@@ -2440,6 +2445,7 @@ function InlineCheckboxComponent(props) {
2440
2445
  id,
2441
2446
  description,
2442
2447
  disabled,
2448
+ features,
2443
2449
  help,
2444
2450
  options,
2445
2451
  selectedIndices,
@@ -2455,6 +2461,7 @@ function InlineCheckboxComponent(props) {
2455
2461
  help,
2456
2462
  description,
2457
2463
  validation: validationState,
2464
+ features,
2458
2465
  children: options.map((option, index) => {
2459
2466
  var _a;
2460
2467
  const {
@@ -2501,9 +2508,9 @@ var MultiSelectInputRenderer = {
2501
2508
  var import_components36 = require("@transferwise/components");
2502
2509
 
2503
2510
  // ../renderers/src/components/UploadFieldInput.tsx
2504
- var import_react13 = require("react");
2505
2511
  var import_components35 = require("@transferwise/components");
2506
2512
  var import_classnames4 = __toESM(require_classnames());
2513
+ var import_react13 = require("react");
2507
2514
  var import_jsx_runtime57 = require("react/jsx-runtime");
2508
2515
  function UploadFieldInput({
2509
2516
  id,
@@ -2511,17 +2518,19 @@ function UploadFieldInput({
2511
2518
  label,
2512
2519
  description,
2513
2520
  help,
2514
- validation
2521
+ validation,
2522
+ features
2515
2523
  }) {
2516
2524
  const labelContent = label && help ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(LabelContentWithHelp, { text: label, help }) : label;
2517
2525
  const descriptionId = description ? `${id}-description` : void 0;
2518
2526
  const message = validation == null ? void 0 : validation.message;
2519
2527
  const ref = (0, import_react13.useRef)(null);
2528
+ const shouldScrollToError = features.scrollToError !== false;
2520
2529
  (0, import_react13.useEffect)(() => {
2521
- if (message) {
2530
+ if (message && shouldScrollToError) {
2522
2531
  scrollToIfNotVisible(ref.current);
2523
2532
  }
2524
- }, [message]);
2533
+ }, [message, shouldScrollToError]);
2525
2534
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
2526
2535
  "div",
2527
2536
  {
@@ -2578,6 +2587,7 @@ var MultiUploadInputRenderer = {
2578
2587
  title,
2579
2588
  description,
2580
2589
  disabled,
2590
+ features,
2581
2591
  maxSize,
2582
2592
  maxItems,
2583
2593
  uploadLabel,
@@ -2600,6 +2610,7 @@ var MultiUploadInputRenderer = {
2600
2610
  description,
2601
2611
  validation: validationState,
2602
2612
  help,
2613
+ features,
2603
2614
  children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2604
2615
  import_components36.UploadInput,
2605
2616
  {
@@ -2653,6 +2664,7 @@ var NumberInputRenderer = {
2653
2664
  inlineAlert: props.inlineAlert,
2654
2665
  loadingState: props.fieldLoadingState,
2655
2666
  help,
2667
+ features: props.features,
2656
2668
  children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_components37.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2657
2669
  import_components37.Input,
2658
2670
  __spreadValues({
@@ -3097,6 +3109,7 @@ function BlockSearchRendererComponent({
3097
3109
  id,
3098
3110
  hint,
3099
3111
  isLoading,
3112
+ features,
3100
3113
  margin,
3101
3114
  query,
3102
3115
  state,
@@ -3107,23 +3120,34 @@ function BlockSearchRendererComponent({
3107
3120
  const [hasSearched, setHasSearched] = (0, import_react16.useState)(false);
3108
3121
  const { formatMessage } = (0, import_react_intl22.useIntl)();
3109
3122
  return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: getMargin(margin), children: [
3110
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_components45.InputGroup, { addonStart: { content: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_icons3.Search, { size: 24 }) }, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3111
- import_components45.Input,
3123
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3124
+ FieldInput_default,
3112
3125
  {
3113
3126
  id,
3114
- name: id,
3115
- placeholder: hint,
3116
- type: "text",
3117
- value: query,
3118
- onChange: ({ currentTarget: { value } }) => {
3119
- if (!hasSearched) {
3120
- setHasSearched(true);
3121
- trackEvent("Search Started");
3127
+ description: "",
3128
+ validation: void 0,
3129
+ help: "",
3130
+ label: title,
3131
+ features,
3132
+ children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_components45.InputGroup, { addonStart: { content: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_icons3.Search, { size: 24 }) }, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3133
+ import_components45.Input,
3134
+ {
3135
+ id,
3136
+ name: id,
3137
+ placeholder: hint,
3138
+ type: "text",
3139
+ value: query,
3140
+ onChange: ({ currentTarget: { value } }) => {
3141
+ if (!hasSearched) {
3142
+ setHasSearched(true);
3143
+ trackEvent("Search Started");
3144
+ }
3145
+ onChange(value);
3146
+ }
3122
3147
  }
3123
- onChange(value);
3124
- }
3148
+ ) })
3125
3149
  }
3126
- ) }) }),
3150
+ ),
3127
3151
  isLoading ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SearchResultContent, { state, trackEvent })
3128
3152
  ] });
3129
3153
  }
@@ -3192,50 +3216,62 @@ function InlineSearchRenderer({
3192
3216
  id,
3193
3217
  hint,
3194
3218
  isLoading,
3219
+ features,
3195
3220
  margin,
3196
- onChange,
3197
3221
  state,
3198
3222
  title,
3223
+ onChange,
3199
3224
  trackEvent
3200
3225
  }) {
3201
3226
  const [hasSearched, setHasSearched] = (0, import_react17.useState)(false);
3202
3227
  const intl = (0, import_react_intl23.useIntl)();
3203
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3204
- import_components46.Typeahead,
3228
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3229
+ FieldInput_default,
3205
3230
  {
3206
- id: "typeahead-input-id",
3207
- intl,
3208
- name: "typeahead-input-name",
3209
- size: "md",
3210
- placeholder: hint,
3211
- maxHeight: 100,
3212
- footer: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(TypeaheadFooter, { state, isLoading }),
3213
- multiple: false,
3214
- clearable: false,
3215
- addon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_icons4.Search, { size: 24 }),
3216
- options: state.type === "results" ? state.results.map(mapResultToTypeaheadOption) : [],
3217
- minQueryLength: 1,
3218
- onChange: (values) => {
3219
- if (values.length > 0) {
3220
- const [updatedValue] = values;
3221
- const { value: result } = updatedValue;
3222
- if (result) {
3223
- trackEvent("Search Result Selected", __spreadValues({
3224
- type: result.type
3225
- }, result.type === "action" ? { actionId: result.id } : {}));
3226
- result.onClick();
3231
+ id,
3232
+ description: "",
3233
+ validation: void 0,
3234
+ help: "",
3235
+ label: title,
3236
+ features,
3237
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3238
+ import_components46.Typeahead,
3239
+ {
3240
+ id: "typeahead-input-id",
3241
+ intl,
3242
+ name: "typeahead-input-name",
3243
+ size: "md",
3244
+ placeholder: hint,
3245
+ maxHeight: 100,
3246
+ footer: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(TypeaheadFooter, { state, isLoading }),
3247
+ multiple: false,
3248
+ clearable: false,
3249
+ addon: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_icons4.Search, { size: 24 }),
3250
+ options: state.type === "results" ? state.results.map(mapResultToTypeaheadOption) : [],
3251
+ minQueryLength: 1,
3252
+ onChange: (values) => {
3253
+ if (values.length > 0) {
3254
+ const [updatedValue] = values;
3255
+ const { value: result } = updatedValue;
3256
+ if (result) {
3257
+ trackEvent("Search Result Selected", __spreadValues({
3258
+ type: result.type
3259
+ }, result.type === "action" ? { actionId: result.id } : {}));
3260
+ result.onClick();
3261
+ }
3262
+ }
3263
+ },
3264
+ onInputChange: (query) => {
3265
+ if (!hasSearched) {
3266
+ setHasSearched(true);
3267
+ trackEvent("Search Started");
3268
+ }
3269
+ onChange(query);
3227
3270
  }
3228
3271
  }
3229
- },
3230
- onInputChange: (query) => {
3231
- if (!hasSearched) {
3232
- setHasSearched(true);
3233
- trackEvent("Search Started");
3234
- }
3235
- onChange(query);
3236
- }
3272
+ )
3237
3273
  }
3238
- ) }) });
3274
+ ) });
3239
3275
  }
3240
3276
  function mapResultToTypeaheadOption(result) {
3241
3277
  return {
@@ -3318,6 +3354,7 @@ function RadioInputRendererComponent(props) {
3318
3354
  children,
3319
3355
  description,
3320
3356
  disabled,
3357
+ features,
3321
3358
  help,
3322
3359
  title,
3323
3360
  options,
@@ -3334,6 +3371,7 @@ function RadioInputRendererComponent(props) {
3334
3371
  help,
3335
3372
  description,
3336
3373
  validation: validationState,
3374
+ features,
3337
3375
  children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3338
3376
  import_components48.RadioGroup,
3339
3377
  {
@@ -3366,6 +3404,7 @@ function TabInputRendererComponent(props) {
3366
3404
  children,
3367
3405
  description,
3368
3406
  disabled,
3407
+ features,
3369
3408
  help,
3370
3409
  title,
3371
3410
  options,
@@ -3387,6 +3426,7 @@ function TabInputRendererComponent(props) {
3387
3426
  help,
3388
3427
  description,
3389
3428
  validation: validationState,
3429
+ features,
3390
3430
  children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
3391
3431
  import_components49.Tabs,
3392
3432
  {
@@ -3419,6 +3459,7 @@ function SelectInputRendererComponent(props) {
3419
3459
  children,
3420
3460
  description,
3421
3461
  disabled,
3462
+ features,
3422
3463
  help,
3423
3464
  title,
3424
3465
  options,
@@ -3465,6 +3506,7 @@ function SelectInputRendererComponent(props) {
3465
3506
  help,
3466
3507
  description,
3467
3508
  validation: validationState,
3509
+ features,
3468
3510
  children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
3469
3511
  import_components50.SelectInput,
3470
3512
  __spreadValues({
@@ -3494,6 +3536,7 @@ function SegmentedInputRendererComponent(props) {
3494
3536
  id,
3495
3537
  children,
3496
3538
  description,
3539
+ features,
3497
3540
  help,
3498
3541
  title,
3499
3542
  options,
@@ -3515,6 +3558,7 @@ function SegmentedInputRendererComponent(props) {
3515
3558
  help,
3516
3559
  description,
3517
3560
  validation: validationState,
3561
+ features,
3518
3562
  children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3519
3563
  import_components51.SegmentedControl,
3520
3564
  {
@@ -4099,6 +4143,7 @@ var TextInputRenderer = {
4099
4143
  inlineAlert: props.inlineAlert,
4100
4144
  loadingState: props.fieldLoadingState,
4101
4145
  help,
4146
+ features: props.features,
4102
4147
  children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_components61.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(VariableTextInput, __spreadValues({}, inputProps)) })
4103
4148
  }
4104
4149
  );
@@ -4117,7 +4162,18 @@ var import_jsx_runtime88 = require("react/jsx-runtime");
4117
4162
  var UploadInputRenderer = {
4118
4163
  canRenderType: "input-upload",
4119
4164
  render: (props) => {
4120
- const { id, accepts, title, description, disabled, maxSize, validationState, value, onUpload } = props;
4165
+ const {
4166
+ id,
4167
+ accepts,
4168
+ title,
4169
+ description,
4170
+ disabled,
4171
+ features,
4172
+ maxSize,
4173
+ validationState,
4174
+ value,
4175
+ onUpload
4176
+ } = props;
4121
4177
  const onUploadFile = async (formData) => {
4122
4178
  const file = formData.get("file");
4123
4179
  return onUpload(file).then(() => ({
@@ -4136,6 +4192,7 @@ var UploadInputRenderer = {
4136
4192
  label: void 0,
4137
4193
  description: void 0,
4138
4194
  validation: validationState,
4195
+ features,
4139
4196
  children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
4140
4197
  import_components62.UploadInput,
4141
4198
  {
@@ -4176,6 +4233,7 @@ var LargeUploadRenderer = {
4176
4233
  type,
4177
4234
  validationState,
4178
4235
  maxSize = null,
4236
+ features,
4179
4237
  onUpload
4180
4238
  } = _a, rest = __objRest(_a, [
4181
4239
  "id",
@@ -4188,6 +4246,7 @@ var LargeUploadRenderer = {
4188
4246
  "type",
4189
4247
  "validationState",
4190
4248
  "maxSize",
4249
+ "features",
4191
4250
  "onUpload"
4192
4251
  ]);
4193
4252
  const uploadProps = __spreadProps(__spreadValues({}, rest), { id, name: id, maxSize });
@@ -4210,6 +4269,7 @@ var LargeUploadRenderer = {
4210
4269
  description,
4211
4270
  validation: validationState,
4212
4271
  help,
4272
+ features,
4213
4273
  children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
4214
4274
  import_components62.Upload,
4215
4275
  __spreadProps(__spreadValues({}, uploadProps), {