alinea 2.0.0-preview.11 → 2.0.0-preview.13

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 (268) 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/adapter/next/cms.js +16 -8
  5. package/dist/adapter/next/dashboardUrl.d.ts +6 -0
  6. package/dist/adapter/next/dashboardUrl.js +13 -0
  7. package/dist/adapter/next/syncCheck.d.ts +15 -2
  8. package/dist/adapter/next/syncCheck.js +26 -9
  9. package/dist/backend/Handler.js +5 -1
  10. package/dist/backend/api/BlobStore.d.ts +21 -0
  11. package/dist/backend/api/BlobStore.js +63 -0
  12. package/dist/backend/api/CreateBackend.js +10 -8
  13. package/dist/backend/api/DatabaseApi.d.ts +4 -1
  14. package/dist/backend/api/DatabaseApi.js +88 -4
  15. package/dist/backend/api/GithubApi.js +47 -24
  16. package/dist/backend/api/database.js +6 -6
  17. package/dist/bundled.d.ts +687 -248
  18. package/dist/chunks/{bun-sqlite-5SHXN3AT.js → bun-sqlite-RI6BYU5S.js} +3 -3
  19. package/dist/chunks/{chunk-YCQR5GRT.js → chunk-3QFSGTGF.js} +2 -3
  20. package/dist/chunks/{chunk-QJGGYF6E.js → chunk-4ZA6KZHS.js} +5 -5
  21. package/dist/chunks/{chunk-ASYKC6IE.js → chunk-5H4D5JQL.js} +1 -1
  22. package/dist/chunks/{chunk-ETWOY4AL.js → chunk-A2I6MCCS.js} +1 -1
  23. package/dist/chunks/{chunk-W5AXN7GH.js → chunk-CYVOGRSD.js} +1 -2
  24. package/dist/chunks/{chunk-TIJTT5ZI.js → chunk-G43W7AME.js} +1 -0
  25. package/dist/chunks/{chunk-RE523BQ7.js → chunk-HOETF6HN.js} +5829 -5830
  26. package/dist/chunks/{chunk-AIU6CMVT.js → chunk-PTYZMV5G.js} +1 -1
  27. package/dist/chunks/{chunk-JOF663EG.js → chunk-QHHMKJUO.js} +1 -1
  28. package/dist/chunks/{chunk-66YZ47TY.js → chunk-RAR44T5O.js} +1 -1
  29. package/dist/chunks/{chunk-QSN6RH6X.js → chunk-VA6NC3MI.js} +1 -1
  30. package/dist/chunks/{node-sqlite-XVNTNMCY.js → node-sqlite-C7VJ2NSN.js} +3 -3
  31. package/dist/cli/Mcp.js +1 -1
  32. package/dist/cli/Serve.js +1 -1
  33. package/dist/cli/bin.js +2 -3
  34. package/dist/cli/generate/GenerateDashboard.js +17 -5
  35. package/dist/cli/serve/mcp/DevMcp.js +1 -1
  36. package/dist/cli/serve/mcp/McpTools.js +29 -1
  37. package/dist/cli/static/dashboard/entry.js +2 -1
  38. package/dist/cloud/CloudRemote.js +1 -1
  39. package/dist/components/Alert.js +3 -3
  40. package/dist/components/AppShell.js +2 -2
  41. package/dist/components/Badge.d.ts +3 -1
  42. package/dist/components/Badge.js +5 -3
  43. package/dist/components/Breadcrumbs.js +6 -6
  44. package/dist/components/Button.d.ts +6 -1
  45. package/dist/components/Button.js +14 -5
  46. package/dist/components/Calendar.js +20 -20
  47. package/dist/components/Checkbox.js +9 -9
  48. package/dist/components/CheckboxGroup.js +4 -4
  49. package/dist/components/Collapsible.js +3 -3
  50. package/dist/components/ColorSwatch.js +2 -2
  51. package/dist/components/ColorSwatchPicker.js +2 -2
  52. package/dist/components/ComboBox.js +7 -7
  53. package/dist/components/Command.js +10 -9
  54. package/dist/components/ContentCard.d.ts +3 -1
  55. package/dist/components/ContentCard.js +39 -17
  56. package/dist/components/ContentGrid.js +15 -15
  57. package/dist/components/DataList.js +2 -2
  58. package/dist/components/DateField.js +2 -2
  59. package/dist/components/DatePicker.js +2 -2
  60. package/dist/components/DateRangePicker.js +2 -2
  61. package/dist/components/Dialog.js +6 -6
  62. package/dist/components/DropZone.js +4 -4
  63. package/dist/components/DropdownMenu.js +10 -10
  64. package/dist/components/Empty.js +4 -4
  65. package/dist/components/Field.js +8 -8
  66. package/dist/components/List.js +23 -23
  67. package/dist/components/MediaPreview.js +5 -5
  68. package/dist/components/MultipleSelect.js +20 -20
  69. package/dist/components/NavRail.js +4 -4
  70. package/dist/components/NumberField.js +5 -5
  71. package/dist/components/Page.js +5 -5
  72. package/dist/components/Popover.js +2 -2
  73. package/dist/components/PreviewFrame.js +5 -5
  74. package/dist/components/RadioGroup.js +6 -6
  75. package/dist/components/Resizable.js +5 -5
  76. package/dist/components/SearchField.d.ts +6 -1
  77. package/dist/components/SearchField.js +7 -5
  78. package/dist/components/Select.js +14 -14
  79. package/dist/components/Sheet.d.ts +50 -0
  80. package/dist/components/Sheet.js +202 -0
  81. package/dist/components/Sidebar.js +4 -4
  82. package/dist/components/SortableList.d.ts +34 -30
  83. package/dist/components/SortableList.js +162 -265
  84. package/dist/components/Spinner.js +1 -1
  85. package/dist/components/Surface.js +2 -2
  86. package/dist/components/Switch.js +7 -7
  87. package/dist/components/Table.d.ts +3 -1
  88. package/dist/components/Table.js +53 -42
  89. package/dist/components/Tabs.js +5 -5
  90. package/dist/components/TagGroup.js +9 -9
  91. package/dist/components/TextField.js +10 -10
  92. package/dist/components/TimeField.js +8 -8
  93. package/dist/components/Timestamp.js +1 -1
  94. package/dist/components/ToggleGroup.js +2 -2
  95. package/dist/components/Toolbar.js +4 -4
  96. package/dist/components/Tooltip.js +5 -5
  97. package/dist/components/Tree.js +29 -29
  98. package/dist/components/internal/DateControl.js +10 -10
  99. package/dist/components/internal/ListBoxOption.js +13 -13
  100. package/dist/components/internal/Locale.js +2 -2
  101. package/dist/components/internal/PopoverSurface.js +2 -2
  102. package/dist/components/internal/SelectionCheckbox.js +6 -6
  103. package/dist/components/internal/Slot.js +1 -1
  104. package/dist/components/internal/ToggleButton.js +3 -3
  105. package/dist/components/internal/Trigger.js +2 -2
  106. package/dist/components/internal/sortableDrag.d.ts +19 -0
  107. package/dist/components/internal/sortableDrag.js +175 -0
  108. package/dist/components/internal/useDragDrop.js +2 -2
  109. package/dist/components.d.ts +1 -0
  110. package/dist/components.js +1 -0
  111. package/dist/core/Config.d.ts +6 -1
  112. package/dist/core/Document.d.ts +9 -1
  113. package/dist/core/Document.js +31 -6
  114. package/dist/core/Overview.d.ts +2 -4
  115. package/dist/core/TextDoc.d.ts +4 -0
  116. package/dist/core/Validation.d.ts +0 -1
  117. package/dist/core/Validation.js +0 -6
  118. package/dist/core/field/RichTextField.js +23 -4
  119. package/dist/core/media/MediaTypes.js +1 -1
  120. package/dist/core/source/GithubSource.d.ts +4 -0
  121. package/dist/core/source/GithubSource.js +127 -25
  122. package/dist/core/source/GithubUsage.d.ts +21 -0
  123. package/dist/core/source/GithubUsage.js +47 -0
  124. package/dist/dashboard/App.d.ts +2 -2
  125. package/dist/dashboard/App.js +5 -3
  126. package/dist/dashboard/ViewKeys.d.ts +1 -0
  127. package/dist/dashboard/ViewKeys.js +1 -0
  128. package/dist/dashboard/app/ActivityStatus.js +11 -11
  129. package/dist/dashboard/app/AuthView.js +5 -5
  130. package/dist/dashboard/app/BlockSheet.d.ts +50 -0
  131. package/dist/dashboard/app/BlockSheet.js +207 -0
  132. package/dist/dashboard/app/BlockSheetStoryFrame.d.ts +6 -0
  133. package/dist/dashboard/app/BlockSheetStoryFrame.js +29 -0
  134. package/dist/dashboard/app/CompactField.js +15 -15
  135. package/dist/dashboard/app/CroppedImage.js +2 -2
  136. package/dist/dashboard/app/DashboardErrorBoundary.js +3 -3
  137. package/dist/dashboard/app/DashboardLayout.js +3 -1
  138. package/dist/dashboard/app/EntryHeader.js +32 -33
  139. package/dist/dashboard/app/EntryReferences.js +5 -5
  140. package/dist/dashboard/app/EntrySidebar.js +8 -8
  141. package/dist/dashboard/app/EntrySidebarPreview.js +4 -4
  142. package/dist/dashboard/app/EntryStatusIcon.d.ts +23 -0
  143. package/dist/dashboard/app/EntryStatusIcon.js +58 -0
  144. package/dist/dashboard/app/EntryValidationModal.d.ts +6 -5
  145. package/dist/dashboard/app/EntryValidationModal.js +18 -18
  146. package/dist/dashboard/app/Explorer.d.ts +3 -1
  147. package/dist/dashboard/app/Explorer.js +51 -47
  148. package/dist/dashboard/app/ExplorerBatchActions.d.ts +3 -1
  149. package/dist/dashboard/app/ExplorerBatchActions.js +68 -43
  150. package/dist/dashboard/app/ExplorerCards.js +7 -1
  151. package/dist/dashboard/app/ExplorerControls.js +6 -6
  152. package/dist/dashboard/app/ExplorerList.js +5 -5
  153. package/dist/dashboard/app/ExplorerModal.js +1 -1
  154. package/dist/dashboard/app/ExplorerTable.js +14 -11
  155. package/dist/dashboard/app/ImageEditor.js +25 -25
  156. package/dist/dashboard/app/ImagePicker.js +3 -13
  157. package/dist/dashboard/app/LinkPicker.js +29 -27
  158. package/dist/dashboard/app/LocaleMenu.js +7 -7
  159. package/dist/dashboard/app/MediaPreviewCell.js +2 -2
  160. package/dist/dashboard/app/MoveConfirmDialog.d.ts +5 -0
  161. package/dist/dashboard/app/MoveConfirmDialog.js +79 -0
  162. package/dist/dashboard/app/OverviewCell.js +8 -13
  163. package/dist/dashboard/app/ReadOnlyBadge.d.ts +1 -1
  164. package/dist/dashboard/app/RemoveDialog.d.ts +17 -0
  165. package/dist/dashboard/app/{DeleteDialog.js → RemoveDialog.js} +67 -27
  166. package/dist/dashboard/app/RemoveRedirect.d.ts +7 -0
  167. package/dist/dashboard/app/RemoveRedirect.js +123 -0
  168. package/dist/dashboard/app/SearchBar.d.ts +9 -0
  169. package/dist/dashboard/app/SearchBar.js +31 -0
  170. package/dist/dashboard/app/SidebarTree.js +29 -74
  171. package/dist/dashboard/app/WorkspaceMenu.js +8 -8
  172. package/dist/dashboard/app/WorkspaceRoots.js +11 -11
  173. package/dist/dashboard/app/editor/FileEditor.js +16 -16
  174. package/dist/dashboard/app/modals/CreateEntry.js +5 -5
  175. package/dist/dashboard/app/pages/EntryPage.d.ts +2 -1
  176. package/dist/dashboard/app/pages/EntryPage.js +35 -16
  177. package/dist/dashboard/app/pages/SplashPage.js +35 -35
  178. package/dist/dashboard/app/pages/UsersPage.js +14 -14
  179. package/dist/dashboard/app/ui/DashboardModal.js +17 -16
  180. package/dist/dashboard/atoms/dashboard.js +1 -1
  181. package/dist/dashboard/atoms/entry.js +1 -14
  182. package/dist/dashboard/atoms/entryTable.js +1 -0
  183. package/dist/dashboard/atoms/explorer.d.ts +4 -0
  184. package/dist/dashboard/atoms/explorer.js +19 -7
  185. package/dist/dashboard/atoms/graph.js +1 -1
  186. package/dist/dashboard/atoms/link.js +5 -2
  187. package/dist/dashboard/atoms/move.d.ts +5 -0
  188. package/dist/dashboard/atoms/move.js +29 -3
  189. package/dist/dashboard/atoms/moveConfirmation.d.ts +34 -0
  190. package/dist/dashboard/atoms/moveConfirmation.js +95 -0
  191. package/dist/dashboard/atoms/nav.d.ts +9 -5
  192. package/dist/dashboard/atoms/nav.js +120 -45
  193. package/dist/dashboard/atoms/overview.d.ts +6 -5
  194. package/dist/dashboard/atoms/overview.js +2 -16
  195. package/dist/dashboard/atoms/remove.d.ts +112 -0
  196. package/dist/dashboard/atoms/remove.js +268 -0
  197. package/dist/dashboard/atoms/root.d.ts +2 -2
  198. package/dist/dashboard/atoms/root.js +41 -26
  199. package/dist/dashboard/atoms/user.js +1 -1
  200. package/dist/dashboard/atoms/utils.js +1 -1
  201. package/dist/dashboard/boot/Boot.js +25 -17
  202. package/dist/dashboard/boot/BootProd.d.ts +6 -1
  203. package/dist/dashboard/boot/BootProd.js +2 -2
  204. package/dist/dashboard/boot/DashboardWorker.d.ts +1 -0
  205. package/dist/dashboard/boot/DashboardWorker.js +18 -18
  206. package/dist/dashboard/boot/LoadWorker.js +17 -10
  207. package/dist/dashboard/cms/EntryTable.js +6 -3
  208. package/dist/database/BrowserEntryStore.d.ts +17 -29
  209. package/dist/database/BrowserEntryStore.js +116 -144
  210. package/dist/database/DatabaseTables.js +2 -2
  211. package/dist/database/EntryDatabase.js +21 -1
  212. package/dist/database/EntryTransaction.js +0 -35
  213. package/dist/database/EntryUrlAliases.d.ts +4 -0
  214. package/dist/database/EntryUrlAliases.js +16 -10
  215. package/dist/database/driver/RuntimeDatabase.js +3 -3
  216. package/dist/database/driver/WasmDatabase.d.ts +5 -18
  217. package/dist/database/driver/WasmDatabase.js +15 -16
  218. package/dist/database/entry/EntryTable.js +2 -2
  219. package/dist/database/query/EntryQuery.js +1 -1
  220. package/dist/database/query/Relation.js +1 -1
  221. package/dist/database/query/Search.js +2 -2
  222. package/dist/field/check/CheckField.view.js +2 -2
  223. package/dist/field/code/CodeField.view.js +14 -14
  224. package/dist/field/link/EntryLink.d.ts +4 -4
  225. package/dist/field/link/FileLink.d.ts +4 -4
  226. package/dist/field/link/ImageLink.d.ts +4 -4
  227. package/dist/field/link/Link.d.ts +1 -1
  228. package/dist/field/link/LinkField.d.ts +5 -0
  229. package/dist/field/link/LinkField.view.js +246 -372
  230. package/dist/field/link/UrlLink.d.ts +4 -4
  231. package/dist/field/list/ListField.d.ts +2 -0
  232. package/dist/field/list/ListField.view.d.ts +15 -0
  233. package/dist/field/list/ListField.view.js +343 -301
  234. package/dist/field/metadata/MetadataField.d.ts +17 -7
  235. package/dist/field/metadata/MetadataField.js +14 -3
  236. package/dist/field/metadata/MetadataField.view.d.ts +1 -0
  237. package/dist/field/metadata/MetadataField.view.js +27 -23
  238. package/dist/field/richtext/RichTextBlock.d.ts +3 -1
  239. package/dist/field/richtext/RichTextBlock.js +178 -75
  240. package/dist/field/richtext/RichTextBlockHost.js +1 -1
  241. package/dist/field/richtext/RichTextExtensions.js +35 -35
  242. package/dist/field/richtext/RichTextField.view.js +14 -8
  243. package/dist/field/richtext/RichTextInsertMenu.js +43 -27
  244. package/dist/field/views.js +2 -0
  245. package/dist/index.css +490 -309
  246. package/dist/picker/url/UrlPicker.js +1 -0
  247. package/docs/components/badge.md +1 -0
  248. package/docs/components/button.md +1 -0
  249. package/docs/components/content-card.md +1 -0
  250. package/docs/components/search-field.md +1 -0
  251. package/docs/components/sortable-list.md +5 -20
  252. package/docs/components/table.md +1 -0
  253. package/docs/configuration.md +1 -1
  254. package/docs/deploy/self-host.md +1 -1
  255. package/docs/deploy.md +5 -4
  256. package/docs/fields.md +1 -1
  257. package/docs/index.md +1 -1
  258. package/docs/instant-publishing.md +7 -22
  259. package/docs/overviews.md +3 -4
  260. package/docs/upgrading.md +3 -2
  261. package/llms-full.txt +31 -55
  262. package/package.json +2 -3
  263. package/dist/core/db/EntryValidationError.d.ts +0 -13
  264. package/dist/core/db/EntryValidationError.js +0 -23
  265. package/dist/dashboard/app/DeleteDialog.d.ts +0 -11
  266. package/dist/dashboard/atoms/delete.d.ts +0 -68
  267. package/dist/dashboard/atoms/delete.js +0 -143
  268. package/dist/chunks/{chunk-MOWR65LM.js → chunk-PYDOMKJZ.js} +71 -71
