@cccsaurora/clue-ui 1.1.0-dev.55 → 1.1.0-dev.66

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 (33) hide show
  1. package/{ActionForm-BnJ5oGNK.js → ActionForm-BR-JC3rN.js} +35 -4
  2. package/{AnnotationDetails-fsvrH3_v.js → AnnotationDetails-Bi8OW9M9.js} +1 -1
  3. package/{AnnotationPreview-biAV6uKB.js → AnnotationPreview-DOIhJg4V.js} +1 -1
  4. package/{ClueEnrichContext-C4hjLcHp.js → ClueEnrichContext-UZ1ghGU_.js} +1 -1
  5. package/components/AnnotationDetailPopover.js +1 -1
  6. package/components/AnnotationDetails.js +2 -2
  7. package/components/AnnotationPreview.js +1 -1
  8. package/components/EnrichedCard.js +1 -1
  9. package/components/EnrichedChip.js +1 -1
  10. package/components/EnrichedTypography.js +1 -1
  11. package/components/actions/ActionForm.js +1 -1
  12. package/components/enrichment/EnrichPopover.js +1 -1
  13. package/components/group/GroupControl.js +1 -1
  14. package/hooks/ClueActionContext.d.ts +16 -0
  15. package/hooks/ClueActionContext.js +4 -2
  16. package/hooks/ClueEnrichContext.js +2 -2
  17. package/hooks/ClueFetcherContext.js +1 -1
  18. package/hooks/CluePopupContext.js +2 -2
  19. package/hooks/ClueProvider.js +3 -3
  20. package/hooks/selectors.js +2 -2
  21. package/hooks/useAnnotations.js +1 -1
  22. package/hooks/useClue.js +1 -1
  23. package/hooks/useClueActions.js +1 -1
  24. package/hooks/useClueTypeConfig.js +1 -1
  25. package/icons/Action.js +2 -2
  26. package/icons/Assessment.js +1 -1
  27. package/icons/Context.js +1 -1
  28. package/icons/Opinion.js +1 -1
  29. package/main.js +4 -4
  30. package/package.json +1 -1
  31. package/types/RunningActionData.d.ts +4 -3
  32. package/types/action.d.ts +7 -0
  33. package/{useClueTypeConfig-HmNKKYHY.js → useClueTypeConfig-Ck1Sz41X.js} +2 -1
@@ -6,7 +6,7 @@ import Iconified from "./components/display/icons/Iconified.js";
6
6
  import { J as JSONViewer } from "./index-Bi21Wb23.js";
7
7
  import { ClueComponentContext } from "./hooks/ClueComponentContext.js";
8
8
  import { A as Ajv } from "./index-CC12Ux-9.js";
9
- import { a as api } from "./useClueTypeConfig-HmNKKYHY.js";
9
+ import { a as api } from "./useClueTypeConfig-Ck1Sz41X.js";
10
10
  import { d as toString } from "./_baseGet-BSK_nnoz.js";
11
11
  import { b as baseSlice } from "./_baseSlice-GAv_YFTT.js";
12
12
  import { i as isEqual } from "./utils-7OtvGnmf.js";
@@ -16,8 +16,10 @@ import ErrorBoundary from "./components/ErrorBoundary.js";
16
16
  import { adaptSchema } from "./components/actions/form/schemaAdapter.js";
17
17
  import ResultModal from "./components/actions/ResultModal.js";
18
18
  import { SNACKBAR_EVENT_ID } from "./data/event.js";
19
+ import { dayjs } from "./utils/time.js";
19
20
  import { safeDispatchEvent } from "./utils/window.js";
20
21
  import useClue from "./hooks/useClue.js";
