@skillcdn/console 0.4.0 → 0.4.2
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/README.md +20 -2
- package/SKILLCDN.md +7 -5
- package/dist/api.d.ts +5 -4
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +5 -4
- package/dist/api.js.map +1 -1
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +579 -45
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/format.d.ts +34 -3
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +277 -6
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +60 -7
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/plugin-check.d.ts +21 -0
- package/dist/cli/plugin-check.d.ts.map +1 -0
- package/dist/cli/plugin-check.js +374 -0
- package/dist/cli/plugin-check.js.map +1 -0
- package/dist/cli/plugin-cli.d.ts +20 -0
- package/dist/cli/plugin-cli.d.ts.map +1 -0
- package/dist/cli/plugin-cli.js +123 -0
- package/dist/cli/plugin-cli.js.map +1 -0
- package/dist/cli/plugin-init.d.ts +20 -0
- package/dist/cli/plugin-init.d.ts.map +1 -0
- package/dist/cli/plugin-init.js +74 -0
- package/dist/cli/plugin-init.js.map +1 -0
- package/dist/cli/plugin-main.d.ts +3 -0
- package/dist/cli/plugin-main.d.ts.map +1 -0
- package/dist/cli/plugin-main.js +28 -0
- package/dist/cli/plugin-main.js.map +1 -0
- package/dist/client.d.ts +109 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +67 -2
- package/dist/client.js.map +1 -1
- package/dist/compat.d.ts +1 -1
- package/dist/compat.js +2 -2
- package/dist/components/board.d.ts +8 -0
- package/dist/components/board.d.ts.map +1 -1
- package/dist/components/board.js +59 -15
- package/dist/components/board.js.map +1 -1
- package/dist/components/event-feed.d.ts +1 -1
- package/dist/components/event-feed.d.ts.map +1 -1
- package/dist/components/event-feed.js +33 -1
- package/dist/components/event-feed.js.map +1 -1
- package/dist/components/markdown.d.ts.map +1 -1
- package/dist/components/markdown.js +6 -3
- package/dist/components/markdown.js.map +1 -1
- package/dist/components/pack-connect.d.ts +3 -1
- package/dist/components/pack-connect.d.ts.map +1 -1
- package/dist/components/pack-connect.js +4 -4
- package/dist/components/pack-connect.js.map +1 -1
- package/dist/components/pack-token.d.ts +3 -1
- package/dist/components/pack-token.d.ts.map +1 -1
- package/dist/components/pack-token.js +1 -1
- package/dist/components/pack-token.js.map +1 -1
- package/dist/components/people.d.ts.map +1 -1
- package/dist/components/people.js +14 -3
- package/dist/components/people.js.map +1 -1
- package/dist/components/plugin-frame.d.ts +52 -0
- package/dist/components/plugin-frame.d.ts.map +1 -0
- package/dist/components/plugin-frame.js +314 -0
- package/dist/components/plugin-frame.js.map +1 -0
- package/dist/components/plugin-settings.d.ts +38 -0
- package/dist/components/plugin-settings.d.ts.map +1 -0
- package/dist/components/plugin-settings.js +348 -0
- package/dist/components/plugin-settings.js.map +1 -0
- package/dist/components/remote-pictures.d.ts +6 -0
- package/dist/components/remote-pictures.d.ts.map +1 -0
- package/dist/components/remote-pictures.js +8 -0
- package/dist/components/remote-pictures.js.map +1 -0
- package/dist/components/shell.d.ts +2 -0
- package/dist/components/shell.d.ts.map +1 -1
- package/dist/components/shell.js +26 -1
- package/dist/components/shell.js.map +1 -1
- package/dist/components/sign-in.d.ts.map +1 -1
- package/dist/components/sign-in.js +49 -2
- package/dist/components/sign-in.js.map +1 -1
- package/dist/components/ui.d.ts +3 -2
- package/dist/components/ui.d.ts.map +1 -1
- package/dist/components/ui.js +6 -3
- package/dist/components/ui.js.map +1 -1
- package/dist/components/workspace.d.ts +7 -1
- package/dist/components/workspace.d.ts.map +1 -1
- package/dist/components/workspace.js +1 -1
- package/dist/components/workspace.js.map +1 -1
- package/dist/console.css +384 -5
- package/dist/console.d.ts.map +1 -1
- package/dist/console.js +146 -29
- package/dist/console.js.map +1 -1
- package/dist/data.d.ts +11 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +35 -21
- package/dist/data.js.map +1 -1
- package/dist/i18n/en.d.ts +163 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +174 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/ko.d.ts.map +1 -1
- package/dist/i18n/ko.js +154 -1
- package/dist/i18n/ko.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +14 -0
- package/dist/limits.d.ts.map +1 -1
- package/dist/limits.js +14 -0
- package/dist/limits.js.map +1 -1
- package/dist/plugin/args.d.ts +148 -0
- package/dist/plugin/args.d.ts.map +1 -0
- package/dist/plugin/args.js +369 -0
- package/dist/plugin/args.js.map +1 -0
- package/dist/plugin/bridge.d.ts +146 -0
- package/dist/plugin/bridge.d.ts.map +1 -0
- package/dist/plugin/bridge.js +125 -0
- package/dist/plugin/bridge.js.map +1 -0
- package/dist/plugin/capabilities.d.ts +20 -0
- package/dist/plugin/capabilities.d.ts.map +1 -0
- package/dist/plugin/capabilities.js +133 -0
- package/dist/plugin/capabilities.js.map +1 -0
- package/dist/plugin/context.d.ts +374 -0
- package/dist/plugin/context.d.ts.map +1 -0
- package/dist/plugin/context.js +2 -0
- package/dist/plugin/context.js.map +1 -0
- package/dist/plugin/define.d.ts +208 -0
- package/dist/plugin/define.d.ts.map +1 -0
- package/dist/plugin/define.js +482 -0
- package/dist/plugin/define.js.map +1 -0
- package/dist/plugin/definition-error.d.ts +11 -0
- package/dist/plugin/definition-error.d.ts.map +1 -0
- package/dist/plugin/definition-error.js +17 -0
- package/dist/plugin/definition-error.js.map +1 -0
- package/dist/plugin/limits.d.ts +67 -0
- package/dist/plugin/limits.d.ts.map +1 -0
- package/dist/plugin/limits.js +70 -0
- package/dist/plugin/limits.js.map +1 -0
- package/dist/plugin/load-worker.d.ts +7 -0
- package/dist/plugin/load-worker.d.ts.map +1 -0
- package/dist/plugin/load-worker.js +41 -0
- package/dist/plugin/load-worker.js.map +1 -0
- package/dist/plugin/load.d.ts +18 -0
- package/dist/plugin/load.d.ts.map +1 -0
- package/dist/plugin/load.js +62 -0
- package/dist/plugin/load.js.map +1 -0
- package/dist/plugin/manifest.d.ts +237 -0
- package/dist/plugin/manifest.d.ts.map +1 -0
- package/dist/plugin/manifest.js +411 -0
- package/dist/plugin/manifest.js.map +1 -0
- package/dist/plugin/refusals.d.ts +49 -0
- package/dist/plugin/refusals.d.ts.map +1 -0
- package/dist/plugin/refusals.js +79 -0
- package/dist/plugin/refusals.js.map +1 -0
- package/dist/plugin/rest-schemas.d.ts +556 -0
- package/dist/plugin/rest-schemas.d.ts.map +1 -0
- package/dist/plugin/rest-schemas.js +262 -0
- package/dist/plugin/rest-schemas.js.map +1 -0
- package/dist/plugin/sandbox.d.ts +23 -0
- package/dist/plugin/sandbox.d.ts.map +1 -0
- package/dist/plugin/sandbox.js +99 -0
- package/dist/plugin/sandbox.js.map +1 -0
- package/dist/plugin/testing.d.ts +45 -0
- package/dist/plugin/testing.d.ts.map +1 -0
- package/dist/plugin/testing.js +420 -0
- package/dist/plugin/testing.js.map +1 -0
- package/dist/plugin/web-react.d.ts +11 -0
- package/dist/plugin/web-react.d.ts.map +1 -0
- package/dist/plugin/web-react.js +34 -0
- package/dist/plugin/web-react.js.map +1 -0
- package/dist/plugin/web.d.ts +95 -0
- package/dist/plugin/web.d.ts.map +1 -0
- package/dist/plugin/web.js +245 -0
- package/dist/plugin/web.js.map +1 -0
- package/dist/plugin-nav.d.ts +29 -0
- package/dist/plugin-nav.d.ts.map +1 -0
- package/dist/plugin-nav.js +92 -0
- package/dist/plugin-nav.js.map +1 -0
- package/dist/plugin-testing.d.ts +2 -0
- package/dist/plugin-testing.d.ts.map +1 -0
- package/dist/plugin-testing.js +4 -0
- package/dist/plugin-testing.js.map +1 -0
- package/dist/plugin-web-react.d.ts +3 -0
- package/dist/plugin-web-react.d.ts.map +1 -0
- package/dist/plugin-web-react.js +3 -0
- package/dist/plugin-web-react.js.map +1 -0
- package/dist/plugin-web.d.ts +4 -0
- package/dist/plugin-web.d.ts.map +1 -0
- package/dist/plugin-web.js +5 -0
- package/dist/plugin-web.js.map +1 -0
- package/dist/plugin.d.ts +11 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +15 -0
- package/dist/plugin.js.map +1 -0
- package/dist/router.d.ts +28 -0
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +47 -0
- package/dist/router.js.map +1 -1
- package/dist/routes.d.ts +6 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +8 -0
- package/dist/routes.js.map +1 -1
- package/dist/schemas.d.ts +147 -1
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +55 -5
- package/dist/schemas.js.map +1 -1
- package/dist/tokens.d.ts +2 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +101 -0
- package/dist/tokens.js.map +1 -0
- package/dist/vocabulary.d.ts +11 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +24 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +5 -2
- package/dist/web.js.map +1 -1
- package/docs/specs/cli.md +16 -9
- package/docs/specs/plugins.md +487 -0
- package/docs/specs/rest.md +25 -13
- package/package.json +21 -3
- package/skills/building-a-console/SKILL.md +25 -26
- package/skills/building-a-console/references/configuring.md +40 -0
- package/skills/building-a-console/references/the-default-console.md +1 -1
- package/skills/building-a-console/references/the-look-from-a-website.md +5 -5
- package/skills/building-a-plugin/SKILL.md +137 -0
- package/skills/deploying-a-console/SKILL.md +24 -26
- package/skills/deploying-a-console/references/access.md +13 -9
- package/skills/deploying-a-console/references/resources.md +25 -10
- package/skills/deploying-a-console/references/running-it-again.md +15 -0
- package/skills/deploying-a-console/references/sizing.md +2 -0
- package/skills/planning-the-board/SKILL.md +96 -0
- package/skills/planning-the-board/references/a-task.md +36 -0
- package/skills/planning-the-board/references/setting-up.md +44 -0
- package/skills/working-the-board/SKILL.md +43 -34
- package/skills/working-the-board/references/the-pack.md +19 -0
- package/src/api.ts +16 -0
- package/src/cli/cli.ts +736 -45
- package/src/cli/format.ts +356 -9
- package/src/cli/help.ts +71 -6
- package/src/cli/plugin-check.ts +470 -0
- package/src/cli/plugin-cli.ts +148 -0
- package/src/cli/plugin-init.ts +90 -0
- package/src/cli/plugin-main.ts +30 -0
- package/src/client.ts +324 -1
- package/src/compat.ts +2 -2
- package/src/components/board.tsx +62 -14
- package/src/components/event-feed.tsx +42 -1
- package/src/components/markdown.tsx +6 -3
- package/src/components/pack-connect.tsx +10 -7
- package/src/components/pack-token.tsx +4 -1
- package/src/components/people.tsx +17 -7
- package/src/components/plugin-frame.tsx +437 -0
- package/src/components/plugin-settings.tsx +1111 -0
- package/src/components/remote-pictures.ts +19 -0
- package/src/components/shell.tsx +82 -14
- package/src/components/sign-in.tsx +114 -13
- package/src/components/ui.tsx +6 -3
- package/src/components/workspace.tsx +18 -0
- package/src/console.tsx +309 -23
- package/src/data.ts +47 -22
- package/src/i18n/en.ts +183 -1
- package/src/i18n/ko.ts +159 -1
- package/src/index.ts +12 -0
- package/src/limits.ts +14 -0
- package/src/plugin/args.ts +526 -0
- package/src/plugin/bridge.ts +314 -0
- package/src/plugin/capabilities.ts +150 -0
- package/src/plugin/context.ts +416 -0
- package/src/plugin/define.ts +792 -0
- package/src/plugin/definition-error.ts +19 -0
- package/src/plugin/limits.ts +70 -0
- package/src/plugin/load-worker.ts +50 -0
- package/src/plugin/load.ts +82 -0
- package/src/plugin/manifest.ts +561 -0
- package/src/plugin/refusals.ts +94 -0
- package/src/plugin/rest-schemas.ts +354 -0
- package/src/plugin/sandbox.ts +123 -0
- package/src/plugin/testing.ts +612 -0
- package/src/plugin/web-react.ts +45 -0
- package/src/plugin/web.ts +403 -0
- package/src/plugin-nav.ts +132 -0
- package/src/plugin-testing.ts +10 -0
- package/src/plugin-web-react.ts +4 -0
- package/src/plugin-web.ts +35 -0
- package/src/plugin.ts +126 -0
- package/src/router.ts +73 -0
- package/src/routes.ts +9 -0
- package/src/schemas.ts +60 -4
- package/src/styles/console.css +384 -5
- package/src/tokens.ts +101 -0
- package/src/vocabulary.ts +30 -0
- package/src/web.ts +5 -2
- package/template/plugin/.gitignore +2 -0
- package/template/plugin/README.md +26 -0
- package/template/plugin/SKILLCDN.md +13 -0
- package/template/plugin/build.mjs +40 -0
- package/template/plugin/console-plugin.json +50 -0
- package/template/plugin/package.json +27 -0
- package/template/plugin/skills/__key__/SKILL.md +23 -0
- package/template/plugin/src/check.test.ts +34 -0
- package/template/plugin/src/server/index.test.ts +41 -0
- package/template/plugin/src/server/index.ts +72 -0
- package/template/plugin/src/web/index.css +51 -0
- package/template/plugin/src/web/index.ts +115 -0
- package/template/plugin/tsconfig.json +17 -0
- package/skills/working-the-board/references/setting-up.md +0 -3
- /package/skills/{working-the-board → planning-the-board}/references/project-rules.md +0 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useId, useMemo, useState } from "react";
|
|
3
|
+
import { useWords } from "../i18n/index.js";
|
|
4
|
+
import { PLUGIN_CAPABILITIES } from "../plugin/capabilities.js";
|
|
5
|
+
import { useAction } from "../use-action.js";
|
|
6
|
+
import { EventFeed } from "./event-feed.js";
|
|
7
|
+
import { Badge, Button, Callout, EmptyState, formatInstant, LinkButton, personName, Spinner, } from "./ui.js";
|
|
8
|
+
// The plugins' settings (docs/specs/plugins.md, "The settings pages"): what is installed and how
|
|
9
|
+
// each stands; and one plugin, read at a glance: its state in the head with the way to disable
|
|
10
|
+
// it, what it is on and holds a row each, the form that enables it (the capabilities to consent
|
|
11
|
+
// to, each by a name with what it opens, the board project, the projects), the settings form
|
|
12
|
+
// from the manifest with the secrets set and never shown, the roles with who holds each and the
|
|
13
|
+
// way to grant one, what the plugin did, export and purge. No plugin code runs here: everything
|
|
14
|
+
// is the console's own.
|
|
15
|
+
/** A text in the person's language, else in English, else the first the manifest has. */
|
|
16
|
+
export function pluginWord(texts, language) {
|
|
17
|
+
if (texts === null || texts === undefined) {
|
|
18
|
+
return "";
|
|
19
|
+
}
|
|
20
|
+
return (texts[language] ??
|
|
21
|
+
texts[language.split("-")[0] ?? language] ??
|
|
22
|
+
texts.en ??
|
|
23
|
+
Object.values(texts)[0] ??
|
|
24
|
+
"");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A capability by the name the pages give it and the sentence of what it opens, in the person's
|
|
28
|
+
* language; one the packs do not know, by its key alone.
|
|
29
|
+
*/
|
|
30
|
+
export function capabilityText(words, capability) {
|
|
31
|
+
// Typed against the catalogue, so that a capability added there is named in the packs too.
|
|
32
|
+
const known = words.plugins.capability;
|
|
33
|
+
if (PLUGIN_CAPABILITIES.includes(capability)) {
|
|
34
|
+
return known[capability];
|
|
35
|
+
}
|
|
36
|
+
if (capability.startsWith("outbound:")) {
|
|
37
|
+
return words.plugins.capability.outbound(capability.slice("outbound:".length));
|
|
38
|
+
}
|
|
39
|
+
if (capability.startsWith("plugins:")) {
|
|
40
|
+
return words.plugins.capability.plugins(capability.slice("plugins:".length));
|
|
41
|
+
}
|
|
42
|
+
return { name: capability, opens: "" };
|
|
43
|
+
}
|
|
44
|
+
const STATE_TONES = {
|
|
45
|
+
installed: "neutral",
|
|
46
|
+
enabled: "success",
|
|
47
|
+
needs_consent: "warning",
|
|
48
|
+
disabled: "neutral",
|
|
49
|
+
failed: "danger",
|
|
50
|
+
orphaned: "warning",
|
|
51
|
+
};
|
|
52
|
+
/** Every plugin in a row: its name, its key, its version, how it stands. */
|
|
53
|
+
export function PluginSettingsList(props) {
|
|
54
|
+
const words = useWords();
|
|
55
|
+
const settings = words.plugins.settings;
|
|
56
|
+
if (props.plugins.length === 0) {
|
|
57
|
+
return _jsx(EmptyState, { title: settings.empty.title, body: settings.empty.body });
|
|
58
|
+
}
|
|
59
|
+
return (_jsx("ul", { className: "sc-task-rows", "aria-label": settings.title, children: props.plugins.map((plugin) => (_jsxs("li", { className: "sc-task-row", children: [_jsxs("a", { className: "sc-task-row-title", href: props.href(plugin), children: [pluginWord(plugin.name, props.language), " ", _jsxs("span", { className: "sc-muted", children: [plugin.key, " ", plugin.version] })] }), _jsx("span", { className: "sc-task-row-meta", children: _jsx(Badge, { tone: STATE_TONES[plugin.state], children: words.vocabulary.pluginState[plugin.state] ?? plugin.state }) })] }, plugin.key))) }));
|
|
60
|
+
}
|
|
61
|
+
/** A set with a value put in or taken out. */
|
|
62
|
+
function toggled(set, value, on) {
|
|
63
|
+
const next = new Set(set);
|
|
64
|
+
if (on) {
|
|
65
|
+
next.add(value);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
next.delete(value);
|
|
69
|
+
}
|
|
70
|
+
return next;
|
|
71
|
+
}
|
|
72
|
+
/** A row of a list to tick: the box, a name, a word under it. */
|
|
73
|
+
function TickRow(props) {
|
|
74
|
+
return (_jsx("li", { children: _jsxs("label", { className: "sc-plugin-tick", children: [_jsx("input", { type: "checkbox", checked: props.checked, onChange: (event) => props.onChange(event.target.checked) }), _jsxs("span", { className: "sc-plugin-tick-words", children: [_jsx("span", { className: "sc-plugin-tick-name", children: props.name }), props.under !== undefined && props.under !== "" && (_jsx("span", { className: "sc-plugin-tick-under", children: props.under }))] })] }) }));
|
|
75
|
+
}
|
|
76
|
+
/** What the plugin is on and holds, a row each; nothing where there is nothing to say yet. */
|
|
77
|
+
function Overview(props) {
|
|
78
|
+
const words = useWords();
|
|
79
|
+
const settings = words.plugins.settings;
|
|
80
|
+
const { detail, language } = props;
|
|
81
|
+
const enabled = detail.state === "enabled";
|
|
82
|
+
const rows = [];
|
|
83
|
+
if (detail.board !== null) {
|
|
84
|
+
rows.push({
|
|
85
|
+
key: "board",
|
|
86
|
+
name: settings.board,
|
|
87
|
+
value: (_jsxs(_Fragment, { children: [detail.board.name, " ", _jsx("span", { className: "sc-muted", children: detail.board.key })] })),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else if (enabled && detail.boardNeeds !== "none") {
|
|
91
|
+
rows.push({ key: "board", name: settings.board, value: settings.nothing });
|
|
92
|
+
}
|
|
93
|
+
if (enabled && detail.projects !== null) {
|
|
94
|
+
const names = detail.projects;
|
|
95
|
+
rows.push({
|
|
96
|
+
key: "projects",
|
|
97
|
+
name: settings.projects,
|
|
98
|
+
value: names === "all"
|
|
99
|
+
? settings.projectsAll
|
|
100
|
+
: names.length === 0
|
|
101
|
+
? settings.nothing
|
|
102
|
+
: names
|
|
103
|
+
.map((key) => props.projects.find((project) => project.key === key)?.name ?? key)
|
|
104
|
+
.join(", "),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (enabled && detail.consent !== null) {
|
|
108
|
+
const consent = detail.consent;
|
|
109
|
+
rows.push({
|
|
110
|
+
key: "capabilities",
|
|
111
|
+
name: settings.capabilities,
|
|
112
|
+
value: consent.length === 0 ? (settings.nothing) : (_jsx("ul", { className: "sc-plugin-held", children: consent.map((capability) => {
|
|
113
|
+
const text = capabilityText(words, capability);
|
|
114
|
+
return (_jsxs("li", { children: [_jsx("span", { className: "sc-plugin-tick-name", children: text.name }), text.opens !== "" && _jsxs("span", { className: "sc-plugin-tick-under", children: [" ", text.opens] })] }, capability));
|
|
115
|
+
}) })),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
if (detail.operations.length > 0) {
|
|
119
|
+
rows.push({
|
|
120
|
+
key: "operations",
|
|
121
|
+
name: settings.operations,
|
|
122
|
+
value: (_jsx("span", { className: "sc-plugin-codes", children: detail.operations.map((operation) => (_jsx("code", { children: operation.name }, operation.name))) })),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if (detail.agentNote !== null) {
|
|
126
|
+
rows.push({
|
|
127
|
+
key: "agentNote",
|
|
128
|
+
name: settings.agentNote,
|
|
129
|
+
value: pluginWord(detail.agentNote, language),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
if (rows.length === 0) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return (_jsx("section", { className: "sc-panel", "aria-label": settings.about, children: _jsx("dl", { className: "sc-settings-list", children: rows.map((row) => (_jsxs("div", { className: "sc-settings-item", children: [_jsx("dt", { children: row.name }), _jsx("dd", { children: row.value })] }, row.key))) }) }));
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* A setting's control, by its type: a person or a project is chosen among the workspace's, by
|
|
139
|
+
* name, and held as its id; a secret has a row of its own below.
|
|
140
|
+
*/
|
|
141
|
+
function SettingControl(props) {
|
|
142
|
+
const { setting, value, onChange, id } = props;
|
|
143
|
+
const chosen = typeof value === "string" ? value : "";
|
|
144
|
+
const choose = (event) => onChange(event.target.value === "" ? null : event.target.value);
|
|
145
|
+
switch (setting.type) {
|
|
146
|
+
case "person": {
|
|
147
|
+
// The people in; the one chosen stays listed when they have left, so that the value shows.
|
|
148
|
+
const people = props.people.filter((person) => person.status === "active" || person.id === chosen);
|
|
149
|
+
return (_jsxs("select", { id: id, className: "sc-input", value: chosen, onChange: choose, children: [_jsx("option", { value: "", children: "\u2014" }), people.map((person) => (_jsx("option", { value: person.id, children: personChoice(person) }, person.id))), chosen !== "" && !people.some((person) => person.id === chosen) && (_jsx("option", { value: chosen, children: chosen }))] }));
|
|
150
|
+
}
|
|
151
|
+
case "project":
|
|
152
|
+
return (_jsxs("select", { id: id, className: "sc-input", value: chosen, onChange: choose, children: [_jsx("option", { value: "", children: "\u2014" }), props.projects.map((project) => (_jsxs("option", { value: project.id, children: [project.name, " (", project.key, ")"] }, project.id))), chosen !== "" && !props.projects.some((project) => project.id === chosen) && (_jsx("option", { value: chosen, children: chosen }))] }));
|
|
153
|
+
case "boolean":
|
|
154
|
+
return (_jsx("input", { id: id, type: "checkbox", checked: value === true, onChange: (event) => onChange(event.target.checked) }));
|
|
155
|
+
case "number":
|
|
156
|
+
return (_jsx("input", { id: id, className: "sc-input", type: "number", value: typeof value === "number" ? value : "", min: setting.min ?? undefined, max: setting.max ?? undefined, onChange: (event) => onChange(event.target.value === "" ? null : Number(event.target.value)) }));
|
|
157
|
+
case "enum":
|
|
158
|
+
return (_jsxs("select", { id: id, className: "sc-input", value: typeof value === "string" ? value : "", onChange: (event) => onChange(event.target.value === "" ? null : event.target.value), children: [_jsx("option", { value: "", children: "\u2014" }), (setting.options ?? []).map((option) => (_jsx("option", { value: option.value, children: pluginWord(option.name, props.language) }, option.value)))] }));
|
|
159
|
+
case "markdown":
|
|
160
|
+
return (_jsx("textarea", { id: id, className: "sc-input", rows: 4, value: typeof value === "string" ? value : "", onChange: (event) => onChange(event.target.value === "" ? null : event.target.value) }));
|
|
161
|
+
case "list":
|
|
162
|
+
return (_jsx("input", { id: id, className: "sc-input", value: Array.isArray(value) ? value.join(", ") : "", onChange: (event) => onChange(event.target.value.trim() === ""
|
|
163
|
+
? null
|
|
164
|
+
: event.target.value
|
|
165
|
+
.split(",")
|
|
166
|
+
.map((item) => item.trim())
|
|
167
|
+
.filter((item) => item.length > 0)
|
|
168
|
+
.map((item) => (setting.of === "number" ? Number(item) : item))) }));
|
|
169
|
+
default:
|
|
170
|
+
return (_jsx("input", { id: id, className: "sc-input", type: setting.type === "day" ? "date" : "text", value: typeof value === "string" ? value : "", maxLength: setting.max ?? undefined, onChange: (event) => onChange(event.target.value === "" ? null : event.target.value) }));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/** The settings form from the manifest, without the secrets: the values as they stand, saved as a whole. */
|
|
174
|
+
function SettingsForm(props) {
|
|
175
|
+
const words = useWords();
|
|
176
|
+
const settings = props.detail.settings.filter((setting) => setting.type !== "secret");
|
|
177
|
+
const [values, setValues] = useState(() => Object.fromEntries(settings.map((setting) => [setting.key, setting.value ?? setting.default])));
|
|
178
|
+
const prefix = useId();
|
|
179
|
+
if (settings.length === 0) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
const submit = (event) => {
|
|
183
|
+
event.preventDefault();
|
|
184
|
+
props.onSave(values);
|
|
185
|
+
};
|
|
186
|
+
return (_jsxs("form", { className: "sc-form sc-settings-form", onSubmit: submit, "aria-label": words.plugins.settings.settingsForm, children: [settings.map((setting) => (_jsxs("div", { className: "sc-settings-row", children: [_jsxs("div", { className: "sc-settings-words", children: [_jsxs("label", { className: "sc-settings-label", htmlFor: `${prefix}-${setting.key}`, children: [pluginWord(setting.name, props.language), setting.required && " *"] }), setting.description !== null && (_jsx("p", { className: "sc-settings-hint", children: pluginWord(setting.description, props.language) }))] }), _jsx("div", { className: "sc-settings-control", children: _jsx(SettingControl, { setting: setting, value: values[setting.key], id: `${prefix}-${setting.key}`, language: props.language, people: props.people, projects: props.projects, onChange: (value) => setValues((current) => ({ ...current, [setting.key]: value })) }) })] }, setting.key))), _jsx("div", { className: "sc-form-actions", children: _jsx(Button, { type: "submit", variant: "primary", disabled: props.busy, children: words.common.save }) })] }));
|
|
187
|
+
}
|
|
188
|
+
/** One secret: whether and when it is set, a field to set it anew with its buttons on the line. */
|
|
189
|
+
function SecretRow(props) {
|
|
190
|
+
const words = useWords();
|
|
191
|
+
const settings = words.plugins.settings;
|
|
192
|
+
const [value, setValue] = useState("");
|
|
193
|
+
const id = useId();
|
|
194
|
+
const { setting } = props;
|
|
195
|
+
return (_jsxs("div", { className: "sc-settings-row", children: [_jsxs("div", { className: "sc-settings-words", children: [_jsxs("label", { className: "sc-settings-label", htmlFor: id, children: [pluginWord(setting.name, props.language), setting.required && " *"] }), _jsx("p", { className: "sc-settings-hint", children: setting.set && setting.setAt !== null
|
|
196
|
+
? settings.secretSet(formatInstant(setting.setAt, props.language))
|
|
197
|
+
: settings.secretUnset }), setting.description !== null && (_jsx("p", { className: "sc-settings-hint", children: pluginWord(setting.description, props.language) }))] }), _jsx("div", { className: "sc-settings-control", children: _jsxs("div", { className: "sc-plugin-line", children: [_jsx("input", { id: id, className: "sc-input sc-plugin-line-input", type: "password", autoComplete: "off", placeholder: settings.secretNew, value: value, onChange: (event) => setValue(event.target.value) }), _jsx(Button, { disabled: props.busy || value.length === 0, onClick: () => {
|
|
198
|
+
props.onSet(value);
|
|
199
|
+
setValue("");
|
|
200
|
+
}, children: words.common.save }), setting.set && (_jsx(Button, { variant: "ghost", disabled: props.busy, onClick: props.onRemove, children: words.common.remove }))] }) })] }));
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Enabling: the capabilities to consent to, one by one, those consented to before ticked
|
|
204
|
+
* already; the board project, the one it had chosen already; the projects, as they were.
|
|
205
|
+
*/
|
|
206
|
+
function EnableForm(props) {
|
|
207
|
+
const words = useWords();
|
|
208
|
+
const settings = words.plugins.settings;
|
|
209
|
+
const { detail, language } = props;
|
|
210
|
+
const [consented, setConsented] = useState(() => new Set((detail.consent ?? []).filter((capability) => detail.capabilities.includes(capability))));
|
|
211
|
+
const needsBoard = detail.boardNeeds !== "none";
|
|
212
|
+
const [boardMode, setBoardMode] = useState(detail.boardNeeds === "none"
|
|
213
|
+
? "none"
|
|
214
|
+
: detail.board !== null || detail.boardDefaults === null
|
|
215
|
+
? "choose"
|
|
216
|
+
: "create");
|
|
217
|
+
const [boardKey, setBoardKey] = useState(detail.boardDefaults?.key ?? "");
|
|
218
|
+
const [boardName, setBoardName] = useState(pluginWord(detail.boardDefaults?.name, language));
|
|
219
|
+
const [boardDescription, setBoardDescription] = useState(pluginWord(detail.boardDefaults?.description, language));
|
|
220
|
+
const [chosen, setChosen] = useState(detail.board?.key ?? props.projects[0]?.key ?? "");
|
|
221
|
+
const before = detail.projects;
|
|
222
|
+
const [allProjects, setAllProjects] = useState(!Array.isArray(before) || before.length === 0);
|
|
223
|
+
const [onProjects, setOnProjects] = useState(() => new Set(Array.isArray(before) ? before : []));
|
|
224
|
+
const ids = { key: useId(), name: useId(), description: useId(), choose: useId() };
|
|
225
|
+
const everyCapability = detail.capabilities.every((capability) => consented.has(capability));
|
|
226
|
+
const boardReady = boardMode === "none"
|
|
227
|
+
? detail.boardNeeds !== "required"
|
|
228
|
+
: boardMode === "create"
|
|
229
|
+
? boardKey.length > 0 && boardName.length > 0
|
|
230
|
+
: chosen.length > 0;
|
|
231
|
+
const submit = (event) => {
|
|
232
|
+
event.preventDefault();
|
|
233
|
+
props.onEnable({
|
|
234
|
+
consent: [...consented],
|
|
235
|
+
board: boardMode === "none"
|
|
236
|
+
? null
|
|
237
|
+
: boardMode === "create"
|
|
238
|
+
? { create: { key: boardKey, name: boardName, description: boardDescription } }
|
|
239
|
+
: { project: chosen },
|
|
240
|
+
projects: allProjects ? "all" : [...onProjects],
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
return (_jsxs("form", { className: "sc-form sc-plugin-enable", onSubmit: submit, "aria-label": settings.enable, children: [detail.capabilities.length > 0 && (_jsxs("div", { className: "sc-plugin-group", children: [_jsx("h3", { className: "sc-plugin-group-title", children: settings.capabilities }), _jsx("ul", { className: "sc-plugin-ticks", children: detail.capabilities.map((capability) => {
|
|
244
|
+
const text = capabilityText(words, capability);
|
|
245
|
+
return (_jsx(TickRow, { checked: consented.has(capability), onChange: (on) => setConsented((current) => toggled(current, capability, on)), name: text.name, under: text.opens }, capability));
|
|
246
|
+
}) })] })), needsBoard && (_jsxs("div", { className: "sc-plugin-group", children: [_jsx("h3", { className: "sc-plugin-group-title", children: settings.board }), _jsx("p", { className: "sc-settings-hint", children: settings.boardHint }), _jsxs("div", { className: "sc-radio-row", children: [detail.boardNeeds === "optional" && (_jsxs("label", { className: "sc-check", children: [_jsx("input", { type: "radio", name: "board", checked: boardMode === "none", onChange: () => setBoardMode("none") }), settings.boardNone] })), _jsxs("label", { className: "sc-check", children: [_jsx("input", { type: "radio", name: "board", checked: boardMode === "create", onChange: () => setBoardMode("create") }), settings.boardCreate] }), _jsxs("label", { className: "sc-check", children: [_jsx("input", { type: "radio", name: "board", checked: boardMode === "choose", onChange: () => setBoardMode("choose") }), settings.boardChoose] })] }), boardMode === "create" && (_jsxs("div", { className: "sc-plugin-fields", children: [_jsxs("div", { className: "sc-field", children: [_jsx("label", { className: "sc-field-label", htmlFor: ids.key, children: settings.boardKey }), _jsx("input", { id: ids.key, className: "sc-input", value: boardKey, onChange: (event) => setBoardKey(event.target.value) })] }), _jsxs("div", { className: "sc-field", children: [_jsx("label", { className: "sc-field-label", htmlFor: ids.name, children: settings.boardName }), _jsx("input", { id: ids.name, className: "sc-input", value: boardName, onChange: (event) => setBoardName(event.target.value) })] }), _jsxs("div", { className: "sc-field", children: [_jsx("label", { className: "sc-field-label", htmlFor: ids.description, children: settings.boardDescription }), _jsx("input", { id: ids.description, className: "sc-input", value: boardDescription, onChange: (event) => setBoardDescription(event.target.value) })] })] })), boardMode === "choose" && (_jsx("div", { className: "sc-plugin-fields", children: _jsxs("div", { className: "sc-field", children: [_jsx("label", { className: "sc-field-label", htmlFor: ids.choose, children: settings.boardChoose }), _jsx("select", { id: ids.choose, className: "sc-input", value: chosen, onChange: (event) => setChosen(event.target.value), children: props.projects.map((project) => (_jsxs("option", { value: project.key, children: [project.name, " (", project.key, ")"] }, project.key))) })] }) }))] })), _jsxs("div", { className: "sc-plugin-group", children: [_jsx("h3", { className: "sc-plugin-group-title", children: settings.projects }), _jsxs("div", { className: "sc-radio-row", children: [_jsxs("label", { className: "sc-check", children: [_jsx("input", { type: "radio", name: "projects", checked: allProjects, onChange: () => setAllProjects(true) }), settings.projectsAll] }), _jsxs("label", { className: "sc-check", children: [_jsx("input", { type: "radio", name: "projects", checked: !allProjects, onChange: () => setAllProjects(false) }), settings.projectsSome] })] }), !allProjects && (_jsx("ul", { className: "sc-plugin-ticks", children: props.projects.map((project) => (_jsx(TickRow, { checked: onProjects.has(project.key), onChange: (on) => setOnProjects((current) => toggled(current, project.key, on)), name: project.name, under: project.key }, project.key))) }))] }), _jsx("div", { className: "sc-plugin-group", children: _jsx("div", { className: "sc-form-actions", children: _jsx(Button, { type: "submit", variant: "primary", disabled: props.busy || !everyCapability || !boardReady, children: settings.enable }) }) })] }));
|
|
247
|
+
}
|
|
248
|
+
/** Who a grant is to, as the chip says it. */
|
|
249
|
+
function holderOf(grant, words) {
|
|
250
|
+
if (grant.everyone) {
|
|
251
|
+
return words.grantEveryone;
|
|
252
|
+
}
|
|
253
|
+
if (grant.project !== null) {
|
|
254
|
+
return words.grantMembersOf(grant.project.name);
|
|
255
|
+
}
|
|
256
|
+
if (grant.person !== null) {
|
|
257
|
+
return personName(grant.person);
|
|
258
|
+
}
|
|
259
|
+
return grant.role;
|
|
260
|
+
}
|
|
261
|
+
/** A person as the choice names them: the name, with the login where it is another word. */
|
|
262
|
+
function personChoice(person) {
|
|
263
|
+
const name = personName(person);
|
|
264
|
+
return name === person.login ? name : `${name} (${person.login})`;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* One role: its name and what it is for; who holds it, every member for the default role and
|
|
268
|
+
* each grant as a chip with the way to revoke it; and one choice to grant it to a person, the
|
|
269
|
+
* members of a project or everyone, those who hold it already left out.
|
|
270
|
+
*/
|
|
271
|
+
function RoleRow(props) {
|
|
272
|
+
const settings = useWords().plugins.settings;
|
|
273
|
+
const [whom, setWhom] = useState("");
|
|
274
|
+
const id = useId();
|
|
275
|
+
const { role, grants } = props;
|
|
276
|
+
const everyoneHas = grants.some((grant) => grant.everyone);
|
|
277
|
+
const projectsWith = new Set(grants.flatMap((grant) => (grant.project === null ? [] : [grant.project.key])));
|
|
278
|
+
const peopleWith = new Set(grants.flatMap((grant) => (grant.person === null ? [] : [grant.person.id])));
|
|
279
|
+
const projects = props.projects.filter((project) => !projectsWith.has(project.key));
|
|
280
|
+
const people = props.people.filter((person) => person.status === "active" && !peopleWith.has(person.id));
|
|
281
|
+
const description = pluginWord(role.description, props.language);
|
|
282
|
+
const submit = (event) => {
|
|
283
|
+
event.preventDefault();
|
|
284
|
+
if (whom === "everyone") {
|
|
285
|
+
props.onGrant({ role: role.key, everyone: true });
|
|
286
|
+
}
|
|
287
|
+
else if (whom.startsWith("project:")) {
|
|
288
|
+
props.onGrant({ role: role.key, project: whom.slice("project:".length) });
|
|
289
|
+
}
|
|
290
|
+
else if (whom.startsWith("person:")) {
|
|
291
|
+
props.onGrant({ role: role.key, person: whom.slice("person:".length) });
|
|
292
|
+
}
|
|
293
|
+
setWhom("");
|
|
294
|
+
};
|
|
295
|
+
return (_jsxs("li", { className: "sc-plugin-role", children: [_jsxs("div", { children: [_jsxs("p", { className: "sc-plugin-role-name", children: [pluginWord(role.name, props.language), _jsx("code", { className: "sc-plugin-role-key", children: role.key }), props.isDefault && _jsx(Badge, { tone: "accent", children: settings.roleDefault })] }), description !== "" && _jsx("p", { className: "sc-settings-hint", children: description })] }), _jsxs("div", { children: [_jsxs("div", { className: "sc-plugin-holders", children: [props.isDefault && (_jsx("span", { className: "sc-plugin-holder sc-plugin-holder-fixed", children: settings.everyMember })), grants.map((grant) => {
|
|
296
|
+
const holder = holderOf(grant, settings);
|
|
297
|
+
return (_jsxs("span", { className: "sc-plugin-holder", children: [holder, _jsx(Button, { size: "sm", variant: "ghost", disabled: props.busy, onClick: () => props.onRevoke(grant.id), "aria-label": `${settings.revoke}: ${holder}`, title: settings.revoke, children: "\u00D7" })] }, grant.id));
|
|
298
|
+
})] }), _jsxs("form", { className: "sc-plugin-grant", onSubmit: submit, children: [_jsx("label", { htmlFor: id, className: "sc-visually-hidden", children: settings.grantWhom }), _jsxs("select", { id: id, className: "sc-input sc-plugin-grant-input", value: whom, onChange: (event) => setWhom(event.target.value), children: [_jsx("option", { value: "", children: settings.grantWhom }), !props.isDefault && !everyoneHas && (_jsx("option", { value: "everyone", children: settings.grantEveryone })), projects.length > 0 && (_jsx("optgroup", { label: settings.grantProjects, children: projects.map((project) => (_jsx("option", { value: `project:${project.key}`, children: project.name }, project.key))) })), people.length > 0 && (_jsx("optgroup", { label: settings.grantPeople, children: people.map((person) => (_jsx("option", { value: `person:${person.id}`, children: personChoice(person) }, person.id))) }))] }), _jsx(Button, { type: "submit", disabled: props.busy || whom === "", children: settings.grant })] })] })] }));
|
|
299
|
+
}
|
|
300
|
+
/** The roles the plugin declares, each with who holds it; a plugin without roles is every member's. */
|
|
301
|
+
function RolesSection(props) {
|
|
302
|
+
const settings = useWords().plugins.settings;
|
|
303
|
+
const { detail } = props;
|
|
304
|
+
const grants = detail.grants ?? [];
|
|
305
|
+
return (_jsxs("section", { className: "sc-panel", "aria-label": settings.roles, children: [_jsx("h2", { className: "sc-section-title", children: settings.roles }), detail.declaredRoles.length === 0 ? (_jsx("p", { className: "sc-settings-hint", children: settings.rolesNone })) : (_jsx("ul", { className: "sc-plugin-roles", children: detail.declaredRoles.map((role) => (_jsx(RoleRow, { role: role, isDefault: detail.defaultRole === role.key, grants: grants.filter((grant) => grant.role === role.key), projects: props.projects, people: props.people, language: props.language, busy: props.busy, onGrant: props.onGrant, onRevoke: props.onRevoke }, role.key))) }))] }));
|
|
306
|
+
}
|
|
307
|
+
/** One plugin, whole, for an administrator. */
|
|
308
|
+
export function PluginSettingsView(props) {
|
|
309
|
+
const words = useWords();
|
|
310
|
+
const settings = words.plugins.settings;
|
|
311
|
+
const { detail, language, client } = props;
|
|
312
|
+
const { busy, error, act } = useAction();
|
|
313
|
+
const plugin = useMemo(() => client.plugin(detail.key), [client, detail.key]);
|
|
314
|
+
const [events, setEvents] = useState(undefined);
|
|
315
|
+
const [confirm, setConfirm] = useState("");
|
|
316
|
+
const [purged, setPurged] = useState(false);
|
|
317
|
+
// The plugin's events, read once the page is shown and again after every change.
|
|
318
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: the detail as read again is the trigger
|
|
319
|
+
useEffect(() => {
|
|
320
|
+
const controller = new AbortController();
|
|
321
|
+
plugin
|
|
322
|
+
.events({ limit: 50 }, controller.signal)
|
|
323
|
+
.then((page) => {
|
|
324
|
+
if (!controller.signal.aborted) {
|
|
325
|
+
setEvents([...page.items].reverse());
|
|
326
|
+
}
|
|
327
|
+
})
|
|
328
|
+
.catch(() => undefined);
|
|
329
|
+
return () => controller.abort();
|
|
330
|
+
}, [plugin, detail]);
|
|
331
|
+
const change = (work) => void act(async () => {
|
|
332
|
+
await work();
|
|
333
|
+
await props.onChanged();
|
|
334
|
+
});
|
|
335
|
+
const enabled = detail.state === "enabled";
|
|
336
|
+
const canEnable = detail.state === "installed" || detail.state === "disabled" || detail.state === "needs_consent";
|
|
337
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "sc-page-head", children: [_jsxs("div", { className: "sc-page-heading", children: [_jsx("h1", { className: "sc-page-title", children: pluginWord(detail.name, language) }), _jsx(Badge, { tone: STATE_TONES[detail.state], children: words.vocabulary.pluginState[detail.state] ?? detail.state }), _jsxs("span", { className: "sc-muted", children: [_jsx("code", { children: detail.key }), " ", detail.version] })] }), enabled && (_jsx("div", { className: "sc-page-actions", children: _jsx(Button, { size: "sm", disabled: busy, onClick: () => change(() => plugin.disable()), children: settings.disable }) }))] }), _jsx("p", { className: "sc-lead", children: pluginWord(detail.description, language) }), error !== undefined && _jsx(Callout, { tone: "danger", children: error }), detail.problems.length > 0 && (_jsx(Callout, { tone: "danger", title: settings.problems, children: _jsx("ul", { className: "sc-plugin-problems", children: detail.problems.map((problem) => (_jsx("li", { children: problem }, problem))) }) })), _jsx(Overview, { detail: detail, projects: props.projects, language: language }), canEnable && (_jsxs("section", { className: "sc-panel sc-panel-form", "aria-label": settings.enable, children: [_jsx("h2", { className: "sc-section-title", children: settings.enable }), _jsx(EnableForm, { detail: detail, projects: props.projects, language: language, busy: busy, onEnable: (input) => change(() => plugin.enable(input)) })] })), enabled && detail.settings.length > 0 && (_jsxs("section", { className: "sc-panel sc-panel-form", "aria-label": settings.settingsForm, children: [_jsx("h2", { className: "sc-section-title", children: settings.settingsForm }), _jsxs("div", { children: [_jsx(SettingsForm, { detail: detail, language: language, busy: busy, people: props.people, projects: props.projects, onSave: (values) => change(() => plugin.updateSettings({ values })) }), detail.settings
|
|
338
|
+
.filter((setting) => setting.type === "secret")
|
|
339
|
+
.map((setting) => (_jsx(SecretRow, { setting: setting, language: language, busy: busy, onSet: (value) => change(() => plugin.setSecret(setting.key, value)), onRemove: () => change(() => plugin.removeSecret(setting.key)) }, setting.key)))] })] })), detail.grants !== null && (_jsx(RolesSection, { detail: detail, projects: props.projects, people: props.people, language: language, busy: busy, onGrant: (input) => change(() => plugin.grant(input)), onRevoke: (id) => change(() => plugin.revoke(id)) })), _jsxs("section", { className: "sc-panel", "aria-label": settings.events, children: [_jsx("h2", { className: "sc-section-title", children: settings.events }), events === undefined ? (_jsx(Spinner, { label: words.common.loading })) : (_jsx(EventFeed, { events: events, empty: _jsx("p", { className: "sc-muted", children: settings.noEvents }) }))] }), _jsxs("section", { className: "sc-panel sc-panel-form", "aria-label": settings.data, children: [_jsx("h2", { className: "sc-section-title", children: settings.data }), _jsxs("div", { children: [_jsxs("div", { className: "sc-settings-row", children: [_jsxs("div", { className: "sc-settings-words", children: [_jsx("p", { className: "sc-settings-label", children: settings.export }), _jsx("p", { className: "sc-settings-hint", children: settings.exportHint })] }), _jsx("div", { className: "sc-settings-control", children: _jsx(LinkButton, { href: `/api/v1/plugins/${detail.key}/export`, children: settings.exportLink }) })] }), _jsxs("div", { className: "sc-settings-row", children: [_jsxs("div", { className: "sc-settings-words", children: [_jsx("p", { className: "sc-settings-label", children: settings.purge }), _jsx("p", { className: "sc-settings-hint", children: settings.purgeHint })] }), _jsx("div", { className: "sc-settings-control", children: purged ? (_jsx("p", { className: "sc-settings-hint", children: settings.purged })) : enabled ? (_jsx("p", { className: "sc-settings-hint", children: settings.purgeDisabledFirst })) : (_jsxs("form", { className: "sc-plugin-line", onSubmit: (event) => {
|
|
340
|
+
event.preventDefault();
|
|
341
|
+
void act(async () => {
|
|
342
|
+
await plugin.purge(confirm);
|
|
343
|
+
setPurged(true);
|
|
344
|
+
props.onPurged();
|
|
345
|
+
});
|
|
346
|
+
}, children: [_jsx("input", { className: "sc-input sc-plugin-line-input", value: confirm, placeholder: settings.purgeConfirm(detail.key), "aria-label": settings.purgeConfirm(detail.key), onChange: (event) => setConfirm(event.target.value) }), _jsx(Button, { type: "submit", variant: "danger", disabled: busy || confirm !== detail.key, children: settings.purge })] })) })] })] })] })] }));
|
|
347
|
+
}
|
|
348
|
+
//# sourceMappingURL=plugin-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-settings.js","sourceRoot":"","sources":["../../src/components/plugin-settings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The address a picture from elsewhere is read at, given the https URL that names it. */
|
|
2
|
+
export type RemotePictureSrc = (url: string) => string;
|
|
3
|
+
export declare const defaultRemotePictureSrc: RemotePictureSrc;
|
|
4
|
+
export declare const RemotePicturesContext: import("react").Context<RemotePictureSrc>;
|
|
5
|
+
export declare function useRemotePictureSrc(): RemotePictureSrc;
|
|
6
|
+
//# sourceMappingURL=remote-pictures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-pictures.d.ts","sourceRoot":"","sources":["../../src/components/remote-pictures.ts"],"names":[],"mappings":"AAQA,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAEvD,eAAO,MAAM,uBAAuB,EAAE,gBACoB,CAAC;AAE3D,eAAO,MAAM,qBAAqB,2CAA2D,CAAC;AAE9F,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
import { REST_ROUTES } from "../routes.js";
|
|
3
|
+
export const defaultRemotePictureSrc = (url) => `${REST_ROUTES.pictures}?src=${encodeURIComponent(url)}`;
|
|
4
|
+
export const RemotePicturesContext = createContext(defaultRemotePictureSrc);
|
|
5
|
+
export function useRemotePictureSrc() {
|
|
6
|
+
return useContext(RemotePicturesContext);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=remote-pictures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-pictures.js","sourceRoot":"","sources":["../../src/components/remote-pictures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,CAAC,MAAM,uBAAuB,GAAqB,CAAC,GAAG,EAAE,EAAE,CAC/D,GAAG,WAAW,CAAC,QAAQ,QAAQ,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAmB,uBAAuB,CAAC,CAAC;AAE9F,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -6,6 +6,8 @@ export interface NavItem {
|
|
|
6
6
|
readonly current: boolean;
|
|
7
7
|
/** A count beside the label: the decisions waiting, for example. */
|
|
8
8
|
readonly count?: number | undefined;
|
|
9
|
+
/** The pages the tab opens a list of, as a group of plugins does (ADR-0054); the tab itself leads to the first. */
|
|
10
|
+
readonly children?: readonly NavItem[] | undefined;
|
|
9
11
|
}
|
|
10
12
|
/** The addresses of a brand's marks (ADR-0013): shown beside the workspace's name, and above it when signing in. */
|
|
11
13
|
export interface Brand {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/components/shell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAQ5C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/components/shell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAQ5C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,mHAAmH;IACnH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;CACpD;AAED,oHAAoH;AACpH,MAAM,WAAW,KAAK;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,0IAA0I;IAC1I,QAAQ,CAAC,OAAO,CAAC,EACb;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,GAC3E,SAAS,CAAC;IACd,2FAA2F;IAC3F,QAAQ,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;IAC/C,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9C,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,wHAAwH;IACxH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED,0GAA0G;AAC1G,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAEV;AAqLD,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,+BA2ItC"}
|
package/dist/components/shell.js
CHANGED
|
@@ -6,6 +6,31 @@ import { Avatar, cx, personName } from "./ui.js";
|
|
|
6
6
|
export function isPlainClick(event) {
|
|
7
7
|
return event.button === 0 && !event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey;
|
|
8
8
|
}
|
|
9
|
+
/** A tab that opens a list of pages, as a group of several plugins does: a details, as the person's menu is. Closes once used. */
|
|
10
|
+
function TabGroup(props) {
|
|
11
|
+
const details = useRef(null);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const onClick = (event) => {
|
|
14
|
+
const element = details.current;
|
|
15
|
+
if (element?.open === true &&
|
|
16
|
+
!(event.target instanceof Node && element.contains(event.target))) {
|
|
17
|
+
element.open = false;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
document.addEventListener("click", onClick);
|
|
21
|
+
return () => document.removeEventListener("click", onClick);
|
|
22
|
+
}, []);
|
|
23
|
+
const { item } = props;
|
|
24
|
+
return (_jsxs("details", { className: "sc-tab-group", ref: details, children: [_jsxs("summary", { className: cx("sc-tab", "sc-tab-summary", item.current && "sc-tab-current"), "aria-current": item.current ? "page" : undefined, children: [item.label, _jsx("svg", { className: "sc-menu-caret", viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx("path", { d: "M4 6l4 4 4-4", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })] }), _jsx("div", { className: "sc-menu-panel sc-tab-group-panel", children: _jsx("div", { className: "sc-menu-list", children: (item.children ?? []).map((child) => (_jsx("a", { href: child.href, className: "sc-menu-link", "aria-current": child.current ? "page" : undefined, onClick: (event) => {
|
|
25
|
+
if (isPlainClick(event)) {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
if (details.current !== null) {
|
|
28
|
+
details.current.open = false;
|
|
29
|
+
}
|
|
30
|
+
props.onNavigate(child.href);
|
|
31
|
+
}
|
|
32
|
+
}, children: child.label }, child.href))) }) })] }));
|
|
33
|
+
}
|
|
9
34
|
/** The person's menu: who they are, the workspace's pages, the languages, and the way out. Closes once used. */
|
|
10
35
|
function PersonMenu(props) {
|
|
11
36
|
const words = useWords();
|
|
@@ -94,6 +119,6 @@ export function Shell(props) {
|
|
|
94
119
|
props.onNavigate(href);
|
|
95
120
|
}
|
|
96
121
|
};
|
|
97
|
-
return (_jsxs("div", { className: "sc-shell", children: [_jsx("a", { className: "sc-skip", href: "#sc-content", children: words.shell.skipToContent }), _jsxs("header", { className: "sc-header", children: [_jsxs("div", { className: "sc-header-inner", children: [_jsxs("a", { className: "sc-brand", href: "/", onClick: follow("/"), "aria-label": props.title, children: [props.brand?.symbol !== undefined && (_jsx("img", { className: "sc-brand-symbol", src: props.brand.symbol, alt: "" })), props.brand?.wordmark !== undefined ? (_jsx("img", { className: "sc-brand-wordmark", src: props.brand.wordmark, alt: "" })) : (_jsx("span", { className: "sc-brand-name", children: props.title }))] }), props.brand?.wordmark !== undefined && (_jsxs("span", { className: "sc-crumb", children: [_jsx("span", { className: "sc-crumb-separator", "aria-hidden": "true", children: "/" }), _jsx("a", { className: "sc-crumb-link", href: "/", onClick: follow("/"), children: props.title })] })), props.project !== undefined && (_jsxs("span", { className: "sc-crumb", children: [_jsx("span", { className: "sc-crumb-separator", "aria-hidden": "true", children: "/" }), _jsxs("a", { className: "sc-crumb-link", href: props.project.href, onClick: follow(props.project.href), children: [props.project.mark, props.project.name] })] })), _jsxs("div", { className: "sc-header-end", children: [props.live !== undefined && (_jsx("span", { className: cx("sc-live", props.live && "sc-live-on"), title: props.live ? words.shell.live : words.shell.reconnecting, children: _jsx("span", { className: "sc-visually-hidden", children: props.live ? words.shell.live : words.shell.reconnecting }) })), props.person !== undefined && (_jsx(PersonMenu, { person: props.person, items: props.menu ?? [], languages: props.languages ?? [], onLanguage: props.onLanguage, onNavigate: props.onNavigate, onSignOut: props.onSignOut }))] })] }), props.nav.length > 0 && (_jsx("nav", { ref: tabs, className: "sc-tabs", "aria-label": words.shell.pages, children: _jsx("div", { className: "sc-tabs-inner", children: props.nav.map((item) => (_jsxs("a", { href: item.href, className: cx("sc-tab", item.current && "sc-tab-current"), "aria-current": item.current ? "page" : undefined, onClick: follow(item.href), children: [item.label, item.count !== undefined && item.count > 0 && (_jsx("span", { className: "sc-nav-count", children: item.count }))] }, item.href))) }) }))] }), _jsx("main", { id: "sc-content", className: cx("sc-main", props.wide === true && "sc-main-wide"), children: props.children })] }));
|
|
122
|
+
return (_jsxs("div", { className: "sc-shell", children: [_jsx("a", { className: "sc-skip", href: "#sc-content", children: words.shell.skipToContent }), _jsxs("header", { className: "sc-header", children: [_jsxs("div", { className: "sc-header-inner", children: [_jsxs("a", { className: "sc-brand", href: "/", onClick: follow("/"), "aria-label": props.title, children: [props.brand?.symbol !== undefined && (_jsx("img", { className: "sc-brand-symbol", src: props.brand.symbol, alt: "" })), props.brand?.wordmark !== undefined ? (_jsx("img", { className: "sc-brand-wordmark", src: props.brand.wordmark, alt: "" })) : (_jsx("span", { className: "sc-brand-name", children: props.title }))] }), props.brand?.wordmark !== undefined && (_jsxs("span", { className: "sc-crumb", children: [_jsx("span", { className: "sc-crumb-separator", "aria-hidden": "true", children: "/" }), _jsx("a", { className: "sc-crumb-link", href: "/", onClick: follow("/"), children: props.title })] })), props.project !== undefined && (_jsxs("span", { className: "sc-crumb", children: [_jsx("span", { className: "sc-crumb-separator", "aria-hidden": "true", children: "/" }), _jsxs("a", { className: "sc-crumb-link", href: props.project.href, onClick: follow(props.project.href), children: [props.project.mark, props.project.name] })] })), _jsxs("div", { className: "sc-header-end", children: [props.live !== undefined && (_jsx("span", { className: cx("sc-live", props.live && "sc-live-on"), title: props.live ? words.shell.live : words.shell.reconnecting, children: _jsx("span", { className: "sc-visually-hidden", children: props.live ? words.shell.live : words.shell.reconnecting }) })), props.person !== undefined && (_jsx(PersonMenu, { person: props.person, items: props.menu ?? [], languages: props.languages ?? [], onLanguage: props.onLanguage, onNavigate: props.onNavigate, onSignOut: props.onSignOut }))] })] }), props.nav.length > 0 && (_jsx("nav", { ref: tabs, className: "sc-tabs", "aria-label": words.shell.pages, children: _jsx("div", { className: "sc-tabs-inner", children: props.nav.map((item) => item.children !== undefined && item.children.length > 0 ? (_jsx(TabGroup, { item: item, onNavigate: props.onNavigate }, item.href)) : (_jsxs("a", { href: item.href, className: cx("sc-tab", item.current && "sc-tab-current"), "aria-current": item.current ? "page" : undefined, onClick: follow(item.href), children: [item.label, item.count !== undefined && item.count > 0 && (_jsx("span", { className: "sc-nav-count", children: item.count }))] }, item.href))) }) }))] }), _jsx("main", { id: "sc-content", className: cx("sc-main", props.wide === true && "sc-main-wide"), children: props.children })] }));
|
|
98
123
|
}
|
|
99
124
|
//# sourceMappingURL=shell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/components/shell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/components/shell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAyDjD,0GAA0G;AAC1G,MAAM,UAAU,YAAY,CAAC,KAM5B;IACC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACpG,CAAC;AAED,kIAAkI;AAClI,SAAS,QAAQ,CAAC,KAA8E;IAC9F,MAAM,OAAO,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,IACE,OAAO,EAAE,IAAI,KAAK,IAAI;gBACtB,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACjE,CAAC;gBACD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,OAAO,CACL,mBAAS,SAAS,EAAC,cAAc,EAAC,GAAG,EAAE,OAAO,aAC5C,mBACE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,kBAC7D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAE9C,IAAI,CAAC,KAAK,EACX,cAAK,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,iBAAa,MAAM,YACnE,eACE,CAAC,EAAC,cAAc,EAChB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,GACE,IACE,EACV,cAAK,SAAS,EAAC,kCAAkC,YAC/C,cAAK,SAAS,EAAC,cAAc,YAC1B,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpC,YAEE,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,cAAc,kBACV,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAChD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4BACjB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gCACxB,KAAK,CAAC,cAAc,EAAE,CAAC;gCACvB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oCAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;gCAC/B,CAAC;gCACD,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC/B,CAAC;wBACH,CAAC,YAEA,KAAK,CAAC,KAAK,IAdP,KAAK,CAAC,IAAI,CAeb,CACL,CAAC,GACE,GACF,IACE,CACX,CAAC;AACJ,CAAC;AAED,gHAAgH;AAChH,SAAS,UAAU,CAAC,KAOnB;IACC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC;IACF,6EAA6E;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,IACE,OAAO,EAAE,IAAI,KAAK,IAAI;gBACtB,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EACjE,CAAC;gBACD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvD,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,OAAO,CACL,mBAAS,SAAS,EAAC,SAAS,EAAC,GAAG,EAAE,OAAO,aACvC,mBAAS,SAAS,EAAC,iBAAiB,gBAAa,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,aACnF,KAAC,MAAM,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,IAAI,GAAG,EACpC,eAAM,SAAS,EAAC,iBAAiB,YAAE,UAAU,CAAC,MAAM,CAAC,GAAQ,EAC7D,cAAK,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,WAAW,iBAAa,MAAM,YACnE,eACE,CAAC,EAAC,cAAc,EAChB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,GACE,IACE,EACV,eAAK,SAAS,EAAC,eAAe,aAC5B,aAAG,SAAS,EAAC,aAAa,aACxB,yBAAO,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,GAAQ,EACzC,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,eAAM,SAAS,EAAC,UAAU,YAAE,MAAM,CAAC,KAAK,GAAQ,IACvE,EACJ,cAAK,SAAS,EAAC,cAAc,gBAAa,KAAK,CAAC,KAAK,CAAC,SAAS,YAC5D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,YAEE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAC,cAAc,kBACV,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC/C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gCACjB,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oCACxB,KAAK,CAAC,cAAc,EAAE,CAAC;oCACvB,KAAK,EAAE,CAAC;oCACR,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC9B,CAAC;4BACH,CAAC,YAEA,IAAI,CAAC,KAAK,IAZN,IAAI,CAAC,IAAI,CAaZ,CACL,CAAC,GACE,EACL,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAC/D,oBAAU,SAAS,EAAC,mBAAmB,aACrC,iBAAQ,SAAS,EAAC,iBAAiB,YAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAU,EACnE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,QAAQ,CAAC,GAAG,EAClB,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,IAAI,gBAAgB,CAAC,kBACrD,QAAQ,CAAC,OAAO,EAC9B,OAAO,EAAE,GAAG,EAAE;oCACZ,KAAK,EAAE,CAAC;oCACR,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gCACnC,CAAC,YAEA,QAAQ,CAAC,KAAK,IAVV,QAAQ,CAAC,GAAG,CAWV,CACV,CAAC,IACO,CACZ,EACA,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAChC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0BAA0B,EACpC,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,EAAE,CAAC;4BACR,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;wBACtB,CAAC,YAEA,KAAK,CAAC,KAAK,CAAC,OAAO,GACb,CACV,IACG,IACE,CACX,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,kFAAkF;IAClF,MAAM,IAAI,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACzB,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAc,iBAAiB,CAAC,CAAC;YAC9D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;YAC7C,uFAAuF;YACvF,yBAAyB;YACzB,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAC1F,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;gBAC5E,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC;QACF,KAAK,EAAE,CAAC;QACR,6FAA6F;QAC7F,6CAA6C;QAC7C,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,KAAuB,EAAE,EAAE;QAC3D,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,YAAG,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,YACtC,KAAK,CAAC,KAAK,CAAC,aAAa,GACxB,EACJ,kBAAQ,SAAS,EAAC,WAAW,aAC3B,eAAK,SAAS,EAAC,iBAAiB,aAC9B,aAAG,SAAS,EAAC,UAAU,EAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAc,KAAK,CAAC,KAAK,aAC3E,KAAK,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,IAAI,CACpC,cAAK,SAAS,EAAC,iBAAiB,EAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAC,EAAE,GAAG,CACpE,EACA,KAAK,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CACrC,cAAK,SAAS,EAAC,mBAAmB,EAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAC,EAAE,GAAG,CACxE,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,eAAe,YAAE,KAAK,CAAC,KAAK,GAAQ,CACrD,IACC,EACH,KAAK,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,IAAI,CAEtC,gBAAM,SAAS,EAAC,UAAU,aACxB,eAAM,SAAS,EAAC,oBAAoB,iBAAa,MAAM,kBAEhD,EACP,YAAG,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,YACvD,KAAK,CAAC,KAAK,GACV,IACC,CACR,EACA,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAC9B,gBAAM,SAAS,EAAC,UAAU,aACxB,eAAM,SAAS,EAAC,oBAAoB,iBAAa,MAAM,kBAEhD,EACP,aACE,SAAS,EAAC,eAAe,EACzB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAElC,KAAK,CAAC,OAAO,CAAC,IAAI,EAClB,KAAK,CAAC,OAAO,CAAC,IAAI,IACjB,IACC,CACR,EACD,eAAK,SAAS,EAAC,eAAe,aAC3B,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAC3B,eACE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC,EACpD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,YAE/D,eAAM,SAAS,EAAC,oBAAoB,YACjC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GACpD,GACF,CACR,EACA,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAC7B,KAAC,UAAU,IACT,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EACvB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAChC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,GAC1B,CACH,IACG,IACF,EACL,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,cAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAC,SAAS,gBAAa,KAAK,CAAC,KAAK,CAAC,KAAK,YAC/D,cAAK,SAAS,EAAC,eAAe,YAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxD,KAAC,QAAQ,IAAiB,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAnD,IAAI,CAAC,IAAI,CAA8C,CACvE,CAAC,CAAC,CAAC,CACF,aAEE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,kBAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC/C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAEzB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAC7C,eAAM,SAAS,EAAC,cAAc,YAAE,IAAI,CAAC,KAAK,GAAQ,CACnD,KATI,IAAI,CAAC,IAAI,CAUZ,CACL,CACF,GACG,GACF,CACP,IACM,EACT,eAAM,EAAE,EAAC,YAAY,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,cAAc,CAAC,YAClF,KAAK,CAAC,QAAQ,GACV,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../src/components/sign-in.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sign-in.d.ts","sourceRoot":"","sources":["../../src/components/sign-in.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMxC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC9C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,+BA2FxC"}
|