@adiba-banking-cloud/backoffice 0.2.1 → 0.2.4

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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-CWyl7EKZ.js');
3
+ var index = require('./index-Clg3JrJr.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
@@ -12172,7 +12172,7 @@ const initChart$1 = props => {
12172
12172
  }
12173
12173
 
12174
12174
  // Fallback: use dynamic import (async, but will work in Vite/Storybook)
12175
- Promise.resolve().then(function () { return require('./heatmap-D-qDlLOI.js'); }).then(function (n) { return n.heatmap; }).then(heatmapModule => {
12175
+ Promise.resolve().then(function () { return require('./heatmap-BqY-ayOh.js'); }).then(function (n) { return n.heatmap; }).then(heatmapModule => {
12176
12176
  const moduleFn = typeof heatmapModule === "function" ? heatmapModule : heatmapModule?.default || heatmapModule;
12177
12177
  if (typeof moduleFn === "function") {
12178
12178
  moduleFn(Highcharts);
@@ -12973,39 +12973,78 @@ const SearchPanel = _ref3 => {
12973
12973
  searchState,
12974
12974
  filterFn,
12975
12975
  searchFn,
12976
+ onPillRemove,
12976
12977
  children,
12977
12978
  ...rest
12978
12979
  } = _ref3;
12979
- const [search, setSearch] = searchState || React.useState("");
12980
+ const [searchPills, setSearchPills] = searchState || React.useState([]);
12981
+ const [inputValue, setInputValue] = React.useState("");
12980
12982
  const form$1 = form.useForm({
12981
12983
  initialValues: {
12982
- search: search
12984
+ search: ""
12983
12985
  }
12984
12986
  });
12987
+ const handleAddPill = value => {
12988
+ const trimmedValue = value.trim();
12989
+ if (trimmedValue && !searchPills.includes(trimmedValue)) {
12990
+ const newPills = [...searchPills, trimmedValue];
12991
+ setSearchPills(newPills);
12992
+ setInputValue("");
12993
+ form$1.setFieldValue("search", "");
12994
+ }
12995
+ };
12996
+ const handleRemovePill = value => {
12997
+ const newPills = searchPills.filter(pill => pill !== value);
12998
+ setSearchPills(newPills);
12999
+ if (onPillRemove) {
13000
+ onPillRemove(value);
13001
+ }
13002
+ };
13003
+ const handleSubmit = values => {
13004
+ if (inputValue.trim()) {
13005
+ handleAddPill(inputValue);
13006
+ }
13007
+ if (searchFn) {
13008
+ searchFn({
13009
+ search: searchPills
13010
+ });
13011
+ }
13012
+ };
13013
+ const handleKeyDown = event => {
13014
+ if (event.key === "Enter" && inputValue.trim()) {
13015
+ event.preventDefault();
13016
+ handleAddPill(inputValue);
13017
+ } else if (event.key === "Backspace" && inputValue.length === 0 && searchPills.length > 0) {
13018
+ event.preventDefault();
13019
+ handleRemovePill(searchPills[searchPills.length - 1]);
13020
+ }
13021
+ };
12985
13022
  return /*#__PURE__*/React.createElement(SimplePanel, rest, /*#__PURE__*/React.createElement(core.Stack, null, /*#__PURE__*/React.createElement("form", {
12986
- onSubmit: form$1.onSubmit(values => {
12987
- searchFn ? searchFn(values) : void 0;
12988
- })
13023
+ onSubmit: form$1.onSubmit(handleSubmit)
12989
13024
  }, /*#__PURE__*/React.createElement(core.Group, {
12990
13025
  gap: "xs"
12991
- }, /*#__PURE__*/React.createElement(core.TextInput, {
12992
- fw: 300,
12993
- name: "search",
13026
+ }, /*#__PURE__*/React.createElement(core.PillsInput, {
12994
13027
  size: "md",
12995
13028
  radius: "md",
12996
13029
  flex: 1,
12997
- value: search,
12998
- placeholder: placeholder,
12999
13030
  leftSection: /*#__PURE__*/React.createElement(Icons, searchIcon),
13000
13031
  rightSection: typeof filterFn == "function" ? /*#__PURE__*/React.createElement(core.ActionIcon, {
13001
13032
  variant: "transparent",
13002
13033
  onClick: filterFn
13003
- }, /*#__PURE__*/React.createElement(Icons, filterIcon)) : /*#__PURE__*/React.createElement(React.Fragment, null),
13034
+ }, /*#__PURE__*/React.createElement(Icons, filterIcon)) : undefined
13035
+ }, /*#__PURE__*/React.createElement(core.Pill.Group, null, searchPills.map((pill, index) => /*#__PURE__*/React.createElement(core.Pill, {
13036
+ key: `${pill}-${index}`,
13037
+ withRemoveButton: true,
13038
+ onRemove: () => handleRemovePill(pill)
13039
+ }, pill)), /*#__PURE__*/React.createElement(core.PillsInput.Field, {
13040
+ placeholder: placeholder,
13041
+ value: inputValue,
13004
13042
  onChange: e => {
13005
- setSearch(e.currentTarget.value);
13043
+ setInputValue(e.currentTarget.value);
13006
13044
  form$1.setFieldValue("search", e.currentTarget.value);
13007
- }
13008
- }), /*#__PURE__*/React.createElement(core.Button, {
13045
+ },
13046
+ onKeyDown: handleKeyDown
13047
+ }))), /*#__PURE__*/React.createElement(core.Button, {
13009
13048
  variant: "light",
13010
13049
  size: "md",
13011
13050
  fw: 300,
@@ -13735,19 +13774,32 @@ const SimpleTable = _ref => {
13735
13774
  actionFn,
13736
13775
  isStriped
13737
13776
  } = _ref;
13738
- columns.sort((a, b) => a.order - b.order);
13739
- const indexColumn = {
13740
- order: -99,
13741
- id: "index",
13742
- label: "Id"
13743
- };
13744
- const actionColumn = {
13745
- order: 99999,
13746
- id: "action",
13747
- label: ""
13748
- };
13749
- withIndex ? columns.unshift(indexColumn) : null;
13750
- withAction && actionFn ? columns.push(actionColumn) : null;
13777
+ // Memoize the final columns array to avoid mutations on every render
13778
+ const finalColumns = React.useMemo(() => {
13779
+ // Create a new array to avoid mutating the original
13780
+ const sortedColumns = [...columns].sort((a, b) => a.order - b.order);
13781
+ const indexColumn = {
13782
+ order: -99,
13783
+ id: "index",
13784
+ label: "Id"
13785
+ };
13786
+ const actionColumn = {
13787
+ order: 99999,
13788
+ id: "action",
13789
+ label: ""
13790
+ };
13791
+
13792
+ // Build final array without mutations
13793
+ const result = [];
13794
+ if (withIndex) {
13795
+ result.push(indexColumn);
13796
+ }
13797
+ result.push(...sortedColumns);
13798
+ if (withAction && actionFn) {
13799
+ result.push(actionColumn);
13800
+ }
13801
+ return result;
13802
+ }, [columns, withIndex, withAction, actionFn]);
13751
13803
  const isStripedProps = {
13752
13804
  striped: "even",
13753
13805
  highlightOnHover: true,
@@ -13756,7 +13808,7 @@ const SimpleTable = _ref => {
13756
13808
  };
13757
13809
  return /*#__PURE__*/React.createElement(core.Table, isStriped && isStripedProps, /*#__PURE__*/React.createElement(core.Table.Thead, null, /*#__PURE__*/React.createElement(core.Table.Tr, {
13758
13810
  bg: isStriped ? "gray.1" : "transparent"
13759
- }, columns.map((column, index) => {
13811
+ }, finalColumns.map((column, index) => {
13760
13812
  return /*#__PURE__*/React.createElement(SimpleHeader, _extends({
13761
13813
  key: `column-${index}`
13762
13814
  }, column));
@@ -13764,7 +13816,7 @@ const SimpleTable = _ref => {
13764
13816
  return /*#__PURE__*/React.createElement(SimpleBody, {
13765
13817
  key: index,
13766
13818
  row,
13767
- columns,
13819
+ columns: finalColumns,
13768
13820
  withAction,
13769
13821
  withIndex,
13770
13822
  actionFn,
@@ -14735,6 +14787,39 @@ function withProviders(Component) {
14735
14787
  return WrappedComponent;
14736
14788
  }
14737
14789
 
14790
+ /**
14791
+ * String utility functions for text manipulation
14792
+ */
14793
+ const StringHelpers = {
14794
+ /**
14795
+ * Extracts text between curly braces from a string
14796
+ * @param input - Input string that may contain text in braces
14797
+ * @returns The text between braces, or empty string if not found
14798
+ * @example
14799
+ * extractBetweenBraces("Hello {world}") // returns "world"
14800
+ * extractBetweenBraces("No braces") // returns ""
14801
+ */
14802
+ extractBetweenBraces: input => {
14803
+ const regex = /^[^{]*\{([^}]*)\}[^{]*$/;
14804
+ const match = input.match(regex);
14805
+ return match ? match[1] : "";
14806
+ },
14807
+ /**
14808
+ * Removes text within curly braces from a string
14809
+ * @param input - Input string that may contain text in braces
14810
+ * @returns The string with braces and their content removed, trimmed
14811
+ * @example
14812
+ * extractOutsideBraces("Hello {world}") // returns "Hello"
14813
+ * extractOutsideBraces("No braces") // returns "No braces"
14814
+ */
14815
+ extractOutsideBraces: input => {
14816
+ const regex = /\{[^}]*\}/g;
14817
+ return input.replace(regex, "").trim();
14818
+ }
14819
+ };
14820
+ const extractBetweenBraces = StringHelpers.extractBetweenBraces;
14821
+ const extractOutsideBraces = StringHelpers.extractOutsideBraces;
14822
+
14738
14823
  exports.ApplicationMenu = ApplicationMenu;
14739
14824
  exports.ApplicationPanel = ApplicationPanel;
14740
14825
  exports.AvatarLabelPanel = AvatarLabelPanel;
@@ -14781,6 +14866,8 @@ exports.TwoFactorModal = TwoFactorModal;
14781
14866
  exports.UserMenu = UserMenu;
14782
14867
  exports.apiClient = apiClient;
14783
14868
  exports.createApiClient = createApiClient;
14869
+ exports.extractBetweenBraces = extractBetweenBraces;
14870
+ exports.extractOutsideBraces = extractOutsideBraces;
14784
14871
  exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
14785
14872
  exports.theme = theme;
14786
14873
  exports.useManagedModals = useManagedModals;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-CWyl7EKZ.js');
3
+ var index = require('./index-Clg3JrJr.js');
4
4
  require('@mantine/modals');
5
5
  require('react');
6
6
  require('@mantine/core');
@@ -74,6 +74,8 @@ exports.TwoFactorModal = index.TwoFactorModal;
74
74
  exports.UserMenu = index.UserMenu;
75
75
  exports.apiClient = index.apiClient;
76
76
  exports.createApiClient = index.createApiClient;
77
+ exports.extractBetweenBraces = index.extractBetweenBraces;
78
+ exports.extractOutsideBraces = index.extractOutsideBraces;
77
79
  exports.theme = index.theme;
78
80
  exports.useManagedModals = index.useManagedModals;
79
81
  exports.useModal = index.useModal;
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs } from './index-D7Cza3cb.js';
1
+ import { g as getDefaultExportFromCjs } from './index-rnjdI3M1.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  import { modals } from '@mantine/modals';
2
2
  import * as React from 'react';
3
3
  import React__default, { useRef, useMemo, useEffect, useState } from 'react';
4
- 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, NumberInput, PasswordInput, Textarea, Grid, MantineProvider } from '@mantine/core';
4
+ import { Center, Image, Space, Popover, Button, Stack, Divider, Group, Text, Menu, Avatar, Badge, NavLink, Card, PillsInput, ActionIcon, Pill, Box, Title, SegmentedControl, Breadcrumbs, Anchor, ColorSwatch, AspectRatio, Overlay, rem, SimpleGrid, Indicator, Table, createTheme, PinInput, Drawer as Drawer$1, ScrollArea, NumberInput, PasswordInput, TextInput, Textarea, Grid, MantineProvider } from '@mantine/core';
5
5
  import { DotLottieReact } from '@lottiefiles/dotlottie-react';
6
6
  import _extends from '@babel/runtime/helpers/extends';
7
7
  import HighchartsReact from 'highcharts-react-official';
@@ -12151,7 +12151,7 @@ const initChart$1 = props => {
12151
12151
  }
12152
12152
 
12153
12153
  // Fallback: use dynamic import (async, but will work in Vite/Storybook)
12154
- import('./heatmap-CtdCSRhG.js').then(function (n) { return n.h; }).then(heatmapModule => {
12154
+ import('./heatmap-D3ePhBTg.js').then(function (n) { return n.h; }).then(heatmapModule => {
12155
12155
  const moduleFn = typeof heatmapModule === "function" ? heatmapModule : heatmapModule?.default || heatmapModule;
12156
12156
  if (typeof moduleFn === "function") {
12157
12157
  moduleFn(Highcharts);
@@ -12952,39 +12952,78 @@ const SearchPanel = _ref3 => {
12952
12952
  searchState,
12953
12953
  filterFn,
12954
12954
  searchFn,
12955
+ onPillRemove,
12955
12956
  children,
12956
12957
  ...rest
12957
12958
  } = _ref3;
12958
- const [search, setSearch] = searchState || useState("");
12959
+ const [searchPills, setSearchPills] = searchState || useState([]);
12960
+ const [inputValue, setInputValue] = useState("");
12959
12961
  const form = useForm({
12960
12962
  initialValues: {
12961
- search: search
12963
+ search: ""
12962
12964
  }
12963
12965
  });
12966
+ const handleAddPill = value => {
12967
+ const trimmedValue = value.trim();
12968
+ if (trimmedValue && !searchPills.includes(trimmedValue)) {
12969
+ const newPills = [...searchPills, trimmedValue];
12970
+ setSearchPills(newPills);
12971
+ setInputValue("");
12972
+ form.setFieldValue("search", "");
12973
+ }
12974
+ };
12975
+ const handleRemovePill = value => {
12976
+ const newPills = searchPills.filter(pill => pill !== value);
12977
+ setSearchPills(newPills);
12978
+ if (onPillRemove) {
12979
+ onPillRemove(value);
12980
+ }
12981
+ };
12982
+ const handleSubmit = values => {
12983
+ if (inputValue.trim()) {
12984
+ handleAddPill(inputValue);
12985
+ }
12986
+ if (searchFn) {
12987
+ searchFn({
12988
+ search: searchPills
12989
+ });
12990
+ }
12991
+ };
12992
+ const handleKeyDown = event => {
12993
+ if (event.key === "Enter" && inputValue.trim()) {
12994
+ event.preventDefault();
12995
+ handleAddPill(inputValue);
12996
+ } else if (event.key === "Backspace" && inputValue.length === 0 && searchPills.length > 0) {
12997
+ event.preventDefault();
12998
+ handleRemovePill(searchPills[searchPills.length - 1]);
12999
+ }
13000
+ };
12964
13001
  return /*#__PURE__*/React__default.createElement(SimplePanel, rest, /*#__PURE__*/React__default.createElement(Stack, null, /*#__PURE__*/React__default.createElement("form", {
12965
- onSubmit: form.onSubmit(values => {
12966
- searchFn ? searchFn(values) : void 0;
12967
- })
13002
+ onSubmit: form.onSubmit(handleSubmit)
12968
13003
  }, /*#__PURE__*/React__default.createElement(Group, {
12969
13004
  gap: "xs"
12970
- }, /*#__PURE__*/React__default.createElement(TextInput, {
12971
- fw: 300,
12972
- name: "search",
13005
+ }, /*#__PURE__*/React__default.createElement(PillsInput, {
12973
13006
  size: "md",
12974
13007
  radius: "md",
12975
13008
  flex: 1,
12976
- value: search,
12977
- placeholder: placeholder,
12978
13009
  leftSection: /*#__PURE__*/React__default.createElement(Icons, searchIcon),
12979
13010
  rightSection: typeof filterFn == "function" ? /*#__PURE__*/React__default.createElement(ActionIcon, {
12980
13011
  variant: "transparent",
12981
13012
  onClick: filterFn
12982
- }, /*#__PURE__*/React__default.createElement(Icons, filterIcon)) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null),
13013
+ }, /*#__PURE__*/React__default.createElement(Icons, filterIcon)) : undefined
13014
+ }, /*#__PURE__*/React__default.createElement(Pill.Group, null, searchPills.map((pill, index) => /*#__PURE__*/React__default.createElement(Pill, {
13015
+ key: `${pill}-${index}`,
13016
+ withRemoveButton: true,
13017
+ onRemove: () => handleRemovePill(pill)
13018
+ }, pill)), /*#__PURE__*/React__default.createElement(PillsInput.Field, {
13019
+ placeholder: placeholder,
13020
+ value: inputValue,
12983
13021
  onChange: e => {
12984
- setSearch(e.currentTarget.value);
13022
+ setInputValue(e.currentTarget.value);
12985
13023
  form.setFieldValue("search", e.currentTarget.value);
12986
- }
12987
- }), /*#__PURE__*/React__default.createElement(Button, {
13024
+ },
13025
+ onKeyDown: handleKeyDown
13026
+ }))), /*#__PURE__*/React__default.createElement(Button, {
12988
13027
  variant: "light",
12989
13028
  size: "md",
12990
13029
  fw: 300,
@@ -13714,19 +13753,32 @@ const SimpleTable = _ref => {
13714
13753
  actionFn,
13715
13754
  isStriped
13716
13755
  } = _ref;
13717
- columns.sort((a, b) => a.order - b.order);
13718
- const indexColumn = {
13719
- order: -99,
13720
- id: "index",
13721
- label: "Id"
13722
- };
13723
- const actionColumn = {
13724
- order: 99999,
13725
- id: "action",
13726
- label: ""
13727
- };
13728
- withIndex ? columns.unshift(indexColumn) : null;
13729
- withAction && actionFn ? columns.push(actionColumn) : null;
13756
+ // Memoize the final columns array to avoid mutations on every render
13757
+ const finalColumns = useMemo(() => {
13758
+ // Create a new array to avoid mutating the original
13759
+ const sortedColumns = [...columns].sort((a, b) => a.order - b.order);
13760
+ const indexColumn = {
13761
+ order: -99,
13762
+ id: "index",
13763
+ label: "Id"
13764
+ };
13765
+ const actionColumn = {
13766
+ order: 99999,
13767
+ id: "action",
13768
+ label: ""
13769
+ };
13770
+
13771
+ // Build final array without mutations
13772
+ const result = [];
13773
+ if (withIndex) {
13774
+ result.push(indexColumn);
13775
+ }
13776
+ result.push(...sortedColumns);
13777
+ if (withAction && actionFn) {
13778
+ result.push(actionColumn);
13779
+ }
13780
+ return result;
13781
+ }, [columns, withIndex, withAction, actionFn]);
13730
13782
  const isStripedProps = {
13731
13783
  striped: "even",
13732
13784
  highlightOnHover: true,
@@ -13735,7 +13787,7 @@ const SimpleTable = _ref => {
13735
13787
  };
13736
13788
  return /*#__PURE__*/React__default.createElement(Table, isStriped && isStripedProps, /*#__PURE__*/React__default.createElement(Table.Thead, null, /*#__PURE__*/React__default.createElement(Table.Tr, {
13737
13789
  bg: isStriped ? "gray.1" : "transparent"
13738
- }, columns.map((column, index) => {
13790
+ }, finalColumns.map((column, index) => {
13739
13791
  return /*#__PURE__*/React__default.createElement(SimpleHeader, _extends({
13740
13792
  key: `column-${index}`
13741
13793
  }, column));
@@ -13743,7 +13795,7 @@ const SimpleTable = _ref => {
13743
13795
  return /*#__PURE__*/React__default.createElement(SimpleBody, {
13744
13796
  key: index,
13745
13797
  row,
13746
- columns,
13798
+ columns: finalColumns,
13747
13799
  withAction,
13748
13800
  withIndex,
13749
13801
  actionFn,
@@ -14714,4 +14766,37 @@ function withProviders(Component) {
14714
14766
  return WrappedComponent;
14715
14767
  }
14716
14768
 
14717
- export { ApplicationMenu as A, BasicHeatmap as B, CalendarHeatmap as C, DonutChart as D, EqualizerColumn as E, File as F, SimpleForm as G, MaskedTilePanel as H, InterpolatedHeatmap as I, TilePanel as J, useModal as K, LabelPanel as L, MultiAxisArea as M, useManagedModals as N, useUrlFilters as O, PageTitle as P, DEFAULT_PAGE_SIZE as Q, MAX_PAGE_SIZE as R, SimpleColumn as S, TitledPanel as T, UserMenu as U, DEFAULT_API_TIMEOUT as V, createApiClient as W, apiClient as X, ModalContentWrapper as Y, withProviders as Z, StackedColumn as a, SimpleArea as b, StackedArea as c, Icons as d, DynamicLogo as e, DynamicShigaLogo as f, getDefaultExportFromCjs as g, SideMenu as h, SimplePanel as i, SearchPanel as j, AvatarLabelPanel as k, SimpleText as l, TitleWithIndex as m, ConnectionPanel as n, ApplicationPanel as o, SubscriptionPlans as p, PaymentMethod as q, PaymentMethodAdd as r, SimpleTable as s, theme as t, ErrorModal as u, InfoModal as v, SimpleModal as w, SuccessModal as x, TwoFactorModal as y, Drawer as z };
14769
+ /**
14770
+ * String utility functions for text manipulation
14771
+ */
14772
+ const StringHelpers = {
14773
+ /**
14774
+ * Extracts text between curly braces from a string
14775
+ * @param input - Input string that may contain text in braces
14776
+ * @returns The text between braces, or empty string if not found
14777
+ * @example
14778
+ * extractBetweenBraces("Hello {world}") // returns "world"
14779
+ * extractBetweenBraces("No braces") // returns ""
14780
+ */
14781
+ extractBetweenBraces: input => {
14782
+ const regex = /^[^{]*\{([^}]*)\}[^{]*$/;
14783
+ const match = input.match(regex);
14784
+ return match ? match[1] : "";
14785
+ },
14786
+ /**
14787
+ * Removes text within curly braces from a string
14788
+ * @param input - Input string that may contain text in braces
14789
+ * @returns The string with braces and their content removed, trimmed
14790
+ * @example
14791
+ * extractOutsideBraces("Hello {world}") // returns "Hello"
14792
+ * extractOutsideBraces("No braces") // returns "No braces"
14793
+ */
14794
+ extractOutsideBraces: input => {
14795
+ const regex = /\{[^}]*\}/g;
14796
+ return input.replace(regex, "").trim();
14797
+ }
14798
+ };
14799
+ const extractBetweenBraces = StringHelpers.extractBetweenBraces;
14800
+ const extractOutsideBraces = StringHelpers.extractOutsideBraces;
14801
+
14802
+ export { extractOutsideBraces as $, ApplicationMenu as A, BasicHeatmap as B, CalendarHeatmap as C, DonutChart as D, EqualizerColumn as E, File as F, SimpleForm as G, MaskedTilePanel as H, InterpolatedHeatmap as I, TilePanel as J, useModal as K, LabelPanel as L, MultiAxisArea as M, useManagedModals as N, useUrlFilters as O, PageTitle as P, DEFAULT_PAGE_SIZE as Q, MAX_PAGE_SIZE as R, SimpleColumn as S, TitledPanel as T, UserMenu as U, DEFAULT_API_TIMEOUT as V, createApiClient as W, apiClient as X, ModalContentWrapper as Y, withProviders as Z, extractBetweenBraces as _, StackedColumn as a, SimpleArea as b, StackedArea as c, Icons as d, DynamicLogo as e, DynamicShigaLogo as f, getDefaultExportFromCjs as g, SideMenu as h, SimplePanel as i, SearchPanel as j, AvatarLabelPanel as k, SimpleText as l, TitleWithIndex as m, ConnectionPanel as n, ApplicationPanel as o, SubscriptionPlans as p, PaymentMethod as q, PaymentMethodAdd as r, SimpleTable as s, theme as t, ErrorModal as u, InfoModal as v, SimpleModal as w, SuccessModal as x, TwoFactorModal as y, Drawer as z };
@@ -1,4 +1,4 @@
1
- export { A as ApplicationMenu, o as ApplicationPanel, k as AvatarLabelPanel, B as BasicHeatmap, C as CalendarHeatmap, n as ConnectionPanel, V as DEFAULT_API_TIMEOUT, Q as DEFAULT_PAGE_SIZE, D as DonutChart, z as Drawer, e as DynamicLogo, f as DynamicShigaLogo, E as EqualizerColumn, u as ErrorModal, F as File, d as Icons, v as InfoModal, I as InterpolatedHeatmap, L as LabelPanel, R as MAX_PAGE_SIZE, H as MaskedTilePanel, Y as ModalContentWrapper, M as MultiAxisArea, P as PageTitle, q as PaymentMethod, r as PaymentMethodAdd, j as SearchPanel, h as SideMenu, b as SimpleArea, S as SimpleColumn, G as SimpleForm, w as SimpleModal, i as SimplePanel, s as SimpleTable, l as SimpleText, c as StackedArea, a as StackedColumn, p as SubscriptionPlans, x as SuccessModal, J as TilePanel, m as TitleWithIndex, T as TitledPanel, y as TwoFactorModal, U as UserMenu, X as apiClient, W as createApiClient, t as theme, N as useManagedModals, K as useModal, O as useUrlFilters, Z as withProviders } from './index-D7Cza3cb.js';
1
+ export { A as ApplicationMenu, o as ApplicationPanel, k as AvatarLabelPanel, B as BasicHeatmap, C as CalendarHeatmap, n as ConnectionPanel, V as DEFAULT_API_TIMEOUT, Q as DEFAULT_PAGE_SIZE, D as DonutChart, z as Drawer, e as DynamicLogo, f as DynamicShigaLogo, E as EqualizerColumn, u as ErrorModal, F as File, d as Icons, v as InfoModal, I as InterpolatedHeatmap, L as LabelPanel, R as MAX_PAGE_SIZE, H as MaskedTilePanel, Y as ModalContentWrapper, M as MultiAxisArea, P as PageTitle, q as PaymentMethod, r as PaymentMethodAdd, j as SearchPanel, h as SideMenu, b as SimpleArea, S as SimpleColumn, G as SimpleForm, w as SimpleModal, i as SimplePanel, s as SimpleTable, l as SimpleText, c as StackedArea, a as StackedColumn, p as SubscriptionPlans, x as SuccessModal, J as TilePanel, m as TitleWithIndex, T as TitledPanel, y as TwoFactorModal, U as UserMenu, X as apiClient, W as createApiClient, _ as extractBetweenBraces, $ as extractOutsideBraces, t as theme, N as useManagedModals, K as useModal, O as useUrlFilters, Z as withProviders } from './index-rnjdI3M1.js';
2
2
  import '@mantine/modals';
3
3
  import 'react';
4
4
  import '@mantine/core';
@@ -20,7 +20,8 @@ export interface SearchPanelProps extends PanelProps {
20
20
  searchIcon?: IconsProps;
21
21
  filterIcon?: IconsProps;
22
22
  searchText?: string;
23
- searchState?: [string, (value: string) => void];
23
+ searchState?: [string[], (value: string[]) => void];
24
24
  searchFn?: (value: Record<string, any>) => void;
25
25
  filterFn?: () => void;
26
+ onPillRemove?: (value: string) => void;
26
27
  }
@@ -6,3 +6,4 @@ export * from "./shared/api";
6
6
  export * from "./shared/components";
7
7
  export * from "./shared/types";
8
8
  export * from "./shared/hocs";
9
+ export * from "./shared/utils";
@@ -0,0 +1 @@
1
+ export * from "./stringHelpers";
@@ -0,0 +1,2 @@
1
+ export declare const extractBetweenBraces: (input: string) => string;
2
+ export declare const extractOutsideBraces: (input: string) => string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@adiba-banking-cloud/backoffice",
3
3
  "author": "TUROG Technologies",
4
- "version": "0.2.1",
4
+ "version": "0.2.4",
5
5
  "description": "An ADIBA component library for backoffice and dashboard applications",
6
6
  "license": "ISC",
7
7
  "main": "build/index.cjs.js",