@adiba-banking-cloud/backoffice 0.2.46 → 0.2.48

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-gNtaTjX5.js');
3
+ var index = require('./index-BG5W0VWJ.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
@@ -12169,7 +12169,7 @@ function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t
12169
12169
  }
12170
12170
 
12171
12171
  // Fallback: use dynamic import (async, but will work in Vite/Storybook)
12172
- Promise.resolve().then(function () { return require('./heatmap-Bmxx46pe.js'); }).then(function (n) { return n.heatmap; }).then(heatmapModule => {
12172
+ Promise.resolve().then(function () { return require('./heatmap-Bbht91RM.js'); }).then(function (n) { return n.heatmap; }).then(heatmapModule => {
12173
12173
  const moduleFn = typeof heatmapModule === "function" ? heatmapModule : (heatmapModule === null || heatmapModule === void 0 ? void 0 : heatmapModule.default) || heatmapModule;
12174
12174
  if (typeof moduleFn === "function") {
12175
12175
  moduleFn(Highcharts);
@@ -13009,6 +13009,29 @@ const SideMenu = _ref => {
13009
13009
  }));
13010
13010
  };
13011
13011
 
13012
+ const BackofficeContext = /*#__PURE__*/React.createContext(undefined);
13013
+ const defaultT = key => key;
13014
+ const BackofficeProvider = _ref => {
13015
+ let {
13016
+ children,
13017
+ config
13018
+ } = _ref;
13019
+ const value = {
13020
+ t: (config === null || config === void 0 ? void 0 : config.t) || defaultT,
13021
+ locale: (config === null || config === void 0 ? void 0 : config.locale) || "en"
13022
+ };
13023
+ return /*#__PURE__*/React.createElement(BackofficeContext.Provider, {
13024
+ value: value
13025
+ }, children);
13026
+ };
13027
+ const useBackoffice = () => {
13028
+ const context = React.useContext(BackofficeContext);
13029
+ return context || {
13030
+ t: defaultT,
13031
+ locale: "en"
13032
+ };
13033
+ };
13034
+
13012
13035
  const _excluded$d = ["withPadding", "withRadius", "autoHeight", "children"],
13013
13036
  _excluded2$1 = ["withPadding", "title", "children"],
13014
13037
  _excluded3 = ["placeholder", "searchIcon", "filterIcon", "searchText", "searchState", "searchInputValue", "filterFn", "searchFn", "onPillRemove", "children"];
@@ -13066,14 +13089,14 @@ const TitledPanel = _ref2 => {
13066
13089
  };
13067
13090
  const SearchPanel = _ref3 => {
13068
13091
  let {
13069
- placeholder = "Search by name or reference",
13092
+ placeholder,
13070
13093
  searchIcon = {
13071
13094
  name: "SearchNormal1"
13072
13095
  },
13073
13096
  filterIcon = {
13074
13097
  name: "Setting5"
13075
13098
  },
13076
- searchText = "Search",
13099
+ searchText,
13077
13100
  searchState,
13078
13101
  searchInputValue,
13079
13102
  filterFn,
@@ -13082,6 +13105,11 @@ const SearchPanel = _ref3 => {
13082
13105
  children
13083
13106
  } = _ref3,
13084
13107
  rest = _objectWithoutProperties(_ref3, _excluded3);
13108
+ const {
13109
+ t
13110
+ } = useBackoffice();
13111
+ const finalPlaceholder = placeholder || t("lib_search_placeholder");
13112
+ const finalSearchText = searchText || t("lib_search_button");
13085
13113
  const [searchPills] = searchState || React.useState([]);
13086
13114
  const [inputValue, setInputValue] = React.useState(searchInputValue || "");
13087
13115
  const form$1 = form.useForm({
@@ -13142,7 +13170,7 @@ const SearchPanel = _ref3 => {
13142
13170
  withRemoveButton: true,
13143
13171
  onRemove: () => handleRemovePill(pill)
13144
13172
  }, pill)), /*#__PURE__*/React.createElement(core.PillsInput.Field, {
13145
- placeholder: placeholder,
13173
+ placeholder: finalPlaceholder,
13146
13174
  value: inputValue,
13147
13175
  onChange: e => {
13148
13176
  setInputValue(e.currentTarget.value);
@@ -13158,7 +13186,7 @@ const SearchPanel = _ref3 => {
13158
13186
  maw: 150,
13159
13187
  type: "submit",
13160
13188
  leftSection: /*#__PURE__*/React.createElement(Icons, searchIcon)
13161
- }, searchText))), children));
13189
+ }, finalSearchText))), children));
13162
13190
  };
13163
13191
 
13164
13192
  const LabelPanelItem = _ref => {
@@ -13701,10 +13729,15 @@ const SubscriptionPlans = _ref => {
13701
13729
  altColor = "altiba.3",
13702
13730
  durationDays,
13703
13731
  planPrice,
13704
- buttonLabel = "Pay Early",
13705
- altButtonLabel = "Pay Now",
13732
+ buttonLabel,
13733
+ altButtonLabel,
13706
13734
  onClick
13707
13735
  } = _ref;
13736
+ const {
13737
+ t
13738
+ } = useBackoffice();
13739
+ const finalButtonLabel = buttonLabel || (durationDays > 0 ? t("lib_pay_early") : t("lib_pay_now"));
13740
+ const finalAltButtonLabel = altButtonLabel || t("lib_pay_now");
13708
13741
  const price = planPrice.split("/");
13709
13742
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(core.Indicator, {
13710
13743
  size: 20,
@@ -13732,20 +13765,20 @@ const SubscriptionPlans = _ref => {
13732
13765
  fz: "xs",
13733
13766
  c: altColor,
13734
13767
  fw: 300
13735
- }, durationDays, " ", isActive ? " days remaining" : " days")), /*#__PURE__*/React.createElement(core.Text, {
13768
+ }, durationDays, " ", isActive ? t("lib_days_remaining") : t("lib_days"))), /*#__PURE__*/React.createElement(core.Text, {
13736
13769
  fz: "sm",
13737
13770
  fw: 500
13738
13771
  }, price[0], /*#__PURE__*/React.createElement(core.Text, {
13739
13772
  fz: "sm",
13740
13773
  component: "span",
13741
13774
  c: "dimmed"
13742
- }, price[1] ? "/".concat(price[1]) : " /month"))), /*#__PURE__*/React.createElement(core.Button, {
13775
+ }, price[1] ? "/".concat(price[1]) : " /".concat(t("lib_month_short"))))), /*#__PURE__*/React.createElement(core.Button, {
13743
13776
  w: 100,
13744
13777
  size: "xs",
13745
13778
  fw: 500,
13746
13779
  onClick: onClick,
13747
13780
  variant: isActive ? "outline" : "filled"
13748
- }, durationDays > 0 ? buttonLabel : altButtonLabel)))));
13781
+ }, durationDays > 0 ? finalButtonLabel : finalAltButtonLabel)))));
13749
13782
  };
