alinea 2.0.0-preview.11 → 2.0.0-preview.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/.init/content/pages/welcome.json +1 -1
  2. package/dist/.mcp/later/dev.json +1 -1
  3. package/dist/.mcp/online/dev.json +1 -1
  4. package/dist/bundled.d.ts +53 -10
  5. package/dist/chunks/{chunk-YCQR5GRT.js → chunk-OHGAVV4G.js} +1 -1
  6. package/dist/cli/Mcp.js +1 -1
  7. package/dist/cli/Serve.js +1 -1
  8. package/dist/cli/bin.js +1 -1
  9. package/dist/cli/generate/GenerateDashboard.js +17 -5
  10. package/dist/cli/serve/mcp/DevMcp.js +1 -1
  11. package/dist/cli/static/dashboard/entry.js +2 -1
  12. package/dist/cloud/CloudRemote.js +1 -1
  13. package/dist/components/Alert.js +3 -3
  14. package/dist/components/Badge.js +2 -2
  15. package/dist/components/Breadcrumbs.js +6 -6
  16. package/dist/components/Button.js +2 -2
  17. package/dist/components/Calendar.js +17 -17
  18. package/dist/components/Checkbox.js +7 -7
  19. package/dist/components/Code.js +2 -2
  20. package/dist/components/Collapsible.js +2 -2
  21. package/dist/components/ComboBox.js +8 -8
  22. package/dist/components/Command.js +10 -10
  23. package/dist/components/ContentCard.js +21 -21
  24. package/dist/components/ContentGrid.js +10 -10
  25. package/dist/components/DataList.js +2 -2
  26. package/dist/components/Dialog.js +6 -6
  27. package/dist/components/DropZone.js +4 -4
  28. package/dist/components/DropdownMenu.js +7 -7
  29. package/dist/components/Empty.js +4 -4
  30. package/dist/components/Field.js +7 -7
  31. package/dist/components/List.js +21 -21
  32. package/dist/components/MediaPreview.js +4 -4
  33. package/dist/components/MultipleSelect.js +20 -20
  34. package/dist/components/NavRail.js +4 -4
  35. package/dist/components/NumberField.js +3 -3
  36. package/dist/components/Page.js +3 -3
  37. package/dist/components/PreviewFrame.js +6 -6
  38. package/dist/components/RadioGroup.js +7 -7
  39. package/dist/components/Resizable.js +1 -1
  40. package/dist/components/SearchField.js +3 -3
  41. package/dist/components/Select.js +11 -11
  42. package/dist/components/Sidebar.js +4 -4
  43. package/dist/components/SortableList.js +17 -17
  44. package/dist/components/Spinner.js +2 -2
  45. package/dist/components/Surface.js +3 -3
  46. package/dist/components/Switch.js +5 -5
  47. package/dist/components/Table.js +40 -40
  48. package/dist/components/Tabs.js +2 -2
  49. package/dist/components/TagGroup.js +6 -6
  50. package/dist/components/TextField.js +7 -7
  51. package/dist/components/TimeField.js +5 -5
  52. package/dist/components/Toolbar.js +2 -2
  53. package/dist/components/Tooltip.js +2 -2
  54. package/dist/components/Tree.js +27 -27
  55. package/dist/components/internal/DateControl.js +6 -6
  56. package/dist/components/internal/ListBoxOption.js +10 -10
  57. package/dist/components/internal/PopoverSurface.js +2 -2
  58. package/dist/components/internal/SelectionCheckbox.js +4 -4
  59. package/dist/dashboard/app/ActivityStatus.js +12 -12
  60. package/dist/dashboard/app/AuthView.js +4 -4
  61. package/dist/dashboard/app/CompactField.js +17 -17
  62. package/dist/dashboard/app/CroppedImage.js +2 -2
  63. package/dist/dashboard/app/DashboardErrorBoundary.js +3 -3
  64. package/dist/dashboard/app/EntryFields.js +2 -2
  65. package/dist/dashboard/app/EntryHeader.js +6 -6
  66. package/dist/dashboard/app/EntryReferences.js +4 -4
  67. package/dist/dashboard/app/EntrySidebar.js +13 -13
  68. package/dist/dashboard/app/EntrySidebarPreview.js +2 -2
  69. package/dist/dashboard/app/EntryValidationModal.js +3 -3
  70. package/dist/dashboard/app/Explorer.js +32 -32
  71. package/dist/dashboard/app/ExplorerBatchActions.js +2 -2
  72. package/dist/dashboard/app/ExplorerControls.js +6 -6
  73. package/dist/dashboard/app/ExplorerList.js +4 -4
  74. package/dist/dashboard/app/ExplorerModal.js +3 -3
  75. package/dist/dashboard/app/ExplorerTable.js +7 -7
  76. package/dist/dashboard/app/ImageEditor.js +29 -29
  77. package/dist/dashboard/app/LinkPicker.js +3 -3
  78. package/dist/dashboard/app/LocaleMenu.js +6 -6
  79. package/dist/dashboard/app/MediaPreviewCell.js +2 -2
  80. package/dist/dashboard/app/OverviewCell.js +9 -9
  81. package/dist/dashboard/app/PendingUploadsView.js +3 -3
  82. package/dist/dashboard/app/SidebarTree.js +19 -19
  83. package/dist/dashboard/app/WorkspaceMenu.js +7 -7
  84. package/dist/dashboard/app/WorkspaceRoots.js +9 -9
  85. package/dist/dashboard/app/editor/FileEditor.js +18 -18
  86. package/dist/dashboard/app/modals/CreateEntry.js +2 -2
  87. package/dist/dashboard/app/pages/EntryPage.js +8 -8
  88. package/dist/dashboard/app/pages/SplashPage.js +35 -35
  89. package/dist/dashboard/app/pages/UsersPage.js +12 -12
  90. package/dist/dashboard/app/ui/DashboardModal.js +15 -15
  91. package/dist/dashboard/boot/BootProd.d.ts +6 -1
  92. package/dist/dashboard/boot/BootProd.js +2 -2
  93. package/dist/dashboard/boot/DashboardWorker.js +51 -15
  94. package/dist/dashboard/cms/EntryTable.js +2 -2
  95. package/dist/database/BrowserEntryStore.d.ts +47 -9
  96. package/dist/database/BrowserEntryStore.js +137 -66
  97. package/dist/field/check/CheckField.view.js +2 -2
  98. package/dist/field/code/CodeField.view.js +13 -13
  99. package/dist/field/link/LinkField.view.js +34 -34
  100. package/dist/field/list/ListField.view.js +2 -2
  101. package/dist/field/metadata/MetadataField.view.js +17 -17
  102. package/dist/field/richtext/RichTextBlock.js +2 -2
  103. package/dist/field/richtext/RichTextExtensions.js +26 -26
  104. package/dist/field/richtext/RichTextField.view.js +1 -1
  105. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "_id": "3KHB2PydgBPbUsKveWcaGSXkqjV",
