@adiba-banking-cloud/backoffice 0.0.69 → 0.0.71

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.
@@ -1,15 +1,15 @@
1
1
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import { modals } from '@mantine/modals';
4
- import React, { useRef, useMemo, useEffect } from 'react';
5
- import { Center, Image, Space, Popover, Button, Stack, Divider, Group, Text, Menu, Avatar, Badge, NavLink, Card, TextInput, ActionIcon, Box, Title, createTheme, SegmentedControl, Breadcrumbs, Anchor, ColorSwatch, AspectRatio, Overlay, rem, SimpleGrid, Indicator, Table, PinInput, Drawer as Drawer$1, ScrollArea, Grid, NumberInput, PasswordInput, Textarea } from '@mantine/core';
4
+ import React, { useRef, useMemo, useEffect, useLayoutEffect, useState, useCallback } from 'react';
5
+ import { Center, Image, Space, Popover, Button, Stack, Divider, Group, Text, Menu, Avatar, Badge, NavLink, Card, TextInput, ActionIcon, Box, Title, SegmentedControl, Breadcrumbs, Anchor, ColorSwatch, AspectRatio, Overlay, rem, SimpleGrid, Indicator, Table, createTheme, PinInput, Drawer as Drawer$1, ScrollArea, Grid, NumberInput, PasswordInput, Textarea } from '@mantine/core';
6
6
  import { DotLottieReact } from '@lottiefiles/dotlottie-react';
7
7
  import _extends from '@babel/runtime/helpers/extends';
8
8
  import HighchartsReact from 'highcharts-react-official';
9
9
  import HighchartsRounded from 'highcharts-rounded-corners';
10
10
  import * as IconSax from 'iconsax-react';
11
11
  import { Link } from 'react-router-dom';
12
- import { useDisclosure } from '@mantine/hooks';
12
+ import { useDisclosure, useToggle } from '@mantine/hooks';
13
13
  import '@fontsource/poppins/100.css';
14
14
  import '@fontsource/poppins/200.css';
15
15
  import '@fontsource/poppins/300.css';
@@ -11321,8 +11321,8 @@ const createAreaFillGradient = function (baseColor) {
11321
11321
  };
11322
11322
  };
11323
11323
 
11324
- function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11325
- function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11324
+ function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11325
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11326
11326
 
11327
11327
  // Initialize Highcharts with rounded corners
