@cccsaurora/clue-ui 1.3.0-dev.361 → 1.3.0-dev.403

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 (133) hide show
  1. package/{ActionForm-BGVd1hea.js → ActionForm-CqKcnDWC.js} +9 -9
  2. package/{AnnotationDetails-D4f9aw7S.js → AnnotationDetails-BlPd3T8k.js} +3 -3
  3. package/{AnnotationPreview-LLor6159.js → AnnotationPreview-Bl447SKT.js} +2 -2
  4. package/{ClueEnrichContext-DKZ2iqmV.js → ClueEnrichContext-B3YrTCaJ.js} +10 -8
  5. package/{_MapCache-DWYVyFVH.js → _MapCache-kuEY_iOH.js} +2 -4
  6. package/_Set-BrSMTlHn.js +6 -0
  7. package/{_Uint8Array-BgBspS6l.js → _Uint8Array-OPpgYQj7.js} +8 -13
  8. package/_arrayIncludes-BNqL-9ZP.js +31 -0
  9. package/_arrayPush-CBkQqaE_.js +10 -0
  10. package/{_baseAssignValue-Dltt6-s5.js → _baseAssignValue-CNUVPOBW.js} +2 -11
  11. package/{_baseClone-BUfES2sT.js → _baseClone-9FaRd1R2.js} +10 -6
  12. package/{_baseExtremum-kob8QXyt.js → _baseExtremum-wOGT4Dgw.js} +1 -1
  13. package/{_baseFlatten-D3wtzJ86.js → _baseFlatten-Co6QHDlG.js} +6 -6
  14. package/{_baseGet-DKnGz1D3.js → _baseGet-Cmp6FztG.js} +4 -3
  15. package/{isObjectLike-OAgjjZye.js → _baseGetTag-Hj-0NTYF.js} +0 -4
  16. package/{_baseIsEqual-CTfFNmaR.js → _baseIsEqual-1CpU47TZ.js} +8 -5
  17. package/{_baseIteratee-C004Z9XE.js → _baseIteratee-BN7Vbe5g.js} +6 -6
  18. package/_baseRest-BZ_hQ9PC.js +8 -0
  19. package/_baseUniq-BnvS3JHL.js +63 -0
  20. package/{_setToArray-CGeR30xg.js → _cacheHas-_aF2y2Xv.js} +2 -10
  21. package/{_createAggregator-BDMdCE6g.js → _createAggregator-BUZrP_is.js} +4 -4
  22. package/_defineProperty-DolZLKmv.js +12 -0
  23. package/{_getPrototype-uU2uJIbq.js → _getPrototype-Bb4gm-5m.js} +1 -1
  24. package/{_getTag-DuA1kj2A.js → _getTag-CML_cXiN.js} +10 -31
  25. package/{_isIterateeCall-CEvg7Bo6.js → _isIterateeCall-B1IFEqVv.js} +3 -3
  26. package/_setToArray-CqyqC8ib.js +10 -0
  27. package/{cloneDeep-C_PzHHQ0.js → cloneDeep-l3UkXG5M.js} +1 -1
  28. package/components/AnnotationDetailPopover.js +1 -1
  29. package/components/AnnotationDetails.js +4 -4
  30. package/components/AnnotationEntry.js +1 -1
  31. package/components/AnnotationPreview.js +2 -2
  32. package/components/EnrichedCard.js +2 -2
  33. package/components/EnrichedChip.js +2 -2
  34. package/components/EnrichedTypography.js +2 -2
  35. package/components/RetryFailedEnrichments.js +1 -1
  36. package/components/SourcePicker.js +1 -1
  37. package/components/actions/ActionForm.js +3 -3
  38. package/components/actions/ExecutePopover.js +1 -1
  39. package/components/actions/ResultModal.js +1 -1
  40. package/components/actions/form/schemaAdapter.js +2 -2
  41. package/components/actions/formats/index.d.ts +2 -0
  42. package/components/actions/formats/index.js +30 -14
  43. package/components/display/graph/elements/NodeCard.js +5 -5
  44. package/components/display/graph/index.js +2 -2
  45. package/components/display/graph/visualizations/Leaf.js +2 -1
  46. package/components/display/graph/visualizations/cloud/index.js +2 -2
  47. package/components/display/graph/visualizations/tree/index.js +5 -5
  48. package/components/display/json/index.js +2 -2
  49. package/components/enrichment/EnrichPopover.js +1 -1
  50. package/components/fetchers/Fetcher.js +21 -10
  51. package/components/fetchers/FetcherResultView.d.ts +7 -0
  52. package/components/fetchers/FetcherResultView.js +41 -0
  53. package/components/fetchers/PreviewModal.d.ts +6 -1
  54. package/components/fetchers/PreviewModal.js +5 -2
  55. package/components/group/Entry.js +1 -1
  56. package/components/group/GroupControl.js +1 -1
  57. package/components/stats/QueryStatus.js +1 -1
  58. package/{countBy-Bkq0mSO-.js → countBy-Bqcp3VCs.js} +2 -2
  59. package/database/index.js +2 -2
  60. package/database/replication.js +2 -2
  61. package/en/translation.json +1 -0
  62. package/fr/translation.json +1 -0
  63. package/{get-DlGeJ2uz.js → get-CdMThM8x.js} +1 -1
  64. package/{groupBy-CXx1vslF.js → groupBy-BVV07EGQ.js} +2 -2
  65. package/hooks/ClueActionContext.js +2 -2
  66. package/hooks/ClueDatabaseContext.js +1 -1
  67. package/hooks/ClueEnrichContext.js +8 -7
  68. package/hooks/ClueFetcherContext.js +1 -1
  69. package/hooks/ClueGroupContext.js +1 -1
  70. package/hooks/CluePopupContext.js +2 -2
  71. package/hooks/ClueProvider.d.ts +2 -1
  72. package/hooks/ClueProvider.js +5 -4
  73. package/hooks/ClueUIPluginContext.d.ts +21 -0
  74. package/hooks/ClueUIPluginContext.js +57 -0
  75. package/hooks/selectors.js +2 -2
  76. package/hooks/useActionResult.js +1 -1
  77. package/hooks/useAnnotations.js +2 -2
  78. package/hooks/useClue.js +1 -1
  79. package/hooks/useClueActions.js +1 -1
  80. package/hooks/useClueTypeConfig.js +54 -6
  81. package/hooks/useComparator.js +1 -1
  82. package/hooks/useErrors.js +1 -1
  83. package/hooks/useFetcherResult.js +1 -1
  84. package/icons/Action.js +3 -3
  85. package/icons/Assessment.js +5 -5
  86. package/icons/Context.js +2 -2
  87. package/icons/Opinion.js +4 -4
  88. package/{index-C28rIsy3.js → index-CAvu7vwt.js} +1 -1
  89. package/{index-IPF68v-l.js → index-DUEubgWN.js} +1 -1
  90. package/{index-VDwFWSqU.js → index-Dj1N4IQP.js} +3 -3
  91. package/{index-CmQM2DaO.js → index-DpJxD74E.js} +1 -1
  92. package/isArguments-CuYlEuhP.js +27 -0
  93. package/isArray-RJPfgWqI.js +4 -0
  94. package/isEmpty-BE656RUK.js +30 -0
  95. package/isObjectLike-CeENW9FN.js +6 -0
  96. package/{isSymbol-Xd2FsJyp.js → isSymbol-D_H4HPZQ.js} +2 -1
  97. package/main.d.ts +4 -2
  98. package/main.js +9 -7
  99. package/{maxBy-a49mqwW9.js → maxBy-BjjQmX5t.js} +2 -2
  100. package/package.json +16 -2
  101. package/plugins/ClueUIPlugin.d.ts +40 -0
  102. package/plugins/ClueUIPlugin.js +442 -0
  103. package/plugins/file/index.d.ts +15 -0
  104. package/plugins/file/index.js +22 -0
  105. package/plugins/graph/index.d.ts +17 -0
  106. package/plugins/graph/index.js +25 -0
  107. package/plugins/image/index.d.ts +12 -0
  108. package/plugins/image/index.js +26 -0
  109. package/plugins/json/index.d.ts +17 -0
  110. package/plugins/json/index.js +25 -0
  111. package/plugins/markdown/index.d.ts +17 -0
  112. package/plugins/markdown/index.js +25 -0
  113. package/plugins/registry.d.ts +13 -0
  114. package/plugins/registry.js +21 -0
  115. package/plugins/store.d.ts +40 -0
  116. package/plugins/store.js +6 -0
  117. package/plugins/test/index.d.ts +17 -0
  118. package/plugins/test/index.js +25 -0
  119. package/{replication-DvYQDhM_.js → replication--gLEZw8a.js} +1 -1
  120. package/{sessionStorage-Dbmo2Exe.js → sessionStorage-B68y-wnE.js} +2 -2
  121. package/{sortBy-Tf6pz1tg.js → sortBy-B8JVsLQY.js} +10 -11
  122. package/store-DMdRx9g0.js +2156 -0
  123. package/{sumBy-DZSVfXDE.js → sumBy-D-HCzM2i.js} +1 -1
  124. package/text/Frequency.js +1 -1
  125. package/{toFinite-Bc55msYj.js → toFinite-meZTg4Su.js} +1 -1
  126. package/{toNumber-DPxy1FBy.js → toNumber-B5JaA1vX.js} +1 -1
  127. package/uniq-CahZPAwp.js +7 -0
  128. package/utils/chain.js +12 -12
  129. package/utils/sessionStorage.js +1 -1
  130. package/utils/utils.js +3 -3
  131. package/{utils-BN7Z0YiP.js → utils-CEySTPtg.js} +7 -5
  132. package/_baseUniq-BqxNeJD9.js +0 -115
  133. package/useClueTypeConfig-CnMg5Ny8.js +0 -59