13750
13783
 
13751
13784
  const InfoGrid = _ref => {
@@ -13794,6 +13827,9 @@ const UserProfileCard = _ref => {
13794
13827
  score,
13795
13828
  scoreColor = "green"
13796
13829
  } = _ref;
13830
+ const {
13831
+ t
13832
+ } = useBackoffice();
13797
13833
  return /*#__PURE__*/React.createElement(core.Card, {
13798
13834
  p: "0",
13799
13835
  radius: "md",
@@ -13848,7 +13884,7 @@ const UserProfileCard = _ref => {
13848
13884
  size: "12px",
13849
13885
  c: "#5B6767",
13850
13886
  fw: 300
13851
- }, "ID: ", userId))));
13887
+ }, t("lib_user_id_label"), ": ", userId))));
13852
13888
  };
13853
13889
 
13854
13890
  const VARIANT_CONFIG = {
@@ -14291,7 +14327,7 @@ const DetailCard = _ref => {
14291
14327
  }, /*#__PURE__*/React.createElement(core.Text, {
14292
14328
  fw: 300,
14293
14329
  size: "sm",
14294
- c: "#0F193D"
14330
+ c: "adiba.6"
14295
14331
  }, item.label), /*#__PURE__*/React.createElement(core.Text, {
14296
14332
  fw: 300,
14297
14333
  size: "12px",
@@ -14502,6 +14538,10 @@ const SimpleTable = _ref => {
14502
14538
  isStriped,
14503
14539
  stickyAction
14504
14540
  } = _ref;
14541
+ const {
14542
+ t
14543
+ } = useBackoffice();
14544
+
14505
14545
  // Memoize the final columns array to avoid mutations on every render
14506
14546
  const finalColumns = React.useMemo(() => {
14507
14547
  // Create a new array to avoid mutating the original
@@ -14509,7 +14549,7 @@ const SimpleTable = _ref => {
14509
14549
  const indexColumn = {
14510
14550
  order: -99,
14511
14551
  id: "index",
14512
- label: "Id"
14552
+ label: t("lib_table_id")
14513
14553
  };
14514
14554
  const actionColumn = {
14515
14555
  order: 99999,
@@ -14797,10 +14837,10 @@ const ChatListCard = _ref => {
14797
14837
  }, isGroup && senderName ? /*#__PURE__*/React.createElement(core.Text, {
14798
14838
  span: true,
14799
14839
  fw: 300,
14800
- c: "#0F193D"
14840
+ c: "adiba.6"
14801
14841
  }, senderName, ":", " ") : null, message), unreadCount > 0 && /*#__PURE__*/React.createElement(core.Box, {
14842
+ bg: "adiba.6",
14802
14843
  style: {
14803
- backgroundColor: "#0F193D",
14804
14844
  color: "white",
14805
14845
  borderRadius: "50%",
14806
14846
  minWidth: 18,
@@ -15147,7 +15187,7 @@ const Drawer = _ref => {
15147
15187
  }, page))));
15148
15188
  };
15149
15189
 
15150
- const _excluded$2 = ["fields", "isEditable", "layout", "hasSubmit", "hasReset", "buttonSize", "submitButtonIcon", "cancelButtonIcon", "submitButtonLabel", "cancelButtonLabel"];
15190
+ const _excluded$2 = ["fields", "isEditable", "layout", "hasSubmit", "hasReset", "buttonSize", "submitButtonIcon", "cancelButtonIcon"];
15151
15191
  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; }
15152
15192
  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; }
15153
15193
  const SimpleForm = _ref => {
@@ -15159,17 +15199,36 @@ const SimpleForm = _ref => {
15159
15199
  hasReset,
15160
15200
  buttonSize = "lg",
15161
15201
  submitButtonIcon = true,
15162
- cancelButtonIcon = true,
15163
- submitButtonLabel = "Save",
15164
- cancelButtonLabel = "Cancel"
15202
+ cancelButtonIcon = true
15165
15203
  } = _ref,
15166
15204
  rest = _objectWithoutProperties(_ref, _excluded$2);
15205
+ const {
15206
+ t
15207
+ } = useBackoffice();
15208
+ const submitButtonLabel = rest.submitButtonLabel || t("lib_save");
15209
+ const cancelButtonLabel = rest.cancelButtonLabel || t("lib_cancel");
15167
15210
  const components = {
15168
15211
  Textarea: core.Textarea,
15169
15212
  TextInput: core.TextInput,
15170
15213
  PasswordInput: core.PasswordInput,
15171
15214
  NumberInput: core.NumberInput
15172
15215
  };
15216
+ const santize = field => {
15217
+ var _ref2, _field$label, _field$placeholder, _field$name, _field$name2, _field$name$split$joi, _field$name3;
15218
+ if (typeof field === "string") {
15219
+ const name = field === null || field === void 0 ? void 0 : field.split(" ").join("_").toLowerCase();
15220
+ return {
15221
+ label: field,
15222
+ placeholder: t("lib_placeholder_enter") !== "lib_placeholder_enter" ? "".concat(t("lib_placeholder_enter"), " ").concat(field.toLowerCase()) : "Please enter ".concat(field.toLowerCase()),
15223
+ name
15224
+ };
15225
+ }
15226
+ return {
15227
+ label: "".concat((_ref2 = (_field$label = field === null || field === void 0 ? void 0 : field.label) !== null && _field$label !== void 0 ? _field$label : field === null || field === void 0 ? void 0 : field.name) !== null && _ref2 !== void 0 ? _ref2 : ""),
15228
+ placeholder: (_field$placeholder = field.placeholder) !== null && _field$placeholder !== void 0 ? _field$placeholder : t("lib_placeholder_enter") !== "lib_placeholder_enter" ? "".concat(t("lib_placeholder_enter"), " ").concat((_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name.toLowerCase()) : "Please enter ".concat((_field$name2 = field.name) === null || _field$name2 === void 0 ? void 0 : _field$name2.toLowerCase()),
15229
+ name: (_field$name$split$joi = (_field$name3 = field.name) === null || _field$name3 === void 0 ? void 0 : _field$name3.split(" ").join("_").toLowerCase()) !== null && _field$name$split$joi !== void 0 ? _field$name$split$joi : ""
15230
+ };
15231
+ };
15173
15232
  const form$1 = form.useForm({
15174
15233
  mode: "uncontrolled",
15175
15234
  initialValues: () => {
@@ -15253,22 +15312,6 @@ const SimpleForm = _ref => {
15253
15312
  cancelButtonIcon
15254
15313
  })));
15255
15314
  };
15256
- const santize = field => {
15257
- var _ref2, _field$label, _field$placeholder, _field$name, _field$name$split$joi, _field$name2;
15258
- if (typeof field === "string") {
15259
- const name = field === null || field === void 0 ? void 0 : field.split(" ").join("_").toLowerCase();
15260
- return {
15261
- label: field,
15262
- placeholder: "Please enter ".concat(field.toLowerCase()),
15263
- name
15264
- };
15265
- }
15266
- return {
15267
- label: "".concat((_ref2 = (_field$label = field === null || field === void 0 ? void 0 : field.label) !== null && _field$label !== void 0 ? _field$label : field === null || field === void 0 ? void 0 : field.name) !== null && _ref2 !== void 0 ? _ref2 : ""),
15268
- placeholder: (_field$placeholder = field.placeholder) !== null && _field$placeholder !== void 0 ? _field$placeholder : "Please enter ".concat((_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name.toLowerCase()),
15269
- 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 : ""
15270
- };
15271
- };
15272
15315
  const FormButtons = _ref3 => {
15273
15316
  let {
15274
15317
  hasSubmit = false,
@@ -15472,18 +15515,18 @@ const MerchantCard = _ref => {
15472
15515
  }, /*#__PURE__*/React.createElement(core.Text, {
15473
15516
  fw: 400,
15474
15517
  size: "lg",
15475
- c: "dark.9"
15518
+ c: "adiba.9"
15476
15519
  }, name), /*#__PURE__*/React.createElement(core.Badge, {
15477
15520
  variant: "light",
15478
15521
  color: "gray",
15479
15522
  radius: "sm",
15480
15523
  size: "lg",
15524
+ c: "adiba.6",
15481
15525
  styles: {
15482
15526
  root: {
15483
15527
  textTransform: "none",
15484
15528
  fontWeight: 400,
15485
15529
  backgroundColor: "#F2F4F4",
15486
- color: "#0F193D",
15487
15530
  height: "auto",
15488
15531
  padding: "5px 7px"
15489
15532
  }
@@ -15513,7 +15556,7 @@ const MerchantCard = _ref => {
15513
15556
  size: 24,
15514
15557
  color: "#1C1C1C"
15515
15558
  })) : /*#__PURE__*/React.createElement(core.ActionIcon, {
15516
- bg: "#0F193D",
15559
+ bg: "adiba.6",
15517
15560
  w: 32,
15518
15561
  h: 32,
15519
15562
  radius: "100%",
@@ -16140,6 +16183,7 @@ function withProviders(Component) {
16140
16183
  locale: "en",
16141
16184
  timezone: "UTC"
16142
16185
  },
16186
+ backofficeConfig = {},
16143
16187
  cssVariablesSelector
16144
16188
  } = options;
16145
16189
  const WrappedComponent = props => {
@@ -16152,7 +16196,9 @@ function withProviders(Component) {
16152
16196
  cssVariablesSelector: cssVariablesSelector
16153
16197
  }, /*#__PURE__*/React__namespace.createElement(dates.DatesProvider, {
16154
16198
  settings: datesSettings
16155
- }, /*#__PURE__*/React__namespace.createElement(Component, props), showDevtools && /*#__PURE__*/React__namespace.createElement(reactQueryDevtools.ReactQueryDevtools, null))));
16199
+ }, /*#__PURE__*/React__namespace.createElement(BackofficeProvider, {
16200
+ config: backofficeConfig
16201
+ }, /*#__PURE__*/React__namespace.createElement(Component, props), showDevtools && /*#__PURE__*/React__namespace.createElement(reactQueryDevtools.ReactQueryDevtools, null)))));
16156
16202
  };
16157
16203
  WrappedComponent.displayName = "withProviders(".concat(Component.displayName || Component.name || "Component", ")");
16158
16204
  return WrappedComponent;
@@ -16194,6 +16240,7 @@ const extractOutsideBraces = StringHelpers.extractOutsideBraces;
16194
16240
  exports.ApplicationMenu = ApplicationMenu;
16195
16241
  exports.ApplicationPanel = ApplicationPanel;
16196
16242
  exports.AvatarLabelPanel = AvatarLabelPanel;
16243
+ exports.BackofficeProvider = BackofficeProvider;
16197
16244
  exports.BasicHeatmap = BasicHeatmap;
16198
16245
  exports.CalendarHeatmap = CalendarHeatmap;
16199
16246
  exports.ChatBubble = ChatBubble;
@@ -16253,6 +16300,7 @@ exports.extractBetweenBraces = extractBetweenBraces;
16253
16300
  exports.extractOutsideBraces = extractOutsideBraces;
16254
16301
  exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
16255
16302
  exports.theme = theme;
16303
+ exports.useBackoffice = useBackoffice;
16256
16304
  exports.useManagedModals = useManagedModals;
16257
16305
  exports.useModal = useModal;
16258
16306
  exports.useUrlFilters = useUrlFilters;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-gNtaTjX5.js');
3
+ var index = require('./index-BG5W0VWJ.js');
4
4
  require('@babel/runtime/helpers/objectWithoutProperties');
5
5
  require('@babel/runtime/helpers/defineProperty');
6
6
  require('@mantine/modals');
@@ -33,6 +33,7 @@ require('@tanstack/react-query-devtools');
33
33
  exports.ApplicationMenu = index.ApplicationMenu;
34
34
  exports.ApplicationPanel = index.ApplicationPanel;
35
35
  exports.AvatarLabelPanel = index.AvatarLabelPanel;
36
+ exports.BackofficeProvider = index.BackofficeProvider;
36
37
  exports.BasicHeatmap = index.BasicHeatmap;
37
38
  exports.CalendarHeatmap = index.CalendarHeatmap;
38
39
  exports.ChatBubble = index.ChatBubble;
@@ -91,6 +92,7 @@ exports.createApiClient = index.createApiClient;
91
92
  exports.extractBetweenBraces = index.extractBetweenBraces;
92
93
  exports.extractOutsideBraces = index.extractOutsideBraces;
93
94
  exports.theme = index.theme;
95
+ exports.useBackoffice = index.useBackoffice;
94
96
  exports.useManagedModals = index.useManagedModals;
95
97
  exports.useModal = index.useModal;
96
98
  exports.useUrlFilters = index.useUrlFilters;
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs } from './index-BqP3cjXR.js';
1
+ import { g as getDefaultExportFromCjs } from './index-BEhZTDj7.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -2,7 +2,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
3
  import { modals } from '@mantine/modals';
4
4
  import * as React from 'react';
5
- import React__default, { useRef, useMemo, useEffect, useState } from 'react';
5
+ import React__default, { useRef, useMemo, useEffect, createContext, useContext, useState } from 'react';
6
6
  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, ScrollArea, createTheme, PinInput, UnstyledButton, Drawer as Drawer$1, NumberInput, PasswordInput, TextInput, Textarea, Grid, ThemeIcon, MantineProvider } from '@mantine/core';