@@ -12,7 +12,7 @@ import {
12
12
  columnConfig,
13
13
  formatColumn,
14
14
  table
15
- } from "./chunk-MOWR65LM.js";
15
+ } from "./chunk-PYDOMKJZ.js";
16
16
  import {
17
17
  Sql,
18
18
  getData,
@@ -132,7 +132,7 @@ import {
132
132
  $fd2148440a13ec26$export$fc1a364ae1f3ff10,
133
133
  $fd3c5e01e837dc20$export$8042c6c013fd5226,
134
134
  $fe16bffc7a557bf0$export$7f54fc3180508a52
135
- } from "./chunk-RE523BQ7.js";
135
+ } from "./chunk-HOETF6HN.js";
136
136
  import {
137
137
  $12a3c853105e5a70$export$ad991b66133851cf,
138
138
  $2aaf608024c21ca1$export$680ea196effce5f,
@@ -4,7 +4,7 @@ import {
4
4
  execTransaction,
5
5
  sqliteDialect,
6
6
  sqliteDiff
7
- } from "./chunk-AIU6CMVT.js";
7
+ } from "./chunk-PTYZMV5G.js";
8
8
  import {
9
9
  Batch,
10
10
  SyncDatabase
@@ -4,7 +4,7 @@ import {
4
4
  execTransaction,
5
5
  sqliteDialect,
6
6
  sqliteDiff
7
- } from "./chunk-AIU6CMVT.js";
7
+ } from "./chunk-PTYZMV5G.js";
8
8
  import {
9
9
  Batch,
10
10
  SyncDatabase
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  connect
3
- } from "./chunk-ETWOY4AL.js";
4
- import "./chunk-AIU6CMVT.js";
3
+ } from "./chunk-A2I6MCCS.js";
4
+ import "./chunk-PTYZMV5G.js";
5
5
  import "./chunk-N47Y62CI.js";