2
+ "_id": "3KPEwd5jxca0cmXOExux5RBSXpo",
3
3
  "_type": "Page",
4
4
  "_index": "a0",
5
5
  "_seeded": "welcome.json",
@@ -1 +1 @@
1
- {"url":"http://localhost:1","pid":3065}
1
+ {"url":"http://localhost:1","pid":2819}
@@ -1 +1 @@
1
- {"url":"http://localhost:38409","pid":3065}
1
+ {"url":"http://localhost:40589","pid":2819}
package/dist/bundled.d.ts CHANGED
@@ -12017,7 +12017,12 @@ declare module 'alinea/dashboard/boot/BootProd' {
12017
12017
 
12018
12018
  import type { CMS } from 'alinea/core/CMS';
12019
12019
  import type { ComponentType } from 'react';
12020
- export function bootProd(handlerUrl: string, cms: CMS, views: Record<string, ComponentType>): Promise<void>;
12020
+ /**
12021
+ * Boot a built dashboard. Its build id is a hash of the built files, which
12022
+ * the page passes in the script URL, so that a deploy that leaves the
12023
+ * dashboard unchanged keeps its shared worker and the tabs it serves.
12024
+ */
12025
+ export function bootProd(handlerUrl: string, cms: CMS, views: Record<string, ComponentType>, buildId?: string): Promise<void>;
12021
12026
 
12022
12027
  }
12023
12028
 
@@ -13031,22 +13036,57 @@ declare module 'alinea/database/BrowserEntryStore' {
13031
13036
  name: string;
13032
13037
  revision: string;
13033
13038
  /**
13034
- * The store this one replaces, such as one of a previous dashboard build:
13035
- * its content carries over from memory instead of loading it again, and it
13036
- * stops storing without waiting for its work in flight.
13039
+ * Start over from an empty database instead of the stored one, such as
13040
+ * when it turned out to be corrupt.
13037
13041
  */
13038
- replaces?: BrowserEntryStore;
13042
+ reset?: boolean;
13039
13043
  /** The IndexedDB implementation, the global one by default. */
13040
13044
  indexedDB?: IDBFactory;
13041
13045
  IDBKeyRange?: typeof IDBKeyRange;
13046
+ /** The Web Locks implementation, the global one by default. */
13047
+ locks?: CacheLocks;
13042
13048
  }
