alinea 2.0.0-preview.12 → 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 (264) 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 +676 -280
  18. package/dist/chunks/{bun-sqlite-5SHXN3AT.js → bun-sqlite-RI6BYU5S.js} +3 -3
  19. package/dist/chunks/{chunk-OHGAVV4G.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/serve/mcp/DevMcp.js +1 -1
  35. package/dist/cli/serve/mcp/McpTools.js +29 -1
  36. package/dist/cloud/CloudRemote.js +1 -1
  37. package/dist/components/Alert.js +2 -2
  38. package/dist/components/AppShell.js +2 -2
  39. package/dist/components/Badge.d.ts +3 -1
  40. package/dist/components/Badge.js +5 -3
  41. package/dist/components/Breadcrumbs.js +7 -7
  42. package/dist/components/Button.d.ts +6 -1
  43. package/dist/components/Button.js +16 -7
  44. package/dist/components/Calendar.js +20 -20
  45. package/dist/components/Checkbox.js +7 -7
  46. package/dist/components/CheckboxGroup.js +4 -4
  47. package/dist/components/Code.js +2 -2
  48. package/dist/components/Collapsible.js +3 -3
  49. package/dist/components/ColorSwatch.js +2 -2
  50. package/dist/components/ColorSwatchPicker.js +2 -2
  51. package/dist/components/ComboBox.js +7 -7
  52. package/dist/components/Command.js +14 -13
  53. package/dist/components/ContentCard.d.ts +3 -1
  54. package/dist/components/ContentCard.js +46 -24
  55. package/dist/components/ContentGrid.js +17 -17
  56. package/dist/components/DataList.js +2 -2
  57. package/dist/components/DateField.js +2 -2
  58. package/dist/components/DatePicker.js +2 -2
  59. package/dist/components/DateRangePicker.js +2 -2
  60. package/dist/components/Dialog.js +7 -7
  61. package/dist/components/DropZone.js +6 -6
  62. package/dist/components/DropdownMenu.js +9 -9
  63. package/dist/components/Empty.js +5 -5
  64. package/dist/components/Field.js +8 -8
  65. package/dist/components/List.js +27 -27
  66. package/dist/components/MediaPreview.js +5 -5
  67. package/dist/components/MultipleSelect.js +22 -22
  68. package/dist/components/NavRail.js +4 -4
  69. package/dist/components/NumberField.js +4 -4
  70. package/dist/components/Page.js +3 -3
  71. package/dist/components/Popover.js +2 -2
  72. package/dist/components/PreviewFrame.js +9 -9
  73. package/dist/components/RadioGroup.js +9 -9
  74. package/dist/components/Resizable.js +4 -4
  75. package/dist/components/SearchField.d.ts +6 -1
  76. package/dist/components/SearchField.js +5 -3
  77. package/dist/components/Select.js +13 -13
  78. package/dist/components/Sheet.d.ts +50 -0
  79. package/dist/components/Sheet.js +202 -0
  80. package/dist/components/Sidebar.js +4 -4
  81. package/dist/components/SortableList.d.ts +34 -30
  82. package/dist/components/SortableList.js +161 -264
  83. package/dist/components/Spinner.js +2 -2
  84. package/dist/components/Surface.js +2 -2
  85. package/dist/components/Switch.js +8 -8
  86. package/dist/components/Table.d.ts +3 -1
  87. package/dist/components/Table.js +57 -46
  88. package/dist/components/Tabs.js +5 -5
  89. package/dist/components/TagGroup.js +8 -8
  90. package/dist/components/TextField.js +10 -10
  91. package/dist/components/TimeField.js +6 -6
  92. package/dist/components/Timestamp.js +1 -1
  93. package/dist/components/ToggleGroup.js +2 -2
  94. package/dist/components/Toolbar.js +2 -2
  95. package/dist/components/Tooltip.js +5 -5
  96. package/dist/components/Tree.js +24 -24
  97. package/dist/components/internal/DateControl.js +12 -12
  98. package/dist/components/internal/ListBoxOption.js +6 -6
  99. package/dist/components/internal/Locale.js +2 -2
  100. package/dist/components/internal/PopoverSurface.js +4 -4
  101. package/dist/components/internal/SelectionCheckbox.js +5 -5
  102. package/dist/components/internal/Slot.js +1 -1
  103. package/dist/components/internal/ToggleButton.js +3 -3
  104. package/dist/components/internal/Trigger.js +2 -2
  105. package/dist/components/internal/sortableDrag.d.ts +19 -0
  106. package/dist/components/internal/sortableDrag.js +175 -0
  107. package/dist/components/internal/useDragDrop.js +2 -2
  108. package/dist/components.d.ts +1 -0
  109. package/dist/components.js +1 -0
  110. package/dist/core/Config.d.ts +6 -1
  111. package/dist/core/Document.d.ts +9 -1
  112. package/dist/core/Document.js +31 -6
  113. package/dist/core/Overview.d.ts +2 -4
  114. package/dist/core/TextDoc.d.ts +4 -0
  115. package/dist/core/Validation.d.ts +0 -1
  116. package/dist/core/Validation.js +0 -6
  117. package/dist/core/field/RichTextField.js +23 -4
  118. package/dist/core/media/MediaTypes.js +1 -1
  119. package/dist/core/source/GithubSource.d.ts +4 -0
  120. package/dist/core/source/GithubSource.js +127 -25
  121. package/dist/core/source/GithubUsage.d.ts +21 -0
  122. package/dist/core/source/GithubUsage.js +47 -0
  123. package/dist/dashboard/App.d.ts +2 -2
  124. package/dist/dashboard/App.js +5 -3
  125. package/dist/dashboard/ViewKeys.d.ts +1 -0
  126. package/dist/dashboard/ViewKeys.js +1 -0
  127. package/dist/dashboard/app/ActivityStatus.js +7 -7
  128. package/dist/dashboard/app/AuthView.js +5 -5
  129. package/dist/dashboard/app/BlockSheet.d.ts +50 -0
  130. package/dist/dashboard/app/BlockSheet.js +207 -0
  131. package/dist/dashboard/app/BlockSheetStoryFrame.d.ts +6 -0
  132. package/dist/dashboard/app/BlockSheetStoryFrame.js +29 -0
  133. package/dist/dashboard/app/CompactField.js +16 -16
  134. package/dist/dashboard/app/DashboardLayout.js +3 -1
  135. package/dist/dashboard/app/EntryFields.js +2 -2
  136. package/dist/dashboard/app/EntryHeader.js +33 -34
  137. package/dist/dashboard/app/EntryReferences.js +7 -7
  138. package/dist/dashboard/app/EntrySidebar.js +15 -15
  139. package/dist/dashboard/app/EntrySidebarPreview.js +3 -3
  140. package/dist/dashboard/app/EntryStatusIcon.d.ts +23 -0
  141. package/dist/dashboard/app/EntryStatusIcon.js +58 -0
  142. package/dist/dashboard/app/EntryValidationModal.d.ts +6 -5
  143. package/dist/dashboard/app/EntryValidationModal.js +20 -20
  144. package/dist/dashboard/app/Explorer.d.ts +3 -1
  145. package/dist/dashboard/app/Explorer.js +48 -44
  146. package/dist/dashboard/app/ExplorerBatchActions.d.ts +3 -1
  147. package/dist/dashboard/app/ExplorerBatchActions.js +68 -43
  148. package/dist/dashboard/app/ExplorerCards.js +7 -1
  149. package/dist/dashboard/app/ExplorerControls.js +6 -6
  150. package/dist/dashboard/app/ExplorerList.js +5 -5
  151. package/dist/dashboard/app/ExplorerModal.js +2 -2
  152. package/dist/dashboard/app/ExplorerTable.js +11 -8
  153. package/dist/dashboard/app/ImageEditor.js +28 -28
  154. package/dist/dashboard/app/ImagePicker.js +3 -13
  155. package/dist/dashboard/app/LinkPicker.js +28 -26
  156. package/dist/dashboard/app/LocaleMenu.js +4 -4
  157. package/dist/dashboard/app/MediaPreviewCell.js +1 -1
  158. package/dist/dashboard/app/MoveConfirmDialog.d.ts +5 -0
  159. package/dist/dashboard/app/MoveConfirmDialog.js +79 -0
  160. package/dist/dashboard/app/OverviewCell.js +8 -13
  161. package/dist/dashboard/app/PendingUploadsView.js +3 -3
  162. package/dist/dashboard/app/ReadOnlyBadge.d.ts +1 -1
  163. package/dist/dashboard/app/RemoveDialog.d.ts +17 -0
  164. package/dist/dashboard/app/{DeleteDialog.js → RemoveDialog.js} +67 -27
  165. package/dist/dashboard/app/RemoveRedirect.d.ts +7 -0
  166. package/dist/dashboard/app/RemoveRedirect.js +123 -0
  167. package/dist/dashboard/app/SearchBar.d.ts +9 -0
  168. package/dist/dashboard/app/SearchBar.js +31 -0
  169. package/dist/dashboard/app/SidebarTree.js +27 -72
  170. package/dist/dashboard/app/WorkspaceMenu.js +7 -7
  171. package/dist/dashboard/app/WorkspaceRoots.js +12 -12
  172. package/dist/dashboard/app/editor/FileEditor.js +14 -14
  173. package/dist/dashboard/app/modals/CreateEntry.js +3 -3
  174. package/dist/dashboard/app/pages/EntryPage.d.ts +2 -1
  175. package/dist/dashboard/app/pages/EntryPage.js +34 -15
  176. package/dist/dashboard/app/pages/SplashPage.js +37 -37
  177. package/dist/dashboard/app/pages/UsersPage.js +12 -12
  178. package/dist/dashboard/app/ui/DashboardModal.js +15 -14
  179. package/dist/dashboard/atoms/dashboard.js +1 -1
  180. package/dist/dashboard/atoms/entry.js +1 -14
  181. package/dist/dashboard/atoms/entryTable.js +1 -0
  182. package/dist/dashboard/atoms/explorer.d.ts +4 -0
  183. package/dist/dashboard/atoms/explorer.js +19 -7
  184. package/dist/dashboard/atoms/graph.js +1 -1
  185. package/dist/dashboard/atoms/link.js +5 -2
  186. package/dist/dashboard/atoms/move.d.ts +5 -0
  187. package/dist/dashboard/atoms/move.js +29 -3
  188. package/dist/dashboard/atoms/moveConfirmation.d.ts +34 -0
  189. package/dist/dashboard/atoms/moveConfirmation.js +95 -0
  190. package/dist/dashboard/atoms/nav.d.ts +9 -5
  191. package/dist/dashboard/atoms/nav.js +120 -45
  192. package/dist/dashboard/atoms/overview.d.ts +6 -5
  193. package/dist/dashboard/atoms/overview.js +2 -16
  194. package/dist/dashboard/atoms/remove.d.ts +112 -0
  195. package/dist/dashboard/atoms/remove.js +268 -0
  196. package/dist/dashboard/atoms/root.d.ts +2 -2
  197. package/dist/dashboard/atoms/root.js +41 -26
  198. package/dist/dashboard/atoms/user.js +1 -1
  199. package/dist/dashboard/atoms/utils.js +1 -1
  200. package/dist/dashboard/boot/Boot.js +25 -17
  201. package/dist/dashboard/boot/DashboardWorker.d.ts +1 -0
  202. package/dist/dashboard/boot/DashboardWorker.js +10 -46
  203. package/dist/dashboard/boot/LoadWorker.js +17 -10
  204. package/dist/dashboard/cms/EntryTable.js +8 -5
  205. package/dist/database/BrowserEntryStore.d.ts +12 -62
  206. package/dist/database/BrowserEntryStore.js +97 -196
  207. package/dist/database/DatabaseTables.js +2 -2
  208. package/dist/database/EntryDatabase.js +21 -1
  209. package/dist/database/EntryTransaction.js +0 -35
  210. package/dist/database/EntryUrlAliases.d.ts +4 -0
  211. package/dist/database/EntryUrlAliases.js +16 -10
  212. package/dist/database/driver/RuntimeDatabase.js +3 -3
  213. package/dist/database/driver/WasmDatabase.d.ts +5 -18
  214. package/dist/database/driver/WasmDatabase.js +15 -16
  215. package/dist/database/entry/EntryTable.js +2 -2
  216. package/dist/database/query/EntryQuery.js +1 -1
  217. package/dist/database/query/Relation.js +1 -1
  218. package/dist/database/query/Search.js +2 -2
  219. package/dist/field/code/CodeField.view.js +16 -16
  220. package/dist/field/link/EntryLink.d.ts +4 -4
  221. package/dist/field/link/FileLink.d.ts +4 -4
  222. package/dist/field/link/ImageLink.d.ts +4 -4
  223. package/dist/field/link/Link.d.ts +1 -1
  224. package/dist/field/link/LinkField.d.ts +5 -0
  225. package/dist/field/link/LinkField.view.js +244 -370
  226. package/dist/field/link/UrlLink.d.ts +4 -4
  227. package/dist/field/list/ListField.d.ts +2 -0
  228. package/dist/field/list/ListField.view.d.ts +15 -0
  229. package/dist/field/list/ListField.view.js +343 -301
  230. package/dist/field/metadata/MetadataField.d.ts +17 -7
  231. package/dist/field/metadata/MetadataField.js +14 -3
  232. package/dist/field/metadata/MetadataField.view.d.ts +1 -0
  233. package/dist/field/metadata/MetadataField.view.js +25 -21
  234. package/dist/field/richtext/RichTextBlock.d.ts +3 -1
  235. package/dist/field/richtext/RichTextBlock.js +177 -74
  236. package/dist/field/richtext/RichTextBlockHost.js +1 -1
  237. package/dist/field/richtext/RichTextExtensions.js +31 -31
  238. package/dist/field/richtext/RichTextField.view.js +14 -8
  239. package/dist/field/richtext/RichTextInsertMenu.js +43 -27
  240. package/dist/field/views.js +2 -0
  241. package/dist/index.css +490 -309
  242. package/dist/picker/url/UrlPicker.js +1 -0
  243. package/docs/components/badge.md +1 -0
  244. package/docs/components/button.md +1 -0
  245. package/docs/components/content-card.md +1 -0
  246. package/docs/components/search-field.md +1 -0
  247. package/docs/components/sortable-list.md +5 -20
  248. package/docs/components/table.md +1 -0
  249. package/docs/configuration.md +1 -1
  250. package/docs/deploy/self-host.md +1 -1
  251. package/docs/deploy.md +5 -4
  252. package/docs/fields.md +1 -1
  253. package/docs/index.md +1 -1
  254. package/docs/instant-publishing.md +7 -22
  255. package/docs/overviews.md +3 -4
  256. package/docs/upgrading.md +3 -2
  257. package/llms-full.txt +31 -55
  258. package/package.json +2 -3
  259. package/dist/core/db/EntryValidationError.d.ts +0 -13
  260. package/dist/core/db/EntryValidationError.js +0 -23
  261. package/dist/dashboard/app/DeleteDialog.d.ts +0 -11
  262. package/dist/dashboard/atoms/delete.d.ts +0 -68
  263. package/dist/dashboard/atoms/delete.js +0 -143
  264. 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 */