alinea 2.0.0-preview.3 → 2.0.0-preview.5
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/dist/.init/content/pages/welcome.json +1 -1
- package/dist/.init/src/cms.ts +1 -4
- package/dist/LICENSES.md +148 -94
- package/dist/adapter/next/DevRemote.js +10 -2
- package/dist/adapter/next/cms.js +5 -1
- package/dist/adapter/next/handler.js +35 -6
- package/dist/adapter/next/previews.js +7 -0
- package/dist/adapter/next/syncCheck.d.ts +12 -0
- package/dist/adapter/next/syncCheck.js +59 -0
- package/dist/adapter/next/with-alinea.d.ts +0 -8
- package/dist/adapter/next/with-alinea.js +43 -19
- package/dist/adapter/vite/plugin.js +9 -4
- package/dist/backend/Handler.js +120 -7
- package/dist/backend/api/BasicAuth.d.ts +1 -1
- package/dist/backend/api/BasicAuth.js +14 -14
- package/dist/backend/api/OAuth2.d.ts +3 -3
- package/dist/backend/api/OAuth2.js +7 -4
- package/dist/backend/api/ProxyMedia.d.ts +3 -0
- package/dist/backend/api/ProxyMedia.js +39 -0
- package/dist/backend/api/S3Uploads.d.ts +1 -1
- package/dist/backend/router/Router.js +2 -0
- package/dist/backend/util/Syncable.js +1 -1
- package/dist/bundled.d.ts +260 -95
- package/dist/chunks/{chunk-HFBZMKIN.js → chunk-A6M3PNJT.js} +1 -1
- package/dist/chunks/{chunk-Y7XOMJOC.js → chunk-CFNRVI3Y.js} +220 -247
- package/dist/chunks/chunk-D6UJHBJJ.js +183 -0
- package/dist/chunks/chunk-TIJTT5ZI.js +228 -0
- package/dist/cli/Generate.js +1 -3
- package/dist/cli/Serve.js +3 -2
- package/dist/cli/bin.js +1 -1
- package/dist/cli/generate/GenerateDashboard.js +1 -0
- package/dist/cli/serve/CreateLocalServer.d.ts +1 -1
- package/dist/cli/serve/CreateLocalServer.js +42 -34
- package/dist/cli/serve/LocalAuth.js +1 -1
- package/dist/cli/static/init/cms.js +1 -4
- package/dist/cli/util/ContentType.d.ts +1 -0
- package/dist/cli/util/ContentType.js +36 -0
- package/dist/cloud/AuthResult.d.ts +2 -0
- package/dist/cloud/CloudHandshake.d.ts +13 -0
- package/dist/cloud/CloudHandshake.js +121 -0
- package/dist/cloud/CloudRemote.d.ts +4 -1
- package/dist/cloud/CloudRemote.js +40 -9
- package/dist/components/Calendar.js +7 -7
- package/dist/components/Checkbox.js +2 -2
- package/dist/components/ColorSwatchPicker.js +2 -2
- package/dist/components/ComboBox.js +12 -12
- package/dist/components/DateField.js +4 -4
- package/dist/components/DatePicker.js +4 -4
- package/dist/components/DateRangePicker.js +8 -8
- package/dist/components/Disclosure.js +7 -7
- package/dist/components/Label.js +5 -5
- package/dist/components/List.d.ts +1 -1
- package/dist/components/List.js +29 -28
- package/dist/components/Menu.js +2 -2
- package/dist/components/MultipleSelect.js +25 -25
- package/dist/components/NumberField.js +3 -3
- package/dist/components/ProgressCircle.js +4 -4
- package/dist/components/SearchField.js +6 -6
- package/dist/components/Select.js +7 -7
- package/dist/components/Surface.js +3 -3
- package/dist/components/Table.js +6 -6
- package/dist/components/Tabs.js +2 -2
- package/dist/components/TagGroup.js +2 -2
- package/dist/components/TextField.js +4 -4
- package/dist/components/TimeField.js +1 -1
- package/dist/components/Toggle.d.ts +1 -1
- package/dist/components/Toolbar.js +1 -1
- package/dist/components/Tree.js +7 -7
- package/dist/core/Config.d.ts +10 -3
- package/dist/core/Config.js +16 -1
- package/dist/core/Connection.d.ts +7 -4
- package/dist/core/Entry.d.ts +6 -0
- package/dist/core/Entry.js +10 -0
- package/dist/core/Graph.d.ts +2 -2
- package/dist/core/Id.d.ts +1 -0
- package/dist/core/Id.js +8 -0
- package/dist/core/Role.js +16 -14
- package/dist/core/TextDoc.d.ts +2 -0
- package/dist/core/TextDoc.js +1 -0
- package/dist/core/Workspace.d.ts +6 -5
- package/dist/core/db/EntryIndex.d.ts +3 -0
- package/dist/core/db/EntryIndex.js +62 -0
- package/dist/core/db/EntryTransaction.js +33 -12
- package/dist/core/db/EntryUrlConflictError.js +1 -1
- package/dist/core/db/LinkResolver.d.ts +8 -2
- package/dist/core/db/LinkResolver.js +27 -5
- package/dist/core/db/Operation.js +4 -3
- package/dist/core/field/RichTextField.js +16 -10
- package/dist/core/media/MediaLocation.d.ts +9 -15
- package/dist/core/media/MediaLocation.js +29 -19
- package/dist/core/media/MediaTypes.js +1 -2
- package/dist/dashboard/App.js +30 -16
- package/dist/dashboard/StoryProvider.js +2 -2
- package/dist/dashboard/app/AccessDenied.js +4 -4
- package/dist/dashboard/app/ActivityStatus.js +22 -21
- package/dist/dashboard/app/AppShell.js +2 -2
- package/dist/dashboard/app/AppearanceToggle.d.ts +1 -0
- package/dist/dashboard/app/AppearanceToggle.js +43 -0
- package/dist/dashboard/app/AuthView.d.ts +1 -1
- package/dist/dashboard/app/AuthView.js +19 -21
- package/dist/dashboard/app/CompactField.js +13 -13
- package/dist/dashboard/app/DashboardErrorBoundary.js +26 -14
- package/dist/dashboard/app/DashboardLayout.js +15 -8
- package/dist/dashboard/app/DashboardMeta.d.ts +2 -1
- package/dist/dashboard/app/DashboardMeta.js +20 -5
- package/dist/dashboard/app/EntryFields.d.ts +3 -1
- package/dist/dashboard/app/EntryFields.js +17 -14
- package/dist/dashboard/app/EntryHeader.js +134 -102
- package/dist/dashboard/app/EntryHeaderActions.d.ts +21 -4
- package/dist/dashboard/app/EntryHeaderActions.js +48 -27
- package/dist/dashboard/app/EntryReferences.js +16 -16
- package/dist/dashboard/app/EntrySidebar.js +24 -24
- package/dist/dashboard/app/EntrySidebarPreview.js +16 -15
- package/dist/dashboard/app/EntryTranslationBanner.d.ts +3 -1
- package/dist/dashboard/app/EntryTranslationBanner.js +24 -21
- package/dist/dashboard/app/Explorer.d.ts +4 -2
- package/dist/dashboard/app/Explorer.js +70 -66
- package/dist/dashboard/app/ExplorerCards.js +49 -49
- package/dist/dashboard/app/ExplorerFileCard.js +18 -18
- package/dist/dashboard/app/ExplorerList.js +21 -22
- package/dist/dashboard/app/ExplorerModal.js +1 -1
- package/dist/dashboard/app/ExplorerPickerContent.js +2 -2
- package/dist/dashboard/app/ExplorerTable.js +68 -68
- package/dist/dashboard/app/ImagePicker.js +7 -7
- package/dist/dashboard/app/LinkPicker.js +17 -22
- package/dist/dashboard/app/LocaleMenu.d.ts +7 -0
- package/dist/dashboard/app/LocaleMenu.js +31 -17
- package/dist/dashboard/app/ReadOnlyBadge.d.ts +4 -0
- package/dist/dashboard/app/ReadOnlyBadge.js +33 -0
- package/dist/dashboard/app/SidebarLayout.js +4 -4
- package/dist/dashboard/app/SidebarTree.d.ts +3 -6
- package/dist/dashboard/app/SidebarTree.js +66 -61
- package/dist/dashboard/app/WorkspaceMenu.d.ts +10 -3
- package/dist/dashboard/app/WorkspaceMenu.js +87 -66
- package/dist/dashboard/app/WorkspaceMenu.stories.d.ts +2 -0
- package/dist/dashboard/app/WorkspaceRoots.d.ts +3 -1
- package/dist/dashboard/app/WorkspaceRoots.js +88 -113
- package/dist/dashboard/app/editor/FileEditor.d.ts +2 -3
- package/dist/dashboard/app/editor/FileEditor.js +35 -38
- package/dist/dashboard/app/editor/FilePreview.js +3 -3
- package/dist/dashboard/app/editor/MediaAltField.view.js +4 -4
- package/dist/dashboard/app/modals/CreateEntry.js +10 -10
- package/dist/dashboard/app/pages/EntryPage.js +85 -44
- package/dist/dashboard/app/pages/RootPage.js +4 -4
- package/dist/dashboard/app/pages/SplashPage.d.ts +3 -0
- package/dist/dashboard/app/pages/SplashPage.js +414 -0
- package/dist/dashboard/app/pages/UsersPage.js +38 -38
- package/dist/dashboard/app/ui/DashboardModal.js +16 -16
- package/dist/dashboard/app/ui/Rail.js +2 -2
- package/dist/dashboard/app/ui/Sidebar.js +2 -2
- package/dist/dashboard/atoms/ReactiveNode.js +1 -1
- package/dist/dashboard/atoms/activity.d.ts +0 -1
- package/dist/dashboard/atoms/activity.js +3 -5
- package/dist/dashboard/atoms/auth.d.ts +2 -0
- package/dist/dashboard/atoms/auth.js +6 -2
- package/dist/dashboard/atoms/config.js +1 -1
- package/dist/dashboard/atoms/core.js +2 -2
- package/dist/dashboard/atoms/create.js +1 -1
- package/dist/dashboard/atoms/dashboard.js +2 -2
- package/dist/dashboard/atoms/editor.d.ts +2 -1
- package/dist/dashboard/atoms/editor.js +5 -3
- package/dist/dashboard/atoms/entry.d.ts +2 -0
- package/dist/dashboard/atoms/entry.js +34 -16
- package/dist/dashboard/atoms/explorer.d.ts +5 -6
- package/dist/dashboard/atoms/explorer.js +68 -31
- package/dist/dashboard/atoms/graph.d.ts +1 -0
- package/dist/dashboard/atoms/graph.js +7 -2
- package/dist/dashboard/atoms/link.d.ts +1 -1
- package/dist/dashboard/atoms/link.js +41 -57
- package/dist/dashboard/atoms/nav.d.ts +4 -3
- package/dist/dashboard/atoms/nav.js +10 -5
- package/dist/dashboard/atoms/preview.js +1 -1
- package/dist/dashboard/atoms/root.d.ts +7 -2
- package/dist/dashboard/atoms/root.js +53 -18
- package/dist/dashboard/atoms/upload.d.ts +1 -0
- package/dist/dashboard/atoms/upload.js +3 -2
- package/dist/dashboard/atoms/user.d.ts +1 -1
- package/dist/dashboard/atoms/user.js +8 -6
- package/dist/dashboard/atoms/utils.js +2 -2
- package/dist/dashboard/boot/Boot.js +2 -4
- package/dist/dashboard/boot/DashboardWorker.js +35 -29
- package/dist/dashboard/editor/UseField.js +6 -6
- package/dist/dashboard/fixture/cms.d.ts +12 -0
- package/dist/dashboard/fixture/cms.js +54 -6
- package/dist/dashboard/hook/UseGraph.js +4 -4
- package/dist/dashboard/hook/UseRoot.js +4 -4
- package/dist/dashboard/hook/UseSaveShortcut.d.ts +1 -0
- package/dist/dashboard/hook/UseSaveShortcut.js +24 -0
- package/dist/dashboard/hooks.d.ts +1 -1
- package/dist/dashboard/hooks.js +28 -19
- package/dist/field/code/CodeField.view.js +12 -12
- package/dist/field/link/ImageLink.js +1 -3
- package/dist/field/link/LinkField.view.js +97 -71
- package/dist/field/list/ListField.view.js +23 -23
- package/dist/field/localiser/LocalisedField.view.js +76 -5
- package/dist/field/metadata/MetadataField.d.ts +3 -3
- package/dist/field/metadata/MetadataField.view.js +27 -20
- package/dist/field/object/ObjectField.view.js +11 -4
- package/dist/field/richtext/PickTextLink.js +11 -8
- package/dist/field/richtext/ReferenceLink.d.ts +2 -0
- package/dist/field/richtext/ReferenceLink.js +5 -0
- package/dist/field/richtext/RichTextBlock.js +6 -6
- package/dist/field/richtext/RichTextBlocks.js +1 -1
- package/dist/field/richtext/RichTextExtensions.js +22 -22
- package/dist/field/richtext/RichTextField.view.js +9 -9
- package/dist/field/richtext/RichTextInsertMenu.js +3 -3
- package/dist/field/richtext/RichTextState.js +1 -1
- package/dist/field/richtext/extensions/Link.d.ts +1 -0
- package/dist/field/richtext/extensions/Link.js +1 -0
- package/dist/field/text/TextField.view.js +2 -2
- package/dist/field/time/TimeField.d.ts +0 -2
- package/dist/field/time/TimeField.view.js +1 -1
- package/dist/index.css +459 -66
- package/dist/next.cjs +96 -19
- package/dist/picker/entry/EntryPicker.js +10 -12
- package/dist/picker/entry/EntryReference.d.ts +2 -0
- package/dist/picker/entry/EntryReference.js +1 -0
- package/dist/preview/RegisterPreview.d.ts +1 -1
- package/dist/preview/RegisterPreview.js +4 -6
- package/dist/preview/react.d.ts +5 -1
- package/dist/preview/react.js +12 -9
- package/dist/types.d.ts +0 -1
- package/package.json +1 -1
- package/dist/chunks/chunk-STAJCW4Z.js +0 -322
- package/dist/chunks/chunk-U4VOHNR2.js +0 -210
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface VerifyCloudHandshakeOptions {
|
|
2
|
+
clientId: string;
|
|
3
|
+
handshakeId: string;
|
|
4
|
+
origin: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class CloudHandshakeError extends Error {
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class CloudHandshakeServiceError extends Error {
|
|
10
|
+
name: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function verifyCloudHandshake(token: string, options: VerifyCloudHandshakeOptions): Promise<void>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import "../chunks/chunk-CQ52GEHY.js";
|
|
2
|
+
|
|
3
|
+
// src/cloud/CloudHandshake.ts
|
|
4
|
+
import { decode, verify } from "alinea/core/util/JWT";
|
|
5
|
+
import { isRecord } from "alinea/core/util/Objects";
|
|
6
|
+
import { cloudConfig } from "./CloudConfig.js";
|
|
7
|
+
var CloudHandshakeError = class extends Error {
|
|
8
|
+
name = "CloudHandshakeError";
|
|
9
|
+
};
|
|
10
|
+
var CloudHandshakeServiceError = class extends Error {
|
|
11
|
+
name = "CloudHandshakeServiceError";
|
|
12
|
+
};
|
|
13
|
+
var keysPromise;
|
|
14
|
+
var keysExpireAt = 0;
|
|
15
|
+
var lastForcedRefreshAt = 0;
|
|
16
|
+
var keyCacheLifetime = 5 * 60 * 1e3;
|
|
17
|
+
var forcedRefreshInterval = 60 * 1e3;
|
|
18
|
+
var verificationMessages = {
|
|
19
|
+
"Invalid signature": "Handshake token signature is invalid",
|
|
20
|
+
"Token expired": "Handshake token has expired",
|
|
21
|
+
"Token not yet valid": "Handshake token is not yet valid",
|
|
22
|
+
"Invalid exp value": "Handshake token expiration is invalid",
|
|
23
|
+
"Invalid nbf value": "Handshake token not-before claim is invalid"
|
|
24
|
+
};
|
|
25
|
+
async function verifyCloudHandshake(token, options) {
|
|
26
|
+
const { header } = decodeHandshakeToken(token);
|
|
27
|
+
if (!isRecord(header) || header.alg !== "RS256" || typeof header.kid !== "string" || !header.kid)
|
|
28
|
+
throw new CloudHandshakeError("Handshake token header is invalid");
|
|
29
|
+
let key = (await cloudKeys()).find((key2) => key2.kid === header.kid);
|
|
30
|
+
if (!key) {
|
|
31
|
+
key = (await refreshCloudKeys()).find((key2) => key2.kid === header.kid);
|
|
32
|
+
}
|
|
33
|
+
if (!key)
|
|
34
|
+
throw new CloudHandshakeError("Handshake token signing key is unknown");
|
|
35
|
+
const payload = await verify(token, key, { algorithms: ["RS256"] }).catch(
|
|
36
|
+
(cause) => {
|
|
37
|
+
throw verificationError(cause);
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
if (!isRecord(payload))
|
|
41
|
+
throw new CloudHandshakeError("Handshake token payload is invalid");
|
|
42
|
+
assertClaim("purpose", payload.purpose, "handshake");
|
|
43
|
+
assertClaim("ID", payload.handshake_id, options.handshakeId);
|
|
44
|
+
assertClaim("audience", payload.aud, options.clientId);
|
|
45
|
+
assertClaim("issuer", payload.iss, normalizedCloudUrl());
|
|
46
|
+
assertClaim("origin", payload.origin, options.origin);
|
|
47
|
+
if (typeof payload.project !== "string")
|
|
48
|
+
throw new CloudHandshakeError("Handshake project claim is invalid");
|
|
49
|
+
if (typeof payload.iat !== "number")
|
|
50
|
+
throw new CloudHandshakeError("Handshake issued-at claim is invalid");
|
|
51
|
+
if (typeof payload.exp !== "number")
|
|
52
|
+
throw new CloudHandshakeError("Handshake expiration claim is invalid");
|
|
53
|
+
}
|
|
54
|
+
function assertClaim(name, received, expected) {
|
|
55
|
+
if (received !== expected)
|
|
56
|
+
throw new CloudHandshakeError(
|
|
57
|
+
`Handshake ${name} mismatch: expected ${expected}, received ${String(received)}`
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
function decodeHandshakeToken(token) {
|
|
61
|
+
try {
|
|
62
|
+
return decode(token);
|
|
63
|
+
} catch (cause) {
|
|
64
|
+
throw new CloudHandshakeError("Handshake token is malformed", { cause });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function verificationError(cause) {
|
|
68
|
+
const reason = cause instanceof Error && verificationMessages[cause.message];
|
|
69
|
+
return reason ? new CloudHandshakeError(reason, { cause }) : new CloudHandshakeServiceError("Could not verify handshake token", {
|
|
70
|
+
cause
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function cloudKeys() {
|
|
74
|
+
if (keysPromise && (keysExpireAt === 0 || Date.now() < keysExpireAt))
|
|
75
|
+
return keysPromise;
|
|
76
|
+
return loadCloudKeys();
|
|
77
|
+
}
|
|
78
|
+
function refreshCloudKeys() {
|
|
79
|
+
const now = Date.now();
|
|
80
|
+
if (keysPromise && keysExpireAt === 0) return keysPromise;
|
|
81
|
+
if (keysPromise && now - lastForcedRefreshAt < forcedRefreshInterval)
|
|
82
|
+
return keysPromise;
|
|
83
|
+
lastForcedRefreshAt = now;
|
|
84
|
+
return loadCloudKeys();
|
|
85
|
+
}
|
|
86
|
+
function loadCloudKeys() {
|
|
87
|
+
keysExpireAt = 0;
|
|
88
|
+
keysPromise = fetch(cloudConfig.jwks).then(async (response) => {
|
|
89
|
+
if (!response.ok)
|
|
90
|
+
throw new CloudHandshakeServiceError(
|
|
91
|
+
`Could not load handshake signing keys: ${response.status}`
|
|
92
|
+
);
|
|
93
|
+
const body = await response.json();
|
|
94
|
+
if (!isRecord(body) || !Array.isArray(body.keys))
|
|
95
|
+
throw new CloudHandshakeServiceError(
|
|
96
|
+
"Cloud returned invalid handshake signing keys"
|
|
97
|
+
);
|
|
98
|
+
keysExpireAt = Date.now() + keyCacheLifetime;
|
|
99
|
+
return body.keys.filter(isCloudKey);
|
|
100
|
+
}).catch((cause) => {
|
|
101
|
+
keysPromise = void 0;
|
|
102
|
+
keysExpireAt = 0;
|
|
103
|
+
if (cause instanceof CloudHandshakeServiceError) throw cause;
|
|
104
|
+
throw new CloudHandshakeServiceError(
|
|
105
|
+
"Could not load handshake signing keys",
|
|
106
|
+
{ cause }
|
|
107
|
+
);
|
|
108
|
+
});
|
|
109
|
+
return keysPromise;
|
|
110
|
+
}
|
|
111
|
+
function isCloudKey(value) {
|
|
112
|
+
return isRecord(value) && typeof value.kid === "string";
|
|
113
|
+
}
|
|
114
|
+
function normalizedCloudUrl() {
|
|
115
|
+
return cloudConfig.url.replace(/\/$/, "");
|
|
116
|
+
}
|
|
117
|
+
export {
|
|
118
|
+
CloudHandshakeError,
|
|
119
|
+
CloudHandshakeServiceError,
|
|
120
|
+
verifyCloudHandshake
|
|
121
|
+
};
|
|
@@ -10,12 +10,15 @@ import type { User, UserInput } from 'alinea/core/User';
|
|
|
10
10
|
export declare class CloudRemote extends OAuth2 implements RemoteConnection {
|
|
11
11
|
#private;
|
|
12
12
|
constructor(context: RequestContext, config: Config);
|
|
13
|
+
capabilities(): Promise<{
|
|
14
|
+
users: boolean;
|
|
15
|
+
}>;
|
|
13
16
|
getTreeIfDifferent(sha: string): Promise<ReadonlyTree | undefined>;
|
|
14
17
|
getBlobs(shas: ReadonlyArray<string>, options?: GetBlobsOptions): AsyncGenerator<[sha: string, blob: Uint8Array]>;
|
|
15
18
|
write(request: CommitRequest): Promise<{
|
|
16
19
|
sha: string;
|
|
17
20
|
}>;
|
|
18
|
-
authenticate(request: Request, options
|
|
21
|
+
authenticate(request: Request, options: AuthOptions): Promise<globalThis.Response>;
|
|
19
22
|
prepareUpload(file: string, metadata?: UploadMetadata): Promise<{
|
|
20
23
|
entryId: string;
|
|
21
24
|
location: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
package_default
|
|
3
|
-
} from "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-A6M3PNJT.js";
|
|
4
4
|
import "../chunks/chunk-CQ52GEHY.js";
|
|
5
5
|
|
|
6
6
|
// src/cloud/CloudRemote.ts
|
|
@@ -15,11 +15,17 @@ import { HttpError } from "alinea/core/HttpError";
|
|
|
15
15
|
import { ShaMismatchError } from "alinea/core/source/ShaMismatchError";
|
|
16
16
|
import { ReadonlyTree } from "alinea/core/source/Tree";
|
|
17
17
|
import { base64 } from "alinea/core/util/Encoding";
|
|
18
|
-
import { entries
|
|
18
|
+
import { entries } from "alinea/core/util/Objects";
|
|
19
19
|
import { Workspace } from "alinea/core/Workspace";
|
|
20
|
+
import { MediaLocation } from "alinea/core/media/MediaLocation";
|
|
20
21
|
import { Response } from "@alinea/iso";
|
|
21
22
|
import { AuthResultType } from "./AuthResult.js";
|
|
22
23
|
import { cloudConfig } from "./CloudConfig.js";
|
|
24
|
+
import {
|
|
25
|
+
CloudHandshakeError,
|
|
26
|
+
CloudHandshakeServiceError,
|
|
27
|
+
verifyCloudHandshake
|
|
28
|
+
} from "./CloudHandshake.js";
|
|
23
29
|
var CloudRemote = class extends OAuth2 {
|
|
24
30
|
#context;
|
|
25
31
|
#config;
|
|
@@ -42,6 +48,9 @@ var CloudRemote = class extends OAuth2 {
|
|
|
42
48
|
this.#context = context;
|
|
43
49
|
this.#config = config;
|
|
44
50
|
}
|
|
51
|
+
async capabilities() {
|
|
52
|
+
return { users: false };
|
|
53
|
+
}
|
|
45
54
|
async getTreeIfDifferent(sha) {
|
|
46
55
|
const ctx = this.#context;
|
|
47
56
|
return parseOutcome(
|
|
@@ -121,14 +130,36 @@ var CloudRemote = class extends OAuth2 {
|
|
|
121
130
|
}
|
|
122
131
|
// The cloud server will request a handshake confirmation on this route
|
|
123
132
|
case AuthAction.Handshake: {
|
|
124
|
-
const
|
|
125
|
-
|
|
133
|
+
const handshakeId = url.searchParams.get("handshake_id");
|
|
134
|
+
const handshakeToken = url.searchParams.get("handshake_token");
|
|
135
|
+
if (!handshakeId || !handshakeToken)
|
|
126
136
|
throw new HttpError(
|
|
127
137
|
400,
|
|
128
|
-
"Provide
|
|
138
|
+
"Provide valid handshake credentials to initiate handshake"
|
|
129
139
|
);
|
|
140
|
+
const clientId = ctx.apiKey.split("_")[1];
|
|
141
|
+
if (!clientId)
|
|
142
|
+
throw new HttpError(401, "A Cloud API key is required for handshake");
|
|
143
|
+
try {
|
|
144
|
+
await verifyCloudHandshake(handshakeToken, {
|
|
145
|
+
clientId,
|
|
146
|
+
handshakeId,
|
|
147
|
+
origin: new URL(ctx.handlerUrl).origin
|
|
148
|
+
});
|
|
149
|
+
} catch (cause) {
|
|
150
|
+
if (cause instanceof CloudHandshakeError)
|
|
151
|
+
throw new HttpError(
|
|
152
|
+
401,
|
|
153
|
+
`Invalid handshake token: ${cause.message}`,
|
|
154
|
+
{ cause }
|
|
155
|
+
);
|
|
156
|
+
if (cause instanceof CloudHandshakeServiceError)
|
|
157
|
+
throw new HttpError(503, cause.message, { cause });
|
|
158
|
+
throw new HttpError(500, "Could not verify handshake token", { cause });
|
|
159
|
+
}
|
|
130
160
|
const body = {
|
|
131
|
-
handshake_id:
|
|
161
|
+
handshake_id: handshakeId,
|
|
162
|
+
handshake_token: handshakeToken,
|
|
132
163
|
status: {
|
|
133
164
|
version: package_default.version,
|
|
134
165
|
roles: entries(this.#config.roles ?? {}).map(([name, role]) => {
|
|
@@ -139,9 +170,9 @@ var CloudRemote = class extends OAuth2 {
|
|
|
139
170
|
};
|
|
140
171
|
}),
|
|
141
172
|
enableOAuth2: true,
|
|
142
|
-
sourceDirectories:
|
|
143
|
-
const { source
|
|
144
|
-
return [source,
|
|
173
|
+
sourceDirectories: entries(config.workspaces).flatMap(([key, workspace]) => {
|
|
174
|
+
const { source } = Workspace.data(workspace);
|
|
175
|
+
return [source, MediaLocation.directory(config, key)];
|
|
145
176
|
}).filter(Boolean)
|
|
146
177
|
}
|
|
147
178
|
};
|
|
@@ -27,17 +27,17 @@ import {
|
|
|
27
27
|
|
|
28
28
|
// src/components/Calendar.module.css
|
|
29
29
|
var Calendar_default = {
|
|
30
|
-
"Calendar-
|
|
31
|
-
"
|
|
30
|
+
"Calendar-heading": "alinea-Calendar-heading",
|
|
31
|
+
"CalendarHeading": "alinea-Calendar-heading",
|
|
32
|
+
"Calendar-button": "alinea-Calendar-button",
|
|
33
|
+
"CalendarButton": "alinea-Calendar-button",
|
|
32
34
|
"Calendar-grid": "alinea-Calendar-grid",
|
|
33
35
|
"CalendarGrid": "alinea-Calendar-grid",
|
|
36
|
+
"Calendar": "alinea-Calendar",
|
|
34
37
|
"Calendar-header": "alinea-Calendar-header",
|
|
35
38
|
"CalendarHeader": "alinea-Calendar-header",
|
|
36
|
-
"Calendar-
|
|
37
|
-
"
|
|
38
|
-
"Calendar-heading": "alinea-Calendar-heading",
|
|
39
|
-
"CalendarHeading": "alinea-Calendar-heading",
|
|
40
|
-
"Calendar": "alinea-Calendar"
|
|
39
|
+
"Calendar-cell": "alinea-Calendar-cell",
|
|
40
|
+
"CalendarCell": "alinea-Calendar-cell"
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
// src/components/Calendar.tsx
|
|
@@ -16,10 +16,10 @@ import "../chunks/chunk-CQ52GEHY.js";
|
|
|
16
16
|
|
|
17
17
|
// src/components/Checkbox.module.css
|
|
18
18
|
var Checkbox_default = {
|
|
19
|
-
"Checkbox-box": "alinea-Checkbox-box",
|
|
20
|
-
"CheckboxBox": "alinea-Checkbox-box",
|
|
21
19
|
"Checkbox-mark": "alinea-Checkbox-mark",
|
|
22
20
|
"CheckboxMark": "alinea-Checkbox-mark",
|
|
21
|
+
"Checkbox-box": "alinea-Checkbox-box",
|
|
22
|
+
"CheckboxBox": "alinea-Checkbox-box",
|
|
23
23
|
"Checkbox": "alinea-Checkbox"
|
|
24
24
|
};
|
|
25
25
|
|
|
@@ -20,8 +20,8 @@ import { ColorSwatch } from "./ColorSwatch.js";
|
|
|
20
20
|
|
|
21
21
|
// src/components/ColorSwatchPicker.module.css
|
|
22
22
|
var ColorSwatchPicker_default = {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"ColorSwatchPickerItem": "alinea-ColorSwatchPickerItem",
|
|
24
|
+
"ColorSwatchPicker": "alinea-ColorSwatchPicker"
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
// src/components/ColorSwatchPicker.tsx
|
|
@@ -29,24 +29,24 @@ import {
|
|
|
29
29
|
|
|
30
30
|
// src/components/ComboBox.module.css
|
|
31
31
|
var ComboBox_default = {
|
|
32
|
-
"ComboBoxItem": "alinea-ComboBoxItem",
|
|
32
|
+
"ComboBoxItem-check": "alinea-ComboBoxItem-check",
|
|
33
|
+
"ComboBoxItemCheck": "alinea-ComboBoxItem-check",
|
|
34
|
+
"ComboBox": "alinea-ComboBox",
|
|
33
35
|
"ComboBoxTrigger-button-arrow": "alinea-ComboBoxTrigger-button-arrow",
|
|
34
36
|
"ComboBoxTriggerButtonArrow": "alinea-ComboBoxTrigger-button-arrow",
|
|
35
|
-
"ComboBoxTrigger-button": "alinea-ComboBoxTrigger-button",
|
|
36
|
-
"ComboBoxTriggerButton": "alinea-ComboBoxTrigger-button",
|
|
37
|
-
"ComboBoxTrigger": "alinea-ComboBoxTrigger",
|
|
38
|
-
"ComboBoxTrigger-actions": "alinea-ComboBoxTrigger-actions",
|
|
39
|
-
"ComboBoxTriggerActions": "alinea-ComboBoxTrigger-actions",
|
|
40
|
-
"ComboBoxPopover-listbox": "alinea-ComboBoxPopover-listbox",
|
|
41
|
-
"ComboBoxPopoverListbox": "alinea-ComboBoxPopover-listbox",
|
|
42
|
-
"ComboBoxClear": "alinea-ComboBoxClear",
|
|
43
37
|
"ComboBoxTrigger-input": "alinea-ComboBoxTrigger-input",
|
|
44
38
|
"ComboBoxTriggerInput": "alinea-ComboBoxTrigger-input",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
39
|
+
"ComboBoxClear": "alinea-ComboBoxClear",
|
|
40
|
+
"ComboBoxItem": "alinea-ComboBoxItem",
|
|
41
|
+
"ComboBoxTrigger-actions": "alinea-ComboBoxTrigger-actions",
|
|
42
|
+
"ComboBoxTriggerActions": "alinea-ComboBoxTrigger-actions",
|
|
47
43
|
"ComboBoxTrigger-button-value": "alinea-ComboBoxTrigger-button-value",
|
|
48
44
|
"ComboBoxTriggerButtonValue": "alinea-ComboBoxTrigger-button-value",
|
|
49
|
-
"
|
|
45
|
+
"ComboBoxTrigger": "alinea-ComboBoxTrigger",
|
|
46
|
+
"ComboBoxTrigger-button": "alinea-ComboBoxTrigger-button",
|
|
47
|
+
"ComboBoxTriggerButton": "alinea-ComboBoxTrigger-button",
|
|
48
|
+
"ComboBoxPopover-listbox": "alinea-ComboBoxPopover-listbox",
|
|
49
|
+
"ComboBoxPopoverListbox": "alinea-ComboBoxPopover-listbox"
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
// src/components/ComboBox.tsx
|
|
@@ -19,11 +19,11 @@ import "../chunks/chunk-CQ52GEHY.js";
|
|
|
19
19
|
|
|
20
20
|
// src/components/DateField.module.css
|
|
21
21
|
var DateField_default = {
|
|
22
|
-
"DateField-input": "alinea-DateField-input",
|
|
23
|
-
"DateFieldInput": "alinea-DateField-input",
|
|
24
|
-
"DateField": "alinea-DateField",
|
|
25
22
|
"DateField-input-segment": "alinea-DateField-input-segment",
|
|
26
|
-
"DateFieldInputSegment": "alinea-DateField-input-segment"
|
|
23
|
+
"DateFieldInputSegment": "alinea-DateField-input-segment",
|
|
24
|
+
"DateField": "alinea-DateField",
|
|
25
|
+
"DateField-input": "alinea-DateField-input",
|
|
26
|
+
"DateFieldInput": "alinea-DateField-input"
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
// src/components/DateField.tsx
|
|
@@ -25,14 +25,14 @@ import { Calendar } from "./Calendar.js";
|
|
|
25
25
|
|
|
26
26
|
// src/components/DatePicker.module.css
|
|
27
27
|
var DatePicker_default = {
|
|
28
|
-
"DatePicker": "alinea-DatePicker",
|
|
29
|
-
"DatePicker-input-segment": "alinea-DatePicker-input-segment",
|
|
30
|
-
"DatePickerInputSegment": "alinea-DatePicker-input-segment",
|
|
31
28
|
"DatePicker-input": "alinea-DatePicker-input",
|
|
32
29
|
"DatePickerInput": "alinea-DatePicker-input",
|
|
30
|
+
"DatePicker-input-segment": "alinea-DatePicker-input-segment",
|
|
31
|
+
"DatePickerInputSegment": "alinea-DatePicker-input-segment",
|
|
33
32
|
"DatePicker-trigger": "alinea-DatePicker-trigger",
|
|
34
33
|
"DatePickerTrigger": "alinea-DatePicker-trigger",
|
|
35
|
-
"Icon": "alinea-Icon"
|
|
34
|
+
"Icon": "alinea-Icon",
|
|
35
|
+
"DatePicker": "alinea-DatePicker"
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
// src/components/DatePicker.tsx
|
|
@@ -25,18 +25,18 @@ import { RangeCalendar } from "./Calendar.js";
|
|
|
25
25
|
|
|
26
26
|
// src/components/DateRangePicker.module.css
|
|
27
27
|
var DateRangePicker_default = {
|
|
28
|
-
"DateRangePicker": "alinea-DateRangePicker",
|
|
29
|
-
"
|
|
30
|
-
"DateRangePickerInputSegment": "alinea-DateRangePicker-input-segment",
|
|
31
|
-
"DateRangePicker-trigger": "alinea-DateRangePicker-trigger",
|
|
32
|
-
"DateRangePickerTrigger": "alinea-DateRangePicker-trigger",
|
|
28
|
+
"DateRangePicker-input": "alinea-DateRangePicker-input",
|
|
29
|
+
"DateRangePickerInput": "alinea-DateRangePicker-input",
|
|
33
30
|
"DateRangePicker-inputs": "alinea-DateRangePicker-inputs",
|
|
34
31
|
"DateRangePickerInputs": "alinea-DateRangePicker-inputs",
|
|
35
|
-
"Icon": "alinea-Icon",
|
|
36
32
|
"DateRangePicker-separator": "alinea-DateRangePicker-separator",
|
|
37
33
|
"DateRangePickerSeparator": "alinea-DateRangePicker-separator",
|
|
38
|
-
"DateRangePicker
|
|
39
|
-
"
|
|
34
|
+
"DateRangePicker": "alinea-DateRangePicker",
|
|
35
|
+
"DateRangePicker-trigger": "alinea-DateRangePicker-trigger",
|
|
36
|
+
"DateRangePickerTrigger": "alinea-DateRangePicker-trigger",
|
|
37
|
+
"DateRangePicker-input-segment": "alinea-DateRangePicker-input-segment",
|
|
38
|
+
"DateRangePickerInputSegment": "alinea-DateRangePicker-input-segment",
|
|
39
|
+
"Icon": "alinea-Icon"
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
// src/components/DateRangePicker.tsx
|
|
@@ -23,19 +23,19 @@ import { Icon } from "./Icon.js";
|
|
|
23
23
|
|
|
24
24
|
// src/components/Disclosure.module.css
|
|
25
25
|
var Disclosure_default = {
|
|
26
|
-
"Disclosure": "alinea-Disclosure",
|
|
27
|
-
"Disclosure-title": "alinea-Disclosure-title",
|
|
28
|
-
"DisclosureTitle": "alinea-Disclosure-title",
|
|
29
|
-
"Disclosure-panel": "alinea-Disclosure-panel",
|
|
30
|
-
"DisclosurePanel": "alinea-Disclosure-panel",
|
|
31
26
|
"Disclosure-panel-content": "alinea-Disclosure-panel-content",
|
|
32
27
|
"DisclosurePanelContent": "alinea-Disclosure-panel-content",
|
|
33
28
|
"Disclosure-chevron": "alinea-Disclosure-chevron",
|
|
34
29
|
"DisclosureChevron": "alinea-Disclosure-chevron",
|
|
30
|
+
"Disclosure-heading": "alinea-Disclosure-heading",
|
|
31
|
+
"DisclosureHeading": "alinea-Disclosure-heading",
|
|
32
|
+
"Disclosure-title": "alinea-Disclosure-title",
|
|
33
|
+
"DisclosureTitle": "alinea-Disclosure-title",
|
|
34
|
+
"Disclosure": "alinea-Disclosure",
|
|
35
35
|
"Disclosure-trigger": "alinea-Disclosure-trigger",
|
|
36
36
|
"DisclosureTrigger": "alinea-Disclosure-trigger",
|
|
37
|
-
"Disclosure-
|
|
38
|
-
"
|
|
37
|
+
"Disclosure-panel": "alinea-Disclosure-panel",
|
|
38
|
+
"DisclosurePanel": "alinea-Disclosure-panel"
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
// src/components/Disclosure.tsx
|
package/dist/components/Label.js
CHANGED
|
@@ -20,15 +20,15 @@ import { IcRoundPublic } from "../dashboard/icons.js";
|
|
|
20
20
|
|
|
21
21
|
// src/components/Label.module.css
|
|
22
22
|
var Label_default = {
|
|
23
|
-
"
|
|
23
|
+
"LabelHeader": "alinea-LabelHeader",
|
|
24
|
+
"LabelRequired": "alinea-LabelRequired",
|
|
24
25
|
"LabelIcon": "alinea-LabelIcon",
|
|
25
|
-
"LabelTitle": "alinea-LabelTitle",
|
|
26
26
|
"LabelStack": "alinea-LabelStack",
|
|
27
|
-
"
|
|
27
|
+
"LabelDescription": "alinea-LabelDescription",
|
|
28
28
|
"LabelInline": "alinea-LabelInline",
|
|
29
29
|
"LabelLabel": "alinea-LabelLabel",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
30
|
+
"LabelError": "alinea-LabelError",
|
|
31
|
+
"LabelTitle": "alinea-LabelTitle"
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
// src/components/Label.tsx
|
|
@@ -41,7 +41,7 @@ export interface ListLabelProps extends Omit<ButtonProps, 'appearance' | 'childr
|
|
|
41
41
|
description?: ReactNode;
|
|
42
42
|
inline?: boolean;
|
|
43
43
|
}
|
|
44
|
-
export declare function ListLabel({ children, expanded, hasRows, shared, showFold, className, description, inline, ...props }: ListLabelProps): import("react").JSX.Element;
|
|
44
|
+
export declare function ListLabel({ children, expanded, hasRows, shared, showFold, className, description, inline, ...props }: ListLabelProps): import("react").JSX.Element | null;
|
|
45
45
|
export interface ListErrorProps extends ComponentPropsWithoutRef<'div'> {
|
|
46
46
|
}
|
|
47
47
|
export declare function ListError({ className, ...props }: ListErrorProps): import("react").JSX.Element;
|
package/dist/components/List.js
CHANGED
|
@@ -6,50 +6,50 @@ import "../chunks/chunk-CQ52GEHY.js";
|
|
|
6
6
|
// src/components/List.module.css
|
|
7
7
|
var List_default = {
|
|
8
8
|
"ListRowActions": "alinea-ListRowActions",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"ListItemDescription": "alinea-ListItemDescription",
|
|
12
|
-
"ListItemTitle": "alinea-ListItemTitle",
|
|
9
|
+
"ListDragPreview-title": "alinea-ListDragPreview-title",
|
|
10
|
+
"ListDragPreviewTitle": "alinea-ListDragPreview-title",
|
|
13
11
|
"ListItem-inner": "alinea-ListItem-inner",
|
|
14
12
|
"ListItemInner": "alinea-ListItem-inner",
|
|
13
|
+
"ListItemStatus": "alinea-ListItemStatus",
|
|
14
|
+
"ListLabel": "alinea-ListLabel",
|
|
15
|
+
"ListRowHeader": "alinea-ListRowHeader",
|
|
16
|
+
"ListCreateRow": "alinea-ListCreateRow",
|
|
15
17
|
"ListItem-content": "alinea-ListItem-content",
|
|
16
18
|
"ListItemContent": "alinea-ListItem-content",
|
|
19
|
+
"ListRowFooter": "alinea-ListRowFooter",
|
|
20
|
+
"ListEmpty": "alinea-ListEmpty",
|
|
21
|
+
"ListDragPreview": "alinea-ListDragPreview",
|
|
22
|
+
"ListRowFoldButton": "alinea-ListRowFoldButton",
|
|
23
|
+
"ListItem-leading": "alinea-ListItem-leading",
|
|
24
|
+
"ListItemLeading": "alinea-ListItem-leading",
|
|
17
25
|
"ListEmpty-content": "alinea-ListEmpty-content",
|
|
18
26
|
"ListEmptyContent": "alinea-ListEmpty-content",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
27
|
+
"ListRow": "alinea-ListRow",
|
|
28
|
+
"ListRowBody": "alinea-ListRowBody",
|
|
29
|
+
"ListRowMeta": "alinea-ListRowMeta",
|
|
22
30
|
"ListItem-header": "alinea-ListItem-header",
|
|
23
31
|
"ListItemHeader": "alinea-ListItem-header",
|
|
24
|
-
"ListRowFoldButton-icon": "alinea-ListRowFoldButton-icon",
|
|
25
|
-
"ListRowFoldButtonIcon": "alinea-ListRowFoldButton-icon",
|
|
26
|
-
"ListRowFoldButton": "alinea-ListRowFoldButton",
|
|
27
|
-
"ListRowMeta": "alinea-ListRowMeta",
|
|
28
|
-
"ListDragPreview-body": "alinea-ListDragPreview-body",
|
|
29
|
-
"ListDragPreviewBody": "alinea-ListDragPreview-body",
|
|
30
|
-
"ListItem": "alinea-ListItem",
|
|
31
32
|
"ListRowDrag": "alinea-ListRowDrag",
|
|
32
|
-
"
|
|
33
|
-
"ListEmptyTitle": "alinea-ListEmpty-title",
|
|
33
|
+
"ListItem": "alinea-ListItem",
|
|
34
34
|
"ListEmpty-description": "alinea-ListEmpty-description",
|
|
35
35
|
"ListEmptyDescription": "alinea-ListEmpty-description",
|
|
36
|
-
"
|
|
36
|
+
"ListDragPreview-body": "alinea-ListDragPreview-body",
|
|
37
|
+
"ListDragPreviewBody": "alinea-ListDragPreview-body",
|
|
38
|
+
"ListItemVisual": "alinea-ListItemVisual",
|
|
37
39
|
"ListItem-trailing": "alinea-ListItem-trailing",
|
|
38
40
|
"ListItemTrailing": "alinea-ListItem-trailing",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
41
|
+
"ListItemDescription": "alinea-ListItemDescription",
|
|
42
|
+
"ListEmpty-title": "alinea-ListEmpty-title",
|
|
43
|
+
"ListEmptyTitle": "alinea-ListEmpty-title",
|
|
44
|
+
"ListRowFoldButton-icon": "alinea-ListRowFoldButton-icon",
|
|
45
|
+
"ListRowFoldButtonIcon": "alinea-ListRowFoldButton-icon",
|
|
46
|
+
"ListItemTitle": "alinea-ListItemTitle",
|
|
47
|
+
"ListRowDragHandle": "alinea-ListRowDragHandle",
|
|
42
48
|
"ListError": "alinea-ListError",
|
|
43
|
-
"ListRowBody": "alinea-ListRowBody",
|
|
44
49
|
"ListRowBadges": "alinea-ListRowBadges",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"ListRowDragHandle": "alinea-ListRowDragHandle",
|
|
48
|
-
"ListEmpty": "alinea-ListEmpty",
|
|
49
|
-
"ListItem-leading": "alinea-ListItem-leading",
|
|
50
|
-
"ListItemLeading": "alinea-ListItem-leading",
|
|
50
|
+
"ListDragPreview-icon": "alinea-ListDragPreview-icon",
|
|
51
|
+
"ListDragPreviewIcon": "alinea-ListDragPreview-icon",
|
|
51
52
|
"ListRowSettings": "alinea-ListRowSettings",
|
|
52
|
-
"ListDragPreview": "alinea-ListDragPreview",
|
|
53
53
|
"ListCreateRow-inner": "alinea-ListCreateRow-inner",
|
|
54
54
|
"ListCreateRowInner": "alinea-ListCreateRow-inner"
|
|
55
55
|
};
|
|
@@ -186,6 +186,7 @@ function ListLabel({
|
|
|
186
186
|
inline = false,
|
|
187
187
|
...props
|
|
188
188
|
}) {
|
|
189
|
+
if (inline && !showFold && !description && !shared) return null;
|
|
189
190
|
return /* @__PURE__ */ jsxs(
|
|
190
191
|
Button,
|
|
191
192
|
{
|
package/dist/components/Menu.js
CHANGED
|
@@ -28,11 +28,11 @@ import { Icon } from "./Icon.js";
|
|
|
28
28
|
|
|
29
29
|
// src/components/Menu.module.css
|
|
30
30
|
var Menu_default = {
|
|
31
|
+
"MenuItem": "alinea-MenuItem",
|
|
31
32
|
"MenuItem-icon": "alinea-MenuItem-icon",
|
|
32
33
|
"MenuItemIcon": "alinea-MenuItem-icon",
|
|
33
|
-
"MenuItem": "alinea-MenuItem",
|
|
34
|
-
"Menu": "alinea-Menu",
|
|
35
34
|
"MenuHeader": "alinea-MenuHeader",
|
|
35
|
+
"Menu": "alinea-Menu",
|
|
36
36
|
"MenuSeparator": "alinea-MenuSeparator"
|
|
37
37
|
};
|
|
38
38
|
|
|
@@ -44,42 +44,42 @@ import { Popover } from "./Popover.js";
|
|
|
44
44
|
|
|
45
45
|
// src/components/MultipleSelect.module.css
|
|
46
46
|
var MultipleSelect_default = {
|
|
47
|
-
"MultipleSelectItem": "alinea-MultipleSelectItem",
|
|
48
|
-
"MultipleSelect-value": "alinea-MultipleSelect-value",
|
|
49
|
-
"MultipleSelectValue": "alinea-MultipleSelect-value",
|
|
50
|
-
"MultipleSelectPopover": "alinea-MultipleSelectPopover",
|
|
51
47
|
"MultipleSelectPopover-search-input": "alinea-MultipleSelectPopover-search-input",
|
|
52
48
|
"MultipleSelectPopoverSearchInput": "alinea-MultipleSelectPopover-search-input",
|
|
53
|
-
"MultipleSelect-
|
|
54
|
-
"
|
|
49
|
+
"MultipleSelect-container": "alinea-MultipleSelect-container",
|
|
50
|
+
"MultipleSelectContainer": "alinea-MultipleSelect-container",
|
|
51
|
+
"MultipleSelect-value": "alinea-MultipleSelect-value",
|
|
52
|
+
"MultipleSelectValue": "alinea-MultipleSelect-value",
|
|
53
|
+
"MultipleSelectPopover-search-field": "alinea-MultipleSelectPopover-search-field",
|
|
54
|
+
"MultipleSelectPopoverSearchField": "alinea-MultipleSelectPopover-search-field",
|
|
55
55
|
"MultipleSelectPopover-search-clear": "alinea-MultipleSelectPopover-search-clear",
|
|
56
56
|
"MultipleSelectPopoverSearchClear": "alinea-MultipleSelectPopover-search-clear",
|
|
57
|
-
"MultipleSelectPopover-search-icon": "alinea-MultipleSelectPopover-search-icon",
|
|
58
|
-
"MultipleSelectPopoverSearchIcon": "alinea-MultipleSelectPopover-search-icon",
|
|
59
|
-
"MultipleSelect-placeholder": "alinea-MultipleSelect-placeholder",
|
|
60
|
-
"MultipleSelectPlaceholder": "alinea-MultipleSelect-placeholder",
|
|
61
57
|
"MultipleSelectPopover-search-clear-icon": "alinea-MultipleSelectPopover-search-clear-icon",
|
|
62
58
|
"MultipleSelectPopoverSearchClearIcon": "alinea-MultipleSelectPopover-search-clear-icon",
|
|
63
|
-
"MultipleSelect-trigger": "alinea-MultipleSelect-trigger",
|
|
64
|
-
"
|
|
65
|
-
"MultipleSelect-
|
|
66
|
-
"
|
|
59
|
+
"MultipleSelect-trigger-icon": "alinea-MultipleSelect-trigger-icon",
|
|
60
|
+
"MultipleSelectTriggerIcon": "alinea-MultipleSelect-trigger-icon",
|
|
61
|
+
"MultipleSelect-select": "alinea-MultipleSelect-select",
|
|
62
|
+
"MultipleSelectSelect": "alinea-MultipleSelect-select",
|
|
63
|
+
"MultipleSelectPopover": "alinea-MultipleSelectPopover",
|
|
64
|
+
"MultipleSelectItem": "alinea-MultipleSelectItem",
|
|
67
65
|
"MultipleSelectItem-check": "alinea-MultipleSelectItem-check",
|
|
68
66
|
"MultipleSelectItemCheck": "alinea-MultipleSelectItem-check",
|
|
69
|
-
"MultipleSelectPopover-search-
|
|
70
|
-
"
|
|
71
|
-
"MultipleSelectPopover-empty": "alinea-MultipleSelectPopover-empty",
|
|
72
|
-
"MultipleSelectPopoverEmpty": "alinea-MultipleSelectPopover-empty",
|
|
67
|
+
"MultipleSelectPopover-search-icon": "alinea-MultipleSelectPopover-search-icon",
|
|
68
|
+
"MultipleSelectPopoverSearchIcon": "alinea-MultipleSelectPopover-search-icon",
|
|
73
69
|
"MultipleSelectPopover-listbox": "alinea-MultipleSelectPopover-listbox",
|
|
74
70
|
"MultipleSelectPopoverListbox": "alinea-MultipleSelectPopover-listbox",
|
|
75
|
-
"MultipleSelect-
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
71
|
+
"MultipleSelect-placeholder": "alinea-MultipleSelect-placeholder",
|
|
72
|
+
"MultipleSelectPlaceholder": "alinea-MultipleSelect-placeholder",
|
|
73
|
+
"MultipleSelectPopover-empty": "alinea-MultipleSelectPopover-empty",
|
|
74
|
+
"MultipleSelectPopoverEmpty": "alinea-MultipleSelectPopover-empty",
|
|
75
|
+
"MultipleSelect-tagGroup": "alinea-MultipleSelect-tagGroup",
|
|
76
|
+
"MultipleSelectTagGroup": "alinea-MultipleSelect-tagGroup",
|
|
81
77
|
"MultipleSelect-tagGroup-tagList": "alinea-MultipleSelect-tagGroup-tagList",
|
|
82
|
-
"MultipleSelectTagGroupTagList": "alinea-MultipleSelect-tagGroup-tagList"
|
|
78
|
+
"MultipleSelectTagGroupTagList": "alinea-MultipleSelect-tagGroup-tagList",
|
|
79
|
+
"MultipleSelect-trigger": "alinea-MultipleSelect-trigger",
|
|
80
|
+
"MultipleSelectTrigger": "alinea-MultipleSelect-trigger",
|
|
81
|
+
"MultipleSelectPopover-search": "alinea-MultipleSelectPopover-search",
|
|
82
|
+
"MultipleSelectPopoverSearch": "alinea-MultipleSelectPopover-search"
|
|
83
83
|
};
|
|
84
84
|
|
|
85
85
|
// src/components/MultipleSelect.tsx
|