@northstar-js/react 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/actions.d.ts +99 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +61 -0
- package/dist/actions.js.map +1 -0
- package/dist/backdrops/StarBackdrop.d.ts +31 -0
- package/dist/backdrops/StarBackdrop.d.ts.map +1 -0
- package/dist/backdrops/StarBackdrop.js +84 -0
- package/dist/backdrops/StarBackdrop.js.map +1 -0
- package/dist/backdrops/index.d.ts +7 -0
- package/dist/backdrops/index.d.ts.map +1 -0
- package/dist/backdrops/index.js +8 -0
- package/dist/backdrops/index.js.map +1 -0
- package/dist/backdrops/math.d.ts +39 -0
- package/dist/backdrops/math.d.ts.map +1 -0
- package/dist/backdrops/math.js +44 -0
- package/dist/backdrops/math.js.map +1 -0
- package/dist/backdrops/scenes.d.ts +20 -0
- package/dist/backdrops/scenes.d.ts.map +1 -0
- package/dist/backdrops/scenes.js +417 -0
- package/dist/backdrops/scenes.js.map +1 -0
- package/dist/backdrops.css +141 -0
- package/dist/data.d.ts +91 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +69 -0
- package/dist/data.js.map +1 -0
- package/dist/effects/actions.d.ts +48 -0
- package/dist/effects/actions.d.ts.map +1 -0
- package/dist/effects/actions.js +80 -0
- package/dist/effects/actions.js.map +1 -0
- package/dist/effects/controls.d.ts +84 -0
- package/dist/effects/controls.d.ts.map +1 -0
- package/dist/effects/controls.js +121 -0
- package/dist/effects/controls.js.map +1 -0
- package/dist/effects/display.d.ts +92 -0
- package/dist/effects/display.d.ts.map +1 -0
- package/dist/effects/display.js +138 -0
- package/dist/effects/display.js.map +1 -0
- package/dist/effects/hooks.d.ts +13 -0
- package/dist/effects/hooks.d.ts.map +1 -0
- package/dist/effects/hooks.js +68 -0
- package/dist/effects/hooks.js.map +1 -0
- package/dist/effects/index.d.ts +14 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/index.js +12 -0
- package/dist/effects/index.js.map +1 -0
- package/dist/effects/loaders.d.ts +67 -0
- package/dist/effects/loaders.d.ts.map +1 -0
- package/dist/effects/loaders.js +73 -0
- package/dist/effects/loaders.js.map +1 -0
- package/dist/effects/math.d.ts +23 -0
- package/dist/effects/math.d.ts.map +1 -0
- package/dist/effects/math.js +56 -0
- package/dist/effects/math.js.map +1 -0
- package/dist/effects/navigation.d.ts +55 -0
- package/dist/effects/navigation.d.ts.map +1 -0
- package/dist/effects/navigation.js +103 -0
- package/dist/effects/navigation.js.map +1 -0
- package/dist/effects/overlays.d.ts +34 -0
- package/dist/effects/overlays.d.ts.map +1 -0
- package/dist/effects/overlays.js +56 -0
- package/dist/effects/overlays.js.map +1 -0
- package/dist/effects.css +1659 -0
- package/dist/feedback.d.ts +55 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +60 -0
- package/dist/feedback.js.map +1 -0
- package/dist/flow.d.ts +70 -0
- package/dist/flow.d.ts.map +1 -0
- package/dist/flow.js +118 -0
- package/dist/flow.js.map +1 -0
- package/dist/forms.d.ts +130 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +241 -0
- package/dist/forms.js.map +1 -0
- package/dist/glass.d.ts +74 -0
- package/dist/glass.d.ts.map +1 -0
- package/dist/glass.js +139 -0
- package/dist/glass.js.map +1 -0
- package/dist/illustrations/data.d.ts +103 -0
- package/dist/illustrations/data.d.ts.map +1 -0
- package/dist/illustrations/data.js +3 -0
- package/dist/illustrations/data.js.map +1 -0
- package/dist/illustrations/index.d.ts +110 -0
- package/dist/illustrations/index.d.ts.map +1 -0
- package/dist/illustrations/index.js +54 -0
- package/dist/illustrations/index.js.map +1 -0
- package/dist/illustrations/types.d.ts +30 -0
- package/dist/illustrations/types.d.ts.map +1 -0
- package/dist/illustrations/types.js +2 -0
- package/dist/illustrations/types.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/expand.d.ts +17 -0
- package/dist/internal/expand.d.ts.map +1 -0
- package/dist/internal/expand.js +23 -0
- package/dist/internal/expand.js.map +1 -0
- package/dist/internal/icons.d.ts +9 -0
- package/dist/internal/icons.d.ts.map +1 -0
- package/dist/internal/icons.js +12 -0
- package/dist/internal/icons.js.map +1 -0
- package/dist/internal/interaction.d.ts +21 -0
- package/dist/internal/interaction.d.ts.map +1 -0
- package/dist/internal/interaction.js +129 -0
- package/dist/internal/interaction.js.map +1 -0
- package/dist/internal/layers.d.ts +12 -0
- package/dist/internal/layers.d.ts.map +1 -0
- package/dist/internal/layers.js +108 -0
- package/dist/internal/layers.js.map +1 -0
- package/dist/internal/util.d.ts +9 -0
- package/dist/internal/util.d.ts.map +1 -0
- package/dist/internal/util.js +33 -0
- package/dist/internal/util.js.map +1 -0
- package/dist/layout.d.ts +34 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +27 -0
- package/dist/layout.js.map +1 -0
- package/dist/motion.d.ts +36 -0
- package/dist/motion.d.ts.map +1 -0
- package/dist/motion.js +80 -0
- package/dist/motion.js.map +1 -0
- package/dist/navigation.d.ts +100 -0
- package/dist/navigation.d.ts.map +1 -0
- package/dist/navigation.js +154 -0
- package/dist/navigation.js.map +1 -0
- package/dist/northstar/BriefForm.d.ts +23 -0
- package/dist/northstar/BriefForm.d.ts.map +1 -0
- package/dist/northstar/BriefForm.js +40 -0
- package/dist/northstar/BriefForm.js.map +1 -0
- package/dist/northstar/ExportMenu.d.ts +16 -0
- package/dist/northstar/ExportMenu.d.ts.map +1 -0
- package/dist/northstar/ExportMenu.js +11 -0
- package/dist/northstar/ExportMenu.js.map +1 -0
- package/dist/northstar/PopulationPanel.d.ts +30 -0
- package/dist/northstar/PopulationPanel.d.ts.map +1 -0
- package/dist/northstar/PopulationPanel.js +18 -0
- package/dist/northstar/PopulationPanel.js.map +1 -0
- package/dist/northstar/ResearchBuilder.d.ts +26 -0
- package/dist/northstar/ResearchBuilder.d.ts.map +1 -0
- package/dist/northstar/ResearchBuilder.js +81 -0
- package/dist/northstar/ResearchBuilder.js.map +1 -0
- package/dist/northstar/ResponsesView.d.ts +20 -0
- package/dist/northstar/ResponsesView.d.ts.map +1 -0
- package/dist/northstar/ResponsesView.js +42 -0
- package/dist/northstar/ResponsesView.js.map +1 -0
- package/dist/northstar/Run.d.ts +37 -0
- package/dist/northstar/Run.d.ts.map +1 -0
- package/dist/northstar/Run.js +32 -0
- package/dist/northstar/Run.js.map +1 -0
- package/dist/northstar/StudyShell.d.ts +50 -0
- package/dist/northstar/StudyShell.d.ts.map +1 -0
- package/dist/northstar/StudyShell.js +18 -0
- package/dist/northstar/StudyShell.js.map +1 -0
- package/dist/northstar/StudyStatus.d.ts +17 -0
- package/dist/northstar/StudyStatus.d.ts.map +1 -0
- package/dist/northstar/StudyStatus.js +26 -0
- package/dist/northstar/StudyStatus.js.map +1 -0
- package/dist/northstar/index.d.ts +10 -0
- package/dist/northstar/index.d.ts.map +1 -0
- package/dist/northstar/index.js +10 -0
- package/dist/northstar/index.js.map +1 -0
- package/dist/northstar/messages.d.ts +84 -0
- package/dist/northstar/messages.d.ts.map +1 -0
- package/dist/northstar/messages.js +107 -0
- package/dist/northstar/messages.js.map +1 -0
- package/dist/overlays.d.ts +136 -0
- package/dist/overlays.d.ts.map +1 -0
- package/dist/overlays.js +447 -0
- package/dist/overlays.js.map +1 -0
- package/dist/provider.d.ts +82 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +128 -0
- package/dist/provider.js.map +1 -0
- package/dist/styles.css +2033 -0
- package/dist/surface.d.ts +58 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +39 -0
- package/dist/surface.js.map +1 -0
- package/package.json +81 -3
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResearchBuilder.js","sourceRoot":"","sources":["../../src/northstar/ResearchBuilder.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { ResearchItem, Study } from '@northstar-js/contracts';
|
|
3
|
+
import { type WithMessages } from './messages.js';
|
|
4
|
+
export interface ResponsesViewProps extends React.HTMLAttributes<HTMLDivElement>, WithMessages {
|
|
5
|
+
study: Study;
|
|
6
|
+
/** 'objective' groups items under the study's objectives; 'item' lists them in battery order. */
|
|
7
|
+
groupBy?: 'objective' | 'item';
|
|
8
|
+
/** Which objective (index into `study.objectives`) an item belongs to. Default: the first. */
|
|
9
|
+
objectiveOf?: (item: ResearchItem, index: number) => number | undefined;
|
|
10
|
+
/** Extra content under an item's figure (a selected free-text answer, say). */
|
|
11
|
+
renderExtra?: (item: ResearchItem) => ReactNode;
|
|
12
|
+
/** Intro sentence above the figures; pass null to hide. */
|
|
13
|
+
intro?: ReactNode;
|
|
14
|
+
/** Width of each distribution chart. Default 320. */
|
|
15
|
+
chartWidth?: number;
|
|
16
|
+
locale?: string;
|
|
17
|
+
}
|
|
18
|
+
/** The Responses tab: one row per item with its headline figure and distribution, grouped by objective. */
|
|
19
|
+
export declare function ResponsesView({ study, groupBy, objectiveOf, renderExtra, intro, chartWidth, locale, messages, className, ...rest }: ResponsesViewProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=ResponsesView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsesView.d.ts","sourceRoot":"","sources":["../../src/northstar/ResponsesView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAInE,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,YAAY;IAC5F,KAAK,EAAE,KAAK,CAAC;IACb,iGAAiG;IACjG,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B,8FAA8F;IAC9F,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE,+EAA+E;IAC/E,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,SAAS,CAAC;IAChD,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,OAAqB,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,UAAgB,EAAE,MAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAC7H,EAAE,kBAAkB,2CA8EpB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import {} from 'react';
|
|
3
|
+
import { Distribution, Figure } from '@northstar-js/charts';
|
|
4
|
+
import { EmptyResponses } from '../illustrations/index.js';
|
|
5
|
+
import { cx } from '../internal/util.js';
|
|
6
|
+
import { studyMessages } from './messages.js';
|
|
7
|
+
/** The Responses tab: one row per item with its headline figure and distribution, grouped by objective. */
|
|
8
|
+
export function ResponsesView({ study, groupBy = 'objective', objectiveOf, renderExtra, intro, chartWidth = 320, locale = 'en', messages, className, ...rest }) {
|
|
9
|
+
const m = studyMessages(messages);
|
|
10
|
+
const answered = study.items.map((item, index) => ({ item, index })).filter((r) => r.item.result);
|
|
11
|
+
if (answered.length === 0) {
|
|
12
|
+
return (_jsx("div", { ...rest, className: cx('ns-responses', className), children: _jsxs("div", { className: "ns-study-empty", children: [_jsx(EmptyResponses, {}), _jsx("p", { className: "ns-study-empty__title", children: m.emptyResponsesTitle }), _jsx("p", { className: "ns-study-hint", children: m.emptyResponsesBody })] }) }));
|
|
13
|
+
}
|
|
14
|
+
let groups;
|
|
15
|
+
if (groupBy === 'item' || study.objectives.length === 0) {
|
|
16
|
+
groups = [{ key: 'all', title: m.items, rows: answered }];
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const by = new Map();
|
|
20
|
+
const other = { key: 'other', title: m.otherItems, rows: [] };
|
|
21
|
+
for (const r of answered) {
|
|
22
|
+
const o = objectiveOf ? objectiveOf(r.item, r.index) : 0;
|
|
23
|
+
if (o === undefined || !study.objectives[o]) {
|
|
24
|
+
other.rows.push(r);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (!by.has(o))
|
|
28
|
+
by.set(o, { key: `o${o}`, code: `O${o + 1}`, title: study.objectives[o], rows: [] });
|
|
29
|
+
by.get(o).rows.push(r);
|
|
30
|
+
}
|
|
31
|
+
groups = [...[...by.entries()].sort((a, b) => a[0] - b[0]).map(([, g]) => g), ...(other.rows.length ? [other] : [])];
|
|
32
|
+
}
|
|
33
|
+
return (_jsxs("div", { ...rest, className: cx('ns-responses', className), children: [intro !== null && _jsx("p", { className: "ns-study-hint ns-responses__intro", children: intro ?? m.responsesIntro }), groups.map((g) => {
|
|
34
|
+
const hid = `ns-resp-${study.id}-${g.key}`;
|
|
35
|
+
return (_jsxs("section", { className: "ns-study-panel", "aria-labelledby": hid, children: [_jsxs("div", { className: "ns-study-panel__head", children: [g.code && _jsx("span", { className: "ns-study-id", children: g.code }), _jsx("h2", { id: hid, className: "ns-study-panel__title", children: g.title }), _jsx("span", { className: "ns-study-hint ns-study-panel__end", children: m.itemCount(g.rows.length) })] }), g.rows.map(({ item, index }) => {
|
|
36
|
+
const h = item.result.headline;
|
|
37
|
+
const d = item.result.distribution;
|
|
38
|
+
return (_jsxs("article", { className: "ns-responses__row", "aria-label": m.itemId(index), children: [_jsx("span", { className: "ns-study-id", children: m.itemId(index) }), _jsx("span", { className: "ns-responses__q", children: item.question }), _jsx("div", { className: "ns-responses__figure", children: h ? (_jsx(Figure, { value: h.value, size: "sm", locale: locale, ...(h.band !== undefined ? { band: h.band } : {}), ...(h.claim ? { claim: h.claim } : {}), ...(h.caption !== undefined ? { caption: h.caption } : {}), ...(h.state ? { state: h.state } : {}) })) : null }), _jsx("div", { className: "ns-responses__dist", children: _jsx(Distribution, { anchors: d.anchors, shares: d.shares, width: chartWidth, locale: locale, title: `${m.distribution} ${m.itemId(index)}` }) }), renderExtra && _jsx("div", { className: "ns-responses__extra", children: renderExtra(item) })] }, item.key));
|
|
39
|
+
})] }, g.key));
|
|
40
|
+
})] }));
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=ResponsesView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponsesView.js","sourceRoot":"","sources":["../../src/northstar/ResponsesView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { CostEstimate } from '@northstar-js/contracts';
|
|
3
|
+
import { type WithMessages } from './messages.js';
|
|
4
|
+
/** Format an estimate as currency, or null when there is none. */
|
|
5
|
+
export declare function formatCost(estimate: CostEstimate | undefined, locale?: string): string | null;
|
|
6
|
+
export interface RunCostProps extends React.HTMLAttributes<HTMLDivElement>, WithMessages {
|
|
7
|
+
/** null or undefined shows "Cost unavailable" and disables the run. */
|
|
8
|
+
estimate: CostEstimate | undefined;
|
|
9
|
+
/** Called by the run button. Omit to hide the button. */
|
|
10
|
+
onRun?: () => void;
|
|
11
|
+
/** Disable the run for another reason (an anchor to fix, say). */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Shown under the button, e.g. why the run is blocked. */
|
|
14
|
+
note?: ReactNode;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
locale?: string;
|
|
17
|
+
/** Icon-first run button (for a narrow rail): the run icon shows and the label eases open on hover and focus. Default false. */
|
|
18
|
+
expand?: boolean | 'always';
|
|
19
|
+
}
|
|
20
|
+
/** Estimated cost and the run button. Without an estimate the cost reads "Cost unavailable" and nothing can run. */
|
|
21
|
+
export declare function RunCost({ estimate, onRun, disabled, note, loading, locale, expand, messages, className, ...rest }: RunCostProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export interface RunConfirmProps extends WithMessages {
|
|
23
|
+
open?: boolean;
|
|
24
|
+
defaultOpen?: boolean;
|
|
25
|
+
onOpenChange?: (open: boolean) => void;
|
|
26
|
+
estimate: CostEstimate | undefined;
|
|
27
|
+
/** Study title, shown in the body. */
|
|
28
|
+
studyTitle?: string;
|
|
29
|
+
onConfirm: () => void;
|
|
30
|
+
/** Optional trigger; usually the RunCost button opens the dialog through `open`. */
|
|
31
|
+
trigger?: ReactNode;
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
locale?: string;
|
|
34
|
+
}
|
|
35
|
+
/** The paid-run confirmation. Confirm is disabled while no estimate exists. */
|
|
36
|
+
export declare function RunConfirm({ open, defaultOpen, onOpenChange, estimate, studyTitle, onConfirm, trigger, children, locale, messages, }: RunConfirmProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=Run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../../src/northstar/Run.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAK5D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,EAAE,MAAM,SAAO,GAAG,MAAM,GAAG,IAAI,CAO3F;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,YAAY;IACtF,uEAAuE;IACvE,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gIAAgI;IAChI,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAED,oHAAoH;AACpH,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAa,EAAE,MAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,2CA4BtJ;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,oFAAoF;IACpF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,EACzB,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAa,EAAE,QAAQ,GAC7G,EAAE,eAAe,2CAoCjB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Icon } from '@northstar-js/icons';
|
|
4
|
+
import { Button } from '../actions.js';
|
|
5
|
+
import { Dialog } from '../overlays.js';
|
|
6
|
+
import { cx } from '../internal/util.js';
|
|
7
|
+
import { studyMessages } from './messages.js';
|
|
8
|
+
/** Format an estimate as currency, or null when there is none. */
|
|
9
|
+
export function formatCost(estimate, locale = 'en') {
|
|
10
|
+
if (!estimate)
|
|
11
|
+
return null;
|
|
12
|
+
try {
|
|
13
|
+
return new Intl.NumberFormat(locale, { style: 'currency', currency: estimate.currency }).format(estimate.amount);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return `${estimate.amount} ${estimate.currency}`;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Estimated cost and the run button. Without an estimate the cost reads "Cost unavailable" and nothing can run. */
|
|
20
|
+
export function RunCost({ estimate, onRun, disabled = false, note, loading, locale = 'en', expand = false, messages, className, ...rest }) {
|
|
21
|
+
const m = studyMessages(messages);
|
|
22
|
+
const cost = formatCost(estimate, locale);
|
|
23
|
+
const unavailable = cost === null;
|
|
24
|
+
return (_jsxs("div", { ...rest, className: cx('ns-run-cost', className), "data-unavailable": unavailable || undefined, children: [_jsxs("div", { className: "ns-run-cost__line", children: [_jsx("span", { className: "ns-study-muted", children: m.estimatedCost }), _jsx("span", { className: cx('ns-study-mono', unavailable && 'ns-study-muted'), children: cost ?? m.costUnavailable })] }), estimate?.basis && _jsx("span", { className: "ns-study-hint", children: estimate.basis }), onRun && (_jsx(Button, { variant: "primary", onClick: onRun, disabled: unavailable || disabled, loading: loading ?? false, icon: _jsx(Icon, { name: "run", size: 14 }), expand: expand, className: cx('ns-run-cost__button', expand && 'ns-run-cost__button--expand'), children: m.runStudy })), unavailable && _jsx("span", { className: "ns-study-hint", children: m.costUnavailableHint }), note && _jsx("div", { className: "ns-study-callout", children: note })] }));
|
|
25
|
+
}
|
|
26
|
+
/** The paid-run confirmation. Confirm is disabled while no estimate exists. */
|
|
27
|
+
export function RunConfirm({ open, defaultOpen, onOpenChange, estimate, studyTitle, onConfirm, trigger, children, locale = 'en', messages, }) {
|
|
28
|
+
const m = studyMessages(messages);
|
|
29
|
+
const cost = formatCost(estimate, locale);
|
|
30
|
+
return (_jsxs(Dialog.Root, { ...(open !== undefined ? { open } : {}), ...(defaultOpen !== undefined ? { defaultOpen } : {}), ...(onOpenChange ? { onOpenChange } : {}), children: [trigger && _jsx(Dialog.Trigger, { className: "ns-button ns-button--secondary ns-size-md", children: trigger }), _jsxs(Dialog.Content, { size: "sm", children: [_jsxs(Dialog.Header, { children: [_jsxs("div", { children: [_jsx(Dialog.Title, { children: m.runConfirmTitle }), _jsxs(Dialog.Description, { children: [studyTitle ? `${studyTitle}. ` : '', m.runConfirmBody] })] }), _jsx(Dialog.Close, {})] }), _jsxs("div", { className: "ns-run-cost__line ns-run-confirm__cost", children: [_jsx("span", { className: "ns-study-muted", children: m.estimatedCost }), _jsx("span", { className: "ns-study-mono", children: cost ?? m.costUnavailable })] }), children, _jsxs(Dialog.Footer, { children: [_jsx(Dialog.Close, { className: "ns-button ns-button--secondary ns-size-md", children: m.cancel }), _jsxs(Dialog.Close, { className: "ns-button ns-button--primary ns-size-md", disabled: cost === null, onClick: () => onConfirm(), children: [_jsx(Icon, { name: "run", size: 14, className: "ns-button__icon" }), m.confirmRun] })] })] })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=Run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Run.js","sourceRoot":"","sources":["../../src/northstar/Run.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Study, StudyTab } from '@northstar-js/contracts';
|
|
3
|
+
import { type IconName } from '@northstar-js/icons';
|
|
4
|
+
import { type WithMessages } from './messages.js';
|
|
5
|
+
export declare const STUDY_TABS: readonly StudyTab[];
|
|
6
|
+
/** The icon each study section leads with. */
|
|
7
|
+
export declare const STUDY_TAB_ICON: Record<StudyTab, IconName>;
|
|
8
|
+
export interface StudyShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>, WithMessages {
|
|
9
|
+
study: Study;
|
|
10
|
+
/** The open tab (controlled). Falls back to `defaultTab`, then `study.tab`, then 'brief'. */
|
|
11
|
+
tab?: StudyTab;
|
|
12
|
+
defaultTab?: StudyTab;
|
|
13
|
+
onTabChange?: (tab: StudyTab) => void;
|
|
14
|
+
/** Content per tab. `children` renders under the active tab when no panel is given for it. */
|
|
15
|
+
panels?: Partial<Record<StudyTab, ReactNode>>;
|
|
16
|
+
/** Small counter beside each tab label, e.g. "2/3" or "locked". */
|
|
17
|
+
tabMeta?: Partial<Record<StudyTab, ReactNode>>;
|
|
18
|
+
/** Actions at the end of the tab bar (e.g. "Add item" on Research). */
|
|
19
|
+
tabActions?: ReactNode;
|
|
20
|
+
/** Actions at the end of the title bar (export, more). */
|
|
21
|
+
actions?: ReactNode;
|
|
22
|
+
/** Save indicator; omit to hide. */
|
|
23
|
+
saveState?: 'saved' | 'saving';
|
|
24
|
+
/** The breadcrumb root. Defaults to "Studies". */
|
|
25
|
+
crumb?: ReactNode;
|
|
26
|
+
/** Right-hand properties rail. */
|
|
27
|
+
aside?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Guided mode: the four tabs become a flow (Brief → Population → Research →
|
|
30
|
+
* Responses) with progress, animated step changes and one next action.
|
|
31
|
+
*/
|
|
32
|
+
guided?: boolean;
|
|
33
|
+
/** Guided mode: steps that cannot be left yet (e.g. an unfinished brief). */
|
|
34
|
+
blockedTabs?: readonly StudyTab[];
|
|
35
|
+
/** Guided mode: a short line beside the next action, per step. */
|
|
36
|
+
stepHints?: Partial<Record<StudyTab, ReactNode>>;
|
|
37
|
+
/** Guided mode: the next action on the last step. */
|
|
38
|
+
onFinish?: () => void;
|
|
39
|
+
/** Guided mode: label of the last step's action. */
|
|
40
|
+
finishLabel?: ReactNode;
|
|
41
|
+
/**
|
|
42
|
+
* Tab icons. `true` (default) leads each tab with its section icon; `expand`
|
|
43
|
+
* is icon-first: the icon shows and the label eases open on hover, focus and
|
|
44
|
+
* for the open tab (always on touch); false drops the icons.
|
|
45
|
+
*/
|
|
46
|
+
iconTabs?: boolean | 'expand';
|
|
47
|
+
}
|
|
48
|
+
/** The study workspace: title bar, the four tabs Brief → Population → Research → Responses, content and an optional rail. */
|
|
49
|
+
export declare function StudyShell({ study, tab, defaultTab, onTabChange, panels, tabMeta, tabActions, actions, saveState, crumb, aside, guided, blockedTabs, stepHints, onFinish, finishLabel, iconTabs, messages, className, children, ...rest }: StudyShellProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
//# sourceMappingURL=StudyShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudyShell.d.ts","sourceRoot":"","sources":["../../src/northstar/StudyShell.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAK1D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAAqD,CAAC;AAEhG,8CAA8C;AAC9C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAA8F,CAAC;AAErJ,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY;IACxG,KAAK,EAAE,KAAK,CAAC;IACb,6FAA6F;IAC7F,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;IACtC,8FAA8F;IAC9F,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9C,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,uEAAuE;IACvE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B,kDAAkD;IAClD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kCAAkC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAClC,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED,6HAA6H;AAC7H,wBAAgB,UAAU,CAAC,EACzB,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAc,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAC3N,EAAE,eAAe,2CAwEjB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Icon } from '@northstar-js/icons';
|
|
4
|
+
import { Tabs } from '../navigation.js';
|
|
5
|
+
import { FlowStep, FlowSteps, NextAction } from '../flow.js';
|
|
6
|
+
import { cx, useControllable } from '../internal/util.js';
|
|
7
|
+
import { StudyStatus } from './StudyStatus.js';
|
|
8
|
+
import { studyMessages } from './messages.js';
|
|
9
|
+
export const STUDY_TABS = ['brief', 'population', 'research', 'responses'];
|
|
10
|
+
/** The icon each study section leads with. */
|
|
11
|
+
export const STUDY_TAB_ICON = { brief: 'brief', population: 'population', research: 'research', responses: 'responses' };
|
|
12
|
+
/** The study workspace: title bar, the four tabs Brief → Population → Research → Responses, content and an optional rail. */
|
|
13
|
+
export function StudyShell({ study, tab, defaultTab, onTabChange, panels, tabMeta, tabActions, actions, saveState, crumb, aside, guided = false, blockedTabs, stepHints, onFinish, finishLabel, iconTabs = true, messages, className, children, ...rest }) {
|
|
14
|
+
const m = studyMessages(messages);
|
|
15
|
+
const [current, setCurrent] = useControllable(tab, defaultTab ?? study.tab ?? 'brief', onTabChange);
|
|
16
|
+
return (_jsxs("div", { ...rest, className: cx('ns-study-shell', aside ? 'ns-study-shell--with-aside' : undefined, className), "data-study": study.id, children: [_jsxs("div", { className: "ns-study-shell__main", children: [_jsxs("div", { className: "ns-study-shell__bar", children: [_jsxs("nav", { className: "ns-study-shell__crumb", "aria-label": m.studies, children: [_jsx("span", { children: crumb ?? m.studies }), _jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "1.5", "aria-hidden": "true", children: _jsx("path", { d: "M3.5 2 6.5 5 3.5 8" }) }), _jsx("b", { "aria-current": "page", children: study.title })] }), _jsx(StudyStatus, { state: study.state, messages: messages }), _jsx("span", { className: "ns-study-shell__spacer" }), saveState && (_jsx("span", { className: "ns-study-shell__save", role: "status", children: saveState === 'saving' ? m.saving : m.saved })), actions] }), guided ? (_jsx(FlowSteps, { value: current, onValueChange: (v) => setCurrent(v), onComplete: onFinish, label: m.studySections, className: "ns-study-shell__flow", children: STUDY_TABS.map((t) => (_jsxs(FlowStep, { value: t, title: m.tabs[t], textTitle: m.tabs[t], icon: iconTabs ? _jsx(Icon, { name: STUDY_TAB_ICON[t], size: 14 }) : undefined, blocked: blockedTabs?.includes(t), description: tabMeta?.[t], children: [panels?.[t] ?? children, _jsx("div", { className: "ns-study-shell__next", children: _jsx(NextAction, { hint: stepHints?.[t], finishLabel: finishLabel }) })] }, t))) })) : (_jsxs(Tabs.Root, { value: current, onValueChange: (v) => setCurrent(v), transition: true, className: "ns-study-shell__tabs", children: [_jsxs("div", { className: "ns-study-shell__tabbar", children: [_jsx(Tabs.List, { label: m.studySections, className: "ns-study-shell__tablist", children: STUDY_TABS.map((t) => (_jsxs(Tabs.Trigger, { value: t, className: "ns-study-shell__tab", icon: iconTabs ? _jsx(Icon, { name: STUDY_TAB_ICON[t], size: 14 }) : undefined, expand: iconTabs === 'expand', children: [m.tabs[t], tabMeta?.[t] !== undefined && _jsx("span", { className: "ns-study-shell__tab-meta", children: tabMeta[t] })] }, t))) }), tabActions && _jsx("div", { className: "ns-study-shell__tab-actions", children: tabActions })] }), _jsx(Tabs.Content, { value: current, className: "ns-study-shell__content", children: panels?.[current] ?? children })] }))] }), aside && (_jsx("aside", { className: "ns-study-shell__aside", "aria-label": m.studyProperties, children: aside }))] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=StudyShell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudyShell.js","sourceRoot":"","sources":["../../src/northstar/StudyShell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StudyState } from '@northstar-js/contracts';
|
|
2
|
+
import { type IconName } from '@northstar-js/icons';
|
|
3
|
+
import { type WithMessages } from './messages.js';
|
|
4
|
+
/** One dial shape per state: status is told apart by shape and word, never by hue alone. */
|
|
5
|
+
export declare const STATUS_ICON: Record<StudyState, IconName>;
|
|
6
|
+
export interface StudyStatusProps extends React.HTMLAttributes<HTMLSpanElement>, WithMessages {
|
|
7
|
+
state: StudyState;
|
|
8
|
+
/** 'tag' draws a bordered chip; 'inline' only the mark and word. */
|
|
9
|
+
variant?: 'tag' | 'inline';
|
|
10
|
+
/** Icon size in px. */
|
|
11
|
+
size?: number;
|
|
12
|
+
/** Icon-first chip: the dial shows and the word eases open on hover (always on touch); the word names it for screen readers throughout. `always` keeps it. Default false. */
|
|
13
|
+
expand?: boolean | 'always';
|
|
14
|
+
}
|
|
15
|
+
/** Study lifecycle state: a dial shape plus its word. Running sweeps, or stands still under reduced motion. */
|
|
16
|
+
export declare function StudyStatus({ state, variant, size, expand, messages, className, ...rest }: StudyStatusProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=StudyStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudyStatus.d.ts","sourceRoot":"","sources":["../../src/northstar/StudyStatus.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI1D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE,4FAA4F;AAC5F,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAQpD,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,YAAY;IAC3F,KAAK,EAAE,UAAU,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC3B,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6KAA6K;IAC7K,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAED,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,IAAS,EAAE,MAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,2CAuBhI"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Icon } from '@northstar-js/icons';
|
|
4
|
+
import { usePrefersReducedMotion } from '@northstar-js/motion';
|
|
5
|
+
import { cx } from '../internal/util.js';
|
|
6
|
+
import { ExpandIcon, ExpandLabel, expandHost } from '../internal/expand.js';
|
|
7
|
+
import { studyMessages } from './messages.js';
|
|
8
|
+
/** One dial shape per state: status is told apart by shape and word, never by hue alone. */
|
|
9
|
+
export const STATUS_ICON = {
|
|
10
|
+
draft: 'draft',
|
|
11
|
+
ready: 'study',
|
|
12
|
+
running: 'running',
|
|
13
|
+
complete: 'complete',
|
|
14
|
+
partial: 'drift',
|
|
15
|
+
failed: 'off-axis',
|
|
16
|
+
archived: 'locked',
|
|
17
|
+
};
|
|
18
|
+
/** Study lifecycle state: a dial shape plus its word. Running sweeps, or stands still under reduced motion. */
|
|
19
|
+
export function StudyStatus({ state, variant = 'tag', size = 14, expand = false, messages, className, ...rest }) {
|
|
20
|
+
const m = studyMessages(messages);
|
|
21
|
+
const reduced = usePrefersReducedMotion();
|
|
22
|
+
const motion = state === 'running' ? (reduced ? 'still' : 'sweep') : undefined;
|
|
23
|
+
const host = expandHost(expand);
|
|
24
|
+
return (_jsxs("span", { ...rest, className: cx('ns-study-status', `ns-study-status--${variant}`, `ns-study-status--${state}`, host.className, className), "data-state": state, "data-expand": host['data-expand'], ...(motion ? { 'data-motion': motion } : {}), children: [host.className ? (_jsx(ExpandIcon, { children: _jsx(Icon, { name: STATUS_ICON[state], size: size, className: "ns-study-status__mark" }) })) : (_jsx(Icon, { name: STATUS_ICON[state], size: size, className: "ns-study-status__mark" })), host.className ? _jsx(ExpandLabel, { className: "ns-study-status__word", children: m.states[state] }) : _jsx("span", { className: "ns-study-status__word", children: m.states[state] })] }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=StudyStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StudyStatus.js","sourceRoot":"","sources":["../../src/northstar/StudyStatus.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AAEjE,4FAA4F;AAC5F,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAYF,+GAA+G;AAC/G,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAoB;IAC/H,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,CACL,mBACM,IAAI,EACR,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,oBAAoB,OAAO,EAAE,EAAE,oBAAoB,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,gBAC3G,KAAK,iBACJ,IAAI,CAAC,aAAa,CAAC,KAC5B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAE5C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAChB,KAAC,UAAU,cACT,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,uBAAuB,GAAG,GACrE,CACd,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,uBAAuB,GAAG,CACjF,EACA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,SAAS,EAAC,uBAAuB,YAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAe,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,uBAAuB,YAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,IAC9J,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { StudyShell, STUDY_TABS, type StudyShellProps } from './StudyShell.js';
|
|
2
|
+
export { StudyStatus, STATUS_ICON, type StudyStatusProps } from './StudyStatus.js';
|
|
3
|
+
export { BriefForm, type BriefFormProps, type BriefValue } from './BriefForm.js';
|
|
4
|
+
export { PopulationPanel, type PopulationPanelProps, type CompositionGroup } from './PopulationPanel.js';
|
|
5
|
+
export { ResearchBuilder, type ResearchBuilderProps, type AnchorIssue } from './ResearchBuilder.js';
|
|
6
|
+
export { ResponsesView, type ResponsesViewProps } from './ResponsesView.js';
|
|
7
|
+
export { RunCost, RunConfirm, formatCost, type RunCostProps, type RunConfirmProps } from './Run.js';
|
|
8
|
+
export { ExportMenu, type ExportMenuProps, type ExportFormat } from './ExportMenu.js';
|
|
9
|
+
export { enStudy, studyMessages, type StudyMessages, type WithMessages } from './messages.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/northstar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { StudyShell, STUDY_TABS } from './StudyShell.js';
|
|
2
|
+
export { StudyStatus, STATUS_ICON } from './StudyStatus.js';
|
|
3
|
+
export { BriefForm } from './BriefForm.js';
|
|
4
|
+
export { PopulationPanel } from './PopulationPanel.js';
|
|
5
|
+
export { ResearchBuilder } from './ResearchBuilder.js';
|
|
6
|
+
export { ResponsesView } from './ResponsesView.js';
|
|
7
|
+
export { RunCost, RunConfirm, formatCost } from './Run.js';
|
|
8
|
+
export { ExportMenu } from './ExportMenu.js';
|
|
9
|
+
export { enStudy, studyMessages } from './messages.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/northstar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAwC,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAoD,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,eAAe,EAA+C,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAA2C,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,UAAU,EAA2C,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAyC,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { QuestionType, ResponseFormat, StudyState, StudyTab } from '@northstar-js/contracts';
|
|
2
|
+
/** Every string the Northstar components show. English ships as the default. */
|
|
3
|
+
export interface StudyMessages {
|
|
4
|
+
states: Record<StudyState, string>;
|
|
5
|
+
tabs: Record<StudyTab, string>;
|
|
6
|
+
studies: string;
|
|
7
|
+
studySections: string;
|
|
8
|
+
studyProperties: string;
|
|
9
|
+
saved: string;
|
|
10
|
+
saving: string;
|
|
11
|
+
studyName: string;
|
|
12
|
+
decision: string;
|
|
13
|
+
decisionPlaceholder: string;
|
|
14
|
+
objectives: string;
|
|
15
|
+
objectiveCount: (n: number, max: number) => string;
|
|
16
|
+
addObjective: string;
|
|
17
|
+
objectiveLabel: (i: number) => string;
|
|
18
|
+
objectivePlaceholder: string;
|
|
19
|
+
removeObjective: (i: number) => string;
|
|
20
|
+
objectivesHint: string;
|
|
21
|
+
emptyBriefTitle: string;
|
|
22
|
+
emptyBriefBody: string;
|
|
23
|
+
market: string;
|
|
24
|
+
size: string;
|
|
25
|
+
seed: string;
|
|
26
|
+
rebuild: string;
|
|
27
|
+
rebuildHint: string;
|
|
28
|
+
composition: string;
|
|
29
|
+
panel: string;
|
|
30
|
+
margin: string;
|
|
31
|
+
scope: string;
|
|
32
|
+
scopeBody: string;
|
|
33
|
+
emptyPopulationTitle: string;
|
|
34
|
+
emptyPopulationBody: string;
|
|
35
|
+
items: string;
|
|
36
|
+
addItem: string;
|
|
37
|
+
itemId: (i: number) => string;
|
|
38
|
+
moveUp: (id: string) => string;
|
|
39
|
+
moveDown: (id: string) => string;
|
|
40
|
+
removeItem: (id: string) => string;
|
|
41
|
+
wording: string;
|
|
42
|
+
questionType: string;
|
|
43
|
+
format: string;
|
|
44
|
+
anchors: string;
|
|
45
|
+
anchorLabel: (i: number) => string;
|
|
46
|
+
anchorPasses: string;
|
|
47
|
+
anchorNeedsFix: string;
|
|
48
|
+
needsFix: string;
|
|
49
|
+
anchorHint: string;
|
|
50
|
+
questionTypes: Record<QuestionType, string>;
|
|
51
|
+
formats: Record<ResponseFormat, string>;
|
|
52
|
+
emptyResearchTitle: string;
|
|
53
|
+
emptyResearchBody: string;
|
|
54
|
+
selectItem: string;
|
|
55
|
+
responsesIntro: string;
|
|
56
|
+
itemCount: (n: number) => string;
|
|
57
|
+
otherItems: string;
|
|
58
|
+
distribution: string;
|
|
59
|
+
emptyResponsesTitle: string;
|
|
60
|
+
emptyResponsesBody: string;
|
|
61
|
+
run: string;
|
|
62
|
+
runStudy: string;
|
|
63
|
+
estimatedCost: string;
|
|
64
|
+
costUnavailable: string;
|
|
65
|
+
costUnavailableHint: string;
|
|
66
|
+
runConfirmTitle: string;
|
|
67
|
+
runConfirmBody: string;
|
|
68
|
+
cancel: string;
|
|
69
|
+
confirmRun: string;
|
|
70
|
+
export: string;
|
|
71
|
+
exportFormats: {
|
|
72
|
+
pdf: string;
|
|
73
|
+
spec: string;
|
|
74
|
+
csv: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export declare const enStudy: StudyMessages;
|
|
78
|
+
/** Merge partial overrides over the English defaults (one level deep for the record fields). */
|
|
79
|
+
export declare function studyMessages(override?: Partial<StudyMessages>): StudyMessages;
|
|
80
|
+
export interface WithMessages {
|
|
81
|
+
/** String overrides; English defaults fill the rest. */
|
|
82
|
+
messages?: Partial<StudyMessages> | undefined;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/northstar/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export const enStudy = {
|
|
2
|
+
states: {
|
|
3
|
+
draft: 'Draft',
|
|
4
|
+
ready: 'Ready',
|
|
5
|
+
running: 'Running',
|
|
6
|
+
complete: 'Complete',
|
|
7
|
+
partial: 'Partial',
|
|
8
|
+
failed: 'Failed',
|
|
9
|
+
archived: 'Archived',
|
|
10
|
+
},
|
|
11
|
+
tabs: { brief: 'Brief', population: 'Population', research: 'Research', responses: 'Responses' },
|
|
12
|
+
studies: 'Studies',
|
|
13
|
+
studySections: 'Study sections',
|
|
14
|
+
studyProperties: 'Study properties',
|
|
15
|
+
saved: 'Saved',
|
|
16
|
+
saving: 'Saving…',
|
|
17
|
+
studyName: 'Study name',
|
|
18
|
+
decision: 'Decision this study informs',
|
|
19
|
+
decisionPlaceholder: 'Name the one decision this study informs.',
|
|
20
|
+
objectives: 'Objectives',
|
|
21
|
+
objectiveCount: (n, max) => `${n} of ${max}`,
|
|
22
|
+
addObjective: 'Add',
|
|
23
|
+
objectiveLabel: (i) => `Objective O${i + 1}`,
|
|
24
|
+
objectivePlaceholder: 'Add an objective…',
|
|
25
|
+
removeObjective: (i) => `Remove objective O${i + 1}`,
|
|
26
|
+
objectivesHint: 'Every research item points at one objective, and Responses groups figures the same way.',
|
|
27
|
+
emptyBriefTitle: 'Start with the decision',
|
|
28
|
+
emptyBriefBody: 'Name the one decision this study informs.',
|
|
29
|
+
market: 'Market',
|
|
30
|
+
size: 'Size',
|
|
31
|
+
seed: 'Seed',
|
|
32
|
+
rebuild: 'Rebuild',
|
|
33
|
+
rebuildHint: 'Deterministic · 0 API calls',
|
|
34
|
+
composition: 'Composition',
|
|
35
|
+
panel: 'Panel',
|
|
36
|
+
margin: 'Margin',
|
|
37
|
+
scope: 'Scope',
|
|
38
|
+
scopeBody: 'One population per study. Results describe it as a whole; groups inside it are not compared.',
|
|
39
|
+
emptyPopulationTitle: 'No panel yet',
|
|
40
|
+
emptyPopulationBody: 'The roster is free; writing personas is paid and shows a cost estimate first.',
|
|
41
|
+
items: 'Items',
|
|
42
|
+
addItem: 'Item',
|
|
43
|
+
itemId: (i) => `R${i + 1}`,
|
|
44
|
+
moveUp: (id) => `Move ${id} up`,
|
|
45
|
+
moveDown: (id) => `Move ${id} down`,
|
|
46
|
+
removeItem: (id) => `Remove ${id}`,
|
|
47
|
+
wording: 'Wording',
|
|
48
|
+
questionType: 'Question type',
|
|
49
|
+
format: 'Format',
|
|
50
|
+
anchors: 'Anchors',
|
|
51
|
+
anchorLabel: (i) => `Anchor ${i + 1}`,
|
|
52
|
+
anchorPasses: 'Passes',
|
|
53
|
+
anchorNeedsFix: 'Needs a fix',
|
|
54
|
+
needsFix: 'Fix',
|
|
55
|
+
anchorHint: 'The anchor check is free and reruns as you type.',
|
|
56
|
+
questionTypes: {
|
|
57
|
+
mood_direction: 'Mood and direction',
|
|
58
|
+
consensus_trust: 'Consensus and trust',
|
|
59
|
+
neutral_factual: 'Neutral factual',
|
|
60
|
+
concrete_habit: 'Concrete habit',
|
|
61
|
+
values_identity: 'Values and identity',
|
|
62
|
+
intention_virtue: 'Intention and virtue',
|
|
63
|
+
},
|
|
64
|
+
formats: {
|
|
65
|
+
likert: 'Likert 5',
|
|
66
|
+
single_choice: 'Single',
|
|
67
|
+
multi_select: 'Multiple',
|
|
68
|
+
ranking: 'Ranking',
|
|
69
|
+
free_text: 'Free text',
|
|
70
|
+
price_trial: 'Price trial',
|
|
71
|
+
},
|
|
72
|
+
emptyResearchTitle: 'No items yet',
|
|
73
|
+
emptyResearchBody: 'Every anchor passes the free gate before any paid call.',
|
|
74
|
+
selectItem: 'Select an item to edit it.',
|
|
75
|
+
responsesIntro: 'Screening signals about the population as a whole, not predictions about any person.',
|
|
76
|
+
itemCount: (n) => `${n} ${n === 1 ? 'item' : 'items'}`,
|
|
77
|
+
otherItems: 'Other items',
|
|
78
|
+
distribution: 'Distribution',
|
|
79
|
+
emptyResponsesTitle: 'No responses yet',
|
|
80
|
+
emptyResponsesBody: 'A cost estimate comes before any paid run.',
|
|
81
|
+
run: 'Run',
|
|
82
|
+
runStudy: 'Run study',
|
|
83
|
+
estimatedCost: 'Estimated cost',
|
|
84
|
+
costUnavailable: 'Cost unavailable',
|
|
85
|
+
costUnavailableHint: 'Running needs a cost estimate. Nothing is spent until you confirm.',
|
|
86
|
+
runConfirmTitle: 'Run this study?',
|
|
87
|
+
runConfirmBody: 'This is a paid run. Nothing is spent until you confirm.',
|
|
88
|
+
cancel: 'Cancel',
|
|
89
|
+
confirmRun: 'Run study',
|
|
90
|
+
export: 'Export',
|
|
91
|
+
exportFormats: { pdf: 'Export PDF', spec: 'Report spec (JSON)', csv: 'Responses (CSV)' },
|
|
92
|
+
};
|
|
93
|
+
/** Merge partial overrides over the English defaults (one level deep for the record fields). */
|
|
94
|
+
export function studyMessages(override) {
|
|
95
|
+
if (!override)
|
|
96
|
+
return enStudy;
|
|
97
|
+
return {
|
|
98
|
+
...enStudy,
|
|
99
|
+
...override,
|
|
100
|
+
states: { ...enStudy.states, ...override.states },
|
|
101
|
+
tabs: { ...enStudy.tabs, ...override.tabs },
|
|
102
|
+
questionTypes: { ...enStudy.questionTypes, ...override.questionTypes },
|
|
103
|
+
formats: { ...enStudy.formats, ...override.formats },
|
|
104
|
+
exportFormats: { ...enStudy.exportFormats, ...override.exportFormats },
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/northstar/messages.ts"],"names":[],"mappings":"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"}
|