@bpmn-io/form-js-playground 1.10.0 → 1.11.0-alpha.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.
@@ -61233,6 +61233,13 @@
61233
61233
  getService: getService$2,
61234
61234
  formId: null
61235
61235
  });
61236
+
61237
+ /**
61238
+ * @template T
61239
+ * @param {string} type
61240
+ * @param {boolean} [strict=true]
61241
+ * @returns {T | null}
61242
+ */
61236
61243
  function useService$2(type, strict) {
61237
61244
  const {
61238
61245
  getService
@@ -61284,11 +61291,10 @@
61284
61291
  }
61285
61292
 
61286
61293
  /**
61287
- * Evaluate a string based on the expressionLanguage and context information.
61288
- * If the string is not an expression, it is returned as is.
61294
+ * If the value is a valid expression, it is evaluated and returned. Otherwise, it is returned as-is.
61289
61295
  *
61290
61296
  * @param {any} expressionLanguage - The expression language to use.
61291
- * @param {string} value - The string to evaluate.
61297
+ * @param {any} value - The static value or expression to evaluate.
61292
61298
  * @param {Object} expressionContextInfo - The context information to use.
61293
61299
  * @returns {any} - Evaluated value or the original value if not an expression.
61294
61300
  */
@@ -61419,11 +61425,10 @@
61419
61425
  }
61420
61426
 
61421
61427
  /**
61422
- * Evaluate a string reactively based on the expressionLanguage and form data.
61423
- * If the string is not an expression, it is returned as is.
61428
+ * If the value is a valid expression, it is evaluated and returned. Otherwise, it is returned as-is.
61424
61429
  * The function is memoized to minimize re-renders.
61425
61430
  *
61426
- * @param {string} value - The string to evaluate.
61431
+ * @param {any} value - A static value or expression to evaluate.
61427
61432
  * @returns {any} - Evaluated value or the original value if not an expression.
61428
61433
  */