7
7
  import { DotLottieReact } from '@lottiefiles/dotlottie-react';
8
8
  import _extends from '@babel/runtime/helpers/extends';
@@ -12148,7 +12148,7 @@ function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t
12148
12148
  }
12149
12149
 
12150
12150
  // Fallback: use dynamic import (async, but will work in Vite/Storybook)
12151
- import('./heatmap-c0t80nIF.js').then(function (n) { return n.h; }).then(heatmapModule => {
12151
+ import('./heatmap-DozjC6lm.js').then(function (n) { return n.h; }).then(heatmapModule => {
12152
12152
  const moduleFn = typeof heatmapModule === "function" ? heatmapModule : (heatmapModule === null || heatmapModule === void 0 ? void 0 : heatmapModule.default) || heatmapModule;
12153
12153
  if (typeof moduleFn === "function") {
12154
12154
  moduleFn(Highcharts);
@@ -12988,6 +12988,29 @@ const SideMenu = _ref => {
12988
12988
  }));
12989
12989
  };
12990
12990
 
12991
+ const BackofficeContext = /*#__PURE__*/createContext(undefined);
12992
+ const defaultT = key => key;
12993
+ const BackofficeProvider = _ref => {
12994
+ let {
12995
+ children,
12996
+ config
12997
+ } = _ref;
12998
+ const value = {
12999
+ t: (config === null || config === void 0 ? void 0 : config.t) || defaultT,
13000
+ locale: (config === null || config === void 0 ? void 0 : config.locale) || "en"
13001
+ };
13002
+ return /*#__PURE__*/React__default.createElement(BackofficeContext.Provider, {
13003
+ value: value
13004
+ }, children);
13005
+ };
13006
+ const useBackoffice = () => {
13007
+ const context = useContext(BackofficeContext);
13008
+ return context || {
13009
+ t: defaultT,
13010
+ locale: "en"
13011
+ };
13012
+ };
13013
+
12991
13014
  const _excluded$d = ["withPadding", "withRadius", "autoHeight", "children"],
12992
13015
  _excluded2$1 = ["withPadding", "title", "children"],
12993
13016
  _excluded3 = ["placeholder", "searchIcon", "filterIcon", "searchText", "searchState", "searchInputValue", "filterFn", "searchFn", "onPillRemove", "children"];
@@ -13045,14 +13068,14 @@ const TitledPanel = _ref2 => {
13045
13068
  };
13046
13069
  const SearchPanel = _ref3 => {
13047
13070
  let {
13048
- placeholder = "Search by name or reference",
13071
+ placeholder,
13049
13072
  searchIcon = {
13050
13073
  name: "SearchNormal1"
13051
13074
  },
13052
13075
  filterIcon = {
13053
13076
  name: "Setting5"
13054
13077
  },
13055
- searchText = "Search",
13078
+ searchText,
13056
13079
  searchState,
13057
13080
  searchInputValue,
13058
13081
  filterFn,
@@ -13061,6 +13084,11 @@ const SearchPanel = _ref3 => {
13061
13084
  children
13062
13085
  } = _ref3,
13063
13086
  rest = _objectWithoutProperties(_ref3, _excluded3);
13087
+ const {
13088
+ t
13089
+ } = useBackoffice();
13090
+ const finalPlaceholder = placeholder || t("lib_search_placeholder");
13091
+ const finalSearchText = searchText || t("lib_search_button");
13064
13092
  const [searchPills] = searchState || useState([]);
13065
13093
  const [inputValue, setInputValue] = useState(searchInputValue || "");
13066
13094
  const form = useForm({
@@ -13121,7 +13149,7 @@ const SearchPanel = _ref3 => {
13121
13149
  withRemoveButton: true,
13122
13150
  onRemove: () => handleRemovePill(pill)
13123
13151
  }, pill)), /*#__PURE__*/React__default.createElement(PillsInput.Field, {
13124
- placeholder: placeholder,
13152
+ placeholder: finalPlaceholder,
13125
13153
  value: inputValue,
13126
13154
  onChange: e => {
13127
13155
  setInputValue(e.currentTarget.value);
@@ -13137,7 +13165,7 @@ const SearchPanel = _ref3 => {
13137
13165
  maw: 150,
13138
13166
  type: "submit",
13139
13167
  leftSection: /*#__PURE__*/React__default.createElement(Icons, searchIcon)
13140
- }, searchText))), children));
13168
+ }, finalSearchText))), children));
13141
13169
  };