@@ -1,3 +1,4 @@
1
+ import { ClueUIPluginProviderProps } from "../hooks/ClueUIPluginContext";
1
2
  import { FC, PropsWithChildren } from 'react';
2
3
  import { ClueActionProps } from './ClueActionContext';
3
4
  import { ClueComponentContextType } from './ClueComponentContext';
@@ -5,5 +6,5 @@ import { ClueConfigContextProps } from './ClueConfigProvider';
5
6
  import { ClueDatabaseContextProps } from './ClueDatabaseContext';
6
7
  import { ClueEnrichProps } from './ClueEnrichProps';
7
8
 
8
- declare const ClueProvider: FC<PropsWithChildren<ClueEnrichProps & ClueActionProps & ClueComponentContextType & ClueDatabaseContextProps & ClueConfigContextProps>>;
9
+ declare const ClueProvider: FC<PropsWithChildren<ClueEnrichProps & ClueActionProps & ClueComponentContextType & ClueDatabaseContextProps & ClueConfigContextProps & ClueUIPluginProviderProps>>;
9
10
  export { ClueProvider };
@@ -1,13 +1,14 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { a as ClueActionProvider } from "../ActionForm-BGVd1hea.js";
2
+ import { ClueUIPluginProvider } from "./ClueUIPluginContext.js";
3
+ import { a as ClueActionProvider } from "../ActionForm-CqKcnDWC.js";
3
4
  import { ClueComponentProvider } from "./ClueComponentContext.js";
4
5
  import { ClueConfigProvider } from "./ClueConfigProvider.js";
5
6
  import { ClueDatabaseProvider } from "./ClueDatabaseContext.js";
6
- import { a as ClueEnrichProvider } from "../ClueEnrichContext-DKZ2iqmV.js";
7
+ import { a as ClueEnrichProvider } from "../ClueEnrichContext-B3YrTCaJ.js";
7
8
  import { ClueFetcherProvider } from "./ClueFetcherContext.js";
8
- import { a as CluePopupProvider } from "../AnnotationPreview-LLor6159.js";
9
+ import { a as CluePopupProvider } from "../AnnotationPreview-Bl447SKT.js";
9
10
  const ClueProvider = ({ children, ...props }) => {
10
- return /* @__PURE__ */ jsx(ClueComponentProvider, { ...props, children: /* @__PURE__ */ jsx(ClueConfigProvider, { config: props.config, children: /* @__PURE__ */ jsx(ClueDatabaseProvider, { ...props, children: /* @__PURE__ */ jsx(ClueEnrichProvider, { ...props, children: /* @__PURE__ */ jsx(ClueFetcherProvider, { ...props, children: /* @__PURE__ */ jsx(ClueActionProvider, { ...props, children: /* @__PURE__ */ jsx(CluePopupProvider, { children }) }) }) }) }) }) });
11
+ return /* @__PURE__ */ jsx(ClueComponentProvider, { ...props, children: /* @__PURE__ */ jsx(ClueConfigProvider, { config: props.config, children: /* @__PURE__ */ jsx(ClueDatabaseProvider, { ...props, children: /* @__PURE__ */ jsx(ClueUIPluginProvider, { ...props, children: /* @__PURE__ */ jsx(ClueEnrichProvider, { ...props, children: /* @__PURE__ */ jsx(ClueFetcherProvider, { ...props, children: /* @__PURE__ */ jsx(ClueActionProvider, { ...props, children: /* @__PURE__ */ jsx(CluePopupProvider, { children }) }) }) }) }) }) }) });
11
12
  };
