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
package/dist/index.css CHANGED
@@ -112,6 +112,10 @@
112
112
  font-size: 11px;
113
113
  line-height: 18px;
114
114
  }
115
+ &[data-color=primary] {
116
+ background: var(--alinea-primary-subtle);
117
+ color: var(--alinea-primary-subtle-fg);
118
+ }
115
119
  &[data-status=published] {
116
120
  background: var(--alinea-status-published);
117
121
  color: var(--alinea-status-published-fg);
@@ -851,7 +855,7 @@
851
855
  }
852
856
  .alinea-CommandInput {
853
857
  border-bottom: 1px solid var(--alinea-border);
854
- padding: 8px;
858
+ padding: 0 12px 0 14px;
855
859
  }
856
860
  .alinea-CommandList {
857
861
  outline: none;
@@ -876,6 +880,7 @@
876
880
  }
877
881
  .alinea-CommandItem {
878
882
  border-radius: var(--alinea-radius-sm);
883
+ min-height: 32px;
879
884
  color: var(--alinea-fg);
880
885
  font-size: var(--alinea-font-size-base);
881
886
  cursor: pointer;
@@ -885,9 +890,13 @@
885
890
  padding: .4rem;
886
891
  display: flex;
887
892
  position: relative;
893
+ &:hover,
888
894
  &.alinea-is-highlighted {
889
895
  background: var(--alinea-muted);
890
896
  }
897
+ .alinea-CommandList:hover &.alinea-is-highlighted:not(:hover) {
898
+ background: none;
899
+ }
891
900
  &.alinea-is-focusVisible {
892
901
  outline: 2px solid var(--alinea-ring);
893
902
  outline-offset: -2px;
@@ -899,6 +908,7 @@
899
908
  }
900
909
  .alinea-CommandItem-icon {
901
910
  flex-shrink: 0;
911
+ font-size: 16px;
902
912
  }
903
913
  .alinea-CommandItem-label {
904
914
  text-overflow: ellipsis;
@@ -1016,14 +1026,27 @@
1016
1026
  font-size: 14px;
1017
1027
  }
1018
1028
  .alinea-ContentCard-title {
1019
- text-overflow: ellipsis;
1020
- white-space: nowrap;
1021
1029
  flex: none;
1030
+ align-items: center;
1031
+ gap: 6px;
1032
+ min-width: 0;
1022
1033
  font-size: 13px;
1023
1034
  font-weight: 600;
1024
1035
  line-height: 1.35;
1036
+ display: flex;
1037
+ }
1038
+ .alinea-ContentCard-title-text {
1039
+ text-overflow: ellipsis;
1040
+ white-space: nowrap;
1041
+ min-width: 0;
1025
1042
  overflow: hidden;
1026
1043
  }
1044
+ .alinea-ContentCard-suffix {
1045
+ flex: none;
1046
+ align-items: center;
1047
+ margin-block: -1px;
1048
+ display: inline-flex;
1049
+ }
1027
1050
  .alinea-ContentCard-description {
1028
1051
  min-width: 0;
1029
1052
  color: var(--alinea-fg-muted);
@@ -3178,6 +3201,27 @@
3178
3201
  .alinea-SearchFieldClear-icon {
3179
3202
  position: relative;
3180
3203
  }
3204
+ .alinea-SearchField[data-variant=inline] {
3205
+ & .alinea-SearchFieldGroup {
3206
+ background-color: #0000;
3207
+ border: 0;
3208
+ border-radius: 0;
3209
+ outline: none;
3210
+ height: 44px;
3211
+ }
3212
+ & .alinea-SearchFieldIcon {
3213
+ width: 18px;
3214
+ height: 18px;
3215
+ margin: 0 10px 0 0;
3216
+ font-size: 18px;
3217
+ }
3218
+ & .alinea-SearchFieldInput {
3219
+ padding: 5px 0;
3220
+ }
3221
+ & .alinea-SearchFieldClear {
3222
+ padding: 0 4px;
3223
+ }
3224
+ }
3181
3225
 
3182
3226
  /* src/components/Select.module.css */
3183
3227
  .alinea-Select {
@@ -3321,6 +3365,77 @@
3321
3365
  margin: 4px 8px;
3322
3366
  }
3323
3367
 
3368
+ /* src/components/Sheet.module.css */
3369
+ .alinea-SheetContent {
3370
+ background: var(--alinea-bg-muted);
3371
+ color: var(--alinea-fg);
3372
+ outline: none;
3373
+ flex-direction: column;
3374
+ display: flex;
3375
+ position: absolute;
3376
+ inset: 0;
3377
+ overflow: hidden;
3378
+ }
3379
+ .alinea-SheetHeader {
3380
+ box-sizing: border-box;
3381
+ border-bottom: 1px solid var(--alinea-border);
3382
+ flex-shrink: 0;
3383
+ align-items: center;
3384
+ gap: 8px;
3385
+ height: 48px;
3386
+ padding: 0 8px 0 10px;
3387
+ display: flex;
3388
+ }
3389
+ .alinea-SheetHeader-back[data-slot] {
3390
+ --alinea-button-accent: var(--alinea-fg-muted);
3391
+ }
3392
+ .alinea-SheetTitle {
3393
+ text-overflow: ellipsis;
3394
+ white-space: nowrap;
3395
+ flex: 1;
3396
+ min-width: 0;
3397
+ margin: 0;
3398
+ font-size: 14px;
3399
+ font-weight: 600;
3400
+ overflow: hidden;
3401
+ }
3402
+ .alinea-SheetBody {
3403
+ flex: 1;
3404
+ min-height: 0;
3405
+ overflow-y: auto;
3406
+ }
3407
+ .alinea-SheetSection {
3408
+ flex-direction: column;
3409
+ gap: 16px;
3410
+ padding: 18px 20px 20px;
3411
+ display: flex;
3412
+ &:not(:first-child) {
3413
+ border-top: 1px solid var(--alinea-border);
3414
+ }
3415
+ }
3416
+ .alinea-SheetSection-title {
3417
+ color: var(--alinea-fg-muted);
3418
+ letter-spacing: .02em;
3419
+ text-transform: uppercase;
3420
+ margin: 0;
3421
+ font-size: 11px;
3422
+ font-weight: 600;
3423
+ line-height: 16px;
3424
+ }
3425
+ .alinea-SheetFooter {
3426
+ box-sizing: border-box;
3427
+ border-top: 1px solid var(--alinea-border);
3428
+ flex-direction: column;
3429
+ flex-shrink: 0;
3430
+ align-items: stretch;
3431
+ gap: 2px;
3432
+ padding: 8px;
3433
+ display: flex;
3434
+ & [data-slot=button] {
3435
+ font-weight: 500;
3436
+ }
3437
+ }
3438
+
3324
3439
  /* src/components/Sidebar.module.css */
3325
3440
  .alinea-Sidebar {
3326
3441
  background: var(--alinea-bg);
@@ -3404,13 +3519,21 @@
3404
3519
  }
3405
3520
 
3406
3521
  /* src/components/SortableList.module.css */
3522
+ .alinea-SortableList {
3523
+ border: 1px solid var(--alinea-border);
3524
+ border-radius: var(--alinea-radius);
3525
+ background: var(--alinea-bg);
3526
+ color: var(--alinea-fg);
3527
+ font-size: var(--alinea-font-size-base);
3528
+ position: relative;
3529
+ }
3407
3530
  .alinea-SortableListAdd-inner {
3408
3531
  box-sizing: border-box;
3532
+ min-height: calc(1.5 * var(--alinea-font-size-base) + 16px);
3409
3533
  border-top: 1px solid var(--alinea-border);
3410
3534
  flex-direction: row;
3411
3535
  justify-content: center;
3412
3536
  align-items: center;
3413
- min-height: 36px;
3414
3537
  display: flex;
3415
3538
  }
3416
3539
  .alinea-SortableListAdd:first-child .alinea-SortableListAdd-inner {
@@ -3419,107 +3542,161 @@
3419
3542
  .alinea-SortableListItem {
3420
3543
  display: grid;
3421
3544
  position: relative;
3422
- overflow: hidden;
3423
- }
3424
- .alinea-SortableListItem:not(:first-child) {
3425
- border-top: 1px solid var(--alinea-border);
3426
- }
3427
- .alinea-SortableListItem[data-dragging] {
3428
- opacity: .5;
3429
- }
3430
- .alinea-SortableListItem-dropTarget {
3431
- outline: none;
3432
- display: grid;
3433
- position: relative;
3434
- }
3435
- .alinea-SortableListItem-dropTarget:not(:first-child) > .alinea-SortableListItem {
3436
- border-top: 1px solid var(--alinea-border);
3545
+ overflow-x: clip;
3437
3546
  }
3438
- .alinea-SortableListItem-dropIndicator {
3439
- z-index: 2;
3547
+ .alinea-SortableListItemInsert {
3548
+ z-index: 3;
3440
3549
  opacity: 0;
3441
- pointer-events: none;
3442
- height: 8px;
3443
- transition: opacity .14s ease-out;
3550
+ height: 16px;
3551
+ transition: opacity var(--alinea-transition);
3552
+ align-items: center;
3553
+ display: flex;
3444
3554
  position: absolute;
3555
+ top: -8px;
3445
3556
  left: 0;
3446
3557
  right: 0;
3447
3558
  }
3448
- .alinea-SortableListItem-dropIndicator:before {
3559
+ .alinea-SortableListItemInsert:before {
3449
3560
  content: "";
3450
3561
  background: var(--alinea-primary);
3451
- border-radius: var(--alinea-radius-sm);
3452
- width: 190px;
3453
- max-width: calc(100% - 20px);
3454
- height: 6px;
3562
+ border-radius: 1px;
3563
+ height: 2px;
3455
3564
  position: absolute;
3456
- top: 50%;
3457
- left: 50%;
3458
- transform: translate(-50%, -50%);
3565
+ top: 7px;
3566
+ left: 8px;
3567
+ right: 8px;
3459
3568
  }
3460
- .alinea-SortableListItem-dropIndicator[data-position=before] {
3461
- top: -4px;
3569
+ .alinea-SortableList[data-dragging] > .alinea-SortableListItem > .alinea-SortableListItemInsert {
3570
+ visibility: hidden;
3571
+ }
3572
+ .alinea-SortableListItemInsert:hover,
3573
+ .alinea-SortableListItemInsert:has(:focus-visible),
3574
+ .alinea-SortableListItemInsert:has([aria-expanded=true]) {
3575
+ opacity: 1;
3462
3576
  }
3463
- .alinea-SortableListItem-dropIndicator[data-position=after] {
3464
- bottom: -4px;
3577
+ .alinea-SortableListItemInsert:hover {
3578
+ transition-delay: .3s;
3465
3579
  }
3466
- .alinea-SortableListItem-dropTarget:first-child > .alinea-SortableListItem-dropIndicator[data-position=before] {
3467
- top: 0;
3580
+ .alinea-SortableListItemInsert-button {
3581
+ background: var(--alinea-bg);
3582
+ width: 20px;
3583
+ height: 20px;
3584
+ color: var(--alinea-primary);
3585
+ box-shadow: 0 0 0 1.5px var(--alinea-primary);
3586
+ cursor: pointer;
3587
+ transition: var(--alinea-transition);
3588
+ border: none;
3589
+ border-radius: 999px;
3590
+ outline: none;
3591
+ justify-content: center;
3592
+ align-items: center;
3593
+ margin: 0 0 0 42px;
3594
+ padding: 0;
3595
+ font-size: 14px;
3596
+ transition-property: background-color, color;
3597
+ display: inline-flex;
3598
+ position: relative;
3599
+ @media (hover: hover) {
3600
+ &:hover {
3601
+ background: var(--alinea-primary);
3602
+ color: var(--alinea-primary-fg);
3603
+ }
3604
+ }
3605
+ &:focus-visible {
3606
+ outline: 2px solid var(--alinea-ring);
3607
+ outline-offset: 2px;
3608
+ }
3468
3609
  }
3469
- .alinea-SortableListItem-dropTarget:last-child > .alinea-SortableListItem-dropIndicator[data-position=after] {
3470
- bottom: 0;
3610
+ .alinea-SortableListItem:not(:first-child) {
3611
+ border-top: 1px solid var(--alinea-border);
3471
3612
  }
3472
- .alinea-SortableListItem-dropIndicator[data-active] {
3473
- opacity: 1;
3613
+ .alinea-SortableListItem[aria-current=true] > .alinea-SortableListItemHeader {
3614
+ background: var(--alinea-muted);
3474
3615
  }
3475
- .alinea-SortableListHandle {
3476
- z-index: 3;
3477
- cursor: grab;
3478
- opacity: 0;
3479
- pointer-events: none;
3480
- outline: none;
3481
- width: 56px;
3482
- height: 10px;
3483
- transition: opacity .14s ease-out;
3484
- position: absolute;
3485
- top: -1px;
3486
- left: 50%;
3487
- transform: translateX(-50%);
3616
+ .alinea-SortableListItem[data-dragging] {
3617
+ z-index: 5;
3618
+ border-radius: var(--alinea-radius);
3619
+ background: var(--alinea-bg);
3620
+ box-shadow: 0 0 0 1px var(--alinea-border), 0 8px 24px -8px #00000040;
3621
+ overflow: clip;
3488
3622
  }
3489
- .alinea-SortableListHandle:before {
3490
- content: "";
3491
- background: var(--alinea-fg-disabled);
3492
- border-radius: 999px;
3493
- width: 30px;
3494
- height: 4px;
3495
- position: absolute;
3496
- top: 50%;
3497
- left: 50%;
3498
- transform: translate(-50%, -50%);
3623
+ .alinea-SortableListItem[data-dragging] > .alinea-SortableListItemHeader {
3624
+ background: var(--alinea-muted);
3499
3625
  }
3500
- .alinea-SortableListHandle[data-dragging],
3501
- .alinea-SortableListHandle:active {
3502
- cursor: grabbing;
3626
+ :root[data-sortable-dragging] * {
3627
+ cursor: grabbing !important;
3503
3628
  }
3504
- .alinea-SortableListHandle:focus-visible:before {
3505
- background: var(--alinea-primary);
3506
- outline: 2px solid color-mix(in oklab, var(--alinea-primary) 20%, transparent);
3507
- outline-offset: 2px;
3629
+ .alinea-SortableListItemHeader[data-reorderable] {
3630
+ cursor: grab;
3508
3631
  }
3509
3632
  .alinea-SortableListItemHeader {
3510
3633
  box-sizing: border-box;
3634
+ min-width: 0;
3635
+ min-height: calc(1.5 * var(--alinea-font-size-base) + 16px);
3511
3636
  justify-content: space-between;
3512
3637
  align-items: center;
3513
- min-width: 0;
3514
- min-height: 36px;
3515
3638
  padding: 2px 8px;
3639
+ transition: background-color .25s ease-out;
3516
3640
  display: flex;
3517
3641
  }
3518
- .alinea-SortableListItemHeader:hover > .alinea-SortableListHandle,
3519
- .alinea-SortableListItemHeader:focus-within > .alinea-SortableListHandle,
3520
- .alinea-SortableListHandle[data-dragging] {
3521
- opacity: 1;
3522
- pointer-events: auto;
3642
+ :where(.alinea-SortableListItem:has(> .alinea-SortableListItemContent)) > .alinea-SortableListItemHeader {
3643
+ background: var(--alinea-bg-muted);
3644
+ }
3645
+ .alinea-SortableList > .alinea-SortableListItem:first-child > .alinea-SortableListItemHeader {
3646
+ border-start-start-radius: calc(var(--alinea-radius) - 1px);
3647
+ border-start-end-radius: calc(var(--alinea-radius) - 1px);
3648
+ }
3649
+ .alinea-SortableList > .alinea-SortableListItem:last-child > .alinea-SortableListItemHeader:last-child {
3650
+ border-end-end-radius: calc(var(--alinea-radius) - 1px);
3651
+ border-end-start-radius: calc(var(--alinea-radius) - 1px);
3652
+ }
3653
+ .alinea-SortableListItemTrigger[data-slot] {
3654
+ border-radius: var(--alinea-radius-sm);
3655
+ min-width: 0;
3656
+ height: auto;
3657
+ min-height: 26px;
3658
+ font-weight: inherit;
3659
+ flex: 1;
3660
+ padding: 0;
3661
+ }
3662
+ .alinea-SortableListItemTrigger[data-slot][data-variant]:hover {
3663
+ background: none;
3664
+ }
3665
+ @media (hover: hover) {
3666
+ .alinea-SortableListItemHeader:has(.alinea-SortableListItemTrigger:hover) {
3667
+ background: var(--alinea-muted);
3668
+ }
3669
+ }
3670
+ .alinea-SortableListItemTrigger[data-slot]:focus-visible {
3671
+ outline: none;
3672
+ }
3673
+ .alinea-SortableListItemHeader:has(.alinea-SortableListItemTrigger:focus-visible) {
3674
+ box-shadow: inset 0 0 0 2px var(--alinea-ring);
3675
+ }
3676
+ .alinea-SortableListItemTrigger-more {
3677
+ width: 26px;
3678
+ height: 26px;
3679
+ color: var(--alinea-fg-muted);
3680
+ opacity: 0;
3681
+ transition: color var(--alinea-transition), opacity var(--alinea-transition);
3682
+ flex-shrink: 0;
3683
+ justify-content: center;
3684
+ align-items: center;
3685
+ margin-left: auto;
3686
+ font-size: 14px;
3687
+ display: inline-flex;
3688
+ .alinea-SortableListItemHeader:hover &,
3689
+ .alinea-SortableListItemTrigger:focus-visible &,
3690
+ .alinea-SortableListItemTrigger[aria-expanded=true] & {
3691
+ opacity: 1;
3692
+ }
3693
+ @media (hover: none) {
3694
+ opacity: 1;
3695
+ }
3696
+ .alinea-SortableListItemTrigger:hover &,
3697
+ .alinea-SortableListItemTrigger[aria-expanded=true] & {
3698
+ color: var(--alinea-fg);
3699
+ }
3523
3700
  }
3524
3701
  .alinea-SortableListItemTitle {
3525
3702
  flex: 1;
@@ -3528,9 +3705,6 @@
3528
3705
  min-width: 0;
3529
3706
  display: flex;
3530
3707
  }
3531
- .alinea-SortableListItemTitle[data-dragging] {
3532
- cursor: grabbing;
3533
- }
3534
3708
  .alinea-SortableListItemDescription {
3535
3709
  min-width: 0;
3536
3710
  color: var(--alinea-fg-muted);
@@ -3550,18 +3724,21 @@
3550
3724
  color: var(--alinea-fg-muted);
3551
3725
  flex: none;
3552
3726
  }
3727
+ .alinea-SortableListItemToggle[data-slot][data-size] {
3728
+ width: 20px;
3729
+ height: 20px;
3730
+ margin-right: -6px;
3731
+ }
3553
3732
  .alinea-SortableListItemToggle:hover,
3554
3733
  .alinea-SortableListItemToggle:active,
3555
3734
  .alinea-SortableListItemToggle[data-active] {
3556
3735
  color: var(--alinea-fg);
3557
3736
  }
3558
- .alinea-SortableListItemToggle-icon {
3559
- font-size: 16px;
3560
- }
3561
3737
  .alinea-SortableListItemContent {
3738
+ border-top: 1px solid var(--alinea-border);
3562
3739
  align-items: normal;
3563
3740
  gap: 12px;
3564
- padding: 8px 16px 16px;
3741
+ padding: 12px 16px 16px;
3565
3742
  display: grid;
3566
3743
  }
3567
3744
  .alinea-SortableListItemFooter {
@@ -3583,42 +3760,6 @@
3583
3760
  font-weight: 500;
3584
3761
  }
3585
3762
  }
3586
- .alinea-SortableListDragPreview {
3587
- border: 1px solid color-mix(in srgb, var(--alinea-border) 70%, transparent);
3588
- border-radius: var(--alinea-radius);
3589
- background: var(--alinea-overlay);
3590
- min-width: 220px;
3591
- max-width: 300px;
3592
- box-shadow: var(--alinea-shadow-raised);
3593
- align-items: center;
3594
- gap: 10px;
3595
- padding: 10px 14px;
3596
- display: inline-flex;
3597
- }
3598
- .alinea-SortableListDragPreview-icon {
3599
- border-radius: var(--alinea-radius);
3600
- width: 28px;
3601
- height: 28px;
3602
- color: var(--alinea-primary);
3603
- background: color-mix(in srgb, var(--alinea-primary) 12%, transparent);
3604
- flex-shrink: 0;
3605
- justify-content: center;
3606
- align-items: center;
3607
- display: inline-flex;
3608
- }
3609
- .alinea-SortableListDragPreview-body {
3610
- gap: 2px;
3611
- min-width: 0;
3612
- display: grid;
3613
- }
3614
- .alinea-SortableListDragPreview-title {
3615
- color: var(--alinea-fg);
3616
- text-overflow: ellipsis;
3617
- white-space: nowrap;
3618
- font-size: 13px;
3619
- font-weight: 600;
3620
- overflow: hidden;
3621
- }
3622
3763
 
3623
3764
  /* src/components/Spinner.module.css */
3624
3765
  .alinea-Spinner {
@@ -4077,6 +4218,12 @@
4077
4218
  min-width: 0;
4078
4219
  display: flex;
4079
4220
  }
4221
+ .alinea-TableTitle-suffix {
4222
+ flex: none;
4223
+ align-items: center;
4224
+ gap: 4px;
4225
+ display: inline-flex;
4226
+ }
4080
4227
  .alinea-TableTitle-title {
4081
4228
  text-overflow: ellipsis;
4082
4229
  white-space: nowrap;
@@ -4994,6 +5141,75 @@
4994
5141
  font-weight: 600;
4995
5142
  }
4996
5143
 
5144
+ /* src/dashboard/app/BlockSheet.module.css */
5145
+ .alinea-BlockSheetSlot {
5146
+ z-index: 10;
5147
+ pointer-events: none;
5148
+ position: absolute;
5149
+ inset: 0 0 0 -40px;
5150
+ overflow: clip;
5151
+ &:has(> .alinea-BlockSheetSlot-host:empty) {
5152
+ display: none;
5153
+ }
5154
+ }
5155
+ .alinea-BlockSheetSlot-host {
5156
+ pointer-events: auto;
5157
+ animation: .24s cubic-bezier(.32, .72, 0, 1) alinea-BlockSheet-enter;
5158
+ position: absolute;
5159
+ inset: 0 0 0 40px;
5160
+ }
5161
+ .alinea-BlockSheet {
5162
+ border-inline-start: 1px solid var(--alinea-border);
5163
+ position: absolute;
5164
+ inset: 0;
5165
+ box-shadow: -12px 0 24px -16px #0000003d;
5166
+ &[data-closing] {
5167
+ animation: .18s cubic-bezier(.4, 0, 1, 1) forwards alinea-BlockSheet-exit;
5168
+ }
5169
+ }
5170
+ @keyframes alinea-BlockSheet-enter {
5171
+ from {
5172
+ transform: translateX(100%);
5173
+ }
5174
+ }
5175
+ @keyframes alinea-BlockSheet-exit {
5176
+ to {
5177
+ transform: translateX(100%);
5178
+ }
5179
+ }
5180
+ @media (prefers-reduced-motion: reduce) {
5181
+ @keyframes alinea-BlockSheet-enter {
5182
+ from {
5183
+ opacity: 0;
5184
+ }
5185
+ }
5186
+ @keyframes alinea-BlockSheet-exit {
5187
+ to {
5188
+ opacity: 0;
5189
+ }
5190
+ }
5191
+ }
5192
+ .split-view-view:has(> * .alinea-BlockSheet):not(:has(.split-view-view .alinea-BlockSheet)) {
5193
+ overflow: visible;
5194
+ }
5195
+
5196
+ /* src/dashboard/app/BlockSheetStoryFrame.module.css */
5197
+ .alinea-BlockSheetStoryFrame {
5198
+ align-items: stretch;
5199
+ gap: 16px;
5200
+ min-height: 600px;
5201
+ display: flex;
5202
+ }
5203
+ .alinea-BlockSheetStoryFrame-content {
5204
+ flex: 1;
5205
+ min-width: 0;
5206
+ }
5207
+ .alinea-BlockSheetStoryFrame-panel {
5208
+ border-left: 1px solid var(--alinea-border);
5209
+ flex: 0 0 360px;
5210
+ position: relative;
5211
+ }
5212
+
4997
5213
  /* src/dashboard/app/CompactField.module.css */
4998
5214
  .alinea-CompactField {
4999
5215
  min-width: 0;
@@ -5174,14 +5390,6 @@
5174
5390
  }
5175
5391
  }
5176
5392
 
5177
- /* src/dashboard/app/DeleteDialog.module.css */
5178
- .alinea-DeleteDialog-actions {
5179
- align-items: center;
5180
- gap: 8px;
5181
- margin-left: auto;
5182
- display: flex;
5183
- }
5184
-
5185
5393
  /* src/dashboard/app/editor/FileEditor.module.css */
5186
5394
  .alinea-FileEditor-surface {
5187
5395
  width: 100%;
@@ -5444,6 +5652,31 @@
5444
5652
  overflow: auto;
5445
5653
  }
5446
5654
 
5655
+ /* src/dashboard/app/EntryStatusIcon.module.css */
5656
+ .alinea-EntryStatusIcon {
5657
+ border-radius: var(--alinea-radius-sm);
5658
+ width: 18px;
5659
+ height: 18px;
5660
+ color: var(--alinea-fg-muted);
5661
+ background: var(--alinea-muted);
5662
+ flex-shrink: 0;
5663
+ justify-content: center;
5664
+ align-items: center;
5665
+ display: inline-flex;
5666
+ }
5667
+ .alinea-EntryStatusIcon-icon {
5668
+ width: 13px;
5669
+ height: 13px;
5670
+ }
5671
+ .alinea-EntryStatusIcon.alinea-is-draft {
5672
+ color: var(--alinea-status-draft-fg);
5673
+ background: var(--alinea-status-draft);
5674
+ }
5675
+ .alinea-EntryStatusIcon.alinea-is-unpublished {
5676
+ color: var(--alinea-status-unpublished-fg);
5677
+ background: var(--alinea-status-unpublished);
5678
+ }
5679
+
5447
5680
  /* src/dashboard/app/EntryValidationModal.module.css */
5448
5681
  .alinea-EntryValidationModal-list {
5449
5682
  flex-direction: column;
@@ -5461,10 +5694,6 @@
5461
5694
  padding: 8px 12px;
5462
5695
  display: flex;
5463
5696
  }
5464
- .alinea-EntryValidationModal-message {
5465
- white-space: pre-wrap;
5466
- margin-top: 12px;
5467
- }
5468
5697
 
5469
5698
  /* src/dashboard/app/Explorer.module.css */
5470
5699
  .alinea-ExplorerHeader {
@@ -5553,6 +5782,7 @@
5553
5782
  flex: 1;
5554
5783
  height: 100%;
5555
5784
  min-height: 0;
5785
+ position: relative;
5556
5786
  }
5557
5787
  .alinea-Explorer-actions {
5558
5788
  flex-shrink: 0;
@@ -5680,26 +5910,38 @@
5680
5910
  }
5681
5911
 
5682
5912
  /* src/dashboard/app/ExplorerBatchActions.module.css */
5683
- .alinea-ExplorerBatchActionBar {
5684
- background: var(--alinea-bg);
5685
- gap: 8px;
5686
- height: 48px;
5687
- padding: 0 12px 0 8px;
5688
- }
5689
- .alinea-ExplorerBatchActionBar-toolbar {
5690
- flex: 1;
5691
- min-width: 0;
5913
+ .alinea-ExplorerBatchActionBar[data-slot] {
5914
+ z-index: 3;
5915
+ border: 1px solid var(--alinea-border);
5916
+ border-radius: var(--alinea-radius-lg);
5917
+ background: var(--alinea-overlay);
5918
+ max-width: calc(100% - 32px);
5919
+ height: 44px;
5920
+ box-shadow: var(--alinea-shadow-tooltip);
5921
+ align-items: center;
5922
+ gap: 4px;
5923
+ padding: 0 6px 0 16px;
5692
5924
  display: flex;
5925
+ position: absolute;
5926
+ bottom: 28px;
5927
+ left: 50%;
5928
+ transform: translateX(-50%);
5693
5929
  }
5694
5930
  .alinea-ExplorerBatchActionBar-count {
5695
5931
  white-space: nowrap;
5932
+ margin-inline-end: 10px;
5933
+ font-size: 12px;
5696
5934
  font-weight: 500;
5697
5935
  }
5698
- .alinea-ExplorerBatchActionBar-actions {
5699
- align-items: center;
5700
- gap: 8px;
5701
- margin-left: auto;
5702
- display: flex;
5936
+ .alinea-ExplorerBatchActionBar-divider {
5937
+ background: var(--alinea-border);
5938
+ flex-shrink: 0;
5939
+ width: 1px;
5940
+ height: 20px;
5941
+ margin: 0 4px;
5942
+ }
5943
+ .alinea-ExplorerBatchActionBar-action {
5944
+ display: inline-flex;
5703
5945
  }
5704
5946
 
5705
5947
  /* src/dashboard/app/ExplorerCards.module.css */
@@ -6026,15 +6268,6 @@
6026
6268
  display: flex;
6027
6269
  overflow: hidden;
6028
6270
  }
6029
- .alinea-LinkPickerCompact-header {
6030
- border-bottom: 1px solid var(--alinea-border);
6031
- flex: none;
6032
- align-items: center;
6033
- gap: 8px;
6034
- min-width: 0;
6035
- padding: 8px;
6036
- display: flex;
6037
- }
6038
6271
  .alinea-LinkPickerCompact-footer {
6039
6272
  border-top: 1px solid var(--alinea-border);
6040
6273
  flex: none;
@@ -6150,6 +6383,14 @@
6150
6383
  height: auto;
6151
6384
  }
6152
6385
 
6386
+ /* src/dashboard/app/MoveConfirmDialog.module.css */
6387
+ .alinea-MoveConfirmDialog-actions {
6388
+ align-items: center;
6389
+ gap: 8px;
6390
+ margin-left: auto;
6391
+ display: flex;
6392
+ }
6393
+
6153
6394
  /* src/dashboard/app/OverviewCell.module.css */
6154
6395
  .alinea-OverviewCell-text {
6155
6396
  min-width: 0;
@@ -6250,6 +6491,15 @@
6250
6491
  padding: 12px;
6251
6492
  }
6252
6493
  }
6494
+ .alinea-EntryEditorLayout-sidebar {
6495
+ flex-direction: column;
6496
+ flex: 1;
6497
+ min-width: 0;
6498
+ height: 100%;
6499
+ min-height: 0;
6500
+ display: flex;
6501
+ position: relative;
6502
+ }
6253
6503
 
6254
6504
  /* src/dashboard/app/pages/RootPage.module.css */
6255
6505
  .alinea-RootPage-customView {
@@ -6658,6 +6908,62 @@
6658
6908
  color: var(--alinea-warning-subtle-fg);
6659
6909
  }
6660
6910
 
6911
+ /* src/dashboard/app/RemoveDialog.module.css */
6912
+ .alinea-RemoveDialog-actions {
6913
+ align-items: center;
6914
+ gap: 8px;
6915
+ margin-left: auto;
6916
+ display: flex;
6917
+ }
6918
+
6919
+ /* src/dashboard/app/RemoveRedirect.module.css */
6920
+ .alinea-RemoveRedirect {
6921
+ align-items: center;
6922
+ gap: 8px;
6923
+ min-width: 0;
6924
+ display: flex;
6925
+ }
6926
+ .alinea-RemoveRedirect-target {
6927
+ border: 1px solid var(--alinea-border);
6928
+ border-radius: var(--alinea-radius);
6929
+ flex-direction: column;
6930
+ flex: 1;
6931
+ min-width: 0;
6932
+ padding: 6px 10px;
6933
+ display: flex;
6934
+ }
6935
+
6936
+ /* src/dashboard/app/SearchBar.module.css */
6937
+ .alinea-SearchBar {
6938
+ border-bottom: 1px solid var(--alinea-border);
6939
+ flex: none;
6940
+ align-items: center;
6941
+ min-width: 0;
6942
+ height: 44px;
6943
+ padding: 0 12px 0 14px;
6944
+ display: flex;
6945
+ }
6946
+ .alinea-SearchBar-search {
6947
+ flex: 1;
6948
+ align-items: center;
6949
+ gap: 8px;
6950
+ min-width: 0;
6951
+ display: flex;
6952
+ }
6953
+ .alinea-SearchBar-divider {
6954
+ background: var(--alinea-border);
6955
+ flex-shrink: 0;
6956
+ width: 1px;
6957
+ height: 20px;
6958
+ margin: 0 8px;
6959
+ }
6960
+ .alinea-SearchBar-controls {
6961
+ flex-shrink: 0;
6962
+ align-items: center;
6963
+ gap: 4px;
6964
+ display: flex;
6965
+ }
6966
+
6661
6967
  /* src/dashboard/app/SidebarTree.module.css */
6662
6968
  .alinea-SidebarTree-tree {
6663
6969
  flex-direction: column;
@@ -6718,34 +7024,6 @@
6718
7024
  .alinea-SidebarTree-item.alinea-is-archived[aria-selected=true] [data-slot=tree-item-label] {
6719
7025
  opacity: 1;
6720
7026
  }
6721
- .alinea-SidebarTree-status {
6722
- border-radius: var(--alinea-radius-sm);
6723
- width: 18px;
6724
- height: 18px;
6725
- color: var(--alinea-fg-muted);
6726
- background: var(--alinea-muted);
6727
- flex-shrink: 0;
6728
- justify-content: center;
6729
- align-items: center;
6730
- display: inline-flex;
6731
- }
6732
- .alinea-SidebarTree-status-icon {
6733
- width: 13px;
6734
- height: 13px;
6735
- }
6736
- .alinea-SidebarTree-status.alinea-is-draft {
6737
- color: var(--alinea-status-draft-fg);
6738
- background: var(--alinea-status-draft);
6739
- }
6740
- .alinea-SidebarTree-status.alinea-is-unpublished {
6741
- color: var(--alinea-status-unpublished-fg);
6742
- background: var(--alinea-status-unpublished);
6743
- }
6744
- .alinea-SidebarTree-status.alinea-is-archived,
6745
- .alinea-SidebarTree-status.alinea-is-untranslated {
6746
- color: var(--alinea-fg-muted);
6747
- background: var(--alinea-muted);
6748
- }
6749
7027
  .alinea-SidebarTree-rootButton {
6750
7028
  box-sizing: border-box;
6751
7029
  border-radius: var(--alinea-radius);
@@ -7502,75 +7780,11 @@ button {
7502
7780
  }
7503
7781
 
7504
7782
  /* src/field/link/LinkField.module.css */
7505
- .alinea-LinkFieldView-inputHeader {
7506
- min-height: calc(1.5 * var(--alinea-font-size-base) + 16px);
7507
- }
7508
- .alinea-LinkFieldView-label {
7509
- flex: 0 auto;
7510
- align-self: stretch;
7511
- align-items: center;
7512
- gap: 8px;
7513
- min-width: 0;
7514
- height: 100%;
7515
- display: inline-flex;
7516
- }
7517
- .alinea-LinkFieldView-label.alinea-is-loading {
7518
- min-width: 180px;
7519
- }
7520
- .alinea-LinkFieldView-label.alinea-is-missing {
7521
- color: var(--alinea-fg-muted);
7522
- }
7523
- .alinea-LinkFieldView-label.alinea-is-missing .alinea-LinkFieldView-imagePlaceholder {
7524
- animation: none;
7525
- }
7526
- .alinea-LinkFieldView-labelText {
7527
- flex: auto;
7528
- align-items: center;
7529
- gap: 8px;
7530
- min-width: 0;
7531
- display: inline-flex;
7532
- }
7533
7783
  .alinea-LinkFieldView-icon {
7534
7784
  color: var(--alinea-fg);
7535
7785
  flex-shrink: 0;
7536
7786
  font-size: 16px;
7537
7787
  }
7538
- .alinea-LinkFieldView-label.alinea-is-loading .alinea-LinkFieldView-labelText {
7539
- align-items: center;
7540
- width: 100%;
7541
- }
7542
- .alinea-LinkFieldView-image {
7543
- aspect-ratio: 1;
7544
- object-fit: contain;
7545
- background: var(--alinea-bg-muted);
7546
- border-radius: var(--alinea-radius-sm);
7547
- flex-shrink: 0;
7548
- align-self: center;
7549
- width: 32px;
7550
- height: 32px;
7551
- margin-left: -16px;
7552
- }
7553
- .alinea-LinkFieldView-imagePlaceholder {
7554
- aspect-ratio: 1;
7555
- border-radius: var(--alinea-radius-sm);
7556
- background: color-mix(in srgb, var(--alinea-fg-muted) 16%, transparent);
7557
- flex-shrink: 0;
7558
- align-self: center;
7559
- width: 32px;
7560
- height: 32px;
7561
- margin-left: -16px;
7562
- animation: 1.1s ease-in-out infinite alinea-LinkFieldView-skeleton-pulse;
7563
- }
7564
- .alinea-LinkFieldView-title {
7565
- color: var(--alinea-fg-muted);
7566
- text-overflow: ellipsis;
7567
- white-space: nowrap;
7568
- min-width: 0;
7569
- max-width: 240px;
7570
- font-size: 13px;
7571
- font-weight: 600;
7572
- overflow: hidden;
7573
- }
7574
7788
  .alinea-LinkFieldView-type {
7575
7789
  flex: 0 auto;
7576
7790
  max-width: 120px;
@@ -7578,12 +7792,11 @@ button {
7578
7792
  .alinea-LinkFieldView-previewImage,
7579
7793
  .alinea-LinkFieldView-previewImagePlaceholder {
7580
7794
  aspect-ratio: 1;
7581
- border-radius: var(--alinea-radius);
7795
+ border-radius: 6px;
7582
7796
  flex-shrink: 0;
7583
7797
  align-self: center;
7584
- width: 36px;
7585
- height: 36px;
7586
- margin: -2px 8px -2px -8px;
7798
+ width: 24px;
7799
+ height: 24px;
7587
7800
  }
7588
7801
  .alinea-LinkFieldView-previewImage {
7589
7802
  background: var(--alinea-bg-muted);
@@ -7593,14 +7806,6 @@ button {
7593
7806
  background: color-mix(in srgb, var(--alinea-fg-muted) 16%, transparent);
7594
7807
  animation: 1.1s ease-in-out infinite alinea-LinkFieldView-skeleton-pulse;
7595
7808
  }
7596
- .alinea-LinkFieldView-meta {
7597
- color: var(--alinea-fg-muted);
7598
- text-overflow: ellipsis;
7599
- white-space: nowrap;
7600
- min-width: 0;
7601
- font-size: 12px;
7602
- overflow: hidden;
7603
- }
7604
7809
  .alinea-LinkFieldView-metaLabel {
7605
7810
  max-width: 240px;
7606
7811
  }
@@ -7625,17 +7830,6 @@ button {
7625
7830
  font-weight: 400;
7626
7831
  overflow: hidden;
7627
7832
  }
7628
- .alinea-LinkFieldView-skeleton {
7629
- border-radius: var(--alinea-radius-sm);
7630
- background: color-mix(in srgb, var(--alinea-fg-muted) 16%, transparent);
7631
- width: 48px;
7632
- height: 10px;
7633
- animation: 1.1s ease-in-out infinite alinea-LinkFieldView-skeleton-pulse;
7634
- display: inline-block;
7635
- }
7636
- .alinea-LinkFieldView-skeleton.alinea-is-wide {
7637
- width: 120px;
7638
- }
7639
7833
  .alinea-LinkFieldView-create {
7640
7834
  flex-wrap: wrap;
7641
7835
  justify-content: center;
@@ -7646,22 +7840,6 @@ button {
7646
7840
  .alinea-LinkFieldView-createButton {
7647
7841
  flex-shrink: 0;
7648
7842
  }
7649
- .alinea-LinkFieldView-rowAction {
7650
- flex: 1;
7651
- align-self: stretch;
7652
- gap: 8px;
7653
- min-width: 0;
7654
- padding: 0;
7655
- }
7656
- .alinea-LinkFieldView-rowAction[data-variant]:hover {
7657
- background: none;
7658
- }
7659
- .alinea-LinkFieldView-settingsSeparator {
7660
- background-color: var(--alinea-border);
7661
- border: none;
7662
- height: 1px;
7663
- margin: 4px 8px;
7664
- }
7665
7843
  @keyframes alinea-LinkFieldView-skeleton-pulse {
7666
7844
  0%, 100% {
7667
7845
  opacity: .45;
@@ -7682,34 +7860,25 @@ button {
7682
7860
  .alinea-ListFieldCreateActions-button {
7683
7861
  flex-shrink: 0;
7684
7862
  }
7685
- .alinea-ListFieldView-insertAction {
7686
- white-space: nowrap;
7687
- justify-content: flex-start;
7688
- align-self: stretch;
7689
- width: 100%;
7690
- min-width: 0;
7691
- }
7692
7863
  .alinea-ListFieldTypePicker-trigger {
7693
7864
  flex-shrink: 0;
7694
7865
  width: 2rem;
7695
7866
  min-width: 2rem;
7696
7867
  }
7697
- .alinea-ListFieldTypePicker-trigger.alinea-ListFieldView-insertAction {
7698
- justify-content: flex-start;
7699
- width: 100%;
7700
- min-width: 0;
7701
- }
7702
7868
  .alinea-ListFieldTypePicker-popover {
7703
7869
  width: 280px;
7704
7870
  min-width: 280px;
7705
7871
  padding: 0;
7706
7872
  overflow: hidden;
7707
7873
  }
7708
- .alinea-ListFieldRowHeader-separator {
7709
- background-color: var(--alinea-border);
7710
- border: none;
7711
- height: 1px;
7712
- margin: 4px 8px;
7874
+ .alinea-ListFieldRowSheet-anchor {
7875
+ align-items: flex-end;
7876
+ gap: 4px;
7877
+ display: flex;
7878
+ }
7879
+ .alinea-ListFieldRowSheet-anchor-field {
7880
+ flex: 1;
7881
+ min-width: 0;
7713
7882
  }
7714
7883
 
7715
7884
  /* src/field/localiser/LocalisedField.module.css */
@@ -7860,8 +8029,17 @@ button {
7860
8029
  [data-richtext-block-host]:last-child > .alinea-RichTextBlock {
7861
8030
  margin-bottom: 0;
7862
8031
  }
7863
- .alinea-RichTextBlock-dragHandle {
7864
- touch-action: none;
8032
+ .alinea-RichTextBlock-header[draggable=true] {
8033
+ cursor: grab;
8034
+ }
8035
+ .alinea-RichTextBlock-anchor {
8036
+ align-items: flex-end;
8037
+ gap: 4px;
8038
+ display: flex;
8039
+ }
8040
+ .alinea-RichTextBlock-anchor-field {
8041
+ flex: 1;
8042
+ min-width: 0;
7865
8043
  }
7866
8044
 
7867
8045
  /* src/field/richtext/RichTextExtensions.module.css */
@@ -8141,8 +8319,11 @@ button {
8141
8319
  .alinea-RichTextInsertMenu {
8142
8320
  z-index: 1;
8143
8321
  }
8144
- .alinea-RichTextInsertMenu-label {
8145
- min-width: 0;
8322
+ .alinea-RichTextInsertMenu-popover {
8323
+ width: 280px;
8324
+ min-width: 280px;
8325
+ padding: 0;
8326
+ overflow: hidden;
8146
8327
  }
8147
8328
 
8148
8329
  /* src/field/richtext/RichTextToolbar.module.css */