alinea 2.0.0-preview.13 → 2.0.0-preview.14
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/.mcp/later/dev.json +1 -1
- package/dist/.mcp/online/dev.json +1 -1
- package/dist/adapter/next/cms.js +6 -2
- package/dist/adapter/next/context.js +1 -4
- package/dist/adapter/next/handler.js +12 -1
- package/dist/backend/CommitEntries.d.ts +17 -0
- package/dist/backend/CommitEntries.js +39 -0
- package/dist/backend/Handler.d.ts +9 -0
- package/dist/backend/Handler.js +80 -20
- package/dist/backend/api/BasicAuth.js +5 -1
- package/dist/backend/api/CreateBackend.js +2 -2
- package/dist/backend/api/DatabaseApi.js +18 -5
- package/dist/backend/api/GithubApi.d.ts +13 -0
- package/dist/backend/api/GithubApi.js +170 -30
- package/dist/backend/api/database.js +2 -2
- package/dist/backend/util/Syncable.d.ts +6 -0
- package/dist/backend/util/Syncable.js +3 -1
- package/dist/bundled.d.ts +911 -151
- package/dist/chunks/{chunk-5H4D5JQL.js → chunk-2PP7WJUJ.js} +1 -11
- package/dist/chunks/{chunk-QHHMKJUO.js → chunk-7DDPSWRY.js} +465 -2
- package/dist/chunks/{chunk-HOETF6HN.js → chunk-PMGIIYDD.js} +1 -0
- package/dist/chunks/{chunk-3QFSGTGF.js → chunk-SCV3TEXM.js} +1 -1
- package/dist/chunks/{chunk-UPY2RUZF.js → chunk-TWBREZWC.js} +30 -0
- package/dist/cli/Generate.js +20 -7
- package/dist/cli/Mcp.js +1 -1
- package/dist/cli/Serve.js +1 -1
- package/dist/cli/bin.js +1 -1
- package/dist/cli/build/BuildEmitter.d.ts +5 -1
- package/dist/cli/build/BuildEmitter.js +8 -3
- package/dist/cli/generate/CompileConfig.js +10 -6
- package/dist/cli/generate/DevDB.d.ts +4 -1
- package/dist/cli/generate/DevDB.js +15 -7
- package/dist/cli/generate/GenerateDashboard.js +1 -0
- package/dist/cli/generate/MediaLocations.d.ts +18 -0
- package/dist/cli/generate/MediaLocations.js +69 -0
- package/dist/cli/serve/CreateLocalServer.js +1 -0
- package/dist/cli/serve/mcp/DevMcp.js +1 -1
- package/dist/cloud/CloudRemote.js +21 -7
- package/dist/cms.d.ts +4 -2
- package/dist/components/Alert.js +2 -2
- package/dist/components/AppShell.js +2 -2
- package/dist/components/AsyncList.d.ts +52 -0
- package/dist/components/AsyncList.js +69 -0
- package/dist/components/Breadcrumbs.js +6 -6
- package/dist/components/Button.js +4 -4
- package/dist/components/Calendar.js +18 -18
- package/dist/components/Checkbox.js +10 -10
- package/dist/components/CheckboxGroup.js +2 -2
- package/dist/components/Collapsible.js +5 -5
- package/dist/components/ColorSwatch.js +2 -2
- package/dist/components/ColorSwatchPicker.js +4 -4
- package/dist/components/ComboBox.d.ts +27 -9
- package/dist/components/ComboBox.js +40 -9
- package/dist/components/Command.js +13 -13
- package/dist/components/ContentCard.js +28 -28
- package/dist/components/ContentGrid.js +11 -11
- package/dist/components/DataList.js +1 -1
- package/dist/components/DateField.d.ts +4 -0
- package/dist/components/DateField.js +2 -2
- package/dist/components/DatePicker.js +2 -2
- package/dist/components/DateRangePicker.js +2 -2
- package/dist/components/Dialog.d.ts +14 -3
- package/dist/components/Dialog.js +38 -11
- package/dist/components/DropZone.js +6 -6
- package/dist/components/DropdownMenu.js +8 -8
- package/dist/components/Empty.js +4 -4
- package/dist/components/Field.d.ts +1 -1
- package/dist/components/Field.js +18 -12
- package/dist/components/Form.d.ts +23 -0
- package/dist/components/Form.js +64 -0
- package/dist/components/Link.d.ts +8 -1
- package/dist/components/List.js +27 -27
- package/dist/components/MediaPreview.js +5 -5
- package/dist/components/MultipleSelect.d.ts +13 -8
- package/dist/components/MultipleSelect.js +25 -25
- package/dist/components/NavRail.js +7 -7
- package/dist/components/NumberField.d.ts +5 -1
- package/dist/components/NumberField.js +6 -4
- package/dist/components/Page.js +6 -6
- package/dist/components/Popover.js +2 -2
- package/dist/components/PreviewFrame.js +8 -8
- package/dist/components/RadioGroup.js +10 -10
- package/dist/components/Resizable.js +1 -1
- package/dist/components/SearchField.js +8 -8
- package/dist/components/Select.d.ts +13 -10
- package/dist/components/Select.js +18 -32
- package/dist/components/Sheet.js +6 -6
- package/dist/components/Sidebar.js +5 -5
- package/dist/components/SortableList.js +12 -12
- package/dist/components/Spinner.js +4 -4
- package/dist/components/Stack.d.ts +20 -0
- package/dist/components/Stack.js +45 -0
- package/dist/components/Surface.js +1 -1
- package/dist/components/Switch.js +5 -5
- package/dist/components/Table.d.ts +11 -1
- package/dist/components/Table.js +81 -53
- package/dist/components/Tabs.js +6 -6
- package/dist/components/TagGroup.js +10 -10
- package/dist/components/TextField.d.ts +7 -1
- package/dist/components/TextField.js +20 -11
- package/dist/components/TimeField.d.ts +6 -1
- package/dist/components/TimeField.js +51 -26
- package/dist/components/Timestamp.js +1 -1
- package/dist/components/ToggleGroup.js +2 -2
- package/dist/components/Toolbar.js +3 -3
- package/dist/components/Tooltip.js +5 -4
- package/dist/components/Tree.js +27 -27
- package/dist/components/internal/DateControl.js +11 -11
- package/dist/components/internal/FormScope.d.ts +2 -0
- package/dist/components/internal/FormScope.js +8 -0
- package/dist/components/internal/ListBoxGroup.d.ts +12 -0
- package/dist/components/internal/ListBoxGroup.js +46 -0
- package/dist/components/internal/ListBoxOption.d.ts +2 -2
- package/dist/components/internal/ListBoxOption.js +5 -5
- package/dist/components/internal/Locale.js +2 -2
- package/dist/components/internal/PopoverSurface.js +5 -4
- package/dist/components/internal/SelectionCheckbox.js +5 -5
- package/dist/components/internal/Slot.js +1 -1
- package/dist/components/internal/ToggleButton.js +4 -4
- package/dist/components/internal/Trigger.js +2 -2
- package/dist/components/internal/useDragDrop.js +2 -2
- package/dist/components/types.d.ts +4 -0
- package/dist/components.d.ts +3 -0
- package/dist/components.js +3 -0
- package/dist/core/Client.js +12 -1
- package/dist/core/Config.d.ts +6 -0
- package/dist/core/Config.js +12 -0
- package/dist/core/DashboardEntry.d.ts +19 -0
- package/dist/core/DashboardEntry.js +0 -0
- package/dist/core/Document.d.ts +2 -2
- package/dist/core/Document.js +10 -3
- package/dist/core/EntryFields.d.ts +8 -2
- package/dist/core/Field.d.ts +5 -0
- package/dist/core/Filter.d.ts +19 -2
- package/dist/core/Filter.js +5 -0
- package/dist/core/Graph.d.ts +10 -2
- package/dist/core/Overview.d.ts +74 -5
- package/dist/core/Overview.js +1 -0
- package/dist/core/Root.js +1 -1
- package/dist/core/Scope.d.ts +5 -0
- package/dist/core/Scope.js +22 -5
- package/dist/core/Type.d.ts +25 -6
- package/dist/core/Type.js +25 -7
- package/dist/core/db/LocalStore.d.ts +7 -0
- package/dist/core/field/CreateField.d.ts +1 -2
- package/dist/core/source/Source.d.ts +2 -0
- package/dist/core/source/Source.js +11 -0
- package/dist/core/util/Async.d.ts +2 -0
- package/dist/core/util/Async.js +12 -1
- package/dist/core/util/Checks.js +1 -1
- package/dist/core/util/Slugs.js +4 -3
- package/dist/dashboard/App.css +13 -11
- package/dist/dashboard/App.d.ts +1 -0
- package/dist/dashboard/App.js +22 -6
- package/dist/dashboard/Href.d.ts +37 -0
- package/dist/dashboard/Href.js +46 -0
- package/dist/dashboard/app/ActivityStatus.js +34 -12
- package/dist/dashboard/app/AuthView.js +2 -2
- package/dist/dashboard/app/BlockSettings.d.ts +9 -0
- package/dist/dashboard/app/BlockSettings.js +16 -0
- package/dist/dashboard/app/BlockSheet.js +3 -3
- package/dist/dashboard/app/BlockSheetStoryFrame.js +2 -2
- package/dist/dashboard/app/CompactField.js +15 -15
- package/dist/dashboard/app/CroppedImage.js +2 -2
- package/dist/dashboard/app/DashboardLayout.d.ts +1 -1
- package/dist/dashboard/app/DashboardLayout.js +12 -0
- package/dist/dashboard/app/EntryActions.d.ts +11 -0
- package/dist/dashboard/app/EntryActions.js +30 -0
- package/dist/dashboard/app/EntryFields.d.ts +15 -2
- package/dist/dashboard/app/EntryFields.js +26 -5
- package/dist/dashboard/app/EntryHeader.js +17 -7
- package/dist/dashboard/app/EntryReferences.js +2 -2
- package/dist/dashboard/app/EntrySidebar.js +25 -23
- package/dist/dashboard/app/EntrySidebarPreview.js +2 -2
- package/dist/dashboard/app/EntryValidationModal.js +3 -3
- package/dist/dashboard/app/Explorer.js +84 -45
- package/dist/dashboard/app/ExplorerBatchActions.js +4 -4
- package/dist/dashboard/app/ExplorerControls.js +5 -5
- package/dist/dashboard/app/ExplorerList.js +2 -2
- package/dist/dashboard/app/ExplorerModal.js +3 -3
- package/dist/dashboard/app/ExplorerOverviewHeader.d.ts +6 -0
- package/dist/dashboard/app/ExplorerOverviewHeader.js +28 -0
- package/dist/dashboard/app/ExplorerTable.js +7 -7
- package/dist/dashboard/app/ExplorerTabs.d.ts +12 -0
- package/dist/dashboard/app/ExplorerTabs.js +42 -0
- package/dist/dashboard/app/ImageEditor.js +31 -31
- package/dist/dashboard/app/LinkPicker.js +3 -3
- package/dist/dashboard/app/LocaleMenu.js +9 -9
- package/dist/dashboard/app/MediaPreviewCell.js +5 -5
- package/dist/dashboard/app/OverviewCell.js +12 -10
- package/dist/dashboard/app/RemoveDialog.js +5 -0
- package/dist/dashboard/app/SearchBar.js +4 -4
- package/dist/dashboard/app/SettingsTab.d.ts +6 -0
- package/dist/dashboard/app/SettingsTab.js +27 -0
- package/dist/dashboard/app/SidebarTree.js +19 -19
- package/dist/dashboard/app/WorkspaceMenu.js +6 -6
- package/dist/dashboard/app/WorkspaceRoots.js +102 -98
- package/dist/dashboard/app/editor/FileEditor.js +18 -18
- package/dist/dashboard/app/pages/EntryPage.js +42 -39
- package/dist/dashboard/app/pages/RootPage.js +3 -3
- package/dist/dashboard/app/pages/SplashPage.js +94 -79
- package/dist/dashboard/app/pages/UsersPage.js +9 -9
- package/dist/dashboard/app/ui/DashboardModal.js +14 -14
- package/dist/dashboard/atoms/activity.d.ts +1 -0
- package/dist/dashboard/atoms/activity.js +8 -5
- package/dist/dashboard/atoms/config.d.ts +2 -0
- package/dist/dashboard/atoms/dashboard.d.ts +11 -0
- package/dist/dashboard/atoms/dashboard.js +8 -0
- package/dist/dashboard/atoms/editor.d.ts +7 -1
- package/dist/dashboard/atoms/editor.js +14 -2
- package/dist/dashboard/atoms/explorer.d.ts +15 -0
- package/dist/dashboard/atoms/explorer.js +43 -14
- package/dist/dashboard/atoms/graph.d.ts +5 -0
- package/dist/dashboard/atoms/graph.js +26 -1
- package/dist/dashboard/atoms/nav.d.ts +16 -10
- package/dist/dashboard/atoms/nav.js +96 -36
- package/dist/dashboard/atoms/overview.d.ts +26 -4
- package/dist/dashboard/atoms/overview.js +41 -12
- package/dist/dashboard/atoms/root.js +7 -1
- package/dist/dashboard/boot/ActivityEvent.d.ts +1 -1
- package/dist/dashboard/boot/Boot.js +6 -0
- package/dist/dashboard/boot/DashboardWorker.d.ts +6 -0
- package/dist/dashboard/boot/DashboardWorker.js +89 -8
- package/dist/dashboard/boot/LoadWorker.js +3 -0
- package/dist/dashboard/boot/SyncEvent.d.ts +7 -0
- package/dist/dashboard/boot/SyncEvent.js +14 -0
- package/dist/dashboard/boot/WorkerDB.d.ts +1 -0
- package/dist/dashboard/boot/WorkerDB.js +3 -0
- package/dist/dashboard/cms/EntryTable.d.ts +4 -3
- package/dist/dashboard/cms/EntryTable.js +2 -2
- package/dist/dashboard/cms/ViewProps.d.ts +3 -2
- package/dist/dashboard/cms/hooks.d.ts +34 -18
- package/dist/dashboard/cms/hooks.js +43 -18
- package/dist/dashboard/contexts.d.ts +3 -2
- package/dist/dashboard/contexts.js +3 -2
- package/dist/dashboard/hook/UseEntryEditor.d.ts +1 -1
- package/dist/dashboard/hook/UseEntryEditor.js +7 -3
- package/dist/dashboard/icons.d.ts +1 -0
- package/dist/dashboard/icons.js +15 -0
- package/dist/database/BrowserEntryStore.js +35 -13
- package/dist/database/DatabaseTables.js +1 -1
- package/dist/database/EntryDatabase.d.ts +10 -1
- package/dist/database/EntryDatabase.js +31 -10
- package/dist/database/EntryStore.js +1 -11
- package/dist/database/entry/EntryTable.d.ts +5 -3
- package/dist/database/entry/EntryTable.js +25 -8
- package/dist/database/query/Condition.d.ts +4 -1
- package/dist/database/query/Condition.js +16 -5
- package/dist/database/query/EntryQuery.js +59 -7
- package/dist/database/query/Relation.d.ts +13 -1
- package/dist/database/query/Relation.js +19 -1
- package/dist/database/query/Search.d.ts +7 -1
- package/dist/database/query/Search.js +54 -9
- package/dist/database/sync/EntrySyncer.d.ts +2 -0
- package/dist/database/sync/EntrySyncer.js +4 -2
- package/dist/database/sync/Ingest.d.ts +2 -1
- package/dist/database/sync/Ingest.js +20 -6
- package/dist/field/code/CodeField.view.js +12 -12
- package/dist/field/link/EntryLink.d.ts +4 -5
- package/dist/field/link/FileLink.d.ts +2 -2
- package/dist/field/link/ImageLink.d.ts +2 -5
- package/dist/field/link/ImageLink.js +0 -1
- package/dist/field/link/LinkField.view.js +18 -15
- package/dist/field/list/ListField.view.js +50 -35
- package/dist/field/metadata/MetadataField.view.js +14 -14
- package/dist/field/richtext/RichTextBlock.js +39 -35
- package/dist/field/richtext/RichTextExtensions.js +23 -23
- package/dist/field/richtext/RichTextField.view.js +6 -6
- package/dist/field/richtext/RichTextInsertMenu.js +5 -5
- package/dist/field/richtext/RichTextToolbar.js +26 -1
- package/dist/field/richtext/Toolbar.d.ts +9 -1
- package/dist/field/richtext/Toolbar.js +12 -2
- package/dist/field/select/SelectField.view.js +1 -0
- package/dist/index.css +174 -23
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/next.d.ts +2 -0
- package/dist/next.edge.d.ts +2 -0
- package/dist/picker/entry/EntryPicker.d.ts +3 -1
- package/dist/picker/entry/EntryPicker.js +15 -1
- package/dist/preview/react.js +3 -0
- package/dist/query.d.ts +26 -14
- package/dist/query.js +4 -0
- package/dist/types.d.ts +8 -5
- package/dist/ui/Stack.d.ts +4 -2
- package/docs/ai-setup.md +3 -3
- package/docs/cli.md +4 -2
- package/docs/components/combo-box.md +105 -16
- package/docs/components/date-field.md +1 -1
- package/docs/components/dialog.md +51 -0
- package/docs/components/form.md +67 -0
- package/docs/components/link.md +10 -0
- package/docs/components/multiple-select.md +9 -17
- package/docs/components/number-field.md +5 -1
- package/docs/components/select.md +9 -20
- package/docs/components/stack.md +42 -0
- package/docs/components/table.md +83 -0
- package/docs/components/text-field.md +9 -1
- package/docs/components/time-field.md +5 -1
- package/docs/components.md +39 -1
- package/docs/configuration.md +3 -1
- package/docs/custom-fields.md +135 -7
- package/docs/deploy/self-host.md +2 -0
- package/docs/deploy.md +7 -4
- package/docs/fields/image.md +0 -1
- package/docs/fields/list.md +19 -0
- package/docs/fields/object.md +5 -3
- package/docs/fields/rich-text.md +31 -0
- package/docs/index.md +8 -6
- package/docs/instant-publishing.md +23 -2
- package/docs/overviews.md +128 -4
- package/docs/query/filtering.md +2 -0
- package/docs/query/related.md +58 -9
- package/docs/query.md +52 -1
- package/docs/quickstart.md +5 -5
- package/docs/schema/document.md +2 -0
- package/docs/schema/type.md +3 -1
- package/docs/upgrading.md +100 -19
- package/llms-full.txt +1022 -125
- package/package.json +1 -1
- package/readme.md +2 -2
- package/dist/chunks/{chunk-4ZA6KZHS.js → chunk-6FQ5IMNA.js} +3 -3
package/dist/cli/bin.js
CHANGED
|
@@ -220,7 +220,7 @@ var lib_default2 = (e, t2) => new o(e, t2);
|
|
|
220
220
|
// package.json
|
|
221
221
|
var package_default = {
|
|
222
222
|
name: "alinea",
|
|
223
|
-
version: "2.0.0-preview.
|
|
223
|
+
version: "2.0.0-preview.14",
|
|
224
224
|
description: "Open source, Git-based headless CMS for Next.js",
|
|
225
225
|
keywords: [
|
|
226
226
|
"cms",
|
|
@@ -7,4 +7,8 @@ export type BuildInfo = {
|
|
|
7
7
|
type: 'done';
|
|
8
8
|
result: BuildResult;
|
|
9
9
|
};
|
|
10
|
-
export
|
|
10
|
+
export interface BuildEmitterOptions {
|
|
11
|
+
/** Rebuild on changes, otherwise build once and stop esbuild */
|
|
12
|
+
watch?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildEmitter(config: BuildOptions, { watch }?: BuildEmitterOptions): Emitter<BuildInfo>;
|
|
@@ -3,7 +3,7 @@ import "../../chunks/chunk-CQ52GEHY.js";
|
|
|
3
3
|
// src/cli/build/BuildEmitter.ts
|
|
4
4
|
import esbuild from "esbuild";
|
|
5
5
|
import { createEmitter } from "../util/Emitter.js";
|
|
6
|
-
function buildEmitter(config) {
|
|
6
|
+
function buildEmitter(config, { watch = true } = {}) {
|
|
7
7
|
let context;
|
|
8
8
|
let canceled = false;
|
|
9
9
|
const results = createEmitter({
|
|
@@ -26,9 +26,14 @@ function buildEmitter(config) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
]
|
|
29
|
-
}).then((ctx) => {
|
|
29
|
+
}).then(async (ctx) => {
|
|
30
30
|
context = ctx;
|
|
31
|
-
if (
|
|
31
|
+
if (canceled) return ctx.dispose();
|
|
32
|
+
if (watch) return ctx.watch();
|
|
33
|
+
await ctx.rebuild().catch(() => {
|
|
34
|
+
});
|
|
35
|
+
context = void 0;
|
|
36
|
+
await ctx.dispose();
|
|
32
37
|
}, results.throw);
|
|
33
38
|
return results;
|
|
34
39
|
}
|
|
@@ -36,12 +36,15 @@ async function* compileConfig(ctx) {
|
|
|
36
36
|
const { outDir, configLocation, cmd } = ctx;
|
|
37
37
|
const config = buildConfig(ctx);
|
|
38
38
|
const location = path.relative(process.cwd(), configLocation).replace(/\\/g, "/");
|
|
39
|
-
const builds = buildEmitter(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
const builds = buildEmitter(
|
|
40
|
+
{
|
|
41
|
+
...config,
|
|
42
|
+
outdir: outDir,
|
|
43
|
+
entryPoints: { config: configLocation },
|
|
44
|
+
sourcemap: true
|
|
45
|
+
},
|
|
46
|
+
{ watch: cmd === "dev" }
|
|
47
|
+
);
|
|
45
48
|
const halt = (error) => {
|
|
46
49
|
reportError(error);
|
|
47
50
|
if (cmd === "dev") return;
|
|
@@ -51,6 +54,7 @@ async function* compileConfig(ctx) {
|
|
|
51
54
|
if (type !== "done") continue;
|
|
52
55
|
if (result.errors.length) {
|
|
53
56
|
reportFatal(`Could not compile Alinea config file @ ${location}`);
|
|
57
|
+
if (cmd === "build") process.exit(1);
|
|
54
58
|
continue;
|
|
55
59
|
}
|
|
56
60
|
try {
|
|
@@ -33,7 +33,10 @@ export declare class DevDB extends EntryStore {
|
|
|
33
33
|
*/
|
|
34
34
|
reconfigure(options: Pick<DevDBOptions, 'config' | 'configFingerprint' | 'dashboardUrl'>): Promise<void>;
|
|
35
35
|
sync(): Promise<string>;
|
|
36
|
-
|
|
36
|
+
/** Compact the database, rewriting it in full for a build. */
|
|
37
|
+
finalize(options?: {
|
|
38
|
+
rewrite?: boolean;
|
|
39
|
+
}): Promise<number>;
|
|
37
40
|
fix(): Promise<void>;
|
|
38
41
|
watchFiles(): Promise<WatchFiles>;
|
|
39
42
|
isInMediaLocation(file: string): boolean;
|
|
@@ -18,6 +18,7 @@ import { slugify } from "alinea/core/util/Slugs";
|
|
|
18
18
|
import { EntryDatabase } from "alinea/database/EntryDatabase";
|
|
19
19
|
import { EntryStore } from "alinea/database/EntryStore";
|
|
20
20
|
import { runtimeDatabase } from "alinea/database/driver/RuntimeDatabase";
|
|
21
|
+
import { remoteLocations } from "./MediaLocations.js";
|
|
21
22
|
var DevDB = class _DevDB extends EntryStore {
|
|
22
23
|
#options;
|
|
23
24
|
/** The revision the persisted source file stats were recorded for. */
|
|
@@ -99,8 +100,9 @@ var DevDB = class _DevDB extends EntryStore {
|
|
|
99
100
|
}
|
|
100
101
|
return revision;
|
|
101
102
|
}
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
/** Compact the database, rewriting it in full for a build. */
|
|
104
|
+
async finalize(options = {}) {
|
|
105
|
+
await this.database.compact(options);
|
|
104
106
|
return (await fsp.stat(this.#options.databasePath)).size;
|
|
105
107
|
}
|
|
106
108
|
async fix() {
|
|
@@ -115,15 +117,21 @@ var DevDB = class _DevDB extends EntryStore {
|
|
|
115
117
|
seeded: Entry.seeded
|
|
116
118
|
}
|
|
117
119
|
});
|
|
118
|
-
const
|
|
119
|
-
(
|
|
120
|
+
const local = new Map(
|
|
121
|
+
(await remoteLocations(this.#options.rootDir, this)).filter((file) => file.local !== void 0).map((file) => [`${file.id}:${file.locale}:${file.status}`, file.local])
|
|
122
|
+
);
|
|
123
|
+
const mutations = entries.filter((entry) => !entry.seeded).map((entry) => {
|
|
124
|
+
const location = local.get(
|
|
125
|
+
`${entry.id}:${entry.locale}:${entry.status}`
|
|
126
|
+
);
|
|
127
|
+
return {
|
|
120
128
|
op: "update",
|
|
121
129
|
id: entry.id,
|
|
122
130
|
locale: entry.locale,
|
|
123
131
|
status: entry.status,
|
|
124
|
-
set: entry.data
|
|
125
|
-
}
|
|
126
|
-
);
|
|
132
|
+
set: location ? { ...entry.data, location } : entry.data
|
|
133
|
+
};
|
|
134
|
+
});
|
|
127
135
|
if (!mutations.length) return;
|
|
128
136
|
const planned = await this.request(mutations);
|
|
129
137
|
const batch = sourceChanges(planned);
|
|
@@ -112,6 +112,7 @@ async function generateDashboard({ configLocation, rootDir, configDir }, cms, ha
|
|
|
112
112
|
path.join(rootDir, staticFile),
|
|
113
113
|
code`
|
|
114
114
|
<!DOCTYPE html>
|
|
115
|
+
<html data-alinea-theme>
|
|
115
116
|
<meta charset="utf-8" />
|
|
116
117
|
<link rel="icon" href="data:," />
|
|
117
118
|
<link href="${baseUrl}/entry.css?${buildId}" rel="stylesheet" />
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type EntryStatus } from 'alinea/core/Entry';
|
|
2
|
+
import type { EntryStore } from 'alinea/database/EntryStore';
|
|
3
|
+
export interface RemoteLocation {
|
|
4
|
+
id: string;
|
|
5
|
+
locale: string | null;
|
|
6
|
+
status: EntryStatus;
|
|
7
|
+
workspace: string;
|
|
8
|
+
/** The content file of the media entry */
|
|
9
|
+
file: string;
|
|
10
|
+
location: string;
|
|
11
|
+
/** The location of the one file with the same name in the mediaDir */
|
|
12
|
+
local?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Media entries whose location is a url. Only the 1.x dashboard wrote those
|
|
16
|
+
* (upload urls belong in previewUrl), they can't be served from the site.
|
|
17
|
+
*/
|
|
18
|
+
export declare function remoteLocations(rootDir: string, db: EntryStore): Promise<Array<RemoteLocation>>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import "../../chunks/chunk-CQ52GEHY.js";
|
|
2
|
+
|
|
3
|
+
// src/cli/generate/MediaLocations.ts
|
|
4
|
+
import * as fsp from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { Config } from "alinea/core/Config";
|
|
7
|
+
import { Entry } from "alinea/core/Entry";
|
|
8
|
+
import { MediaLocation } from "alinea/core/media/MediaLocation";
|
|
9
|
+
import { MediaFile } from "alinea/core/media/MediaTypes";
|
|
10
|
+
import { basename, join } from "alinea/core/util/Paths";
|
|
11
|
+
async function remoteLocations(rootDir, db) {
|
|
12
|
+
const { config } = db;
|
|
13
|
+
const files = await db.find({
|
|
14
|
+
type: MediaFile,
|
|
15
|
+
status: "all",
|
|
16
|
+
select: {
|
|
17
|
+
id: Entry.id,
|
|
18
|
+
locale: Entry.locale,
|
|
19
|
+
status: Entry.versionStatus,
|
|
20
|
+
workspace: Entry.workspace,
|
|
21
|
+
filePath: Entry.filePath,
|
|
22
|
+
location: MediaFile.location
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const remote = files.filter(
|
|
26
|
+
(file) => typeof file.location === "string" && /^https?:\/\//i.test(file.location)
|
|
27
|
+
);
|
|
28
|
+
const listings = /* @__PURE__ */ new Map();
|
|
29
|
+
const result = Array();
|
|
30
|
+
for (const file of remote) {
|
|
31
|
+
const mediaDir = MediaLocation.directory(config, file.workspace);
|
|
32
|
+
let listing = listings.get(mediaDir);
|
|
33
|
+
if (!listing)
|
|
34
|
+
listings.set(mediaDir, listing = listFiles(join(rootDir, mediaDir)));
|
|
35
|
+
const name = fileName(file.location);
|
|
36
|
+
const matches = (await listing).filter((path2) => basename(path2) === name);
|
|
37
|
+
result.push({
|
|
38
|
+
id: file.id,
|
|
39
|
+
locale: file.locale,
|
|
40
|
+
status: file.status,
|
|
41
|
+
workspace: file.workspace,
|
|
42
|
+
file: join(Config.contentDir(config), file.filePath),
|
|
43
|
+
location: file.location,
|
|
44
|
+
local: matches.length === 1 ? MediaLocation.entryLocation(
|
|
45
|
+
config,
|
|
46
|
+
file.workspace,
|
|
47
|
+
join(mediaDir, matches[0])
|
|
48
|
+
) : void 0
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
function fileName(url) {
|
|
54
|
+
const { pathname } = new URL(url);
|
|
55
|
+
try {
|
|
56
|
+
return decodeURIComponent(basename(pathname));
|
|
57
|
+
} catch {
|
|
58
|
+
return basename(pathname);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function listFiles(dir) {
|
|
62
|
+
const entries = await fsp.readdir(dir, { recursive: true, withFileTypes: true }).catch(() => []);
|
|
63
|
+
return entries.filter((entry) => entry.isFile()).map(
|
|
64
|
+
(entry) => path.relative(dir, path.join(entry.parentPath, entry.name)).split(path.sep).join("/")
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
remoteLocations
|
|
69
|
+
};
|
|
@@ -285,6 +285,7 @@ function createLocalServer({
|
|
|
285
285
|
const path2 = url.pathname.endsWith("/") ? url.pathname : `${url.pathname}/`;
|
|
286
286
|
return new Response(
|
|
287
287
|
`<!DOCTYPE html>
|
|
288
|
+
<html data-alinea-theme>
|
|
288
289
|
<meta charset="utf-8" />
|
|
289
290
|
<base href="${path2}" />
|
|
290
291
|
<link rel="icon" href="data:," />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
package_default
|
|
3
|
-
} from "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-SCV3TEXM.js";
|
|
4
4
|
import "../chunks/chunk-CQ52GEHY.js";
|
|
5
5
|
|
|
6
6
|
// src/cloud/CloudRemote.ts
|
|
@@ -55,7 +55,7 @@ var CloudRemote = class extends OAuth2 {
|
|
|
55
55
|
const ctx = this.#context;
|
|
56
56
|
if (!validApiKey(ctx.apiKey)) return;
|
|
57
57
|
return parseOutcome(
|
|
58
|
-
|
|
58
|
+
read(
|
|
59
59
|
cloudConfig.tree,
|
|
60
60
|
json({
|
|
61
61
|
method: "POST",
|
|
@@ -72,7 +72,7 @@ var CloudRemote = class extends OAuth2 {
|
|
|
72
72
|
}
|
|
73
73
|
async *getBlobs(shas, options = {}) {
|
|
74
74
|
const ctx = this.#context;
|
|
75
|
-
const response = await
|
|
75
|
+
const response = await read(cloudConfig.blobs, {
|
|
76
76
|
method: "POST",
|
|
77
77
|
body: JSON.stringify({ shas }),
|
|
78
78
|
signal: options.signal,
|
|
@@ -223,7 +223,7 @@ var CloudRemote = class extends OAuth2 {
|
|
|
223
223
|
if (!validApiKey(ctx.apiKey)) return;
|
|
224
224
|
const { entryId, locale } = parseDraftKey(draftKey);
|
|
225
225
|
const data = await parseOutcome(
|
|
226
|
-
|
|
226
|
+
read(`${cloudConfig.drafts}/${draftKey}`, json({ headers: bearer(ctx) }))
|
|
227
227
|
);
|
|
228
228
|
return data?.update ? {
|
|
229
229
|
entryId,
|
|
@@ -252,7 +252,7 @@ var CloudRemote = class extends OAuth2 {
|
|
|
252
252
|
revisions(file) {
|
|
253
253
|
const ctx = this.#context;
|
|
254
254
|
return parseOutcome(
|
|
255
|
-
|
|
255
|
+
read(
|
|
256
256
|
`${cloudConfig.history}?${new URLSearchParams({ file })}`,
|
|
257
257
|
json({ headers: bearer(ctx) })
|
|
258
258
|
)
|
|
@@ -261,7 +261,7 @@ var CloudRemote = class extends OAuth2 {
|
|
|
261
261
|
revisionData(file, revisionId) {
|
|
262
262
|
const ctx = this.#context;
|
|
263
263
|
return parseOutcome(
|
|
264
|
-
|
|
264
|
+
read(
|
|
265
265
|
`${cloudConfig.history}?${new URLSearchParams({ file, ref: revisionId })}`,
|
|
266
266
|
json({ headers: bearer(ctx) })
|
|
267
267
|
)
|
|
@@ -273,7 +273,7 @@ var CloudRemote = class extends OAuth2 {
|
|
|
273
273
|
listUsers() {
|
|
274
274
|
const ctx = this.#context;
|
|
275
275
|
return parseOutcome(
|
|
276
|
-
|
|
276
|
+
read(cloudConfig.users, json({ headers: bearer(ctx) }))
|
|
277
277
|
);
|
|
278
278
|
}
|
|
279
279
|
createUser(user) {
|
|
@@ -315,6 +315,20 @@ var CloudRemote = class extends OAuth2 {
|
|
|
315
315
|
);
|
|
316
316
|
}
|
|
317
317
|
};
|
|
318
|
+
var readTimeout = 3e4;
|
|
319
|
+
async function read(url, init) {
|
|
320
|
+
const controller = new AbortController();
|
|
321
|
+
const timer = setTimeout(() => {
|
|
322
|
+
const message = `No response from ${url} within ${readTimeout / 1e3}s`;
|
|
323
|
+
controller.abort(new HttpError(504, message));
|
|
324
|
+
}, readTimeout);
|
|
325
|
+
const signal = init.signal ? AbortSignal.any([init.signal, controller.signal]) : controller.signal;
|
|
326
|
+
try {
|
|
327
|
+
return await fetch(url, { ...init, signal });
|
|
328
|
+
} finally {
|
|
329
|
+
clearTimeout(timer);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
318
332
|
function validApiKey(apiKey) {
|
|
319
333
|
return Boolean(apiKey?.startsWith("alineapk"));
|
|
320
334
|
}
|
package/dist/cms.d.ts
CHANGED
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
export { useField, useFieldError, useFieldKey, useFieldOptions, useFieldSetter, useFieldValue, useSiblingFieldValue } from './dashboard/cms/hooks.js';
|
|
11
|
-
export {
|
|
11
|
+
export { useEntry, useGraph, useLocale, useNavigate, usePolicy, usePreviewMetadata, useUser } from './dashboard/cms/hooks.js';
|
|
12
|
+
export type { DashboardEntry, EntryActionProps } from './core/DashboardEntry.js';
|
|
13
|
+
export type { DashboardLocation } from './dashboard/Href.js';
|
|
12
14
|
export type { Policy } from './core/Role.js';
|
|
13
15
|
export type { PreviewMetadata } from './core/Preview.js';
|
|
14
16
|
export type { User } from './core/User.js';
|
|
15
17
|
export { EditField, type EditFieldProps, EditFields, type EditFieldsProps } from './dashboard/app/EntryFields.js';
|
|
16
18
|
export { FieldChrome, type FieldChromeProps } from './dashboard/cms/FieldChrome.js';
|
|
17
19
|
export { EntryTable, type EntryTableProps } from './dashboard/cms/EntryTable.js';
|
|
18
|
-
export type { OverviewActionProps, OverviewCellProps, OverviewEntry } from './core/Overview.js';
|
|
20
|
+
export type { OverviewActionProps, OverviewCellProps, OverviewEntry, OverviewHeaderProps } from './core/Overview.js';
|
|
19
21
|
export type { FieldViewProps, RootViewProps, SectionViewProps, TypeViewProps } from './dashboard/cms/ViewProps.js';
|
package/dist/components/Alert.js
CHANGED
|
@@ -5,12 +5,12 @@ import "../chunks/chunk-CQ52GEHY.js";
|
|
|
5
5
|
|
|
6
6
|
// src/components/Alert.module.css
|
|
7
7
|
var Alert_default = {
|
|
8
|
+
"AlertActions": "alinea-AlertActions",
|
|
8
9
|
"Alert": "alinea-Alert",
|
|
9
10
|
"AlertTitle": "alinea-AlertTitle",
|
|
10
|
-
"AlertDescription": "alinea-AlertDescription",
|
|
11
11
|
"Alert-icon": "alinea-Alert-icon",
|
|
12
12
|
"AlertIcon": "alinea-Alert-icon",
|
|
13
|
-
"
|
|
13
|
+
"AlertDescription": "alinea-AlertDescription"
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
// src/components/Alert.tsx
|
|
@@ -5,8 +5,8 @@ import "../chunks/chunk-CQ52GEHY.js";
|
|
|
5
5
|
|
|
6
6
|
// src/components/AppShell.module.css
|
|
7
7
|
var AppShell_default = {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"AppShell": "alinea-AppShell",
|
|
9
|
+
"AppShellContent": "alinea-AppShellContent"
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
// src/components/AppShell.tsx
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Key, Selection, SortDescriptor } from './types.js';
|
|
2
|
+
export interface AsyncListLoadOptions<C> {
|
|
3
|
+
/** Aborted when a newer load replaces this one */
|
|
4
|
+
signal: AbortSignal;
|
|
5
|
+
/** The cursor returned by the previous page, set when loading more */
|
|
6
|
+
cursor?: C;
|
|
7
|
+
filterText: string;
|
|
8
|
+
sort?: SortDescriptor;
|
|
9
|
+
}
|
|
10
|
+
export interface AsyncListPage<T, C> {
|
|
11
|
+
items: Iterable<T>;
|
|
12
|
+
/** Where the next page starts, leave out when there are no more items */
|
|
13
|
+
cursor?: C | null;
|
|
14
|
+
}
|
|
15
|
+
export interface AsyncListOptions<T, C> {
|
|
16
|
+
load(options: AsyncListLoadOptions<C>): Promise<AsyncListPage<T, C>>;
|
|
17
|
+
initialSort?: SortDescriptor;
|
|
18
|
+
initialFilterText?: string;
|
|
19
|
+
initialSelectedKeys?: Iterable<Key>;
|
|
20
|
+
/** The key of an item, defaults to its `id` or `key` property */
|
|
21
|
+
getKey?: (item: T) => Key;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Items loaded page by page. Its fields plug into Table (`items`,
|
|
25
|
+
* `sortDescriptor`/`onSortChange`, `loading`, `onLoadMore`, `selectedKeys`/
|
|
26
|
+
* `onSelectionChange`) and ComboBox (`inputValue`/`onInputValueChange`,
|
|
27
|
+
* `loading`).
|
|
28
|
+
*/
|
|
29
|
+
export interface AsyncList<T> {
|
|
30
|
+
items: Array<T>;
|
|
31
|
+
/** True while loading the first page, the next page, sorting or filtering */
|
|
32
|
+
loading: boolean;
|
|
33
|
+
/** The error the last load failed with */
|
|
34
|
+
error?: Error;
|
|
35
|
+
/** Whether the last page returned a cursor */
|
|
36
|
+
hasMore: boolean;
|
|
37
|
+
loadMore(): void;
|
|
38
|
+
reload(): void;
|
|
39
|
+
/** Replaces an item, eg. after saving it, without loading the list again */
|
|
40
|
+
update(key: Key, item: T | ((previous: T) => T)): void;
|
|
41
|
+
remove(...keys: Array<Key>): void;
|
|
42
|
+
prepend(...items: Array<T>): void;
|
|
43
|
+
append(...items: Array<T>): void;
|
|
44
|
+
sortDescriptor?: SortDescriptor;
|
|
45
|
+
sort(descriptor: SortDescriptor): void;
|
|
46
|
+
filterText: string;
|
|
47
|
+
setFilterText(text: string): void;
|
|
48
|
+
selectedKeys: Selection;
|
|
49
|
+
setSelectedKeys(keys: Selection): void;
|
|
50
|
+
}
|
|
51
|
+
/** Loads a list of items, with sorting, filtering and paging */
|
|
52
|
+
export declare function useAsyncList<T, C = string>({ load, initialSort, initialFilterText, initialSelectedKeys, getKey }: AsyncListOptions<T, C>): AsyncList<T>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
$c73d3f3d5ec90946$export$bc3384a35de93d66
|
|
3
|
+
} from "../chunks/chunk-7DDPSWRY.js";
|
|
4
|
+
import "../chunks/chunk-NUFRM6SI.js";
|
|
5
|
+
import "../chunks/chunk-PMGIIYDD.js";
|
|
6
|
+
import "../chunks/chunk-RKDPDEF7.js";
|
|
7
|
+
import "../chunks/chunk-PSSMQKAH.js";
|
|
8
|
+
import "../chunks/chunk-CQ52GEHY.js";
|
|
9
|
+
|
|
10
|
+
// src/components/AsyncList.ts
|
|
11
|
+
import { useState } from "react";
|
|
12
|
+
function toAria(sort) {
|
|
13
|
+
if (!sort) return void 0;
|
|
14
|
+
const direction = sort.direction === "asc" ? "ascending" : "descending";
|
|
15
|
+
return { column: sort.column, direction };
|
|
16
|
+
}
|
|
17
|
+
function fromAria(sort) {
|
|
18
|
+
if (!sort) return void 0;
|
|
19
|
+
return {
|
|
20
|
+
column: sort.column,
|
|
21
|
+
direction: sort.direction === "ascending" ? "asc" : "desc"
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function useAsyncList({
|
|
25
|
+
load,
|
|
26
|
+
initialSort,
|
|
27
|
+
initialFilterText,
|
|
28
|
+
initialSelectedKeys,
|
|
29
|
+
getKey
|
|
30
|
+
}) {
|
|
31
|
+
const [hasMore, setHasMore] = useState(false);
|
|
32
|
+
const list = $c73d3f3d5ec90946$export$bc3384a35de93d66({
|
|
33
|
+
initialSortDescriptor: toAria(initialSort),
|
|
34
|
+
initialFilterText,
|
|
35
|
+
initialSelectedKeys,
|
|
36
|
+
getKey,
|
|
37
|
+
async load({ signal, cursor, filterText = "", sortDescriptor }) {
|
|
38
|
+
const page = await load({
|
|
39
|
+
signal,
|
|
40
|
+
cursor,
|
|
41
|
+
filterText,
|
|
42
|
+
sort: fromAria(sortDescriptor)
|
|
43
|
+
});
|
|
44
|
+
if (!signal.aborted) setHasMore(page.cursor != null);
|
|
45
|
+
return { items: page.items, cursor: page.cursor ?? void 0 };
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
items: list.items,
|
|
50
|
+
loading: list.isLoading,
|
|
51
|
+
error: list.error,
|
|
52
|
+
hasMore,
|
|
53
|
+
loadMore: list.loadMore,
|
|
54
|
+
reload: list.reload,
|
|
55
|
+
update: list.update,
|
|
56
|
+
remove: list.remove,
|
|
57
|
+
prepend: list.prepend,
|
|
58
|
+
append: list.append,
|
|
59
|
+
sortDescriptor: fromAria(list.sortDescriptor),
|
|
60
|
+
sort: (descriptor) => list.sort(toAria(descriptor)),
|
|
61
|
+
filterText: list.filterText,
|
|
62
|
+
setFilterText: list.setFilterText,
|
|
63
|
+
selectedKeys: list.selectedKeys,
|
|
64
|
+
setSelectedKeys: (keys) => list.setSelectedKeys(keys === "all" ? keys : new Set(keys))
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
useAsyncList
|
|
69
|
+
};
|
|
@@ -9,15 +9,15 @@ import { IcRoundChevronRight, IcRoundMoreHoriz } from "alinea/dashboard/icons";
|
|
|
9
9
|
// src/components/Breadcrumbs.module.css
|
|
10
10
|
var Breadcrumbs_default = {
|
|
11
11
|
"BreadcrumbLink": "alinea-BreadcrumbLink",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"BreadcrumbSeparatorIcon": "alinea-BreadcrumbSeparator-icon",
|
|
12
|
+
"BreadcrumbEllipsis-icon": "alinea-BreadcrumbEllipsis-icon",
|
|
13
|
+
"BreadcrumbEllipsisIcon": "alinea-BreadcrumbEllipsis-icon",
|
|
15
14
|
"BreadcrumbList": "alinea-BreadcrumbList",
|
|
15
|
+
"BreadcrumbItem": "alinea-BreadcrumbItem",
|
|
16
16
|
"BreadcrumbEllipsis": "alinea-BreadcrumbEllipsis",
|
|
17
17
|
"BreadcrumbSeparator": "alinea-BreadcrumbSeparator",
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
18
|
+
"BreadcrumbPage": "alinea-BreadcrumbPage",
|
|
19
|
+
"BreadcrumbSeparator-icon": "alinea-BreadcrumbSeparator-icon",
|
|
20
|
+
"BreadcrumbSeparatorIcon": "alinea-BreadcrumbSeparator-icon"
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
// src/components/Breadcrumbs.tsx
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$7705c033048f6da7$export$353f5b6fc5456de1
|
|
3
|
-
} from "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-7DDPSWRY.js";
|
|
4
4
|
import "../chunks/chunk-NUFRM6SI.js";
|
|
5
|
-
import "../chunks/chunk-
|
|
5
|
+
import "../chunks/chunk-PMGIIYDD.js";
|
|
6
6
|
import "../chunks/chunk-RKDPDEF7.js";
|
|
7
7
|
import "../chunks/chunk-PSSMQKAH.js";
|
|
8
8
|
import {
|
|
@@ -18,9 +18,9 @@ import {
|
|
|
18
18
|
|
|
19
19
|
// src/components/Button.module.css
|
|
20
20
|
var Button_default = {
|
|
21
|
+
"Button": "alinea-Button",
|
|
21
22
|
"Button-icon": "alinea-Button-icon",
|
|
22
|
-
"ButtonIcon": "alinea-Button-icon"
|
|
23
|
-
"Button": "alinea-Button"
|
|
23
|
+
"ButtonIcon": "alinea-Button-icon"
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
// src/components/Button.tsx
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
$6f9a1820b787aac7$export$e11f8ba65d857bff,
|
|
10
10
|
$6f9a1820b787aac7$export$e1aef45b828286de,
|
|
11
11
|
$7705c033048f6da7$export$353f5b6fc5456de1
|
|
12
|
-
} from "../chunks/chunk-
|
|
12
|
+
} from "../chunks/chunk-7DDPSWRY.js";
|
|
13
13
|
import "../chunks/chunk-NUFRM6SI.js";
|
|
14
14
|
import {
|
|
15
15
|
$2eb8e6d23f3d0cb0$export$43bb16f9c6d9e3f7
|
|
16
|
-
} from "../chunks/chunk-
|
|
16
|
+
} from "../chunks/chunk-PMGIIYDD.js";
|
|
17
17
|
import "../chunks/chunk-RKDPDEF7.js";
|
|
18
18
|
import {
|
|
19
19
|
$ad063034c8620db8$export$2061056d06d7cdf7
|
|
@@ -32,33 +32,33 @@ import { Locale } from "./internal/Locale.js";
|
|
|
32
32
|
|
|
33
33
|
// src/components/Calendar.module.css
|
|
34
34
|
var Calendar_default = {
|
|
35
|
+
"is-weekStart": "alinea-is-weekStart",
|
|
36
|
+
"isWeekStart": "alinea-is-weekStart",
|
|
37
|
+
"is-weekEnd": "alinea-is-weekEnd",
|
|
38
|
+
"isWeekEnd": "alinea-is-weekEnd",
|
|
39
|
+
"Calendar-nav": "alinea-Calendar-nav",
|
|
40
|
+
"CalendarNav": "alinea-Calendar-nav",
|
|
35
41
|
"Calendar-day": "alinea-Calendar-day",
|
|
36
42
|
"CalendarDay": "alinea-Calendar-day",
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"Calendar-heading": "alinea-Calendar-heading",
|
|
40
|
-
"CalendarHeading": "alinea-Calendar-heading",
|
|
43
|
+
"is-rangeEnd": "alinea-is-rangeEnd",
|
|
44
|
+
"isRangeEnd": "alinea-is-rangeEnd",
|
|
41
45
|
"is-today": "alinea-is-today",
|
|
42
46
|
"isToday": "alinea-is-today",
|
|
43
|
-
"is-weekStart": "alinea-is-weekStart",
|
|
44
|
-
"isWeekStart": "alinea-is-weekStart",
|
|
45
47
|
"Calendar": "alinea-Calendar",
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
+
"Calendar-heading": "alinea-Calendar-heading",
|
|
49
|
+
"CalendarHeading": "alinea-Calendar-heading",
|
|
48
50
|
"is-selected": "alinea-is-selected",
|
|
49
51
|
"isSelected": "alinea-is-selected",
|
|
50
|
-
"is-rangeEnd": "alinea-is-rangeEnd",
|
|
51
|
-
"isRangeEnd": "alinea-is-rangeEnd",
|
|
52
52
|
"Calendar-grid": "alinea-Calendar-grid",
|
|
53
53
|
"CalendarGrid": "alinea-Calendar-grid",
|
|
54
|
-
"is-unavailable": "alinea-is-unavailable",
|
|
55
|
-
"isUnavailable": "alinea-is-unavailable",
|
|
56
|
-
"Calendar-weekday": "alinea-Calendar-weekday",
|
|
57
|
-
"CalendarWeekday": "alinea-Calendar-weekday",
|
|
58
54
|
"is-rangeStart": "alinea-is-rangeStart",
|
|
59
55
|
"isRangeStart": "alinea-is-rangeStart",
|
|
60
|
-
"Calendar-
|
|
61
|
-
"
|
|
56
|
+
"Calendar-header": "alinea-Calendar-header",
|
|
57
|
+
"CalendarHeader": "alinea-Calendar-header",
|
|
58
|
+
"Calendar-weekday": "alinea-Calendar-weekday",
|
|
59
|
+
"CalendarWeekday": "alinea-Calendar-weekday",
|
|
60
|
+
"is-unavailable": "alinea-is-unavailable",
|
|
61
|
+
"isUnavailable": "alinea-is-unavailable"
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
// src/components/Calendar.tsx
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$ed8ccb2e23e76301$export$48513f6b9f8ce62d,
|
|
3
3
|
$efe09c6d1c304b50$export$9afb8bc826b033ea
|
|
4
|
-
} from "../chunks/chunk-
|
|
4
|
+
} from "../chunks/chunk-7DDPSWRY.js";
|
|
5
5
|
import "../chunks/chunk-NUFRM6SI.js";
|
|
6
|
-
import "../chunks/chunk-
|
|
6
|
+
import "../chunks/chunk-PMGIIYDD.js";
|
|
7
7
|
import "../chunks/chunk-RKDPDEF7.js";
|
|
8
8
|
import "../chunks/chunk-PSSMQKAH.js";
|
|
9
9
|
import {
|
|
@@ -16,17 +16,17 @@ import { useId } from "react";
|
|
|
16
16
|
|
|
17
17
|
// src/components/Checkbox.module.css
|
|
18
18
|
var Checkbox_default = {
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"Checkbox-label": "alinea-Checkbox-label",
|
|
22
|
-
"CheckboxLabel": "alinea-Checkbox-label",
|
|
23
|
-
"Checkbox-mark": "alinea-Checkbox-mark",
|
|
24
|
-
"CheckboxMark": "alinea-Checkbox-mark",
|
|
19
|
+
"is-focusVisible": "alinea-is-focusVisible",
|
|
20
|
+
"isFocusVisible": "alinea-is-focusVisible",
|
|
25
21
|
"Checkbox": "alinea-Checkbox",
|
|
26
22
|
"Checkbox-box": "alinea-Checkbox-box",
|
|
27
23
|
"CheckboxBox": "alinea-Checkbox-box",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
24
|
+
"Checkbox-mark": "alinea-Checkbox-mark",
|
|
25
|
+
"CheckboxMark": "alinea-Checkbox-mark",
|
|
26
|
+
"Checkbox-content": "alinea-Checkbox-content",
|
|
27
|
+
"CheckboxContent": "alinea-Checkbox-content",
|
|
28
|
+
"Checkbox-label": "alinea-Checkbox-label",
|
|
29
|
+
"CheckboxLabel": "alinea-Checkbox-label"
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
// src/components/Checkbox.tsx
|