13142
13170
 
13143
13171
  const LabelPanelItem = _ref => {
@@ -13680,10 +13708,15 @@ const SubscriptionPlans = _ref => {
13680
13708
  altColor = "altiba.3",
13681
13709
  durationDays,
13682
13710
  planPrice,
13683
- buttonLabel = "Pay Early",
13684
- altButtonLabel = "Pay Now",
13711
+ buttonLabel,
13712
+ altButtonLabel,
13685
13713
  onClick
13686
13714
  } = _ref;
13715
+ const {
13716
+ t
13717
+ } = useBackoffice();
13718
+ const finalButtonLabel = buttonLabel || (durationDays > 0 ? t("lib_pay_early") : t("lib_pay_now"));
13719
+ const finalAltButtonLabel = altButtonLabel || t("lib_pay_now");
13687
13720
  const price = planPrice.split("/");
13688
13721
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Indicator, {
13689
13722
  size: 20,
@@ -13711,20 +13744,20 @@ const SubscriptionPlans = _ref => {
13711
13744
  fz: "xs",
13712
13745
  c: altColor,
13713
13746
  fw: 300
13714
- }, durationDays, " ", isActive ? " days remaining" : " days")), /*#__PURE__*/React__default.createElement(Text, {
13747
+ }, durationDays, " ", isActive ? t("lib_days_remaining") : t("lib_days"))), /*#__PURE__*/React__default.createElement(Text, {
13715
13748
  fz: "sm",
13716
13749
  fw: 500
13717
13750
  }, price[0], /*#__PURE__*/React__default.createElement(Text, {
13718
13751
  fz: "sm",
13719
13752
  component: "span",
13720
13753
  c: "dimmed"
13721
- }, price[1] ? "/".concat(price[1]) : " /month"))), /*#__PURE__*/React__default.createElement(Button, {
13754
+ }, price[1] ? "/".concat(price[1]) : " /".concat(t("lib_month_short"))))), /*#__PURE__*/React__default.createElement(Button, {
13722
13755
  w: 100,
13723
13756
  size: "xs",
13724
13757
  fw: 500,
13725
13758
  onClick: onClick,
13726
13759
  variant: isActive ? "outline" : "filled"
13727
- }, durationDays > 0 ? buttonLabel : altButtonLabel)))));
13760
+ }, durationDays > 0 ? finalButtonLabel : finalAltButtonLabel)))));
13728
13761
  };