12
13
  export {
13
14
  ClueProvider
@@ -0,0 +1,21 @@
1
+ import { ClueUIPluginDefinition } from "../main";
2
+ import { FC, PropsWithChildren } from 'react';
3
+
4
+ export type ClueUIPluginProviderProps = {
5
+ /**
6
+ * List of additional custom plugins to load.
7
+ * Plugins passed in via this prop will take precedence over built-in plugins.
8
+ */
9
+ plugins?: ClueUIPluginDefinition[];
10
+ /**
11
+ * List of plugin ids to exclude from loading, including built-in plugins from ClueUIPluginsRegistry
12
+ * and plugins passed in via props
13
+ */
14
+ excludePlugins?: string[];
15
+ /**
16
+ * If true, do not load any plugins from the ClueUIPluginsRegistry, only load plugins passed in via props
17
+ */
18
+ excludeBuiltInPlugins?: boolean;
19
+ };
20
+ declare const ClueUIPluginProvider: FC<PropsWithChildren<ClueUIPluginProviderProps>>;
21
+ export { ClueUIPluginProvider as ClueUIPluginProvider };
@@ -0,0 +1,57 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import ClueUIPluginsRegistry from "../plugins/registry.js";
3
+ import { c as clueUIPluginStore, P as PluginProvider } from "../store-DMdRx9g0.js";
4
+ import { useState, useEffect } from "react";
5
+ const ClueUIPluginProvider = ({
6
+ plugins,
7
+ excludePlugins,
8
+ excludeBuiltInPlugins,
9
+ children
10
+ }) => {
11
+ const [pluginStore, setPluginStore] = useState(() => clueUIPluginStore.pluginStore);
12
+ useEffect(() => {
13
+ const abortController = new AbortController();
14
+ const loadPlugin = async (pluginDef) => {
15
+ try {
16
+ const pluginModule = await pluginDef.loadPlugin();
17
+ if (abortController.signal.aborted) return;
18
+ const plugin = new pluginModule.default();
19
+ clueUIPluginStore.install(plugin);
20
+ } catch (err) {
21
+ if (abortController.signal.aborted) return;
22
+ console.error(`[ClueUIPluginProvider] Failed to load plugin: ${pluginDef.name ?? pluginDef.id}`, err);
23
+ }
24
+ };
25
+ const loadPlugins = async () => {
26
+ if (plugins && Array.isArray(plugins)) {
27
+ for (const pluginDef of plugins) {
28
+ if (abortController.signal.aborted) return;
29
+ if (!(excludePlugins == null ? void 0 : excludePlugins.includes(pluginDef.id))) {
30
+ await loadPlugin(pluginDef);
31
+ }
32
+ }
33
+ }
34
+ if (!excludeBuiltInPlugins) {
35
+ const builtInPlugins = new ClueUIPluginsRegistry().getPlugins();
36
+ for (const pluginDef of builtInPlugins) {
37
+ if (abortController.signal.aborted) return;
38
+ if (!(excludePlugins == null ? void 0 : excludePlugins.includes(pluginDef.id))) {
39
+ await loadPlugin(pluginDef);
40
+ }
41
+ }
42
+ }
43
+ };
44
+ clueUIPluginStore.reset();
45
+ setPluginStore(clueUIPluginStore.pluginStore);
46
+ void loadPlugins().catch((err) => {
47
+ if (!abortController.signal.aborted) {
48
+ console.error("[ClueUIPluginProvider] Failed to load plugins", err);
49
+ }
50
+ });
51
+ return () => abortController.abort();
52
+ }, [excludeBuiltInPlugins, excludePlugins, plugins]);
53
+ return /* @__PURE__ */ jsx(PluginProvider, { pluginStore, children });
54
+ };
55
+ export {
56
+ ClueUIPluginProvider
57
+ };
@@ -1,6 +1,6 @@
1
- import { d, e, f, g } from "../ActionForm-BGVd1hea.js";
1
+ import { d, e, f, g } from "../ActionForm-CqKcnDWC.js";
2
2
  import "./ClueComponentContext.js";
3
- import "../ClueEnrichContext-DKZ2iqmV.js";
3
+ import "../ClueEnrichContext-B3YrTCaJ.js";
4
4
  import "./ClueFetcherContext.js";
5
5
  import "../index-_gpzM2Px.js";
6
6
  export {
@@ -1,7 +1,7 @@
1
1
  import "react";
2
2
  import "../index-_gpzM2Px.js";
3
3
  import "./ClueComponentContext.js";
4
- import { u } from "../ActionForm-BGVd1hea.js";
4
+ import { u } from "../ActionForm-CqKcnDWC.js";
5
5
  export {
6
6
  u as useActionResult
7
7
  };
@@ -1,7 +1,7 @@
1
- import { u as uniqBy } from "../ClueEnrichContext-DKZ2iqmV.js";
1
+ import { u as uniqBy } from "../ClueEnrichContext-B3YrTCaJ.js";
2
2
  import { useContext, useMemo, useState, useEffect } from "react";
3
3
  import { ClueDatabaseContext } from "./ClueDatabaseContext.js";
4
- import { f as useClueEnrichSelector } from "../ActionForm-BGVd1hea.js";
4
+ import { f as useClueEnrichSelector } from "../ActionForm-CqKcnDWC.js";
5
5
  const useAnnotations = (type, value, _classification, { skipEnrichment } = { skipEnrichment: false }) => {
6
6
  var _a;
7
7
  const database = useContext(ClueDatabaseContext);
package/hooks/useClue.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { u as useContext } from "../index-_gpzM2Px.js";
2
- import { C as ClueEnrichContext } from "../ClueEnrichContext-DKZ2iqmV.js";
2
+ import { C as ClueEnrichContext } from "../ClueEnrichContext-B3YrTCaJ.js";
3
3
  const useClue = () => {
4
4
  return useContext(ClueEnrichContext);
5
5
  };
@@ -1,4 +1,4 @@
1
- import { b } from "../ActionForm-BGVd1hea.js";
1
+ import { b } from "../ActionForm-CqKcnDWC.js";
2
2
  import "../index-_gpzM2Px.js";
3
3
  export {
4
4
  b as default
@@ -1,8 +1,56 @@
1
- import "../index-CmQM2DaO.js";
2
- import "../utils/loggerUtil.js";
3
- import "../_baseUniq-BqxNeJD9.js";
4
- import "react";
5
- import { a } from "../useClueTypeConfig-CnMg5Ny8.js";
1
+ import { g as get, b as get$1 } from "../index-DpJxD74E.js";
2
+ import { clueDebugLogger } from "../utils/loggerUtil.js";
3
+ import { i as isEmpty } from "../isEmpty-BE656RUK.js";
4
+ import { useState, useEffect } from "react";
5
+ import { u as uniq } from "../uniq-CahZPAwp.js";
6
+ const useClueTypeConfig = (ready, baseURL, debugLogging, getToken, onNetworkCall) => {
7
+ const [availableSources, setAvailableSources] = useState([]);
8
+ const [typesDetection, setTypesDetection] = useState({});
9
+ const [supportedTypes, setSupportedTypes] = useState([]);
10
+ useEffect(() => {
11
+ if (!ready) {
12
+ return;
13
+ }
14
+ if ((availableSources == null ? void 0 : availableSources.length) > 0 && !isEmpty(typesDetection)) {
15
+ return;
16
+ }
17
+ const headers = {};
18
+ const token = getToken == null ? void 0 : getToken();
19
+ if (token) {
20
+ headers.Authorization = `Bearer ${token}`;
21
+ }
22
+ (async () => {
23
+ let requestConfig = { baseURL, headers };
24
+ if (onNetworkCall) {
25
+ requestConfig = onNetworkCall(requestConfig);
26
+ }
27
+ clueDebugLogger("Executing types and type detection lookup", debugLogging);
28
+ const [_typesPerSource, _typesDetections] = await Promise.all([
29
+ get(requestConfig),
30
+ get$1(requestConfig)
31
+ ]);
32
+ if (_typesPerSource) {
33
+ setAvailableSources(Object.keys(_typesPerSource));
34
+ setSupportedTypes(uniq(Object.values(_typesPerSource).flat()));
35
+ }
36
+ if (_typesDetections) {
37
+ setTypesDetection(
38
+ Object.entries(_typesDetections).reduce((acc, [key, regex]) => {
39
+ if (regex !== null) {
40
+ acc[key] = new RegExp(regex);
41
+ }
42
+ return acc;
43
+ }, {})
44
+ );
45
+ }
46
+ })();
47
+ }, [baseURL, ready]);
48
+ return {
49
+ availableSources,
50
+ typesDetection,
51
+ supportedTypes
52
+ };
53
+ };
6
54
  export {
7
- a as default
55
+ useClueTypeConfig as default
8
56
  };
@@ -1,5 +1,5 @@
1
1
  import { useTheme } from "@mui/material";
2
- import { g as get } from "../get-DlGeJ2uz.js";
2
+ import { g as get } from "../get-CdMThM8x.js";
3
3
  import { i as isNil } from "../isNil-CIubwp4T.js";
4
4
  function _typeof(obj) {
5
5
  "@babel/helpers - typeof";
@@ -1,6 +1,6 @@
1
1
  import { useContext, useState, useEffect } from "react";
2
2
  import { ClueDatabaseContext } from "./ClueDatabaseContext.js";
3
- import { f as useClueEnrichSelector } from "../ActionForm-BGVd1hea.js";
3
+ import { f as useClueEnrichSelector } from "../ActionForm-CqKcnDWC.js";
4
4
  const useErrors = (value) => {
5
5
  const database = useContext(ClueDatabaseContext);
6
6
  const ready = useClueEnrichSelector((ctx) => ctx.ready);
@@ -1,5 +1,5 @@
1
1
  import { useState, useRef, useMemo, useEffect } from "react";
2
- import { b as useClueActions } from "../ActionForm-BGVd1hea.js";
2
+ import { b as useClueActions } from "../ActionForm-CqKcnDWC.js";
3
3
  const useActionResult = (resultWithData, interval = 2e3) => {
4
4
  const [result, setResult] = useState(resultWithData);
5
5
  const timeoutRef = useRef(null);
package/icons/Action.js CHANGED
@@ -2,9 +2,9 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-DJxl6dC-.js";
3
3
  import { useTheme, Stack, Divider, Typography } from "@mui/material";
4
4
  import CountBadge from "../components/CountBadge.js";
5
- import { C as CluePopupContext } from "../AnnotationPreview-LLor6159.js";
6
- import { b as useClueActions } from "../ActionForm-BGVd1hea.js";
7
- import { g as groupBy } from "../groupBy-CXx1vslF.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-Bl447SKT.js";
6
+ import { b as useClueActions } from "../ActionForm-CqKcnDWC.js";
7
+ import { g as groupBy } from "../groupBy-BVV07EGQ.js";
8
8
  import { memo, useRef, useMemo, useEffect } from "react";
9
9
  import { a as useContextSelector } from "../index-_gpzM2Px.js";
10
10
  const ResultDetails = ({ result }) => {
@@ -2,12 +2,12 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-DJxl6dC-.js";
3
3
  import { useTheme, Stack, Chip, Divider, Grid, Tooltip } from "@mui/material";
4
4
  import CountBadge from "../components/CountBadge.js";
5
- import { C as CluePopupContext } from "../AnnotationPreview-LLor6159.js";
6
- import { g as groupBy } from "../groupBy-CXx1vslF.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-Bl447SKT.js";
6
+ import { g as groupBy } from "../groupBy-BVV07EGQ.js";
7
7
  import { l as last } from "../last-CUCl67Im.js";
8
- import { m as maxBy } from "../maxBy-a49mqwW9.js";
9
- import { s as sortBy } from "../sortBy-Tf6pz1tg.js";
10
- import { s as sumBy } from "../sumBy-DZSVfXDE.js";
8
+ import { m as maxBy } from "../maxBy-BjjQmX5t.js";
9
+ import { s as sortBy } from "../sortBy-B8JVsLQY.js";
10
+ import { s as sumBy } from "../sumBy-D-HCzM2i.js";
11
11
  import { memo, useRef, useState, useMemo, useEffect } from "react";
12
12
  import { a as useContextSelector } from "../index-_gpzM2Px.js";
13
13
  const AssessmentIcon = ({ annotations, value, counters = true, disableTooltip = false, ubiquitous = false, ...otherProps }) => {
package/icons/Context.js CHANGED
@@ -4,8 +4,8 @@ import { Stack, Divider } from "@mui/material";
4
4
  import AnnotationEntry from "../components/AnnotationEntry.js";
5
5
  import CountBadge from "../components/CountBadge.js";
6
6
  import Iconified from "../components/display/icons/Iconified.js";
7
- import { C as CluePopupContext } from "../AnnotationPreview-LLor6159.js";
8
- import { g as groupBy } from "../groupBy-CXx1vslF.js";
7
+ import { C as CluePopupContext } from "../AnnotationPreview-Bl447SKT.js";
8
+ import { g as groupBy } from "../groupBy-BVV07EGQ.js";
9
9
  import { memo, useRef, useMemo, useEffect } from "react";
10
10
  import { a as useContextSelector } from "../index-_gpzM2Px.js";
11
11
  const ContextIcon = ({
package/icons/Opinion.js CHANGED
@@ -2,10 +2,10 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-DJxl6dC-.js";
3
3
  import { useTheme, Stack, Chip, Divider, Grid } from "@mui/material";
4
4
  import CountBadge from "../components/CountBadge.js";
5
- import { C as CluePopupContext } from "../AnnotationPreview-LLor6159.js";
6
- import { g as groupBy } from "../groupBy-CXx1vslF.js";
7
- import { s as sortBy } from "../sortBy-Tf6pz1tg.js";
8
- import { s as sumBy } from "../sumBy-DZSVfXDE.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-Bl447SKT.js";
6
+ import { g as groupBy } from "../groupBy-BVV07EGQ.js";
7
+ import { s as sortBy } from "../sortBy-B8JVsLQY.js";
8
+ import { s as sumBy } from "../sumBy-D-HCzM2i.js";
9
9
  import { memo, useRef, useMemo, useCallback, useEffect } from "react";
10
10
  import { a as useContextSelector } from "../index-_gpzM2Px.js";
11
11
  const SEVERITY_RANK = { malicious: 3, suspicious: 2, obscure: 1, benign: 0 };
@@ -1,4 +1,4 @@
1
- import { N as NON_PREMIUM_COLLECTION_LIMIT, E as RxDatabaseBase, D as RxCollectionBase, Z as createRxDocumentConstructor, J as basePrototype, aH as newRxError, az as isMaybeReadonlyArray, al as getSchemaByObjectPath, ad as flattenObject, aj as getProperty, a$ as trimDots, G as appendToArray, ai as getPrimaryFieldOfPrimaryKey, aI as newRxTypeError, ah as getPreviousVersions, aw as isFolderPath, aN as prepareQuery, a9 as findUndefinedPath, a1 as deepEqual, a7 as fillPrimaryKey, ao as hasPremiumFlag, R as RXDB_VERSION, ap as hashStringToNumber, a2 as deepFreeze } from "./replication-DvYQDhM_.js";
1
+ import { N as NON_PREMIUM_COLLECTION_LIMIT, E as RxDatabaseBase, D as RxCollectionBase, Z as createRxDocumentConstructor, J as basePrototype, aH as newRxError, az as isMaybeReadonlyArray, al as getSchemaByObjectPath, ad as flattenObject, aj as getProperty, a$ as trimDots, G as appendToArray, ai as getPrimaryFieldOfPrimaryKey, aI as newRxTypeError, ah as getPreviousVersions, aw as isFolderPath, aN as prepareQuery, a9 as findUndefinedPath, a1 as deepEqual, a7 as fillPrimaryKey, ao as hasPremiumFlag, R as RXDB_VERSION, ap as hashStringToNumber, a2 as deepFreeze } from "./replication--gLEZw8a.js";
2
2
  var ERROR_MESSAGES = {
3
3
  // util.js / config
4
4
  UT1: "given name is no string or empty",
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { ClickAwayListener, TextField, InputAdornment, Popper, Paper, MenuList, MenuItem, ListItemText, useTheme, Stack, Skeleton } from "@mui/material";
6
6
  import { useRef, useState, useEffect, useMemo, lazy } from "react";
7
- import { r as removeEmpty, s as searchObject, a as flatten } from "./utils-BN7Z0YiP.js";
7
+ import { r as removeEmpty, s as searchObject, a as flatten } from "./utils-CEySTPtg.js";
8
8
  import { ClueComponentContext } from "./hooks/ClueComponentContext.js";
9
9
  import { useMyLocalStorageItem } from "./hooks/useMyLocalStorage.js";
10
10
  import { StorageKey } from "./utils/constants.js";
@@ -1,6 +1,6 @@
1
- import { d as debounce } from "./sessionStorage-Dbmo2Exe.js";
1
+ import { d as debounce } from "./sessionStorage-B68y-wnE.js";
2
2
  import { i as isObject } from "./isObject-FTY-5JQX.js";
3
- import { aq as identity, aL as operate, W as createOperatorSubscriber, ax as isFunction, U as computeValue, b0 as truthy, H as assert, a4 as ensureArray, at as isArray, T as compare, V as createExpressionOperator, c as $eq$1, f as $gt$1, h as $gte$1, k as $lt$1, m as $lte$1, p as $ne$1, M as MingoError, ay as isFunction$1, X as createQueryOperator, $ as $all$1, al as getSchemaByObjectPath, aK as objectPathMonad, y as INDEX_MIN, I as INDEX_MAX, a5 as ensureNotFalsy, ag as getFromMapOrCreate, ai as getPrimaryFieldOfPrimaryKey, aS as requestIdleCallbackIfAvailable, B as BehaviorSubject, aG as mergeMap, aa as firstValueFrom, a8 as filter, ab as flatClone$1, a0 as createRxQuery, _ as _getDefaultQuery, aP as queryCollection, aH as newRxError, af as getDefaultRevision, aJ as now, aN as prepareQuery, aM as overwritable, az as isMaybeReadonlyArray, ac as flatCloneDocWithMeta, S as Subject, a_ as toArray, K as categorizeBulkWriteRows, aO as pushAtSortPosition, ak as getQueryMatcher, am as getSortComparator, P as PROMISE_RESOLVE_TRUE, z as PROMISE_RESOLVE_VOID, R as RXDB_VERSION, a6 as ensureRxStorageInstanceParamsAreCorrect, aQ as randomToken, a1 as deepEqual, aT as requestIdlePromiseNoQueue, a as $and$1, b as $elemMatch, d as $eq$2, e as $exists, g as $gt$2, i as $gte$2, j as $in, l as $lt$2, n as $lte$2, o as $mod, q as $ne$2, r as $nin, s as $nor, t as $not$1, u as $or$1, v as $regex, w as $size, x as $type, ar as initOptions, C as Context, Q as Query, b2 as walk, aU as resolve$1, au as isDate, aB as isObject$1, aD as isRegExp, O as cloneDeep, an as has, as as intersection, b1 as unique, aA as isNumber, aC as isOperator, av as isEqual, L as clone$1, aW as runQueryUpdateFunction, ae as getChangedDocumentsSince, aV as runPluginHooks, aX as setProperty, aF as merge, aY as shareReplay, A as RXJS_SHARE_REPLAY_DEFAULTS, aE as map, G as appendToArray, aj as getProperty, aZ as startWith, a3 as distinctUntilChanged, F as addRxPlugin, Y as createRxDatabase, aR as replicateSelectorCollection } from "./replication-DvYQDhM_.js";
3
+ import { aq as identity, aL as operate, W as createOperatorSubscriber, ax as isFunction, U as computeValue, b0 as truthy, H as assert, a4 as ensureArray, at as isArray, T as compare, V as createExpressionOperator, c as $eq$1, f as $gt$1, h as $gte$1, k as $lt$1, m as $lte$1, p as $ne$1, M as MingoError, ay as isFunction$1, X as createQueryOperator, $ as $all$1, al as getSchemaByObjectPath, aK as objectPathMonad, y as INDEX_MIN, I as INDEX_MAX, a5 as ensureNotFalsy, ag as getFromMapOrCreate, ai as getPrimaryFieldOfPrimaryKey, aS as requestIdleCallbackIfAvailable, B as BehaviorSubject, aG as mergeMap, aa as firstValueFrom, a8 as filter, ab as flatClone$1, a0 as createRxQuery, _ as _getDefaultQuery, aP as queryCollection, aH as newRxError, af as getDefaultRevision, aJ as now, aN as prepareQuery, aM as overwritable, az as isMaybeReadonlyArray, ac as flatCloneDocWithMeta, S as Subject, a_ as toArray, K as categorizeBulkWriteRows, aO as pushAtSortPosition, ak as getQueryMatcher, am as getSortComparator, P as PROMISE_RESOLVE_TRUE, z as PROMISE_RESOLVE_VOID, R as RXDB_VERSION, a6 as ensureRxStorageInstanceParamsAreCorrect, aQ as randomToken, a1 as deepEqual, aT as requestIdlePromiseNoQueue, a as $and$1, b as $elemMatch, d as $eq$2, e as $exists, g as $gt$2, i as $gte$2, j as $in, l as $lt$2, n as $lte$2, o as $mod, q as $ne$2, r as $nin, s as $nor, t as $not$1, u as $or$1, v as $regex, w as $size, x as $type, ar as initOptions, C as Context, Q as Query, b2 as walk, aU as resolve$1, au as isDate, aB as isObject$1, aD as isRegExp, O as cloneDeep, an as has, as as intersection, b1 as unique, aA as isNumber, aC as isOperator, av as isEqual, L as clone$1, aW as runQueryUpdateFunction, ae as getChangedDocumentsSince, aV as runPluginHooks, aX as setProperty, aF as merge, aY as shareReplay, A as RXJS_SHARE_REPLAY_DEFAULTS, aE as map, G as appendToArray, aj as getProperty, aZ as startWith, a3 as distinctUntilChanged, F as addRxPlugin, Y as createRxDatabase, aR as replicateSelectorCollection } from "./replication--gLEZw8a.js";
4
4
  import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-CUmg6egw.js";
5
5
  import { REPLICATE } from "./utils/constants.js";
6
6
  import { REPLICATORS } from "./database/globals.js";
@@ -9259,7 +9259,7 @@ const buildDatabase = async (_config = {}) => {
9259
9259
  addRxPlugin(RxDBStatePlugin);
9260
9260
  /* v8 ignore next 10 -- @preserve */
9261
9261
  if (config.devMode) {
9262
- await import("./index-C28rIsy3.js").then((module) => {
9262
+ await import("./index-CAvu7vwt.js").then((module) => {
9263
9263
  addRxPlugin(module.RxDBDevModePlugin);
9264
9264
  if (config.testing) {
9265
9265
  module.disableWarnings();
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { MY_LOCAL_STORAGE_PREFIX, StorageKey } from "./utils/constants.js";
5
5
  import { i as isNil } from "./isNil-CIubwp4T.js";
6
6
  import { g as getDefaultExportFromCjs } from "./_commonjsHelpers-CUmg6egw.js";
7
- import { g as getAxiosCache, s as setAxiosCache } from "./sessionStorage-Dbmo2Exe.js";
7
+ import { g as getAxiosCache, s as setAxiosCache } from "./sessionStorage-B68y-wnE.js";
8
8
  const get$a = (actionId, taskId, options = { timeout: null }, config) => {
9
9
  const searchParams = [];
10
10
  if (!isNil(options.timeout)) {
@@ -0,0 +1,27 @@
1
+ import { i as isFunction } from "./_MapCache-kuEY_iOH.js";
2
+ import { b as baseGetTag } from "./_baseGetTag-Hj-0NTYF.js";
3
+ import { i as isObjectLike } from "./isObjectLike-CeENW9FN.js";
4
+ var MAX_SAFE_INTEGER = 9007199254740991;
5
+ function isLength(value) {
6
+ return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
7
+ }
8
+ function isArrayLike(value) {
9
+ return value != null && isLength(value.length) && !isFunction(value);
10
+ }
11
+ var argsTag = "[object Arguments]";
12
+ function baseIsArguments(value) {
13
+ return isObjectLike(value) && baseGetTag(value) == argsTag;
14
+ }
15
+ var objectProto = Object.prototype;
16
+ var hasOwnProperty = objectProto.hasOwnProperty;
17
+ var propertyIsEnumerable = objectProto.propertyIsEnumerable;
18
+ var isArguments = baseIsArguments(/* @__PURE__ */ (function() {
19
+ return arguments;
20
+ })()) ? baseIsArguments : function(value) {
21
+ return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
22
+ };
23
+ export {
24
+ isArrayLike as a,
25
+ isLength as b,
26
+ isArguments as i
27
+ };
@@ -0,0 +1,4 @@
1
+ var isArray = Array.isArray;
2
+ export {
3
+ isArray as i
4
+ };
@@ -0,0 +1,30 @@
1
+ import { i as isBuffer, d as isTypedArray, g as getTag, c as isPrototype, b as baseKeys } from "./_getTag-CML_cXiN.js";
2
+ import { a as isArrayLike, i as isArguments } from "./isArguments-CuYlEuhP.js";
3
+ import { i as isArray } from "./isArray-RJPfgWqI.js";
4
+ var mapTag = "[object Map]", setTag = "[object Set]";
5
+ var objectProto = Object.prototype;
6
+ var hasOwnProperty = objectProto.hasOwnProperty;
7
+ function isEmpty(value) {
8
+ if (value == null) {
9
+ return true;
10
+ }
11
+ if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) {
12
+ return !value.length;
13
+ }
14
+ var tag = getTag(value);
15
+ if (tag == mapTag || tag == setTag) {
16
+ return !value.size;
17
+ }
18
+ if (isPrototype(value)) {
19
+ return !baseKeys(value).length;
20
+ }
21
+ for (var key in value) {
22
+ if (hasOwnProperty.call(value, key)) {
23
+ return false;
24
+ }
25
+ }
26
+ return true;
27
+ }
28
+ export {
29
+ isEmpty as i
30
+ };
@@ -0,0 +1,6 @@
1
+ function isObjectLike(value) {
2
+ return value != null && typeof value == "object";
3
+ }
4
+ export {
5
+ isObjectLike as i
6
+ };
@@ -1,4 +1,5 @@
1
- import { i as isObjectLike, b as baseGetTag } from "./isObjectLike-OAgjjZye.js";
1
+ import { b as baseGetTag } from "./_baseGetTag-Hj-0NTYF.js";
2
+ import { i as isObjectLike } from "./isObjectLike-CeENW9FN.js";
2
3
  var symbolTag = "[object Symbol]";
3
4
  function isSymbol(value) {
4
5
  return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
package/main.d.ts CHANGED
@@ -35,8 +35,10 @@ import { default as useClueConfig } from './hooks/useClueConfig';
35
35
  import { default as AssessmentIcon } from './icons/Assessment';
36
36
  import { default as ContextIcon } from './icons/Context';
37
37
  import { default as OpinionIcon } from './icons/Opinion';
38
+ import { default as ClueUIPlugin } from './plugins/ClueUIPlugin';
39
+ import { ClueUIPluginDefinition } from './plugins/registry';
38
40
  import { default as FrequencyText } from './text/Frequency';
39
41
 
40
- export { ActionForm, AnnotationDetailPopover, AnnotationDetails, AnnotationEntry, AnnotationPreview, AssessmentIcon, buildDatabase, ClueComponentContext, ClueConfigContext, ClueDatabaseContext, ClueEnrichContext, CluePopupContext, ClueProvider, ContextIcon, CountBadge, EnrichedCard, EnrichedChip, EnrichedTypography, Entry, Fetcher, FrequencyText, Group, GroupControl, OpinionIcon, SNACKBAR_EVENT_ID, SourcePicker, StatusChip, useClue, useClueActions, useClueActionsSelector, useClueConfig, useClueEnrichSelector, useClueFetcherSelector };
41
- export type { ActionDefinition, ActionDefinitionsResponse, ActionResult, Annotation, BulkEnrichRequest, BulkEnrichResponses, ClueConfigContextProps, ClueDatabase, ClueDatabaseCollections, ClueDatabaseContextProps, ClueResponse, EnrichedCardProps, EnrichedTypographyProps, Enrichment, EnrichmentProps, EnrichResponse, EnrichResponses, FailedRequest, FetcherDefinition, FetcherDefinitionsResponse, FetcherResult, RunningActionData, Selector, SelectorCollection, SelectorCollectionMethods, SelectorDocMethods, SelectorDocType, SelectorDocument, SnackbarEvents, StatusCollection, StatusCollectionMethods, StatusDocMethods, StatusDocType, StatusDocument, TypesDetectionResponse, TypesResponse, WithExtra };
42
+ export { ActionForm, AnnotationDetailPopover, AnnotationDetails, AnnotationEntry, AnnotationPreview, AssessmentIcon, buildDatabase, ClueComponentContext, ClueConfigContext, ClueDatabaseContext, ClueEnrichContext, CluePopupContext, ClueProvider, ClueUIPlugin, ContextIcon, CountBadge, EnrichedCard, EnrichedChip, EnrichedTypography, Entry, Fetcher, FrequencyText, Group, GroupControl, OpinionIcon, SNACKBAR_EVENT_ID, SourcePicker, StatusChip, useClue, useClueActions, useClueActionsSelector, useClueConfig, useClueEnrichSelector, useClueFetcherSelector };
43
+ export type { ActionDefinition, ActionDefinitionsResponse, ActionResult, Annotation, BulkEnrichRequest, BulkEnrichResponses, ClueConfigContextProps, ClueDatabase, ClueDatabaseCollections, ClueDatabaseContextProps, ClueResponse, ClueUIPluginDefinition, EnrichedCardProps, EnrichedTypographyProps, Enrichment, EnrichmentProps, EnrichResponse, EnrichResponses, FailedRequest, FetcherDefinition, FetcherDefinitionsResponse, FetcherResult, RunningActionData, Selector, SelectorCollection, SelectorCollectionMethods, SelectorDocMethods, SelectorDocType, SelectorDocument, SnackbarEvents, StatusCollection, StatusCollectionMethods, StatusDocMethods, StatusDocType, StatusDocument, TypesDetectionResponse, TypesResponse, WithExtra };
42
44
  export type { ClueConfigContextProps as BorealisConfigContextProps, ClueDatabase as BorealisDatabase, ClueDatabaseCollections as BorealisDatabaseCollections, ClueDatabaseContextProps as BorealisDatabaseContextProps, ClueResponse as BorealisResponse };
package/main.js CHANGED
@@ -1,8 +1,8 @@
1
- import { A, b, d, f, g } from "./ActionForm-BGVd1hea.js";
1
+ import { A, b, d, f, g } from "./ActionForm-CqKcnDWC.js";
2
2
  import { default as default2 } from "./components/AnnotationDetailPopover.js";
3
- import { A as A2 } from "./AnnotationDetails-D4f9aw7S.js";
3
+ import { A as A2 } from "./AnnotationDetails-BlPd3T8k.js";
4
4
  import { default as default3 } from "./components/AnnotationEntry.js";
5
- import { A as A3, C } from "./AnnotationPreview-LLor6159.js";
5
+ import { A as A3, C } from "./AnnotationPreview-Bl447SKT.js";
6
6
  import { default as default4 } from "./components/CountBadge.js";
7
7
  import { default as default5 } from "./components/EnrichedCard.js";
8
8
  import { default as default6 } from "./components/EnrichedChip.js";
@@ -14,18 +14,19 @@ import { default as default11 } from "./components/group/Group.js";
14
14
  import { default as default12 } from "./components/group/GroupControl.js";
15
15
  import { default as default13 } from "./components/SourcePicker.js";
16
16
  import { SNACKBAR_EVENT_ID } from "./data/event.js";
17
- import { b as b2 } from "./index-VDwFWSqU.js";
17
+ import { b as b2 } from "./index-Dj1N4IQP.js";
18
18
  import { ClueComponentContext } from "./hooks/ClueComponentContext.js";
19
19
  import { ClueConfigContext } from "./hooks/ClueConfigProvider.js";
20
20
  import { ClueDatabaseContext } from "./hooks/ClueDatabaseContext.js";
21
- import { C as C2 } from "./ClueEnrichContext-DKZ2iqmV.js";
21
+ import { C as C2 } from "./ClueEnrichContext-B3YrTCaJ.js";
22
22
  import { ClueProvider } from "./hooks/ClueProvider.js";
23
23
  import { default as default14 } from "./hooks/useClue.js";
24
24
  import { default as default15 } from "./hooks/useClueConfig.js";
25
25
  import { default as default16 } from "./icons/Assessment.js";
26
26
  import { default as default17 } from "./icons/Context.js";
27
27
  import { default as default18 } from "./icons/Opinion.js";
28
- import { default as default19 } from "./text/Frequency.js";
28
+ import { default as default19 } from "./plugins/ClueUIPlugin.js";
29
+ import { default as default20 } from "./text/Frequency.js";
29
30
  export {
30
31
  A as ActionForm,
31
32
  default2 as AnnotationDetailPopover,
@@ -39,6 +40,7 @@ export {
39
40
  C2 as ClueEnrichContext,
40
41
  C as CluePopupContext,
41
42
  ClueProvider,
43
+ default19 as ClueUIPlugin,
42
44
  default17 as ContextIcon,
43
45
  default4 as CountBadge,
44
46
  default5 as EnrichedCard,
@@ -46,7 +48,7 @@ export {
46
48
  default7 as EnrichedTypography,
47
49
  default10 as Entry,
48
50
  default8 as Fetcher,
49
- default19 as FrequencyText,
51
+ default20 as FrequencyText,
50
52
  default11 as Group,
51
53
  default12 as GroupControl,
52
54
  default18 as OpinionIcon,
@@ -1,5 +1,5 @@
1
- import { b as baseExtremum, a as baseGt } from "./_baseExtremum-kob8QXyt.js";
2
- import { b as baseIteratee } from "./_baseIteratee-C004Z9XE.js";
1
+ import { b as baseExtremum, a as baseGt } from "./_baseExtremum-wOGT4Dgw.js";
2
+ import { b as baseIteratee } from "./_baseIteratee-BN7Vbe5g.js";
3
3
  function maxBy(array, iteratee) {
4
4
  return array && array.length ? baseExtremum(array, baseIteratee(iteratee), baseGt) : void 0;
5
5
  }
package/package.json CHANGED
@@ -26,6 +26,7 @@
26
26
  "lodash-es": "^4.17.23",
27
27
  "react-i18next": "^13.5.0",
28
28
  "react-markdown": "10.1.0",
29
+ "react-pluggable": "^0.4.3",
29
30
  "react-syntax-highlighter": "^15.6.1",
30
31
  "rehype-raw": "7.0.0",
31
32
  "remark-gfm": "4.0.1",
@@ -66,7 +67,7 @@
66
67
  },
67
68
  "type": "module",
68
69
  "types": "main.d.ts",
69
- "version": "1.3.0-dev.361",
70
+ "version": "1.3.0-dev.403",
70
71
  "exports": {
71
72
  ".": "./main.js",
72
73
  "./index.css": "./index.css",
@@ -82,6 +83,7 @@
82
83
  "./data/*": "./data/*.js",
83
84
  "./database/*": "./database/*.js",
84
85
  "./database": "./database/index.js",
86
+ "./plugins/*": "./plugins/*.js",
85
87
  "./components/group/*": "./components/group/*.js",
86
88
  "./components/fetchers/*": "./components/fetchers/*.js",
87
89
  "./components/display/*": "./components/display/*.js",
@@ -106,6 +108,18 @@
106
108
  "./components/display/graph/visualizations/tree": "./components/display/graph/visualizations/tree/index.js",
107
109
  "./components/actions/form/*": "./components/actions/form/*.js",
108
110
  "./components/actions/formats/*": "./components/actions/formats/*.js",
109
- "./components/actions/formats": "./components/actions/formats/index.js"
111
+ "./components/actions/formats": "./components/actions/formats/index.js",
112
+ "./plugins/test/*": "./plugins/test/*.js",
113
+ "./plugins/test": "./plugins/test/index.js",
114
+ "./plugins/image/*": "./plugins/image/*.js",
115
+ "./plugins/image": "./plugins/image/index.js",
116
+ "./plugins/markdown/*.md": "./plugins/markdown/*.md.js",
117
+ "./plugins/markdown": "./plugins/markdown/index.js",
118
+ "./plugins/json/*": "./plugins/json/*.js",
119
+ "./plugins/json": "./plugins/json/index.js",
120
+ "./plugins/graph/*": "./plugins/graph/*.js",
121
+ "./plugins/graph": "./plugins/graph/index.js",
122
+ "./plugins/file/*": "./plugins/file/*.js",
123
+ "./plugins/file": "./plugins/file/index.js"
110
124
  }
111
125
  }
@@ -0,0 +1,40 @@
1
+ import { i18n as I18N } from 'i18next';
2
+ import { ActionResult, FetcherResult } from "../main";
3
+ import { WithActionData } from "../types/WithActionData";
4
+ import { ReactNode } from 'react';
5
+ import { IPlugin, PluginStore } from 'react-pluggable';
6
+
7
+ export type RenderResultProps = {
8
+ result: WithActionData<ActionResult> | FetcherResult;
9
+ [additionalProps: string]: any;
10
+ };
11
+ export interface RenderFetcherResultProps extends RenderResultProps {
12
+ result: FetcherResult;
13
+ }
14
+ export interface RenderActionResultProps extends RenderResultProps {
15
+ result: WithActionData<ActionResult>;
16
+ }
17
+ declare abstract class ClueUIPlugin implements IPlugin {
18
+ abstract name: string;
19
+ abstract version: string;
20
+ abstract author: string;
21
+ abstract description: string;
22
+ abstract format: string;
23
+ actionIds?: string[];
24
+ fetcherIds?: string[];
25
+ pluginStore: PluginStore;
26
+ private functionsToRemove;
27
+ getPluginName(): string;
28
+ getPluginFormat(): string;
29
+ getPluginActionIds(): string[] | undefined;
30
+ getPluginFetcherIds(): string[] | undefined;
31
+ getDependencies(): string[];
32
+ init(pluginStore: PluginStore): void;
33
+ activate(): void;
34
+ deactivate(): void;
35
+ actionResult?(_props: RenderActionResultProps): ReactNode;
36
+ fetcherResult?(_props: RenderFetcherResultProps): ReactNode;
37
+ localization(_i18n: I18N): void;
38
+ documentation(md: string): string;
39
+ }
40
+ export default ClueUIPlugin;