6
6
  import "./chunk-QBPYWU6C.js";
7
7
  import "./chunk-2BJ2IFQM.js";
8
8
  import "./chunk-XCZXR3C2.js";
9
- import "./chunk-MOWR65LM.js";
9
+ import "./chunk-PYDOMKJZ.js";
10
10
  import "./chunk-76VMZTLN.js";
11
11
  import "./chunk-2PIFHEYR.js";
12
12
  import "./chunk-K62JP6HR.js";
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-3QFSGTGF.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-3QFSGTGF.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.13",
224
224
  description: "Open source, Git-based headless CMS for Next.js",
225
225
  keywords: [
226
226
  "cms",
@@ -304,7 +304,6 @@ var package_default = {
304
304
  stories: "bunx --bun ladle serve",
305
305
  tag: "bun tag.js",
306
306
  spec: "playwright test -c .playwright/playwright.config.ts",
307
- "spec:visual": "playwright test -c .playwright/playwright.visual.config.ts",
308
307
  trace: "tsc --diagnostics --generateTrace private/trace && analyze-trace private/trace & speedscope private/trace/trace.json",
309
308
  type: "tsc --diagnostics",
310
309
  web: "run-p dev:check web:run",
@@ -312,7 +311,7 @@ var package_default = {
312
311
  },
313
312
  dependencies: {
314
313
  "@alinea/iso": "^0.3.3",
315
- "@alinea/sqlite-wasm": "0.3.1",
314
+ "@alinea/sqlite-wasm": "0.8.1",
316
315
  esbuild: "^0.28.0"
317
316
  },
318
317
  peerDependencies: {
@@ -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-3QFSGTGF.js";
4
4
  import "../../../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cli/serve/mcp/DevMcp.ts
@@ -11,7 +11,9 @@ import { isImageCrop, isImageRotation } from "alinea/core/media/ImageTransform";
11
11
  import { Root } from "alinea/core/Root";
12
12
  import { Schema } from "alinea/core/Schema";
13
13
  import { Type } from "alinea/core/Type";
14
+ import { formatFieldPath, validateEntry } from "alinea/core/Validation";
14
15
  import { entries, keys } from "alinea/core/util/Objects";
16
+ import { slugify } from "alinea/core/util/Slugs";
15
17
  import { Workspace } from "alinea/core/Workspace";
16
18
  import { inputData, outputData } from "./McpInput.js";
17
19
  import { describeSchema } from "./McpSchema.js";
@@ -75,6 +77,18 @@ function createContentTools(options) {
75
77
  if (!config.enableDrafts) fail("Drafts are not enabled, leave out publish");
76
78
  return "draft";
77
79
  }
80
+ function checkPublishable(type, data) {
81
+ const errors = validateEntry(type, data);
82
+ if (errors.length === 0) return;
83
+ const draft = config.enableDrafts ? ", or pass publish: false to save a draft" : "";
84
+ const fields = errors.map(
85
+ (error) => `- data.${formatFieldPath(error.path)}: ${error.message}`
86
+ );
87
+ fail(
88
+ `Cannot publish, fix these fields first${draft}:
89
+ ${fields.join("\n")}`
90
+ );
91
+ }
78
92
  function inLocale(versions, locale2) {
79
93
  const [first] = versions;
80
94
  if (!first) fail("Entry not found, use find_entries to look up ids");
@@ -278,6 +292,12 @@ function createContentTools(options) {
278
292
  });
279
293
  if (!data.title) fail("data.title is required");
280
294
  if (!converted.path) delete data.path;
295
+ const saveAs = status(args.publish);
296
+ if (saveAs === "published")
297
+ checkPublishable(type, {
298
+ ...data,
299
+ path: data.path || slugify(String(data.title))
300
+ });
281
301
  const insertOrder = parent && Type.insertOrder(typeOf(parent.type));
282
302
  const created = await graph.create({
283
303
  type,
@@ -286,7 +306,7 @@ function createContentTools(options) {
286
306
  root,
287
307
  parentId,
288
308
  locale: locale2,
289
- status: status(args.publish),
309
+ status: saveAs,
290
310
  insertOrder: insertOrder === "free" ? void 0 : insertOrder,
291
311
  set: data,
292
312
  user,
@@ -324,6 +344,7 @@ function createContentTools(options) {
324
344
  ...current.data,
325
345
  ...converted
326
346
  });
347
+ if (saveAs === "published") checkPublishable(type, data);
327
348
  await graph.mutate([
328
349
  {
329
350
  op: "create",
@@ -386,6 +407,13 @@ function createContentTools(options) {
386
407
  );
387
408
  if (!from)
388
409
  return { id: id2, locale: locale2, status: "published", note: "Already published" };
410
+ const pending = await graph.first({
411
+ id: id2,
412
+ locale: locale2,
413
+ status: from,
414
+ select: { type: Entry.type, data: Entry.data }
415
+ });
416
+ if (pending) checkPublishable(typeOf(pending.type), pending.data);
389
417
  await graph.publish({ id: id2, locale: locale2, status: from });
390
418
  return { id: id2, locale: locale2, status: "published" };
391
419
  }
@@ -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-3QFSGTGF.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",
9
+ "AlertTitle": "alinea-AlertTitle",
11
10
  "AlertDescription": "alinea-AlertDescription",
12
11
  "Alert-icon": "alinea-Alert-icon",
13
- "AlertIcon": "alinea-Alert-icon"
12
+ "AlertIcon": "alinea-Alert-icon",
13
+ "AlertActions": "alinea-AlertActions"
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
- "AppShell": "alinea-AppShell",
9
- "AppShellContent": "alinea-AppShellContent"
8
+ "AppShellContent": "alinea-AppShellContent",
9
+ "AppShell": "alinea-AppShell"
10
10
  };
11
11
 
12
12
  // src/components/AppShell.tsx
@@ -3,9 +3,11 @@ import type { AriaProps, ContentStatus, DataProps, IconType, StyleProps } from '
3
3
  export interface BadgeProps extends StyleProps, AriaProps, DataProps {
4
4
  icon?: IconType | ReactElement;
5
5
  size?: 'default' | 'sm';
6
+ /** `primary` tints the badge with the accent color, eg. to name a type */
7
+ color?: 'default' | 'primary';
6
8
  /** Colors the badge like the matching entry status */
7
9
  status?: ContentStatus;
8
10
  title?: string;
9
11
  children?: ReactNode;
10
12
  }
11
- export declare function Badge({ icon, size, status, className, children, ...props }: BadgeProps): import("react").JSX.Element;
13
+ export declare function Badge({ icon, size, color, status, className, children, ...props }: BadgeProps): import("react").JSX.Element;
@@ -5,11 +5,11 @@ import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/components/Badge.module.css
7
7
  var Badge_default = {
8
- "Badge-label": "alinea-Badge-label",
9
- "BadgeLabel": "alinea-Badge-label",
10
8
  "Badge": "alinea-Badge",
11
9
  "Badge-icon": "alinea-Badge-icon",
12
- "BadgeIcon": "alinea-Badge-icon"
10
+ "BadgeIcon": "alinea-Badge-icon",
11
+ "Badge-label": "alinea-Badge-label",
12
+ "BadgeLabel": "alinea-Badge-label"
13
13
  };
14
14
 
15
15
  // src/components/Badge.tsx
@@ -19,6 +19,7 @@ var styles = dist_default(Badge_default);
19
19
  function Badge({
20
20
  icon,
21
21
  size = "default",
22
+ color,
22
23
  status,
23
24
  className,
24
25
  children,
@@ -30,6 +31,7 @@ function Badge({
30
31
  "data-slot": "badge",
31
32
  ...props,
32
33
  "data-size": size,
34
+ "data-color": color,
33
35
  "data-status": status,
34
36
  className: styles.Badge(dist_default.merge({ className })),
35
37
  children: [
@@ -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",
11
+ "BreadcrumbLink": "alinea-BreadcrumbLink",
12
+ "BreadcrumbPage": "alinea-BreadcrumbPage",
12
13
  "BreadcrumbSeparator-icon": "alinea-BreadcrumbSeparator-icon",
13
14
  "BreadcrumbSeparatorIcon": "alinea-BreadcrumbSeparator-icon",
14
- "BreadcrumbItem": "alinea-BreadcrumbItem",
15
- "BreadcrumbPage": "alinea-BreadcrumbPage",
16
15
  "BreadcrumbList": "alinea-BreadcrumbList",
17
- "BreadcrumbLink": "alinea-BreadcrumbLink",
16
+ "BreadcrumbEllipsis": "alinea-BreadcrumbEllipsis",
17
+ "BreadcrumbSeparator": "alinea-BreadcrumbSeparator",
18
+ "BreadcrumbItem": "alinea-BreadcrumbItem",
18
19
  "BreadcrumbEllipsis-icon": "alinea-BreadcrumbEllipsis-icon",
19
- "BreadcrumbEllipsisIcon": "alinea-BreadcrumbEllipsis-icon",
20
- "BreadcrumbEllipsis": "alinea-BreadcrumbEllipsis"
20
+ "BreadcrumbEllipsisIcon": "alinea-BreadcrumbEllipsis-icon"
21
21
  };
22
22
 
23
23
  // src/components/Breadcrumbs.tsx
@@ -23,8 +23,13 @@ export interface ButtonProps extends StyleProps, AriaProps, DataProps {
23
23
  'aria-current'?: boolean | 'page' | 'step' | 'location' | 'date' | 'time';
24
24
  /** Keyboard shortcuts that activate the button, eg. `Meta+K Control+K` */
25
25
  'aria-keyshortcuts'?: string;
26
+ /**
27
+ * Lets a press on the button start a native drag, eg. of the draggable
28
+ * element it is in: browsers do not drag from a button otherwise
29
+ */
30
+ draggable?: boolean;
26
31
  onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
27
32
  ref?: Ref<HTMLButtonElement>;
28
33
  children?: ReactNode;
29
34
  }
30
- export declare function Button({ variant, color, size, active, icon, asChild, disabled, loading, className, children, onClick, 'aria-keyshortcuts': ariaKeyShortcuts, ...props }: ButtonProps): import("react").JSX.Element;
35
+ export declare function Button({ variant, color, size, active, icon, asChild, disabled, loading, className, children, onClick, 'aria-keyshortcuts': ariaKeyShortcuts, draggable, ...props }: ButtonProps): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  $7705c033048f6da7$export$353f5b6fc5456de1
3
- } from "../chunks/chunk-JOF663EG.js";
3
+ } from "../chunks/chunk-QHHMKJUO.js";
4
4
  import "../chunks/chunk-NUFRM6SI.js";
5
- import "../chunks/chunk-RE523BQ7.js";
5
+ import "../chunks/chunk-HOETF6HN.js";
6
6
  import "../chunks/chunk-RKDPDEF7.js";
7
7
  import "../chunks/chunk-PSSMQKAH.js";
8
8
  import {
@@ -42,6 +42,7 @@ function Button({
42
42
  children,
43
43
  onClick,
44
44
  "aria-keyshortcuts": ariaKeyShortcuts,
45
+ draggable,
45
46
  ...props
46
47
  }) {
47
48
  const attributes = {
@@ -60,6 +61,7 @@ function Button({
60
61
  ...attributes,
61
62
  "aria-keyshortcuts": ariaKeyShortcuts,
62
63
  "aria-disabled": disabled || void 0,
64
+ draggable,
63
65
  onClick: (event) => {
64
66
  if (disabled) event.preventDefault();
65
67
  else onClick?.(event);
@@ -74,9 +76,16 @@ function Button({
74
76
  ...attributes,
75
77
  isDisabled: disabled,
76
78
  isPending: loading,
77
- render: ariaKeyShortcuts ? (
78
- // react-aria does not pass aria-keyshortcuts on to the element
79
- (domProps) => /* @__PURE__ */ jsx("button", { ...domProps, "aria-keyshortcuts": ariaKeyShortcuts })
79
+ render: ariaKeyShortcuts || draggable ? (
80
+ // react-aria does not pass these on to the element
81
+ (domProps) => /* @__PURE__ */ jsx(
82
+ "button",
83
+ {
84
+ ...domProps,
85
+ "aria-keyshortcuts": ariaKeyShortcuts,
86
+ draggable
87
+ }
88
+ )
80
89
  ) : void 0,
81
90
  onClick: onClick && ((event) => onClick(event)),
82
91
  children: [
@@ -9,11 +9,11 @@ import {
9
9
  $6f9a1820b787aac7$export$e11f8ba65d857bff,
10
10
  $6f9a1820b787aac7$export$e1aef45b828286de,
11
11
  $7705c033048f6da7$export$353f5b6fc5456de1
12
- } from "../chunks/chunk-JOF663EG.js";
12
+ } from "../chunks/chunk-QHHMKJUO.js";
13
13
  import "../chunks/chunk-NUFRM6SI.js";
14
14
  import {
15
15
  $2eb8e6d23f3d0cb0$export$43bb16f9c6d9e3f7
16
- } from "../chunks/chunk-RE523BQ7.js";
16
+ } from "../chunks/chunk-HOETF6HN.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
+ "Calendar-day": "alinea-Calendar-day",
36
+ "CalendarDay": "alinea-Calendar-day",
37
+ "Calendar-header": "alinea-Calendar-header",
38
+ "CalendarHeader": "alinea-Calendar-header",
39
+ "Calendar-heading": "alinea-Calendar-heading",
40
+ "CalendarHeading": "alinea-Calendar-heading",
41
+ "is-today": "alinea-is-today",
42
+ "isToday": "alinea-is-today",
43
+ "is-weekStart": "alinea-is-weekStart",
44
+ "isWeekStart": "alinea-is-weekStart",
35
45
  "Calendar": "alinea-Calendar",
46
+ "is-weekEnd": "alinea-is-weekEnd",
47
+ "isWeekEnd": "alinea-is-weekEnd",
48
+ "is-selected": "alinea-is-selected",
49
+ "isSelected": "alinea-is-selected",
36
50
  "is-rangeEnd": "alinea-is-rangeEnd",
37
51
  "isRangeEnd": "alinea-is-rangeEnd",
38
- "Calendar-header": "alinea-Calendar-header",
39
- "CalendarHeader": "alinea-Calendar-header",
40
- "Calendar-nav": "alinea-Calendar-nav",
41
- "CalendarNav": "alinea-Calendar-nav",
42
52
  "Calendar-grid": "alinea-Calendar-grid",
43
53
  "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",
48
54
  "is-unavailable": "alinea-is-unavailable",
49
55
  "isUnavailable": "alinea-is-unavailable",
56
+ "Calendar-weekday": "alinea-Calendar-weekday",
57
+ "CalendarWeekday": "alinea-Calendar-weekday",
50
58
  "is-rangeStart": "alinea-is-rangeStart",
51
59
  "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",
56
- "is-weekStart": "alinea-is-weekStart",
57
- "isWeekStart": "alinea-is-weekStart",
58
- "is-weekEnd": "alinea-is-weekEnd",
59
- "isWeekEnd": "alinea-is-weekEnd",
60
- "is-today": "alinea-is-today",
61
- "isToday": "alinea-is-today"
60
+ "Calendar-nav": "alinea-Calendar-nav",
61
+ "CalendarNav": "alinea-Calendar-nav"
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-JOF663EG.js";
4
+ } from "../chunks/chunk-QHHMKJUO.js";
5
5
  import "../chunks/chunk-NUFRM6SI.js";
6
- import "../chunks/chunk-RE523BQ7.js";
6
+ import "../chunks/chunk-HOETF6HN.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
- "Checkbox": "alinea-Checkbox",
20
- "is-focusVisible": "alinea-is-focusVisible",
21
- "isFocusVisible": "alinea-is-focusVisible",
22
- "Checkbox-mark": "alinea-Checkbox-mark",
23
- "CheckboxMark": "alinea-Checkbox-mark",
24
19
  "Checkbox-content": "alinea-Checkbox-content",
25
20
  "CheckboxContent": "alinea-Checkbox-content",
21
+ "Checkbox-label": "alinea-Checkbox-label",
22
+ "CheckboxLabel": "alinea-Checkbox-label",
23
+ "Checkbox-mark": "alinea-Checkbox-mark",
24
+ "CheckboxMark": "alinea-Checkbox-mark",
25
+ "Checkbox": "alinea-Checkbox",
26
26
  "Checkbox-box": "alinea-Checkbox-box",
27
27
  "CheckboxBox": "alinea-Checkbox-box",
28
- "Checkbox-label": "alinea-Checkbox-label",
29
- "CheckboxLabel": "alinea-Checkbox-label"
28
+ "is-focusVisible": "alinea-is-focusVisible",
29
+ "isFocusVisible": "alinea-is-focusVisible"
30
30
  };
31
31
 
32
32
  // src/components/Checkbox.tsx
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  $ed8ccb2e23e76301$export$4aa08d5625cb8ead
3
- } from "../chunks/chunk-JOF663EG.js";
3
+ } from "../chunks/chunk-QHHMKJUO.js";
4
4
  import "../chunks/chunk-NUFRM6SI.js";
5
- import "../chunks/chunk-RE523BQ7.js";
5
+ import "../chunks/chunk-HOETF6HN.js";
6
6
  import "../chunks/chunk-RKDPDEF7.js";
7
7
  import "../chunks/chunk-PSSMQKAH.js";
8
8
  import {
@@ -12,9 +12,9 @@ import "../chunks/chunk-CQ52GEHY.js";
12
12
 
13
13
  // src/components/CheckboxGroup.module.css
14
14
  var CheckboxGroup_default = {
15
+ "CheckboxGroup": "alinea-CheckboxGroup",
15
16
  "CheckboxGroup-items": "alinea-CheckboxGroup-items",
16
- "CheckboxGroupItems": "alinea-CheckboxGroup-items",
17
- "CheckboxGroup": "alinea-CheckboxGroup"
17
+ "CheckboxGroupItems": "alinea-CheckboxGroup-items"
18
18
  };
19
19
 
20
20
  // src/components/CheckboxGroup.tsx
@@ -14,13 +14,13 @@ import { FoldIcon } from "./FoldIcon.js";
14
14
 
15
15
  // src/components/Collapsible.module.css
16
16
  var Collapsible_default = {
17
- "CollapsibleTrigger-title": "alinea-CollapsibleTrigger-title",
18
- "CollapsibleTriggerTitle": "alinea-CollapsibleTrigger-title",
19
17
  "CollapsibleTrigger-icon": "alinea-CollapsibleTrigger-icon",
20
18
  "CollapsibleTriggerIcon": "alinea-CollapsibleTrigger-icon",
19
+ "CollapsibleTrigger": "alinea-CollapsibleTrigger",
21
20
  "Collapsible": "alinea-Collapsible",
22
21
  "CollapsibleContent": "alinea-CollapsibleContent",
23
- "CollapsibleTrigger": "alinea-CollapsibleTrigger"
22
+ "CollapsibleTrigger-title": "alinea-CollapsibleTrigger-title",
23
+ "CollapsibleTriggerTitle": "alinea-CollapsibleTrigger-title"
24
24
  };
25
25
 
26
26
  // src/components/Collapsible.tsx
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  $eeaff5a2d2421ecc$export$cae13e90592f246a
3
- } from "../chunks/chunk-JOF663EG.js";
3
+ } from "../chunks/chunk-QHHMKJUO.js";
4
4
  import "../chunks/chunk-NUFRM6SI.js";
5
- import "../chunks/chunk-RE523BQ7.js";
5
+ import "../chunks/chunk-HOETF6HN.js";
6
6
  import "../chunks/chunk-RKDPDEF7.js";
7
7
  import "../chunks/chunk-PSSMQKAH.js";
8
8
  import {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  $a36727cf8b43b57f$export$abcd89c27081c2ef,
3
3
  $a36727cf8b43b57f$export$b46792416e3d8515
4
- } from "../chunks/chunk-JOF663EG.js";
4
+ } from "../chunks/chunk-QHHMKJUO.js";
5
5
  import "../chunks/chunk-NUFRM6SI.js";
6
- import "../chunks/chunk-RE523BQ7.js";
6
+ import "../chunks/chunk-HOETF6HN.js";
7
7
  import "../chunks/chunk-RKDPDEF7.js";
8
8
  import "../chunks/chunk-PSSMQKAH.js";
9
9
  import {
@@ -4,9 +4,9 @@ import {
4
4
  $928221da08ecbc62$export$41f133550aa26f48,
5
5
  $dbdc5e6e7ce01b4b$export$72b9695b8216309a,
6
6
  $dbdc5e6e7ce01b4b$export$c02625b26074192c
7
- } from "../chunks/chunk-JOF663EG.js";
7
+ } from "../chunks/chunk-QHHMKJUO.js";
8
8
  import "../chunks/chunk-NUFRM6SI.js";
9
- import "../chunks/chunk-RE523BQ7.js";
9
+ import "../chunks/chunk-HOETF6HN.js";
10
10
  import "../chunks/chunk-RKDPDEF7.js";
11
11
  import "../chunks/chunk-PSSMQKAH.js";
12
12
  import {
@@ -24,15 +24,15 @@ 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": "alinea-ComboBoxTrigger",
29
28
  "ComboBoxContent-list": "alinea-ComboBoxContent-list",
30
29
  "ComboBoxContentList": "alinea-ComboBoxContent-list",
31
- "ComboBoxTrigger-action": "alinea-ComboBoxTrigger-action",
32
- "ComboBoxTriggerAction": "alinea-ComboBoxTrigger-action",
33
- "ComboBoxTrigger": "alinea-ComboBoxTrigger",
34
30
  "ComboBoxContent-empty": "alinea-ComboBoxContent-empty",
35
31
  "ComboBoxContentEmpty": "alinea-ComboBoxContent-empty",
32
+ "ComboBoxTrigger-action": "alinea-ComboBoxTrigger-action",
33
+ "ComboBoxTriggerAction": "alinea-ComboBoxTrigger-action",
34
+ "ComboBoxTrigger-arrow": "alinea-ComboBoxTrigger-arrow",
35
+ "ComboBoxTriggerArrow": "alinea-ComboBoxTrigger-arrow",
36
36
  "ComboBoxTrigger-input": "alinea-ComboBoxTrigger-input",
37
37
  "ComboBoxTriggerInput": "alinea-ComboBoxTrigger-input",
38
38
  "ComboBox": "alinea-ComboBox"