61429
61434
  function useExpressionEvaluation(value) {
@@ -61662,7 +61667,7 @@
61662
61667
  return (overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight;
61663
61668
  }
61664
61669
  const EMPTY_OBJECT = {};
61665
- const EMPTY_ARRAY = [];
61670
+ const EMPTY_ARRAY$2 = [];
61666
61671
 
61667
61672
  /**
61668
61673
  * Custom hook to scroll an element within a scrollable container.
@@ -61678,7 +61683,7 @@
61678
61683
  */
61679
61684
  function useScrollIntoView(scrolledElementRef, deps, scrollOptions, flagRefs) {
61680
61685
  const _scrollOptions = scrollOptions || EMPTY_OBJECT;
61681
- const _flagRefs = flagRefs || EMPTY_ARRAY;
61686
+ const _flagRefs = flagRefs || EMPTY_ARRAY$2;
61682
61687
  y(() => {
61683
61688
  // return early if flags are not raised, or component is not mounted
61684
61689
  if (some(_flagRefs, ref => !ref.current) || !scrolledElementRef.current) {
@@ -61732,6 +61737,23 @@
61732
61737
  return 0;
61733
61738
  }
61734
61739
 
61740
+ /**
61741
+ * If the value is a valid expression, we evaluate it. Otherwise, we continue with the value as-is.
61742
+ * If the resulting value isn't a boolean, we return 'false'
61743
+ * The function is memoized to minimize re-renders.
61744
+ *
61745
+ * @param {boolean | string} value - A static boolean or expression to evaluate.
61746
+ * @returns {boolean} - Evaluated boolean result.
61747
+ */
61748
+ function useBooleanExpressionEvaluation(value) {
61749
+ const expressionLanguage = useService$2('expressionLanguage');
61750
+ const expressionContextInfo = F$1(LocalExpressionContext);
61751
+ return d(() => {
61752
+ const evaluationResult = runExpressionEvaluation(expressionLanguage, value, expressionContextInfo);
61753
+ return typeof evaluationResult === 'boolean' ? evaluationResult : false;
61754
+ }, [expressionLanguage, expressionContextInfo, value]);
61755
+ }
61756
+
61735
61757
  /**
61736
61758
  * Returns the conditionally filtered data of a form reactively.
61737
61759
  * Memoised to minimize re-renders
@@ -62208,7 +62230,7 @@
62208
62230
  }
62209
62231
  }, [field, options, onChange, memoizedValues, loadState]);
62210
62232
  }
62211
- const type$h = 'button';
62233
+ const type$i = 'button';
62212
62234
  function Button(props) {
62213
62235
  const {
62214
62236
  disabled,
@@ -62223,7 +62245,7 @@
62223
62245
  debug: true
62224
62246
  });
62225
62247
  return e("div", {
62226
- class: formFieldClasses(type$h),
62248
+ class: formFieldClasses(type$i),
62227
62249
  children: e("button", {
62228
62250
  class: "fjs-button",
62229
62251
  type: action,
@@ -62235,7 +62257,7 @@
62235
62257
  });
62236
62258
  }
62237
62259
  Button.config = {
62238
- type: type$h,
62260
+ type: type$i,
62239
62261
  keyed: false,
62240
62262
  label: 'Button',
62241
62263
  group: 'action',
@@ -62306,7 +62328,7 @@
62306
62328
  })]
62307
62329
  });
62308
62330
  }
62309
- const type$g = 'checkbox';
62331
+ const type$h = 'checkbox';
62310
62332
  function Checkbox$1(props) {
62311
62333
  const {
62312
62334
  disabled,
@@ -62336,7 +62358,7 @@
62336
62358
  const descriptionId = `${domId}-description`;
62337
62359
  const errorMessageId = `${domId}-error-message`;
62338
62360
  return e("div", {
62339
- class: classNames(formFieldClasses(type$g, {
62361
+ class: classNames(formFieldClasses(type$h, {
62340
62362
  errors,
62341
62363
  disabled,
62342
62364
  readonly
@@ -62371,7 +62393,7 @@
62371
62393
  });
62372
62394
  }
62373
62395
  Checkbox$1.config = {
62374
- type: type$g,
62396
+ type: type$h,
62375
62397
  keyed: true,
62376
62398
  label: 'Checkbox',
62377
62399
  group: 'selection',
@@ -62383,7 +62405,7 @@
62383
62405
  ...options
62384
62406
  })
62385
62407
  };
62386
- const type$f = 'checklist';
62408
+ const type$g = 'checklist';
62387
62409
  function Checklist(props) {
62388
62410
  const {
62389
62411
  disabled,
@@ -62436,7 +62458,7 @@
62436
62458
  const descriptionId = `${domId}-description`;
62437
62459
  const errorMessageId = `${domId}-error-message`;
62438
62460
  return e("div", {
62439
- class: classNames(formFieldClasses(type$f, {
62461
+ class: classNames(formFieldClasses(type$g, {
62440
62462
  errors,
62441
62463
  disabled,
62442
62464
  readonly
@@ -62480,7 +62502,7 @@
62480
62502
  });
62481
62503
  }
62482
62504
  Checklist.config = {
62483
- type: type$f,
62505
+ type: type$g,
62484
62506
  keyed: true,
62485
62507
  label: 'Checkbox group',
62486
62508
  group: 'selection',
@@ -62489,7 +62511,9 @@
62489
62511
  create: createEmptyOptions
62490
62512
  };
62491
62513
  const noop$1$1 = () => false;
62514
+ const ids$2 = new Ids([32, 36, 1]);
62492
62515
  function FormField(props) {
62516
+ const instanceIdRef = s$1(ids$2.next());
62493
62517
  const {
62494
62518
  field,
62495
62519
  indexes,
@@ -62535,22 +62559,28 @@
62535
62559
  // add precedence: global readonly > form field disabled
62536
62560
  const disabled = !properties.readOnly && (properties.disabled || field.disabled || false);
62537
62561
  const hidden = useCondition(field.conditional && field.conditional.hide || null);
62538
- const fieldInstance = d(() => ({
62539
- id: field.id,
62540
- expressionContextInfo: localExpressionContext,
62541
- valuePath,
62542
- indexes
62543
- }), [field.id, valuePath, localExpressionContext, indexes]);
62562
+ const instanceId = d(() => {
62563
+ if (!formFieldInstanceRegistry) {
62564
+ return null;
62565
+ }
62566
+ return formFieldInstanceRegistry.syncInstance(instanceIdRef.current, {
62567
+ id: field.id,
62568
+ expressionContextInfo: localExpressionContext,
62569
+ valuePath,
62570
+ value,
62571
+ indexes,
62572
+ hidden
62573
+ });
62574
+ }, [formFieldInstanceRegistry, field.id, localExpressionContext, valuePath, value, indexes, hidden]);
62575
+ const fieldInstance = instanceId ? formFieldInstanceRegistry.get(instanceId) : null;
62544
62576
 
62545
- // register form field instance
62577
+ // cleanup the instance on unmount
62546
62578
  y(() => {
62547
- if (formFieldInstanceRegistry && !hidden) {
62548
- const instanceId = formFieldInstanceRegistry.add(fieldInstance);
62549
- return () => {
62550
- formFieldInstanceRegistry.remove(instanceId);
62551
- };
62579
+ const instanceId = instanceIdRef.current;
62580
+ if (formFieldInstanceRegistry) {
62581
+ return () => formFieldInstanceRegistry.cleanupInstance(instanceId);
62552
62582
  }
62553
- }, [fieldInstance, formFieldInstanceRegistry, hidden]);
62583
+ }, [formFieldInstanceRegistry]);
62554
62584
 
62555
62585
  // ensures the initial validation behavior can be re-triggered upon form reset
62556
62586
  y(() => {
@@ -62783,9 +62813,9 @@
62783
62813
  ...options
62784
62814
  })
62785
62815
  };
62786
- var _path$w;
62787
- function _extends$x() {
62788
- _extends$x = Object.assign ? Object.assign.bind() : function (target) {
62816
+ var _path$x;
62817
+ function _extends$y() {
62818
+ _extends$y = Object.assign ? Object.assign.bind() : function (target) {
62789
62819
  for (var i = 1; i < arguments.length; i++) {
62790
62820
  var source = arguments[i];
62791
62821
  for (var key in source) {
@@ -62796,16 +62826,16 @@
62796
62826
  }
62797
62827
  return target;
62798
62828
  };
62799
- return _extends$x.apply(this, arguments);
62829
+ return _extends$y.apply(this, arguments);
62800
62830
  }
62801
62831
  var SvgCalendar = function SvgCalendar(props) {
62802
- return /*#__PURE__*/v$1("svg", _extends$x({
62832
+ return /*#__PURE__*/v$1("svg", _extends$y({
62803
62833
  xmlns: "http://www.w3.org/2000/svg",
62804
62834
  width: 14,
62805
62835
  height: 15,
62806
62836
  fill: "none",
62807
62837
  viewBox: "0 0 28 30"
62808
- }, props), _path$w || (_path$w = /*#__PURE__*/v$1("path", {
62838
+ }, props), _path$x || (_path$x = /*#__PURE__*/v$1("path", {
62809
62839
  fill: "currentColor",
62810
62840
  fillRule: "evenodd",
62811
62841
  d: "M19 2H9V0H7v2H2a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5V0h-2zM7 7V4H2v5h24V4h-5v3h-2V4H9v3zm-5 4v17h24V11z",
@@ -63067,9 +63097,9 @@
63067
63097
  })]
63068
63098
  });
63069
63099
  }
63070
- var _path$v, _path2$4;
63071
- function _extends$w() {
63072
- _extends$w = Object.assign ? Object.assign.bind() : function (target) {
63100
+ var _path$w, _path2$4;
63101
+ function _extends$x() {
63102
+ _extends$x = Object.assign ? Object.assign.bind() : function (target) {
63073
63103
  for (var i = 1; i < arguments.length; i++) {
63074
63104
  var source = arguments[i];
63075
63105
  for (var key in source) {
@@ -63080,16 +63110,16 @@
63080
63110
  }
63081
63111
  return target;
63082
63112
  };
63083
- return _extends$w.apply(this, arguments);
63113
+ return _extends$x.apply(this, arguments);
63084
63114
  }
63085
63115
  var SvgClock = function SvgClock(props) {
63086
- return /*#__PURE__*/v$1("svg", _extends$w({
63116
+ return /*#__PURE__*/v$1("svg", _extends$x({
63087
63117
  xmlns: "http://www.w3.org/2000/svg",
63088
63118
  width: 16,
63089
63119
  height: 16,
63090
63120
  fill: "none",
63091
63121
  viewBox: "0 0 28 29"
63092
- }, props), _path$v || (_path$v = /*#__PURE__*/v$1("path", {
63122
+ }, props), _path$w || (_path$w = /*#__PURE__*/v$1("path", {
63093
63123
  fill: "currentColor",
63094
63124
  d: "M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2z"
63095
63125
  })), _path2$4 || (_path2$4 = /*#__PURE__*/v$1("path", {
@@ -63355,7 +63385,7 @@
63355
63385
  })]
63356
63386
  });
63357
63387
  }
63358
- const type$e = 'datetime';
63388
+ const type$f = 'datetime';
63359
63389
  function Datetime(props) {
63360
63390
  const {
63361
63391
  disabled,
@@ -63524,7 +63554,7 @@
63524
63554
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
63525
63555
  };
63526
63556
  return e("div", {
63527
- class: formFieldClasses(type$e, {
63557
+ class: formFieldClasses(type$f, {
63528
63558
  errors: allErrors,
63529
63559
  disabled,
63530
63560
  readonly
@@ -63549,7 +63579,7 @@
63549
63579
  });
63550
63580
  }
63551
63581
  Datetime.config = {
63552
- type: type$e,
63582
+ type: type$f,
63553
63583
  keyed: true,
63554
63584
  label: 'Date time',
63555
63585
  group: 'basic-input',
@@ -63607,7 +63637,7 @@
63607
63637
  ...options
63608
63638
  })
63609
63639
  };
63610
- const type$d = 'iframe';
63640
+ const type$e = 'iframe';
63611
63641
  const DEFAULT_HEIGHT = 300;
63612
63642
  function IFrame(props) {
63613
63643
  const {
@@ -63637,7 +63667,7 @@
63637
63667
  setIframeRefresh(count => count + 1);
63638
63668
  }, [sandbox, allow]);
63639
63669
  return e("div", {
63640
- class: formFieldClasses(type$d, {
63670
+ class: formFieldClasses(type$e, {
63641
63671
  disabled,
63642
63672
  readonly
63643
63673
  }),
@@ -63672,7 +63702,7 @@
63672
63702
  });
63673
63703
  }
63674
63704
  IFrame.config = {
63675
- type: type$d,
63705
+ type: type$e,
63676
63706
  keyed: false,
63677
63707
  label: 'iFrame',
63678
63708
  group: 'container',
@@ -63683,9 +63713,9 @@
63683
63713
  ...options
63684
63714
  })
63685
63715
  };
63686
- var _path$u;
63687
- function _extends$v() {
63688
- _extends$v = Object.assign ? Object.assign.bind() : function (target) {
63716
+ var _path$v;
63717
+ function _extends$w() {
63718
+ _extends$w = Object.assign ? Object.assign.bind() : function (target) {
63689
63719
  for (var i = 1; i < arguments.length; i++) {
63690
63720
  var source = arguments[i];
63691
63721
  for (var key in source) {
@@ -63696,22 +63726,22 @@
63696
63726
  }
63697
63727
  return target;
63698
63728
  };
63699
- return _extends$v.apply(this, arguments);
63729
+ return _extends$w.apply(this, arguments);
63700
63730
  }
63701
63731
  var SvgButton = function SvgButton(props) {
63702
- return /*#__PURE__*/v$1("svg", _extends$v({
63732
+ return /*#__PURE__*/v$1("svg", _extends$w({
63703
63733
  xmlns: "http://www.w3.org/2000/svg",
63704
63734
  width: 54,
63705
63735
  height: 54,
63706
63736
  fill: "currentcolor"
63707
- }, props), _path$u || (_path$u = /*#__PURE__*/v$1("path", {
63737
+ }, props), _path$v || (_path$v = /*#__PURE__*/v$1("path", {
63708
63738
  fillRule: "evenodd",
63709
63739
  d: "M45 17a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3zm-9 8.889H18v2.222h18z"
63710
63740
  })));
63711
63741
  };
63712
- var _path$t;
63713
- function _extends$u() {
63714
- _extends$u = Object.assign ? Object.assign.bind() : function (target) {
63742
+ var _path$u;
63743
+ function _extends$v() {
63744
+ _extends$v = Object.assign ? Object.assign.bind() : function (target) {
63715
63745
  for (var i = 1; i < arguments.length; i++) {
63716
63746
  var source = arguments[i];
63717
63747
  for (var key in source) {
@@ -63722,21 +63752,21 @@
63722
63752
  }
63723
63753
  return target;
63724
63754
  };
63725
- return _extends$u.apply(this, arguments);
63755
+ return _extends$v.apply(this, arguments);
63726
63756
  }
63727
63757
  var SvgCheckbox = function SvgCheckbox(props) {
63728
- return /*#__PURE__*/v$1("svg", _extends$u({
63758
+ return /*#__PURE__*/v$1("svg", _extends$v({
63729
63759
  xmlns: "http://www.w3.org/2000/svg",
63730
63760
  width: 54,
63731
63761
  height: 54,
63732
63762
  fill: "currentcolor"
63733
- }, props), _path$t || (_path$t = /*#__PURE__*/v$1("path", {
63763
+ }, props), _path$u || (_path$u = /*#__PURE__*/v$1("path", {
63734
63764
  d: "M34 18H20a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V20a2 2 0 0 0-2-2m-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23z"
63735
63765
  })));
63736
63766
  };
63737
- var _path$s;
63738
- function _extends$t() {
63739
- _extends$t = Object.assign ? Object.assign.bind() : function (target) {
63767
+ var _path$t;
63768
+ function _extends$u() {
63769
+ _extends$u = Object.assign ? Object.assign.bind() : function (target) {
63740
63770
  for (var i = 1; i < arguments.length; i++) {
63741
63771
  var source = arguments[i];
63742
63772
  for (var key in source) {
@@ -63747,24 +63777,24 @@
63747
63777
  }
63748
63778
  return target;
63749
63779
  };
63750
- return _extends$t.apply(this, arguments);
63780
+ return _extends$u.apply(this, arguments);
63751
63781
  }
63752
63782
  var SvgChecklist = function SvgChecklist(props) {
63753
- return /*#__PURE__*/v$1("svg", _extends$t({
63783
+ return /*#__PURE__*/v$1("svg", _extends$u({
63754
63784
  xmlns: "http://www.w3.org/2000/svg",
63755
63785
  width: 54,
63756
63786
  height: 54,
63757
63787
  fill: "none"
63758
- }, props), _path$s || (_path$s = /*#__PURE__*/v$1("path", {
63788
+ }, props), _path$t || (_path$t = /*#__PURE__*/v$1("path", {
63759
63789
  fill: "currentColor",
63760
63790
  fillRule: "evenodd",
63761
63791
  d: "M14.35 24.75H19v4.65h-4.65zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414M14.35 37.05H19v4.65h-4.65zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414M14.35 12.45H19v4.65h-4.65zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414m12.007 14.977a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293m0 12.3a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293m0-24.6a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293",
63762
63792
  clipRule: "evenodd"
63763
63793
  })));
63764
63794
  };
63765
- var _path$r, _path2$3, _path3$1;
63766
- function _extends$s() {
63767
- _extends$s = Object.assign ? Object.assign.bind() : function (target) {
63795
+ var _path$s, _path2$3, _path3$1;
63796
+ function _extends$t() {
63797
+ _extends$t = Object.assign ? Object.assign.bind() : function (target) {
63768
63798
  for (var i = 1; i < arguments.length; i++) {
63769
63799
  var source = arguments[i];
63770
63800
  for (var key in source) {
@@ -63775,15 +63805,15 @@
63775
63805
  }
63776
63806
  return target;
63777
63807
  };
63778
- return _extends$s.apply(this, arguments);
63808
+ return _extends$t.apply(this, arguments);
63779
63809
  }
63780
63810
  var SvgDatetime = function SvgDatetime(props) {
63781
- return /*#__PURE__*/v$1("svg", _extends$s({
63811
+ return /*#__PURE__*/v$1("svg", _extends$t({
63782
63812
  xmlns: "http://www.w3.org/2000/svg",
63783
63813
  width: 54,
63784
63814
  height: 54,
63785
63815
  fill: "currentcolor"
63786
- }, props), _path$r || (_path$r = /*#__PURE__*/v$1("path", {
63816
+ }, props), _path$s || (_path$s = /*#__PURE__*/v$1("path", {
63787
63817
  fillRule: "evenodd",
63788
63818
  d: "M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 0 0-2.06 2.06v23.549a2.07 2.07 0 0 0 2.06 2.06h6.77v-1.766h-6.358a.707.707 0 0 1-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 0 1 .707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06"
63789
63819
  })), _path2$3 || (_path2$3 = /*#__PURE__*/v$1("path", {
@@ -63793,9 +63823,9 @@
63793
63823
  d: "M23.08 36.962a9.678 9.678 0 1 0 17.883-7.408 9.678 9.678 0 0 0-17.882 7.408Zm4.54-10.292a7.924 7.924 0 1 1 8.805 13.177A7.924 7.924 0 0 1 27.62 26.67"
63794
63824
  })));
63795
63825
  };
63796
- var _path$q, _path2$2;
63797
- function _extends$r() {
63798
- _extends$r = Object.assign ? Object.assign.bind() : function (target) {
63826
+ var _path$r, _path2$2;
63827
+ function _extends$s() {
63828
+ _extends$s = Object.assign ? Object.assign.bind() : function (target) {
63799
63829
  for (var i = 1; i < arguments.length; i++) {
63800
63830
  var source = arguments[i];
63801
63831
  for (var key in source) {
@@ -63806,15 +63836,15 @@
63806
63836
  }
63807
63837
  return target;
63808
63838
  };
63809
- return _extends$r.apply(this, arguments);
63839
+ return _extends$s.apply(this, arguments);
63810
63840
  }
63811
63841
  var SvgTaglist = function SvgTaglist(props) {
63812
- return /*#__PURE__*/v$1("svg", _extends$r({
63842
+ return /*#__PURE__*/v$1("svg", _extends$s({
63813
63843
  xmlns: "http://www.w3.org/2000/svg",
63814
63844
  width: 54,
63815
63845
  height: 54,
63816
63846
  fill: "currentcolor"
63817
- }, props), _path$q || (_path$q = /*#__PURE__*/v$1("path", {
63847
+ }, props), _path$r || (_path$r = /*#__PURE__*/v$1("path", {
63818
63848
  fillRule: "evenodd",
63819
63849
  d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1"
63820
63850
  })), _path2$2 || (_path2$2 = /*#__PURE__*/v$1("path", {
@@ -63822,8 +63852,8 @@
63822
63852
  })));
63823
63853
  };
63824
63854
  var _rect$1, _rect2, _rect3;
63825
- function _extends$q() {
63826
- _extends$q = Object.assign ? Object.assign.bind() : function (target) {
63855
+ function _extends$r() {
63856
+ _extends$r = Object.assign ? Object.assign.bind() : function (target) {
63827
63857
  for (var i = 1; i < arguments.length; i++) {
63828
63858
  var source = arguments[i];
63829
63859
  for (var key in source) {
@@ -63834,10 +63864,10 @@
63834
63864
  }
63835
63865
  return target;
63836
63866
  };
63837
- return _extends$q.apply(this, arguments);
63867
+ return _extends$r.apply(this, arguments);
63838
63868
  }
63839
63869
  var SvgForm = function SvgForm(props) {
63840
- return /*#__PURE__*/v$1("svg", _extends$q({
63870
+ return /*#__PURE__*/v$1("svg", _extends$r({
63841
63871
  xmlns: "http://www.w3.org/2000/svg",
63842
63872
  width: 54,
63843
63873
  height: 54
@@ -63861,6 +63891,34 @@
63861
63891
  rx: 1
63862
63892
  })));
63863
63893
  };
63894
+ var _path$q;
63895
+ function _extends$q() {
63896
+ _extends$q = Object.assign ? Object.assign.bind() : function (target) {
63897
+ for (var i = 1; i < arguments.length; i++) {
63898
+ var source = arguments[i];
63899
+ for (var key in source) {
63900
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
63901
+ target[key] = source[key];
63902
+ }
63903
+ }
63904
+ }
63905
+ return target;
63906
+ };
63907
+ return _extends$q.apply(this, arguments);
63908
+ }
63909
+ var SvgGroup = function SvgGroup(props) {
63910
+ return /*#__PURE__*/v$1("svg", _extends$q({
63911
+ xmlns: "http://www.w3.org/2000/svg",
63912
+ width: 54,
63913
+ height: 54,
63914
+ fill: "none"
63915
+ }, props), _path$q || (_path$q = /*#__PURE__*/v$1("path", {
63916
+ fill: "#000",
63917
+ fillRule: "evenodd",
63918
+ d: "M4.05 42.132v1.164c0 .693.604 1.254 1.35 1.254h1.35v-2.507h-2.7v.09Zm0-2.328h2.7v-2.328h-2.7zm0-4.656h2.7V32.82h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656v.09h2.7V9.45H5.4c-.746 0-1.35.561-1.35 1.254zm5.4-2.418v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7v-1.253c0-.693-.604-1.254-1.35-1.254zm2.7 4.746h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656v-.09h-2.7v2.508h1.35c.746 0 1.35-.561 1.35-1.254zm-5.4 2.418v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507z",
63919
+ clipRule: "evenodd"
63920
+ })));
63921
+ };
63864
63922
  var _path$p;
63865
63923
  function _extends$p() {
63866
63924
  _extends$p = Object.assign ? Object.assign.bind() : function (target) {
@@ -63876,17 +63934,15 @@
63876
63934
  };
63877
63935
  return _extends$p.apply(this, arguments);
63878
63936
  }
63879
- var SvgGroup = function SvgGroup(props) {
63937
+ var SvgNumber = function SvgNumber(props) {
63880
63938
  return /*#__PURE__*/v$1("svg", _extends$p({
63881
63939
  xmlns: "http://www.w3.org/2000/svg",
63882
63940
  width: 54,
63883
63941
  height: 54,
63884
- fill: "none"
63942
+ fill: "currentcolor"
63885
63943
  }, props), _path$p || (_path$p = /*#__PURE__*/v$1("path", {
63886
- fill: "#000",
63887
63944
  fillRule: "evenodd",
63888
- d: "M4.05 42.132v1.164c0 .693.604 1.254 1.35 1.254h1.35v-2.507h-2.7v.09Zm0-2.328h2.7v-2.328h-2.7zm0-4.656h2.7V32.82h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656v.09h2.7V9.45H5.4c-.746 0-1.35.561-1.35 1.254zm5.4-2.418v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7v-1.253c0-.693-.604-1.254-1.35-1.254zm2.7 4.746h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656v-.09h-2.7v2.508h1.35c.746 0 1.35-.561 1.35-1.254zm-5.4 2.418v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507z",
63889
- clipRule: "evenodd"
63945
+ d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1M35 28.444h7l-3.5 4zM35 26h7l-3.5-4z"
63890
63946
  })));
63891
63947
  };
63892
63948
  var _path$o;
@@ -63904,15 +63960,14 @@
63904
63960
  };
63905
63961
  return _extends$o.apply(this, arguments);
63906
63962
  }
63907
- var SvgNumber = function SvgNumber(props) {
63963
+ var SvgRadio = function SvgRadio(props) {
63908
63964
  return /*#__PURE__*/v$1("svg", _extends$o({
63909
63965
  xmlns: "http://www.w3.org/2000/svg",
63910
63966
  width: 54,
63911
63967
  height: 54,
63912
63968
  fill: "currentcolor"
63913
63969
  }, props), _path$o || (_path$o = /*#__PURE__*/v$1("path", {
63914
- fillRule: "evenodd",
63915
- d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1M35 28.444h7l-3.5 4zM35 26h7l-3.5-4z"
63970
+ d: "M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16"
63916
63971
  })));
63917
63972
  };
63918
63973
  var _path$n;
@@ -63930,14 +63985,15 @@
63930
63985
  };
63931
63986
  return _extends$n.apply(this, arguments);
63932
63987
  }
63933
- var SvgRadio = function SvgRadio(props) {
63988
+ var SvgSelect = function SvgSelect(props) {
63934
63989
  return /*#__PURE__*/v$1("svg", _extends$n({
63935
63990
  xmlns: "http://www.w3.org/2000/svg",
63936
63991
  width: 54,
63937
63992
  height: 54,
63938
63993
  fill: "currentcolor"
63939
63994
  }, props), _path$n || (_path$n = /*#__PURE__*/v$1("path", {
63940
- d: "M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16"
63995
+ fillRule: "evenodd",
63996
+ d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-12 7h9l-4.5 6z"
63941
63997
  })));
63942
63998
  };
63943
63999
  var _path$m;
@@ -63955,15 +64011,15 @@
63955
64011
  };
63956
64012
  return _extends$m.apply(this, arguments);
63957
64013
  }
63958
- var SvgSelect = function SvgSelect(props) {
64014
+ var SvgSeparator = function SvgSeparator(props) {
63959
64015
  return /*#__PURE__*/v$1("svg", _extends$m({
63960
64016
  xmlns: "http://www.w3.org/2000/svg",
63961
64017
  width: 54,
63962
64018
  height: 54,
63963
- fill: "currentcolor"
64019
+ fill: "none"
63964
64020
  }, props), _path$m || (_path$m = /*#__PURE__*/v$1("path", {
63965
- fillRule: "evenodd",
63966
- d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-12 7h9l-4.5 6z"
64021
+ fill: "currentColor",
64022
+ d: "M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414zM9 26h36v2H9zm13.293 7.707 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414"
63967
64023
  })));
63968
64024
  };
63969
64025
  var _path$l;
@@ -63981,7 +64037,7 @@
63981
64037
  };
63982
64038
  return _extends$l.apply(this, arguments);
63983
64039
  }
63984
- var SvgSeparator = function SvgSeparator(props) {
64040
+ var SvgSpacer = function SvgSpacer(props) {
63985
64041
  return /*#__PURE__*/v$1("svg", _extends$l({
63986
64042
  xmlns: "http://www.w3.org/2000/svg",
63987
64043
  width: 54,
@@ -63989,7 +64045,7 @@
63989
64045
  fill: "none"
63990
64046
  }, props), _path$l || (_path$l = /*#__PURE__*/v$1("path", {
63991
64047
  fill: "currentColor",
63992
- d: "M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414zM9 26h36v2H9zm13.293 7.707 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414"
64048
+ d: "M9 15v2h36v-2zm0 22v2h36v-2zm17.293-17.707a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414zm-4 11.414 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414"
63993
64049
  })));
63994
64050
  };
63995
64051
  var _path$k;
@@ -64007,7 +64063,7 @@
64007
64063
  };
64008
64064
  return _extends$k.apply(this, arguments);
64009
64065
  }
64010
- var SvgSpacer = function SvgSpacer(props) {
64066
+ var SvgDynamicList = function SvgDynamicList(props) {
64011
64067
  return /*#__PURE__*/v$1("svg", _extends$k({
64012
64068
  xmlns: "http://www.w3.org/2000/svg",
64013
64069
  width: 54,
@@ -64015,7 +64071,9 @@
64015
64071
  fill: "none"
64016
64072
  }, props), _path$k || (_path$k = /*#__PURE__*/v$1("path", {
64017
64073
  fill: "currentColor",
64018
- d: "M9 15v2h36v-2zm0 22v2h36v-2zm17.293-17.707a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414zm-4 11.414 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414"
64074
+ fillRule: "evenodd",
64075
+ d: "M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795q.074.211.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096zm2.7-2.507v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507zm0-5.014V13.21H2.7v2.507zm-2.7-5.014h1.852a1.4 1.4 0 0 1-.502.096h1.275v-.096H5.4V9.45q0 .235-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45zm5.175.096h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1-2.7v1.795a1.4 1.4 0 0 1-.075-.445v1.254h.075v.096h1.275a1.4 1.4 0 0 1-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35zm-.075 5.11v2.508h2.7V13.21zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7V23.24zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm2.7 5.014h-1.852a1.4 1.4 0 0 1 .502-.096h-1.275v.096H48.6v1.254q0-.235.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35zm-5.175-.096h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zM16.2 17.55a4.05 4.05 0 0 1 4.05 4.05v1.35A4.05 4.05 0 0 1 16.2 27h-1.35a4.05 4.05 0 0 1-4.05-4.05V21.6a4.05 4.05 0 0 1 4.05-4.05zm0 2.7h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35c0 .746.604 1.35 1.35 1.35h1.35a1.35 1.35 0 0 0 1.35-1.35V21.6a1.35 1.35 0 0 0-1.35-1.35m27 1.35a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35A4.05 4.05 0 0 0 29.7 27h9.45a4.05 4.05 0 0 0 4.05-4.05zm-13.5-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35a1.35 1.35 0 0 1-1.35 1.35H29.7a1.35 1.35 0 0 1-1.35-1.35V21.6c0-.746.604-1.35 1.35-1.35M43.2 37.8a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35h2.7V37.8c0-.746.604-1.35 1.35-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35h2.7zm-27-4.05a4.05 4.05 0 0 1 4.05 4.05v1.35h-2.7V37.8a1.35 1.35 0 0 0-1.35-1.35h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35h-2.7V37.8a4.05 4.05 0 0 1 4.05-4.05z",
64076
+ clipRule: "evenodd"
64019
64077
  })));
64020
64078
  };
64021
64079
  var _path$j;
@@ -64033,17 +64091,14 @@
64033
64091
  };
64034
64092
  return _extends$j.apply(this, arguments);
64035
64093
  }
64036
- var SvgDynamicList = function SvgDynamicList(props) {
64094
+ var SvgText = function SvgText(props) {
64037
64095
  return /*#__PURE__*/v$1("svg", _extends$j({
64038
64096
  xmlns: "http://www.w3.org/2000/svg",
64039
64097
  width: 54,
64040
64098
  height: 54,
64041
- fill: "none"
64099
+ fill: "currentcolor"
64042
64100
  }, props), _path$j || (_path$j = /*#__PURE__*/v$1("path", {
64043
- fill: "currentColor",
64044
- fillRule: "evenodd",
64045
- d: "M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795q.074.211.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096zm2.7-2.507v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507zm0-5.014V13.21H2.7v2.507zm-2.7-5.014h1.852a1.4 1.4 0 0 1-.502.096h1.275v-.096H5.4V9.45q0 .235-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45zm5.175.096h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1-2.7v1.795a1.4 1.4 0 0 1-.075-.445v1.254h.075v.096h1.275a1.4 1.4 0 0 1-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35zm-.075 5.11v2.508h2.7V13.21zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7V23.24zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm2.7 5.014h-1.852a1.4 1.4 0 0 1 .502-.096h-1.275v.096H48.6v1.254q0-.235.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35zm-5.175-.096h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zM16.2 17.55a4.05 4.05 0 0 1 4.05 4.05v1.35A4.05 4.05 0 0 1 16.2 27h-1.35a4.05 4.05 0 0 1-4.05-4.05V21.6a4.05 4.05 0 0 1 4.05-4.05zm0 2.7h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35c0 .746.604 1.35 1.35 1.35h1.35a1.35 1.35 0 0 0 1.35-1.35V21.6a1.35 1.35 0 0 0-1.35-1.35m27 1.35a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35A4.05 4.05 0 0 0 29.7 27h9.45a4.05 4.05 0 0 0 4.05-4.05zm-13.5-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35a1.35 1.35 0 0 1-1.35 1.35H29.7a1.35 1.35 0 0 1-1.35-1.35V21.6c0-.746.604-1.35 1.35-1.35M43.2 37.8a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35h2.7V37.8c0-.746.604-1.35 1.35-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35h2.7zm-27-4.05a4.05 4.05 0 0 1 4.05 4.05v1.35h-2.7V37.8a1.35 1.35 0 0 0-1.35-1.35h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35h-2.7V37.8a4.05 4.05 0 0 1 4.05-4.05z",
64046
- clipRule: "evenodd"
64101
+ d: "M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.5 15.5 0 0 1 2.4.14 3.4 3.4 0 0 1 1.41.55 3.5 3.5 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.6 3.6 0 0 1-1.09 1.4 3.9 3.9 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.8 1.8 0 0 0 1.1-.49 1.4 1.4 0 0 0 .41-1 1.5 1.5 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.5 11.5 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.7 1.7 0 0 0-.86-.62 9.3 9.3 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.1 7.1 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.3 5.3 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21"
64047
64102
  })));
64048
64103
  };
64049
64104
  var _path$i;
@@ -64061,14 +64116,17 @@
64061
64116
  };
64062
64117
  return _extends$i.apply(this, arguments);
64063
64118
  }
64064
- var SvgText = function SvgText(props) {
64119
+ var SvgHtml = function SvgHtml(props) {
64065
64120
  return /*#__PURE__*/v$1("svg", _extends$i({
64066
64121
  xmlns: "http://www.w3.org/2000/svg",
64067
64122
  width: 54,
64068
64123
  height: 54,
64069
- fill: "currentcolor"
64124
+ fill: "none"
64070
64125
  }, props), _path$i || (_path$i = /*#__PURE__*/v$1("path", {
64071
- d: "M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.5 15.5 0 0 1 2.4.14 3.4 3.4 0 0 1 1.41.55 3.5 3.5 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.6 3.6 0 0 1-1.09 1.4 3.9 3.9 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.8 1.8 0 0 0 1.1-.49 1.4 1.4 0 0 0 .41-1 1.5 1.5 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.5 11.5 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.7 1.7 0 0 0-.86-.62 9.3 9.3 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.1 7.1 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.3 5.3 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21"
64126
+ fill: "currentColor",
64127
+ fillRule: "evenodd",
64128
+ d: "M47.008 12.15c1.625 0 2.942 1.36 2.942 3.039v23.622c0 1.678-1.317 3.039-2.942 3.039H6.992c-1.625 0-2.942-1.36-2.942-3.039V15.189c0-1.678 1.317-3.039 2.942-3.039zm0 2.026H6.992c-.542 0-.98.454-.98 1.013V16.2h-.004v2.7h.003v19.911c0 .56.44 1.013.98 1.013h40.017c.542 0 .98-.453.98-1.013V18.9h.005v-2.7h-.004v-1.011c0-.56-.44-1.013-.98-1.013M14.934 26.055v-3.78h2.194v9.45h-2.194v-3.78h-3.29v3.78H9.45v-9.45h2.194v3.78zm4.388-1.89h2.194v7.56h2.193v-7.56h2.194v-1.89h-6.581zm14.26-1.89h2.193v9.45h-2.194V25.11l-1.645 3.78-1.645-3.78v6.615h-2.194v-9.45h2.194l1.645 3.78zm4.387 0h2.194v7.56h4.387v1.89h-6.581z",
64129
+ clipRule: "evenodd"
64072
64130
  })));
64073
64131
  };
64074
64132
  var _path$h;
@@ -64086,16 +64144,16 @@
64086
64144
  };
64087
64145
  return _extends$h.apply(this, arguments);
64088
64146
  }
64089
- var SvgHtml = function SvgHtml(props) {
64147
+ var SvgExpressionField = function SvgExpressionField(props) {
64090
64148
  return /*#__PURE__*/v$1("svg", _extends$h({
64091
64149
  xmlns: "http://www.w3.org/2000/svg",
64092
64150
  width: 54,
64093
64151
  height: 54,
64094
64152
  fill: "none"
64095
64153
  }, props), _path$h || (_path$h = /*#__PURE__*/v$1("path", {
64096
- fill: "currentColor",
64154
+ fill: "currentcolor",
64097
64155
  fillRule: "evenodd",
64098
- d: "M47.008 12.15c1.625 0 2.942 1.36 2.942 3.039v23.622c0 1.678-1.317 3.039-2.942 3.039H6.992c-1.625 0-2.942-1.36-2.942-3.039V15.189c0-1.678 1.317-3.039 2.942-3.039zm0 2.026H6.992c-.542 0-.98.454-.98 1.013V16.2h-.004v2.7h.003v19.911c0 .56.44 1.013.98 1.013h40.017c.542 0 .98-.453.98-1.013V18.9h.005v-2.7h-.004v-1.011c0-.56-.44-1.013-.98-1.013M14.934 26.055v-3.78h2.194v9.45h-2.194v-3.78h-3.29v3.78H9.45v-9.45h2.194v3.78zm4.388-1.89h2.194v7.56h2.193v-7.56h2.194v-1.89h-6.581zm14.26-1.89h2.193v9.45h-2.194V25.11l-1.645 3.78-1.645-3.78v6.615h-2.194v-9.45h2.194l1.645 3.78zm4.387 0h2.194v7.56h4.387v1.89h-6.581z",
64156
+ d: "M12.78 16.2v6.75c0 1.619-.635 3.059-1.618 4.05.983.991 1.618 2.431 1.618 4.05v6.75h3.51v2.7h-3.51c-1.289 0-2.34-1.213-2.34-2.7v-6.75c0-1.487-1.051-2.7-2.34-2.7v-2.7c1.289 0 2.34-1.213 2.34-2.7V16.2c0-1.487 1.051-2.7 2.34-2.7h3.51v2.7zm30.78 0v6.75c0 1.487 1.051 2.7 2.34 2.7v2.7c-1.289 0-2.34 1.213-2.34 2.7v6.75c0 1.487-1.051 2.7-2.34 2.7h-3.51v-2.7h3.51v-6.75c0-1.619.635-3.059 1.618-4.05-.983-.991-1.618-2.431-1.618-4.05V16.2h-3.51v-2.7h3.51c1.289 0 2.34 1.213 2.34 2.7M21.8 34.531q.7-.569.959-1.758l1.788-8.34h1.585l.387-1.828h-1.585l.405-1.878h1.585l.387-1.827H25.69q-1.271 0-1.972.569-.681.569-.94 1.758l-.294 1.378H21.34l-.387 1.827h1.142l-1.898 8.841h-1.585l-.387 1.827h1.622q1.272 0 1.953-.569m7.248-7.686-3.797 4.808h2.599l2.12-3.016h.22l.885 3.016h2.599l-1.677-4.36 3.778-4.688h-2.599l-2.12 2.947h-.22l-.885-2.947h-2.599z",
64099
64157
  clipRule: "evenodd"
64100
64158
  })));
64101
64159
  };
@@ -64114,17 +64172,15 @@
64114
64172
  };
64115
64173
  return _extends$g.apply(this, arguments);
64116
64174
  }
64117
- var SvgExpressionField = function SvgExpressionField(props) {
64175
+ var SvgTextfield = function SvgTextfield(props) {
64118
64176
  return /*#__PURE__*/v$1("svg", _extends$g({
64119
64177
  xmlns: "http://www.w3.org/2000/svg",
64120
64178
  width: 54,
64121
64179
  height: 54,
64122
- fill: "none"
64180
+ fill: "currentcolor"
64123
64181
  }, props), _path$g || (_path$g = /*#__PURE__*/v$1("path", {
64124
- fill: "currentcolor",
64125
64182
  fillRule: "evenodd",
64126
- d: "M12.78 16.2v6.75c0 1.619-.635 3.059-1.618 4.05.983.991 1.618 2.431 1.618 4.05v6.75h3.51v2.7h-3.51c-1.289 0-2.34-1.213-2.34-2.7v-6.75c0-1.487-1.051-2.7-2.34-2.7v-2.7c1.289 0 2.34-1.213 2.34-2.7V16.2c0-1.487 1.051-2.7 2.34-2.7h3.51v2.7zm30.78 0v6.75c0 1.487 1.051 2.7 2.34 2.7v2.7c-1.289 0-2.34 1.213-2.34 2.7v6.75c0 1.487-1.051 2.7-2.34 2.7h-3.51v-2.7h3.51v-6.75c0-1.619.635-3.059 1.618-4.05-.983-.991-1.618-2.431-1.618-4.05V16.2h-3.51v-2.7h3.51c1.289 0 2.34 1.213 2.34 2.7M21.8 34.531q.7-.569.959-1.758l1.788-8.34h1.585l.387-1.828h-1.585l.405-1.878h1.585l.387-1.827H25.69q-1.271 0-1.972.569-.681.569-.94 1.758l-.294 1.378H21.34l-.387 1.827h1.142l-1.898 8.841h-1.585l-.387 1.827h1.622q1.272 0 1.953-.569m7.248-7.686-3.797 4.808h2.599l2.12-3.016h.22l.885 3.016h2.599l-1.677-4.36 3.778-4.688h-2.599l-2.12 2.947h-.22l-.885-2.947h-2.599z",
64127
- clipRule: "evenodd"
64183
+ d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-32 4v10h-2V22z"
64128
64184
  })));
64129
64185
  };
64130
64186
  var _path$f;
@@ -64142,7 +64198,7 @@
64142
64198
  };
64143
64199
  return _extends$f.apply(this, arguments);
64144
64200
  }
64145
- var SvgTextfield = function SvgTextfield(props) {
64201
+ var SvgTextarea = function SvgTextarea(props) {
64146
64202
  return /*#__PURE__*/v$1("svg", _extends$f({
64147
64203
  xmlns: "http://www.w3.org/2000/svg",
64148
64204
  width: 54,
@@ -64150,7 +64206,7 @@
64150
64206
  fill: "currentcolor"
64151
64207
  }, props), _path$f || (_path$f = /*#__PURE__*/v$1("path", {
64152
64208
  fillRule: "evenodd",
64153
- d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-32 4v10h-2V22z"
64209
+ d: "M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1m-1.136 15.5.849.849-6.364 6.364-.849-.849zm.264 3.5.849.849-2.828 2.828-.849-.849zM13 19v10h-2V19z"
64154
64210
  })));
64155
64211
  };
64156
64212
  var _path$e;
@@ -64168,18 +64224,20 @@
64168
64224
  };
64169
64225
  return _extends$e.apply(this, arguments);
64170
64226
  }
64171
- var SvgTextarea = function SvgTextarea(props) {
64227
+ var SvgIFrame = function SvgIFrame(props) {
64172
64228
  return /*#__PURE__*/v$1("svg", _extends$e({
64173
64229
  xmlns: "http://www.w3.org/2000/svg",
64174
64230
  width: 54,
64175
64231
  height: 54,
64176
- fill: "currentcolor"
64232
+ fill: "none"
64177
64233
  }, props), _path$e || (_path$e = /*#__PURE__*/v$1("path", {
64234
+ fill: "currentColor",
64178
64235
  fillRule: "evenodd",
64179
- d: "M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1m-1.136 15.5.849.849-6.364 6.364-.849-.849zm.264 3.5.849.849-2.828 2.828-.849-.849zM13 19v10h-2V19z"
64236
+ d: "M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.77 8.77 0 0 1 39.825 27a8.77 8.77 0 0 1 8.775 8.775 8.77 8.77 0 0 1-8.775 8.775 8.77 8.77 0 0 1-8.775-8.775m12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0q-.155 2.632-.929 4.645c1.858-.826 3.304-2.58 3.923-4.645z",
64237
+ clipRule: "evenodd"
64180
64238
  })));
64181
64239
  };
64182
- var _path$d;
64240
+ var _path$d, _path2$1$1;
64183
64241
  function _extends$d() {
64184
64242
  _extends$d = Object.assign ? Object.assign.bind() : function (target) {
64185
64243
  for (var i = 1; i < arguments.length; i++) {
@@ -64194,20 +64252,23 @@
64194
64252
  };
64195
64253
  return _extends$d.apply(this, arguments);
64196
64254
  }
64197
- var SvgIFrame = function SvgIFrame(props) {
64255
+ var SvgImage = function SvgImage(props) {
64198
64256
  return /*#__PURE__*/v$1("svg", _extends$d({
64199
64257
  xmlns: "http://www.w3.org/2000/svg",
64200
64258
  width: 54,
64201
64259
  height: 54,
64202
- fill: "none"
64260
+ fill: "currentcolor"
64203
64261
  }, props), _path$d || (_path$d = /*#__PURE__*/v$1("path", {
64204
- fill: "currentColor",
64205
64262
  fillRule: "evenodd",
64206
- d: "M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.77 8.77 0 0 1 39.825 27a8.77 8.77 0 0 1 8.775 8.775 8.77 8.77 0 0 1-8.775 8.775 8.77 8.77 0 0 1-8.775-8.775m12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0q-.155 2.632-.929 4.645c1.858-.826 3.304-2.58 3.923-4.645z",
64263
+ d: "M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z",
64264
+ clipRule: "evenodd"
64265
+ })), _path2$1$1 || (_path2$1$1 = /*#__PURE__*/v$1("path", {
64266
+ fillRule: "evenodd",
64267
+ d: "M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73zM15 39v-8.754a1 1 0 0 0 .168-.135l5.893-5.893 6.684 6.685a1.91 1.91 0 0 0 2.41.238l2.657-1.77 6.02 6.02q.078.077.168.135V39z",
64207
64268
  clipRule: "evenodd"
64208
64269
  })));
64209
64270
  };
64210
- var _path$c, _path2$1$1;
64271
+ var _path$c;
64211
64272
  function _extends$c() {
64212
64273
  _extends$c = Object.assign ? Object.assign.bind() : function (target) {
64213
64274
  for (var i = 1; i < arguments.length; i++) {
@@ -64222,19 +64283,15 @@
64222
64283
  };
64223
64284
  return _extends$c.apply(this, arguments);
64224
64285
  }
64225
- var SvgImage = function SvgImage(props) {
64286
+ var SvgTable = function SvgTable(props) {
64226
64287
  return /*#__PURE__*/v$1("svg", _extends$c({
64227
64288
  xmlns: "http://www.w3.org/2000/svg",
64228
- width: 54,
64229
- height: 54,
64230
- fill: "currentcolor"
64289
+ fill: "none",
64290
+ viewBox: "0 0 54 54"
64231
64291
  }, props), _path$c || (_path$c = /*#__PURE__*/v$1("path", {
64292
+ fill: "currentcolor",
64232
64293
  fillRule: "evenodd",
64233
- d: "M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z",
64234
- clipRule: "evenodd"
64235
- })), _path2$1$1 || (_path2$1$1 = /*#__PURE__*/v$1("path", {
64236
- fillRule: "evenodd",
64237
- d: "M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73zM15 39v-8.754a1 1 0 0 0 .168-.135l5.893-5.893 6.684 6.685a1.91 1.91 0 0 0 2.41.238l2.657-1.77 6.02 6.02q.078.077.168.135V39z",
64294
+ d: "M42.545 12.273A2.455 2.455 0 0 1 45 14.727v24.546a2.455 2.455 0 0 1-2.455 2.454h-31.09A2.455 2.455 0 0 1 9 39.273V14.727a2.455 2.455 0 0 1 2.455-2.454zM27.818 40.09h14.727a.82.82 0 0 0 .819-.818v-4.91H27.818Zm-1.636-5.727v5.727H11.455a.82.82 0 0 1-.819-.818v-4.91zm1.636-1.637h15.546V27H27.818ZM26.182 27v5.727H10.636V27zm1.636-1.636h15.546v-5.728H27.818Zm-1.636-5.728v5.728H10.636v-5.728z",
64238
64295
  clipRule: "evenodd"
64239
64296
  })));
64240
64297
  };
@@ -64253,15 +64310,16 @@
64253
64310
  };
64254
64311
  return _extends$b.apply(this, arguments);
64255
64312
  }
64256
- var SvgTable = function SvgTable(props) {
64313
+ var SvgFilePicker = function SvgFilePicker(props) {
64257
64314
  return /*#__PURE__*/v$1("svg", _extends$b({
64258
64315
  xmlns: "http://www.w3.org/2000/svg",
64259
- fill: "none",
64260
- viewBox: "0 0 54 54"
64316
+ width: 54,
64317
+ height: 54,
64318
+ fill: "none"
64261
64319
  }, props), _path$b || (_path$b = /*#__PURE__*/v$1("path", {
64262
64320
  fill: "currentcolor",
64263
64321
  fillRule: "evenodd",
64264
- d: "M42.545 12.273A2.455 2.455 0 0 1 45 14.727v24.546a2.455 2.455 0 0 1-2.455 2.454h-31.09A2.455 2.455 0 0 1 9 39.273V14.727a2.455 2.455 0 0 1 2.455-2.454zM27.818 40.09h14.727a.82.82 0 0 0 .819-.818v-4.91H27.818Zm-1.636-5.727v5.727H11.455a.82.82 0 0 1-.819-.818v-4.91zm1.636-1.637h15.546V27H27.818ZM26.182 27v5.727H10.636V27zm1.636-1.636h15.546v-5.728H27.818Zm-1.636-5.728v5.728H10.636v-5.728z",
64322
+ d: "M17.55 41.175H27v2.362h-9.45a2.37 2.37 0 0 1-2.363-2.362v-28.35a2.37 2.37 0 0 1 2.363-2.363h11.813a1.07 1.07 0 0 1 .826.355l8.27 8.269a1.07 1.07 0 0 1 .353.826v5.907H36.45v-3.544h-7.088A2.37 2.37 0 0 1 27 19.912v-7.087h-9.45zm18.427-21.263-6.614-6.615v6.615zm4.253 18.664 3.308 3.308-1.654 1.653-3.308-3.307a6.35 6.35 0 0 1-3.307.945c-3.308 0-5.906-2.599-5.906-5.906 0-3.308 2.598-5.907 5.906-5.907s5.906 2.6 5.906 5.907a6.35 6.35 0 0 1-.945 3.307m-4.961-6.851c-2.008 0-3.544 1.536-3.544 3.544s1.536 3.543 3.544 3.543 3.544-1.535 3.544-3.543-1.536-3.544-3.544-3.544",
64265
64323
  clipRule: "evenodd"
64266
64324
  })));
64267
64325
  };
@@ -64288,10 +64346,11 @@
64288
64346
  textfield: SvgTextfield,
64289
64347
  textarea: SvgTextarea,
64290
64348
  table: SvgTable,
64349
+ filepicker: SvgFilePicker,
64291
64350
  default: SvgForm
64292
64351
  }[type];
64293
64352
  };
64294
- const type$c = 'image';
64353
+ const type$d = 'image';
64295
64354
  function Image$1(props) {
64296
64355
  const {
64297
64356
  field
@@ -64313,7 +64372,7 @@
64313
64372
  formId
64314
64373
  } = F$1(FormContext);
64315
64374
  return e("div", {
64316
- class: formFieldClasses(type$c),
64375
+ class: formFieldClasses(type$d),
64317
64376
  children: [safeSource && e("div", {
64318
64377
  class: "fjs-image-container",
64319
64378
  children: e("img", {
@@ -64337,7 +64396,7 @@
64337
64396
  });
64338
64397
  }
64339
64398
  Image$1.config = {
64340
- type: type$c,
64399
+ type: type$d,
64341
64400
  keyed: false,
64342
64401
  label: 'Image view',
64343
64402
  group: 'presentation',
@@ -64448,7 +64507,7 @@
64448
64507
  function isNullEquivalentValue(value) {
64449
64508
  return value === undefined || value === null || value === '';
64450
64509
  }
64451
- const type$b = 'number';
64510
+ const type$c = 'number';
64452
64511
  function Numberfield(props) {
64453
64512
  const {
64454
64513
  disabled,
@@ -64593,7 +64652,7 @@
64593
64652
  const descriptionId = `${domId}-description`;
64594
64653
  const errorMessageId = `${domId}-error-message`;
64595
64654
  return e("div", {
64596
- class: formFieldClasses(type$b, {
64655
+ class: formFieldClasses(type$c, {
64597
64656
  errors,
64598
64657
  disabled,
64599
64658
  readonly
@@ -64670,7 +64729,7 @@
64670
64729
  });
64671
64730
  }
64672
64731
  Numberfield.config = {
64673
- type: type$b,
64732
+ type: type$c,
64674
64733
  keyed: true,
64675
64734
  label: 'Number',
64676
64735
  group: 'basic-input',
@@ -64689,7 +64748,7 @@
64689
64748
  ...options
64690
64749
  })
64691
64750
  };
64692
- const type$a = 'radio';
64751
+ const type$b = 'radio';
64693
64752
  function Radio(props) {
64694
64753
  const {
64695
64754
  disabled,
@@ -64741,7 +64800,7 @@
64741
64800
  const descriptionId = `${domId}-description`;
64742
64801
  const errorMessageId = `${domId}-error-message`;
64743
64802
  return e("div", {
64744
- class: formFieldClasses(type$a, {
64803
+ class: formFieldClasses(type$b, {
64745
64804
  errors,
64746
64805
  disabled,
64747
64806
  readonly
@@ -64785,7 +64844,7 @@
64785
64844
  });
64786
64845
  }
64787
64846
  Radio.config = {
64788
- type: type$a,
64847
+ type: type$b,
64789
64848
  keyed: true,
64790
64849
  label: 'Radio group',
64791
64850
  group: 'selection',
@@ -65104,7 +65163,7 @@
65104
65163
  })]
65105
65164
  });
65106
65165
  }
65107
- const type$9 = 'select';
65166
+ const type$a = 'select';
65108
65167
  function Select$1(props) {
65109
65168
  const {
65110
65169
  disabled,
@@ -65143,7 +65202,7 @@
65143
65202
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
65144
65203
  };
65145
65204
  return e("div", {
65146
- class: formFieldClasses(type$9, {
65205
+ class: formFieldClasses(type$a, {
65147
65206
  errors,
65148
65207
  disabled,
65149
65208
  readonly
@@ -65172,7 +65231,7 @@
65172
65231
  });
65173
65232
  }
65174
65233
  Select$1.config = {
65175
- type: type$9,
65234
+ type: type$a,
65176
65235
  keyed: true,
65177
65236
  label: 'Select',
65178
65237
  group: 'selection',
@@ -65180,15 +65239,15 @@
65180
65239
  sanitizeValue: sanitizeSingleSelectValue,
65181
65240
  create: createEmptyOptions
65182
65241
  };
65183
- const type$8 = 'separator';
65242
+ const type$9 = 'separator';
65184
65243
  function Separator() {
65185
65244
  return e("div", {
65186
- class: formFieldClasses(type$8),
65245
+ class: formFieldClasses(type$9),
65187
65246
  children: e("hr", {})
65188
65247
  });
65189
65248
  }
65190
65249
  Separator.config = {
65191
- type: type$8,
65250
+ type: type$9,
65192
65251
  keyed: false,
65193
65252
  label: 'Separator',
65194
65253
  group: 'presentation',
@@ -65196,7 +65255,7 @@
65196
65255
  ...options
65197
65256
  })
65198
65257
  };
65199
- const type$7 = 'spacer';
65258
+ const type$8 = 'spacer';
65200
65259
  function Spacer(props) {
65201
65260
  const {
65202
65261
  field
@@ -65205,14 +65264,14 @@
65205
65264
  height = 60
65206
65265
  } = field;
65207
65266
  return e("div", {
65208
- class: formFieldClasses(type$7),
65267
+ class: formFieldClasses(type$8),
65209
65268
  style: {
65210
65269
  height: height
65211
65270
  }
65212
65271
  });
65213
65272
  }
65214
65273
  Spacer.config = {
65215
- type: type$7,
65274
+ type: type$8,
65216
65275
  keyed: false,
65217
65276
  label: 'Spacer',
65218
65277
  group: 'presentation',
@@ -65290,7 +65349,7 @@
65290
65349
  children: label
65291
65350
  });
65292
65351
  }
65293
- const type$6 = 'taglist';
65352
+ const type$7 = 'taglist';
65294
65353
  function Taglist(props) {
65295
65354
  const {
65296
65355
  disabled,
@@ -65432,7 +65491,7 @@
65432
65491
  const errorMessageId = `${domId}-error-message`;
65433
65492
  return e("div", {
65434
65493
  ref: focusScopeRef,
65435
- class: formFieldClasses(type$6, {
65494
+ class: formFieldClasses(type$7, {
65436
65495
  errors,
65437
65496
  disabled,
65438
65497
  readonly
@@ -65517,7 +65576,7 @@
65517
65576
  });
65518
65577
  }
65519
65578
  Taglist.config = {
65520
- type: type$6,
65579
+ type: type$7,
65521
65580
  keyed: true,
65522
65581
  label: 'Tag list',
65523
65582
  group: 'selection',
@@ -65636,7 +65695,7 @@
65636
65695
  }
65637
65696
  return true;
65638
65697
  }
65639
- const type$5 = 'text';
65698
+ const type$6 = 'text';
65640
65699
  function Text$1(props) {
65641
65700
  const form = useService$2('form');
65642
65701
  const {
@@ -65683,12 +65742,12 @@
65683
65742
  sanitizeStyleTags: false
65684
65743
  });
65685
65744
  return e("div", {
65686
- class: formFieldClasses(type$5),
65745
+ class: formFieldClasses(type$6),
65687
65746
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
65688
65747
  });
65689
65748
  }
65690
65749
  Text$1.config = {
65691
- type: type$5,
65750
+ type: type$6,
65692
65751
  keyed: false,
65693
65752
  label: 'Text view',
65694
65753
  group: 'presentation',
@@ -65697,7 +65756,7 @@
65697
65756
  ...options
65698
65757
  })
65699
65758
  };
65700
- const type$4 = 'html';
65759
+ const type$5 = 'html';
65701
65760
  function Html(props) {
65702
65761
  const form = useService$2('form');
65703
65762
  const {
@@ -65748,12 +65807,12 @@
65748
65807
  sanitizeStyleTags: false
65749
65808
  });
65750
65809
  return e("div", {
65751
- class: classNames(formFieldClasses(type$4), styleScope),
65810
+ class: classNames(formFieldClasses(type$5), styleScope),
65752
65811
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
65753
65812
  });
65754
65813
  }
65755
65814
  Html.config = {
65756
- type: type$4,
65815
+ type: type$5,
65757
65816
  keyed: false,
65758
65817
  label: 'HTML view',
65759
65818
  group: 'presentation',
@@ -65762,7 +65821,7 @@
65762
65821
  ...options
65763
65822
  })
65764
65823
  };
65765
- const type$3 = 'expression';
65824
+ const type$4 = 'expression';
65766
65825
  function ExpressionField(props) {
65767
65826
  const {
65768
65827
  field,
@@ -65799,7 +65858,7 @@
65799
65858
  return null;
65800
65859
  }
65801
65860
  ExpressionField.config = {
65802
- type: type$3,
65861
+ type: type$4,
65803
65862
  label: 'Expression',
65804
65863
  group: 'basic-input',
65805
65864
  keyed: true,
@@ -65810,7 +65869,7 @@
65810
65869
  ...options
65811
65870
  })
65812
65871
  };
65813
- const type$2 = 'textfield';
65872
+ const type$3 = 'textfield';
65814
65873
  function Textfield$1(props) {
65815
65874
  const {
65816
65875
  disabled,
@@ -65852,7 +65911,7 @@
65852
65911
  const descriptionId = `${domId}-description`;
65853
65912
  const errorMessageId = `${domId}-error-message`;
65854
65913
  return e("div", {
65855
- class: formFieldClasses(type$2, {
65914
+ class: formFieldClasses(type$3, {
65856
65915
  errors,
65857
65916
  disabled,
65858
65917
  readonly
@@ -65890,7 +65949,7 @@
65890
65949
  });
65891
65950
  }
65892
65951
  Textfield$1.config = {
65893
- type: type$2,
65952
+ type: type$3,
65894
65953
  keyed: true,
65895
65954
  label: 'Text field',
65896
65955
  group: 'basic-input',
@@ -65912,7 +65971,7 @@
65912
65971
  ...options
65913
65972
  })
65914
65973
  };
65915
- const type$1 = 'textarea';
65974
+ const type$2 = 'textarea';
65916
65975
  function Textarea(props) {
65917
65976
  const {
65918
65977
  disabled,
@@ -65962,7 +66021,7 @@
65962
66021
  const descriptionId = `${domId}-description`;
65963
66022
  const errorMessageId = `${domId}-error-message`;
65964
66023
  return e("div", {
65965
- class: formFieldClasses(type$1, {
66024
+ class: formFieldClasses(type$2, {
65966
66025
  errors,
65967
66026
  disabled,
65968
66027
  readonly
@@ -65994,7 +66053,7 @@
65994
66053
  });
65995
66054
  }
65996
66055
  Textarea.config = {
65997
- type: type$1,
66056
+ type: type$2,
65998
66057
  keyed: true,
65999
66058
  label: 'Text area',
66000
66059
  group: 'basic-input',
@@ -66122,7 +66181,7 @@
66122
66181
  d: "m12 8 10 8-10 8z"
66123
66182
  })));
66124
66183
  };
66125
- const type$i = 'table';
66184
+ const type$1 = 'table';
66126
66185
 
66127
66186
  /**
66128
66187
  * @typedef {('asc'|'desc')} Direction
@@ -66199,7 +66258,7 @@
66199
66258
  });
66200
66259
  }
66201
66260
  return e("div", {
66202
- class: formFieldClasses(type$i),
66261
+ class: formFieldClasses(type$1),
66203
66262
  children: [e(Label$3, {
66204
66263
  htmlFor: prefixId$2(id),
66205
66264
  label: label
@@ -66296,7 +66355,7 @@
66296
66355
  });
66297
66356
  }
66298
66357
  Table.config = {
66299
- type: type$i,
66358
+ type: type$1,
66300
66359
  keyed: false,
66301
66360
  label: 'Table',
66302
66361
  group: 'presentation',
@@ -66426,26 +66485,179 @@
66426
66485
  if (!isObject$3(a) || !isObject$3(b)) {
66427
66486
  return 0;
66428
66487
  }
66429
- if (direction === 'asc') {
66430
- return a[key] > b[key] ? 1 : -1;
66488
+ if (direction === 'asc') {
66489
+ return a[key] > b[key] ? 1 : -1;
66490
+ }
66491
+ return a[key] < b[key] ? 1 : -1;
66492
+ });
66493
+ }
66494
+
66495
+ /**
66496
+ * @param {null|Sorting} sortBy
66497
+ * @param {string} key
66498
+ * @param {string} label
66499
+ */
66500
+ function getHeaderAriaLabel(sortBy, key, label) {
66501
+ if (sortBy === null || sortBy.key !== key) {
66502
+ return `Click to sort by ${label} descending`;
66503
+ }
66504
+ if (sortBy.direction === 'asc') {
66505
+ return 'Click to remove sorting';
66506
+ }
66507
+ return `Click to sort by ${label} ascending`;
66508
+ }
66509
+ const FILE_PICKER_FILE_KEY_PREFIX = 'files::';
66510
+ const type$j = 'filepicker';
66511
+ const ids$1 = new Ids();
66512
+ const EMPTY_ARRAY$1 = [];
66513
+
66514
+ /**
66515
+ * @typedef Props
66516
+ * @property {(props: { value: string }) => void} onChange
66517
+ * @property {string} domId
66518
+ * @property {string[]} errors
66519
+ * @property {boolean} disabled
66520
+ * @property {boolean} readonly
66521
+ * @property {boolean} required
66522
+ * @property {Object} field
66523
+ * @property {string} field.id
66524
+ * @property {string} [field.label]
66525
+ * @property {string} [field.accept]
66526
+ * @property {string|boolean} [field.multiple]
66527
+ * @property {string} [value]
66528
+ *
66529
+ * @param {Props} props
66530
+ * @returns {import("preact").JSX.Element}
66531
+ */
66532
+ function FilePicker(props) {
66533
+ /** @type {import("preact/hooks").Ref<HTMLInputElement>} */
66534
+ const fileInputRef = s$1(null);
66535
+ /** @type {import('../../FileRegistry').FileRegistry} */
66536
+ const fileRegistry = useService$2('fileRegistry', false);
66537
+ const {
66538
+ field,
66539
+ onChange,
66540
+ domId,
66541
+ errors = [],
66542
+ disabled,
66543
+ readonly,
66544
+ required,
66545
+ value: filesKey = ''
66546
+ } = props;
66547
+ const {
66548
+ label,
66549
+ multiple = false,
66550
+ accept = ''
66551
+ } = field;
66552
+ /** @type {string} */
66553
+ const evaluatedAccept = useSingleLineTemplateEvaluation(accept);
66554
+ const evaluatedMultiple = useBooleanExpressionEvaluation(multiple);
66555
+ const errorMessageId = `${domId}-error-message`;
66556
+ /** @type {File[]} */
66557
+ const selectedFiles = fileRegistry === null ? EMPTY_ARRAY$1 : fileRegistry.getFiles(filesKey);
66558
+ y(() => {
66559
+ if (filesKey && fileRegistry !== null && !fileRegistry.hasKey(filesKey)) {
66560
+ onChange({
66561
+ value: null
66562
+ });
66563
+ }
66564
+ }, [fileRegistry, filesKey, onChange, selectedFiles.length]);
66565
+ y(() => {
66566
+ const data = new DataTransfer();
66567
+ selectedFiles.forEach(file => data.items.add(file));
66568
+ fileInputRef.current.files = data.files;
66569
+ }, [selectedFiles]);
66570
+
66571
+ /**
66572
+ * @type import("preact").JSX.GenericEventHandler<HTMLInputElement>
66573
+ */
66574
+ const onFileChange = event => {
66575
+ const input = /** @type {HTMLInputElement} */event.target;
66576
+
66577
+ // if we have an associated file key but no files are selected, clear the file key and associated files
66578
+ if ((input.files === null || input.files.length === 0) && filesKey !== '') {
66579
+ fileRegistry.deleteFiles(filesKey);
66580
+ onChange({
66581
+ value: null
66582
+ });
66583
+ return;
66431
66584
  }
66432
- return a[key] < b[key] ? 1 : -1;
66585
+ const files = Array.from(input.files);
66586
+
66587
+ // ensure fileKey exists
66588
+ const updatedFilesKey = filesKey || ids$1.nextPrefixed(FILE_PICKER_FILE_KEY_PREFIX);
66589
+ fileRegistry.setFiles(updatedFilesKey, files);
66590
+ onChange({
66591
+ value: updatedFilesKey
66592
+ });
66593
+ };
66594
+ const isInputDisabled = disabled || readonly || fileRegistry === null;
66595
+ return e("div", {
66596
+ className: formFieldClasses(type$j, {
66597
+ errors,
66598
+ disabled,
66599
+ readonly
66600
+ }),
66601
+ children: [e(Label$3, {
66602
+ htmlFor: domId,
66603
+ label: label,
66604
+ required: required
66605
+ }), e("input", {
66606
+ type: "file",
66607
+ className: "fjs-hidden",
66608
+ ref: fileInputRef,
66609
+ id: domId,
66610
+ name: domId,
66611
+ disabled: isInputDisabled,
66612
+ multiple: evaluatedMultiple || undefined,
66613
+ accept: evaluatedAccept || undefined,
66614
+ onChange: onFileChange
66615
+ }), e("div", {
66616
+ className: "fjs-filepicker-container",
66617
+ children: [e("button", {
66618
+ type: "button",
66619
+ disabled: isInputDisabled,
66620
+ readonly: readonly,
66621
+ className: "fjs-button fjs-filepicker-button",
66622
+ onClick: () => {
66623
+ fileInputRef.current.click();
66624
+ },
66625
+ children: "Browse"
66626
+ }), e("span", {
66627
+ className: "fjs-form-field-label",
66628
+ children: getSelectedFilesLabel(selectedFiles)
66629
+ })]
66630
+ }), e(Errors, {
66631
+ id: errorMessageId,
66632
+ errors: errors
66633
+ })]
66433
66634
  });
66434
66635
  }
66636
+ FilePicker.config = {
66637
+ type: 'filepicker',
66638
+ keyed: true,
66639
+ label: 'File picker',
66640
+ group: 'basic-input',
66641
+ emptyValue: null,
66642
+ create: (options = {}) => ({
66643
+ ...options
66644
+ })
66645
+ };
66646
+
66647
+ // helper //////////
66435
66648
 
66436
66649
  /**
66437
- * @param {null|Sorting} sortBy
66438
- * @param {string} key
66439
- * @param {string} label
66650
+ * @param {File[]} files
66651
+ * @returns {string}
66440
66652
  */
66441
- function getHeaderAriaLabel(sortBy, key, label) {
66442
- if (sortBy === null || sortBy.key !== key) {
66443
- return `Click to sort by ${label} descending`;
66653
+ function getSelectedFilesLabel(files) {
66654
+ if (files.length === 0) {
66655
+ return 'No files selected';
66444
66656
  }
66445
- if (sortBy.direction === 'asc') {
66446
- return 'Click to remove sorting';
66657
+ if (files.length === 1) {
66658
+ return files[0].name;
66447
66659
  }
66448
- return `Click to sort by ${label} ascending`;
66660
+ return `${files.length} files selected`;
66449
66661
  }
66450
66662
 
66451
66663
  /**
@@ -66582,7 +66794,7 @@
66582
66794
  });
66583
66795
  }
66584
66796
  const formFields = [/* Input */
66585
- Textfield$1, Textarea, Numberfield, Datetime, ExpressionField, /* Selection */
66797
+ Textfield$1, Textarea, Numberfield, Datetime, ExpressionField, FilePicker, /* Selection */
66586
66798
  Checkbox$1, Checklist, Radio, Select$1, Taglist, /* Presentation */
66587
66799
  Text$1, Image$1, Table, Html, Spacer, Separator, /* Containers */
66588
66800
  Group$1, DynamicList, IFrame, /* Other */
@@ -66601,7 +66813,7 @@
66601
66813
  return this._formFields[type];
66602
66814
  }
66603
66815
  }
66604
- const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression', 'url', 'dataSource', 'columnsExpression', 'expression'];
66816
+ const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression', 'url', 'dataSource', 'columnsExpression', 'expression', 'accept', 'multiple'];
66605
66817
  const TEMPLATE_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'description', 'label', 'source', 'text', 'content', 'url'];
66606
66818
 
66607
66819
  /**
@@ -66819,11 +67031,21 @@
66819
67031
  // if we have a hidden repeatable field, and the data structure allows, we clear it directly at the root and stop recursion
66820
67032
  if (context.isHidden && isRepeatable) {
66821
67033
  context.preventRecursion = true;
67034
+ this._eventBus.fire('conditionChecker.remove', {
67035
+ item: {
67036
+ [field.key]: get(workingData, getFilterPath(field, indexes))
67037
+ }
67038
+ });
66822
67039
  this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);
66823
67040
  }
66824
67041
 
66825
67042
  // for simple leaf fields, we always clear
66826
67043
  if (context.isHidden && isClosed) {
67044
+ this._eventBus.fire('conditionChecker.remove', {
67045
+ item: {
67046
+ [field.key]: get(workingData, getFilterPath(field, indexes))
67047
+ }
67048
+ });
66827
67049
  this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);
66828
67050
  }
66829
67051
  });
@@ -67626,9 +67848,9 @@
67626
67848
  d: "M12 7.5H8.5V4h-1v3.5H4v1h3.5V12h1V8.5H12z"
67627
67849
  })));
67628
67850
  };
67629
- var _path$x;
67630
- function _extends$y() {
67631
- _extends$y = Object.assign ? Object.assign.bind() : function (target) {
67851
+ var _path$y;
67852
+ function _extends$z() {
67853
+ _extends$z = Object.assign ? Object.assign.bind() : function (target) {
67632
67854
  for (var i = 1; i < arguments.length; i++) {
67633
67855
  var source = arguments[i];
67634
67856
  for (var key in source) {
@@ -67639,15 +67861,15 @@
67639
67861
  }
67640
67862
  return target;
67641
67863
  };
67642
- return _extends$y.apply(this, arguments);
67864
+ return _extends$z.apply(this, arguments);
67643
67865
  }
67644
67866
  var SvgDelete$1 = function SvgDelete(props) {
67645
- return /*#__PURE__*/v$1("svg", _extends$y({
67867
+ return /*#__PURE__*/v$1("svg", _extends$z({
67646
67868
  xmlns: "http://www.w3.org/2000/svg",
67647
67869
  width: 16,
67648
67870
  height: 16,
67649
67871
  fill: "none"
67650
- }, props), _path$x || (_path$x = /*#__PURE__*/v$1("path", {
67872
+ }, props), _path$y || (_path$y = /*#__PURE__*/v$1("path", {
67651
67873
  fill: "currentColor",
67652
67874
  d: "m12 4.7-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8z"
67653
67875
  })));
@@ -67657,11 +67879,16 @@
67657
67879
  /* eslint-disable react-hooks/rules-of-hooks */
67658
67880
 
67659
67881
  class RepeatRenderManager {
67660
- constructor(form, formFields, formFieldRegistry, pathRegistry) {
67882
+ constructor(form, formFields, formFieldRegistry, pathRegistry, eventBus) {
67661
67883
  this._form = form;
67884
+ /** @type {import('../../render/FormFields').FormFields} */
67662
67885
  this._formFields = formFields;
67886
+ /** @type {import('../../core/FormFieldRegistry').FormFieldRegistry} */
67663
67887
  this._formFieldRegistry = formFieldRegistry;
67888
+ /** @type {import('../../core/PathRegistry').PathRegistry} */
67664
67889
  this._pathRegistry = pathRegistry;
67890
+ /** @type {import('../../core/EventBus').EventBus} */
67891
+ this._eventBus = eventBus;
67665
67892
  this.Repeater = this.Repeater.bind(this);
67666
67893
  this.RepeatFooter = this.RepeatFooter.bind(this);
67667
67894
  }
@@ -67701,11 +67928,18 @@
67701
67928
  const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;
67702
67929
  const hasChildren = repeaterField.components && repeaterField.components.length > 0;
67703
67930
  const showRemove = repeaterField.allowAddRemove && hasChildren;
67704
- const displayValues = isCollapsed ? values.slice(0, nonCollapsedItems) : values;
67705
- const hiddenValues = isCollapsed ? values.slice(nonCollapsedItems) : [];
67931
+
67932
+ /**
67933
+ * @param {number} index
67934
+ */
67706
67935
  const onDeleteItem = index => {
67707
67936
  const updatedValues = values.slice();
67708
- updatedValues.splice(index, 1);
67937
+ const removedItem = updatedValues.splice(index, 1)[0];
67938
+ this._eventBus.fire('repeatRenderManager.remove', {
67939
+ dataPath,
67940
+ index,
67941
+ item: removedItem
67942
+ });
67709
67943
  props.onChange({
67710
67944
  field: repeaterField,
67711
67945
  value: updatedValues,
@@ -67714,20 +67948,12 @@
67714
67948
  };
67715
67949
  const parentExpressionContextInfo = F$1(LocalExpressionContext);
67716
67950
  return e(d$1, {
67717
- children: [displayValues.map((itemValue, itemIndex) => e(RepetitionScaffold, {
67718
- itemIndex: itemIndex,
67719
- itemValue: itemValue,
67720
- parentExpressionContextInfo: parentExpressionContextInfo,
67721
- repeaterField: repeaterField,
67722
- RowsRenderer: RowsRenderer,
67723
- indexes: indexes,
67724
- onDeleteItem: onDeleteItem,
67725
- showRemove: showRemove,
67726
- ...restProps
67727
- }, itemIndex)), hiddenValues.length > 0 ? e("div", {
67728
- className: "fjs-repeat-row-collapsed",
67729
- children: hiddenValues.map((itemValue, itemIndex) => e(RepetitionScaffold, {
67730
- itemIndex: itemIndex + nonCollapsedItems,
67951
+ children: values.map((itemValue, itemIndex) => e("div", {
67952
+ class: classNames({
67953
+ 'fjs-repeat-row-collapsed': isCollapsed ? itemIndex >= nonCollapsedItems : false
67954
+ }),
67955
+ children: e(RepetitionScaffold, {
67956
+ itemIndex: itemIndex,
67731
67957
  itemValue: itemValue,
67732
67958
  parentExpressionContextInfo: parentExpressionContextInfo,
67733
67959
  repeaterField: repeaterField,
@@ -67736,8 +67962,8 @@
67736
67962
  onDeleteItem: onDeleteItem,
67737
67963
  showRemove: showRemove,
67738
67964
  ...restProps
67739
- }, itemIndex))
67740
- }) : null]
67965
+ })
67966
+ }))
67741
67967
  });
67742
67968
  }
67743
67969
  RepeatFooter(props) {
@@ -67780,6 +68006,11 @@
67780
68006
  });
67781
68007
  updatedValues.push(newItem);
67782
68008
  shouldScroll.current = true;
68009
+ this._eventBus.fire('repeatRenderManager.add', {
68010
+ dataPath,
68011
+ index: updatedValues.length - 1,
68012
+ item: newItem
68013
+ });
67783
68014
  props.onChange({
67784
68015
  value: updatedValues
67785
68016
  });
@@ -67812,7 +68043,7 @@
67812
68043
  class: "fjs-repeat-render-collapse",
67813
68044
  onClick: toggle,
67814
68045
  children: isCollapsed ? e(d$1, {
67815
- children: [e(SvgExpand, {}), " ", `Expand all (${values.length})`]
68046
+ children: [e(SvgExpand, {}), " ", `Expand all (${values.length - 1})`]
67816
68047
  }) : e(d$1, {
67817
68048
  children: [e(SvgCollapse, {}), " ", 'Collapse']
67818
68049
  })
@@ -67897,7 +68128,7 @@
67897
68128
  })]
67898
68129
  });
67899
68130
  };
67900
- RepeatRenderManager.$inject = ['form', 'formFields', 'formFieldRegistry', 'pathRegistry'];
68131
+ RepeatRenderManager.$inject = ['form', 'formFields', 'formFieldRegistry', 'pathRegistry', 'eventBus'];
67901
68132
  const RepeatRenderModule$1 = {
67902
68133
  __init__: ['repeatRenderManager'],
67903
68134
  repeatRenderManager: ['type', RepeatRenderManager]
@@ -69281,39 +69512,52 @@
69281
69512
  this._formFieldInstances = {};
69282
69513
  eventBus.on('form.clear', () => this.clear());
69283
69514
  }
69284
- add(instance) {
69515
+ syncInstance(instanceId, formFieldInfo) {
69285
69516
  const {
69286
- id,
69287
- expressionContextInfo,
69288
- valuePath,
69289
- indexes
69290
- } = instance;
69291
- const instanceId = [id, ...Object.values(indexes || {})].join('_');
69292
- if (this._formFieldInstances[instanceId]) {
69293
- throw new Error('this form field instance is already registered');
69517
+ hidden,
69518
+ ...restInfo
69519
+ } = formFieldInfo;
69520
+ const isInstanceExpected = !hidden;
69521
+ const doesInstanceExist = this._formFieldInstances[instanceId];
69522
+ if (isInstanceExpected && !doesInstanceExist) {
69523
+ this._formFieldInstances[instanceId] = {
69524
+ instanceId,
69525
+ ...restInfo
69526
+ };
69527
+ this._eventBus.fire('formFieldInstance.added', {
69528
+ instanceId
69529
+ });
69530
+ } else if (!isInstanceExpected && doesInstanceExist) {
69531
+ delete this._formFieldInstances[instanceId];
69532
+ this._eventBus.fire('formFieldInstance.removed', {
69533
+ instanceId
69534
+ });
69535
+ } else if (isInstanceExpected && doesInstanceExist) {
69536
+ const wasInstanceChaged = Object.keys(restInfo).some(key => {
69537
+ return this._formFieldInstances[instanceId][key] !== restInfo[key];
69538
+ });
69539
+ if (wasInstanceChaged) {
69540
+ this._formFieldInstances[instanceId] = {
69541
+ instanceId,
69542
+ ...restInfo
69543
+ };
69544
+ this._eventBus.fire('formFieldInstance.changed', {
69545
+ instanceId
69546
+ });
69547
+ }
69294
69548
  }
69295
- this._formFieldInstances[instanceId] = {
69296
- id,
69297
- instanceId,
69298
- expressionContextInfo,
69299
- valuePath,
69300
- indexes
69301
- };
69302
- this._eventBus.fire('formFieldInstanceRegistry.changed', {
69303
- instanceId,
69304
- action: 'added'
69305
- });
69306
69549
  return instanceId;
69307
69550
  }
69308
- remove(instanceId) {
69309
- if (!this._formFieldInstances[instanceId]) {
69310
- return;
69551
+ cleanupInstance(instanceId) {
69552
+ if (this._formFieldInstances[instanceId]) {
69553
+ delete this._formFieldInstances[instanceId];
69554
+ this._eventBus.fire('formFieldInstance.removed', {
69555
+ instanceId
69556
+ });
69311
69557
  }
69312
- delete this._formFieldInstances[instanceId];
69313
- this._eventBus.fire('formFieldInstanceRegistry.changed', {
69314
- instanceId,
69315
- action: 'removed'
69316
- });
69558
+ }
69559
+ get(instanceId) {
69560
+ return this._formFieldInstances[instanceId];
69317
69561
  }
69318
69562
  getAll() {
69319
69563
  return Object.values(this._formFieldInstances);
@@ -69391,10 +69635,121 @@
69391
69635
  });
69392
69636
  }
69393
69637
  Renderer$1.$inject = ['config.renderer', 'eventBus', 'form', 'injector'];
69638
+
69639
+ /**
69640
+ * @typedef {Record<PropertyKey, unknown>} RemovedData
69641
+ * @param {RemovedData} removedData
69642
+ * @returns {string[]}
69643
+ */
69644
+ const extractFileReferencesFromRemovedData = removedData => {
69645
+ /** @type {string[]} */
69646
+ const fileReferences = [];
69647
+ if (removedData === null) {
69648
+ return fileReferences;
69649
+ }
69650
+ Object.values(removedData).forEach(value => {
69651
+ if (value === null) {
69652
+ return;
69653
+ }
69654
+ if (typeof value === 'object') {
69655
+ fileReferences.push(...extractFileReferencesFromRemovedData( /** @type {RemovedData} */value));
69656
+ } else if (Array.isArray(value)) {
69657
+ fileReferences.push(...value.map(extractFileReferencesFromRemovedData).flat());
69658
+ } else if (typeof value === 'string' && value.startsWith(FILE_PICKER_FILE_KEY_PREFIX)) {
69659
+ fileReferences.push(value);
69660
+ }
69661
+ });
69662
+ return fileReferences;
69663
+ };
69664
+ const fileRegistry = Symbol('fileRegistry');
69665
+ const eventBusSymbol = Symbol('eventBus');
69666
+ const formFieldRegistrySymbol = Symbol('formFieldRegistry');
69667
+ const formFieldInstanceRegistrySymbol = Symbol('formFieldInstanceRegistry');
69668
+ const EMPTY_ARRAY = [];
69669
+ class FileRegistry {
69670
+ /**
69671
+ * @param {import('../core/EventBus').EventBus} eventBus
69672
+ * @param {import('../core/FormFieldRegistry').FormFieldRegistry} formFieldRegistry
69673
+ * @param {import('../core/FormFieldInstanceRegistry').FormFieldInstanceRegistry} formFieldInstanceRegistry
69674
+ */
69675
+ constructor(eventBus, formFieldRegistry, formFieldInstanceRegistry) {
69676
+ /** @type {Map<string, File[]>} */
69677
+ this[fileRegistry] = new Map();
69678
+ /** @type {import('../core/EventBus').EventBus} */
69679
+ this[eventBusSymbol] = eventBus;
69680
+ /** @type {import('../core/FormFieldRegistry').FormFieldRegistry} */
69681
+ this[formFieldRegistrySymbol] = formFieldRegistry;
69682
+ /** @type {import('../core/FormFieldInstanceRegistry').FormFieldInstanceRegistry} */
69683
+ this[formFieldInstanceRegistrySymbol] = formFieldInstanceRegistry;
69684
+ const removeFileHandler = ({
69685
+ item
69686
+ }) => {
69687
+ const fileReferences = extractFileReferencesFromRemovedData(item);
69688
+
69689
+ // Remove all file references from the registry
69690
+ fileReferences.forEach(fileReference => {
69691
+ this.deleteFiles(fileReference);
69692
+ });
69693
+ };
69694
+ eventBus.on('form.clear', () => this.clear());
69695
+ eventBus.on('conditionChecker.remove', removeFileHandler);
69696
+ eventBus.on('repeatRenderManager.remove', removeFileHandler);
69697
+ }
69698
+
69699
+ /**
69700
+ * @param {string} id
69701
+ * @param {File[]} files
69702
+ */
69703
+ setFiles(id, files) {
69704
+ this[fileRegistry].set(id, files);
69705
+ }
69706
+
69707
+ /**
69708
+ * @param {string} id
69709
+ * @returns {File[]}
69710
+ */
69711
+ getFiles(id) {
69712
+ return this[fileRegistry].get(id) || EMPTY_ARRAY;
69713
+ }
69714
+
69715
+ /**
69716
+ * @returns {string[]}
69717
+ */
69718
+ getKeys() {
69719
+ return Array.from(this[fileRegistry].keys());
69720
+ }
69721
+
69722
+ /**
69723
+ * @param {string} id
69724
+ * @returns {boolean}
69725
+ */
69726
+ hasKey(id) {
69727
+ return this[fileRegistry].has(id);
69728
+ }
69729
+
69730
+ /**
69731
+ * @param {string} id
69732
+ */
69733
+ deleteFiles(id) {
69734
+ this[fileRegistry].delete(id);
69735
+ }
69736
+
69737
+ /**
69738
+ * @returns {Map<string, File[]>}
69739
+ */
69740
+ getAllFiles() {
69741
+ return new Map(this[fileRegistry]);
69742
+ }
69743
+ clear() {
69744
+ this[fileRegistry].clear();
69745
+ }
69746
+ }
69747
+ FileRegistry.$inject = ['eventBus', 'formFieldRegistry', 'formFieldInstanceRegistry'];
69394
69748
  const RenderModule$1 = {
69395
69749
  __init__: ['formFields', 'renderer'],
69396
69750
  formFields: ['type', FormFields],
69397
- renderer: ['type', Renderer$1]
69751
+ renderer: ['type', Renderer$1],
69752
+ fileRegistry: ['type', FileRegistry]
69398
69753
  };
69399
69754
  const CoreModule$1 = {
69400
69755
  __depends__: [RenderModule$1],
@@ -69431,7 +69786,7 @@
69431
69786
  * @typedef { OnEventWithPriority & OnEventWithOutPriority } OnEventType
69432
69787
  */
69433
69788
 
69434
- const ids$1 = new Ids([32, 36, 1]);
69789
+ const ids$3 = new Ids([32, 36, 1]);
69435
69790
 
69436
69791
  /**
69437
69792
  * The form.
@@ -69452,7 +69807,7 @@
69452
69807
  * @public
69453
69808
  * @type {String}
69454
69809
  */
69455
- this._id = ids$1.next();
69810
+ this._id = ids$3.next();
69456
69811
 
69457
69812
  /**
69458
69813
  * @private
@@ -69546,7 +69901,7 @@
69546
69901
  /**
69547
69902
  * Submit the form, triggering all field validations.
69548
69903
  *
69549
- * @returns { { data: Data, errors: Errors } }
69904
+ * @returns { { data: Data, errors: Errors, files: Map<string, File[]> } }
69550
69905
  */
69551
69906
  submit() {
69552
69907
  const {
@@ -69558,9 +69913,11 @@
69558
69913
  this._emit('presubmit');
69559
69914
  const data = this._getSubmitData();
69560
69915
  const errors = this.validate();
69916
+ const files = this.get('fileRegistry').getAllFiles();
69561
69917
  const result = {
69562
69918
  data,
69563
- errors
69919
+ errors,
69920
+ files
69564
69921
  };
69565
69922
  this._emit('submit', result);
69566
69923
  return result;
@@ -82759,7 +83116,7 @@
82759
83116
  return path.split('.').some(segment => prohibitedSegments.includes(segment));
82760
83117
  }
82761
83118
  const LABELED_NON_INPUTS = ['button', 'group', 'dynamiclist', 'iframe', 'table'];
82762
- const INPUTS = ['checkbox', 'checklist', 'datetime', 'number', 'radio', 'select', 'taglist', 'textfield', 'textarea'];
83119
+ const INPUTS = ['checkbox', 'checklist', 'datetime', 'number', 'radio', 'select', 'taglist', 'textfield', 'textarea', 'filepicker'];
82763
83120
  const OPTIONS_INPUTS = ['checklist', 'radio', 'select', 'taglist'];
82764
83121
  function hasEntryConfigured(formFieldDefinition, entryId) {
82765
83122
  const {
@@ -83244,7 +83601,7 @@
83244
83601
  editField: editField,
83245
83602
  field: field,
83246
83603
  isEdited: isEdited$6,
83247
- isDefaultVisible: field => INPUTS.includes(field.type)
83604
+ isDefaultVisible: field => field.type !== 'filepicker' && INPUTS.includes(field.type)
83248
83605
  });
83249
83606
  return entries;
83250
83607
  }
@@ -83295,26 +83652,26 @@
83295
83652
  return matchers(field);
83296
83653
  };
83297
83654
  }
83298
- const defaulValueBase = {
83655
+ const defaultValueBase = {
83299
83656
  editField,
83300
83657
  field,
83301
83658
  id: 'defaultValue',
83302
83659
  label: 'Default value'
83303
83660
  };
83304
83661
  entries.push({
83305
- ...defaulValueBase,
83662
+ ...defaultValueBase,
83306
83663
  component: DefaultValueCheckbox,
83307
83664
  isEdited: isEdited$3,
83308
83665
  isDefaultVisible: isDefaultVisible(field => field.type === 'checkbox')
83309
83666
  });
83310
83667
  entries.push({
83311
- ...defaulValueBase,
83668
+ ...defaultValueBase,
83312
83669
  component: DefaultValueNumber,
83313
83670
  isEdited: isEdited,
83314
83671
  isDefaultVisible: isDefaultVisible(field => field.type === 'number')
83315
83672
  });
83316
83673
  entries.push({
83317
- ...defaulValueBase,
83674
+ ...defaultValueBase,
83318
83675
  component: DefaultValueSingleSelect,
83319
83676
  isEdited: isEdited$3,
83320
83677
  isDefaultVisible: isDefaultVisible(field => field.type === 'radio' || field.type === 'select')
@@ -83323,13 +83680,13 @@
83323
83680
  // todo(Skaiir): implement a multiselect equivalent (cf. https://github.com/bpmn-io/form-js/issues/265)
83324
83681
 
83325
83682
  entries.push({
83326
- ...defaulValueBase,
83683
+ ...defaultValueBase,
83327
83684
  component: DefaultValueTextfield,
83328
83685
  isEdited: isEdited,
83329
83686
  isDefaultVisible: isDefaultVisible(field => field.type === 'textfield')
83330
83687
  });
83331
83688
  entries.push({
83332
- ...defaulValueBase,
83689
+ ...defaultValueBase,
83333
83690
  component: DefaultValueTextarea,
83334
83691
  isEdited: isEdited$1,
83335
83692
  isDefaultVisible: isDefaultVisible(field => field.type === 'textarea')
@@ -84397,7 +84754,7 @@
84397
84754
  };
84398
84755
  return FeelTemplatingEntry({
84399
84756
  debounce,
84400
- description: description$1,
84757
+ description: description$2,
84401
84758
  element: field,
84402
84759
  getValue,
84403
84760
  id,
@@ -84407,7 +84764,7 @@
84407
84764
  variables
84408
84765
  });
84409
84766
  }
84410
- const description$1 = e(d$1, {
84767
+ const description$2 = e(d$1, {
84411
84768
  children: ["Supports markdown and templating.", ' ', e("a", {
84412
84769
  href: "https://docs.camunda.io/docs/components/modeler/forms/form-element-library/forms-element-library-text/",
84413
84770
  target: "_blank",
@@ -84448,7 +84805,7 @@
84448
84805
  };
84449
84806
  return FeelTemplatingEntry({
84450
84807
  debounce,
84451
- description,
84808
+ description: description$1,
84452
84809
  element: field,
84453
84810
  getValue,
84454
84811
  id,
@@ -84462,7 +84819,7 @@
84462
84819
 
84463
84820
  // helpers //////////
84464
84821
 
84465
- const description = e(d$1, {
84822
+ const description$1 = e(d$1, {
84466
84823
  children: ["Supports HTML, styling, and templating. Styles are automatically scoped to the HTML component.", ' ', e("a", {
84467
84824
  href: "https://docs.camunda.io/docs/components/modeler/forms/form-element-library/forms-element-library-html/",
84468
84825
  target: "_blank",
@@ -86250,6 +86607,106 @@
86250
86607
  tooltip
86251
86608
  });
86252
86609
  }
86610
+ function AcceptEntry(props) {
86611
+ const {
86612
+ editField,
86613
+ field
86614
+ } = props;
86615
+ const entries = [];
86616
+ entries.push({
86617
+ id: 'accept',
86618
+ component: Accept,
86619
+ editField: editField,
86620
+ field: field,
86621
+ isEdited: isEdited$6,
86622
+ isDefaultVisible: field => field.type === 'filepicker'
86623
+ });
86624
+ return entries;
86625
+ }
86626
+ function Accept(props) {
86627
+ const {
86628
+ editField,
86629
+ field,
86630
+ id
86631
+ } = props;
86632
+ const debounce = useService('debounce');
86633
+ const variables = useVariables().map(name => ({
86634
+ name
86635
+ }));
86636
+ const path = ['accept'];
86637
+ const getValue = () => {
86638
+ return get(field, path, '');
86639
+ };
86640
+ const setValue = value => {
86641
+ return editField(field, path, value);
86642
+ };
86643
+ return FeelTemplatingEntry({
86644
+ debounce,
86645
+ element: field,
86646
+ getValue,
86647
+ id,
86648
+ label: 'Supported file formats',
86649
+ singleLine: true,
86650
+ setValue,
86651
+ variables,
86652
+ description
86653
+ });
86654
+ }
86655
+
86656
+ // helpers //////////
86657
+
86658
+ const description = e(d$1, {
86659
+ children: ["A comma-separated list of", ' ', e("a", {
86660
+ href: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers",
86661
+ target: "_blank",
86662
+ children: "file type specifiers"
86663
+ })]
86664
+ });
86665
+ function MultipleEntry(props) {
86666
+ const {
86667
+ editField,
86668
+ field
86669
+ } = props;
86670
+ const entries = [];
86671
+ entries.push({
86672
+ id: 'multiple',
86673
+ component: Multiple,
86674
+ editField: editField,
86675
+ field: field,
86676
+ isEdited: isEdited$6,
86677
+ isDefaultVisible: field => field.type === 'filepicker'
86678
+ });
86679
+ return entries;
86680
+ }
86681
+ function Multiple(props) {
86682
+ const {
86683
+ editField,
86684
+ field,
86685
+ id
86686
+ } = props;
86687
+ const debounce = useService('debounce');
86688
+ const variables = useVariables().map(name => ({
86689
+ name
86690
+ }));
86691
+ const path = ['multiple'];
86692
+ const getValue = () => {
86693
+ return get(field, path, '');
86694
+ };
86695
+ const setValue = value => {
86696
+ return editField(field, path, value);
86697
+ };
86698
+ return FeelToggleSwitchEntry({
86699
+ debounce,
86700
+ element: field,
86701
+ feel: 'optional',
86702
+ getValue,
86703
+ id,
86704
+ label: 'Select multiple files',
86705
+ inline: true,
86706
+ setValue,
86707
+ variables
86708
+ });
86709
+ }
86253
86710
  function GeneralGroup(field, editField, getService) {
86254
86711
  const entries = [...IdEntry({
86255
86712
  field,
@@ -86316,6 +86773,12 @@
86316
86773
  }), ...SelectEntries({
86317
86774
  field,
86318
86775
  editField
86776
+ }), ...AcceptEntry({
86777
+ field,
86778
+ editField
86779
+ }), ...MultipleEntry({
86780
+ field,
86781
+ editField
86319
86782
  }), ...DisabledEntry({
86320
86783
  field,
86321
86784
  editField
@@ -89171,7 +89634,8 @@
89171
89634
 
89172
89635
  // pipe viewer changes to output data editor
89173
89636
  formViewer.on('changed', updateOutputData);
89174
- formViewer.on('formFieldInstanceRegistry.changed', updateOutputData);
89637
+ formViewer.on('formFieldInstance.added', updateOutputData);
89638
+ formViewer.on('formFieldInstance.removed', updateOutputData);
89175
89639
  inputDataEditor.on('changed', event => {
89176
89640
  try {
89177
89641
  setData(JSON.parse(event.value));