22
+ import { i as isNil } from "./isNil-CIubwp4T.js";
21
23
  function castSlice(array, start, end) {
22
24
  var length = array.length;
23
25
  end = end === void 0 ? length : end;
@@ -61,10 +63,11 @@ const ClueActionProvider = ({
61
63
  baseURL,
62
64
  children,
63
65
  classification: defaultClassification,
66
+ includeContext: defaultIncludeContext,
64
67
  getToken,
65
68
  onNetworkCall
66
69
  }) => {
67
- const { t } = useContextSelector(ClueComponentContext, (ctx) => ctx.i18next);
70
+ const { t, i18n } = useContextSelector(ClueComponentContext, (ctx) => ctx.i18next);
68
71
  const { ready } = useClue();
69
72
  const [runningActionData, setRunningActionData] = useState(null);
70
73
  const [actionResults, setActionResults] = useState({});
@@ -100,11 +103,13 @@ const ClueActionProvider = ({
100
103
  );
101
104
  const executeAction = useCallback(
102
105
  async (actionId, selectors, params, options) => {
103
- const { forceMenu, onComplete, skipMenu, timeout } = {
106
+ const { forceMenu, onComplete, skipMenu, timeout, includeContext, extraContext } = {
104
107
  forceMenu: false,
105
108
  skipMenu: false,
106
109
  onComplete: null,
107
110
  timeout: null,
111
+ includeContext: defaultIncludeContext ?? false,
112
+ extraContext: null,
108
113
  ...options
109
114
  };
110
115
  const headers = {};
@@ -121,6 +126,20 @@ const ClueActionProvider = ({
121
126
  const actionToRun = availableActions[actionId];
122
127
  const validator = AJV.compile(actionToRun.params);
123
128
  const validatedParams = { selectors: stringifiedSelectors, ...params };
129
+ let context2 = null;
130
+ if (includeContext) {
131
+ context2 = {
132
+ timestamp: dayjs().toISOString(),
133
+ url: window.location,
134
+ language: (i18n == null ? void 0 : i18n.language) ?? "en"
135
+ };
136
+ }
137
+ if (!isNil(extraContext)) {
138
+ context2 = {
139
+ ...context2 ?? {},
140
+ ...extraContext
141
+ };
142
+ }
124
143
  setLoading(true);
125
144
  if (!validator(validatedParams) || forceMenu) {
126
145
  if (skipMenu && !forceMenu) {
@@ -143,6 +162,7 @@ const ClueActionProvider = ({
143
162
  action: actionToRun,
144
163
  selectors,
145
164
  params: validatedParams ?? {},
165
+ context: context2,
146
166
  onComplete,
147
167
  timeout
148
168
  });
@@ -157,6 +177,7 @@ const ClueActionProvider = ({
157
177
  actionId,
158
178
  stringifiedSelectors,
159
179
  validatedParams ?? {},
180
+ context2,
160
181
  { timeout },
161
182
  requestConfig
162
183
  );
@@ -221,7 +242,17 @@ const ClueActionProvider = ({
221
242
  setLoading(false);
222
243
  }
223
244
  },
224
- [availableActions, baseURL, getHashKey, getToken, onNetworkCall, runningActionData == null ? void 0 : runningActionData.id, t]
245
+ [
246
+ availableActions,
247
+ baseURL,
248
+ defaultIncludeContext,
249
+ getHashKey,
250
+ getToken,
251
+ i18n == null ? void 0 : i18n.language,
252
+ onNetworkCall,
253
+ runningActionData == null ? void 0 : runningActionData.id,
254
+ t
255
+ ]
225
256
  );
226
257
  const cancelAction = useCallback(() => {
227
258
  setRunningActionData(null);
@@ -10,7 +10,7 @@ import useErrors from "./hooks/useErrors.js";
10
10
  import { ICON_MAP } from "./icons/iconMap.js";
11
11
  import { safeDispatchEvent } from "./utils/window.js";
12
12
  import { g as groupBy } from "./groupBy-DC2oOuBN.js";
13
- import { u as uniq } from "./ClueEnrichContext-C4hjLcHp.js";
13
+ import { u as uniq } from "./ClueEnrichContext-UZ1ghGU_.js";
14
14
  import { memo, useState, useMemo, useCallback, useEffect } from "react";
15
15
  import { u as useContextSelector } from "./index-BDVjGvMI.js";
16
16
  import ExecutePopover from "./components/actions/ExecutePopover.js";
@@ -8,7 +8,7 @@ import { useState, useRef, useCallback, useEffect, useMemo } from "react";
8
8
  import { c as createContext, u as useContextSelector } from "./index-BDVjGvMI.js";
9
9
  import { SHOW_EVENT_ID, HIDE_EVENT_ID } from "./data/event.js";
10
10
  import { safeDispatchEvent, safeAddEventListener } from "./utils/window.js";
11
- import { i as isNull } from "./AnnotationDetails-fsvrH3_v.js";
11
+ import { i as isNull } from "./AnnotationDetails-Bi8OW9M9.js";
12
12
  const CluePopupContext = createContext(null);
13
13
  const CluePopupProvider = ({ children }) => {
14
14
  const [popupType, setPopupType] = useState(null);
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { a as addAPIProvider } from "./iconify-CXMreGTg.js";
3
- import { u as useClueTypeConfig, a as api, p as post } from "./useClueTypeConfig-HmNKKYHY.js";
3
+ import { u as useClueTypeConfig, a as api, p as post } from "./useClueTypeConfig-Ck1Sz41X.js";
4
4
  import { clueDebugLogger } from "./utils/loggerUtil.js";
5
5
  import { b as baseSlice } from "./_baseSlice-GAv_YFTT.js";
6
6
  import { t as toFinite } from "./toFinite-Bc55msYj.js";
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { Popover } from "@mui/material";
3
3
  import React__default, { useRef, useState, useEffect } from "react";
4
- import { A as AnnotationDetails } from "../AnnotationDetails-fsvrH3_v.js";
4
+ import { A as AnnotationDetails } from "../AnnotationDetails-Bi8OW9M9.js";
5
5
  const AnnotationDetailPopover = React__default.memo(({ anchorEl, enrichRequest, open, onClose, ...otherProps }) => {
6
6
  var _a, _b, _c;
7
7
  const actionRef = useRef();
@@ -10,8 +10,8 @@ import "../hooks/useErrors.js";
10
10
  import "../icons/iconMap.js";
11
11
  import "../utils/window.js";
12
12
  import "../groupBy-DC2oOuBN.js";
13
- import { A } from "../AnnotationDetails-fsvrH3_v.js";
14
- import "../ClueEnrichContext-C4hjLcHp.js";
13
+ import { A } from "../AnnotationDetails-Bi8OW9M9.js";
14
+ import "../ClueEnrichContext-UZ1ghGU_.js";
15
15
  import "react";
16
16
  import "../index-BDVjGvMI.js";
17
17
  import "./actions/ExecutePopover.js";
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../iconify-CXMreGTg.js";
3
3
  import "@mui/material";
4
- import { A } from "../AnnotationPreview-biAV6uKB.js";
4
+ import { A } from "../AnnotationPreview-DOIhJg4V.js";
5
5
  import "../hooks/useAnnotations.js";
6
6
  import "../utils-7OtvGnmf.js";
7
7
  import "react";
@@ -10,7 +10,7 @@ import ContextIcon from "../icons/Context.js";
10
10
  import OpinionIcon from "../icons/Opinion.js";
11
11
  import { ICON_MAP } from "../icons/iconMap.js";
12
12
  import FrequencyText from "../text/Frequency.js";
13
- import { u as uniq } from "../ClueEnrichContext-C4hjLcHp.js";
13
+ import { u as uniq } from "../ClueEnrichContext-UZ1ghGU_.js";
14
14
  import { memo, useState, useMemo, useCallback } from "react";
15
15
  import { u as useContextSelector } from "../index-BDVjGvMI.js";
16
16
  import AnnotationEntry from "./AnnotationEntry.js";
@@ -3,7 +3,7 @@ import { Chip, Tooltip, Box, Stack, CircularProgress } from "@mui/material";
3
3
  import Iconified from "./display/icons/Iconified.js";
4
4
  import { ClueComponentContext } from "../hooks/ClueComponentContext.js";
5
5
  import { ClueGroupContext } from "../hooks/ClueGroupContext.js";
6
- import { C as CluePopupContext } from "../AnnotationPreview-biAV6uKB.js";
6
+ import { C as CluePopupContext } from "../AnnotationPreview-DOIhJg4V.js";
7
7
  import { useClueEnrichSelector } from "../hooks/selectors.js";
8
8
  import useAnnotations from "../hooks/useAnnotations.js";
9
9
  import ActionIcon from "../icons/Action.js";
@@ -3,7 +3,7 @@ import { useTheme, Stack, CircularProgress, Tooltip, IconButton } from "@mui/mat
3
3
  import Iconified from "./display/icons/Iconified.js";
4
4
  import { ClueComponentContext } from "../hooks/ClueComponentContext.js";
5
5
  import { ClueGroupContext } from "../hooks/ClueGroupContext.js";
6
- import { C as CluePopupContext } from "../AnnotationPreview-biAV6uKB.js";
6
+ import { C as CluePopupContext } from "../AnnotationPreview-DOIhJg4V.js";
7
7
  import { useClueEnrichSelector } from "../hooks/selectors.js";
8
8
  import useAnnotations from "../hooks/useAnnotations.js";
9
9
  import ActionIcon from "../icons/Action.js";
@@ -5,7 +5,7 @@ import "@mui/material";
5
5
  import "../display/icons/Iconified.js";
6
6
  import "../../index-Bi21Wb23.js";
7
7
  import "../../hooks/ClueComponentContext.js";
8
- import { A } from "../../ActionForm-BnJ5oGNK.js";
8
+ import { A } from "../../ActionForm-BR-JC3rN.js";
9
9
  import "../../utils-7OtvGnmf.js";
10
10
  import "react";
11
11
  import "../../index-BDVjGvMI.js";
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useTheme, Tooltip, IconButton, CircularProgress, Button, Popover, Paper, Stack, Box, Typography, Divider } from "@mui/material";
3
3
  import { useClueComponentSelector, useClueEnrichSelector } from "../../hooks/selectors.js";
4
- import { c as capitalize } from "../../ActionForm-BnJ5oGNK.js";
4
+ import { c as capitalize } from "../../ActionForm-BR-JC3rN.js";
5
5
  import { useState, useRef, useCallback, useEffect } from "react";
6
6
  import Iconified from "../display/icons/Iconified.js";
7
7
  const EnrichPopover = ({ show = false, size = "small", selector }) => {
@@ -6,7 +6,7 @@ import { SNACKBAR_EVENT_ID } from "../../data/event.js";
6
6
  import { ClueGroupContext } from "../../hooks/ClueGroupContext.js";
7
7
  import { useClueComponentSelector, useClueEnrichSelector } from "../../hooks/selectors.js";
8
8
  import { safeDispatchEvent } from "../../utils/window.js";
9
- import { c as capitalize } from "../../ActionForm-BnJ5oGNK.js";
9
+ import { c as capitalize } from "../../ActionForm-BR-JC3rN.js";
10
10
  import { useState, useMemo, useCallback } from "react";
11
11
  import { u as useContextSelector } from "../../index-BDVjGvMI.js";
12
12
  import ExecutePopover from "../actions/ExecutePopover.js";
@@ -43,6 +43,18 @@ export interface ClueActionContextType {
43
43
  * how long should the action have to respond?
44
44
  */
45
45
  timeout?: number;
46
+ /**
47
+ * Should contextual information about the source of the action be included?
48
+ *
49
+ * This information includes:
50
+ * - Exact execution time
51
+ * - Current URL on execution
52
+ */
53
+ includeContext?: boolean;
54
+ /**
55
+ * Additional context information to include on execution. Useful for tight connections between actions and the UI.
56
+ */
57
+ extraContext?: Record<string, any>;
46
58
  }) => Promise<void>;
47
59
  /**
48
60
  * Cancel an action pending user input.
@@ -71,6 +83,10 @@ export interface ClueActionProps {
71
83
  * What should the default classification be when executing actions?
72
84
  */
73
85
  classification?: string;
86
+ /**
87
+ * Should basic context information (execution time, current url) be included when executing an action?
88
+ */
89
+ includeContext?: boolean;
74
90
  /**
75
91
  * Get an access token for the clue API.
76
92
  *
@@ -1,17 +1,19 @@
1
1
  import "react/jsx-runtime";
2
2
  import "@mui/material";
3
3
  import "../index-CC12Ux-9.js";
4
- import "../useClueTypeConfig-HmNKKYHY.js";
5
- import { a, C } from "../ActionForm-BnJ5oGNK.js";
4
+ import "../useClueTypeConfig-Ck1Sz41X.js";
5
+ import { a, C } from "../ActionForm-BR-JC3rN.js";
6
6
  import "../components/actions/ResultModal.js";
7
7
  import "../components/display/icons/Iconified.js";
8
8
  import "../components/ErrorBoundary.js";
9
9
  import "../data/event.js";
10
+ import "../utils/time.js";
10
11
  import "../utils/window.js";
11
12
  import "react";
12
13
  import "../index-BDVjGvMI.js";
13
14
  import "./ClueComponentContext.js";
14
15
  import "./useClue.js";
16
+ import "../isNil-CIubwp4T.js";
15
17
  export {
16
18
  a as ClueActionContext,
17
19
  C as ClueActionProvider
@@ -1,8 +1,8 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../iconify-CXMreGTg.js";
3
- import "../useClueTypeConfig-HmNKKYHY.js";
3
+ import "../useClueTypeConfig-Ck1Sz41X.js";
4
4
  import "../utils/loggerUtil.js";
5
- import { C, a } from "../ClueEnrichContext-C4hjLcHp.js";
5
+ import { C, a } from "../ClueEnrichContext-UZ1ghGU_.js";
6
6
  import "../debounce-bV0h5FC5.js";
7
7
  import "../groupBy-DC2oOuBN.js";
8
8
  import "react";
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { a as api } from "../useClueTypeConfig-HmNKKYHY.js";
2
+ import { a as api } from "../useClueTypeConfig-Ck1Sz41X.js";
3
3
  import { useState, useRef, useCallback, useEffect, useMemo } from "react";
4
4
  import { c as createContext } from "../index-BDVjGvMI.js";
5
5
  import useClue from "./useClue.js";
@@ -1,9 +1,9 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../components/AnnotationDetailPopover.js";
3
- import { C, a } from "../AnnotationPreview-biAV6uKB.js";
3
+ import { C, a } from "../AnnotationPreview-DOIhJg4V.js";
4
4
  import "../data/event.js";
5
5
  import "../utils/window.js";
6
- import "../AnnotationDetails-fsvrH3_v.js";
6
+ import "../AnnotationDetails-Bi8OW9M9.js";
7
7
  import "react";
8
8
  import "../index-BDVjGvMI.js";
9
9
  export {
@@ -1,11 +1,11 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { C as ClueActionProvider } from "../ActionForm-BnJ5oGNK.js";
2
+ import { C as ClueActionProvider } from "../ActionForm-BR-JC3rN.js";
3
3
  import { ClueComponentProvider } from "./ClueComponentContext.js";
4
4
  import { ClueConfigProvider } from "./ClueConfigProvider.js";
5
5
  import { ClueDatabaseProvider } from "./ClueDatabaseContext.js";
6
- import { a as ClueEnrichProvider } from "../ClueEnrichContext-C4hjLcHp.js";
6
+ import { a as ClueEnrichProvider } from "../ClueEnrichContext-UZ1ghGU_.js";
7
7
  import { ClueFetcherProvider } from "./ClueFetcherContext.js";
8
- import { a as CluePopupProvider } from "../AnnotationPreview-biAV6uKB.js";
8
+ import { a as CluePopupProvider } from "../AnnotationPreview-DOIhJg4V.js";
9
9
  const ClueProvider = ({ children, ...props }) => {
10
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
11
  };
@@ -1,6 +1,6 @@
1
- import { a as ClueActionContext } from "../ActionForm-BnJ5oGNK.js";
1
+ import { a as ClueActionContext } from "../ActionForm-BR-JC3rN.js";
2
2
  import { ClueComponentContext } from "./ClueComponentContext.js";
3
- import { C as ClueEnrichContext } from "../ClueEnrichContext-C4hjLcHp.js";
3
+ import { C as ClueEnrichContext } from "../ClueEnrichContext-UZ1ghGU_.js";
4
4
  import { ClueFetcherContext } from "./ClueFetcherContext.js";
5
5
  import { u as useContextSelector } from "../index-BDVjGvMI.js";
6
6
  const useClueFetcherSelector = (selector) => {
@@ -1,4 +1,4 @@
1
- import { b as uniqBy } from "../ClueEnrichContext-C4hjLcHp.js";
1
+ import { b as uniqBy } from "../ClueEnrichContext-UZ1ghGU_.js";
2
2
  import { useContext, useMemo, useState, useEffect } from "react";
3
3
  import { ClueDatabaseContext } from "./ClueDatabaseContext.js";
4
4
  import { useClueEnrichSelector } from "./selectors.js";
package/hooks/useClue.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as useContext } from "../index-BDVjGvMI.js";
2
- import { C as ClueEnrichContext } from "../ClueEnrichContext-C4hjLcHp.js";
2
+ import { C as ClueEnrichContext } from "../ClueEnrichContext-UZ1ghGU_.js";
3
3
  const useClue = () => {
4
4
  return useContext(ClueEnrichContext);
5
5
  };
@@ -1,4 +1,4 @@
1
- import { u } from "../ActionForm-BnJ5oGNK.js";
1
+ import { u } from "../ActionForm-BR-JC3rN.js";
2
2
  import "../index-BDVjGvMI.js";
3
3
  export {
4
4
  u as default
@@ -1,4 +1,4 @@
1
- import { u } from "../useClueTypeConfig-HmNKKYHY.js";
1
+ import { u } from "../useClueTypeConfig-Ck1Sz41X.js";
2
2
  import "../utils/loggerUtil.js";
3
3
  import "../isEmpty-BQkZubqU.js";
4
4
  import "react";
package/icons/Action.js CHANGED
@@ -2,8 +2,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.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-biAV6uKB.js";
6
- import { u as useClueActions } from "../ActionForm-BnJ5oGNK.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-DOIhJg4V.js";
6
+ import { u as useClueActions } from "../ActionForm-BR-JC3rN.js";
7
7
  import { g as groupBy } from "../groupBy-DC2oOuBN.js";
8
8
  import { memo, useRef, useMemo, useEffect } from "react";
9
9
  import { u as useContextSelector } from "../index-BDVjGvMI.js";
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.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-biAV6uKB.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-DOIhJg4V.js";
6
6
  import { g as groupBy } from "../groupBy-DC2oOuBN.js";
7
7
  import { l as last } from "../last-CUCl67Im.js";
8
8
  import { m as maxBy, s as sortBy } from "../sortBy-B-UKp4GT.js";
package/icons/Context.js CHANGED
@@ -4,7 +4,7 @@ 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-biAV6uKB.js";
7
+ import { C as CluePopupContext } from "../AnnotationPreview-DOIhJg4V.js";
8
8
  import { g as groupBy } from "../groupBy-DC2oOuBN.js";
9
9
  import { memo, useRef, useMemo, useEffect } from "react";
10
10
  import { u as useContextSelector } from "../index-BDVjGvMI.js";
package/icons/Opinion.js CHANGED
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { I as Icon } from "../iconify-CXMreGTg.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-biAV6uKB.js";
5
+ import { C as CluePopupContext } from "../AnnotationPreview-DOIhJg4V.js";
6
6
  import chain from "../utils/chain.js";
7
7
  import { g as groupBy } from "../groupBy-DC2oOuBN.js";
8
8
  import { s as sortBy } from "../sortBy-B-UKp4GT.js";
package/main.js CHANGED
@@ -1,8 +1,8 @@
1
- import { A, u } from "./ActionForm-BnJ5oGNK.js";
1
+ import { A, u } from "./ActionForm-BR-JC3rN.js";
2
2
  import { default as default2 } from "./components/AnnotationDetailPopover.js";
3
- import { A as A2 } from "./AnnotationDetails-fsvrH3_v.js";
3
+ import { A as A2 } from "./AnnotationDetails-Bi8OW9M9.js";
4
4
  import { default as default3 } from "./components/AnnotationEntry.js";
5
- import { A as A3, C } from "./AnnotationPreview-biAV6uKB.js";
5
+ import { A as A3, C } from "./AnnotationPreview-DOIhJg4V.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";
@@ -18,7 +18,7 @@ import { b } from "./index-CC12Ux-9.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-C4hjLcHp.js";
21
+ import { C as C2 } from "./ClueEnrichContext-UZ1ghGU_.js";
22
22
  import { ClueProvider } from "./hooks/ClueProvider.js";
23
23
  import { useClueActionsSelector, useClueEnrichSelector, useClueFetcherSelector } from "./hooks/selectors.js";
24
24
  import { default as default14 } from "./hooks/useClue.js";
package/package.json CHANGED
@@ -63,7 +63,7 @@
63
63
  },
64
64
  "type": "module",
65
65
  "types": "main.d.ts",
66
- "version": "1.1.0-dev.55",
66
+ "version": "1.1.0-dev.66",
67
67
  "exports": {
68
68
  ".": "./main.js",
69
69
  "./index.css": "./index.css",
@@ -1,6 +1,6 @@
1
- import { ActionDefinition, ActionResult } from "../api/actions";
2
- import { Selector } from 'lib/types/lookup';
3
- import { default as WithActionData } from './WithActionData';
1
+ import { ActionContextInformation, ActionDefinition, ActionResult } from "../types/action";
2
+ import { Selector } from "../types/lookup";
3
+ import { WithActionData } from './WithActionData';
4
4
 
5
5
 
6
6
  interface RunningActionData {
@@ -8,6 +8,7 @@ interface RunningActionData {
8
8
  action: ActionDefinition;
9
9
  selectors: Selector[];
10
10
  params: { [index: string]: any };
11
+ context?: ActionContextInformation;
11
12
  onComplete?: (result: WithActionData<ActionResult>) => void;
12
13
  timeout?: number;
13
14
  }
package/types/action.d.ts CHANGED
@@ -1,6 +1,13 @@
1
1
  import { JSONSchema7 } from 'json-schema';
2
2
 
3
3
 
4
+ export interface ActionContextInformation {
5
+ url?: string;
6
+ timestamp?: string;
7
+ language?: string;
8
+ [key: string]: any;
9
+ }
10
+
4
11
  export interface ActionDefinition {
5
12
  accept_multiple?: boolean;
6
13
  action_icon?: string;
@@ -14,7 +14,7 @@ const uri$c = () => {
14
14
  const get$7 = (config) => {
15
15
  return hget(uri$c(), null, config);
16
16
  };
17
- const post$3 = (actionId, selectors, params, options = { timeout: null }, config) => {
17
+ const post$3 = (actionId, selectors, params, context, options = { timeout: null }, config) => {
18
18
  const searchParams = [];
19
19
  if (!isNil(options.timeout)) {
20
20
  searchParams.push(`max_timeout=${options.timeout}`);
@@ -29,6 +29,7 @@ const post$3 = (actionId, selectors, params, options = { timeout: null }, config
29
29
  } else {
30
30
  payload.selectors = selectors;
31
31
  }
32
+ payload.context = context ?? null;
32
33
  return hpost(
33
34
  joinUri(
34
35
  joinUri(uri$c(), "execute"),