@bpmn-io/form-js-viewer 1.10.1 → 1.11.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.
Files changed (33) hide show
  1. package/dist/assets/form-js-base.css +22 -3
  2. package/dist/assets/form-js.css +22 -3
  3. package/dist/index.cjs +409 -185
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.es.js +409 -186
  6. package/dist/index.es.js.map +1 -1
  7. package/dist/types/core/FieldFactory.d.ts +1 -1
  8. package/dist/types/index.d.ts +1 -1
  9. package/dist/types/render/components/Util.d.ts +1 -0
  10. package/dist/types/render/components/form-fields/Button.d.ts +2 -1
  11. package/dist/types/render/components/form-fields/Checkbox.d.ts +4 -2
  12. package/dist/types/render/components/form-fields/Checklist.d.ts +2 -3
  13. package/dist/types/render/components/form-fields/Datetime.d.ts +3 -2
  14. package/dist/types/render/components/form-fields/Default.d.ts +1 -0
  15. package/dist/types/render/components/form-fields/DynamicList.d.ts +2 -1
  16. package/dist/types/render/components/form-fields/ExpressionField.d.ts +1 -1
  17. package/dist/types/render/components/form-fields/FilePicker.d.ts +47 -0
  18. package/dist/types/render/components/form-fields/Group.d.ts +2 -1
  19. package/dist/types/render/components/form-fields/Html.d.ts +1 -1
  20. package/dist/types/render/components/form-fields/IFrame.d.ts +2 -1
  21. package/dist/types/render/components/form-fields/Image.d.ts +2 -1
  22. package/dist/types/render/components/form-fields/Number.d.ts +4 -2
  23. package/dist/types/render/components/form-fields/Radio.d.ts +2 -3
  24. package/dist/types/render/components/form-fields/Select.d.ts +2 -3
  25. package/dist/types/render/components/form-fields/Separator.d.ts +1 -1
  26. package/dist/types/render/components/form-fields/Spacer.d.ts +1 -1
  27. package/dist/types/render/components/form-fields/Table.d.ts +2 -1
  28. package/dist/types/render/components/form-fields/Taglist.d.ts +2 -3
  29. package/dist/types/render/components/form-fields/Text.d.ts +2 -1
  30. package/dist/types/render/components/form-fields/Textarea.d.ts +4 -2
  31. package/dist/types/render/components/form-fields/Textfield.d.ts +4 -2
  32. package/dist/types/render/components/index.d.ts +3 -2
  33. package/package.json +5 -5
package/dist/index.es.js CHANGED
@@ -571,6 +571,18 @@ function gridColumnClasses(formField) {
571
571
  // always fall back to top-down on smallest screens
572
572
  'cds--col-sm-16', 'cds--col-md-16');
573
573
  }
