elseware-ui 2.20.2 → 2.20.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.
package/README.md CHANGED
@@ -1,74 +1,74 @@
1
- # elseware UI
2
-
3
- ## Folder Hierarchy
4
- - components: Base UI primitives (buttons, inputs, modals, etc.)
5
- - compositions: Composite reusable structures built from primitives
6
- - data: Metadata used on the components/compositions
7
- - layouts: Page layouts that can be used to quickly structure the page formats
8
- - styles: Tailwind/CSS stylings
9
- - types: Custom react types
10
- - utils: Reusable utility functions and hooks
11
-
12
- ## Setup
13
-
14
- Install the dependendecies via `npm i`.
15
-
16
- ## Run Storybook
17
-
18
- To test the components and its features start storybook using `npm run dev`.
19
-
20
- ## Build
21
-
22
- Run `npm run build` to build the UI framework.
23
-
24
- ## Publishing to npm
25
-
26
- ### Publishing a New Version
27
-
28
- 1. **Update the version number**:
29
- - Before publishing a new version, update the version in `package.json` following [semantic versioning](https://semver.org/).
30
- - Example:
31
- ```json
32
- {
33
- "name": "elseware-ui",
34
- "version": "1.0.1",
35
- ...
36
- }
37
- ```
38
-
39
- 2. **Build the UI Framework**:
40
- - Run the following command to ensure your changes are built and ready to be published:
41
- ```bash
42
- npm run build
43
- ```
44
-
45
- 3. **Login to npm**:
46
- - If you're not already logged in to npm, log in using:
47
- ```bash
48
- npm login
49
- ```
50
-
51
- 4. **Publish the package**:
52
- - To publish the package, run the following command:
53
- ```bash
54
- npm publish --access public
55
- ```
56
- - Make sure the package name in `package.json` is unique and does not conflict with other packages on npm.
57
-
58
- ### Unpublishing an Older Version
59
-
60
- If you need to unpublish a specific version of the package:
61
-
62
- 1. **Unpublish a specific version**:
63
- - To unpublish a specific version of your package (e.g., `1.0.0`), run:
64
- ```bash
65
- npm unpublish elseware-ui@1.0.0
66
- ```
67
-
68
- 2. **Unpublish the entire package**:
69
- - If you need to unpublish the entire package, you can run the following command (not recommended for public packages):
70
- ```bash
71
- npm unpublish elseware-ui --force
72
- ```
73
-
74
- **Note:** Be cautious when using `--force` as npm restricts package unpublishing for packages that are older than 72 hours to avoid breaking dependencies.
1
+ # elseware UI
2
+
3
+ ## Folder Hierarchy
4
+ - components: Base UI primitives (buttons, inputs, modals, etc.)
5
+ - compositions: Composite reusable structures built from primitives
6
+ - data: Metadata used on the components/compositions
7
+ - layouts: Page layouts that can be used to quickly structure the page formats
8
+ - styles: Tailwind/CSS stylings
9
+ - types: Custom react types
10
+ - utils: Reusable utility functions and hooks
11
+
12
+ ## Setup
13
+
14
+ Install the dependendecies via `npm i`.
15
+
16
+ ## Run Storybook
17
+
18
+ To test the components and its features start storybook using `npm run dev`.
19
+
20
+ ## Build
21
+
22
+ Run `npm run build` to build the UI framework.
23
+
24
+ ## Publishing to npm
25
+
26
+ ### Publishing a New Version
27
+
28
+ 1. **Update the version number**:
29
+ - Before publishing a new version, update the version in `package.json` following [semantic versioning](https://semver.org/).
30
+ - Example:
31
+ ```json
32
+ {
33
+ "name": "elseware-ui",
34
+ "version": "1.0.1",
35
+ ...
36
+ }
37
+ ```
38
+
39
+ 2. **Build the UI Framework**:
40
+ - Run the following command to ensure your changes are built and ready to be published:
41
+ ```bash
42
+ npm run build
43
+ ```
44
+
45
+ 3. **Login to npm**:
46
+ - If you're not already logged in to npm, log in using:
47
+ ```bash
48
+ npm login
49
+ ```
50
+
51
+ 4. **Publish the package**:
52
+ - To publish the package, run the following command:
53
+ ```bash
54
+ npm publish --access public
55
+ ```
56
+ - Make sure the package name in `package.json` is unique and does not conflict with other packages on npm.
57
+
58
+ ### Unpublishing an Older Version
59
+
60
+ If you need to unpublish a specific version of the package:
61
+
62
+ 1. **Unpublish a specific version**:
63
+ - To unpublish a specific version of your package (e.g., `1.0.0`), run:
64
+ ```bash
65
+ npm unpublish elseware-ui@1.0.0
66
+ ```
67
+
68
+ 2. **Unpublish the entire package**:
69
+ - If you need to unpublish the entire package, you can run the following command (not recommended for public packages):
70
+ ```bash
71
+ npm unpublish elseware-ui --force
72
+ ```
73
+
74
+ **Note:** Be cautious when using `--force` as npm restricts package unpublishing for packages that are older than 72 hours to avoid breaking dependencies.
@@ -0,0 +1,7 @@
1
+ import { FormikProps } from "formik";
2
+ interface Props {
3
+ formik: FormikProps<any>;
4
+ onDirtyChange?: (dirty: boolean) => void;
5
+ }
6
+ declare const DirtyObserver: ({ formik, onDirtyChange }: Props) => null;
7
+ export default DirtyObserver;
@@ -9,5 +9,7 @@ export interface FormProps {
9
9
  onChange?: (values: Record<string, any>, meta?: {
10
10
  changed: Record<string, any>;
11
11
  }) => void;
12
+ warnOnUnsavedChanges?: boolean;
13
+ onDirtyChange?: (dirty: boolean) => void;
12
14
  }
13
- export declare const Form: ({ initialValues, validationSchema, enableReinitialize, children, styles, onSubmit, onChange, }: FormProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const Form: ({ initialValues, validationSchema, enableReinitialize, children, styles, onSubmit, onChange, warnOnUnsavedChanges, onDirtyChange, }: FormProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { FormikProps } from "formik";
2
+ interface Props {
3
+ formik: FormikProps<any>;
4
+ enabled?: boolean;
5
+ }
6
+ declare const UnsavedChangesGuard: ({ formik, enabled }: Props) => null;
7
+ export default UnsavedChangesGuard;
package/build/index.es.js CHANGED
@@ -21023,8 +21023,20 @@ new Transform$1(1, 0, 0);
21023
21023
  Transform$1.prototype;
21024
21024
 
21025
21025
  var createForceLayout = function (nodes, edges, width, height) {
21026
- // Convert app edges -> D3 compatible edges
21027
- var d3Links = edges.map(function (e) { return ({
21026
+ // Build fast lookup map
21027
+ var nodeMap = new Map(nodes.map(function (n) { return [n.id, n]; }));
21028
+ // Filter + convert edges safely
21029
+ var d3Links = edges
21030
+ .filter(function (e) {
21031
+ var fromId = typeof e.from === "string" ? e.from : e.from.id;
21032
+ var toId = typeof e.to === "string" ? e.to : e.to.id;
21033
+ var valid = nodeMap.has(fromId) && nodeMap.has(toId);
21034
+ if (!valid) {
21035
+ console.warn("Invalid edge skipped:", e);
21036
+ }
21037
+ return valid;
21038
+ })
21039
+ .map(function (e) { return ({
21028
21040
  source: typeof e.from === "string" ? e.from : e.from.id,
21029
21041
  target: typeof e.to === "string" ? e.to : e.to.id,
21030
21042
  weight: e.weight,
@@ -21034,7 +21046,7 @@ var createForceLayout = function (nodes, edges, width, height) {
21034
21046
  .id(function (d) { return d.id; })
21035
21047
  .distance(120)
21036
21048
  .strength(0.7))
21037
- .force("charge", manyBody().strength(-300))
21049
+ .force("charge", manyBody().strength(-280))
21038
21050
  .force("center", center(width / 2, height / 2))
21039
21051
  .force("collision", collide().radius(35));
21040
21052
  };
@@ -39379,9 +39391,38 @@ var FormObserver = function (_a) {
39379
39391
  return null;
39380
39392
  };
39381
39393
 
39394
+ var DirtyObserver = function (_a) {
39395
+ var formik = _a.formik, onDirtyChange = _a.onDirtyChange;
39396
+ useEffect(function () {
39397
+ if (onDirtyChange) {
39398
+ onDirtyChange(formik.dirty);
39399
+ }
39400
+ }, [formik.dirty, onDirtyChange]);
39401
+ return null;
39402
+ };
39403
+
39404
+ var UnsavedChangesGuard = function (_a) {
39405
+ var formik = _a.formik, enabled = _a.enabled;
39406
+ useEffect(function () {
39407
+ if (!enabled)
39408
+ return;
39409
+ var handleBeforeUnload = function (e) {
39410
+ if (!formik.dirty)
39411
+ return;
39412
+ e.preventDefault();
39413
+ e.returnValue = "";
39414
+ };
39415
+ window.addEventListener("beforeunload", handleBeforeUnload);
39416
+ return function () {
39417
+ window.removeEventListener("beforeunload", handleBeforeUnload);
39418
+ };
39419
+ }, [formik.dirty, enabled]);
39420
+ return null;
39421
+ };
39422
+
39382
39423
  var Form = function (_a) {
39383
- var _b = _a.initialValues, initialValues = _b === void 0 ? {} : _b, validationSchema = _a.validationSchema, enableReinitialize = _a.enableReinitialize, children = _a.children, styles = _a.styles, onSubmit = _a.onSubmit, onChange = _a.onChange;
39384
- return (jsx(Formik, __assign$1({ initialValues: initialValues, validationSchema: validationSchema, enableReinitialize: enableReinitialize, onSubmit: onSubmit }, { children: function (formik) { return (jsxs(Form$1, { children: [jsx(FormObserver, { formik: formik, onChange: onChange }), jsx("div", __assign$1({ className: classnames(styles) }, { children: children }))] })); } })));
39424
+ var _b = _a.initialValues, initialValues = _b === void 0 ? {} : _b, validationSchema = _a.validationSchema, enableReinitialize = _a.enableReinitialize, children = _a.children, styles = _a.styles, onSubmit = _a.onSubmit, onChange = _a.onChange, _c = _a.warnOnUnsavedChanges, warnOnUnsavedChanges = _c === void 0 ? false : _c, onDirtyChange = _a.onDirtyChange;
39425
+ return (jsx(Formik, __assign$1({ initialValues: initialValues, validationSchema: validationSchema, enableReinitialize: enableReinitialize, onSubmit: onSubmit }, { children: function (formik) { return (jsxs(Form$1, { children: [jsx(UnsavedChangesGuard, { formik: formik, enabled: warnOnUnsavedChanges }), jsx(DirtyObserver, { formik: formik, onDirtyChange: onDirtyChange }), jsx(FormObserver, { formik: formik, onChange: onChange }), jsx("div", __assign$1({ className: classnames(styles) }, { children: children }))] })); } })));
39385
39426
  };
39386
39427
 
39387
39428
  var Backdrop = function (_a) {
@@ -69181,7 +69222,7 @@ var ShapeSwitch = function () {
69181
69222
  var shape = e.target.value;
69182
69223
  setConfig(function (prev) { return (__assign$1(__assign$1({}, prev), { global: __assign$1(__assign$1({}, prev.global), { shape: shape }) })); });
69183
69224
  };
69184
- return (jsx("div", __assign$1({ className: "flex flex-col gap-1 w-fit" }, { children: jsx("select", __assign$1({ value: currentShape, onChange: handleChange, className: "\n px-3 py-2 rounded-md border border-gray-300\n bg-white dark:bg-gray-800\n text-sm shadow-sm\n focus:outline-none\n " }, { children: Object.keys(Shape).map(function (shape) { return (jsx("option", __assign$1({ value: shape }, { children: shape }), shape)); }) })) })));
69225
+ return (jsx("div", __assign$1({ className: "flex flex-col gap-1 w-fit" }, { children: jsx("select", __assign$1({ value: currentShape, onChange: handleChange, className: "\r\n px-3 py-2 rounded-md border border-gray-300\r\n bg-white dark:bg-gray-800\r\n text-sm shadow-sm\r\n focus:outline-none\r\n " }, { children: Object.keys(Shape).map(function (shape) { return (jsx("option", __assign$1({ value: shape }, { children: shape }), shape)); }) })) })));
69185
69226
  };
69186
69227
 
69187
69228
  // useCurrentTheme.ts
@@ -69335,7 +69376,7 @@ var Button$2 = function (_a) {
69335
69376
  _b["hover:cursor-pointer"] = !loading && !disabled,
69336
69377
  _b["transition-all ease-in-out"] = true,
69337
69378
  _b["".concat(styles)] = styles,
69338
- _b)) }, { children: [jsx("span", { className: "\n pointer-events-none absolute inset-0 opacity-0 group-hover:opacity-100\n transition-opacity duration-300\n ", style: {
69379
+ _b)) }, { children: [jsx("span", { className: "\r\n pointer-events-none absolute inset-0 opacity-0 group-hover:opacity-100\r\n transition-opacity duration-300\r\n ", style: {
69339
69380
  background: "\n radial-gradient(\n 200px circle at var(--glow-x) var(--glow-y),\n rgba(200,200,200,0.2),\n transparent 50%\n )\n ",
69340
69381
  } }), loading && jsx(AiOutlineLoading, { className: "animate-spin z-10" }), icon && jsx("div", __assign$1({ className: "z-10" }, { children: icon })), text && jsx("div", __assign$1({ className: "z-10" }, { children: text })), children && jsx("div", __assign$1({ className: "z-10" }, { children: children }))] })));
69341
69382
  };
@@ -142059,7 +142100,7 @@ var GlowWrapper = function (_a) {
142059
142100
  // provide an initial --glow-bg so there's always a valid CSS var
142060
142101
  _b["--glow-bg"] = "radial-gradient(".concat(glowSize, "px circle at -999px -999px, ").concat(glowColor, ", transparent 60%)"),
142061
142102
  _b);
142062
- return (jsxs("div", __assign$1({ ref: ref, onMouseMove: handleMove, onMouseLeave: handleLeave, className: "relative overflow-hidden group ".concat(className), style: initialStyle }, { children: [jsx("span", { className: "\n pointer-events-none absolute inset-0 opacity-0 \n group-hover:opacity-100 transition-opacity duration-300\n ",
142103
+ return (jsxs("div", __assign$1({ ref: ref, onMouseMove: handleMove, onMouseLeave: handleLeave, className: "relative overflow-hidden group ".concat(className), style: initialStyle }, { children: [jsx("span", { className: "\r\n pointer-events-none absolute inset-0 opacity-0 \r\n group-hover:opacity-100 transition-opacity duration-300\r\n ",
142063
142104
  // use the CSS variable we update on mouse move
142064
142105
  style: { background: "var(--glow-bg)" } }), jsx("div", __assign$1({ className: "relative z-10" }, { children: children }))] })));
142065
142106
  };
package/build/index.js CHANGED
@@ -21050,8 +21050,20 @@ new Transform$1(1, 0, 0);
21050
21050
  Transform$1.prototype;
21051
21051
 
21052
21052
  var createForceLayout = function (nodes, edges, width, height) {
21053
- // Convert app edges -> D3 compatible edges
21054
- var d3Links = edges.map(function (e) { return ({
21053
+ // Build fast lookup map
21054
+ var nodeMap = new Map(nodes.map(function (n) { return [n.id, n]; }));
21055
+ // Filter + convert edges safely
21056
+ var d3Links = edges
21057
+ .filter(function (e) {
21058
+ var fromId = typeof e.from === "string" ? e.from : e.from.id;
21059
+ var toId = typeof e.to === "string" ? e.to : e.to.id;
21060
+ var valid = nodeMap.has(fromId) && nodeMap.has(toId);
21061
+ if (!valid) {
21062
+ console.warn("Invalid edge skipped:", e);
21063
+ }
21064
+ return valid;
21065
+ })
21066
+ .map(function (e) { return ({
21055
21067
  source: typeof e.from === "string" ? e.from : e.from.id,
21056
21068
  target: typeof e.to === "string" ? e.to : e.to.id,
21057
21069
  weight: e.weight,
@@ -21061,7 +21073,7 @@ var createForceLayout = function (nodes, edges, width, height) {
21061
21073
  .id(function (d) { return d.id; })
21062
21074
  .distance(120)
21063
21075
  .strength(0.7))
21064
- .force("charge", manyBody().strength(-300))
21076
+ .force("charge", manyBody().strength(-280))
21065
21077
  .force("center", center(width / 2, height / 2))
21066
21078
  .force("collision", collide().radius(35));
21067
21079
  };
@@ -39406,9 +39418,38 @@ var FormObserver = function (_a) {
39406
39418
  return null;
39407
39419
  };
39408
39420
 
39421
+ var DirtyObserver = function (_a) {
39422
+ var formik = _a.formik, onDirtyChange = _a.onDirtyChange;
39423
+ React.useEffect(function () {
39424
+ if (onDirtyChange) {
39425
+ onDirtyChange(formik.dirty);
39426
+ }
39427
+ }, [formik.dirty, onDirtyChange]);
39428
+ return null;
39429
+ };
39430
+
39431
+ var UnsavedChangesGuard = function (_a) {
39432
+ var formik = _a.formik, enabled = _a.enabled;
39433
+ React.useEffect(function () {
39434
+ if (!enabled)
39435
+ return;
39436
+ var handleBeforeUnload = function (e) {
39437
+ if (!formik.dirty)
39438
+ return;
39439
+ e.preventDefault();
39440
+ e.returnValue = "";
39441
+ };
39442
+ window.addEventListener("beforeunload", handleBeforeUnload);
39443
+ return function () {
39444
+ window.removeEventListener("beforeunload", handleBeforeUnload);
39445
+ };
39446
+ }, [formik.dirty, enabled]);
39447
+ return null;
39448
+ };
39449
+
39409
39450
  var Form = function (_a) {
39410
- var _b = _a.initialValues, initialValues = _b === void 0 ? {} : _b, validationSchema = _a.validationSchema, enableReinitialize = _a.enableReinitialize, children = _a.children, styles = _a.styles, onSubmit = _a.onSubmit, onChange = _a.onChange;
39411
- return (jsxRuntime.jsx(Formik, __assign$1({ initialValues: initialValues, validationSchema: validationSchema, enableReinitialize: enableReinitialize, onSubmit: onSubmit }, { children: function (formik) { return (jsxRuntime.jsxs(Form$1, { children: [jsxRuntime.jsx(FormObserver, { formik: formik, onChange: onChange }), jsxRuntime.jsx("div", __assign$1({ className: classnames(styles) }, { children: children }))] })); } })));
39451
+ var _b = _a.initialValues, initialValues = _b === void 0 ? {} : _b, validationSchema = _a.validationSchema, enableReinitialize = _a.enableReinitialize, children = _a.children, styles = _a.styles, onSubmit = _a.onSubmit, onChange = _a.onChange, _c = _a.warnOnUnsavedChanges, warnOnUnsavedChanges = _c === void 0 ? false : _c, onDirtyChange = _a.onDirtyChange;
39452
+ return (jsxRuntime.jsx(Formik, __assign$1({ initialValues: initialValues, validationSchema: validationSchema, enableReinitialize: enableReinitialize, onSubmit: onSubmit }, { children: function (formik) { return (jsxRuntime.jsxs(Form$1, { children: [jsxRuntime.jsx(UnsavedChangesGuard, { formik: formik, enabled: warnOnUnsavedChanges }), jsxRuntime.jsx(DirtyObserver, { formik: formik, onDirtyChange: onDirtyChange }), jsxRuntime.jsx(FormObserver, { formik: formik, onChange: onChange }), jsxRuntime.jsx("div", __assign$1({ className: classnames(styles) }, { children: children }))] })); } })));
39412
39453
  };
39413
39454
 
39414
39455
  var Backdrop = function (_a) {
@@ -69208,7 +69249,7 @@ var ShapeSwitch = function () {
69208
69249
  var shape = e.target.value;
69209
69250
  setConfig(function (prev) { return (__assign$1(__assign$1({}, prev), { global: __assign$1(__assign$1({}, prev.global), { shape: shape }) })); });
69210
69251
  };
69211
- return (jsxRuntime.jsx("div", __assign$1({ className: "flex flex-col gap-1 w-fit" }, { children: jsxRuntime.jsx("select", __assign$1({ value: currentShape, onChange: handleChange, className: "\n px-3 py-2 rounded-md border border-gray-300\n bg-white dark:bg-gray-800\n text-sm shadow-sm\n focus:outline-none\n " }, { children: Object.keys(Shape).map(function (shape) { return (jsxRuntime.jsx("option", __assign$1({ value: shape }, { children: shape }), shape)); }) })) })));
69252
+ return (jsxRuntime.jsx("div", __assign$1({ className: "flex flex-col gap-1 w-fit" }, { children: jsxRuntime.jsx("select", __assign$1({ value: currentShape, onChange: handleChange, className: "\r\n px-3 py-2 rounded-md border border-gray-300\r\n bg-white dark:bg-gray-800\r\n text-sm shadow-sm\r\n focus:outline-none\r\n " }, { children: Object.keys(Shape).map(function (shape) { return (jsxRuntime.jsx("option", __assign$1({ value: shape }, { children: shape }), shape)); }) })) })));
69212
69253
  };
69213
69254
 
69214
69255
  // useCurrentTheme.ts
@@ -69362,7 +69403,7 @@ var Button$2 = function (_a) {
69362
69403
  _b["hover:cursor-pointer"] = !loading && !disabled,
69363
69404
  _b["transition-all ease-in-out"] = true,
69364
69405
  _b["".concat(styles)] = styles,
69365
- _b)) }, { children: [jsxRuntime.jsx("span", { className: "\n pointer-events-none absolute inset-0 opacity-0 group-hover:opacity-100\n transition-opacity duration-300\n ", style: {
69406
+ _b)) }, { children: [jsxRuntime.jsx("span", { className: "\r\n pointer-events-none absolute inset-0 opacity-0 group-hover:opacity-100\r\n transition-opacity duration-300\r\n ", style: {
69366
69407
  background: "\n radial-gradient(\n 200px circle at var(--glow-x) var(--glow-y),\n rgba(200,200,200,0.2),\n transparent 50%\n )\n ",
69367
69408
  } }), loading && jsxRuntime.jsx(AiOutlineLoading, { className: "animate-spin z-10" }), icon && jsxRuntime.jsx("div", __assign$1({ className: "z-10" }, { children: icon })), text && jsxRuntime.jsx("div", __assign$1({ className: "z-10" }, { children: text })), children && jsxRuntime.jsx("div", __assign$1({ className: "z-10" }, { children: children }))] })));
69368
69409
  };
@@ -142086,7 +142127,7 @@ var GlowWrapper = function (_a) {
142086
142127
  // provide an initial --glow-bg so there's always a valid CSS var
142087
142128
  _b["--glow-bg"] = "radial-gradient(".concat(glowSize, "px circle at -999px -999px, ").concat(glowColor, ", transparent 60%)"),
142088
142129
  _b);
142089
- return (jsxRuntime.jsxs("div", __assign$1({ ref: ref, onMouseMove: handleMove, onMouseLeave: handleLeave, className: "relative overflow-hidden group ".concat(className), style: initialStyle }, { children: [jsxRuntime.jsx("span", { className: "\n pointer-events-none absolute inset-0 opacity-0 \n group-hover:opacity-100 transition-opacity duration-300\n ",
142130
+ return (jsxRuntime.jsxs("div", __assign$1({ ref: ref, onMouseMove: handleMove, onMouseLeave: handleLeave, className: "relative overflow-hidden group ".concat(className), style: initialStyle }, { children: [jsxRuntime.jsx("span", { className: "\r\n pointer-events-none absolute inset-0 opacity-0 \r\n group-hover:opacity-100 transition-opacity duration-300\r\n ",
142090
142131
  // use the CSS variable we update on mouse move
142091
142132
  style: { background: "var(--glow-bg)" } }), jsxRuntime.jsx("div", __assign$1({ className: "relative z-10" }, { children: children }))] })));
142092
142133
  };
package/package.json CHANGED
@@ -1,125 +1,125 @@
1
- {
2
- "name": "elseware-ui",
3
- "version": "2.20.2",
4
- "private": false,
5
- "description": "A modern and customizable React UI component library by elseware Technology.",
6
- "keywords": [
7
- "react",
8
- "ui-library",
9
- "component-library",
10
- "tailwind",
11
- "design-system",
12
- "elseware"
13
- ],
14
- "repository": {
15
- "type": "git",
16
- "url": "https://github.com/elsewaretechnologies/elseware-ui.git"
17
- },
18
- "author": "elseware Technology <elsewaretechnology@gmail.com>",
19
- "license": "MIT",
20
- "main": "./build/index.js",
21
- "module": "./build/index.es.js",
22
- "types": "./build/index.d.ts",
23
- "exports": {
24
- ".": {
25
- "import": "./build/index.es.js",
26
- "require": "./build/index.js",
27
- "types": "./build/index.d.ts"
28
- }
29
- },
30
- "files": [
31
- "build"
32
- ],
33
- "scripts": {
34
- "dev": "storybook dev -p 6006",
35
- "build": "rollup -c",
36
- "build:storybook": "storybook build",
37
- "clean": "rm -rf build dist node_modules/.cache",
38
- "prepare": "npm run build",
39
- "release": "npm publish --access public"
40
- },
41
- "eslintConfig": {
42
- "extends": [
43
- "react-app",
44
- "react-app/jest",
45
- "plugin:storybook/recommended"
46
- ]
47
- },
48
- "browserslist": {
49
- "production": [
50
- ">0.2%",
51
- "not dead",
52
- "not op_mini all"
53
- ],
54
- "development": [
55
- "last 1 chrome version",
56
- "last 1 firefox version",
57
- "last 1 safari version"
58
- ]
59
- },
60
- "peerDependencies": {
61
- "react": ">=18",
62
- "react-dom": ">=18",
63
- "tailwindcss": ">=3.0.0"
64
- },
65
- "dependencies": {
66
- "@headlessui/react": "^2.1.8",
67
- "@mdxeditor/editor": "^3.36.0",
68
- "chart.js": "^4.4.4",
69
- "classnames": "^2.5.1",
70
- "cloudinary-react": "^1.8.1",
71
- "d3": "^7.9.0",
72
- "d3-force": "^3.0.0",
73
- "emoji-flags": "^1.3.0",
74
- "formik": "^2.4.5",
75
- "framer-motion": "^12.23.24",
76
- "react-beautiful-dnd": "^13.1.1",
77
- "react-chartjs-2": "^5.2.0",
78
- "react-icons": "^4.12.0",
79
- "react-simple-maps": "^3.0.0",
80
- "react-toastify": "^10.0.5",
81
- "react-world-flags": "^1.6.0",
82
- "yup": "^1.3.3"
83
- },
84
- "devDependencies": {
85
- "@rollup/plugin-commonjs": "^17.0.0",
86
- "@rollup/plugin-json": "^6.1.0",
87
- "@rollup/plugin-node-resolve": "^11.0.0",
88
- "@rollup/plugin-typescript": "^11.1.5",
89
- "@storybook/addon-essentials": "^8.5.0",
90
- "@storybook/addon-interactions": "^8.5.0",
91
- "@storybook/addon-links": "^8.5.0",
92
- "@storybook/addon-onboarding": "^8.5.0",
93
- "@storybook/blocks": "^8.5.0",
94
- "@storybook/preset-create-react-app": "^8.5.0",
95
- "@storybook/react": "^8.5.0",
96
- "@storybook/react-webpack5": "^8.5.0",
97
- "@storybook/test": "^8.5.0",
98
- "@types/d3": "^7.4.3",
99
- "@types/d3-force": "^3.0.10",
100
- "@types/emoji-flags": "^1.3.3",
101
- "@types/jest": "^30.0.0",
102
- "@types/node": "^24.0.3",
103
- "@types/react": "^19.0.10",
104
- "@types/react-beautiful-dnd": "^13.1.8",
105
- "@types/react-chartjs-2": "^2.5.7",
106
- "@types/react-dom": "^19.0.4",
107
- "@types/react-simple-maps": "^3.0.6",
108
- "@types/react-world-flags": "^1.6.0",
109
- "autoprefixer": "^10.4.16",
110
- "cssnano": "^6.0.3",
111
- "eslint-plugin-storybook": "^0.11.2",
112
- "postcss": "^8.4.33",
113
- "prop-types": "^15.8.1",
114
- "react-scripts": "5.0.1",
115
- "rollup": "^2.79.2",
116
- "rollup-plugin-peer-deps-external": "^2.2.4",
117
- "rollup-plugin-postcss": "^4.0.2",
118
- "rollup-plugin-terser": "^7.0.2",
119
- "rollup-plugin-typescript2": "^0.36.0",
120
- "storybook": "^8.5.0",
121
- "tailwindcss": "^3.4.1",
122
- "tslib": "^2.6.2",
123
- "typescript": "^4.9.5"
124
- }
125
- }
1
+ {
2
+ "name": "elseware-ui",
3
+ "version": "2.20.4",
4
+ "private": false,
5
+ "description": "A modern and customizable React UI component library by elseware Technology.",
6
+ "keywords": [
7
+ "react",
8
+ "ui-library",
9
+ "component-library",
10
+ "tailwind",
11
+ "design-system",
12
+ "elseware"
13
+ ],
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/elsewaretechnologies/elseware-ui.git"
17
+ },
18
+ "author": "elseware Technology <elsewaretechnology@gmail.com>",
19
+ "license": "MIT",
20
+ "main": "./build/index.js",
21
+ "module": "./build/index.es.js",
22
+ "types": "./build/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "import": "./build/index.es.js",
26
+ "require": "./build/index.js",
27
+ "types": "./build/index.d.ts"
28
+ }
29
+ },
30
+ "files": [
31
+ "build"
32
+ ],
33
+ "scripts": {
34
+ "dev": "storybook dev -p 6006",
35
+ "build": "rollup -c",
36
+ "build:storybook": "storybook build",
37
+ "clean": "rm -rf build dist node_modules/.cache",
38
+ "prepare": "npm run build",
39
+ "release": "npm publish --access public"
40
+ },
41
+ "eslintConfig": {
42
+ "extends": [
43
+ "react-app",
44
+ "react-app/jest",
45
+ "plugin:storybook/recommended"
46
+ ]
47
+ },
48
+ "browserslist": {
49
+ "production": [
50
+ ">0.2%",
51
+ "not dead",
52
+ "not op_mini all"
53
+ ],
54
+ "development": [
55
+ "last 1 chrome version",
56
+ "last 1 firefox version",
57
+ "last 1 safari version"
58
+ ]
59
+ },
60
+ "peerDependencies": {
61
+ "react": ">=18",
62
+ "react-dom": ">=18",
63
+ "tailwindcss": ">=3.0.0"
64
+ },
65
+ "dependencies": {
66
+ "@headlessui/react": "^2.1.8",
67
+ "@mdxeditor/editor": "^3.36.0",
68
+ "chart.js": "^4.4.4",
69
+ "classnames": "^2.5.1",
70
+ "cloudinary-react": "^1.8.1",
71
+ "d3": "^7.9.0",
72
+ "d3-force": "^3.0.0",
73
+ "emoji-flags": "^1.3.0",
74
+ "formik": "^2.4.5",
75
+ "framer-motion": "^12.23.24",
76
+ "react-beautiful-dnd": "^13.1.1",
77
+ "react-chartjs-2": "^5.2.0",
78
+ "react-icons": "^4.12.0",
79
+ "react-simple-maps": "^3.0.0",
80
+ "react-toastify": "^10.0.5",
81
+ "react-world-flags": "^1.6.0",
82
+ "yup": "^1.3.3"
83
+ },
84
+ "devDependencies": {
85
+ "@rollup/plugin-commonjs": "^17.0.0",
86
+ "@rollup/plugin-json": "^6.1.0",
87
+ "@rollup/plugin-node-resolve": "^11.0.0",
88
+ "@rollup/plugin-typescript": "^11.1.5",
89
+ "@storybook/addon-essentials": "^8.5.0",
90
+ "@storybook/addon-interactions": "^8.5.0",
91
+ "@storybook/addon-links": "^8.5.0",
92
+ "@storybook/addon-onboarding": "^8.5.0",
93
+ "@storybook/blocks": "^8.5.0",
94
+ "@storybook/preset-create-react-app": "^8.5.0",
95
+ "@storybook/react": "^8.5.0",
96
+ "@storybook/react-webpack5": "^8.5.0",
97
+ "@storybook/test": "^8.5.0",
98
+ "@types/d3": "^7.4.3",
99
+ "@types/d3-force": "^3.0.10",
100
+ "@types/emoji-flags": "^1.3.3",
101
+ "@types/jest": "^30.0.0",
102
+ "@types/node": "^24.0.3",
103
+ "@types/react": "^19.0.10",
104
+ "@types/react-beautiful-dnd": "^13.1.8",
105
+ "@types/react-chartjs-2": "^2.5.7",
106
+ "@types/react-dom": "^19.0.4",
107
+ "@types/react-simple-maps": "^3.0.6",
108
+ "@types/react-world-flags": "^1.6.0",
109
+ "autoprefixer": "^10.4.16",
110
+ "cssnano": "^6.0.3",
111
+ "eslint-plugin-storybook": "^0.11.2",
112
+ "postcss": "^8.4.33",
113
+ "prop-types": "^15.8.1",
114
+ "react-scripts": "5.0.1",
115
+ "rollup": "^2.79.2",
116
+ "rollup-plugin-peer-deps-external": "^2.2.4",
117
+ "rollup-plugin-postcss": "^4.0.2",
118
+ "rollup-plugin-terser": "^7.0.2",
119
+ "rollup-plugin-typescript2": "^0.36.0",
120
+ "storybook": "^8.5.0",
121
+ "tailwindcss": "^3.4.1",
122
+ "tslib": "^2.6.2",
123
+ "typescript": "^4.9.5"
124
+ }
125
+ }