@alifd/chat 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +1 -0
  2. package/es/button/index.d.ts +1 -0
  3. package/es/button/index.js +1 -0
  4. package/es/button/main.scss +0 -0
  5. package/es/button/style.d.ts +1 -0
  6. package/es/button/style.js +1 -0
  7. package/es/button/types.d.ts +123 -0
  8. package/es/button/types.js +1 -0
  9. package/es/button/view/button.d.ts +23 -0
  10. package/es/button/view/button.js +26 -0
  11. package/es/float-button/hooks/useAutoAlign.d.ts +11 -0
  12. package/es/float-button/hooks/useAutoAlign.js +45 -0
  13. package/es/float-button/hooks/useAutoHide.d.ts +15 -0
  14. package/es/float-button/hooks/useAutoHide.js +157 -0
  15. package/es/float-button/hooks/useDragable.d.ts +9 -0
  16. package/es/float-button/hooks/useDragable.js +128 -0
  17. package/es/float-button/hooks/useNestleEdge.d.ts +13 -0
  18. package/es/float-button/hooks/useNestleEdge.js +77 -0
  19. package/es/float-button/index.d.ts +6 -0
  20. package/es/float-button/index.js +5 -0
  21. package/es/float-button/main.scss +16 -0
  22. package/es/float-button/style.d.ts +2 -0
  23. package/es/float-button/style.js +2 -0
  24. package/es/float-button/types.d.ts +225 -0
  25. package/es/float-button/types.js +1 -0
  26. package/es/float-button/util.d.ts +8 -0
  27. package/es/float-button/util.js +67 -0
  28. package/es/float-button/view/backtop.d.ts +4 -0
  29. package/es/float-button/view/backtop.js +73 -0
  30. package/es/float-button/view/balloon.d.ts +8 -0
  31. package/es/float-button/view/balloon.js +12 -0
  32. package/es/float-button/view/drawer.d.ts +2 -0
  33. package/es/float-button/view/drawer.js +4 -0
  34. package/es/float-button/view/float-button.d.ts +4 -0
  35. package/es/float-button/view/float-button.js +117 -0
  36. package/es/float-button/view/inner-drawer.d.ts +2 -0
  37. package/es/float-button/view/inner-drawer.js +4 -0
  38. package/es/index.d.ts +2 -0
  39. package/es/index.js +2 -0
  40. package/es/utils/common.d.ts +2 -0
  41. package/es/utils/common.js +8 -0
  42. package/es/utils/func.d.ts +3 -0
  43. package/es/utils/func.js +30 -0
  44. package/es/utils/hooks/useControlable.d.ts +6 -0
  45. package/es/utils/hooks/useControlable.js +27 -0
  46. package/es/utils/hooks/useDebounce.d.ts +2 -0
  47. package/es/utils/hooks/useDebounce.js +9 -0
  48. package/es/utils/hooks/useThrottle.d.ts +2 -0
  49. package/es/utils/hooks/useThrottle.js +9 -0
  50. package/es/utils/index.d.ts +6 -0
  51. package/es/utils/index.js +6 -0
  52. package/es/utils/types.d.ts +2 -0
  53. package/es/utils/types.js +1 -0
  54. package/lib/button/index.d.ts +1 -0
  55. package/lib/button/index.js +8 -0
  56. package/lib/button/main.scss +0 -0
  57. package/lib/button/style.d.ts +1 -0
  58. package/lib/button/style.js +3 -0
  59. package/lib/button/types.d.ts +123 -0
  60. package/lib/button/types.js +2 -0
  61. package/lib/button/view/button.d.ts +23 -0
  62. package/lib/button/view/button.js +29 -0
  63. package/lib/float-button/hooks/useAutoAlign.d.ts +11 -0
  64. package/lib/float-button/hooks/useAutoAlign.js +49 -0
  65. package/lib/float-button/hooks/useAutoHide.d.ts +15 -0
  66. package/lib/float-button/hooks/useAutoHide.js +161 -0
  67. package/lib/float-button/hooks/useDragable.d.ts +9 -0
  68. package/lib/float-button/hooks/useDragable.js +132 -0
  69. package/lib/float-button/hooks/useNestleEdge.d.ts +13 -0
  70. package/lib/float-button/hooks/useNestleEdge.js +81 -0
  71. package/lib/float-button/index.d.ts +6 -0
  72. package/lib/float-button/index.js +8 -0
  73. package/lib/float-button/main.scss +16 -0
  74. package/lib/float-button/style.d.ts +2 -0
  75. package/lib/float-button/style.js +4 -0
  76. package/lib/float-button/types.d.ts +225 -0
  77. package/lib/float-button/types.js +2 -0
  78. package/lib/float-button/util.d.ts +8 -0
  79. package/lib/float-button/util.js +74 -0
  80. package/lib/float-button/view/backtop.d.ts +4 -0
  81. package/lib/float-button/view/backtop.js +76 -0
  82. package/lib/float-button/view/balloon.d.ts +8 -0
  83. package/lib/float-button/view/balloon.js +16 -0
  84. package/lib/float-button/view/drawer.d.ts +2 -0
  85. package/lib/float-button/view/drawer.js +9 -0
  86. package/lib/float-button/view/float-button.d.ts +4 -0
  87. package/lib/float-button/view/float-button.js +119 -0
  88. package/lib/float-button/view/inner-drawer.d.ts +2 -0
  89. package/lib/float-button/view/inner-drawer.js +9 -0
  90. package/lib/index.d.ts +2 -0
  91. package/lib/index.js +9 -0
  92. package/lib/utils/common.d.ts +2 -0
  93. package/lib/utils/common.js +12 -0
  94. package/lib/utils/func.d.ts +3 -0
  95. package/lib/utils/func.js +35 -0
  96. package/lib/utils/hooks/useControlable.d.ts +6 -0
  97. package/lib/utils/hooks/useControlable.js +31 -0
  98. package/lib/utils/hooks/useDebounce.d.ts +2 -0
  99. package/lib/utils/hooks/useDebounce.js +13 -0
  100. package/lib/utils/hooks/useThrottle.d.ts +2 -0
  101. package/lib/utils/hooks/useThrottle.js +13 -0
  102. package/lib/utils/index.d.ts +6 -0
  103. package/lib/utils/index.js +13 -0
  104. package/lib/utils/types.d.ts +2 -0
  105. package/lib/utils/types.js +2 -0
  106. package/package.json +103 -0
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
+ const next_1 = require("@alifd/next");
7
+ const index_1 = require("../../utils/index");
8
+ const useAutoHide_1 = require("../hooks/useAutoHide");
9
+ const useAutoAlign_1 = require("../hooks/useAutoAlign");
10
+ const useNestleEdge_1 = require("../hooks/useNestleEdge");
11
+ const useDragable_1 = require("../hooks/useDragable");
12
+ const FloatButton = (0, react_1.forwardRef)((_a, ref) => {
13
+ var { className, style, prefix = 'next-', type = 'balloon', addonAfter, addonBefore, dragable, safeAreaMargin = [10, 10, 10, 10], autoNestleEdge = true, interactiveEdges = ['left', 'right'], autoHide, autoAlign, leftSizeOfHidden, defaultPosition, trigger, triggerType = 'click', showClose = false, align, balloonProps, children } = _a, others = tslib_1.__rest(_a, ["className", "style", "prefix", "type", "addonAfter", "addonBefore", "dragable", "safeAreaMargin", "autoNestleEdge", "interactiveEdges", "autoHide", "autoAlign", "leftSizeOfHidden", "defaultPosition", "trigger", "triggerType", "showClose", "align", "balloonProps", "children"]);
14
+ const elRef = (0, react_1.useRef)(null);
15
+ const triggerRef = (0, react_1.useRef)(null);
16
+ const [el, setEl] = (0, react_1.useState)(null);
17
+ const [triggerEl, setTriggerEl] = (0, react_1.useState)(null);
18
+ const draggedRef = (0, react_1.useRef)(false);
19
+ const cls = `${prefix}float-button`;
20
+ const [visible, onVisibleChange] = (0, index_1.useControlable)(others, {
21
+ valueName: 'visible',
22
+ changeName: 'onVisibleChange',
23
+ });
24
+ (0, react_1.useEffect)(() => {
25
+ setEl(elRef.current);
26
+ setTriggerEl(triggerRef.current);
27
+ }, []);
28
+ const { align: currentAlign, update: updateAlign } = (0, useAutoAlign_1.useAutoAlign)(el === null || el === void 0 ? void 0 : el.querySelector(`.${cls}-popup`), triggerEl, {
29
+ enable: type === 'balloon' && autoAlign,
30
+ defaultAlign: align,
31
+ });
32
+ const { isHideRef, setHide, handleMove, saveRestorePosition } = (0, useAutoHide_1.useAutoHide)(el, {
33
+ enable: !visible && autoHide,
34
+ interactiveEdges,
35
+ leftSize: leftSizeOfHidden,
36
+ });
37
+ (0, react_1.useEffect)(() => {
38
+ if (visible) {
39
+ setHide(false);
40
+ updateAlign();
41
+ }
42
+ }, [visible]);
43
+ const { update: updateNestleEdge } = (0, useNestleEdge_1.useNestleEdge)(el, {
44
+ enable: !!autoNestleEdge,
45
+ safeAreaMargin,
46
+ interactiveEdges,
47
+ onUpdate(position) {
48
+ if (isHideRef.current) {
49
+ saveRestorePosition(position);
50
+ return false;
51
+ }
52
+ },
53
+ });
54
+ (0, react_1.useImperativeHandle)(ref, () => ({
55
+ setVisible(value) {
56
+ onVisibleChange(value, 'api');
57
+ },
58
+ setHide(isHide) {
59
+ setHide(isHide);
60
+ },
61
+ updateAlign,
62
+ updateNestleEdge,
63
+ }));
64
+ const { className: dragClassName, style: dragStyle } = (0, useDragable_1.useDragable)(el, {
65
+ enable: dragable,
66
+ safeAreaMargin,
67
+ defaultPosition,
68
+ onDragBefore() {
69
+ draggedRef.current = false;
70
+ },
71
+ onDraging(_, e) {
72
+ draggedRef.current = true;
73
+ updateAlign();
74
+ handleMove(e);
75
+ if (isHideRef.current) {
76
+ return false;
77
+ }
78
+ },
79
+ onDragend() {
80
+ if (!isHideRef.current) {
81
+ Promise.resolve().then(() => updateNestleEdge());
82
+ }
83
+ },
84
+ });
85
+ const classNames = (0, classnames_1.default)(cls, className, dragClassName);
86
+ const renderBalloon = () => {
87
+ return (react_1.default.createElement(next_1.Balloon, Object.assign({ visible: visible, onVisibleChange: (...args) => {
88
+ if (draggedRef.current) {
89
+ return;
90
+ }
91
+ onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(...args);
92
+ }, popupClassName: `${cls}-popup`, trigger: trigger, popupContainer: () => el, triggerType: triggerType, align: currentAlign, v2: true, closable: showClose, autoAdjust: false }, balloonProps), children));
93
+ };
94
+ const renderDrawer = () => {
95
+ return react_1.default.createElement("div", null);
96
+ };
97
+ const renderInnerDrawer = () => {
98
+ return react_1.default.createElement("div", null);
99
+ };
100
+ const renderView = () => {
101
+ switch (type) {
102
+ case 'drawer': {
103
+ return renderDrawer();
104
+ }
105
+ case 'inner-drawer': {
106
+ return renderInnerDrawer();
107
+ }
108
+ default: {
109
+ return renderBalloon();
110
+ }
111
+ }
112
+ };
113
+ return (react_1.default.createElement("div", { className: classNames, style: Object.assign(Object.assign({}, style), dragStyle), ref: elRef },
114
+ !!addonBefore && (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${cls}-addon`, `${cls}-addon--before`) }, addonBefore)),
115
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(`${cls}-trigger`), ref: triggerRef }, renderView()),
116
+ !!addonAfter && (react_1.default.createElement("div", { className: (0, classnames_1.default)(`${cls}-addon`, `${cls}-addon--after`) }, addonAfter))));
117
+ });
118
+ FloatButton.displayName = 'FloatButton';
119
+ exports.default = next_1.ConfigProvider.config(FloatButton);
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function InnerDrawer(): React.JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InnerDrawer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ function InnerDrawer() {
7
+ return react_1.default.createElement("div", null, "inner-drawer");
8
+ }
9
+ exports.InnerDrawer = InnerDrawer;
package/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { default as Button } from './button';
2
+ export declare const version: string;
package/lib/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.version = exports.Button = void 0;
7
+ var button_1 = require("./button");
8
+ Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return __importDefault(button_1).default; } });
9
+ exports.version = '0.0.1';
@@ -0,0 +1,2 @@
1
+ import { type ComponentType } from 'react';
2
+ export declare function assignSubComponent<T extends ComponentType, P extends Record<string, unknown>>(Component: T, SubComponents: P): T & P;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assignSubComponent = void 0;
4
+ function assignSubComponent(Component, SubComponents) {
5
+ for (const key in SubComponents) {
6
+ if (Object.prototype.hasOwnProperty.call(SubComponents, key)) {
7
+ Component[key] = SubComponents[key];
8
+ }
9
+ }
10
+ return Component;
11
+ }
12
+ exports.assignSubComponent = assignSubComponent;
@@ -0,0 +1,3 @@
1
+ import { type AnyFunction } from './types';
2
+ export declare function debounce<Callback extends AnyFunction>(callback: Callback, delay: number, leading?: boolean): (...args: Parameters<Callback>) => void;
3
+ export declare function throttle<Callback extends AnyFunction>(callback: Callback, delay: number): (...args: Parameters<Callback>) => void;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.throttle = exports.debounce = void 0;
4
+ function debounce(callback, delay, leading = false) {
5
+ let timer;
6
+ let isFirstRun = true;
7
+ const fn = (...args) => {
8
+ if (isFirstRun && leading) {
9
+ isFirstRun = false;
10
+ timer = setTimeout(() => {
11
+ callback(...args);
12
+ });
13
+ return;
14
+ }
15
+ isFirstRun = false;
16
+ clearTimeout(timer);
17
+ timer = setTimeout(() => {
18
+ callback(...args);
19
+ }, delay);
20
+ };
21
+ return fn;
22
+ }
23
+ exports.debounce = debounce;
24
+ function throttle(callback, delay) {
25
+ let lastTime;
26
+ const fn = (...args) => {
27
+ const time = Date.now();
28
+ if (!lastTime || time - lastTime > delay) {
29
+ Promise.resolve().then(() => callback(...args));
30
+ lastTime = time;
31
+ }
32
+ };
33
+ return fn;
34
+ }
35
+ exports.throttle = throttle;
@@ -0,0 +1,6 @@
1
+ export interface ControlableOptions {
2
+ valueName?: string;
3
+ defaultValueName?: string;
4
+ changeName?: string;
5
+ }
6
+ export declare function useControlable<Value = unknown, OnChange extends (nextValue: Value, ...rest: unknown[]) => unknown = (nextValue: Value, ...rest: unknown[]) => unknown>(props: Record<string, unknown>, { valueName, defaultValueName, changeName, }?: ControlableOptions): readonly [Value, OnChange];
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useControlable = void 0;
4
+ const react_1 = require("react");
5
+ function upperFirst(str) {
6
+ return `${str.slice(0, 1).toUpperCase()}${str.slice(1)}`;
7
+ }
8
+ function getDefaultValueName(valueName) {
9
+ return `default${upperFirst(valueName)}`;
10
+ }
11
+ function useControlable(props, { valueName = 'value', defaultValueName = getDefaultValueName(valueName), changeName = 'onChange', } = {}) {
12
+ const isControl = valueName in props;
13
+ const propValue = (isControl ? props[valueName] : props[defaultValueName]);
14
+ const propOnChange = props[changeName];
15
+ const [value, setValue] = (0, react_1.useState)(() => propValue);
16
+ const handleChange = (nextValue, ...rest) => {
17
+ if (!isControl) {
18
+ setValue(() => nextValue);
19
+ }
20
+ if (typeof propOnChange === 'function') {
21
+ propOnChange(nextValue, ...rest);
22
+ }
23
+ };
24
+ (0, react_1.useEffect)(() => {
25
+ if (value !== propValue) {
26
+ setValue(() => propValue);
27
+ }
28
+ }, [propValue]);
29
+ return [value, handleChange];
30
+ }
31
+ exports.useControlable = useControlable;
@@ -0,0 +1,2 @@
1
+ import { type AnyFunction } from '../types';
2
+ export declare function useDebounce<Callback extends AnyFunction>(callback: Callback, delay?: number, leading?: boolean): (...args: Parameters<Callback>) => void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDebounce = void 0;
4
+ const react_1 = require("react");
5
+ const func_1 = require("../func");
6
+ function useDebounce(callback, delay = 0, leading = false) {
7
+ const callbackRef = (0, react_1.useRef)(callback);
8
+ callbackRef.current = callback;
9
+ return (0, react_1.useMemo)(() => {
10
+ return (0, func_1.debounce)((...args) => callbackRef.current(...args), delay, leading);
11
+ }, [delay, leading]);
12
+ }
13
+ exports.useDebounce = useDebounce;
@@ -0,0 +1,2 @@
1
+ import { type AnyFunction } from '../types';
2
+ export declare function useThrottle<Callback extends AnyFunction>(callback: Callback, delay?: number): (...args: Parameters<Callback>) => void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useThrottle = void 0;
4
+ const react_1 = require("react");
5
+ const func_1 = require("../func");
6
+ function useThrottle(callback, delay = 0) {
7
+ const callbackRef = (0, react_1.useRef)(callback);
8
+ callbackRef.current = callback;
9
+ return (0, react_1.useMemo)(() => {
10
+ return (0, func_1.throttle)((...args) => callbackRef.current(...args), delay);
11
+ }, [delay]);
12
+ }
13
+ exports.useThrottle = useThrottle;
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+ export * from './common';
3
+ export * from './func';
4
+ export { useControlable } from './hooks/useControlable';
5
+ export { useDebounce } from './hooks/useDebounce';
6
+ export { useThrottle } from './hooks/useThrottle';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useThrottle = exports.useDebounce = exports.useControlable = void 0;
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./types"), exports);
6
+ tslib_1.__exportStar(require("./common"), exports);
7
+ tslib_1.__exportStar(require("./func"), exports);
8
+ var useControlable_1 = require("./hooks/useControlable");
9
+ Object.defineProperty(exports, "useControlable", { enumerable: true, get: function () { return useControlable_1.useControlable; } });
10
+ var useDebounce_1 = require("./hooks/useDebounce");
11
+ Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function () { return useDebounce_1.useDebounce; } });
12
+ var useThrottle_1 = require("./hooks/useThrottle");
13
+ Object.defineProperty(exports, "useThrottle", { enumerable: true, get: function () { return useThrottle_1.useThrottle; } });
@@ -0,0 +1,2 @@
1
+ export type AnyFunction = (...args: any[]) => any;
2
+ export type Timer = ReturnType<typeof setTimeout>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "@alifd/chat",
3
+ "version": "0.0.1",
4
+ "description": "A configurable component library for chat built on React.",
5
+ "main": "lib/index.js",
6
+ "module": "es/index.js",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./es/index.js",
10
+ "require": "./lib/index.js"
11
+ },
12
+ "./package.json": "./package.json",
13
+ "./button": {
14
+ "import": "./es/button/index.js",
15
+ "require": "./lib/button/index.js"
16
+ },
17
+ "./float-button": {
18
+ "import": "./es/float-button/index.js",
19
+ "require": "./lib/float-button/index.js"
20
+ },
21
+ "./utils": {
22
+ "import": "./es/utils/index.js",
23
+ "require": "./lib/utils/index.js"
24
+ }
25
+ },
26
+ "files": [
27
+ "es",
28
+ "lib"
29
+ ],
30
+ "scripts": {
31
+ "start": "NODE_ENV=development tsx ./scripts/start.ts",
32
+ "build": "npm run build:es && npm run build:lib && npm run build:others",
33
+ "build:es": "rm -rf es && tsc -p ./tsconfig.build.json --outDir es --module esnext",
34
+ "build:lib": "rm -rf lib && tsc -p ./tsconfig.build.json --outDir lib --module commonjs",
35
+ "build:others": "tsx ./scripts/build.ts"
36
+ },
37
+ "devDependencies": {
38
+ "@alifd/eslint-config-next": "^2.0.0",
39
+ "@alifd/next": "^1.27.2",
40
+ "@microsoft/tsdoc": "^0.14.2",
41
+ "@microsoft/tsdoc-config": "^0.16.2",
42
+ "@rspack/core": "^0.5.1",
43
+ "@rspack/dev-server": "^0.5.1",
44
+ "@rspack/plugin-react-refresh": "^0.5.1",
45
+ "@swc/core": "^1.3.104",
46
+ "@types/fs-extra": "^11.0.4",
47
+ "@types/lodash": "^4.14.202",
48
+ "@types/minimist": "^1.2.5",
49
+ "@types/react": "^16.0.0",
50
+ "@types/react-dom": "^16.0.0",
51
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
52
+ "@typescript-eslint/parser": "^6.19.0",
53
+ "chalk": "^5.3.0",
54
+ "eslint": "^8.56.0",
55
+ "eslint-config-prettier": "^9.1.0",
56
+ "eslint-plugin-cypress": "^2.15.1",
57
+ "eslint-plugin-import": "^2.29.1",
58
+ "eslint-plugin-jsx-a11y": "^6.8.0",
59
+ "eslint-plugin-markdown": "^3.0.1",
60
+ "eslint-plugin-react": "^7.33.2",
61
+ "eslint-plugin-tsdoc": "^0.2.17",
62
+ "fs-extra": "^11.2.0",
63
+ "glob": "^10.3.10",
64
+ "hastscript": "^9.0.0",
65
+ "json5": "^2.2.3",
66
+ "lodash": "^4.17.21",
67
+ "minimist": "^1.2.8",
68
+ "moment": "^2.30.1",
69
+ "prettier": "^3.2.4",
70
+ "react": "^16.14.0",
71
+ "react-dom": "^16.14.0",
72
+ "react-live": "^4.1.5",
73
+ "react-markdown": "^9.0.1",
74
+ "react-refresh": "^0.14.0",
75
+ "rehype-autolink-headings": "^7.1.0",
76
+ "rehype-slug": "^6.0.0",
77
+ "remark-gfm": "^4.0.0",
78
+ "sass": "^1.70.0",
79
+ "sass-loader": "^14.0.0",
80
+ "ts-morph": "^21.0.1",
81
+ "tsx": "^4.7.0",
82
+ "typescript": "^5.3.3"
83
+ },
84
+ "peerDependencies": {
85
+ "react": ">=16.0.0",
86
+ "react-dom": ">=16.0.0"
87
+ },
88
+ "dependencies": {
89
+ "tslib": "^2.6.2"
90
+ },
91
+ "sideEffects": [
92
+ "es/**/style.js",
93
+ "lib/**/style.js",
94
+ "*.scss",
95
+ "*.css"
96
+ ],
97
+ "repository": "git@gitlab.alibaba-inc.com:fusion-chat/fusion-chat.git",
98
+ "license": "MIT",
99
+ "publishConfig": {
100
+ "access": "public",
101
+ "registry": "https://registry.npmjs.org"
102
+ }
103
+ }