11328
11328
  if (typeof window !== "undefined") {
@@ -11331,8 +11331,8 @@ if (typeof window !== "undefined") {
11331
11331
  const Column = props => {
11332
11332
  const chartRef = useRef(null);
11333
11333
  const chartOptions = useMemo(() => {
11334
- const column = _objectSpread$4({}, props);
11335
- return _objectSpread$4(_objectSpread$4({}, initChart$2(column)), initSeries$2(column));
11334
+ const column = _objectSpread$5({}, props);
11335
+ return _objectSpread$5(_objectSpread$5({}, initChart$2(column)), initSeries$2(column));
11336
11336
  }, [props]);
11337
11337
  useEffect(() => {
11338
11338
  if (chartRef.current && chartRef.current.chart) {
@@ -11435,7 +11435,7 @@ const initSeries$2 = props => {
11435
11435
  enableMouseTracking: false,
11436
11436
  showInLegend: false
11437
11437
  });
11438
- const mainSeries = _objectSpread$4(_objectSpread$4({}, fillSeries(boundary)), {
11438
+ const mainSeries = _objectSpread$5(_objectSpread$5({}, fillSeries(boundary)), {
11439
11439
  name: props.yAxisLabel[0],
11440
11440
  color: seriesColors ? seriesColors[0] : "gray",
11441
11441
  data: seriesData[0],
@@ -11475,7 +11475,7 @@ const initSeries$2 = props => {
11475
11475
  pointWidth: undefined
11476
11476
  }
11477
11477
  };
11478
- const plot = _objectSpread$4(_objectSpread$4({}, {
11478
+ const plot = _objectSpread$5(_objectSpread$5({}, {
11479
11479
  column: {
11480
11480
  borderWidth: 0,
11481
11481
  borderRadius: 10
@@ -11530,13 +11530,13 @@ const initChart$1 = props => {
11530
11530
  };
11531
11531
  };
11532
11532
 
11533
- function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11534
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11533
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11534
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11535
11535
  const Area = props => {
11536
11536
  const chartRef = useRef(null);
11537
11537
  const chartOptions = useMemo(() => {
11538
- const area = _objectSpread$3({}, props);
11539
- return _objectSpread$3(_objectSpread$3({}, initChart$1(area)), initSeries$1(area));
11538
+ const area = _objectSpread$4({}, props);
11539
+ return _objectSpread$4(_objectSpread$4({}, initChart$1(area)), initSeries$1(area));
11540
11540
  }, [props]);
11541
11541
  useEffect(() => {
11542
11542
  if (chartRef.current && chartRef.current.chart) {
@@ -11597,7 +11597,7 @@ const initSeries$1 = props => {
11597
11597
  const labels = {
11598
11598
  color: "#575E77"
11599
11599
  };
11600
- return _objectSpread$3(_objectSpread$3({}, defaults), {
11600
+ return _objectSpread$4(_objectSpread$4({}, defaults), {
11601
11601
  labels
11602
11602
  });
11603
11603
  };
@@ -11635,8 +11635,8 @@ const initSeries$1 = props => {
11635
11635
  };
11636
11636
 
11637
11637
  const _excluded$c = ["withLegend", "centerLabel", "centerValue"];
11638
- function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11639
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11638
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11639
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11640
11640
  const initChart = _ref => {
11641
11641
  let {
11642
11642
  withLegend,
@@ -11686,7 +11686,7 @@ const initChart = _ref => {
11686
11686
  },
11687
11687
  legend: !withLegend ? {
11688
11688
  enabled: false
11689
- } : _objectSpread$2(_objectSpread$2({}, {
11689
+ } : _objectSpread$3(_objectSpread$3({}, {
11690
11690
  enabled: true,
11691
11691
  layout: "vertical",
11692
11692
  verticalAlign: "middle",
@@ -11719,13 +11719,13 @@ const initChart = _ref => {
11719
11719
  };
11720
11720
  };
11721
11721
 
11722
- function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11723
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11722
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11723
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11724
11724
  const DonutChart = props => {
11725
11725
  const chartRef = useRef(null);
11726
11726
  const chartOptions = useMemo(() => {
11727
- const area = _objectSpread$1({}, props);
11728
- return _objectSpread$1(_objectSpread$1({}, initChart(area)), initSeries(area));
11727
+ const area = _objectSpread$2({}, props);
11728
+ return _objectSpread$2(_objectSpread$2({}, initChart(area)), initSeries(area));
11729
11729
  }, [props]);
11730
11730
  useEffect(() => {
11731
11731
  if (chartRef.current && chartRef.current.chart) {
@@ -12355,50 +12355,31 @@ const SimpleText = _ref => {
12355
12355
  }, rest), label);
12356
12356
  };
12357
12357
 
12358
- const theme = createTheme({
12359
- focusRing: "never",
12360
- colors: {
12361
- adiba: ["#E7E8EB", "#CFD1D8", "#B7BAC4", "#9FA3B1", "#575E77", "#273050", "#0f193d", "#0D1636", "#0C1430", "#0A112A"],
12362
- altiba: ["#F4E2CE", "#EED4B5", "#E9C59D", "#D89A54", "#D38C3B", "#CD7E23", "#c8700b", "#B46409", "#A05908", "#8C4E07"]
12363
- },
12364
- fontFamily: "Poppins",
12365
- headings: {
12366
- fontFamily: "Poppins",
12367
- fontWeight: "500"
12368
- },
12369
- primaryColor: "adiba",
12370
- other: {
12371
- fontWeights: {
12372
- normal: 300
12373
- }
12374
- }
12375
- });
12376
-
12377
- const _excluded$6 = ["title", "subtitle", "rightsection", "withCreate", "withSwitcher", "create", "switcher"];
12358
+ const _excluded$6 = ["createFn", "icon", "label"];
12378
12359
  const PageTitle = _ref => {
12379
12360
  var _switcher$items;
12380
12361
  let {
12381
- title,
12382
- subtitle = "",
12383
- rightsection,
12384
- withCreate,
12385
- withSwitcher,
12386
- create,
12387
- switcher
12388
- } = _ref,
12389
- rest = _objectWithoutProperties(_ref, _excluded$6);
12362
+ title,
12363
+ subtitle = "",
12364
+ rightsection,
12365
+ withCreate,
12366
+ withSwitcher,
12367
+ create,
12368
+ switcher
12369
+ } = _ref;
12390
12370
  if (withCreate && create) {
12391
12371
  const {
12392
- createFn,
12393
- icon,
12394
- label
12395
- } = create;
12396
- rightsection = /*#__PURE__*/React.createElement(Button, {
12372
+ createFn,
12373
+ icon,
12374
+ label
12375
+ } = create,
12376
+ rest = _objectWithoutProperties(create, _excluded$6);
12377
+ rightsection = /*#__PURE__*/React.createElement(Button, _extends({
12397
12378
  radius: "md",
12398
12379
  size: "sm",
12399
12380
  leftSection: /*#__PURE__*/React.createElement(Icons, icon),
12400
12381
  onClick: createFn
12401
- }, /*#__PURE__*/React.createElement(Text, {
12382
+ }, rest), /*#__PURE__*/React.createElement(Text, {
12402
12383
  fw: 300,
12403
12384
  fz: 14
12404
12385
  }, label));
@@ -12406,7 +12387,8 @@ const PageTitle = _ref => {
12406
12387
  if (withSwitcher && switcher !== null && switcher !== void 0 && (_switcher$items = switcher.items) !== null && _switcher$items !== void 0 && _switcher$items.length) {
12407
12388
  rightsection = /*#__PURE__*/React.createElement(SegmentedControl, {
12408
12389
  size: "sm",
12409
- color: theme.primaryColor,
12390
+ bg: "white",
12391
+ color: 'adiba',
12410
12392
  data: switcher.items
12411
12393
  });
12412
12394
  }
@@ -12415,10 +12397,10 @@ const PageTitle = _ref => {
12415
12397
  py: "lg"
12416
12398
  }, /*#__PURE__*/React.createElement(Stack, {
12417
12399
  gap: 4
12418
- }, /*#__PURE__*/React.createElement(Title, _extends({
12400
+ }, /*#__PURE__*/React.createElement(Title, {
12419
12401
  order: 2,
12420
12402
  fw: 500
12421
- }, rest), title), typeof subtitle == "string" ? /*#__PURE__*/React.createElement(Text, {
12403
+ }, title), typeof subtitle == "string" ? /*#__PURE__*/React.createElement(Text, {
12422
12404
  fz: 14,
12423
12405
  fw: 300
12424
12406
  }, subtitle) : /*#__PURE__*/React.createElement(Breadcrumbs, {
@@ -12435,7 +12417,7 @@ const PageTitle = _ref => {
12435
12417
  fz: 14,
12436
12418
  key: index,
12437
12419
  fw: 300,
12438
- c: 'dimmed'
12420
+ c: "dimmed"
12439
12421
  }, item.name);
12440
12422
  }))), /*#__PURE__*/React.createElement(React.Fragment, null, rightsection)));
12441
12423
  };
@@ -13042,6 +13024,25 @@ const File = _ref => {
13042
13024
  }, /*#__PURE__*/React.createElement(Icons, rightsection === null || rightsection === void 0 ? void 0 : rightsection.icon)) : undefined)));
13043
13025
  };
13044
13026
 
13027
+ const theme = createTheme({
13028
+ focusRing: "never",
13029
+ colors: {
13030
+ adiba: ["#E7E8EB", "#CFD1D8", "#B7BAC4", "#9FA3B1", "#575E77", "#273050", "#0f193d", "#0D1636", "#0C1430", "#0A112A"],
13031
+ altiba: ["#F4E2CE", "#EED4B5", "#E9C59D", "#D89A54", "#D38C3B", "#CD7E23", "#c8700b", "#B46409", "#A05908", "#8C4E07"]
13032
+ },
13033
+ fontFamily: "Poppins",
13034
+ headings: {
13035
+ fontFamily: "Poppins",
13036
+ fontWeight: "500"
13037
+ },
13038
+ primaryColor: "adiba",
13039
+ other: {
13040
+ fontWeights: {
13041
+ normal: 300
13042
+ }
13043
+ }
13044
+ });
13045
+
13045
13046
  var ErrorAnimation = "data:null;base64,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";
13046
13047
 
13047
13048
  const ErrorModal = _ref => {
@@ -13225,20 +13226,1086 @@ const Drawer = _ref => {
13225
13226
  }, page))));
13226
13227
  };
13227
13228
 
13228
- const _excluded$1 = ["fields", "isEditable", "layout"];
13229
+ function validateFormName(name) {
13230
+ if (!/^[0-9a-zA-Z-]+$/.test(name)) {
13231
+ throw new Error(
13232
+ `[@mantine/use-form] Form name "${name}" is invalid, it should contain only letters, numbers and dashes`
13233
+ );
13234
+ }
13235
+ }
13236
+ const useIsomorphicEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
13237
+ function useFormEvent(eventKey, handler) {
13238
+ useIsomorphicEffect(() => {
13239
+ if (eventKey) {
13240
+ window.addEventListener(eventKey, handler);
13241
+ return () => window.removeEventListener(eventKey, handler);
13242
+ }
13243
+ return void 0;
13244
+ }, [eventKey]);
13245
+ }
13246
+ function useFormActions(name, form) {
13247
+ if (name) {
13248
+ validateFormName(name);
13249
+ }
13250
+ useFormEvent(
13251
+ `mantine-form:${name}:set-field-value`,
13252
+ (event) => form.setFieldValue(event.detail.path, event.detail.value)
13253
+ );
13254
+ useFormEvent(
13255
+ `mantine-form:${name}:set-values`,
13256
+ (event) => form.setValues(event.detail)
13257
+ );
13258
+ useFormEvent(
13259
+ `mantine-form:${name}:set-initial-values`,
13260
+ (event) => form.setInitialValues(event.detail)
13261
+ );
13262
+ useFormEvent(
13263
+ `mantine-form:${name}:set-errors`,
13264
+ (event) => form.setErrors(event.detail)
13265
+ );
13266
+ useFormEvent(
13267
+ `mantine-form:${name}:set-field-error`,
13268
+ (event) => form.setFieldError(event.detail.path, event.detail.error)
13269
+ );
13270
+ useFormEvent(
13271
+ `mantine-form:${name}:clear-field-error`,
13272
+ (event) => form.clearFieldError(event.detail)
13273
+ );
13274
+ useFormEvent(`mantine-form:${name}:clear-errors`, form.clearErrors);
13275
+ useFormEvent(`mantine-form:${name}:reset`, form.reset);
13276
+ useFormEvent(`mantine-form:${name}:validate`, form.validate);
13277
+ useFormEvent(
13278
+ `mantine-form:${name}:validate-field`,
13279
+ (event) => form.validateField(event.detail)
13280
+ );
13281
+ useFormEvent(
13282
+ `mantine-form:${name}:reorder-list-item`,
13283
+ (event) => form.reorderListItem(event.detail.path, event.detail.payload)
13284
+ );
13285
+ useFormEvent(
13286
+ `mantine-form:${name}:remove-list-item`,
13287
+ (event) => form.removeListItem(event.detail.path, event.detail.index)
13288
+ );
13289
+ useFormEvent(
13290
+ `mantine-form:${name}:insert-list-item`,
13291
+ (event) => form.insertListItem(event.detail.path, event.detail.item, event.detail.index)
13292
+ );
13293
+ useFormEvent(
13294
+ `mantine-form:${name}:set-dirty`,
13295
+ (event) => form.setDirty(event.detail)
13296
+ );
13297
+ useFormEvent(
13298
+ `mantine-form:${name}:set-touched`,
13299
+ (event) => form.setTouched(event.detail)
13300
+ );
13301
+ useFormEvent(
13302
+ `mantine-form:${name}:reset-dirty`,
13303
+ (event) => form.resetDirty(event.detail)
13304
+ );
13305
+ useFormEvent(`mantine-form:${name}:reset-touched`, form.resetTouched);
13306
+ }
13307
+
13308
+ function getInputOnChange(setValue) {
13309
+ return (val) => {
13310
+ if (!val) {
13311
+ setValue(val);
13312
+ } else if (typeof val === "function") {
13313
+ setValue(val);
13314
+ } else if (typeof val === "object" && "nativeEvent" in val) {
13315
+ const { currentTarget } = val;
13316
+ if (currentTarget instanceof HTMLInputElement) {
13317
+ if (currentTarget.type === "checkbox") {
13318
+ setValue(currentTarget.checked);
13319
+ } else {
13320
+ setValue(currentTarget.value);
13321
+ }
13322
+ } else if (currentTarget instanceof HTMLTextAreaElement || currentTarget instanceof HTMLSelectElement) {
13323
+ setValue(currentTarget.value);
13324
+ }
13325
+ } else {
13326
+ setValue(val);
13327
+ }
13328
+ };
13329
+ }
13330
+
13331
+ function filterErrors(errors) {
13332
+ if (errors === null || typeof errors !== "object") {
13333
+ return {};
13334
+ }
13335
+ return Object.keys(errors).reduce((acc, key) => {
13336
+ const errorValue = errors[key];
13337
+ if (errorValue !== void 0 && errorValue !== null && errorValue !== false) {
13338
+ acc[key] = errorValue;
13339
+ }
13340
+ return acc;
13341
+ }, {});
13342
+ }
13343
+
13344
+ function useFormErrors(initialErrors) {
13345
+ const [errorsState, setErrorsState] = useState(filterErrors(initialErrors));
13346
+ const errorsRef = useRef(errorsState);
13347
+ const setErrors = useCallback((errors) => {
13348
+ setErrorsState((current) => {
13349
+ const newErrors = filterErrors(typeof errors === "function" ? errors(current) : errors);
13350
+ errorsRef.current = newErrors;
13351
+ return newErrors;
13352
+ });
13353
+ }, []);
13354
+ const clearErrors = useCallback(() => setErrors({}), []);
13355
+ const clearFieldError = useCallback(
13356
+ (path) => {
13357
+ if (errorsRef.current[path] === void 0) {
13358
+ return;
13359
+ }
13360
+ setErrors((current) => {
13361
+ const errors = { ...current };
13362
+ delete errors[path];
13363
+ return errors;
13364
+ });
13365
+ },
13366
+ [errorsState]
13367
+ );
13368
+ const setFieldError = useCallback(
13369
+ (path, error) => {
13370
+ if (error == null || error === false) {
13371
+ clearFieldError(path);
13372
+ } else if (errorsRef.current[path] !== error) {
13373
+ setErrors((current) => ({ ...current, [path]: error }));
13374
+ }
13375
+ },
13376
+ [errorsState]
13377
+ );
13378
+ return {
13379
+ errorsState,
13380
+ setErrors,
13381
+ clearErrors,
13382
+ setFieldError,
13383
+ clearFieldError
13384
+ };
13385
+ }
13386
+
13387
+ function clearListState(field, state) {
13388
+ if (state === null || typeof state !== "object") {
13389
+ return {};
13390
+ }
13391
+ const clone = { ...state };
13392
+ Object.keys(state).forEach((errorKey) => {
13393
+ if (errorKey.includes(`${String(field)}.`)) {
13394
+ delete clone[errorKey];
13395
+ }
13396
+ });
13397
+ return clone;
13398
+ }
13399
+
13400
+ function getIndexFromKeyAfterPath(key, path) {
13401
+ const split = key.substring(path.length + 1).split(".")[0];
13402
+ return parseInt(split, 10);
13403
+ }
13404
+ function changeErrorIndices(path, index, errors, change) {
13405
+ if (index === void 0) {
13406
+ return errors;
13407
+ }
13408
+ const pathString = `${String(path)}`;
13409
+ let clearedErrors = errors;
13410
+ if (change === -1) {
13411
+ clearedErrors = clearListState(`${pathString}.${index}`, clearedErrors);
13412
+ }
13413
+ const cloned = { ...clearedErrors };
13414
+ const changedKeys = /* @__PURE__ */ new Set();
13415
+ Object.entries(clearedErrors).filter(([key]) => {
13416
+ if (!key.startsWith(`${pathString}.`)) {
13417
+ return false;
13418
+ }
13419
+ const currIndex = getIndexFromKeyAfterPath(key, pathString);
13420
+ if (Number.isNaN(currIndex)) {
13421
+ return false;
13422
+ }
13423
+ return currIndex >= index;
13424
+ }).forEach(([key, value]) => {
13425
+ const currIndex = getIndexFromKeyAfterPath(key, pathString);
13426
+ const newKey = key.replace(
13427
+ `${pathString}.${currIndex}`,
13428
+ `${pathString}.${currIndex + change}`
13429
+ );
13430
+ cloned[newKey] = value;
13431
+ changedKeys.add(newKey);
13432
+ if (!changedKeys.has(key)) {
13433
+ delete cloned[key];
13434
+ }
13435
+ });
13436
+ return cloned;
13437
+ }
13438
+
13439
+ function reorderErrors(path, { from, to }, errors) {
13440
+ const oldKeyStart = `${path}.${from}`;
13441
+ const newKeyStart = `${path}.${to}`;
13442
+ const clone = { ...errors };
13443
+ const processedKeys = /* @__PURE__ */ new Set();
13444
+ Object.keys(errors).forEach((key) => {
13445
+ if (processedKeys.has(key)) {
13446
+ return;
13447
+ }
13448
+ let oldKey;
13449
+ let newKey;
13450
+ if (key.startsWith(oldKeyStart)) {
13451
+ oldKey = key;
13452
+ newKey = key.replace(oldKeyStart, newKeyStart);
13453
+ } else if (key.startsWith(newKeyStart)) {
13454
+ oldKey = key.replace(newKeyStart, oldKeyStart);
13455
+ newKey = key;
13456
+ }
13457
+ if (oldKey && newKey) {
13458
+ const value1 = clone[oldKey];
13459
+ const value2 = clone[newKey];
13460
+ value2 === void 0 ? delete clone[oldKey] : clone[oldKey] = value2;
13461
+ value1 === void 0 ? delete clone[newKey] : clone[newKey] = value1;
13462
+ processedKeys.add(oldKey);
13463
+ processedKeys.add(newKey);
13464
+ }
13465
+ });
13466
+ return clone;
13467
+ }
13468
+
13469
+ function set(obj, key, val) {
13470
+ if (typeof val.value === 'object') val.value = klona(val.value);
13471
+ if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {
13472
+ Object.defineProperty(obj, key, val);
13473
+ } else obj[key] = val.value;
13474
+ }
13475
+
13476
+ function klona(x) {
13477
+ if (typeof x !== 'object') return x;
13478
+
13479
+ var i=0, k, list, tmp, str=Object.prototype.toString.call(x);
13480
+
13481
+ if (str === '[object Object]') {
13482
+ tmp = Object.create(x.__proto__ || null);
13483
+ } else if (str === '[object Array]') {
13484
+ tmp = Array(x.length);
13485
+ } else if (str === '[object Set]') {
13486
+ tmp = new Set;
13487
+ x.forEach(function (val) {
13488
+ tmp.add(klona(val));
13489
+ });
13490
+ } else if (str === '[object Map]') {
13491
+ tmp = new Map;
13492
+ x.forEach(function (val, key) {
13493
+ tmp.set(klona(key), klona(val));
13494
+ });
13495
+ } else if (str === '[object Date]') {
13496
+ tmp = new Date(+x);
13497
+ } else if (str === '[object RegExp]') {
13498
+ tmp = new RegExp(x.source, x.flags);
13499
+ } else if (str === '[object DataView]') {
13500
+ tmp = new x.constructor( klona(x.buffer) );
13501
+ } else if (str === '[object ArrayBuffer]') {
13502
+ tmp = x.slice(0);
13503
+ } else if (str.slice(-6) === 'Array]') {
13504
+ // ArrayBuffer.isView(x)
13505
+ // ~> `new` bcuz `Buffer.slice` => ref
13506
+ tmp = new x.constructor(x);
13507
+ }
13508
+
13509
+ if (tmp) {
13510
+ for (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {
13511
+ set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));
13512
+ }
13513
+
13514
+ for (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {
13515
+ if (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;
13516
+ set(tmp, k, Object.getOwnPropertyDescriptor(x, k));
13517
+ }
13518
+ }
13519
+
13520
+ return tmp || x;
13521
+ }
13522
+
13523
+ function getSplittedPath(path) {
13524
+ if (typeof path !== "string") {
13525
+ return [];
13526
+ }
13527
+ return path.split(".");
13528
+ }
13529
+
13530
+ function getPath(path, values) {
13531
+ const splittedPath = getSplittedPath(path);
13532
+ if (splittedPath.length === 0 || typeof values !== "object" || values === null) {
13533
+ return void 0;
13534
+ }
13535
+ let value = values[splittedPath[0]];
13536
+ for (let i = 1; i < splittedPath.length; i += 1) {
13537
+ if (value == null) {
13538
+ break;
13539
+ }
13540
+ value = value[splittedPath[i]];
13541
+ }
13542
+ return value;
13543
+ }
13544
+
13545
+ function setPath(path, value, values) {
13546
+ const splittedPath = getSplittedPath(path);
13547
+ if (splittedPath.length === 0) {
13548
+ return values;
13549
+ }
13550
+ const cloned = klona(values);
13551
+ if (splittedPath.length === 1) {
13552
+ cloned[splittedPath[0]] = value;
13553
+ return cloned;
13554
+ }
13555
+ let val = cloned[splittedPath[0]];
13556
+ for (let i = 1; i < splittedPath.length - 1; i += 1) {
13557
+ if (val === void 0) {
13558
+ return cloned;
13559
+ }
13560
+ val = val[splittedPath[i]];
13561
+ }
13562
+ val[splittedPath[splittedPath.length - 1]] = value;
13563
+ return cloned;
13564
+ }
13565
+
13566
+ function reorderPath(path, { from, to }, values) {
13567
+ const currentValue = getPath(path, values);
13568
+ if (!Array.isArray(currentValue)) {
13569
+ return values;
13570
+ }
13571
+ const cloned = [...currentValue];
13572
+ const item = currentValue[from];
13573
+ cloned.splice(from, 1);
13574
+ cloned.splice(to, 0, item);
13575
+ return setPath(path, cloned, values);
13576
+ }
13577
+
13578
+ function insertPath(path, value, index, values) {
13579
+ const currentValue = getPath(path, values);
13580
+ if (!Array.isArray(currentValue)) {
13581
+ return values;
13582
+ }
13583
+ const cloned = [...currentValue];
13584
+ cloned.splice(typeof index === "number" ? index : cloned.length, 0, value);
13585
+ return setPath(path, cloned, values);
13586
+ }
13587
+
13588
+ function removePath(path, index, values) {
13589
+ const currentValue = getPath(path, values);
13590
+ if (!Array.isArray(currentValue)) {
13591
+ return values;
13592
+ }
13593
+ return setPath(
13594
+ path,
13595
+ currentValue.filter((_, itemIndex) => itemIndex !== index),
13596
+ values
13597
+ );
13598
+ }
13599
+
13600
+ function replacePath(path, item, index, values) {
13601
+ const currentValue = getPath(path, values);
13602
+ if (!Array.isArray(currentValue)) {
13603
+ return values;
13604
+ }
13605
+ if (currentValue.length <= index) {
13606
+ return values;
13607
+ }
13608
+ const cloned = [...currentValue];
13609
+ cloned[index] = item;
13610
+ return setPath(path, cloned, values);
13611
+ }
13612
+
13613
+ function useFormList({
13614
+ $values,
13615
+ $errors,
13616
+ $status
13617
+ }) {
13618
+ const reorderListItem = useCallback((path, payload) => {
13619
+ $status.clearFieldDirty(path);
13620
+ $errors.setErrors((errs) => reorderErrors(path, payload, errs));
13621
+ $values.setValues({
13622
+ values: reorderPath(path, payload, $values.refValues.current),
13623
+ updateState: true
13624
+ });
13625
+ }, []);
13626
+ const removeListItem = useCallback((path, index) => {
13627
+ $status.clearFieldDirty(path);
13628
+ $errors.setErrors((errs) => changeErrorIndices(path, index, errs, -1));
13629
+ $values.setValues({
13630
+ values: removePath(path, index, $values.refValues.current),
13631
+ updateState: true
13632
+ });
13633
+ }, []);
13634
+ const insertListItem = useCallback((path, item, index) => {
13635
+ $status.clearFieldDirty(path);
13636
+ $errors.setErrors((errs) => changeErrorIndices(path, index, errs, 1));
13637
+ $values.setValues({
13638
+ values: insertPath(path, item, index, $values.refValues.current),
13639
+ updateState: true
13640
+ });
13641
+ }, []);
13642
+ const replaceListItem = useCallback((path, index, item) => {
13643
+ $status.clearFieldDirty(path);
13644
+ $values.setValues({
13645
+ values: replacePath(path, item, index, $values.refValues.current),
13646
+ updateState: true
13647
+ });
13648
+ }, []);
13649
+ return { reorderListItem, removeListItem, insertListItem, replaceListItem };
13650
+ }
13651
+
13652
+ var fastDeepEqual;
13653
+ var hasRequiredFastDeepEqual;
13654
+ function requireFastDeepEqual() {
13655
+ if (hasRequiredFastDeepEqual) return fastDeepEqual;
13656
+ hasRequiredFastDeepEqual = 1;
13657
+
13658
+ // do not edit .js files directly - edit src/index.jst
13659
+
13660
+ fastDeepEqual = function equal(a, b) {
13661
+ if (a === b) return true;
13662
+ if (a && b && typeof a == 'object' && typeof b == 'object') {
13663
+ if (a.constructor !== b.constructor) return false;
13664
+ var length, i, keys;
13665
+ if (Array.isArray(a)) {
13666
+ length = a.length;
13667
+ if (length != b.length) return false;
13668
+ for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;
13669
+ return true;
13670
+ }
13671
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
13672
+ if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
13673
+ if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
13674
+ keys = Object.keys(a);
13675
+ length = keys.length;
13676
+ if (length !== Object.keys(b).length) return false;
13677
+ for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
13678
+ for (i = length; i-- !== 0;) {
13679
+ var key = keys[i];
13680
+ if (!equal(a[key], b[key])) return false;
13681
+ }
13682
+ return true;
13683
+ }
13684
+
13685
+ // true if both NaN, false otherwise
13686
+ return a !== a && b !== b;
13687
+ };
13688
+ return fastDeepEqual;
13689
+ }
13690
+
13691
+ var fastDeepEqualExports = requireFastDeepEqual();
13692
+ var isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqualExports);
13693
+
13694
+ function getStatus(status, path) {
13695
+ const paths = Object.keys(status);
13696
+ if (typeof path === "string") {
13697
+ const nestedPaths = paths.filter((statusPath) => statusPath.startsWith(`${path}.`));
13698
+ return status[path] || nestedPaths.some((statusPath) => status[statusPath]) || false;
13699
+ }
13700
+ return paths.some((statusPath) => status[statusPath]);
13701
+ }
13702
+
13703
+ function useFormStatus({
13704
+ initialDirty,
13705
+ initialTouched,
13706
+ mode,
13707
+ $values
13708
+ }) {
13709
+ const [touchedState, setTouchedState] = useState(initialTouched);
13710
+ const [dirtyState, setDirtyState] = useState(initialDirty);
13711
+ const touchedRef = useRef(initialTouched);
13712
+ const dirtyRef = useRef(initialDirty);
13713
+ const setTouched = useCallback((values) => {
13714
+ const resolvedValues = typeof values === "function" ? values(touchedRef.current) : values;
13715
+ touchedRef.current = resolvedValues;
13716
+ if (mode === "controlled") {
13717
+ setTouchedState(resolvedValues);
13718
+ }
13719
+ }, []);
13720
+ const setDirty = useCallback(
13721
+ (values, forceUpdate = false) => {
13722
+ const resolvedValues = typeof values === "function" ? values(dirtyRef.current) : values;
13723
+ dirtyRef.current = resolvedValues;
13724
+ if (mode === "controlled" || forceUpdate) {
13725
+ setDirtyState(resolvedValues);
13726
+ }
13727
+ },
13728
+ []
13729
+ );
13730
+ const resetTouched = useCallback(() => setTouched({}), []);
13731
+ const resetDirty = useCallback((values) => {
13732
+ const newSnapshot = values ? { ...$values.refValues.current, ...values } : $values.refValues.current;
13733
+ $values.setValuesSnapshot(newSnapshot);
13734
+ setDirty({});
13735
+ }, []);
13736
+ const setFieldTouched = useCallback((path, touched) => {
13737
+ setTouched((currentTouched) => {
13738
+ if (getStatus(currentTouched, path) === touched) {
13739
+ return currentTouched;
13740
+ }
13741
+ return { ...currentTouched, [path]: touched };
13742
+ });
13743
+ }, []);
13744
+ const setFieldDirty = useCallback((path, dirty, forceUpdate) => {
13745
+ setDirty((currentDirty) => {
13746
+ if (getStatus(currentDirty, path) === dirty) {
13747
+ return currentDirty;
13748
+ }
13749
+ return { ...currentDirty, [path]: dirty };
13750
+ }, forceUpdate);
13751
+ }, []);
13752
+ const setCalculatedFieldDirty = useCallback((path, value) => {
13753
+ const currentDirty = getStatus(dirtyRef.current, path);
13754
+ const dirty = !isEqual(getPath(path, $values.getValuesSnapshot()), value);
13755
+ const clearedState = clearListState(path, dirtyRef.current);
13756
+ clearedState[path] = dirty;
13757
+ setDirty(clearedState, currentDirty !== dirty);
13758
+ }, []);
13759
+ const isTouched = useCallback(
13760
+ (path) => getStatus(touchedRef.current, path),
13761
+ []
13762
+ );
13763
+ const clearFieldDirty = useCallback(
13764
+ (path) => setDirty((current) => {
13765
+ if (typeof path !== "string") {
13766
+ return current;
13767
+ }
13768
+ const result = clearListState(path, current);
13769
+ delete result[path];
13770
+ if (isEqual(result, current)) {
13771
+ return current;
13772
+ }
13773
+ return result;
13774
+ }),
13775
+ []
13776
+ );
13777
+ const isDirty = useCallback((path) => {
13778
+ if (path) {
13779
+ const overriddenValue = getPath(path, dirtyRef.current);
13780
+ if (typeof overriddenValue === "boolean") {
13781
+ return overriddenValue;
13782
+ }
13783
+ const sliceOfValues = getPath(path, $values.refValues.current);
13784
+ const sliceOfInitialValues = getPath(path, $values.valuesSnapshot.current);
13785
+ return !isEqual(sliceOfValues, sliceOfInitialValues);
13786
+ }
13787
+ const isOverridden = Object.keys(dirtyRef.current).length > 0;
13788
+ if (isOverridden) {
13789
+ return getStatus(dirtyRef.current);
13790
+ }
13791
+ return !isEqual($values.refValues.current, $values.valuesSnapshot.current);
13792
+ }, []);
13793
+ const getDirty = useCallback(() => dirtyRef.current, []);
13794
+ const getTouched = useCallback(() => touchedRef.current, []);
13795
+ return {
13796
+ touchedState,
13797
+ dirtyState,
13798
+ touchedRef,
13799
+ dirtyRef,
13800
+ setTouched,
13801
+ setDirty,
13802
+ resetDirty,
13803
+ resetTouched,
13804
+ isTouched,
13805
+ setFieldTouched,
13806
+ setFieldDirty,
13807
+ setTouchedState,
13808
+ setDirtyState,
13809
+ clearFieldDirty,
13810
+ isDirty,
13811
+ getDirty,
13812
+ getTouched,
13813
+ setCalculatedFieldDirty
13814
+ };
13815
+ }
13816
+
13817
+ function useFormValues({
13818
+ initialValues,
13819
+ onValuesChange,
13820
+ mode
13821
+ }) {
13822
+ const initialized = useRef(false);
13823
+ const [stateValues, setStateValues] = useState(initialValues || {});
13824
+ const refValues = useRef(stateValues);
13825
+ const valuesSnapshot = useRef(stateValues);
13826
+ const setValues = useCallback(
13827
+ ({
13828
+ values,
13829
+ subscribers,
13830
+ updateState = true,
13831
+ mergeWithPreviousValues = true
13832
+ }) => {
13833
+ const previousValues = refValues.current;
13834
+ const resolvedValues = values instanceof Function ? values(refValues.current) : values;
13835
+ const updatedValues = mergeWithPreviousValues ? { ...previousValues, ...resolvedValues } : resolvedValues;
13836
+ refValues.current = updatedValues;
13837
+ if (updateState) {
13838
+ setStateValues(updatedValues);
13839
+ if (mode === "uncontrolled") {
13840
+ refValues.current = updatedValues;
13841
+ }
13842
+ }
13843
+ onValuesChange?.(updatedValues, previousValues);
13844
+ subscribers?.filter(Boolean).forEach((subscriber) => subscriber({ updatedValues, previousValues }));
13845
+ },
13846
+ [onValuesChange]
13847
+ );
13848
+ const setFieldValue = useCallback(
13849
+ (payload) => {
13850
+ const currentValue = getPath(payload.path, refValues.current);
13851
+ const updatedValue = payload.value instanceof Function ? payload.value(currentValue) : payload.value;
13852
+ if (currentValue !== updatedValue) {
13853
+ const previousValues = refValues.current;
13854
+ const updatedValues = setPath(payload.path, updatedValue, refValues.current);
13855
+ setValues({ values: updatedValues, updateState: payload.updateState });
13856
+ payload.subscribers?.filter(Boolean).forEach(
13857
+ (subscriber) => subscriber({ path: payload.path, updatedValues, previousValues })
13858
+ );
13859
+ }
13860
+ },
13861
+ [setValues]
13862
+ );
13863
+ const setValuesSnapshot = useCallback((payload) => {
13864
+ valuesSnapshot.current = payload;
13865
+ }, []);
13866
+ const initialize = useCallback(
13867
+ (values, onInitialize) => {
13868
+ if (!initialized.current) {
13869
+ initialized.current = true;
13870
+ setValues({ values, updateState: mode === "controlled" });
13871
+ setValuesSnapshot(values);
13872
+ onInitialize();
13873
+ }
13874
+ },
13875
+ [setValues]
13876
+ );
13877
+ const resetValues = useCallback(() => {
13878
+ setValues({
13879
+ values: valuesSnapshot.current,
13880
+ updateState: true,
13881
+ mergeWithPreviousValues: false
13882
+ });
13883
+ }, [setValues]);
13884
+ const getValues = useCallback(() => refValues.current, []);
13885
+ const getValuesSnapshot = useCallback(() => valuesSnapshot.current, []);
13886
+ const resetField = useCallback(
13887
+ (path, subscribers) => {
13888
+ const snapshotValue = getPath(path, valuesSnapshot.current);
13889
+ if (typeof snapshotValue === "undefined") {
13890
+ return;
13891
+ }
13892
+ setFieldValue({
13893
+ path,
13894
+ value: snapshotValue,
13895
+ updateState: mode === "controlled",
13896
+ subscribers
13897
+ });
13898
+ },
13899
+ [setFieldValue, mode]
13900
+ );
13901
+ return {
13902
+ initialized,
13903
+ stateValues,
13904
+ refValues,
13905
+ valuesSnapshot,
13906
+ setValues,
13907
+ setFieldValue,
13908
+ resetValues,
13909
+ setValuesSnapshot,
13910
+ initialize,
13911
+ getValues,
13912
+ getValuesSnapshot,
13913
+ resetField
13914
+ };
13915
+ }
13916
+
13917
+ function useFormWatch({
13918
+ $status,
13919
+ cascadeUpdates
13920
+ }) {
13921
+ const subscribers = useRef(
13922
+ {}
13923
+ );
13924
+ const watch = useCallback((path, callback) => {
13925
+ useEffect(() => {
13926
+ subscribers.current[path] = subscribers.current[path] || [];
13927
+ subscribers.current[path].push(callback);
13928
+ return () => {
13929
+ subscribers.current[path] = subscribers.current[path].filter((cb) => cb !== callback);
13930
+ };
13931
+ }, [callback]);
13932
+ }, []);
13933
+ const getFieldSubscribers = useCallback((path) => {
13934
+ const result = subscribers.current[path]?.map(
13935
+ (callback) => (input) => callback({
13936
+ previousValue: getPath(path, input.previousValues),
13937
+ value: getPath(path, input.updatedValues),
13938
+ touched: $status.isTouched(path),
13939
+ dirty: $status.isDirty(path)
13940
+ })
13941
+ ) ?? [];
13942
+ if (cascadeUpdates) {
13943
+ for (const subscriptionKey in subscribers.current) {
13944
+ if (subscriptionKey.startsWith(`${path}.`) || path.startsWith(`${subscriptionKey}.`)) {
13945
+ result.push(
13946
+ ...subscribers.current[subscriptionKey].map(
13947
+ (cb) => (input) => cb({
13948
+ previousValue: getPath(subscriptionKey, input.previousValues),
13949
+ value: getPath(subscriptionKey, input.updatedValues),
13950
+ touched: $status.isTouched(subscriptionKey),
13951
+ dirty: $status.isDirty(subscriptionKey)
13952
+ })
13953
+ )
13954
+ );
13955
+ }
13956
+ }
13957
+ }
13958
+ return result;
13959
+ }, []);
13960
+ return {
13961
+ subscribers,
13962
+ watch,
13963
+ getFieldSubscribers
13964
+ };
13965
+ }
13966
+
13967
+ function getDataPath(formName, fieldPath) {
13968
+ return formName ? `${formName}-${fieldPath.toString()}` : fieldPath.toString();
13969
+ }
13970
+
13971
+ const formRootRule = Symbol("root-rule");
13972
+ function getValidationResults(errors) {
13973
+ const filteredErrors = filterErrors(errors);
13974
+ return { hasErrors: Object.keys(filteredErrors).length > 0, errors: filteredErrors };
13975
+ }
13976
+ function validateRulesRecord(rules, values, path = "", errors = {}) {
13977
+ if (typeof rules !== "object" || rules === null) {
13978
+ return errors;
13979
+ }
13980
+ return Object.keys(rules).reduce((acc, ruleKey) => {
13981
+ const rule = rules[ruleKey];
13982
+ const rulePath = `${path === "" ? "" : `${path}.`}${ruleKey}`;
13983
+ const value = getPath(rulePath, values);
13984
+ let arrayValidation = false;
13985
+ if (typeof rule === "function") {
13986
+ acc[rulePath] = rule(value, values, rulePath);
13987
+ }
13988
+ if (typeof rule === "object" && Array.isArray(value)) {
13989
+ arrayValidation = true;
13990
+ value.forEach(
13991
+ (_item, index) => validateRulesRecord(rule, values, `${rulePath}.${index}`, acc)
13992
+ );
13993
+ if (formRootRule in rule) {
13994
+ acc[rulePath] = rule[formRootRule](value, values, rulePath);
13995
+ }
13996
+ }
13997
+ if (typeof rule === "object" && typeof value === "object" && value !== null) {
13998
+ if (!arrayValidation) {
13999
+ validateRulesRecord(rule, values, rulePath, acc);
14000
+ }
14001
+ if (formRootRule in rule) {
14002
+ acc[rulePath] = rule[formRootRule](value, values, rulePath);
14003
+ }
14004
+ }
14005
+ return acc;
14006
+ }, errors);
14007
+ }
14008
+ function validateValues(validate, values) {
14009
+ if (typeof validate === "function") {
14010
+ return getValidationResults(validate(values));
14011
+ }
14012
+ return getValidationResults(validateRulesRecord(validate, values));
14013
+ }
14014
+
14015
+ function validateFieldValue(path, rules, values) {
14016
+ if (typeof path !== "string") {
14017
+ return { hasError: false, error: null };
14018
+ }
14019
+ const results = validateValues(rules, values);
14020
+ const pathInError = Object.keys(results.errors).find(
14021
+ (errorKey) => path.split(".").every((pathPart, i) => pathPart === errorKey.split(".")[i])
14022
+ );
14023
+ return { hasError: !!pathInError, error: pathInError ? results.errors[pathInError] : null };
14024
+ }
14025
+
14026
+ const FORM_INDEX = "__MANTINE_FORM_INDEX__";
14027
+
14028
+ function shouldValidateOnChange(path, validateInputOnChange) {
14029
+ if (!validateInputOnChange) {
14030
+ return false;
14031
+ }
14032
+ if (typeof validateInputOnChange === "boolean") {
14033
+ return validateInputOnChange;
14034
+ }
14035
+ if (Array.isArray(validateInputOnChange)) {
14036
+ return validateInputOnChange.includes(path.replace(/[.][0-9]+/g, `.${FORM_INDEX}`));
14037
+ }
14038
+ return false;
14039
+ }
14040
+
14041
+ function useForm({
14042
+ name,
14043
+ mode = "controlled",
14044
+ initialValues,
14045
+ initialErrors = {},
14046
+ initialDirty = {},
14047
+ initialTouched = {},
14048
+ clearInputErrorOnChange = true,
14049
+ validateInputOnChange = false,
14050
+ validateInputOnBlur = false,
14051
+ onValuesChange,
14052
+ transformValues = (values) => values,
14053
+ enhanceGetInputProps,
14054
+ validate: rules,
14055
+ onSubmitPreventDefault = "always",
14056
+ touchTrigger = "change",
14057
+ cascadeUpdates = false
14058
+ } = {}) {
14059
+ const $errors = useFormErrors(initialErrors);
14060
+ const $values = useFormValues({ initialValues, onValuesChange, mode });
14061
+ const $status = useFormStatus({ initialDirty, initialTouched, $values, mode });
14062
+ const $list = useFormList({ $values, $errors, $status });
14063
+ const $watch = useFormWatch({ $status, cascadeUpdates });
14064
+ const [formKey, setFormKey] = useState(0);
14065
+ const [fieldKeys, setFieldKeys] = useState({});
14066
+ const [submitting, setSubmitting] = useState(false);
14067
+ const reset = useCallback(() => {
14068
+ $values.resetValues();
14069
+ $errors.clearErrors();
14070
+ $status.resetDirty();
14071
+ $status.resetTouched();
14072
+ mode === "uncontrolled" && setFormKey((key2) => key2 + 1);
14073
+ }, []);
14074
+ const handleValuesChanges = useCallback(
14075
+ (previousValues) => {
14076
+ clearInputErrorOnChange && $errors.clearErrors();
14077
+ mode === "uncontrolled" && setFormKey((key2) => key2 + 1);
14078
+ Object.keys($watch.subscribers.current).forEach((path) => {
14079
+ const value = getPath(path, $values.refValues.current);
14080
+ const previousValue = getPath(path, previousValues);
14081
+ if (value !== previousValue) {
14082
+ $watch.getFieldSubscribers(path).forEach((cb) => cb({ previousValues, updatedValues: $values.refValues.current }));
14083
+ }
14084
+ });
14085
+ },
14086
+ [clearInputErrorOnChange]
14087
+ );
14088
+ const initialize = useCallback(
14089
+ (values) => {
14090
+ const previousValues = $values.refValues.current;
14091
+ $values.initialize(values, () => mode === "uncontrolled" && setFormKey((key2) => key2 + 1));
14092
+ handleValuesChanges(previousValues);
14093
+ },
14094
+ [handleValuesChanges]
14095
+ );
14096
+ const setFieldValue = useCallback(
14097
+ (path, value, options) => {
14098
+ const shouldValidate = shouldValidateOnChange(path, validateInputOnChange);
14099
+ const resolvedValue = value instanceof Function ? value(getPath(path, $values.refValues.current)) : value;
14100
+ $status.setCalculatedFieldDirty(path, resolvedValue);
14101
+ touchTrigger === "change" && $status.setFieldTouched(path, true);
14102
+ !shouldValidate && clearInputErrorOnChange && $errors.clearFieldError(path);
14103
+ $values.setFieldValue({
14104
+ path,
14105
+ value,
14106
+ updateState: mode === "controlled",
14107
+ subscribers: [
14108
+ ...$watch.getFieldSubscribers(path),
14109
+ shouldValidate ? (payload) => {
14110
+ const validationResults = validateFieldValue(path, rules, payload.updatedValues);
14111
+ validationResults.hasError ? $errors.setFieldError(path, validationResults.error) : $errors.clearFieldError(path);
14112
+ } : null,
14113
+ options?.forceUpdate !== false && mode !== "controlled" ? () => setFieldKeys((keys) => ({
14114
+ ...keys,
14115
+ [path]: (keys[path] || 0) + 1
14116
+ })) : null
14117
+ ]
14118
+ });
14119
+ },
14120
+ [onValuesChange, rules]
14121
+ );
14122
+ const setValues = useCallback(
14123
+ (values) => {
14124
+ const previousValues = $values.refValues.current;
14125
+ $values.setValues({ values, updateState: mode === "controlled" });
14126
+ handleValuesChanges(previousValues);
14127
+ },
14128
+ [onValuesChange, handleValuesChanges]
14129
+ );
14130
+ const validate = useCallback(() => {
14131
+ const results = validateValues(rules, $values.refValues.current);
14132
+ $errors.setErrors(results.errors);
14133
+ return results;
14134
+ }, [rules]);
14135
+ const validateField = useCallback(
14136
+ (path) => {
14137
+ const results = validateFieldValue(path, rules, $values.refValues.current);
14138
+ results.hasError ? $errors.setFieldError(path, results.error) : $errors.clearFieldError(path);
14139
+ return results;
14140
+ },
14141
+ [rules]
14142
+ );
14143
+ const getInputProps = (path, { type = "input", withError = true, withFocus = true, ...otherOptions } = {}) => {
14144
+ const onChange = getInputOnChange(
14145
+ (value) => setFieldValue(path, value, { forceUpdate: false })
14146
+ );
14147
+ const payload = { onChange, "data-path": getDataPath(name, path) };
14148
+ if (withError) {
14149
+ payload.error = $errors.errorsState[path];
14150
+ }
14151
+ if (type === "checkbox") {
14152
+ payload[mode === "controlled" ? "checked" : "defaultChecked"] = getPath(
14153
+ path,
14154
+ $values.refValues.current
14155
+ );
14156
+ } else {
14157
+ payload[mode === "controlled" ? "value" : "defaultValue"] = getPath(
14158
+ path,
14159
+ $values.refValues.current
14160
+ );
14161
+ }
14162
+ if (withFocus) {
14163
+ payload.onFocus = () => $status.setFieldTouched(path, true);
14164
+ payload.onBlur = () => {
14165
+ if (shouldValidateOnChange(path, validateInputOnBlur)) {
14166
+ const validationResults = validateFieldValue(path, rules, $values.refValues.current);
14167
+ validationResults.hasError ? $errors.setFieldError(path, validationResults.error) : $errors.clearFieldError(path);
14168
+ }
14169
+ };
14170
+ }
14171
+ return Object.assign(
14172
+ payload,
14173
+ enhanceGetInputProps?.({
14174
+ inputProps: payload,
14175
+ field: path,
14176
+ options: { type, withError, withFocus, ...otherOptions },
14177
+ form
14178
+ })
14179
+ );
14180
+ };
14181
+ const onSubmit = (handleSubmit, handleValidationFailure) => (event) => {
14182
+ if (onSubmitPreventDefault === "always") {
14183
+ event?.preventDefault();
14184
+ }
14185
+ const results = validate();
14186
+ if (results.hasErrors) {
14187
+ if (onSubmitPreventDefault === "validation-failed") {
14188
+ event?.preventDefault();
14189
+ }
14190
+ handleValidationFailure?.(results.errors, $values.refValues.current, event);
14191
+ } else {
14192
+ const submitResult = handleSubmit?.(
14193
+ transformValues($values.refValues.current),
14194
+ event
14195
+ );
14196
+ if (submitResult instanceof Promise) {
14197
+ setSubmitting(true);
14198
+ submitResult.finally(() => setSubmitting(false));
14199
+ }
14200
+ }
14201
+ };
14202
+ const getTransformedValues = (input) => transformValues(input || $values.refValues.current);
14203
+ const onReset = useCallback((event) => {
14204
+ event.preventDefault();
14205
+ reset();
14206
+ }, []);
14207
+ const isValid = useCallback(
14208
+ (path) => path ? !validateFieldValue(path, rules, $values.refValues.current).hasError : !validateValues(rules, $values.refValues.current).hasErrors,
14209
+ [rules]
14210
+ );
14211
+ const key = (path) => `${formKey}-${String(path)}-${fieldKeys[String(path)] || 0}`;
14212
+ const getInputNode = useCallback(
14213
+ (path) => document.querySelector(`[data-path="${getDataPath(name, path)}"]`),
14214
+ []
14215
+ );
14216
+ const resetField = useCallback(
14217
+ (path) => {
14218
+ $values.resetField(path, [
14219
+ mode !== "controlled" ? () => setFieldKeys((keys) => ({
14220
+ ...keys,
14221
+ [path]: (keys[path] || 0) + 1
14222
+ })) : null
14223
+ ]);
14224
+ },
14225
+ [$values.resetField, mode, setFieldKeys]
14226
+ );
14227
+ const form = {
14228
+ watch: $watch.watch,
14229
+ initialized: $values.initialized.current,
14230
+ values: mode === "uncontrolled" ? $values.refValues.current : $values.stateValues,
14231
+ getValues: $values.getValues,
14232
+ getInitialValues: $values.getValuesSnapshot,
14233
+ setInitialValues: $values.setValuesSnapshot,
14234
+ resetField,
14235
+ initialize,
14236
+ setValues,
14237
+ setFieldValue,
14238
+ submitting,
14239
+ setSubmitting,
14240
+ errors: $errors.errorsState,
14241
+ setErrors: $errors.setErrors,
14242
+ setFieldError: $errors.setFieldError,
14243
+ clearFieldError: $errors.clearFieldError,
14244
+ clearErrors: $errors.clearErrors,
14245
+ resetDirty: $status.resetDirty,
14246
+ setTouched: $status.setTouched,
14247
+ setDirty: $status.setDirty,
14248
+ isTouched: $status.isTouched,
14249
+ resetTouched: $status.resetTouched,
14250
+ isDirty: $status.isDirty,
14251
+ getTouched: $status.getTouched,
14252
+ getDirty: $status.getDirty,
14253
+ reorderListItem: $list.reorderListItem,
14254
+ insertListItem: $list.insertListItem,
14255
+ removeListItem: $list.removeListItem,
14256
+ replaceListItem: $list.replaceListItem,
14257
+ reset,
14258
+ validate,
14259
+ validateField,
14260
+ getInputProps,
14261
+ onSubmit,
14262
+ onReset,
14263
+ isValid,
14264
+ getTransformedValues,
14265
+ key,
14266
+ getInputNode
14267
+ };
14268
+ useFormActions(name, form);
14269
+ return form;
14270
+ }
14271
+
14272
+ const _excluded$1 = ["fields", "isEditable", "layout", "hasSubmit", "hasReset"];
14273
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14274
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13229
14275
  const SimpleForm = _ref => {
13230
14276
  let {
13231
14277
  fields,
13232
14278
  isEditable = true,
13233
- layout = []
13234
- } = _ref;
13235
- _objectWithoutProperties(_ref, _excluded$1);
14279
+ layout = [],
14280
+ hasSubmit,
14281
+ hasReset
14282
+ } = _ref,
14283
+ rest = _objectWithoutProperties(_ref, _excluded$1);
13236
14284
  const components = {
13237
14285
  Textarea: Textarea,
13238
14286
  TextInput: TextInput,
13239
14287
  PasswordInput: PasswordInput,
13240
14288
  NumberInput: NumberInput
13241
14289
  };
14290
+ const form = useForm({
14291
+ mode: "uncontrolled",
14292
+ initialValues: () => {
14293
+ const localInitialValues = {};
14294
+ fields.forEach((field, index) => {
14295
+ if (typeof field === "string") {
14296
+ const sanitizedField = santize(field);
14297
+ localInitialValues[sanitizedField.name] = "";
14298
+ }
14299
+ if (typeof field === "object" && Object.keys(components).includes(field.component)) {
14300
+ var _field$field;
14301
+ const sanitizedField = santize((_field$field = field.field) !== null && _field$field !== void 0 ? _field$field : "");
14302
+ localInitialValues[sanitizedField.name] = "";
14303
+ }
14304
+ });
14305
+ return _objectSpread$1(_objectSpread$1({}, localInitialValues), rest.initialValues);
14306
+ },
14307
+ validate: rest.formValidate
14308
+ });
13242
14309
  const indexDiff = fields.length - layout.length;
13243
14310
  layout.push(...Array(indexDiff).fill(12));
13244
14311
  const inputProps = {
@@ -13249,31 +14316,50 @@ const SimpleForm = _ref => {
13249
14316
  c: "adiba.5"
13250
14317
  },
13251
14318
  readOnly: !isEditable,
13252
- variant: !isEditable ? "unstyled" : "default"
14319
+ variant: !isEditable ? "unstyled" : "default",
14320
+ required: true
13253
14321
  };
13254
- return /*#__PURE__*/React.createElement(Grid, null, fields.map((field, index) => {
14322
+ return /*#__PURE__*/React.createElement("form", {
14323
+ onSubmit: form.onSubmit(values => {
14324
+ var _rest$onSubmit;
14325
+ return hasSubmit ? (_rest$onSubmit = rest.onSubmit) === null || _rest$onSubmit === void 0 ? void 0 : _rest$onSubmit.call(rest, values) : void 0;
14326
+ }),
14327
+ onReset: form.reset,
14328
+ style: {
14329
+ height: "100%"
14330
+ }
14331
+ }, /*#__PURE__*/React.createElement(Stack, {
14332
+ h: "100%"
14333
+ }, /*#__PURE__*/React.createElement(Grid, null, fields.map((field, index) => {
13255
14334
  if (typeof field === "string") {
14335
+ const sanitizedField = santize(field);
13256
14336
  return /*#__PURE__*/React.createElement(Grid.Col, {
13257
14337
  key: index,
13258
14338
  span: layout[index]
13259
- }, /*#__PURE__*/React.createElement(TextInput, _extends({}, inputProps, santize(field))));
14339
+ }, /*#__PURE__*/React.createElement(TextInput, _extends({}, inputProps, sanitizedField, form.getInputProps(sanitizedField.name))));
13260
14340
  }
13261
14341
  if (typeof field === "function") {
13262
14342
  return /*#__PURE__*/React.createElement(Grid.Col, {
13263
14343
  key: index,
13264
14344
  span: layout[index]
13265
- }, field());
14345
+ }, field(form.getInputProps));
13266
14346
  }
13267
- if (["Textarea", "TextInput", "PasswordInput", "NumberInput"].includes(field.component)) {
13268
- var _field$field;
14347
+ if (Object.keys(components).includes(field.component)) {
14348
+ var _field$field2;
13269
14349
  const Component = components[field.component];
14350
+ const sanitizedField = santize((_field$field2 = field.field) !== null && _field$field2 !== void 0 ? _field$field2 : "");
13270
14351
  return /*#__PURE__*/React.createElement(Grid.Col, {
13271
14352
  key: index,
13272
14353
  span: layout[index]
13273
- }, /*#__PURE__*/React.createElement(Component, _extends({}, field.field, inputProps, santize((_field$field = field.field) !== null && _field$field !== void 0 ? _field$field : ""))));
14354
+ }, /*#__PURE__*/React.createElement(Component, _extends({}, field.field, inputProps, sanitizedField, form.getInputProps(sanitizedField.name))));
13274
14355
  }
13275
14356
  return null;
13276
- }));
14357
+ })), /*#__PURE__*/React.createElement(Space, {
14358
+ flex: 1
14359
+ }), /*#__PURE__*/React.createElement(FormButtons, {
14360
+ hasSubmit,
14361
+ hasReset
14362
+ })));
13277
14363
  };
13278
14364
  const santize = field => {
13279
14365
  var _ref2, _field$label, _field$placeholder, _field$name, _field$name$split$joi, _field$name2;
@@ -13291,6 +14377,130 @@ const santize = field => {
13291
14377
  name: (_field$name$split$joi = (_field$name2 = field.name) === null || _field$name2 === void 0 ? void 0 : _field$name2.split(" ").join("_").toLowerCase()) !== null && _field$name$split$joi !== void 0 ? _field$name$split$joi : ""
13292
14378
  };
13293
14379
  };
14380
+ const FormButtons = _ref3 => {
14381
+ let {
14382
+ hasSubmit = false,
14383
+ hasReset = false
14384
+ } = _ref3;
14385
+ return /*#__PURE__*/React.createElement(Group, {
14386
+ justify: "flex-end",
14387
+ grow: true,
14388
+ gap: 10,
14389
+ w: "100%",
14390
+ display: hasSubmit || hasReset ? "flex" : "none"
14391
+ }, /*#__PURE__*/React.createElement(Button, {
14392
+ leftSection: /*#__PURE__*/React.createElement(Icons, {
14393
+ name: "CloseCircle",
14394
+ size: 16
14395
+ }),
14396
+ variant: "filled",
14397
+ color: "red",
14398
+ size: "lg",
14399
+ radius: "xl",
14400
+ miw: "25%",
14401
+ type: "reset",
14402
+ style: {
14403
+ display: hasReset ? "block" : "none"
14404
+ },
14405
+ flex: 1
14406
+ }, /*#__PURE__*/React.createElement(Text, {
14407
+ fw: 400,
14408
+ fz: "sm",
14409
+ c: "white"
14410
+ }, "Cancel")), /*#__PURE__*/React.createElement(Button, {
14411
+ leftSection: /*#__PURE__*/React.createElement(Icons, {
14412
+ name: "TickCircle",
14413
+ size: 16
14414
+ }),
14415
+ variant: "filled",
14416
+ color: "adiba.5",
14417
+ size: "lg",
14418
+ radius: "xl",
14419
+ miw: "25%",
14420
+ type: "submit",
14421
+ style: {
14422
+ display: hasSubmit ? "block" : "none"
14423
+ },
14424
+ flex: 1
14425
+ }, /*#__PURE__*/React.createElement(Text, {
14426
+ fw: 300,
14427
+ fz: "sm",
14428
+ c: "white"
14429
+ }, "Save")));
14430
+ };
14431
+
14432
+ const MaskedTilePanel = _ref => {
14433
+ let {
14434
+ label,
14435
+ value,
14436
+ icon,
14437
+ onMasked = () => true
14438
+ } = _ref;
14439
+ const [masked, toggle] = useToggle();
14440
+ const name = masked ? "Eye" : "EyeSlash";
14441
+ return /*#__PURE__*/React.createElement(Card, {
14442
+ p: "md",
14443
+ bg: "gray.0",
14444
+ style: {
14445
+ borderRadius: "10px"
14446
+ }
14447
+ }, /*#__PURE__*/React.createElement(Group, {
14448
+ justify: "space-between"
14449
+ }, /*#__PURE__*/React.createElement(Stack, {
14450
+ gap: 0,
14451
+ p: 0
14452
+ }, /*#__PURE__*/React.createElement(Text, {
14453
+ fz: "sm",
14454
+ fw: 300,
14455
+ p: 0,
14456
+ c: "gray.7"
14457
+ }, label), /*#__PURE__*/React.createElement(TextInput, {
14458
+ type: masked ? "password" : "text",
14459
+ fw: 300,
14460
+ p: 0,
14461
+ c: "adiba",
14462
+ value: value,
14463
+ variant: "unstyled",
14464
+ readOnly: true
14465
+ })), /*#__PURE__*/React.createElement(ActionIcon, {
14466
+ variant: "transparent",
14467
+ onClick: () => onMasked() ? toggle() : void 0
14468
+ }, icon && /*#__PURE__*/React.createElement(Icons, {
14469
+ size: 24,
14470
+ color: "gray",
14471
+ name: name
14472
+ }))));
14473
+ };
14474
+ const TilePanel = _ref2 => {
14475
+ let {
14476
+ label,
14477
+ value
14478
+ } = _ref2;
14479
+ return /*#__PURE__*/React.createElement(Card, {
14480
+ p: "md",
14481
+ bg: "gray.0",
14482
+ style: {
14483
+ borderRadius: "10px"
14484
+ }
14485
+ }, /*#__PURE__*/React.createElement(Group, {
14486
+ justify: "space-between"
14487
+ }, /*#__PURE__*/React.createElement(Stack, {
14488
+ gap: 0,
14489
+ p: 0
14490
+ }, /*#__PURE__*/React.createElement(Text, {
14491
+ fz: "sm",
14492
+ fw: 300,
14493
+ p: 0,
14494
+ c: "gray.7"
14495
+ }, label), /*#__PURE__*/React.createElement(TextInput, {
14496
+ fw: 300,
14497
+ p: 0,
14498
+ c: "adiba",
14499
+ value: value,
14500
+ variant: "unstyled",
14501
+ readOnly: true
14502
+ }))));
14503
+ };
13294
14504
 
13295
14505
  var ConfirmAnimation = "data:null;base64,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";
13296
14506
 
@@ -13464,4 +14674,4 @@ const useManagedModals = () => {
13464
14674
  };
13465
14675
  };
13466
14676
 
13467
- export { ApplicationMenu, ApplicationPanel, AvatarLabelPanel, ConnectionPanel, DonutChart, Drawer, DynamicLogo, DynamicShigaLogo, EqualizerColumn, ErrorModal, File, Icons, InfoModal, LabelPanel, PageTitle, PaymentMethod, PaymentMethodAdd, SearchPanel, SideMenu, SimpleArea, SimpleColumn, SimpleForm, SimpleModal, SimplePanel, SimpleTable, SimpleText, StackedColumn, SubscriptionPlans, SuccessModal, TitleWithIndex, TitledPanel, TwoFactorModal, UserMenu, theme, useManagedModals, useModal };
14677
+ export { ApplicationMenu, ApplicationPanel, AvatarLabelPanel, ConnectionPanel, DonutChart, Drawer, DynamicLogo, DynamicShigaLogo, EqualizerColumn, ErrorModal, File, Icons, InfoModal, LabelPanel, MaskedTilePanel, PageTitle, PaymentMethod, PaymentMethodAdd, SearchPanel, SideMenu, SimpleArea, SimpleColumn, SimpleForm, SimpleModal, SimplePanel, SimpleTable, SimpleText, StackedColumn, SubscriptionPlans, SuccessModal, TilePanel, TitleWithIndex, TitledPanel, TwoFactorModal, UserMenu, theme, useManagedModals, useModal };