13729
13762
 
13730
13763
  const InfoGrid = _ref => {
@@ -13773,6 +13806,9 @@ const UserProfileCard = _ref => {
13773
13806
  score,
13774
13807
  scoreColor = "green"
13775
13808
  } = _ref;
13809
+ const {
13810
+ t
13811
+ } = useBackoffice();
13776
13812
  return /*#__PURE__*/React__default.createElement(Card, {
13777
13813
  p: "0",
13778
13814
  radius: "md",
@@ -13827,7 +13863,7 @@ const UserProfileCard = _ref => {
13827
13863
  size: "12px",
13828
13864
  c: "#5B6767",
13829
13865
  fw: 300
13830
- }, "ID: ", userId))));
13866
+ }, t("lib_user_id_label"), ": ", userId))));
13831
13867
  };
13832
13868
 
13833
13869
  const VARIANT_CONFIG = {
@@ -14270,7 +14306,7 @@ const DetailCard = _ref => {
14270
14306
  }, /*#__PURE__*/React__default.createElement(Text, {
14271
14307
  fw: 300,
14272
14308
  size: "sm",
14273
- c: "#0F193D"
14309
+ c: "adiba.6"
14274
14310
  }, item.label), /*#__PURE__*/React__default.createElement(Text, {
14275
14311
  fw: 300,
14276
14312
  size: "12px",
@@ -14481,6 +14517,10 @@ const SimpleTable = _ref => {
14481
14517
  isStriped,
14482
14518
  stickyAction
14483
14519
  } = _ref;
14520
+ const {
14521
+ t
14522
+ } = useBackoffice();
14523
+
14484
14524
  // Memoize the final columns array to avoid mutations on every render
14485
14525
  const finalColumns = useMemo(() => {
14486
14526
  // Create a new array to avoid mutating the original
@@ -14488,7 +14528,7 @@ const SimpleTable = _ref => {
14488
14528
  const indexColumn = {
14489
14529
  order: -99,
14490
14530
  id: "index",
14491
- label: "Id"
14531
+ label: t("lib_table_id")
14492
14532
  };
14493
14533
  const actionColumn = {
14494
14534
  order: 99999,
@@ -14776,10 +14816,10 @@ const ChatListCard = _ref => {
14776
14816
  }, isGroup && senderName ? /*#__PURE__*/React__default.createElement(Text, {
14777
14817
  span: true,
14778
14818
  fw: 300,
14779
- c: "#0F193D"
14819
+ c: "adiba.6"
14780
14820
  }, senderName, ":", " ") : null, message), unreadCount > 0 && /*#__PURE__*/React__default.createElement(Box, {
14821
+ bg: "adiba.6",
14781
14822
  style: {
14782
- backgroundColor: "#0F193D",
14783
14823
  color: "white",
14784
14824
  borderRadius: "50%",
14785
14825
  minWidth: 18,
@@ -15126,7 +15166,7 @@ const Drawer = _ref => {
15126
15166
  }, page))));
15127
15167
  };
15128
15168
 
15129
- const _excluded$2 = ["fields", "isEditable", "layout", "hasSubmit", "hasReset", "buttonSize", "submitButtonIcon", "cancelButtonIcon", "submitButtonLabel", "cancelButtonLabel"];
15169
+ const _excluded$2 = ["fields", "isEditable", "layout", "hasSubmit", "hasReset", "buttonSize", "submitButtonIcon", "cancelButtonIcon"];
15130
15170
  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; }
15131
15171
  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; }
15132
15172
  const SimpleForm = _ref => {
@@ -15138,17 +15178,36 @@ const SimpleForm = _ref => {
15138
15178
  hasReset,
15139
15179
  buttonSize = "lg",
15140
15180
  submitButtonIcon = true,
15141
- cancelButtonIcon = true,
15142
- submitButtonLabel = "Save",
15143
- cancelButtonLabel = "Cancel"
15181
+ cancelButtonIcon = true
15144
15182
  } = _ref,
15145
15183
  rest = _objectWithoutProperties(_ref, _excluded$2);
15184
+ const {
15185
+ t
15186
+ } = useBackoffice();
15187
+ const submitButtonLabel = rest.submitButtonLabel || t("lib_save");
15188
+ const cancelButtonLabel = rest.cancelButtonLabel || t("lib_cancel");
15146
15189
  const components = {
15147
15190
  Textarea: Textarea,
15148
15191
  TextInput: TextInput,
15149
15192
  PasswordInput: PasswordInput,
15150
15193
  NumberInput: NumberInput
15151
15194
  };
15195
+ const santize = field => {
15196
+ var _ref2, _field$label, _field$placeholder, _field$name, _field$name2, _field$name$split$joi, _field$name3;
15197
+ if (typeof field === "string") {
15198
+ const name = field === null || field === void 0 ? void 0 : field.split(" ").join("_").toLowerCase();
15199
+ return {
15200
+ label: field,
15201
+ placeholder: t("lib_placeholder_enter") !== "lib_placeholder_enter" ? "".concat(t("lib_placeholder_enter"), " ").concat(field.toLowerCase()) : "Please enter ".concat(field.toLowerCase()),
15202
+ name
15203
+ };
15204
+ }
15205
+ return {
15206
+ label: "".concat((_ref2 = (_field$label = field === null || field === void 0 ? void 0 : field.label) !== null && _field$label !== void 0 ? _field$label : field === null || field === void 0 ? void 0 : field.name) !== null && _ref2 !== void 0 ? _ref2 : ""),
15207
+ placeholder: (_field$placeholder = field.placeholder) !== null && _field$placeholder !== void 0 ? _field$placeholder : t("lib_placeholder_enter") !== "lib_placeholder_enter" ? "".concat(t("lib_placeholder_enter"), " ").concat((_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name.toLowerCase()) : "Please enter ".concat((_field$name2 = field.name) === null || _field$name2 === void 0 ? void 0 : _field$name2.toLowerCase()),
15208
+ name: (_field$name$split$joi = (_field$name3 = field.name) === null || _field$name3 === void 0 ? void 0 : _field$name3.split(" ").join("_").toLowerCase()) !== null && _field$name$split$joi !== void 0 ? _field$name$split$joi : ""
15209
+ };
15210
+ };
15152
15211
  const form = useForm({
15153
15212
  mode: "uncontrolled",
15154
15213
  initialValues: () => {
@@ -15232,22 +15291,6 @@ const SimpleForm = _ref => {
15232
15291
  cancelButtonIcon
15233
15292
  })));
15234
15293
  };
15235
- const santize = field => {
15236
- var _ref2, _field$label, _field$placeholder, _field$name, _field$name$split$joi, _field$name2;
15237
- if (typeof field === "string") {
15238
- const name = field === null || field === void 0 ? void 0 : field.split(" ").join("_").toLowerCase();
15239
- return {
15240
- label: field,
15241
- placeholder: "Please enter ".concat(field.toLowerCase()),
15242
- name
15243
- };
15244
- }
15245
- return {
15246
- label: "".concat((_ref2 = (_field$label = field === null || field === void 0 ? void 0 : field.label) !== null && _field$label !== void 0 ? _field$label : field === null || field === void 0 ? void 0 : field.name) !== null && _ref2 !== void 0 ? _ref2 : ""),
15247
- placeholder: (_field$placeholder = field.placeholder) !== null && _field$placeholder !== void 0 ? _field$placeholder : "Please enter ".concat((_field$name = field.name) === null || _field$name === void 0 ? void 0 : _field$name.toLowerCase()),
15248
- 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 : ""
15249
- };
15250
- };
15251
15294
  const FormButtons = _ref3 => {
15252
15295
  let {
15253
15296
  hasSubmit = false,
@@ -15451,18 +15494,18 @@ const MerchantCard = _ref => {
15451
15494
  }, /*#__PURE__*/React__default.createElement(Text, {
15452
15495
  fw: 400,
15453
15496
  size: "lg",
15454
- c: "dark.9"
15497
+ c: "adiba.9"
15455
15498
  }, name), /*#__PURE__*/React__default.createElement(Badge, {
15456
15499
  variant: "light",
15457
15500
  color: "gray",
15458
15501
  radius: "sm",
15459
15502
  size: "lg",
15503
+ c: "adiba.6",
15460
15504
  styles: {
15461
15505
  root: {
15462
15506
  textTransform: "none",
15463
15507
  fontWeight: 400,
15464
15508
  backgroundColor: "#F2F4F4",
15465
- color: "#0F193D",
15466
15509
  height: "auto",
15467
15510
  padding: "5px 7px"
15468
15511
  }
@@ -15492,7 +15535,7 @@ const MerchantCard = _ref => {
15492
15535
  size: 24,
15493
15536
  color: "#1C1C1C"
15494
15537
  })) : /*#__PURE__*/React__default.createElement(ActionIcon, {
15495
- bg: "#0F193D",
15538
+ bg: "adiba.6",
15496
15539
  w: 32,
15497
15540
  h: 32,
15498
15541
  radius: "100%",
@@ -16119,6 +16162,7 @@ function withProviders(Component) {
16119
16162
  locale: "en",
16120
16163
  timezone: "UTC"
16121
16164
  },
16165
+ backofficeConfig = {},
16122
16166
  cssVariablesSelector
16123
16167
  } = options;
16124
16168
  const WrappedComponent = props => {
@@ -16131,7 +16175,9 @@ function withProviders(Component) {
16131
16175
  cssVariablesSelector: cssVariablesSelector
16132
16176
  }, /*#__PURE__*/React.createElement(DatesProvider, {
16133
16177
  settings: datesSettings
16134
- }, /*#__PURE__*/React.createElement(Component, props), showDevtools && /*#__PURE__*/React.createElement(ReactQueryDevtools, null))));
16178
+ }, /*#__PURE__*/React.createElement(BackofficeProvider, {
16179
+ config: backofficeConfig
16180
+ }, /*#__PURE__*/React.createElement(Component, props), showDevtools && /*#__PURE__*/React.createElement(ReactQueryDevtools, null)))));
16135
16181
  };
16136
16182
  WrappedComponent.displayName = "withProviders(".concat(Component.displayName || Component.name || "Component", ")");
16137
16183
  return WrappedComponent;
@@ -16170,4 +16216,4 @@ const StringHelpers = {
16170
16216
  const extractBetweenBraces = StringHelpers.extractBetweenBraces;
16171
16217
  const extractOutsideBraces = StringHelpers.extractOutsideBraces;
16172
16218
 
16173
- export { TableStateView as $, ApplicationMenu as A, BasicHeatmap as B, CalendarHeatmap as C, DonutChart as D, EqualizerColumn as E, File as F, ErrorModal as G, InfoModal as H, InterpolatedHeatmap as I, SimpleModal as J, SuccessModal as K, LabelPanel as L, MultiAxisArea as M, TwoFactorModal as N, ChatListCard as O, PieChart as P, ChatBubble as Q, ChatHeader as R, SimpleColumn as S, TitledPanel as T, UserMenu as U, LoadingModal as V, Drawer as W, SimpleForm as X, MaskedTilePanel as Y, TilePanel as Z, MerchantCard as _, StackedColumn as a, useModal as a0, useManagedModals as a1, useUrlFilters as a2, DEFAULT_PAGE_SIZE as a3, MAX_PAGE_SIZE as a4, DEFAULT_API_TIMEOUT as a5, createApiClient as a6, apiClient as a7, ModalContentWrapper as a8, withProviders as a9, extractBetweenBraces as aa, extractOutsideBraces as ab, 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, PageTitle as m, TitleWithIndex as n, ConnectionPanel as o, ApplicationPanel as p, SubscriptionPlans as q, InfoGrid as r, UserProfileCard as s, StatusAlert as t, CreditCard as u, DetailCard as v, PaymentMethod as w, PaymentMethodAdd as x, SimpleTable as y, theme as z };
16219
+ export { TableStateView as $, ApplicationMenu as A, BasicHeatmap as B, CalendarHeatmap as C, DonutChart as D, EqualizerColumn as E, File as F, ErrorModal as G, InfoModal as H, InterpolatedHeatmap as I, SimpleModal as J, SuccessModal as K, LabelPanel as L, MultiAxisArea as M, TwoFactorModal as N, ChatListCard as O, PieChart as P, ChatBubble as Q, ChatHeader as R, SimpleColumn as S, TitledPanel as T, UserMenu as U, LoadingModal as V, Drawer as W, SimpleForm as X, MaskedTilePanel as Y, TilePanel as Z, MerchantCard as _, StackedColumn as a, useModal as a0, useManagedModals as a1, useUrlFilters as a2, DEFAULT_PAGE_SIZE as a3, MAX_PAGE_SIZE as a4, DEFAULT_API_TIMEOUT as a5, createApiClient as a6, apiClient as a7, ModalContentWrapper as a8, withProviders as a9, extractBetweenBraces as aa, extractOutsideBraces as ab, BackofficeProvider as ac, useBackoffice as ad, 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, PageTitle as m, TitleWithIndex as n, ConnectionPanel as o, ApplicationPanel as p, SubscriptionPlans as q, InfoGrid as r, UserProfileCard as s, StatusAlert as t, CreditCard as u, DetailCard as v, PaymentMethod as w, PaymentMethodAdd as x, SimpleTable as y, theme as z };
@@ -1,4 +1,4 @@
1
- export { A as ApplicationMenu, p as ApplicationPanel, k as AvatarLabelPanel, B as BasicHeatmap, C as CalendarHeatmap, Q as ChatBubble, R as ChatHeader, O as ChatListCard, o as ConnectionPanel, u as CreditCard, a5 as DEFAULT_API_TIMEOUT, a3 as DEFAULT_PAGE_SIZE, v as DetailCard, D as DonutChart, W as Drawer, e as DynamicLogo, f as DynamicShigaLogo, E as EqualizerColumn, G as ErrorModal, F as File, d as Icons, r as InfoGrid, H as InfoModal, I as InterpolatedHeatmap, L as LabelPanel, V as LoadingModal, a4 as MAX_PAGE_SIZE, Y as MaskedTilePanel, _ as MerchantCard, a8 as ModalContentWrapper, M as MultiAxisArea, m as PageTitle, w as PaymentMethod, x as PaymentMethodAdd, P as PieChart, j as SearchPanel, h as SideMenu, b as SimpleArea, S as SimpleColumn, X as SimpleForm, J as SimpleModal, i as SimplePanel, y as SimpleTable, l as SimpleText, c as StackedArea, a as StackedColumn, t as StatusAlert, q as SubscriptionPlans, K as SuccessModal, $ as TableStateView, Z as TilePanel, n as TitleWithIndex, T as TitledPanel, N as TwoFactorModal, U as UserMenu, s as UserProfileCard, a7 as apiClient, a6 as createApiClient, aa as extractBetweenBraces, ab as extractOutsideBraces, z as theme, a1 as useManagedModals, a0 as useModal, a2 as useUrlFilters, a9 as withProviders } from './index-BqP3cjXR.js';
1
+ export { A as ApplicationMenu, p as ApplicationPanel, k as AvatarLabelPanel, ac as BackofficeProvider, B as BasicHeatmap, C as CalendarHeatmap, Q as ChatBubble, R as ChatHeader, O as ChatListCard, o as ConnectionPanel, u as CreditCard, a5 as DEFAULT_API_TIMEOUT, a3 as DEFAULT_PAGE_SIZE, v as DetailCard, D as DonutChart, W as Drawer, e as DynamicLogo, f as DynamicShigaLogo, E as EqualizerColumn, G as ErrorModal, F as File, d as Icons, r as InfoGrid, H as InfoModal, I as InterpolatedHeatmap, L as LabelPanel, V as LoadingModal, a4 as MAX_PAGE_SIZE, Y as MaskedTilePanel, _ as MerchantCard, a8 as ModalContentWrapper, M as MultiAxisArea, m as PageTitle, w as PaymentMethod, x as PaymentMethodAdd, P as PieChart, j as SearchPanel, h as SideMenu, b as SimpleArea, S as SimpleColumn, X as SimpleForm, J as SimpleModal, i as SimplePanel, y as SimpleTable, l as SimpleText, c as StackedArea, a as StackedColumn, t as StatusAlert, q as SubscriptionPlans, K as SuccessModal, $ as TableStateView, Z as TilePanel, n as TitleWithIndex, T as TitledPanel, N as TwoFactorModal, U as UserMenu, s as UserProfileCard, a7 as apiClient, a6 as createApiClient, aa as extractBetweenBraces, ab as extractOutsideBraces, z as theme, ad as useBackoffice, a1 as useManagedModals, a0 as useModal, a2 as useUrlFilters, a9 as withProviders } from './index-BEhZTDj7.js';
2
2
  import '@babel/runtime/helpers/objectWithoutProperties';
3
3
  import '@babel/runtime/helpers/defineProperty';
4
4
  import '@mantine/modals';
@@ -7,3 +7,4 @@ export * from "./shared/components";
7
7
  export * from "./shared/types";
8
8
  export * from "./shared/hocs";
9
9
  export * from "./shared/utils";
10
+ export * from "./shared/providers/BackofficeProvider";
@@ -2,6 +2,7 @@ import * as React from "react";
2
2
  import { theme } from "../../components/theme";
3
3
  import { QueryClient } from "@tanstack/react-query";
4
4
  import "@mantine/dates/styles.css";
5
+ import { BackofficeContextProps } from "../providers/BackofficeProvider";
5
6
  export interface WithProvidersOptions {
6
7
  /**
7
8
  * Custom QueryClient instance (optional)
@@ -23,6 +24,10 @@ export interface WithProvidersOptions {
23
24
  locale: string;
24
25
  timezone: string;
25
26
  };
27
+ /**
28
+ * BackofficeProvider configuration (optional)
29
+ */
30
+ backofficeConfig?: Partial<BackofficeContextProps>;
26
31
  /**
27
32
  * Target CSS selector for Mantine variables
28
33
  * Helpful for micro-frontends (Pilets) to avoid overwriting the host App Shell CSS
@@ -0,0 +1,17 @@
1
+ import React, { ReactNode } from "react";
2
+ export interface BackofficeContextProps {
3
+ /**
4
+ * Translation function to override hardcoded library strings.
5
+ * If not provided, it falls back to a simple key-returner.
6
+ */
7
+ t: (key: string, options?: Record<string, any>) => string;
8
+ /**
9
+ * Current locale (optional, useful for date/number formatting)
10
+ */
11
+ locale?: string;
12
+ }
13
+ export declare const BackofficeProvider: React.FC<{
14
+ children: ReactNode;
15
+ config?: Partial<BackofficeContextProps>;
16
+ }>;
17
+ export declare const useBackoffice: () => BackofficeContextProps;
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.46",
4
+ "version": "0.2.48",
5
5
  "description": "An ADIBA component library for backoffice and dashboard applications",
6
6
  "license": "ISC",
7
7
  "main": "build/index.cjs.js",