@gorilla-engine-sdk/ge-dialogs-lib 0.5.7

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 (47) hide show
  1. package/LICENSE.md +64 -0
  2. package/README.md +376 -0
  3. package/dist/Dialogs.d.ts +8 -0
  4. package/dist/Dialogs.js +51 -0
  5. package/dist/DialogsStyleState.d.ts +127 -0
  6. package/dist/DialogsStyleState.js +97 -0
  7. package/dist/ErrorBoundary.d.ts +13 -0
  8. package/dist/ErrorBoundary.js +58 -0
  9. package/dist/dialogsDefaultStyle.d.ts +2 -0
  10. package/dist/dialogsDefaultStyle.js +87 -0
  11. package/dist/index.d.ts +13 -0
  12. package/dist/index.js +32 -0
  13. package/dist/modals/MessageModal.d.ts +7 -0
  14. package/dist/modals/MessageModal.js +55 -0
  15. package/dist/modals/ModalContext.d.ts +18 -0
  16. package/dist/modals/ModalContext.js +52 -0
  17. package/dist/modals/ModalProvider.d.ts +25 -0
  18. package/dist/modals/ModalProvider.js +75 -0
  19. package/dist/modals/ModalRoot.d.ts +30 -0
  20. package/dist/modals/ModalRoot.js +64 -0
  21. package/dist/modals/components/FooterButtons.d.ts +15 -0
  22. package/dist/modals/components/FooterButtons.js +59 -0
  23. package/dist/modals/components/Modal.d.ts +27 -0
  24. package/dist/modals/components/Modal.js +124 -0
  25. package/dist/modals/useModal.d.ts +12 -0
  26. package/dist/modals/useModal.js +55 -0
  27. package/dist/notifications/DefaultNotification.d.ts +10 -0
  28. package/dist/notifications/DefaultNotification.js +87 -0
  29. package/dist/notifications/NotificationContext.d.ts +18 -0
  30. package/dist/notifications/NotificationContext.js +52 -0
  31. package/dist/notifications/NotificationProvider.d.ts +17 -0
  32. package/dist/notifications/NotificationProvider.js +73 -0
  33. package/dist/notifications/NotificationRoot.d.ts +30 -0
  34. package/dist/notifications/NotificationRoot.js +71 -0
  35. package/dist/notifications/useNotification.d.ts +19 -0
  36. package/dist/notifications/useNotification.js +98 -0
  37. package/dist/tooltips/DefaultToolTip.d.ts +9 -0
  38. package/dist/tooltips/DefaultToolTip.js +119 -0
  39. package/dist/tooltips/ToolTipContext.d.ts +18 -0
  40. package/dist/tooltips/ToolTipContext.js +52 -0
  41. package/dist/tooltips/ToolTipProvider.d.ts +25 -0
  42. package/dist/tooltips/ToolTipProvider.js +92 -0
  43. package/dist/tooltips/ToolTipRoot.d.ts +30 -0
  44. package/dist/tooltips/ToolTipRoot.js +61 -0
  45. package/dist/tooltips/useToolTip.d.ts +14 -0
  46. package/dist/tooltips/useToolTip.js +102 -0
  47. package/package.json +44 -0
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import { ToolTipType } from './ToolTipContext';
3
+ /**
4
+ * ToolTip Root Props
5
+ */
6
+ interface ToolTipRootProps {
7
+ /**
8
+ * Map of ToolTip instances associated by unique ids
9
+ */
10
+ ToolTips: Record<string, ToolTipType>;
11
+ /**
12
+ * Container component for ToolTips
13
+ *
14
+ * ToolTips will be rendered as children of this component. React.Fragment is
15
+ * used by defualt, specifying a different component can change the way ToolTips
16
+ * are rendered across the whole application.
17
+ */
18
+ component?: React.ComponentType<any>;
19
+ /**
20
+ * Specifies the root element to render ToolTips into
21
+ */
22
+ container?: Element;
23
+ }
24
+ /**
25
+ * ToolTip Root
26
+ *
27
+ * Renders ToolTips using react portal.
28
+ */
29
+ export declare const ToolTipRoot: React.MemoExoticComponent<({ ToolTips, container, component: RootComponent }: ToolTipRootProps) => React.JSX.Element>;
30
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ToolTipRoot = void 0;
37
+ const react_1 = require("react");
38
+ const React = __importStar(require("react"));
39
+ const DialogsStyleState_1 = require("../DialogsStyleState");
40
+ /**
41
+ * Component responsible for rendering the ToolTip.
42
+ *
43
+ * The identity of `Component` may change dependeing on the inputs passed to
44
+ * `useToolTip`. If we simply rendered `<Component />` then the ToolTip would be
45
+ * susceptible to rerenders whenever one of the inputs change.
46
+ */
47
+ const ToolTipRenderer = (0, react_1.memo)(({ component, width, height, ...rest }) => {
48
+ const rendered = component(rest);
49
+ return React.createElement(React.Fragment, null, rendered);
50
+ });
51
+ /**
52
+ * ToolTip Root
53
+ *
54
+ * Renders ToolTips using react portal.
55
+ */
56
+ exports.ToolTipRoot = (0, react_1.memo)(({ ToolTips, container, component: RootComponent = React.Fragment }) => {
57
+ //const [mountNode, setMountNode] = useState<Element | undefined>(undefined);
58
+ const stylesState = (0, DialogsStyleState_1.useDialogsStylesState)();
59
+ return (React.createElement(RootComponent, null, Object.keys(ToolTips).map((key) => (React.createElement(ToolTipRenderer, { key: key, component: ToolTips[key], width: stylesState.pluginWidth, height: stylesState.pluginHeight })))));
60
+ });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9vbFRpcFJvb3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHRpcHMvVG9vbFRpcFJvb3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlDQUFrRDtBQUNsRCw2Q0FBK0I7QUFFL0IsNERBQWdGO0FBdUNoRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFBLFlBQUksRUFBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLEVBQXdCLEVBQUUsRUFBRTtJQUMzRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFvQixDQUFDO0lBQ3BELE9BQU8sMENBQUcsUUFBUSxDQUFJLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ1UsUUFBQSxXQUFXLEdBQUcsSUFBQSxZQUFJLEVBQzdCLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBb0IsRUFBRSxFQUFFO0lBQ3ZGLDZFQUE2RTtJQUM3RSxNQUFNLFdBQVcsR0FBc0IsSUFBQSx5Q0FBcUIsR0FBRSxDQUFDO0lBRS9ELE9BQU8sQ0FDTCxvQkFBQyxhQUFhLFFBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQ2xDLG9CQUFDLGVBQWUsSUFDZCxHQUFHLEVBQUUsR0FBRyxFQUNSLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ3hCLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUM5QixNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksR0FDaEMsQ0FDSCxDQUFDLENBQ1ksQ0FDakIsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,14 @@
1
+ import { ToolTipsStyle } from '../DialogsStyleState';
2
+ /**
3
+ * Callback types provided for descriptive type-hints
4
+ */
5
+ type ShowToolTip = (compnent: any, id: string, style?: ToolTipsStyle) => void;
6
+ type HideToolTip = () => void;
7
+ /**
8
+ * React hook for showing ToolTip windows
9
+ */
10
+ type UseToolTipProps = {
11
+ toolTipStyle: ToolTipsStyle;
12
+ };
13
+ export declare const useToolTip: (props?: UseToolTipProps) => [ShowToolTip, HideToolTip];
14
+ export {};
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.useToolTip = void 0;
40
+ const React = __importStar(require("react"));
41
+ const react_1 = require("react");
42
+ const ToolTipContext_1 = require("./ToolTipContext");
43
+ const DefaultToolTip_1 = __importDefault(require("./DefaultToolTip"));
44
+ const DialogsStyleState_1 = require("../DialogsStyleState");
45
+ const dialogsDefaultStyle_1 = require("../dialogsDefaultStyle");
46
+ /**
47
+ * Utility function to generate unique number per component instance
48
+ */
49
+ const generateToolTipKey = (() => {
50
+ let count = 0;
51
+ return () => `${++count}`;
52
+ })();
53
+ /**
54
+ * Check whether the argument is a stateless component.
55
+ *
56
+ * We take advantage of the stateless nature of functional components to be
57
+ * inline the rendering of the ToolTip component as part of another immutable
58
+ * component.
59
+ *
60
+ * This is necessary for allowing the ToolTip to update based on the inputs passed
61
+ * as the second argument to useToolTip without unmounting the previous version of
62
+ * the ToolTip component.
63
+ */
64
+ const isFunctionalComponent = (Component) => {
65
+ const prototype = Component.prototype;
66
+ return !prototype || !prototype.isReactComponent;
67
+ };
68
+ let showToolTipInterval;
69
+ const useToolTip = (props) => {
70
+ const stylesState = (0, DialogsStyleState_1.useDialogsStylesState)();
71
+ const context = (0, react_1.useContext)(ToolTipContext_1.ToolTipContext);
72
+ const key = (0, react_1.useMemo)(generateToolTipKey, []);
73
+ const [isShown, setShown] = (0, react_1.useState)(false);
74
+ const duration = (0, react_1.useMemo)(() => {
75
+ const toolTipStyle = stylesState.toolTip ?? dialogsDefaultStyle_1.dialogsDefaultStyle.toolTip;
76
+ return toolTipStyle.showDelay ? toolTipStyle.showDelay : 0;
77
+ }, [stylesState.toolTip]);
78
+ const showToolTip = (component, id, toolTipStyle) => {
79
+ const showTT = () => {
80
+ const c = () => (React.createElement(DefaultToolTip_1.default, { component: component, id: id, toolTipStyle: toolTipStyle ? toolTipStyle : props?.toolTipStyle }));
81
+ context.showToolTip(key, c);
82
+ };
83
+ if (showToolTipInterval) {
84
+ clearInterval(showToolTipInterval);
85
+ }
86
+ if (duration) {
87
+ showToolTipInterval = setInterval(showTT, duration);
88
+ }
89
+ else {
90
+ showTT();
91
+ }
92
+ };
93
+ const hideToolTip = () => {
94
+ if (showToolTipInterval) {
95
+ clearInterval(showToolTipInterval);
96
+ }
97
+ context.hideToolTip(key);
98
+ };
99
+ return [showToolTip, hideToolTip];
100
+ };
101
+ exports.useToolTip = useToolTip;
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVG9vbFRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29sdGlwcy91c2VUb29sVGlwLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFFL0IsaUNBQXNEO0FBQ3RELHFEQUErRDtBQUMvRCxzRUFBOEM7QUFDOUMsNERBQStGO0FBQy9GLGdFQUE2RDtBQVE3RDs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7SUFDL0IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRWQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsU0FBbUIsRUFBRSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFFdEMsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFhRixJQUFJLG1CQUErQyxDQUFDO0FBRTdDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBdUIsRUFBOEIsRUFBRTtJQUNoRixNQUFNLFdBQVcsR0FBc0IsSUFBQSx5Q0FBcUIsR0FBRSxDQUFDO0lBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUEsa0JBQVUsRUFBQywrQkFBYyxDQUFDLENBQUM7SUFFM0MsTUFBTSxHQUFHLEdBQUcsSUFBQSxlQUFPLEVBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFBLGdCQUFRLEVBQVUsS0FBSyxDQUFDLENBQUM7SUFFckQsTUFBTSxRQUFRLEdBQUcsSUFBQSxlQUFPLEVBQUMsR0FBRyxFQUFFO1FBQzVCLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxPQUFPLElBQUkseUNBQW1CLENBQUMsT0FBUSxDQUFDO1FBQ3pFLE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRTFCLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBYyxFQUFFLEVBQVUsRUFBRSxZQUE0QixFQUFFLEVBQUU7UUFDL0UsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxHQUFnQixHQUFHLEVBQUUsQ0FBQyxDQUMzQixvQkFBQyx3QkFBYyxJQUNiLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLEVBQUUsRUFBRSxFQUFFLEVBQ04sWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxHQUMvRCxDQUNILENBQUM7WUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUM7UUFDRixJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixtQkFBbUIsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxFQUFFLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUM7SUFFRixPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQTFDVyxRQUFBLFVBQVUsY0EwQ3JCIn0=
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@gorilla-engine-sdk/ge-dialogs-lib",
3
+ "version": "0.5.7",
4
+ "description": "React dialogs library for Gorilla Engine plugins (modals, tooltips, notifications)",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "test": "echo \"No tests specified for ge-dialogs-lib\"",
9
+ "prepack": "npx tsc",
10
+ "start": "tsc -w",
11
+ "build": "npx tsc --declaration",
12
+ "ci:publish": "node ../../scripts/ci-publish.js"
13
+ },
14
+ "author": "UJAM Inc.",
15
+ "license": "SEE LICENSE IN LICENSE.md",
16
+ "files": [
17
+ "dist",
18
+ "LICENSE.md",
19
+ "README.md"
20
+ ],
21
+ "peerDependencies": {
22
+ "@gorilla-engine-sdk/gorilla-engine-react": "^1.6.1",
23
+ "react": "^19.0.0"
24
+ },
25
+ "devDependencies": {
26
+ "@gorilla-engine-sdk/gorilla-engine-react": "^1.6.1",
27
+ "@types/gorilla-engine": "^1.1.33",
28
+ "@types/node": "^18.11.9",
29
+ "@types/react": "^19.2.16",
30
+ "@types/react-reconciler": "^0.33.0",
31
+ "react": "^19.0.0",
32
+ "typescript": "^6.0.3"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public",
36
+ "registry": "https://registry.npmjs.org/"
37
+ },
38
+ "dependencies": {},
39
+ "homepage": "https://www.gorilla-engine.com/",
40
+ "keywords": [
41
+ "gorilla-engine",
42
+ "UJAM"
43
+ ]
44
+ }