13049
+ /** The part of the Web Locks API that keeps a cache to one worker. */
13050
+ export interface CacheLocks {
13051
+ request(name: string, options: {
13052
+ ifAvailable?: boolean;
13053
+ signal?: AbortSignal;
13054
+ }, callback: (lock: Lock | null) => Promise<void> | void): Promise<unknown>;
13055
+ }
13056
+ export interface HoldCacheOptions {
13057
+ /**
13058
+ * How long to wait, in milliseconds, for another worker that holds the
13059
+ * cache to end: none by default, Infinity until it does.
13060
+ */
13061
+ wait?: number;
13062
+ /** The Web Locks implementation, the global one by default. */
13063
+ locks?: CacheLocks;
13064
+ }
13065
+ /**
13066
+ * Hold the cache called `name` for as long as this worker runs, and resolve
13067
+ * with whether it does. Nothing coordinates two stores writing the same
13068
+ * pages, which corrupts them, so only the worker that holds the cache opens
13069
+ * it; another one, such as one of another dashboard build, reads a
13070
+ * snapshot. Without Web Locks, or if they refuse, no worker holds it.
13071
+ */
13072
+ export function holdCache(name: string, options?: HoldCacheOptions): Promise<boolean>;
13043
13073
  /**
13044
13074
  * WASM entry store kept in IndexedDB: every commit stores the pages it
13045
13075
  * changed.
13046
13076
  */
13047
13077
  export class BrowserEntryStore extends EntryStore {
13048
13078
  #private;
13049
- static open(config: Config, options: BrowserEntryStoreOptions, retried?: boolean): Promise<BrowserEntryStore>;
13079
+ /**
13080
+ * Open the store kept in IndexedDB. Only the worker that holds the cache
13081
+ * opens it (see `holdCache`), and deletes the caches of other versions.
13082
+ */
13083
+ static open(config: Config, options: BrowserEntryStoreOptions): Promise<BrowserEntryStore>;
13084
+ /**
13085
+ * A copy in memory of the stored content, for a worker that cannot store
13086
+ * it while another one does: it loads the last committed state and never
13087
+ * writes. Resolves with undefined if that state cannot be read.
13088
+ */
13089
+ static snapshot(config: Config, options: BrowserEntryStoreOptions): Promise<EntryStore | undefined>;
13050
13090
  private constructor();
13051
13091
  /**
13052
13092
  * Opening, and syncing, resolve once the content is in memory: storing it
@@ -13061,13 +13101,16 @@ declare module 'alinea/database/BrowserEntryStore' {
13061
13101
  write(request: CommitRequest): Promise<{
13062
13102
  sha: string;
13063
13103
  }>;
13064
- close(): Promise<void>;
13065
13104
  /**
13066
- * Close a store that a replacement took over from: its work in flight
13067
- * changes only its memory copy, which is not stored.
13105
+ * Stop storing, and resolve once the commits so far are stored, for a
13106
+ * replacement to open the cache. Work in flight then changes only this
13107
+ * store's memory, so the replacement need not wait for it.
13068
13108
  */
13069
- abandon(): Promise<void>;
13109
+ release(): Promise<void>;
13110
+ close(): Promise<void>;
13070
13111
  }
13112
+ /** Whether an error, or one it holds, reports a damaged SQLite database. */
13113
+ export function isCorruptDatabaseError(error: unknown): boolean;
13071
13114
 
13072
13115
  }
13073
13116
 
@@ -1,7 +1,7 @@
1
1
  // package.json with { type: 'json' }
2
2
  var package_default = {
3
3
  name: "alinea",
4
- version: "2.0.0-preview.11",
4
+ version: "2.0.0-preview.12",
5
5
  description: "Open source, Git-based headless CMS for Next.js",
6
6
  keywords: [
7
7
  "cms",
package/dist/cli/Mcp.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-YCQR5GRT.js";
3
+ } from "../chunks/chunk-OHGAVV4G.js";
4
4
  import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cli/Mcp.ts
package/dist/cli/Serve.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-YCQR5GRT.js";
3
+ } from "../chunks/chunk-OHGAVV4G.js";
4
4
  import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cli/Serve.ts
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.11",
223
+ version: "2.0.0-preview.12",
224
224
  description: "Open source, Git-based headless CMS for Next.js",