574
+ function textToLabel(text) {
575
+ if (typeof text != 'string') return null;
576
+ for (const line of text.split('\n')) {
577
+ const displayLine = line.trim();
578
+
579
+ // we use the first non-whitespace line in the text as label
580
+ if (displayLine !== '') {
581
+ return displayLine;
582
+ }
583
+ }
584
+ return null;
585
+ }
574
586
  function prefixId(id, formId, indexes) {
575
587
  let result = 'fjs-form';
576
588
  if (formId) {
@@ -879,6 +891,7 @@ function useExpressionEvaluation(value) {
879
891
  * @returns {T} - Returns the current state.
880
892
  */
881
893
  function useDeepCompareMemoize(value) {
894
+ /** @type {import("preact").RefObject<T>} */
882
895
  const ref = useRef();
883
896
  if (!isEqual(value, ref.current)) {
884
897
  ref.current = value;
@@ -1656,7 +1669,7 @@ function useCleanupMultiSelectValue(props) {
1656
1669
  }, [field, options, onChange, memoizedValues, loadState]);
1657
1670
  }
1658
1671
 
1659
- const type$h = 'button';
1672
+ const type$i = 'button';
1660
1673
  function Button(props) {
1661
1674
  const {
1662
1675
  disabled,
@@ -1671,7 +1684,7 @@ function Button(props) {
1671
1684
  debug: true
1672
1685
  });
1673
1686
  return jsx("div", {
1674
- class: formFieldClasses(type$h),
1687
+ class: formFieldClasses(type$i),
1675
1688
  children: jsx("button", {
1676
1689
  class: "fjs-button",
1677
1690
  type: action,
@@ -1683,11 +1696,12 @@ function Button(props) {
1683
1696
  });
1684
1697
  }
1685
1698
  Button.config = {
1686
- type: type$h,
1699
+ type: type$i,
1687
1700
  keyed: false,
1688
- label: 'Button',
1701
+ name: 'Button',
1689
1702
  group: 'action',
1690
1703
  create: (options = {}) => ({
1704
+ label: 'Button',
1691
1705
  action: 'submit',
1692
1706
  ...options
1693
1707
  })
@@ -1758,7 +1772,7 @@ function Label(props) {
1758
1772
  });
1759
1773
  }
1760
1774
 
1761
- const type$g = 'checkbox';
1775
+ const type$h = 'checkbox';
1762
1776
  function Checkbox(props) {
1763
1777
  const {
1764
1778
  disabled,
@@ -1788,7 +1802,7 @@ function Checkbox(props) {
1788
1802
  const descriptionId = `${domId}-description`;
1789
1803
  const errorMessageId = `${domId}-error-message`;
1790
1804
  return jsxs("div", {
1791
- class: classNames(formFieldClasses(type$g, {
1805
+ class: classNames(formFieldClasses(type$h, {
1792
1806
  errors,
1793
1807
  disabled,
1794
1808
  readonly
@@ -1825,20 +1839,21 @@ function Checkbox(props) {
1825
1839
  });
1826
1840
  }
1827
1841
  Checkbox.config = {
1828
- type: type$g,
1842
+ type: type$h,
1829
1843
  keyed: true,
1830
- label: 'Checkbox',
1844
+ name: 'Checkbox',
1831
1845
  group: 'selection',
1832
1846
  emptyValue: false,
1833
1847
  sanitizeValue: ({
1834
1848
  value
1835
1849
  }) => value === true,
1836
1850
  create: (options = {}) => ({
1851
+ label: 'Checkbox',
1837
1852
  ...options
1838
1853
  })
1839
1854
  };
1840
1855
 
1841
- const type$f = 'checklist';
1856
+ const type$g = 'checklist';
1842
1857
  function Checklist(props) {
1843
1858
  const {
1844
1859
  disabled,
@@ -1855,6 +1870,8 @@ function Checklist(props) {
1855
1870
  label,
1856
1871
  validate = {}
1857
1872
  } = field;
1873
+
1874
+ /** @type {import("preact").RefObject<HTMLDivElement>} */
1858
1875
  const outerDivRef = useRef();
1859
1876
  const {
1860
1877
  required
@@ -1891,7 +1908,7 @@ function Checklist(props) {
1891
1908
  const descriptionId = `${domId}-description`;
1892
1909
  const errorMessageId = `${domId}-error-message`;
1893
1910
  return jsxs("div", {
1894
- class: classNames(formFieldClasses(type$f, {
1911
+ class: classNames(formFieldClasses(type$g, {
1895
1912
  errors,
1896
1913
  disabled,
1897
1914
  readonly
@@ -1936,13 +1953,16 @@ function Checklist(props) {
1936
1953
  });
1937
1954
  }
1938
1955
  Checklist.config = {
1939
- type: type$f,
1956
+ type: type$g,
1940
1957
  keyed: true,
1941
- label: 'Checkbox group',
1958
+ name: 'Checkbox group',
1942
1959
  group: 'selection',
1943
1960
  emptyValue: [],
1944
1961
  sanitizeValue: sanitizeMultiSelectValue,
1945
- create: createEmptyOptions
1962
+ create: (options = {}) => ({
1963
+ label: 'Checkbox group',
1964
+ ...createEmptyOptions(options)
1965
+ })
1946
1966
  };
1947
1967
 
1948
1968
  const noop$1 = () => false;
@@ -2240,19 +2260,20 @@ Default.config = {
2240
2260
  create: (options = {}) => ({
2241
2261
  components: [],
2242
2262
  ...options
2243
- })
2263
+ }),
2264
+ getSubheading: field => field.id
2244
2265
  };
2245
2266
 
2246
- var _path$w;
2247
- function _extends$x() { return _extends$x = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$x.apply(null, arguments); }
2267
+ var _path$x;
2268
+ function _extends$y() { return _extends$y = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$y.apply(null, arguments); }
2248
2269
  var SvgCalendar = function SvgCalendar(props) {
2249
- return /*#__PURE__*/React.createElement("svg", _extends$x({
2270
+ return /*#__PURE__*/React.createElement("svg", _extends$y({
2250
2271
  xmlns: "http://www.w3.org/2000/svg",
2251
2272
  width: 14,
2252
2273
  height: 15,
2253
2274
  fill: "none",
2254
2275
  viewBox: "0 0 28 30"
2255
- }, props), _path$w || (_path$w = /*#__PURE__*/React.createElement("path", {
2276
+ }, props), _path$x || (_path$x = /*#__PURE__*/React.createElement("path", {
2256
2277
  fill: "currentColor",
2257
2278
  fillRule: "evenodd",
2258
2279
  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",
@@ -2380,7 +2401,11 @@ function Datepicker(props) {
2380
2401
  readonly,
2381
2402
  setDate
2382
2403
  } = props;
2404
+
2405
+ /** @type {import("preact").RefObject<HTMLInputElement>} */
2383
2406
  const dateInputRef = useRef();
2407
+
2408
+ /** @type {import("preact").RefObject<HTMLElement>} */
2384
2409
  const focusScopeRef = useRef();
2385
2410
  const [flatpickrInstance, setFlatpickrInstance] = useState(null);
2386
2411
  const [isInputDirty, setIsInputDirty] = useState(false);
@@ -2517,16 +2542,16 @@ function Datepicker(props) {
2517
2542
  });
2518
2543
  }
2519
2544
 
2520
- var _path$v, _path2$4;
2521
- function _extends$w() { return _extends$w = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$w.apply(null, arguments); }
2545
+ var _path$w, _path2$4;
2546
+ function _extends$x() { return _extends$x = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$x.apply(null, arguments); }
2522
2547
  var SvgClock = function SvgClock(props) {
2523
- return /*#__PURE__*/React.createElement("svg", _extends$w({
2548
+ return /*#__PURE__*/React.createElement("svg", _extends$x({
2524
2549
  xmlns: "http://www.w3.org/2000/svg",
2525
2550
  width: 16,
2526
2551
  height: 16,
2527
2552
  fill: "none",
2528
2553
  viewBox: "0 0 28 29"
2529
- }, props), _path$v || (_path$v = /*#__PURE__*/React.createElement("path", {
2554
+ }, props), _path$w || (_path$w = /*#__PURE__*/React.createElement("path", {
2530
2555
  fill: "currentColor",
2531
2556
  d: "M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2z"
2532
2557
  })), _path2$4 || (_path2$4 = /*#__PURE__*/React.createElement("path", {
@@ -2552,7 +2577,11 @@ function DropdownList(props) {
2552
2577
  const [mouseControl, setMouseControl] = useState(false);
2553
2578
  const [focusedValueIndex, setFocusedValueIndex] = useState(initialFocusIndex);
2554
2579
  const [smoothScrolling, setSmoothScrolling] = useState(false);
2580
+
2581
+ /** @type {import("preact").RefObject<HTMLDivElement>} */
2555
2582
  const dropdownContainer = useRef();
2583
+
2584
+ /** @type {import("preact").RefObject<{ x: number, y: number }>} */
2556
2585
  const mouseScreenPos = useRef();
2557
2586
  const focusedItem = useMemo(() => values.length ? values[focusedValueIndex] : null, [focusedValueIndex, values]);
2558
2587
  const changeFocusedValueIndex = useCallback(delta => {
@@ -2770,7 +2799,7 @@ function Timepicker(props) {
2770
2799
  value: rawValue,
2771
2800
  disabled: disabled,
2772
2801
  readOnly: readonly,
2773
- placeholder: use24h ? 'hh:mm' : 'hh:mm ?m',
2802
+ placeholder: use24h ? 'hh:mm' : 'hh:mm --',
2774
2803
  autoComplete: "off",
2775
2804
  onInput: e => {
2776
2805
  // @ts-expect-error
@@ -2795,7 +2824,7 @@ function Timepicker(props) {
2795
2824
  });
2796
2825
  }
2797
2826
 
2798
- const type$e = 'datetime';
2827
+ const type$f = 'datetime';
2799
2828
  function Datetime(props) {
2800
2829
  const {
2801
2830
  disabled,
@@ -2826,6 +2855,8 @@ function Datetime(props) {
2826
2855
  const {
2827
2856
  formId
2828
2857
  } = useContext(FormContext);
2858
+
2859
+ /** @type {import("preact").RefObject<HTMLDivElement>} */
2829
2860
  const dateTimeGroupRef = useRef();
2830
2861
  const [dateTime, setDateTime] = useState(getNullDateTime());
2831
2862
  const [dateTimeUpdateRequest, setDateTimeUpdateRequest] = useState(null);
@@ -2964,7 +2995,7 @@ function Datetime(props) {
2964
2995
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
2965
2996
  };
2966
2997
  return jsxs("div", {
2967
- class: formFieldClasses(type$e, {
2998
+ class: formFieldClasses(type$f, {
2968
2999
  errors: allErrors,
2969
3000
  disabled,
2970
3001
  readonly
@@ -2989,20 +3020,25 @@ function Datetime(props) {
2989
3020
  });
2990
3021
  }
2991
3022
  Datetime.config = {
2992
- type: type$e,
3023
+ type: type$f,
2993
3024
  keyed: true,
2994
- label: 'Date time',
3025
+ name: 'Date time',
2995
3026
  group: 'basic-input',
2996
3027
  emptyValue: null,
2997
3028
  sanitizeValue: sanitizeDateTimePickerValue,
2998
- create: (options = {}) => {
3029
+ create: (options = {}, isNewField) => {
2999
3030
  const defaults = {};
3000
3031
  set(defaults, DATETIME_SUBTYPE_PATH, DATETIME_SUBTYPES.DATE);
3001
- set(defaults, DATE_LABEL_PATH, 'Date');
3032
+ if (isNewField) {
3033
+ set(defaults, DATE_LABEL_PATH, 'Date');
3034
+ }
3002
3035
  return {
3003
3036
  ...defaults,
3004
3037
  ...options
3005
3038
  };
3039
+ },
3040
+ getSubheading: field => {
3041
+ return field.dateLabel || field.timeLabel;
3006
3042
  }
3007
3043
  };
3008
3044
 
@@ -3040,16 +3076,17 @@ function Group(props) {
3040
3076
  Group.config = {
3041
3077
  type: 'group',
3042
3078
  pathed: true,
3043
- label: 'Group',
3079
+ name: 'Group',
3044
3080
  group: 'container',
3045
3081
  create: (options = {}) => ({
3082
+ label: 'Group',
3046
3083
  components: [],
3047
3084
  showOutline: true,
3048
3085
  ...options
3049
3086
  })
3050
3087
  };
3051
3088
 
3052
- const type$d = 'iframe';
3089
+ const type$e = 'iframe';
3053
3090
  const DEFAULT_HEIGHT = 300;
3054
3091
  function IFrame(props) {
3055
3092
  const {
@@ -3079,7 +3116,7 @@ function IFrame(props) {
3079
3116
  setIframeRefresh(count => count + 1);
3080
3117
  }, [sandbox, allow]);
3081
3118
  return jsxs("div", {
3082
- class: formFieldClasses(type$d, {
3119
+ class: formFieldClasses(type$e, {
3083
3120
  disabled,
3084
3121
  readonly
3085
3122
  }),
@@ -3114,11 +3151,12 @@ function IFramePlaceholder(props) {
3114
3151
  });
3115
3152
  }
3116
3153
  IFrame.config = {
3117
- type: type$d,
3154
+ type: type$e,
3118
3155
  keyed: false,
3119
- label: 'iFrame',
3156
+ name: 'iFrame',
3120
3157
  group: 'container',
3121
3158
  create: (options = {}) => ({
3159
+ label: 'iFrame',
3122
3160
  security: {
3123
3161
  allowScripts: true
3124
3162
  },
@@ -3126,42 +3164,42 @@ IFrame.config = {
3126
3164
  })
3127
3165
  };
3128
3166
 
3129
- var _path$u;
3130
- function _extends$v() { return _extends$v = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$v.apply(null, arguments); }
3167
+ var _path$v;
3168
+ function _extends$w() { return _extends$w = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$w.apply(null, arguments); }
3131
3169
  var SvgButton = function SvgButton(props) {
3132
- return /*#__PURE__*/React.createElement("svg", _extends$v({
3170
+ return /*#__PURE__*/React.createElement("svg", _extends$w({
3133
3171
  xmlns: "http://www.w3.org/2000/svg",
3134
3172
  width: 54,
3135
3173
  height: 54,
3136
3174
  fill: "currentcolor"
3137
- }, props), _path$u || (_path$u = /*#__PURE__*/React.createElement("path", {
3175
+ }, props), _path$v || (_path$v = /*#__PURE__*/React.createElement("path", {
3138
3176
  fillRule: "evenodd",
3139
3177
  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"
3140
3178
  })));
3141
3179
  };
3142
3180
 
3143
- var _path$t;
3144
- function _extends$u() { return _extends$u = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$u.apply(null, arguments); }
3181
+ var _path$u;
3182
+ function _extends$v() { return _extends$v = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$v.apply(null, arguments); }
3145
3183
  var SvgCheckbox = function SvgCheckbox(props) {
3146
- return /*#__PURE__*/React.createElement("svg", _extends$u({
3184
+ return /*#__PURE__*/React.createElement("svg", _extends$v({
3147
3185
  xmlns: "http://www.w3.org/2000/svg",
3148
3186
  width: 54,
3149
3187
  height: 54,
3150
3188
  fill: "currentcolor"
3151
- }, props), _path$t || (_path$t = /*#__PURE__*/React.createElement("path", {
3189
+ }, props), _path$u || (_path$u = /*#__PURE__*/React.createElement("path", {
3152
3190
  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"
3153
3191
  })));
3154
3192
  };
3155
3193
 
3156
- var _path$s;
3157
- function _extends$t() { return _extends$t = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$t.apply(null, arguments); }
3194
+ var _path$t;
3195
+ function _extends$u() { return _extends$u = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$u.apply(null, arguments); }
3158
3196
  var SvgChecklist = function SvgChecklist(props) {
3159
- return /*#__PURE__*/React.createElement("svg", _extends$t({
3197
+ return /*#__PURE__*/React.createElement("svg", _extends$u({
3160
3198
  xmlns: "http://www.w3.org/2000/svg",
3161
3199
  width: 54,
3162
3200
  height: 54,
3163
3201
  fill: "none"
3164
- }, props), _path$s || (_path$s = /*#__PURE__*/React.createElement("path", {
3202
+ }, props), _path$t || (_path$t = /*#__PURE__*/React.createElement("path", {
3165
3203
  fill: "currentColor",
3166
3204
  fillRule: "evenodd",
3167
3205
  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",
@@ -3169,15 +3207,15 @@ var SvgChecklist = function SvgChecklist(props) {
3169
3207
  })));
3170
3208
  };
3171
3209
 
3172
- var _path$r, _path2$3, _path3;
3173
- function _extends$s() { return _extends$s = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$s.apply(null, arguments); }
3210
+ var _path$s, _path2$3, _path3;
3211
+ function _extends$t() { return _extends$t = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$t.apply(null, arguments); }
3174
3212
  var SvgDatetime = function SvgDatetime(props) {
3175
- return /*#__PURE__*/React.createElement("svg", _extends$s({
3213
+ return /*#__PURE__*/React.createElement("svg", _extends$t({
3176
3214
  xmlns: "http://www.w3.org/2000/svg",
3177
3215
  width: 54,
3178
3216
  height: 54,
3179
3217
  fill: "currentcolor"
3180
- }, props), _path$r || (_path$r = /*#__PURE__*/React.createElement("path", {
3218
+ }, props), _path$s || (_path$s = /*#__PURE__*/React.createElement("path", {
3181
3219
  fillRule: "evenodd",
3182
3220
  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"
3183
3221
  })), _path2$3 || (_path2$3 = /*#__PURE__*/React.createElement("path", {
@@ -3188,15 +3226,15 @@ var SvgDatetime = function SvgDatetime(props) {
3188
3226
  })));
3189
3227
  };
3190
3228
 
3191
- var _path$q, _path2$2;
3192
- function _extends$r() { return _extends$r = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$r.apply(null, arguments); }
3229
+ var _path$r, _path2$2;
3230
+ function _extends$s() { return _extends$s = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$s.apply(null, arguments); }
3193
3231
  var SvgTaglist = function SvgTaglist(props) {
3194
- return /*#__PURE__*/React.createElement("svg", _extends$r({
3232
+ return /*#__PURE__*/React.createElement("svg", _extends$s({
3195
3233
  xmlns: "http://www.w3.org/2000/svg",
3196
3234
  width: 54,
3197
3235
  height: 54,
3198
3236
  fill: "currentcolor"
3199
- }, props), _path$q || (_path$q = /*#__PURE__*/React.createElement("path", {
3237
+ }, props), _path$r || (_path$r = /*#__PURE__*/React.createElement("path", {
3200
3238
  fillRule: "evenodd",
3201
3239
  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"
3202
3240
  })), _path2$2 || (_path2$2 = /*#__PURE__*/React.createElement("path", {
@@ -3205,9 +3243,9 @@ var SvgTaglist = function SvgTaglist(props) {
3205
3243
  };
3206
3244
 
3207
3245
  var _rect, _rect2, _rect3;
3208
- function _extends$q() { return _extends$q = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$q.apply(null, arguments); }
3246
+ function _extends$r() { return _extends$r = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$r.apply(null, arguments); }
3209
3247
  var SvgForm = function SvgForm(props) {
3210
- return /*#__PURE__*/React.createElement("svg", _extends$q({
3248
+ return /*#__PURE__*/React.createElement("svg", _extends$r({
3211
3249
  xmlns: "http://www.w3.org/2000/svg",
3212
3250
  width: 54,
3213
3251
  height: 54
@@ -3232,15 +3270,15 @@ var SvgForm = function SvgForm(props) {
3232
3270
  })));
3233
3271
  };
3234
3272
 
3235
- var _path$p;
3236
- function _extends$p() { return _extends$p = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$p.apply(null, arguments); }
3273
+ var _path$q;
3274
+ function _extends$q() { return _extends$q = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$q.apply(null, arguments); }
3237
3275
  var SvgGroup = function SvgGroup(props) {
3238
- return /*#__PURE__*/React.createElement("svg", _extends$p({
3276
+ return /*#__PURE__*/React.createElement("svg", _extends$q({
3239
3277
  xmlns: "http://www.w3.org/2000/svg",
3240
3278
  width: 54,
3241
3279
  height: 54,
3242
3280
  fill: "none"
3243
- }, props), _path$p || (_path$p = /*#__PURE__*/React.createElement("path", {
3281
+ }, props), _path$q || (_path$q = /*#__PURE__*/React.createElement("path", {
3244
3282
  fill: "#000",
3245
3283
  fillRule: "evenodd",
3246
3284
  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",
@@ -3248,50 +3286,64 @@ var SvgGroup = function SvgGroup(props) {
3248
3286
  })));
3249
3287
  };
3250
3288
 
3289
+ var _path$p;
3290
+ function _extends$p() { return _extends$p = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$p.apply(null, arguments); }
3291
+ var SvgNumber = function SvgNumber(props) {
3292
+ return /*#__PURE__*/React.createElement("svg", _extends$p({
3293
+ xmlns: "http://www.w3.org/2000/svg",
3294
+ width: 54,
3295
+ height: 54,
3296
+ fill: "currentcolor"
3297
+ }, props), _path$p || (_path$p = /*#__PURE__*/React.createElement("path", {
3298
+ fillRule: "evenodd",
3299
+ 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"
3300
+ })));
3301
+ };
3302
+
3251
3303
  var _path$o;
3252
3304
  function _extends$o() { return _extends$o = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$o.apply(null, arguments); }
3253
- var SvgNumber = function SvgNumber(props) {
3305
+ var SvgRadio = function SvgRadio(props) {
3254
3306
  return /*#__PURE__*/React.createElement("svg", _extends$o({
3255
3307
  xmlns: "http://www.w3.org/2000/svg",
3256
3308
  width: 54,
3257
3309
  height: 54,
3258
3310
  fill: "currentcolor"
3259
3311
  }, props), _path$o || (_path$o = /*#__PURE__*/React.createElement("path", {
3260
- fillRule: "evenodd",
3261
- 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"
3312
+ 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"
3262
3313
  })));
3263
3314
  };
3264
3315
 
3265
3316
  var _path$n;
3266
3317
  function _extends$n() { return _extends$n = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$n.apply(null, arguments); }
3267
- var SvgRadio = function SvgRadio(props) {
3318
+ var SvgSelect = function SvgSelect(props) {
3268
3319
  return /*#__PURE__*/React.createElement("svg", _extends$n({
3269
3320
  xmlns: "http://www.w3.org/2000/svg",
3270
3321
  width: 54,
3271
3322
  height: 54,
3272
3323
  fill: "currentcolor"
3273
3324
  }, props), _path$n || (_path$n = /*#__PURE__*/React.createElement("path", {
3274
- 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"
3325
+ fillRule: "evenodd",
3326
+ 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"
3275
3327
  })));
3276
3328
  };
3277
3329
 
3278
3330
  var _path$m;
3279
3331
  function _extends$m() { return _extends$m = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$m.apply(null, arguments); }
3280
- var SvgSelect = function SvgSelect(props) {
3332
+ var SvgSeparator = function SvgSeparator(props) {
3281
3333
  return /*#__PURE__*/React.createElement("svg", _extends$m({
3282
3334
  xmlns: "http://www.w3.org/2000/svg",
3283
3335
  width: 54,
3284
3336
  height: 54,
3285
- fill: "currentcolor"
3337
+ fill: "none"
3286
3338
  }, props), _path$m || (_path$m = /*#__PURE__*/React.createElement("path", {
3287
- fillRule: "evenodd",
3288
- 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"
3339
+ fill: "currentColor",
3340
+ 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"
3289
3341
  })));
3290
3342
  };
3291
3343
 
3292
3344
  var _path$l;
3293
3345
  function _extends$l() { return _extends$l = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$l.apply(null, arguments); }
3294
- var SvgSeparator = function SvgSeparator(props) {
3346
+ var SvgSpacer = function SvgSpacer(props) {
3295
3347
  return /*#__PURE__*/React.createElement("svg", _extends$l({
3296
3348
  xmlns: "http://www.w3.org/2000/svg",
3297
3349
  width: 54,
@@ -3299,13 +3351,13 @@ var SvgSeparator = function SvgSeparator(props) {
3299
3351
  fill: "none"
3300
3352
  }, props), _path$l || (_path$l = /*#__PURE__*/React.createElement("path", {
3301
3353
  fill: "currentColor",
3302
- 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"
3354
+ 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"
3303
3355
  })));
3304
3356
  };
3305
3357
 
3306
3358
  var _path$k;
3307
3359
  function _extends$k() { return _extends$k = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$k.apply(null, arguments); }
3308
- var SvgSpacer = function SvgSpacer(props) {
3360
+ var SvgDynamicList = function SvgDynamicList(props) {
3309
3361
  return /*#__PURE__*/React.createElement("svg", _extends$k({
3310
3362
  xmlns: "http://www.w3.org/2000/svg",
3311
3363
  width: 54,
@@ -3313,74 +3365,74 @@ var SvgSpacer = function SvgSpacer(props) {
3313
3365
  fill: "none"
3314
3366
  }, props), _path$k || (_path$k = /*#__PURE__*/React.createElement("path", {
3315
3367
  fill: "currentColor",
3316
- 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"
3368
+ fillRule: "evenodd",
3369
+ 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",
3370
+ clipRule: "evenodd"
3317
3371
  })));
3318
3372
  };
3319
3373
 
3320
3374
  var _path$j;
3321
3375
  function _extends$j() { return _extends$j = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$j.apply(null, arguments); }
3322
- var SvgDynamicList = function SvgDynamicList(props) {
3376
+ var SvgText = function SvgText(props) {
3323
3377
  return /*#__PURE__*/React.createElement("svg", _extends$j({
3324
3378
  xmlns: "http://www.w3.org/2000/svg",
3325
3379
  width: 54,
3326
3380
  height: 54,
3327
- fill: "none"
3381
+ fill: "currentcolor"
3328
3382
  }, props), _path$j || (_path$j = /*#__PURE__*/React.createElement("path", {
3329
- fill: "currentColor",
3330
- fillRule: "evenodd",
3331
- 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",
3332
- clipRule: "evenodd"
3383
+ 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"
3333
3384
  })));
3334
3385
  };
3335
3386
 
3336
3387
  var _path$i;
3337
3388
  function _extends$i() { return _extends$i = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$i.apply(null, arguments); }
3338
- var SvgText = function SvgText(props) {
3389
+ var SvgHtml = function SvgHtml(props) {
3339
3390
  return /*#__PURE__*/React.createElement("svg", _extends$i({
3340
3391
  xmlns: "http://www.w3.org/2000/svg",
3341
3392
  width: 54,
3342
3393
  height: 54,
3343
- fill: "currentcolor"
3394
+ fill: "none"
3344
3395
  }, props), _path$i || (_path$i = /*#__PURE__*/React.createElement("path", {
3345
- 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"
3396
+ fill: "currentColor",
3397
+ fillRule: "evenodd",
3398
+ 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",
3399
+ clipRule: "evenodd"
3346
3400
  })));
3347
3401
  };
3348
3402
 
3349
3403
  var _path$h;
3350
3404
  function _extends$h() { return _extends$h = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$h.apply(null, arguments); }
3351
- var SvgHtml = function SvgHtml(props) {
3405
+ var SvgExpressionField = function SvgExpressionField(props) {
3352
3406
  return /*#__PURE__*/React.createElement("svg", _extends$h({
3353
3407
  xmlns: "http://www.w3.org/2000/svg",
3354
3408
  width: 54,
3355
3409
  height: 54,
3356
3410
  fill: "none"
3357
3411
  }, props), _path$h || (_path$h = /*#__PURE__*/React.createElement("path", {
3358
- fill: "currentColor",
3412
+ fill: "currentcolor",
3359
3413
  fillRule: "evenodd",
3360
- 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",
3414
+ 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",
3361
3415
  clipRule: "evenodd"
3362
3416
  })));
3363
3417
  };
3364
3418
 
3365
3419
  var _path$g;
3366
3420
  function _extends$g() { return _extends$g = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$g.apply(null, arguments); }
3367
- var SvgExpressionField = function SvgExpressionField(props) {
3421
+ var SvgTextfield = function SvgTextfield(props) {
3368
3422
  return /*#__PURE__*/React.createElement("svg", _extends$g({
3369
3423
  xmlns: "http://www.w3.org/2000/svg",
3370
3424
  width: 54,
3371
3425
  height: 54,
3372
- fill: "none"
3426
+ fill: "currentcolor"
3373
3427
  }, props), _path$g || (_path$g = /*#__PURE__*/React.createElement("path", {
3374
- fill: "currentcolor",
3375
3428
  fillRule: "evenodd",
3376
- 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",
3377
- clipRule: "evenodd"
3429
+ 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"
3378
3430
  })));
3379
3431
  };
3380
3432
 
3381
3433
  var _path$f;
3382
3434
  function _extends$f() { return _extends$f = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$f.apply(null, arguments); }
3383
- var SvgTextfield = function SvgTextfield(props) {
3435
+ var SvgTextarea = function SvgTextarea(props) {
3384
3436
  return /*#__PURE__*/React.createElement("svg", _extends$f({
3385
3437
  xmlns: "http://www.w3.org/2000/svg",
3386
3438
  width: 54,
@@ -3388,70 +3440,72 @@ var SvgTextfield = function SvgTextfield(props) {
3388
3440
  fill: "currentcolor"
3389
3441
  }, props), _path$f || (_path$f = /*#__PURE__*/React.createElement("path", {
3390
3442
  fillRule: "evenodd",
3391
- 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"
3443
+ 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"
3392
3444
  })));
3393
3445
  };
3394
3446
 
3395
3447
  var _path$e;
3396
3448
  function _extends$e() { return _extends$e = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$e.apply(null, arguments); }
3397
- var SvgTextarea = function SvgTextarea(props) {
3449
+ var SvgIFrame = function SvgIFrame(props) {
3398
3450
  return /*#__PURE__*/React.createElement("svg", _extends$e({
3399
3451
  xmlns: "http://www.w3.org/2000/svg",
3400
3452
  width: 54,
3401
3453
  height: 54,
3402
- fill: "currentcolor"
3454
+ fill: "none"
3403
3455
  }, props), _path$e || (_path$e = /*#__PURE__*/React.createElement("path", {
3456
+ fill: "currentColor",
3404
3457
  fillRule: "evenodd",
3405
- 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"
3458
+ 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",
3459
+ clipRule: "evenodd"
3406
3460
  })));
3407
3461
  };
3408
3462
 
3409
- var _path$d;
3463
+ var _path$d, _path2$1;
3410
3464
  function _extends$d() { return _extends$d = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$d.apply(null, arguments); }
3411
- var SvgIFrame = function SvgIFrame(props) {
3465
+ var SvgImage = function SvgImage(props) {
3412
3466
  return /*#__PURE__*/React.createElement("svg", _extends$d({
3413
3467
  xmlns: "http://www.w3.org/2000/svg",
3414
3468
  width: 54,
3415
3469
  height: 54,
3416
- fill: "none"
3470
+ fill: "currentcolor"
3417
3471
  }, props), _path$d || (_path$d = /*#__PURE__*/React.createElement("path", {
3418
- fill: "currentColor",
3419
3472
  fillRule: "evenodd",
3420
- 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",
3473
+ 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",
3474
+ clipRule: "evenodd"
3475
+ })), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement("path", {
3476
+ fillRule: "evenodd",
3477
+ 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",
3421
3478
  clipRule: "evenodd"
3422
3479
  })));
3423
3480
  };
3424
3481
 
3425
- var _path$c, _path2$1;
3482
+ var _path$c;
3426
3483
  function _extends$c() { return _extends$c = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$c.apply(null, arguments); }
3427
- var SvgImage = function SvgImage(props) {
3484
+ var SvgTable = function SvgTable(props) {
3428
3485
  return /*#__PURE__*/React.createElement("svg", _extends$c({
3429
3486
  xmlns: "http://www.w3.org/2000/svg",
3430
- width: 54,
3431
- height: 54,
3432
- fill: "currentcolor"
3487
+ fill: "none",
3488
+ viewBox: "0 0 54 54"
3433
3489
  }, props), _path$c || (_path$c = /*#__PURE__*/React.createElement("path", {
3490
+ fill: "currentcolor",
3434
3491
  fillRule: "evenodd",
3435
- 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",
3436
- clipRule: "evenodd"
3437
- })), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement("path", {
3438
- fillRule: "evenodd",
3439
- 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",
3492
+ 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",
3440
3493
  clipRule: "evenodd"
3441
3494
  })));
3442
3495
  };
3443
3496
 
3444
3497
  var _path$b;
3445
3498
  function _extends$b() { return _extends$b = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$b.apply(null, arguments); }
3446
- var SvgTable = function SvgTable(props) {
3499
+ var SvgFilePicker = function SvgFilePicker(props) {
3447
3500
  return /*#__PURE__*/React.createElement("svg", _extends$b({
3448
3501
  xmlns: "http://www.w3.org/2000/svg",
3449
- fill: "none",
3450
- viewBox: "0 0 54 54"
3502
+ width: 54,
3503
+ height: 54,
3504
+ fill: "none"
3451
3505
  }, props), _path$b || (_path$b = /*#__PURE__*/React.createElement("path", {
3452
3506
  fill: "currentcolor",
3453
3507
  fillRule: "evenodd",
3454
- 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",
3508
+ 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",
3455
3509
  clipRule: "evenodd"
3456
3510
  })));
3457
3511
  };
@@ -3479,11 +3533,12 @@ const iconsByType = type => {
3479
3533
  textfield: SvgTextfield,
3480
3534
  textarea: SvgTextarea,
3481
3535
  table: SvgTable,
3536
+ filepicker: SvgFilePicker,
3482
3537
  default: SvgForm
3483
3538
  }[type];
3484
3539
  };
3485
3540
 
3486
- const type$c = 'image';
3541
+ const type$d = 'image';
3487
3542
  function Image(props) {
3488
3543
  const {
3489
3544
  field
@@ -3505,7 +3560,7 @@ function Image(props) {
3505
3560
  formId
3506
3561
  } = useContext(FormContext);
3507
3562
  return jsxs("div", {
3508
- class: formFieldClasses(type$c),
3563
+ class: formFieldClasses(type$d),
3509
3564
  children: [safeSource && jsx("div", {
3510
3565
  class: "fjs-image-container",
3511
3566
  children: jsx("img", {
@@ -3529,13 +3584,12 @@ function Image(props) {
3529
3584
  });
3530
3585
  }
3531
3586
  Image.config = {
3532
- type: type$c,
3587
+ type: type$d,
3533
3588
  keyed: false,
3534
- label: 'Image view',
3589
+ name: 'Image view',
3535
3590
  group: 'presentation',
3536
- create: (options = {}) => ({
3537
- ...options
3538
- })
3591
+ create: (options = {}) => options,
3592
+ getSubheading: field => field.alt
3539
3593
  };
3540
3594
 
3541
3595
  function TemplatedInputAdorner(props) {
@@ -3619,7 +3673,7 @@ function isNullEquivalentValue(value) {
3619
3673
  return value === undefined || value === null || value === '';
3620
3674
  }
3621
3675
 
3622
- const type$b = 'number';
3676
+ const type$c = 'number';
3623
3677
  function Numberfield(props) {
3624
3678
  const {
3625
3679
  disabled,
@@ -3646,6 +3700,8 @@ function Numberfield(props) {
3646
3700
  const {
3647
3701
  required
3648
3702
  } = validate;
3703
+
3704
+ /** @type {import("preact").RefObject<HTMLInputElement>} */
3649
3705
  const inputRef = useRef();
3650
3706
  const [cachedValue, setCachedValue] = useState(value);
3651
3707
  const [displayValue, setDisplayValue] = useState(value);
@@ -3764,7 +3820,7 @@ function Numberfield(props) {
3764
3820
  const descriptionId = `${domId}-description`;
3765
3821
  const errorMessageId = `${domId}-error-message`;
3766
3822
  return jsxs("div", {
3767
- class: formFieldClasses(type$b, {
3823
+ class: formFieldClasses(type$c, {
3768
3824
  errors,
3769
3825
  disabled,
3770
3826
  readonly
@@ -3840,9 +3896,9 @@ function Numberfield(props) {
3840
3896
  });
3841
3897
  }
3842
3898
  Numberfield.config = {
3843
- type: type$b,
3899
+ type: type$c,
3844
3900
  keyed: true,
3845
- label: 'Number',
3901
+ name: 'Number',
3846
3902
  group: 'basic-input',
3847
3903
  emptyValue: null,
3848
3904
  sanitizeValue: ({
@@ -3856,11 +3912,12 @@ Numberfield.config = {
3856
3912
  return formField.serializeToString ? value.toString() : Number(value);
3857
3913
  },
3858
3914
  create: (options = {}) => ({
3915
+ label: 'Number',
3859
3916
  ...options
3860
3917
  })
3861
3918
  };
3862
3919
 
3863
- const type$a = 'radio';
3920
+ const type$b = 'radio';
3864
3921
  function Radio(props) {
3865
3922
  const {
3866
3923
  disabled,
@@ -3877,6 +3934,8 @@ function Radio(props) {
3877
3934
  label,
3878
3935
  validate = {}
3879
3936
  } = field;
3937
+
3938
+ /** @type {import("preact").RefObject<HTMLDivElement>} */
3880
3939
  const outerDivRef = useRef();
3881
3940
  const {
3882
3941
  required
@@ -3912,7 +3971,7 @@ function Radio(props) {
3912
3971
  const descriptionId = `${domId}-description`;
3913
3972
  const errorMessageId = `${domId}-error-message`;
3914
3973
  return jsxs("div", {
3915
- class: formFieldClasses(type$a, {
3974
+ class: formFieldClasses(type$b, {
3916
3975
  errors,
3917
3976
  disabled,
3918
3977
  readonly
@@ -3933,6 +3992,7 @@ function Radio(props) {
3933
3992
  class: "fjs-input",
3934
3993
  disabled: disabled,
3935
3994
  readOnly: readonly,
3995
+ name: domId,
3936
3996
  id: itemDomId,
3937
3997
  type: "radio",
3938
3998
  onClick: () => onChange(option.value),
@@ -3960,13 +4020,16 @@ function Radio(props) {
3960
4020
  });
3961
4021
  }
3962
4022
  Radio.config = {
3963
- type: type$a,
4023
+ type: type$b,
3964
4024
  keyed: true,
3965
- label: 'Radio group',
4025
+ name: 'Radio group',
3966
4026
  group: 'selection',
3967
4027
  emptyValue: null,
3968
4028
  sanitizeValue: sanitizeSingleSelectValue,
3969
- create: createEmptyOptions
4029
+ create: (options = {}) => ({
4030
+ label: 'Radio group',
4031
+ ...createEmptyOptions(options)
4032
+ })
3970
4033
  };
3971
4034
 
3972
4035
  var _path$8;
@@ -4001,6 +4064,8 @@ function SearchableSelect(props) {
4001
4064
  const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);
4002
4065
  const [isFilterActive, setIsFilterActive] = useState(true);
4003
4066
  const [isEscapeClosed, setIsEscapeClose] = useState(false);
4067
+
4068
+ /** @type {import("preact").RefObject<HTMLInputElement>} */
4004
4069
  const searchbarRef = useRef();
4005
4070
  const eventBus = useService('eventBus');
4006
4071
  const {
@@ -4165,6 +4230,8 @@ function SimpleSelect(props) {
4165
4230
  } = props;
4166
4231
  const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);
4167
4232
  const selectRef = useRef();
4233
+
4234
+ /** @type {import("preact").RefObject<HTMLInputElement>} */
4168
4235
  const inputRef = useRef();
4169
4236
  const {
4170
4237
  loadState,
@@ -4270,7 +4337,7 @@ function SimpleSelect(props) {
4270
4337
  });
4271
4338
  }
4272
4339
 
4273
- const type$9 = 'select';
4340
+ const type$a = 'select';
4274
4341
  function Select(props) {
4275
4342
  const {
4276
4343
  disabled,
@@ -4309,7 +4376,7 @@ function Select(props) {
4309
4376
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
4310
4377
  };
4311
4378
  return jsxs("div", {
4312
- class: formFieldClasses(type$9, {
4379
+ class: formFieldClasses(type$a, {
4313
4380
  errors,
4314
4381
  disabled,
4315
4382
  readonly
@@ -4338,33 +4405,36 @@ function Select(props) {
4338
4405
  });
4339
4406
  }
4340
4407
  Select.config = {
4341
- type: type$9,
4408
+ type: type$a,
4342
4409
  keyed: true,
4343
- label: 'Select',
4410
+ name: 'Select',
4344
4411
  group: 'selection',
4345
4412
  emptyValue: null,
4346
4413
  sanitizeValue: sanitizeSingleSelectValue,
4347
- create: createEmptyOptions
4414
+ create: (options = {}) => ({
4415
+ label: 'Select',
4416
+ ...createEmptyOptions(options)
4417
+ })
4348
4418
  };
4349
4419
 
4350
- const type$8 = 'separator';
4420
+ const type$9 = 'separator';
4351
4421
  function Separator() {
4352
4422
  return jsx("div", {
4353
- class: formFieldClasses(type$8),
4423
+ class: formFieldClasses(type$9),
4354
4424
  children: jsx("hr", {})
4355
4425
  });
4356
4426
  }
4357
4427
  Separator.config = {
4358
- type: type$8,
4428
+ type: type$9,
4359
4429
  keyed: false,
4360
- label: 'Separator',
4430
+ name: 'Separator',
4361
4431
  group: 'presentation',
4362
4432
  create: (options = {}) => ({
4363
4433
  ...options
4364
4434
  })
4365
4435
  };
4366
4436
 
4367
- const type$7 = 'spacer';
4437
+ const type$8 = 'spacer';
4368
4438
  function Spacer(props) {
4369
4439
  const {
4370
4440
  field
@@ -4373,16 +4443,16 @@ function Spacer(props) {
4373
4443
  height = 60
4374
4444
  } = field;
4375
4445
  return jsx("div", {
4376
- class: formFieldClasses(type$7),
4446
+ class: formFieldClasses(type$8),
4377
4447
  style: {
4378
4448
  height: height
4379
4449
  }
4380
4450
  });
4381
4451
  }
4382
4452
  Spacer.config = {
4383
- type: type$7,
4453
+ type: type$8,
4384
4454
  keyed: false,
4385
- label: 'Spacer',
4455
+ name: 'Spacer',
4386
4456
  group: 'presentation',
4387
4457
  create: (options = {}) => ({
4388
4458
  height: 60,
@@ -4428,9 +4498,10 @@ DynamicList.config = {
4428
4498
  type: 'dynamiclist',
4429
4499
  pathed: true,
4430
4500
  repeatable: true,
4431
- label: 'Dynamic list',
4501
+ name: 'Dynamic list',
4432
4502
  group: 'container',
4433
4503
  create: (options = {}) => ({
4504
+ label: 'Dynamic list',
4434
4505
  components: [],
4435
4506
  showOutline: true,
4436
4507
  isRepeating: true,
@@ -4461,7 +4532,7 @@ function SkipLink(props) {
4461
4532
  });
4462
4533
  }
4463
4534
 
4464
- const type$6 = 'taglist';
4535
+ const type$7 = 'taglist';
4465
4536
  function Taglist(props) {
4466
4537
  const {
4467
4538
  disabled,
@@ -4484,7 +4555,11 @@ function Taglist(props) {
4484
4555
  const [filter, setFilter] = useState('');
4485
4556
  const [isDropdownExpanded, setIsDropdownExpanded] = useState(false);
4486
4557
  const [isEscapeClosed, setIsEscapeClose] = useState(false);
4558
+
4559
+ /** @type {import("preact").RefObject<HTMLDivElement>} */
4487
4560
  const focusScopeRef = useRef();
4561
+
4562
+ /** @type {import("preact").RefObject<HTMLInputElement>} */
4488
4563
  const inputRef = useRef();
4489
4564
  const eventBus = useService('eventBus');
4490
4565
  const {
@@ -4603,7 +4678,7 @@ function Taglist(props) {
4603
4678
  const errorMessageId = `${domId}-error-message`;
4604
4679
  return jsxs("div", {
4605
4680
  ref: focusScopeRef,
4606
- class: formFieldClasses(type$6, {
4681
+ class: formFieldClasses(type$7, {
4607
4682
  errors,
4608
4683
  disabled,
4609
4684
  readonly
@@ -4688,13 +4763,16 @@ function Taglist(props) {
4688
4763
  });
4689
4764
  }
4690
4765
  Taglist.config = {
4691
- type: type$6,
4766
+ type: type$7,
4692
4767
  keyed: true,
4693
- label: 'Tag list',
4768
+ name: 'Tag list',
4694
4769
  group: 'selection',
4695
4770
  emptyValue: [],
4696
4771
  sanitizeValue: sanitizeMultiSelectValue,
4697
- create: createEmptyOptions
4772
+ create: (options = {}) => ({
4773
+ label: 'Tag list',
4774
+ ...createEmptyOptions(options)
4775
+ })
4698
4776
  };
4699
4777
 
4700
4778
  const NODE_TYPE_TEXT = 3,
@@ -4809,7 +4887,7 @@ function isValidAttribute(lcTag, lcName, value) {
4809
4887
  return true;
4810
4888
  }
4811
4889
 
4812
- const type$5 = 'text';
4890
+ const type$6 = 'text';
4813
4891
  function Text(props) {
4814
4892
  const form = useService('form');
4815
4893
  const {
@@ -4856,22 +4934,25 @@ function Text(props) {
4856
4934
  sanitizeStyleTags: false
4857
4935
  });
4858
4936
  return jsx("div", {
4859
- class: formFieldClasses(type$5),
4937
+ class: formFieldClasses(type$6),
4860
4938
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
4861
4939
  });
4862
4940
  }
4863
4941
  Text.config = {
4864
- type: type$5,
4942
+ type: type$6,
4865
4943
  keyed: false,
4866
- label: 'Text view',
4944
+ name: 'Text view',
4867
4945
  group: 'presentation',
4868
4946
  create: (options = {}) => ({
4869
4947
  text: '# Text',
4870
4948
  ...options
4871
- })
4949
+ }),
4950
+ getSubheading: field => {
4951
+ textToLabel(field.text);
4952
+ }
4872
4953
  };
4873
4954
 
4874
- const type$4 = 'html';
4955
+ const type$5 = 'html';
4875
4956
  function Html(props) {
4876
4957
  const form = useService('form');
4877
4958
  const {
@@ -4922,14 +5003,14 @@ function Html(props) {
4922
5003
  sanitizeStyleTags: false
4923
5004
  });
4924
5005
  return jsx("div", {
4925
- class: classNames(formFieldClasses(type$4), styleScope),
5006
+ class: classNames(formFieldClasses(type$5), styleScope),
4926
5007
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
4927
5008
  });
4928
5009
  }
4929
5010
  Html.config = {
4930
- type: type$4,
5011
+ type: type$5,
4931
5012
  keyed: false,
4932
- label: 'HTML view',
5013
+ name: 'HTML view',
4933
5014
  group: 'presentation',
4934
5015
  create: (options = {}) => ({
4935
5016
  content: '',
@@ -4937,7 +5018,7 @@ Html.config = {
4937
5018
  })
4938
5019
  };
4939
5020
 
4940
- const type$3 = 'expression';
5021
+ const type$4 = 'expression';
4941
5022
  function ExpressionField(props) {
4942
5023
  const {
4943
5024
  field,
@@ -4974,8 +5055,8 @@ function ExpressionField(props) {
4974
5055
  return null;
4975
5056
  }
4976
5057
  ExpressionField.config = {
4977
- type: type$3,
4978
- label: 'Expression',
5058
+ type: type$4,
5059
+ name: 'Expression',
4979
5060
  group: 'basic-input',
4980
5061
  keyed: true,
4981
5062
  emptyValue: null,
@@ -4986,7 +5067,7 @@ ExpressionField.config = {
4986
5067
  })
4987
5068
  };
4988
5069
 
4989
- const type$2 = 'textfield';
5070
+ const type$3 = 'textfield';
4990
5071
  function Textfield(props) {
4991
5072
  const {
4992
5073
  disabled,
@@ -5028,7 +5109,7 @@ function Textfield(props) {
5028
5109
  const descriptionId = `${domId}-description`;
5029
5110
  const errorMessageId = `${domId}-error-message`;
5030
5111
  return jsxs("div", {
5031
- class: formFieldClasses(type$2, {
5112
+ class: formFieldClasses(type$3, {
5032
5113
  errors,
5033
5114
  disabled,
5034
5115
  readonly
@@ -5066,9 +5147,9 @@ function Textfield(props) {
5066
5147
  });
5067
5148
  }
5068
5149
  Textfield.config = {
5069
- type: type$2,
5150
+ type: type$3,
5070
5151
  keyed: true,
5071
- label: 'Text field',
5152
+ name: 'Text field',
5072
5153
  group: 'basic-input',
5073
5154
  emptyValue: '',
5074
5155
  sanitizeValue: ({
@@ -5085,11 +5166,12 @@ Textfield.config = {
5085
5166
  return String(value);
5086
5167
  },
5087
5168
  create: (options = {}) => ({
5169
+ label: 'Text field',
5088
5170
  ...options
5089
5171
  })
5090
5172
  };
5091
5173
 
5092
- const type$1 = 'textarea';
5174
+ const type$2 = 'textarea';
5093
5175
  function Textarea(props) {
5094
5176
  const {
5095
5177
  disabled,
@@ -5139,7 +5221,7 @@ function Textarea(props) {
5139
5221
  const descriptionId = `${domId}-description`;
5140
5222
  const errorMessageId = `${domId}-error-message`;
5141
5223
  return jsxs("div", {
5142
- class: formFieldClasses(type$1, {
5224
+ class: formFieldClasses(type$2, {
5143
5225
  errors,
5144
5226
  disabled,
5145
5227
  readonly
@@ -5171,15 +5253,16 @@ function Textarea(props) {
5171
5253
  });
5172
5254
  }
5173
5255
  Textarea.config = {
5174
- type: type$1,
5256
+ type: type$2,
5175
5257
  keyed: true,
5176
- label: 'Text area',
5258
+ name: 'Text area',
5177
5259
  group: 'basic-input',
5178
5260
  emptyValue: '',
5179
5261
  sanitizeValue: ({
5180
5262
  value
5181
5263
  }) => isArray(value) || isObject(value) || isNil(value) ? '' : String(value),
5182
5264
  create: (options = {}) => ({
5265
+ label: 'Text area',
5183
5266
  ...options
5184
5267
  })
5185
5268
  };
@@ -5252,7 +5335,7 @@ var SvgCaretRight = function SvgCaretRight(props) {
5252
5335
  })));
5253
5336
  };
5254
5337
 
5255
- const type = 'table';
5338
+ const type$1 = 'table';
5256
5339
 
5257
5340
  /**
5258
5341
  * @typedef {('asc'|'desc')} Direction
@@ -5291,9 +5374,7 @@ function Table(props) {
5291
5374
  id,
5292
5375
  label
5293
5376
  } = field;
5294
-
5295
- /** @type {[(null|Sorting), import("preact/hooks").StateUpdater<null|Sorting>]} */
5296
- const [sortBy, setSortBy] = useState(null);
5377
+ const [sortBy, setSortBy] = useState(/** @type {Sorting | null} */null);
5297
5378
  const evaluatedColumns = useEvaluatedColumns(columnsExpression || '', columns);
5298
5379
  const columnKeys = evaluatedColumns.map(({
5299
5380
  key
@@ -5335,7 +5416,7 @@ function Table(props) {
5335
5416
  });
5336
5417
  }
5337
5418
  return jsxs("div", {
5338
- class: formFieldClasses(type),
5419
+ class: formFieldClasses(type$1),
5339
5420
  children: [jsx(Label, {
5340
5421
  htmlFor: prefixId(id),
5341
5422
  label: label
@@ -5432,9 +5513,9 @@ function Table(props) {
5432
5513
  });
5433
5514
  }
5434
5515
  Table.config = {
5435
- type,
5516
+ type: type$1,
5436
5517
  keyed: false,
5437
- label: 'Table',
5518
+ name: 'Table',
5438
5519
  group: 'presentation',
5439
5520
  create: (options = {}) => {
5440
5521
  const {
@@ -5463,6 +5544,7 @@ Table.config = {
5463
5544
  }
5464
5545
  return {
5465
5546
  ...remainingOptions,
5547
+ label: 'Table',
5466
5548
  rowCount: 10,
5467
5549
  columns: [{
5468
5550
  label: 'ID',
@@ -5584,6 +5666,148 @@ function getHeaderAriaLabel(sortBy, key, label) {
5584
5666
  return `Click to sort by ${label} ascending`;
5585
5667
  }
5586
5668
 
5669
+ const type = 'filepicker';
5670
+
5671
+ /**
5672
+ * @typedef Props
5673
+ * @property {(props: { value: string }) => void} onChange
5674
+ * @property {string} domId
5675
+ * @property {string[]} errors
5676
+ * @property {boolean} disabled
5677
+ * @property {boolean} readonly
5678
+ * @property {boolean} required
5679
+ * @property {Object} field
5680
+ * @property {string} field.id
5681
+ * @property {string} [field.label]
5682
+ * @property {string} [field.accept]
5683
+ * @property {boolean} [field.multiple]
5684
+ *
5685
+ * @param {Props} props
5686
+ * @returns {import("preact").JSX.Element}
5687
+ */
5688
+ function FilePicker(props) {
5689
+ /** @type {import("preact/hooks").Ref<HTMLInputElement>} */
5690
+ const fileInputRef = useRef(null);
5691
+ /** @type {[File[],import("preact/hooks").StateUpdater<File[]>]} */
5692
+ const [selectedFiles, setSelectedFiles] = useState([]);
5693
+ const eventBus = useService('eventBus');
5694
+ const {
5695
+ field,
5696
+ onChange,
5697
+ domId,
5698
+ errors = [],
5699
+ disabled,
5700
+ readonly,
5701
+ required
5702
+ } = props;
5703
+ const {
5704
+ label,
5705
+ multiple = '',
5706
+ accept = '',
5707
+ id
5708
+ } = field;
5709
+ const evaluatedAccept = useSingleLineTemplateEvaluation(accept);
5710
+ const evaluatedMultiple = useSingleLineTemplateEvaluation(typeof multiple === 'string' ? multiple : multiple.toString()) === 'true';
5711
+ const errorMessageId = `${domId}-error-message`;
5712
+ useEffect(() => {
5713
+ const reset = () => {
5714
+ setSelectedFiles([]);
5715
+ onChange({
5716
+ value: null
5717
+ });
5718
+ };
5719
+ eventBus.on('import.done', reset);
5720
+ eventBus.on('reset', reset);
5721
+ return () => {
5722
+ eventBus.off('import.done', reset);
5723
+ eventBus.off('reset', reset);
5724
+ };
5725
+ }, [eventBus, onChange]);
5726
+ return jsxs("div", {
5727
+ class: formFieldClasses(type, {
5728
+ errors,
5729
+ disabled,
5730
+ readonly
5731
+ }),
5732
+ children: [jsx(Label, {
5733
+ htmlFor: domId,
5734
+ label: label,
5735
+ required: required
5736
+ }), jsx("input", {
5737
+ type: "file",
5738
+ className: "fjs-hidden",
5739
+ ref: fileInputRef,
5740
+ id: domId,
5741
+ name: domId,
5742
+ multiple: evaluatedMultiple === false ? undefined : evaluatedMultiple,
5743
+ accept: evaluatedAccept === '' ? undefined : evaluatedAccept,
5744
+ onChange: event => {
5745
+ const input = /** @type {HTMLInputElement} */event.target;
5746
+ if (input.files === null || input.files.length === 0) {
5747
+ onChange({
5748
+ value: null
5749
+ });
5750
+ return;
5751
+ }
5752
+ const files = Array.from(input.files);
5753
+ onChange({
5754
+ value: `${id}_value_key`
5755
+ });
5756
+ setSelectedFiles(files);
5757
+ }
5758
+ }), jsxs("div", {
5759
+ className: "fjs-filepicker-container",
5760
+ children: [jsx("button", {
5761
+ type: "button",
5762
+ disabled: disabled,
5763
+ readonly: readonly,
5764
+ class: "fjs-button",
5765
+ onClick: () => {
5766
+ fileInputRef.current.click();
5767
+ },
5768
+ children: "Browse"
5769
+ }), jsx("span", {
5770
+ className: "fjs-form-field-label",
5771
+ children: getSelectedFilesLabel(selectedFiles)
5772
+ })]
5773
+ }), jsx(Errors, {
5774
+ id: errorMessageId,
5775
+ errors: errors
5776
+ })]
5777
+ });
5778
+ }
5779
+ FilePicker.config = {
5780
+ type: 'filepicker',
5781
+ keyed: true,
5782
+ label: 'File picker',
5783
+ group: 'basic-input',
5784
+ emptyValue: null,
5785
+ sanitizeValue: ({
5786
+ value
5787
+ }) => {
5788
+ return value;
5789
+ },
5790
+ create: (options = {}) => ({
5791
+ ...options
5792
+ })
5793
+ };
5794
+
5795
+ // helper //////////
5796
+
5797
+ /**
5798
+ * @param {File[]} files
5799
+ * @returns {string}
5800
+ */
5801
+ function getSelectedFilesLabel(files) {
5802
+ if (files.length === 0) {
5803
+ return 'No files selected';
5804
+ }
5805
+ if (files.length === 1) {
5806
+ return files[0].name;
5807
+ }
5808
+ return `${files.length} files selected`;
5809
+ }
5810
+
5587
5811
  /**
5588
5812
  * This file must not be changed or exchanged.
5589
5813
  *
@@ -5720,7 +5944,7 @@ function FormComponent(props) {
5720
5944
  }
5721
5945
 
5722
5946
  const formFields = [/* Input */
5723
- Textfield, Textarea, Numberfield, Datetime, ExpressionField, /* Selection */
5947
+ Textfield, Textarea, Numberfield, Datetime, ExpressionField, FilePicker, /* Selection */
5724
5948
  Checkbox, Checklist, Radio, Select, Taglist, /* Presentation */
5725
5949
  Text, Image, Table, Html, Spacer, Separator, /* Containers */
5726
5950
  Group, DynamicList, IFrame, /* Other */
@@ -6936,7 +7160,7 @@ class RepeatRenderManager {
6936
7160
  * @param {Object} props.itemValue
6937
7161
  * @param {Object} props.parentExpressionContextInfo
6938
7162
  * @param {Object} props.repeaterField
6939
- * @param {Function} props.RowsRenderer
7163
+ * @param {import('preact').FunctionComponent} props.RowsRenderer
6940
7164
  * @param {Object} props.indexes
6941
7165
  * @param {Function} props.onDeleteItem
6942
7166
  * @param {boolean} props.showRemove
@@ -7820,7 +8044,7 @@ class FieldFactory {
7820
8044
  this._pathRegistry = pathRegistry;
7821
8045
  this._formFields = formFields;
7822
8046
  }
7823
- create(attrs, applyDefaults = true) {
8047
+ create(attrs, isNewField = true) {
7824
8048
  const {
7825
8049
  id,
7826
8050
  type,
@@ -7859,13 +8083,12 @@ class FieldFactory {
7859
8083
  })) {
7860
8084
  throw new Error(`binding path '${[...parentPath, ...path.split('.')].join('.')}' is already claimed`);
7861
8085
  }
7862
- const labelAttrs = applyDefaults && config.label ? {
7863
- label: config.label
7864
- } : {};
7865
8086
  const field = config.create({
7866
- ...labelAttrs,
8087
+ ...(config.label ? {
8088
+ label: config.label
8089
+ } : {}),
7867
8090
  ...attrs
7868
- });
8091
+ }, isNewField);
7869
8092
  this._ensureId(field);
7870
8093
  if (config.keyed) {
7871
8094
  this._ensureKey(field);
@@ -8989,7 +9212,7 @@ class Form {
8989
9212
  }
8990
9213
  }
8991
9214
 
8992
- const schemaVersion = 16;
9215
+ const schemaVersion = 17;
8993
9216
 
8994
9217
  /**
8995
9218
  * @typedef { import('./types').CreateFormOptions } CreateFormOptions
@@ -9014,5 +9237,5 @@ function createForm(options) {
9014
9237
  });
9015
9238
  }
9016
9239
 
9017
- export { ALLOW_ATTRIBUTE, Button, Checkbox, Checklist, ConditionChecker, DATETIME_SUBTYPES, DATETIME_SUBTYPES_LABELS, DATETIME_SUBTYPE_PATH, DATE_DISALLOW_PAST_PATH, DATE_LABEL_PATH, Datetime, Default, Description, DynamicList, Errors, ExpressionField, ExpressionFieldModule, ExpressionLanguageModule, ExpressionLoopPreventer, FeelExpressionLanguage, FeelersTemplating, FieldFactory, Form, FormComponent, FormContext, FormField, FormFieldRegistry, FormFields, FormLayouter, FormRenderContext, Group, Html, IFrame, Image, Importer, Label, LocalExpressionContext, MINUTES_IN_DAY, MarkdownRenderer, MarkdownRendererModule, Numberfield, OPTIONS_SOURCES, OPTIONS_SOURCES_DEFAULTS, OPTIONS_SOURCES_LABELS, OPTIONS_SOURCES_PATHS, OPTIONS_SOURCE_DEFAULT, PathRegistry, Radio, RenderModule, RepeatRenderManager, RepeatRenderModule, SANDBOX_ATTRIBUTE, SECURITY_ATTRIBUTES_DEFINITIONS, Select, Separator, Spacer, TIME_INTERVAL_PATH, TIME_LABEL_PATH, TIME_SERIALISINGFORMAT_LABELS, TIME_SERIALISING_FORMATS, TIME_SERIALISING_FORMAT_PATH, TIME_USE24H_PATH, Table, Taglist, Text, Textarea, Textfield, ViewerCommands, ViewerCommandsModule, buildExpressionContext, clone, createForm, createFormContainer, createInjector, escapeHTML, formFields, generateIdForType, generateIndexForType, getAncestryList, getOptionsSource, getSchemaVariables, getScrollContainer, hasEqualValue, iconsByType, isRequired, pathParse, pathsEqual, runExpressionEvaluation, runRecursively, sanitizeDateTimePickerValue, sanitizeHTML, sanitizeIFrameSource, sanitizeImageSource, sanitizeMultiSelectValue, sanitizeSingleSelectValue, schemaVersion, useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation, wrapCSSStyles, wrapObjectKeysWithUnderscores };
9240
+ export { ALLOW_ATTRIBUTE, Button, Checkbox, Checklist, ConditionChecker, DATETIME_SUBTYPES, DATETIME_SUBTYPES_LABELS, DATETIME_SUBTYPE_PATH, DATE_DISALLOW_PAST_PATH, DATE_LABEL_PATH, Datetime, Default, Description, DynamicList, Errors, ExpressionField, ExpressionFieldModule, ExpressionLanguageModule, ExpressionLoopPreventer, FeelExpressionLanguage, FeelersTemplating, FieldFactory, FilePicker, Form, FormComponent, FormContext, FormField, FormFieldRegistry, FormFields, FormLayouter, FormRenderContext, Group, Html, IFrame, Image, Importer, Label, LocalExpressionContext, MINUTES_IN_DAY, MarkdownRenderer, MarkdownRendererModule, Numberfield, OPTIONS_SOURCES, OPTIONS_SOURCES_DEFAULTS, OPTIONS_SOURCES_LABELS, OPTIONS_SOURCES_PATHS, OPTIONS_SOURCE_DEFAULT, PathRegistry, Radio, RenderModule, RepeatRenderManager, RepeatRenderModule, SANDBOX_ATTRIBUTE, SECURITY_ATTRIBUTES_DEFINITIONS, Select, Separator, Spacer, TIME_INTERVAL_PATH, TIME_LABEL_PATH, TIME_SERIALISINGFORMAT_LABELS, TIME_SERIALISING_FORMATS, TIME_SERIALISING_FORMAT_PATH, TIME_USE24H_PATH, Table, Taglist, Text, Textarea, Textfield, ViewerCommands, ViewerCommandsModule, buildExpressionContext, clone, createForm, createFormContainer, createInjector, escapeHTML, formFields, generateIdForType, generateIndexForType, getAncestryList, getOptionsSource, getSchemaVariables, getScrollContainer, hasEqualValue, iconsByType, isRequired, pathParse, pathsEqual, runExpressionEvaluation, runRecursively, sanitizeDateTimePickerValue, sanitizeHTML, sanitizeIFrameSource, sanitizeImageSource, sanitizeMultiSelectValue, sanitizeSingleSelectValue, schemaVersion, useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation, wrapCSSStyles, wrapObjectKeysWithUnderscores };
9018
9241
  //# sourceMappingURL=index.es.js.map