225
225
  keywords: [
226
226
  "cms",
@@ -52,10 +52,10 @@ var require_escape_html = __commonJS({
52
52
 
53
53
  // src/cli/generate/GenerateDashboard.ts
54
54
  var import_escape_html = __toESM(require_escape_html(), 1);
55
+ import { createHash } from "node:crypto";
55
56
  import fs from "node:fs";
56
57
  import path from "node:path";
57
58
  import { writeFileIfContentsDiffer } from "alinea/cli/util/FS";
58
- import { createId } from "alinea/core/Id";
59
59
  import { code } from "alinea/core/util/CodeGen";
60
60
  import esbuild from "esbuild";
61
61
  import { buildOptions } from "../build/BuildOptions.js";
@@ -67,7 +67,6 @@ async function generateDashboard({ configLocation, rootDir, configDir }, cms, ha
67
67
  throw new Error(
68
68
  "The staticFile option in config.dashboard must point to an .html file (include the extension)"
69
69
  );
70
- const buildId = createId();
71
70
  const entryPoints = {
72
71
  entry: "alinea/cli/static/dashboard/entry"
73
72
  };
@@ -76,7 +75,7 @@ async function generateDashboard({ configLocation, rootDir, configDir }, cms, ha
76
75
  const tsconfigLocation = path.join(rootDir, "tsconfig.json");
77
76
  const tsconfig = fs.existsSync(tsconfigLocation) ? tsconfigLocation : void 0;
78
77
  const plugins = [viewsPlugin(rootDir, cms), ignorePlugin];
79
- await esbuild.build({
78
+ const result = await esbuild.build({
80
79
  format: "esm",
81
80
  target: "esnext",
82
81
  treeShaking: true,
@@ -94,7 +93,6 @@ async function generateDashboard({ configLocation, rootDir, configDir }, cms, ha
94
93
  external: ["@alinea/generated"],
95
94
  define: {
96
95
  "process.env.NODE_ENV": '"production"',
97
- "process.env.ALINEA_BUILD_ID": JSON.stringify(buildId),
98
96
  "process.env.ALINEA_CONFIG_FINGERPRINT": JSON.stringify(configFingerprint),
99
97
  "process.env.ALINEA_FORCE_AUTH": "true",
100
98
  ...publicDefines(process.env)
@@ -102,8 +100,13 @@ async function generateDashboard({ configLocation, rootDir, configDir }, cms, ha
102
100
  ...buildOptions,
103
101
  plugins,
104
102
  tsconfig,
105
- logLevel: "error"
103
+ logLevel: "error",
104
+ metafile: true
106
105
  });
106
+ const buildId = await buildHash(
107
+ configDir,
108
+ Object.keys(result.metafile.outputs)
109
+ );
107
110
  const baseUrl = `./${(0, import_escape_html.default)(basename)}`;
108
111
  await writeFileIfContentsDiffer(
109
112
  path.join(rootDir, staticFile),
@@ -124,6 +127,15 @@ async function generateDashboard({ configLocation, rootDir, configDir }, cms, ha
124
127
  `.toString()
125
128
  );
126
129
  }
130
+ async function buildHash(workingDir, outputs) {
131
+ const hash = createHash("sha256");
132
+ for (const output of outputs.toSorted()) {
133
+ hash.update(`${path.basename(output)}
134
+ `);
135
+ hash.update(await fs.promises.readFile(path.join(workingDir, output)));
136
+ }
137
+ return hash.digest("hex").slice(0, 16);
138
+ }
127
139
  export {
128
140
  generateDashboard
129
141
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../../../chunks/chunk-YCQR5GRT.js";
3
+ } from "../../../chunks/chunk-OHGAVV4G.js";
4
4
  import "../../../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cli/serve/mcp/DevMcp.ts
@@ -5,5 +5,6 @@ import {views} from '#alinea/views'
5
5
 
6
6
  const params = new URL(import.meta.url).searchParams
7
7
  const handlerUrl = params.get('handlerUrl')
8
+ const buildId = params.get('buildId')
8
9
 
9
- bootProd(handlerUrl, cms, views)
10
+ bootProd(handlerUrl, cms, views, buildId)
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-YCQR5GRT.js";
3
+ } from "../chunks/chunk-OHGAVV4G.js";
4
4
  import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cloud/CloudRemote.ts
@@ -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",
9
- "AlertTitle": "alinea-AlertTitle",
10
8
  "Alert": "alinea-Alert",
11
9
  "AlertDescription": "alinea-AlertDescription",
12
10
  "Alert-icon": "alinea-Alert-icon",
13
- "AlertIcon": "alinea-Alert-icon"
11
+ "AlertIcon": "alinea-Alert-icon",
12
+ "AlertActions": "alinea-AlertActions",
13
+ "AlertTitle": "alinea-AlertTitle"
14
14
  };
15
15
 
16
16
  // src/components/Alert.tsx
@@ -7,9 +7,9 @@ import "../chunks/chunk-CQ52GEHY.js";
7
7
  var Badge_default = {
8
8
  "Badge-label": "alinea-Badge-label",
9
9
  "BadgeLabel": "alinea-Badge-label",
10
- "Badge": "alinea-Badge",
11
10
  "Badge-icon": "alinea-Badge-icon",
12
- "BadgeIcon": "alinea-Badge-icon"
11
+ "BadgeIcon": "alinea-Badge-icon",
12
+ "Badge": "alinea-Badge"
13
13
  };
14
14
 
15
15
  // src/components/Badge.tsx
@@ -8,16 +8,16 @@ import { IcRoundChevronRight, IcRoundMoreHoriz } from "alinea/dashboard/icons";
8
8
 
9
9
  // src/components/Breadcrumbs.module.css
10
10
  var Breadcrumbs_default = {
11
- "BreadcrumbSeparator": "alinea-BreadcrumbSeparator",
12
- "BreadcrumbSeparator-icon": "alinea-BreadcrumbSeparator-icon",
13
- "BreadcrumbSeparatorIcon": "alinea-BreadcrumbSeparator-icon",
14
- "BreadcrumbItem": "alinea-BreadcrumbItem",
15
11
  "BreadcrumbPage": "alinea-BreadcrumbPage",
16
- "BreadcrumbList": "alinea-BreadcrumbList",
17
12
  "BreadcrumbLink": "alinea-BreadcrumbLink",
13
+ "BreadcrumbList": "alinea-BreadcrumbList",
18
14
  "BreadcrumbEllipsis-icon": "alinea-BreadcrumbEllipsis-icon",
19
15
  "BreadcrumbEllipsisIcon": "alinea-BreadcrumbEllipsis-icon",
20
- "BreadcrumbEllipsis": "alinea-BreadcrumbEllipsis"
16
+ "BreadcrumbItem": "alinea-BreadcrumbItem",
17
+ "BreadcrumbEllipsis": "alinea-BreadcrumbEllipsis",
18
+ "BreadcrumbSeparator-icon": "alinea-BreadcrumbSeparator-icon",
19
+ "BreadcrumbSeparatorIcon": "alinea-BreadcrumbSeparator-icon",
20
+ "BreadcrumbSeparator": "alinea-BreadcrumbSeparator"
21
21
  };
22
22
 
23
23
  // src/components/Breadcrumbs.tsx
@@ -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
@@ -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
- "Calendar": "alinea-Calendar",
36
- "is-rangeEnd": "alinea-is-rangeEnd",
37
- "isRangeEnd": "alinea-is-rangeEnd",
35
+ "is-selected": "alinea-is-selected",
36
+ "isSelected": "alinea-is-selected",
38
37
  "Calendar-header": "alinea-Calendar-header",
39
38
  "CalendarHeader": "alinea-Calendar-header",
40
- "Calendar-nav": "alinea-Calendar-nav",
41
- "CalendarNav": "alinea-Calendar-nav",
42
- "Calendar-grid": "alinea-Calendar-grid",
43
- "CalendarGrid": "alinea-Calendar-grid",
44
- "Calendar-weekday": "alinea-Calendar-weekday",
45
- "CalendarWeekday": "alinea-Calendar-weekday",
46
- "Calendar-day": "alinea-Calendar-day",
47
- "CalendarDay": "alinea-Calendar-day",
39
+ "Calendar": "alinea-Calendar",
40
+ "is-today": "alinea-is-today",
41
+ "isToday": "alinea-is-today",
48
42
  "is-unavailable": "alinea-is-unavailable",
49
43
  "isUnavailable": "alinea-is-unavailable",
50
44
  "is-rangeStart": "alinea-is-rangeStart",
51
45
  "isRangeStart": "alinea-is-rangeStart",
52
- "Calendar-heading": "alinea-Calendar-heading",
53
- "CalendarHeading": "alinea-Calendar-heading",
54
- "is-selected": "alinea-is-selected",
55
- "isSelected": "alinea-is-selected",
46
+ "Calendar-grid": "alinea-Calendar-grid",
47
+ "CalendarGrid": "alinea-Calendar-grid",
48
+ "is-rangeEnd": "alinea-is-rangeEnd",
49
+ "isRangeEnd": "alinea-is-rangeEnd",
56
50
  "is-weekStart": "alinea-is-weekStart",
57
51
  "isWeekStart": "alinea-is-weekStart",
58
52
  "is-weekEnd": "alinea-is-weekEnd",
59
53
  "isWeekEnd": "alinea-is-weekEnd",
60
- "is-today": "alinea-is-today",
61
- "isToday": "alinea-is-today"
54
+ "Calendar-day": "alinea-Calendar-day",
55
+ "CalendarDay": "alinea-Calendar-day",
56
+ "Calendar-heading": "alinea-Calendar-heading",
57
+ "CalendarHeading": "alinea-Calendar-heading",
58
+ "Calendar-nav": "alinea-Calendar-nav",
59
+ "CalendarNav": "alinea-Calendar-nav",
60
+ "Calendar-weekday": "alinea-Calendar-weekday",
61
+ "CalendarWeekday": "alinea-Calendar-weekday"
62
62
  };
63
63
 
64
64
  // src/components/Calendar.tsx
@@ -16,17 +16,17 @@ import { useId } from "react";
16
16
 
17
17
  // src/components/Checkbox.module.css
18
18
  var Checkbox_default = {
19
+ "Checkbox-content": "alinea-Checkbox-content",
20
+ "CheckboxContent": "alinea-Checkbox-content",
21
+ "Checkbox-mark": "alinea-Checkbox-mark",
22
+ "CheckboxMark": "alinea-Checkbox-mark",
19
23
  "Checkbox": "alinea-Checkbox",
24
+ "Checkbox-label": "alinea-Checkbox-label",
25
+ "CheckboxLabel": "alinea-Checkbox-label",
20
26
  "is-focusVisible": "alinea-is-focusVisible",
21
27
  "isFocusVisible": "alinea-is-focusVisible",
22
- "Checkbox-mark": "alinea-Checkbox-mark",
23
- "CheckboxMark": "alinea-Checkbox-mark",
24
- "Checkbox-content": "alinea-Checkbox-content",
25
- "CheckboxContent": "alinea-Checkbox-content",
26
28
  "Checkbox-box": "alinea-Checkbox-box",
27
- "CheckboxBox": "alinea-Checkbox-box",
28
- "Checkbox-label": "alinea-Checkbox-label",
29
- "CheckboxLabel": "alinea-Checkbox-label"
29
+ "CheckboxBox": "alinea-Checkbox-box"
30
30
  };
31
31
 
32
32
  // src/components/Checkbox.tsx
@@ -5,8 +5,8 @@ import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/components/Code.module.css
7
7
  var Code_default = {
8
- "Code": "alinea-Code",
9
- "CodeBlock": "alinea-CodeBlock"
8
+ "CodeBlock": "alinea-CodeBlock",
9
+ "Code": "alinea-Code"
10
10
  };
11
11
 
12
12
  // src/components/Code.tsx
@@ -18,9 +18,9 @@ var Collapsible_default = {
18
18
  "CollapsibleTriggerTitle": "alinea-CollapsibleTrigger-title",
19
19
  "CollapsibleTrigger-icon": "alinea-CollapsibleTrigger-icon",
20
20
  "CollapsibleTriggerIcon": "alinea-CollapsibleTrigger-icon",
21
+ "CollapsibleTrigger": "alinea-CollapsibleTrigger",
21
22
  "Collapsible": "alinea-Collapsible",
22
- "CollapsibleContent": "alinea-CollapsibleContent",
23
- "CollapsibleTrigger": "alinea-CollapsibleTrigger"
23
+ "CollapsibleContent": "alinea-CollapsibleContent"
24
24
  };
25
25
 
26
26
  // src/components/Collapsible.tsx
@@ -24,18 +24,18 @@ import { IcRoundClose, IcRoundKeyboardArrowDown } from "alinea/dashboard/icons";
24
24
 
25
25
  // src/components/ComboBox.module.css
26
26
  var ComboBox_default = {
27
- "ComboBoxTrigger-arrow": "alinea-ComboBoxTrigger-arrow",
28
- "ComboBoxTriggerArrow": "alinea-ComboBoxTrigger-arrow",
27
+ "ComboBoxTrigger-input": "alinea-ComboBoxTrigger-input",
28
+ "ComboBoxTriggerInput": "alinea-ComboBoxTrigger-input",
29
29
  "ComboBoxContent-list": "alinea-ComboBoxContent-list",
30
30
  "ComboBoxContentList": "alinea-ComboBoxContent-list",
31
- "ComboBoxTrigger-action": "alinea-ComboBoxTrigger-action",
32
- "ComboBoxTriggerAction": "alinea-ComboBoxTrigger-action",
33
- "ComboBoxTrigger": "alinea-ComboBoxTrigger",
34
31
  "ComboBoxContent-empty": "alinea-ComboBoxContent-empty",
35
32
  "ComboBoxContentEmpty": "alinea-ComboBoxContent-empty",
36
- "ComboBoxTrigger-input": "alinea-ComboBoxTrigger-input",
37
- "ComboBoxTriggerInput": "alinea-ComboBoxTrigger-input",
38
- "ComboBox": "alinea-ComboBox"
33
+ "ComboBox": "alinea-ComboBox",
34
+ "ComboBoxTrigger": "alinea-ComboBoxTrigger",
35
+ "ComboBoxTrigger-action": "alinea-ComboBoxTrigger-action",
36
+ "ComboBoxTriggerAction": "alinea-ComboBoxTrigger-action",
37
+ "ComboBoxTrigger-arrow": "alinea-ComboBoxTrigger-arrow",
38
+ "ComboBoxTriggerArrow": "alinea-ComboBoxTrigger-arrow"
39
39
  };
40
40
 
41
41
  // src/components/ComboBox.tsx
@@ -27,23 +27,23 @@ import { IcRoundSearch } from "alinea/dashboard/icons";
27
27
 
28
28
  // src/components/Command.module.css
29
29
  var Command_default = {
30
- "is-focusVisible": "alinea-is-focusVisible",
31
- "isFocusVisible": "alinea-is-focusVisible",
30
+ "CommandInput": "alinea-CommandInput",
31
+ "Command": "alinea-Command",
32
+ "is-highlighted": "alinea-is-highlighted",
33
+ "isHighlighted": "alinea-is-highlighted",
32
34
  "CommandList": "alinea-CommandList",
35
+ "CommandEmpty": "alinea-CommandEmpty",
33
36
  "CommandGroup-heading": "alinea-CommandGroup-heading",
34
37
  "CommandGroupHeading": "alinea-CommandGroup-heading",
35
- "CommandEmpty": "alinea-CommandEmpty",
36
- "CommandGroup": "alinea-CommandGroup",
37
- "CommandItem": "alinea-CommandItem",
38
- "CommandInput": "alinea-CommandInput",
38
+ "is-focusVisible": "alinea-is-focusVisible",
39
+ "isFocusVisible": "alinea-is-focusVisible",
39
40
  "CommandItem-icon": "alinea-CommandItem-icon",
40
41
  "CommandItemIcon": "alinea-CommandItem-icon",
41
- "Command": "alinea-Command",
42
42
  "CommandItem-label": "alinea-CommandItem-label",
43
43
  "CommandItemLabel": "alinea-CommandItem-label",
44
- "is-highlighted": "alinea-is-highlighted",
45
- "isHighlighted": "alinea-is-highlighted",
46
- "CommandSeparator": "alinea-CommandSeparator"
44
+ "CommandItem": "alinea-CommandItem",
45
+ "CommandSeparator": "alinea-CommandSeparator",
46
+ "CommandGroup": "alinea-CommandGroup"
47
47
  };
48
48
 
49
49
  // src/components/Command.tsx
@@ -12,39 +12,39 @@ import {
12
12
 
13
13
  // src/components/ContentCard.module.css
14
14
  var ContentCard_default = {
15
- "ContentCard-body": "alinea-ContentCard-body",
16
- "ContentCardBody": "alinea-ContentCard-body",
17
- "ContentCard-pulse": "alinea-ContentCard-pulse",
18
- "ContentCardPulse": "alinea-ContentCard-pulse",
15
+ "ContentCard-media": "alinea-ContentCard-media",
16
+ "ContentCardMedia": "alinea-ContentCard-media",
19
17
  "is-breadcrumbs": "alinea-is-breadcrumbs",
20
18
  "isBreadcrumbs": "alinea-is-breadcrumbs",
19
+ "ContentCard-skeleton": "alinea-ContentCard-skeleton",
20
+ "ContentCardSkeleton": "alinea-ContentCard-skeleton",
21
+ "is-icon": "alinea-is-icon",
22
+ "isIcon": "alinea-is-icon",
23
+ "ContentCard": "alinea-ContentCard",
24
+ "ContentCard-description-text": "alinea-ContentCard-description-text",
25
+ "ContentCardDescriptionText": "alinea-ContentCard-description-text",
26
+ "is-skeleton": "alinea-is-skeleton",
27
+ "isSkeleton": "alinea-is-skeleton",
21
28
  "ContentCard-breadcrumbs": "alinea-ContentCard-breadcrumbs",
22
29
  "ContentCardBreadcrumbs": "alinea-ContentCard-breadcrumbs",
30
+ "ContentCard-details": "alinea-ContentCard-details",
31
+ "ContentCardDetails": "alinea-ContentCard-details",
23
32
  "ContentCard-breadcrumbs-separator": "alinea-ContentCard-breadcrumbs-separator",
24
33
  "ContentCardBreadcrumbsSeparator": "alinea-ContentCard-breadcrumbs-separator",
25
- "ContentCard-description-text": "alinea-ContentCard-description-text",
26
- "ContentCardDescriptionText": "alinea-ContentCard-description-text",
27
- "ContentCard-skeleton": "alinea-ContentCard-skeleton",
28
- "ContentCardSkeleton": "alinea-ContentCard-skeleton",
29
34
  "is-wide": "alinea-is-wide",
30
35
  "isWide": "alinea-is-wide",
31
- "ContentCard-title": "alinea-ContentCard-title",
32
- "ContentCardTitle": "alinea-ContentCard-title",
33
36
  "ContentCard-description": "alinea-ContentCard-description",
34
37
  "ContentCardDescription": "alinea-ContentCard-description",
35
- "ContentCard-media": "alinea-ContentCard-media",
36
- "ContentCardMedia": "alinea-ContentCard-media",
37
- "is-icon": "alinea-is-icon",
38
- "isIcon": "alinea-is-icon",
39
- "ContentCard-image": "alinea-ContentCard-image",
40
- "ContentCardImage": "alinea-ContentCard-image",
41
- "is-skeleton": "alinea-is-skeleton",
42
- "isSkeleton": "alinea-is-skeleton",
43
- "ContentCard": "alinea-ContentCard",
38
+ "ContentCard-body": "alinea-ContentCard-body",
39
+ "ContentCardBody": "alinea-ContentCard-body",
40
+ "ContentCard-title": "alinea-ContentCard-title",
41
+ "ContentCardTitle": "alinea-ContentCard-title",
44
42
  "ContentCard-icon": "alinea-ContentCard-icon",
45
43
  "ContentCardIcon": "alinea-ContentCard-icon",
46
- "ContentCard-details": "alinea-ContentCard-details",
47
- "ContentCardDetails": "alinea-ContentCard-details"
44
+ "ContentCard-pulse": "alinea-ContentCard-pulse",
45
+ "ContentCardPulse": "alinea-ContentCard-pulse",
46
+ "ContentCard-image": "alinea-ContentCard-image",
47
+ "ContentCardImage": "alinea-ContentCard-image"
48
48
  };
49
49
 
50
50
  // src/components/ContentCard.tsx
@@ -24,26 +24,26 @@ import {
24
24
 
25
25
  // src/components/ContentGrid.module.css
26
26
  var ContentGrid_default = {
27
- "is-active": "alinea-is-active",
28
- "isActive": "alinea-is-active",
29
27
  "ContentGridItem-drag": "alinea-ContentGridItem-drag",
30
28
  "ContentGridItemDrag": "alinea-ContentGridItem-drag",
29
+ "is-active": "alinea-is-active",
30
+ "isActive": "alinea-is-active",
31
+ "ContentGrid-list": "alinea-ContentGrid-list",
32
+ "ContentGridList": "alinea-ContentGrid-list",
31
33
  "ContentGridItem-checkbox": "alinea-ContentGridItem-checkbox",
32
34
  "ContentGridItemCheckbox": "alinea-ContentGridItem-checkbox",
33
35
  "ContentGrid": "alinea-ContentGrid",
34
- "ContentGridItem": "alinea-ContentGridItem",
35
- "ContentGrid-list": "alinea-ContentGrid-list",
36
- "ContentGridList": "alinea-ContentGrid-list",
37
36
  "ContentGridItem-card": "alinea-ContentGridItem-card",
38
37
  "ContentGridItemCard": "alinea-ContentGridItem-card",
39
- "is-dropTarget": "alinea-is-dropTarget",
40
- "isDropTarget": "alinea-is-dropTarget",
41
- "ContentGrid-empty": "alinea-ContentGrid-empty",
42
- "ContentGridEmpty": "alinea-ContentGrid-empty",
43
38
  "is-dragging": "alinea-is-dragging",
44
39
  "isDragging": "alinea-is-dragging",
40
+ "ContentGridItem": "alinea-ContentGridItem",
45
41
  "ContentGrid-dropIndicator": "alinea-ContentGrid-dropIndicator",
46
- "ContentGridDropIndicator": "alinea-ContentGrid-dropIndicator"
42
+ "ContentGridDropIndicator": "alinea-ContentGrid-dropIndicator",
43
+ "ContentGrid-empty": "alinea-ContentGrid-empty",
44
+ "ContentGridEmpty": "alinea-ContentGrid-empty",
45
+ "is-dropTarget": "alinea-is-dropTarget",
46
+ "isDropTarget": "alinea-is-dropTarget"
47
47
  };
48
48
 
49
49
  // src/components/ContentGrid.tsx
@@ -6,9 +6,9 @@ import "../chunks/chunk-CQ52GEHY.js";
6
6
  // src/components/DataList.module.css
7
7
  var DataList_default = {
8
8
  "DataList": "alinea-DataList",
9
+ "DataListItem": "alinea-DataListItem",
9
10
  "DataListLabel": "alinea-DataListLabel",
10
- "DataListValue": "alinea-DataListValue",
11
- "DataListItem": "alinea-DataListItem"
11
+ "DataListValue": "alinea-DataListValue"
12
12
  };
13
13
 
14
14
  // src/components/DataList.tsx
@@ -24,17 +24,17 @@ import { Button } from "./Button.js";
24
24
 
25
25
  // src/components/Dialog.module.css
26
26
  var Dialog_default = {
27
- "DialogContent-close": "alinea-DialogContent-close",
28
- "DialogContentClose": "alinea-DialogContent-close",
29
- "DialogFooter": "alinea-DialogFooter",
30
- "DialogTitle": "alinea-DialogTitle",
31
27
  "DialogDescription": "alinea-DialogDescription",
28
+ "DialogTitle": "alinea-DialogTitle",
29
+ "DialogContent": "alinea-DialogContent",
30
+ "DialogHeader": "alinea-DialogHeader",
32
31
  "DialogContent-dialog": "alinea-DialogContent-dialog",
33
32
  "DialogContentDialog": "alinea-DialogContent-dialog",
33
+ "DialogFooter": "alinea-DialogFooter",
34
34
  "DialogContent-overlay": "alinea-DialogContent-overlay",
35
35
  "DialogContentOverlay": "alinea-DialogContent-overlay",
36
- "DialogContent": "alinea-DialogContent",
37
- "DialogHeader": "alinea-DialogHeader"
36
+ "DialogContent-close": "alinea-DialogContent-close",
37
+ "DialogContentClose": "alinea-DialogContent-close"
38
38
  };
39
39
 
40
40
  // src/components/Dialog.tsx
@@ -18,12 +18,12 @@ import { Button } from "./Button.js";
18
18
 
19
19
  // src/components/DropZone.module.css
20
20
  var DropZone_default = {
21
- "is-disabled": "alinea-is-disabled",
22
- "isDisabled": "alinea-is-disabled",
23
- "DropZoneDescription": "alinea-DropZoneDescription",
24
21
  "is-dropTarget": "alinea-is-dropTarget",
25
22
  "isDropTarget": "alinea-is-dropTarget",
26
- "DropZone": "alinea-DropZone"
23
+ "DropZone": "alinea-DropZone",
24
+ "DropZoneDescription": "alinea-DropZoneDescription",
25
+ "is-disabled": "alinea-is-disabled",
26
+ "isDisabled": "alinea-is-disabled"
27
27
  };
28
28
 
29
29
  // src/components/DropZone.tsx