alinea 1.7.0 → 2.0.0-preview.0

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 (1383) hide show
  1. package/dist/.init/content/pages/welcome.json +1 -1
  2. package/dist/.init/src/app/(alinea)/api/cms/route.ts +8 -8
  3. package/dist/.init/src/cms.ts +45 -47
  4. package/dist/LICENSES.md +208 -560
  5. package/dist/adapter/core/cms.js +1 -1
  6. package/dist/adapter/core/handler.js +1 -1
  7. package/dist/adapter/core/preview.js +2 -2
  8. package/dist/adapter/core/previewContext.d.ts +1 -1
  9. package/dist/adapter/core/previewContext.js +1 -1
  10. package/dist/adapter/next/cms.d.ts +1 -1
  11. package/dist/adapter/next/cms.js +7 -7
  12. package/dist/adapter/next/context.js +1 -1
  13. package/dist/adapter/next/handler.d.ts +2 -4
  14. package/dist/adapter/next/handler.js +11 -5
  15. package/dist/adapter/next/previews.d.ts +2 -2
  16. package/dist/adapter/next/previews.js +13 -17
  17. package/dist/adapter/next/with-alinea.js +20 -10
  18. package/dist/adapter/vite/plugin.d.ts +2 -0
  19. package/dist/adapter/vite/plugin.js +66 -0
  20. package/dist/backend/Auth.js +1 -1
  21. package/dist/backend/HandleAction.d.ts +1 -0
  22. package/dist/backend/HandleAction.js +2 -1
  23. package/dist/backend/Handler.js +125 -17
  24. package/dist/backend/Previews.d.ts +2 -5
  25. package/dist/backend/api/BasicAuth.d.ts +2 -2
  26. package/dist/backend/api/BasicAuth.js +5 -3
  27. package/dist/backend/api/CreateBackend.d.ts +11 -2
  28. package/dist/backend/api/CreateBackend.js +45 -2502
  29. package/dist/backend/api/DatabaseApi.d.ts +8 -2
  30. package/dist/backend/api/DatabaseApi.js +252 -123
  31. package/dist/backend/api/GithubApi.d.ts +0 -4
  32. package/dist/backend/api/GithubApi.js +11 -7
  33. package/dist/backend/api/OAuth2.d.ts +3 -3
  34. package/dist/backend/api/OAuth2.js +36 -25
  35. package/dist/backend/api/S3Uploads.d.ts +32 -0
  36. package/dist/backend/api/S3Uploads.js +178 -0
  37. package/dist/backend/api/SupabaseUploads.d.ts +28 -0
  38. package/dist/backend/api/SupabaseUploads.js +41 -0
  39. package/dist/backend/api/UploadPaths.d.ts +7 -0
  40. package/dist/backend/api/UploadPaths.js +53 -0
  41. package/dist/backend/api/auth.d.ts +5 -0
  42. package/dist/backend/api/auth.js +15 -0
  43. package/dist/backend/api/database.d.ts +2 -0
  44. package/dist/backend/api/database.js +16 -0
  45. package/dist/backend/api/github.d.ts +3 -0
  46. package/dist/backend/api/github.js +10 -0
  47. package/dist/backend/api/uploads.d.ts +9 -0
  48. package/dist/backend/api/uploads.js +23 -0
  49. package/dist/backend/loader/JsonLoader.js +1 -1
  50. package/dist/backend/resolver/ParsePreview.js +2 -2
  51. package/dist/backend/router/NodeHandler.js +1 -1
  52. package/dist/backend/router/Router.js +32 -6
  53. package/dist/backend/store/GeneratedRelease.js +1 -1
  54. package/dist/backend/store/GeneratedSource.js +1 -1
  55. package/dist/backend/util/ExecGit.js +4 -4
  56. package/dist/backend/util/JWTPreviews.d.ts +3 -3
  57. package/dist/backend/util/JWTPreviews.js +19 -5
  58. package/dist/backend/util/JsonPatch.js +1 -1
  59. package/dist/backend/util/ORM.js +2 -2
  60. package/dist/backend/util/Syncable.js +2 -2
  61. package/dist/backend.d.ts +5 -0
  62. package/dist/backend.js +17 -0
  63. package/dist/bundled.d.ts +8233 -8178
  64. package/dist/chunks/chunk-53DZYORR.js +3705 -0
  65. package/dist/chunks/chunk-7ORQ7BYK.js +1187 -0
  66. package/dist/chunks/chunk-AC4U3IMS.js +205 -0
  67. package/dist/chunks/chunk-BYJRQTFR.js +57 -0
  68. package/dist/chunks/chunk-CQ52GEHY.js +39 -0
  69. package/dist/chunks/chunk-EQ3TDHYD.js +79 -0
  70. package/dist/chunks/chunk-F36YGSHN.js +335 -0
  71. package/dist/chunks/chunk-G6E35DMJ.js +1997 -0
  72. package/dist/chunks/chunk-I4GC3E65.js +170 -0
  73. package/dist/chunks/chunk-I4OYYAX5.js +63 -0
  74. package/dist/chunks/chunk-I7X64JTZ.js +10402 -0
  75. package/dist/chunks/chunk-IWN3T3FL.js +19493 -0
  76. package/dist/chunks/chunk-IYAQC63Y.js +1265 -0
  77. package/dist/chunks/chunk-JFROOUG6.js +6363 -0
  78. package/dist/chunks/chunk-LB3UYTOL.js +95 -0
  79. package/dist/chunks/chunk-LUBOGJCG.js +129 -0
  80. package/dist/chunks/chunk-NWQXN4SB.js +227 -0
  81. package/dist/chunks/chunk-RKDPDEF7.js +160 -0
  82. package/dist/chunks/chunk-SJBZFMQ2.js +2966 -0
  83. package/dist/chunks/chunk-STAJCW4Z.js +322 -0
  84. package/dist/chunks/chunk-TL7ZW6BX.js +17963 -0
  85. package/dist/chunks/chunk-U4VOHNR2.js +210 -0
  86. package/dist/chunks/chunk-U5Z2VE7Z.js +120 -0
  87. package/dist/chunks/chunk-X47OVDF3.js +1974 -0
  88. package/dist/chunks/chunk-Y7XOMJOC.js +791 -0
  89. package/dist/chunks/chunk-YK3OSMDM.js +5473 -0
  90. package/dist/chunks/crypto-UO2XRCJS.js +11 -0
  91. package/dist/cli/Generate.js +9 -4
  92. package/dist/cli/Init.js +1 -1
  93. package/dist/cli/Serve.d.ts +2 -2
  94. package/dist/cli/Serve.js +54 -100
  95. package/dist/cli/bin.js +85 -12
  96. package/dist/cli/build/BuildEmitter.js +1 -1
  97. package/dist/cli/build/BuildOptions.js +1 -1
  98. package/dist/cli/generate/CompileConfig.d.ts +1 -1
  99. package/dist/cli/generate/CompileConfig.js +1 -1
  100. package/dist/cli/generate/CopyStaticFiles.js +2 -1
  101. package/dist/cli/generate/DevDB.js +2 -8
  102. package/dist/cli/generate/FillCache.js +2 -2
  103. package/dist/cli/generate/GenerateDashboard.js +1 -1
  104. package/dist/cli/generate/LoadConfig.js +2 -3
  105. package/dist/cli/serve/CreateLocalServer.d.ts +1 -1
  106. package/dist/cli/serve/CreateLocalServer.js +81 -26
  107. package/dist/cli/serve/DevServer.d.ts +19 -0
  108. package/dist/cli/serve/DevServer.js +134 -0
  109. package/dist/cli/serve/GitHistory.d.ts +1 -2
  110. package/dist/cli/serve/GitHistory.js +15 -2
  111. package/dist/cli/serve/LiveReload.js +1 -1
  112. package/dist/cli/serve/LocalAuth.js +1 -1
  113. package/dist/cli/serve/MemoryDrafts.js +1 -1
  114. package/dist/cli/serve/StartServer.js +1 -1
  115. package/dist/cli/static/init/cms.js +45 -47
  116. package/dist/cli/static/init/next-handler.js +8 -8
  117. package/dist/cli/util/CommitMessage.js +1 -1
  118. package/dist/cli/util/CommitSha.js +1 -1
  119. package/dist/cli/util/Dirname.js +1 -1
  120. package/dist/cli/util/Emitter.js +1 -1
  121. package/dist/cli/util/EnsureEnv.js +1 -1
  122. package/dist/cli/util/EnsureLibs.js +1 -1
  123. package/dist/cli/util/EnsureNode.js +1 -1
  124. package/dist/cli/util/ExternalPlugin.js +595 -486
  125. package/dist/cli/util/FS.js +1 -1
  126. package/dist/cli/util/FindConfigFile.js +1 -1
  127. package/dist/cli/util/ForwardCommand.js +1 -1
  128. package/dist/cli/util/IgnorePlugin.js +1 -1
  129. package/dist/cli/util/PublicDefines.js +1 -1
  130. package/dist/cli/util/Report.js +1 -1
  131. package/dist/cli/util/ViewsPlugin.js +2 -2
  132. package/dist/cli/util/WarnPublicEnv.js +1 -1
  133. package/dist/cli/util/Watcher.js +1 -1
  134. package/dist/cloud/AuthResult.js +1 -1
  135. package/dist/cloud/CloudConfig.d.ts +1 -0
  136. package/dist/cloud/CloudConfig.js +2 -1
  137. package/dist/cloud/CloudRemote.d.ts +10 -4
  138. package/dist/cloud/CloudRemote.js +56 -9
  139. package/dist/components/Breadcrumbs.d.ts +3 -0
  140. package/dist/components/Breadcrumbs.js +42 -0
  141. package/dist/components/Button.d.ts +10 -0
  142. package/dist/components/Button.js +57 -0
  143. package/dist/components/Calendar.d.ts +3 -0
  144. package/dist/components/Calendar.js +94 -0
  145. package/dist/components/Checkbox.d.ts +9 -0
  146. package/dist/components/Checkbox.js +75 -0
  147. package/dist/components/CheckboxGroup.d.ts +6 -0
  148. package/dist/components/CheckboxGroup.js +45 -0
  149. package/dist/components/ColorSwatch.d.ts +2 -0
  150. package/dist/components/ColorSwatch.js +45 -0
  151. package/dist/components/ColorSwatchPicker.d.ts +3 -0
  152. package/dist/components/ColorSwatchPicker.js +66 -0
  153. package/dist/components/ComboBox.d.ts +13 -0
  154. package/dist/components/ComboBox.js +147 -0
  155. package/dist/components/DateField.d.ts +5 -0
  156. package/dist/components/DateField.js +61 -0
  157. package/dist/components/DatePicker.d.ts +5 -0
  158. package/dist/components/DatePicker.js +78 -0
  159. package/dist/components/DateRangePicker.d.ts +5 -0
  160. package/dist/components/DateRangePicker.js +95 -0
  161. package/dist/components/Dialog.d.ts +3 -0
  162. package/dist/components/Dialog.js +43 -0
  163. package/dist/components/Disclosure.d.ts +5 -0
  164. package/dist/components/Disclosure.js +106 -0
  165. package/dist/components/DropZone.d.ts +4 -0
  166. package/dist/components/DropZone.js +41 -0
  167. package/dist/components/FoldIcon.d.ts +6 -0
  168. package/dist/components/FoldIcon.js +31 -0
  169. package/dist/components/Icon.d.ts +7 -0
  170. package/dist/components/Icon.js +40 -0
  171. package/dist/components/Label.d.ts +48 -0
  172. package/dist/components/Label.js +210 -0
  173. package/dist/components/Link.d.ts +5 -0
  174. package/dist/components/Link.js +42 -0
  175. package/dist/components/List.d.ts +99 -0
  176. package/dist/components/List.js +397 -0
  177. package/dist/components/Menu.d.ts +16 -0
  178. package/dist/components/Menu.js +95 -0
  179. package/dist/components/Modal.d.ts +7 -0
  180. package/dist/components/Modal.js +58 -0
  181. package/dist/components/MultipleSelect.d.ts +25 -0
  182. package/dist/components/MultipleSelect.js +278 -0
  183. package/dist/components/NumberField.d.ts +6 -0
  184. package/dist/components/NumberField.js +90 -0
  185. package/dist/components/Popover.d.ts +6 -0
  186. package/dist/components/Popover.js +42 -0
  187. package/dist/components/ProgressCircle.d.ts +6 -0
  188. package/dist/components/ProgressCircle.js +96 -0
  189. package/dist/components/RadioGroup.d.ts +8 -0
  190. package/dist/components/RadioGroup.js +64 -0
  191. package/dist/components/SearchField.d.ts +8 -0
  192. package/dist/components/SearchField.js +86 -0
  193. package/dist/components/Select.d.ts +13 -0
  194. package/dist/components/Select.js +150 -0
  195. package/dist/components/Surface.d.ts +15 -0
  196. package/dist/components/Surface.js +53 -0
  197. package/dist/components/Switch.d.ts +5 -0
  198. package/dist/components/Switch.js +47 -0
  199. package/dist/components/Table.d.ts +14 -0
  200. package/dist/components/Table.js +147 -0
  201. package/dist/components/Tabs.d.ts +13 -0
  202. package/dist/components/Tabs.js +96 -0
  203. package/dist/components/TagGroup.d.ts +10 -0
  204. package/dist/components/TagGroup.js +81 -0
  205. package/dist/components/TextField.d.ts +13 -0
  206. package/dist/components/TextField.js +77 -0
  207. package/dist/components/TimeField.d.ts +5 -0
  208. package/dist/components/TimeField.js +55 -0
  209. package/dist/components/Toggle.d.ts +8 -0
  210. package/dist/components/Toggle.js +61 -0
  211. package/dist/components/Toolbar.d.ts +8 -0
  212. package/dist/components/Toolbar.js +80 -0
  213. package/dist/components/Tooltip.d.ts +7 -0
  214. package/dist/components/Tooltip.js +54 -0
  215. package/dist/components/Tree.d.ts +23 -0
  216. package/dist/components/Tree.js +130 -0
  217. package/dist/components.d.ts +38 -0
  218. package/dist/components.js +39 -0
  219. package/dist/config.js +1 -1
  220. package/dist/core/CMS.js +1 -1
  221. package/dist/core/Client.d.ts +11 -7
  222. package/dist/core/Client.js +53 -10
  223. package/dist/core/Config.d.ts +2 -0
  224. package/dist/core/Config.js +1 -3
  225. package/dist/core/Connection.d.ts +28 -9
  226. package/dist/core/Document.js +10 -8
  227. package/dist/core/Draft.js +1 -1
  228. package/dist/core/Entry.d.ts +6 -0
  229. package/dist/core/Entry.js +16 -1
  230. package/dist/core/EntryFields.d.ts +4 -0
  231. package/dist/core/EntryFields.js +4 -2
  232. package/dist/core/EntryRecord.js +1 -1
  233. package/dist/core/Expr.d.ts +1 -0
  234. package/dist/core/Expr.js +1 -1
  235. package/dist/core/Field.d.ts +46 -5
  236. package/dist/core/Field.js +56 -10
  237. package/dist/core/Graph.d.ts +6 -0
  238. package/dist/core/Graph.js +1 -1
  239. package/dist/core/HttpError.js +1 -1
  240. package/dist/core/Id.js +1 -1
  241. package/dist/core/Infer.d.ts +1 -1
  242. package/dist/core/Internal.js +6 -6
  243. package/dist/core/ListRow.d.ts +10 -0
  244. package/dist/core/ListRow.js +12 -0
  245. package/dist/core/Outcome.js +1 -1
  246. package/dist/core/Page.js +2 -2
  247. package/dist/core/Picker.d.ts +0 -2
  248. package/dist/core/Picker.js +1 -1
  249. package/dist/core/Reference.js +1 -1
  250. package/dist/core/Role.d.ts +3 -0
  251. package/dist/core/Role.js +7 -1
  252. package/dist/core/Root.d.ts +4 -0
  253. package/dist/core/Root.js +7 -2
  254. package/dist/core/Schema.d.ts +0 -2
  255. package/dist/core/Schema.js +2 -16
  256. package/dist/core/Scope.js +1 -1
  257. package/dist/core/Section.js +2 -2
  258. package/dist/core/TextDoc.d.ts +4 -0
  259. package/dist/core/TextDoc.js +3 -1
  260. package/dist/core/Tracker.d.ts +1 -6
  261. package/dist/core/Tracker.js +2 -12
  262. package/dist/core/Trigger.js +1 -1
  263. package/dist/core/Type.d.ts +15 -6
  264. package/dist/core/Type.js +108 -28
  265. package/dist/core/UnionRow.d.ts +11 -0
  266. package/dist/core/UnionRow.js +11 -0
  267. package/dist/core/User.d.ts +7 -1
  268. package/dist/core/User.js +1 -1
  269. package/dist/core/View.js +1 -1
  270. package/dist/core/Workspace.d.ts +4 -1
  271. package/dist/core/Workspace.js +1 -1
  272. package/dist/core/db/CommitRequest.d.ts +2 -0
  273. package/dist/core/db/CommitRequest.js +1 -1
  274. package/dist/core/db/EntryAliases.d.ts +2 -0
  275. package/dist/core/db/EntryAliases.js +28 -0
  276. package/dist/core/db/EntryDB.d.ts +2 -2
  277. package/dist/core/db/EntryDB.js +3 -3
  278. package/dist/core/db/EntryIndex.d.ts +7 -0
  279. package/dist/core/db/EntryIndex.js +168 -26
  280. package/dist/core/db/EntryReference.d.ts +44 -0
  281. package/dist/core/db/EntryReference.js +9 -0
  282. package/dist/core/db/EntryReferenceIndex.d.ts +21 -0
  283. package/dist/core/db/EntryReferenceIndex.js +131 -0
  284. package/dist/core/db/EntryResolver.d.ts +10 -7
  285. package/dist/core/db/EntryResolver.js +90 -35
  286. package/dist/core/db/EntryTransaction.d.ts +1 -1
  287. package/dist/core/db/EntryTransaction.js +395 -57
  288. package/dist/core/db/EntryUrlConflictError.d.ts +11 -0
  289. package/dist/core/db/EntryUrlConflictError.js +16 -0
  290. package/dist/core/db/IndexEvent.d.ts +5 -2
  291. package/dist/core/db/IndexEvent.js +2 -1
  292. package/dist/core/db/LinkResolver.d.ts +1 -1
  293. package/dist/core/db/LinkResolver.js +4 -1
  294. package/dist/core/db/LocalDB.d.ts +4 -2
  295. package/dist/core/db/LocalDB.js +8 -6
  296. package/dist/core/db/Mutation.d.ts +3 -3
  297. package/dist/core/db/Operation.d.ts +8 -3
  298. package/dist/core/db/Operation.js +67 -23
  299. package/dist/core/db/TestDB.d.ts +9 -1
  300. package/dist/core/db/TestDB.js +24 -1
  301. package/dist/core/db/WriteableGraph.d.ts +15 -4
  302. package/dist/core/db/WriteableGraph.js +14 -2
  303. package/dist/core/field/CreateField.d.ts +5 -4
  304. package/dist/core/field/CreateField.js +9 -5
  305. package/dist/core/field/ListField.d.ts +13 -4
  306. package/dist/core/field/ListField.js +146 -13
  307. package/dist/core/field/RecordField.d.ts +5 -3
  308. package/dist/core/field/RecordField.js +58 -2
  309. package/dist/core/field/RichTextField.d.ts +7 -2
  310. package/dist/core/field/RichTextField.js +325 -10
  311. package/dist/core/field/ScalarField.js +9 -7
  312. package/dist/core/field/UnionField.d.ts +2 -3
  313. package/dist/core/field/UnionField.js +61 -12
  314. package/dist/core/media/CreatePreview.browser.js +5 -5
  315. package/dist/core/media/CreatePreview.js +15 -10
  316. package/dist/core/media/IsImage.js +1 -1
  317. package/dist/core/media/MediaAltField.d.ts +9 -0
  318. package/dist/core/media/MediaAltField.js +17 -0
  319. package/dist/core/media/MediaLocation.d.ts +39 -0
  320. package/dist/core/media/MediaLocation.js +55 -2
  321. package/dist/core/media/MediaRoot.d.ts +2 -2
  322. package/dist/core/media/MediaRoot.js +12 -11
  323. package/dist/core/media/MediaTypes.d.ts +21 -15
  324. package/dist/core/media/MediaTypes.js +33 -16
  325. package/dist/core/media/Summary.d.ts +8 -8
  326. package/dist/core/media/Summary.js +1 -1
  327. package/dist/core/media/UploadLimits.d.ts +1 -0
  328. package/dist/core/media/UploadLimits.js +20 -0
  329. package/dist/core/pages/Snippet.js +1 -1
  330. package/dist/core/shape/ListShape.d.ts +1 -47
  331. package/dist/core/shape/ListShape.js +1 -224
  332. package/dist/core/source/CombinedSource.js +1 -1
  333. package/dist/core/source/FSSource.d.ts +3 -2
  334. package/dist/core/source/FSSource.js +25 -12
  335. package/dist/core/source/FilePatch.js +5 -2
  336. package/dist/core/source/GitDelta.js +1 -1
  337. package/dist/core/source/GitUtils.js +1 -1
  338. package/dist/core/source/GithubSource.d.ts +1 -0
  339. package/dist/core/source/GithubSource.js +17 -4
  340. package/dist/core/source/IndexedDBSource.js +23 -11
  341. package/dist/core/source/MemorySource.js +1 -1
  342. package/dist/core/source/ShaMismatchError.js +3 -1
  343. package/dist/core/source/Source.js +1 -1
  344. package/dist/core/source/SourceExport.js +3 -3
  345. package/dist/core/source/Tree.js +1 -1
  346. package/dist/core/source/Utils.js +2 -5
  347. package/dist/core/util/Anchors.d.ts +4 -0
  348. package/dist/core/util/Anchors.js +45 -0
  349. package/dist/core/util/ArrayBuffers.js +1 -1
  350. package/dist/core/util/Assert.js +1 -1
  351. package/dist/core/util/Async.js +1 -1
  352. package/dist/core/util/BufferToBase64.js +1 -1
  353. package/dist/core/util/Callable.js +1 -1
  354. package/dist/core/util/Checks.js +2 -2
  355. package/dist/core/util/CodeGen.js +3 -1
  356. package/dist/core/util/ContentHash.js +1 -1
  357. package/dist/core/util/Debounce.js +1 -1
  358. package/dist/core/util/DeepMap.d.ts +14 -0
  359. package/dist/core/util/DeepMap.js +75 -0
  360. package/dist/core/util/Encoding.js +1 -1
  361. package/dist/core/util/EntryFilenames.d.ts +0 -1
  362. package/dist/core/util/EntryFilenames.js +2 -6
  363. package/dist/core/util/EntryRows.js +1 -1
  364. package/dist/core/util/FractionalIndexing.js +1 -1
  365. package/dist/core/util/GetRandomColor.js +20 -20
  366. package/dist/core/util/Identifiers.js +1 -1
  367. package/dist/core/util/JWT.js +1 -1
  368. package/dist/core/util/Lazy.js +1 -1
  369. package/dist/core/util/LazyRecord.js +1 -1
  370. package/dist/core/util/Logger.js +2 -1
  371. package/dist/core/util/Objects.d.ts +1 -0
  372. package/dist/core/util/Objects.js +5 -1
  373. package/dist/core/util/Paths.js +2 -2
  374. package/dist/core/util/RowId.js +1 -1
  375. package/dist/core/util/Slugs.js +1 -1
  376. package/dist/core/util/Timer.js +1 -1
  377. package/dist/core/util/Types.js +1 -1
  378. package/dist/core/util/Urls.js +1 -1
  379. package/dist/core.d.ts +1 -0
  380. package/dist/core.js +2 -1
  381. package/dist/dashboard/App.css +319 -0
  382. package/dist/dashboard/App.d.ts +8 -8
  383. package/dist/dashboard/App.js +188 -142
  384. package/dist/dashboard/StoryProvider.d.ts +12 -0
  385. package/dist/dashboard/StoryProvider.js +82 -0
  386. package/dist/dashboard/ViewKeys.d.ts +26 -0
  387. package/dist/dashboard/ViewKeys.js +32 -0
  388. package/dist/dashboard/app/AccessDenied.d.ts +5 -0
  389. package/dist/dashboard/app/AccessDenied.js +53 -0
  390. package/dist/dashboard/app/ActivityStatus.d.ts +10 -0
  391. package/dist/dashboard/app/ActivityStatus.js +459 -0
  392. package/dist/dashboard/app/AlineaLogo.d.ts +4 -0
  393. package/dist/dashboard/app/AlineaLogo.js +26 -0
  394. package/dist/dashboard/app/AppShell.d.ts +4 -0
  395. package/dist/dashboard/app/AppShell.js +29 -0
  396. package/dist/dashboard/app/AuthView.d.ts +8 -0
  397. package/dist/dashboard/app/AuthView.js +111 -0
  398. package/dist/dashboard/app/Badge.d.ts +8 -0
  399. package/dist/dashboard/app/Badge.js +42 -0
  400. package/dist/dashboard/app/CompactField.d.ts +14 -0
  401. package/dist/dashboard/app/CompactField.js +178 -0
  402. package/dist/dashboard/app/DashboardErrorBoundary.d.ts +2 -0
  403. package/dist/dashboard/app/DashboardErrorBoundary.js +122 -0
  404. package/dist/dashboard/app/DashboardLayout.d.ts +18 -0
  405. package/dist/dashboard/app/DashboardLayout.js +88 -0
  406. package/dist/dashboard/app/DashboardMeta.d.ts +7 -0
  407. package/dist/dashboard/app/DashboardMeta.js +28 -0
  408. package/dist/dashboard/app/EditorBackButton.d.ts +5 -0
  409. package/dist/dashboard/app/EditorBackButton.js +33 -0
  410. package/dist/dashboard/app/EntryFields.d.ts +21 -0
  411. package/dist/dashboard/app/EntryFields.js +101 -0
  412. package/dist/dashboard/app/EntryHeader.d.ts +15 -0
  413. package/dist/dashboard/app/EntryHeader.js +452 -0
  414. package/dist/dashboard/app/EntryHeaderActions.d.ts +37 -0
  415. package/dist/dashboard/app/EntryHeaderActions.js +71 -0
  416. package/dist/dashboard/app/EntryReferences.d.ts +6 -0
  417. package/dist/dashboard/app/EntryReferences.js +209 -0
  418. package/dist/dashboard/app/EntrySidebar.d.ts +25 -0
  419. package/dist/dashboard/app/EntrySidebar.js +378 -0
  420. package/dist/dashboard/app/EntrySidebarPreview.d.ts +10 -0
  421. package/dist/dashboard/app/EntrySidebarPreview.js +260 -0
  422. package/dist/dashboard/app/EntrySidebarPreview.story.d.ts +1 -0
  423. package/dist/dashboard/app/EntrySidebarToggle.d.ts +6 -0
  424. package/dist/dashboard/app/EntrySidebarToggle.js +29 -0
  425. package/dist/dashboard/app/EntryTranslationBanner.d.ts +7 -0
  426. package/dist/dashboard/app/EntryTranslationBanner.js +60 -0
  427. package/dist/dashboard/app/Explorer.d.ts +41 -0
  428. package/dist/dashboard/app/Explorer.js +804 -0
  429. package/dist/dashboard/app/ExplorerCards.d.ts +12 -0
  430. package/dist/dashboard/app/ExplorerCards.js +389 -0
  431. package/dist/dashboard/app/ExplorerFileCard.d.ts +10 -0
  432. package/dist/dashboard/app/ExplorerFileCard.js +115 -0
  433. package/dist/dashboard/app/ExplorerList.d.ts +9 -0
  434. package/dist/dashboard/app/ExplorerList.js +165 -0
  435. package/dist/dashboard/app/ExplorerModal.d.ts +16 -0
  436. package/dist/dashboard/app/ExplorerModal.js +89 -0
  437. package/dist/dashboard/app/ExplorerPickerContent.d.ts +13 -0
  438. package/dist/dashboard/app/ExplorerPickerContent.js +114 -0
  439. package/dist/dashboard/app/ExplorerTable.d.ts +14 -0
  440. package/dist/dashboard/app/ExplorerTable.js +497 -0
  441. package/dist/dashboard/app/ExternalLinkPicker.d.ts +12 -0
  442. package/dist/dashboard/app/ExternalLinkPicker.js +97 -0
  443. package/dist/dashboard/app/ImagePicker.d.ts +6 -0
  444. package/dist/dashboard/app/ImagePicker.js +145 -0
  445. package/dist/dashboard/app/LinkPicker.d.ts +9 -0
  446. package/dist/dashboard/app/LinkPicker.js +317 -0
  447. package/dist/dashboard/app/LocaleMenu.d.ts +8 -0
  448. package/dist/dashboard/app/LocaleMenu.js +110 -0
  449. package/dist/dashboard/app/LogoShape.d.ts +8 -0
  450. package/dist/dashboard/app/LogoShape.js +60 -0
  451. package/dist/dashboard/app/SidebarTree.d.ts +37 -0
  452. package/dist/dashboard/app/SidebarTree.js +433 -0
  453. package/dist/dashboard/app/StatusBadge.d.ts +6 -0
  454. package/dist/dashboard/app/StatusBadge.js +26 -0
  455. package/dist/dashboard/app/ViewToggle.d.ts +7 -0
  456. package/dist/dashboard/app/ViewToggle.js +27 -0
  457. package/dist/dashboard/app/WorkspaceMenu.d.ts +24 -0
  458. package/dist/dashboard/app/WorkspaceMenu.js +264 -0
  459. package/dist/dashboard/app/WorkspaceMenu.stories.d.ts +5 -0
  460. package/dist/dashboard/app/WorkspaceRoots.d.ts +6 -0
  461. package/dist/dashboard/app/WorkspaceRoots.js +285 -0
  462. package/dist/dashboard/app/editor/FileEditor.d.ts +5 -0
  463. package/dist/dashboard/app/editor/FileEditor.js +190 -0
  464. package/dist/dashboard/app/editor/FilePreview.d.ts +13 -0
  465. package/dist/dashboard/app/editor/FilePreview.js +196 -0
  466. package/dist/dashboard/app/editor/MediaAltField.view.d.ts +5 -0
  467. package/dist/dashboard/app/editor/MediaAltField.view.js +98 -0
  468. package/dist/dashboard/app/modals/CreateEntry.d.ts +1 -0
  469. package/dist/dashboard/app/modals/CreateEntry.js +283 -0
  470. package/dist/dashboard/app/pages/EntryPage.d.ts +11 -0
  471. package/dist/dashboard/app/pages/EntryPage.js +354 -0
  472. package/dist/dashboard/app/pages/RootPage.d.ts +9 -0
  473. package/dist/dashboard/app/pages/RootPage.js +90 -0
  474. package/dist/dashboard/app/pages/UsersPage.d.ts +7 -0
  475. package/dist/dashboard/app/pages/UsersPage.js +552 -0
  476. package/dist/dashboard/app/ui/DashboardModal.d.ts +34 -0
  477. package/dist/dashboard/app/ui/DashboardModal.js +192 -0
  478. package/dist/dashboard/app/ui/Rail.d.ts +18 -0
  479. package/dist/dashboard/app/ui/Rail.js +41 -0
  480. package/dist/dashboard/app/ui/Sidebar.d.ts +15 -0
  481. package/dist/dashboard/app/ui/Sidebar.js +55 -0
  482. package/dist/dashboard/atoms/ReactiveNode.d.ts +41 -0
  483. package/dist/dashboard/atoms/ReactiveNode.js +248 -0
  484. package/dist/dashboard/atoms/activity.d.ts +48 -0
  485. package/dist/dashboard/atoms/activity.js +189 -0
  486. package/dist/dashboard/atoms/auth.d.ts +38 -0
  487. package/dist/dashboard/atoms/auth.js +106 -0
  488. package/dist/dashboard/atoms/config.d.ts +27 -0
  489. package/dist/dashboard/atoms/config.js +49 -0
  490. package/dist/dashboard/atoms/core.d.ts +15 -0
  491. package/dist/dashboard/atoms/core.js +37 -0
  492. package/dist/dashboard/atoms/create.d.ts +13 -0
  493. package/dist/dashboard/atoms/create.js +79 -0
  494. package/dist/dashboard/atoms/dashboard.d.ts +12 -0
  495. package/dist/dashboard/atoms/dashboard.js +71 -0
  496. package/dist/dashboard/atoms/editor.d.ts +80 -0
  497. package/dist/dashboard/atoms/editor.js +132 -0
  498. package/dist/dashboard/atoms/entry.d.ts +223 -0
  499. package/dist/dashboard/atoms/entry.js +609 -0
  500. package/dist/dashboard/atoms/explorer.d.ts +257 -0
  501. package/dist/dashboard/atoms/explorer.js +677 -0
  502. package/dist/dashboard/atoms/graph.d.ts +5 -0
  503. package/dist/dashboard/atoms/graph.js +62 -0
  504. package/dist/dashboard/atoms/link.d.ts +24 -0
  505. package/dist/dashboard/atoms/link.js +82 -0
  506. package/dist/dashboard/atoms/nav.d.ts +47 -0
  507. package/dist/dashboard/atoms/nav.js +220 -0
  508. package/dist/dashboard/atoms/preview.d.ts +4 -0
  509. package/dist/dashboard/atoms/preview.js +10 -0
  510. package/dist/dashboard/atoms/root.d.ts +88 -0
  511. package/dist/dashboard/atoms/root.js +444 -0
  512. package/dist/dashboard/atoms/upload.d.ts +9 -0
  513. package/dist/dashboard/atoms/upload.js +81 -0
  514. package/dist/dashboard/atoms/user.d.ts +9 -0
  515. package/dist/dashboard/atoms/user.js +75 -0
  516. package/dist/dashboard/atoms/utils.d.ts +17 -0
  517. package/dist/dashboard/atoms/utils.js +151 -0
  518. package/dist/dashboard/boot/ActivityEvent.d.ts +44 -0
  519. package/dist/dashboard/boot/ActivityEvent.js +14 -0
  520. package/dist/dashboard/boot/Boot.js +9 -5
  521. package/dist/dashboard/boot/BootDev.js +2 -1
  522. package/dist/dashboard/boot/BootProd.js +1 -1
  523. package/dist/dashboard/boot/DashboardWorker.d.ts +7 -7
  524. package/dist/dashboard/boot/DashboardWorker.js +370 -30
  525. package/dist/dashboard/boot/LoadWorker.js +6 -3
  526. package/dist/dashboard/boot/WorkerDB.d.ts +9 -2
  527. package/dist/dashboard/boot/WorkerDB.js +20 -3
  528. package/dist/dashboard/editor/UseField.d.ts +29 -10
  529. package/dist/dashboard/editor/UseField.js +27 -59
  530. package/dist/dashboard/fixture/cms.d.ts +116 -0
  531. package/dist/dashboard/fixture/cms.js +230 -0
  532. package/dist/dashboard/hook/UseEntryEditor.d.ts +25 -6
  533. package/dist/dashboard/hook/UseEntryEditor.js +34 -12
  534. package/dist/dashboard/hook/UseGraph.d.ts +3 -0
  535. package/dist/dashboard/hook/UseGraph.js +5 -5
  536. package/dist/dashboard/hook/UseLocale.d.ts +4 -1
  537. package/dist/dashboard/hook/UseLocale.js +5 -7
  538. package/dist/dashboard/hook/UseRoot.d.ts +7 -12
  539. package/dist/dashboard/hook/UseRoot.js +8 -5
  540. package/dist/dashboard/hook/UseWorkspace.d.ts +7 -9
  541. package/dist/dashboard/hook/UseWorkspace.js +5 -7
  542. package/dist/dashboard/hooks.d.ts +157 -0
  543. package/dist/dashboard/hooks.js +229 -0
  544. package/dist/dashboard/icons.d.ts +171 -0
  545. package/dist/dashboard/icons.js +2686 -0
  546. package/dist/dashboard/plugins/alineaFixturePlugin.d.ts +2 -0
  547. package/dist/dashboard/plugins/alineaFixturePlugin.js +200 -0
  548. package/dist/dashboard.d.ts +1 -2
  549. package/dist/dashboard.js +6 -2
  550. package/dist/edit.d.ts +1 -1
  551. package/dist/edit.js +2 -4
  552. package/dist/field/check/CheckField.js +3 -3
  553. package/dist/field/check/CheckField.view.d.ts +3 -3
  554. package/dist/field/check/CheckField.view.js +37 -84
  555. package/dist/field/code/CodeField.js +2 -2
  556. package/dist/field/code/CodeField.view.d.ts +21 -3
  557. package/dist/field/code/CodeField.view.js +177 -39
  558. package/dist/field/code/SimpleCodeEditor.d.ts +50 -0
  559. package/dist/field/code/SimpleCodeEditor.js +452 -0
  560. package/dist/field/date/DateField.js +3 -3
  561. package/dist/field/date/DateField.view.d.ts +3 -3
  562. package/dist/field/date/DateField.view.js +26 -26
  563. package/dist/field/hidden/HiddenField.js +2 -2
  564. package/dist/field/hidden/HiddenField.view.js +1 -1
  565. package/dist/field/json/JsonField.js +2 -2
  566. package/dist/field/json/JsonField.view.d.ts +4 -4
  567. package/dist/field/json/JsonField.view.js +53 -76
  568. package/dist/field/link/EntryLink.d.ts +9 -8
  569. package/dist/field/link/EntryLink.js +4 -2
  570. package/dist/field/link/FileLink.d.ts +5 -5
  571. package/dist/field/link/FileLink.js +7 -3
  572. package/dist/field/link/ImageLink.d.ts +4 -2
  573. package/dist/field/link/ImageLink.js +4 -1
  574. package/dist/field/link/Link.d.ts +1 -1
  575. package/dist/field/link/Link.js +1 -1
  576. package/dist/field/link/LinkEditor.d.ts +1 -1
  577. package/dist/field/link/LinkEditor.js +1 -1
  578. package/dist/field/link/LinkField.d.ts +5 -3
  579. package/dist/field/link/LinkField.js +56 -17
  580. package/dist/field/link/LinkField.stories.d.ts +11 -1
  581. package/dist/field/link/LinkField.view.d.ts +8 -10
  582. package/dist/field/link/LinkField.view.js +1444 -362
  583. package/dist/field/link/UrlLink.d.ts +2 -2
  584. package/dist/field/link/UrlLink.js +4 -2
  585. package/dist/field/list/ListField.d.ts +3 -3
  586. package/dist/field/list/ListField.js +5 -6
  587. package/dist/field/list/ListField.stories.d.ts +2 -1
  588. package/dist/field/list/ListField.view.d.ts +15 -7
  589. package/dist/field/list/ListField.view.js +888 -377
  590. package/dist/field/localiser/LocalisedField.view.d.ts +5 -0
  591. package/dist/field/localiser/LocalisedField.view.js +63 -0
  592. package/dist/field/localiser/LocalisedFieldTabs.d.ts +8 -0
  593. package/dist/field/localiser/LocalisedFieldTabs.js +38 -0
  594. package/dist/field/localiser/Localiser.d.ts +25 -0
  595. package/dist/field/localiser/Localiser.js +140 -0
  596. package/dist/field/localiser.d.ts +1 -0
  597. package/dist/field/localiser.js +2 -0
  598. package/dist/field/metadata/MetadataAliases.d.ts +20 -0
  599. package/dist/field/metadata/MetadataAliases.js +22 -0
  600. package/dist/field/metadata/MetadataField.d.ts +31 -8
  601. package/dist/field/metadata/MetadataField.js +127 -11
  602. package/dist/field/metadata/MetadataField.view.d.ts +11 -3
  603. package/dist/field/metadata/MetadataField.view.js +130 -96
  604. package/dist/field/number/NumberField.js +3 -3
  605. package/dist/field/number/NumberField.view.d.ts +3 -3
  606. package/dist/field/number/NumberField.view.js +22 -54
  607. package/dist/field/object/ObjectField.d.ts +1 -1
  608. package/dist/field/object/ObjectField.js +11 -4
  609. package/dist/field/object/ObjectField.view.d.ts +4 -4
  610. package/dist/field/object/ObjectField.view.js +28 -19
  611. package/dist/field/path/PathField.js +3 -3
  612. package/dist/field/path/PathField.view.d.ts +3 -3
  613. package/dist/field/path/PathField.view.js +33 -133
  614. package/dist/field/path/SlugField.d.ts +16 -0
  615. package/dist/field/path/SlugField.js +52 -0
  616. package/dist/field/richtext/Extensions.d.ts +1 -28
  617. package/dist/field/richtext/Extensions.js +2 -4146
  618. package/dist/field/richtext/PickTextAnchor.d.ts +19 -0
  619. package/dist/field/richtext/PickTextAnchor.js +99 -0
  620. package/dist/field/richtext/PickTextLink.d.ts +18 -17
  621. package/dist/field/richtext/PickTextLink.js +133 -88
  622. package/dist/field/richtext/ReferenceLink.d.ts +2 -0
  623. package/dist/field/richtext/ReferenceLink.js +13 -4
  624. package/dist/field/richtext/RichTextBlock.d.ts +11 -0
  625. package/dist/field/richtext/RichTextBlock.js +143 -0
  626. package/dist/field/richtext/RichTextBlockHost.d.ts +13 -0
  627. package/dist/field/richtext/RichTextBlockHost.js +56 -0
  628. package/dist/field/richtext/RichTextBlockValue.d.ts +5 -0
  629. package/dist/field/richtext/RichTextBlockValue.js +34 -0
  630. package/dist/field/richtext/RichTextBlocks.d.ts +16 -0
  631. package/dist/field/richtext/RichTextBlocks.js +40 -0
  632. package/dist/field/richtext/RichTextDocument.d.ts +4 -0
  633. package/dist/field/richtext/RichTextDocument.js +162 -0
  634. package/dist/field/richtext/RichTextExtensions.d.ts +67 -0
  635. package/dist/field/richtext/RichTextExtensions.js +8219 -0
  636. package/dist/field/richtext/RichTextField.d.ts +10 -3
  637. package/dist/field/richtext/RichTextField.js +13 -3
  638. package/dist/field/richtext/RichTextField.story.d.ts +8 -0
  639. package/dist/field/richtext/RichTextField.view.d.ts +11 -5
  640. package/dist/field/richtext/RichTextField.view.js +385 -2447
  641. package/dist/field/richtext/RichTextInsertMenu.d.ts +9 -0
  642. package/dist/field/richtext/RichTextInsertMenu.js +1014 -0
  643. package/dist/field/richtext/RichTextState.d.ts +6 -0
  644. package/dist/field/richtext/RichTextState.js +58 -0
  645. package/dist/field/richtext/RichTextToolbar.d.ts +9 -36
  646. package/dist/field/richtext/RichTextToolbar.js +206 -178
  647. package/dist/field/richtext/Toolbar.d.ts +111 -65
  648. package/dist/field/richtext/Toolbar.js +60 -45
  649. package/dist/field/richtext/extensions/Anchor.d.ts +19 -0
  650. package/dist/field/richtext/extensions/Anchor.js +94 -0
  651. package/dist/field/richtext/extensions/Link.d.ts +3 -13
  652. package/dist/field/richtext/extensions/Link.js +15 -37
  653. package/dist/field/richtext/extensions/Small.d.ts +1 -10
  654. package/dist/field/richtext/extensions/Small.js +7 -19
  655. package/dist/field/select/SelectField.d.ts +15 -4
  656. package/dist/field/select/SelectField.js +17 -2
  657. package/dist/field/select/SelectField.view.d.ts +7 -3
  658. package/dist/field/select/SelectField.view.js +112 -155
  659. package/dist/field/tabs/Tabs.js +3 -2
  660. package/dist/field/tabs/Tabs.view.d.ts +1 -6
  661. package/dist/field/tabs/Tabs.view.js +22 -29
  662. package/dist/field/text/TextField.js +8 -3
  663. package/dist/field/text/TextField.view.d.ts +2 -2
  664. package/dist/field/text/TextField.view.js +40 -60
  665. package/dist/field/time/TimeField.js +3 -3
  666. package/dist/field/time/TimeField.view.d.ts +3 -3
  667. package/dist/field/time/TimeField.view.js +30 -30
  668. package/dist/field/view/View.js +1 -1
  669. package/dist/field/views.d.ts +2 -0
  670. package/dist/field/views.js +65 -0
  671. package/dist/field.d.ts +1 -0
  672. package/dist/field.js +3 -1
  673. package/dist/index.css +7034 -3625
  674. package/dist/index.js +1 -1
  675. package/dist/inter-latin-500-normal-JSHNAZJU.woff2 +0 -0
  676. package/dist/inter-latin-ext-500-normal-5ARINTHO.woff2 +0 -0
  677. package/dist/next.cjs +19 -9
  678. package/dist/next.edge.js +1 -1
  679. package/dist/next.js +1 -1
  680. package/dist/picker/entry/EntryPicker.d.ts +9 -4
  681. package/dist/picker/entry/EntryPicker.js +97 -19
  682. package/dist/picker/entry/EntryReference.d.ts +4 -0
  683. package/dist/picker/entry/EntryReference.js +3 -1
  684. package/dist/picker/url/UrlPicker.js +2 -12
  685. package/dist/preview/ChunkCookieValue.js +1 -1
  686. package/dist/preview/PreviewCookies.js +1 -1
  687. package/dist/preview/PreviewMessage.js +1 -1
  688. package/dist/preview/PreviewPayload.js +237 -10
  689. package/dist/preview/RegisterPreview.js +1 -1
  690. package/dist/preview/react.js +10 -3
  691. package/dist/preview/widget.js +1 -1
  692. package/dist/query.d.ts +116 -92
  693. package/dist/query.js +7 -1
  694. package/dist/types.d.ts +1 -0
  695. package/dist/ui/Link.d.ts +6 -5
  696. package/dist/ui/Link.js +37 -13
  697. package/dist/ui/RichText.d.ts +37 -11
  698. package/dist/ui/RichText.js +81 -44
  699. package/dist/ui/Stack.d.ts +11 -22
  700. package/dist/ui/Stack.js +54 -67
  701. package/dist/ui/icons/IcAlignCenter.d.ts +4 -2
  702. package/dist/ui/icons/IcAlignCenter.js +6 -12
  703. package/dist/ui/icons/IcOutlineGridView.d.ts +3 -2
  704. package/dist/ui/icons/IcOutlineGridView.js +3 -11
  705. package/dist/ui/icons/IcOutlineSettings.d.ts +3 -2
  706. package/dist/ui/icons/IcOutlineSettings.js +3 -11
  707. package/dist/ui/icons/IcRoundAccountTree.d.ts +4 -2
  708. package/dist/ui/icons/IcRoundAccountTree.js +6 -22
  709. package/dist/ui/icons/IcRoundClose.d.ts +4 -2
  710. package/dist/ui/icons/IcRoundClose.js +6 -12
  711. package/dist/ui/icons/IcRoundCode.d.ts +4 -2
  712. package/dist/ui/icons/IcRoundCode.js +6 -12
  713. package/dist/ui/icons/IcRoundDateRange.d.ts +3 -2
  714. package/dist/ui/icons/IcRoundDateRange.js +3 -11
  715. package/dist/ui/icons/IcRoundDelete.d.ts +4 -2
  716. package/dist/ui/icons/IcRoundDelete.js +6 -12
  717. package/dist/ui/icons/IcRoundEdit.d.ts +4 -2
  718. package/dist/ui/icons/IcRoundEdit.js +6 -12
  719. package/dist/ui/icons/IcRoundFormatListNumbered.d.ts +3 -2
  720. package/dist/ui/icons/IcRoundFormatListNumbered.js +3 -11
  721. package/dist/ui/icons/IcRoundLink.d.ts +4 -2
  722. package/dist/ui/icons/IcRoundLink.js +6 -12
  723. package/dist/ui/icons/IcRoundOpenInNew.d.ts +4 -2
  724. package/dist/ui/icons/IcRoundOpenInNew.js +6 -12
  725. package/dist/ui/icons/IcRoundPanorama.d.ts +4 -2
  726. package/dist/ui/icons/IcRoundPanorama.js +6 -6
  727. package/dist/ui/icons/IcRoundRefresh.d.ts +3 -2
  728. package/dist/ui/icons/IcRoundRefresh.js +3 -11
  729. package/dist/ui/icons/IcRoundSave.d.ts +4 -2
  730. package/dist/ui/icons/IcRoundSave.js +6 -22
  731. package/dist/ui/icons/IcRoundSearch.d.ts +4 -2
  732. package/dist/ui/icons/IcRoundSearch.js +6 -12
  733. package/dist/ui/icons/IcRoundShare.d.ts +4 -2
  734. package/dist/ui/icons/IcRoundShare.js +6 -12
  735. package/dist/ui/icons/IcRoundSync.d.ts +4 -2
  736. package/dist/ui/icons/IcRoundSync.js +6 -22
  737. package/dist/ui/icons/MaterialSymbolsDatabase.d.ts +4 -2
  738. package/dist/ui/icons/MaterialSymbolsDatabase.js +6 -22
  739. package/dist/ui/icons/TableInsert.d.ts +4 -2
  740. package/dist/ui/icons/TableInsert.js +6 -12
  741. package/dist/ui/util/ImageBlurUrl.js +1 -1
  742. package/dist/ui.d.ts +0 -8
  743. package/dist/ui.js +0 -8
  744. package/package.json +49 -64
  745. package/dist/backend/router/Proxy.d.ts +0 -1
  746. package/dist/backend/router/Proxy.js +0 -32
  747. package/dist/chunks/chunk-2NTSADJL.js +0 -20
  748. package/dist/chunks/chunk-2STBQ2Y4.js +0 -166
  749. package/dist/chunks/chunk-2X5P2RZV.js +0 -94
  750. package/dist/chunks/chunk-3DIW62EI.js +0 -2900
  751. package/dist/chunks/chunk-3TNMMA3W.js +0 -249
  752. package/dist/chunks/chunk-467JA2PB.js +0 -29
  753. package/dist/chunks/chunk-5LTN67OE.js +0 -51
  754. package/dist/chunks/chunk-76QF5YTJ.js +0 -107
  755. package/dist/chunks/chunk-A5O3N2GS.js +0 -63
  756. package/dist/chunks/chunk-AICQFCVN.js +0 -19
  757. package/dist/chunks/chunk-AJJSW27C.js +0 -728
  758. package/dist/chunks/chunk-C53YJRET.js +0 -112
  759. package/dist/chunks/chunk-CKT37OYJ.js +0 -9
  760. package/dist/chunks/chunk-F2HHHLEQ.js +0 -72
  761. package/dist/chunks/chunk-FKWEJTSK.js +0 -16282
  762. package/dist/chunks/chunk-G2AFWRAD.js +0 -12
  763. package/dist/chunks/chunk-HSIHEWFC.js +0 -101
  764. package/dist/chunks/chunk-I26ZIF6Q.js +0 -360
  765. package/dist/chunks/chunk-JL5K3F7X.js +0 -1116
  766. package/dist/chunks/chunk-NZLE2WMY.js +0 -35
  767. package/dist/chunks/chunk-ORDS5C6Z.js +0 -83
  768. package/dist/chunks/chunk-PNILF4WM.js +0 -251
  769. package/dist/chunks/chunk-QUIANN6B.js +0 -8001
  770. package/dist/chunks/chunk-RSX2DILK.js +0 -335
  771. package/dist/chunks/chunk-SKF4L7JN.js +0 -401
  772. package/dist/chunks/chunk-SOTBYUJY.js +0 -120
  773. package/dist/chunks/chunk-TOJF2G3X.js +0 -96
  774. package/dist/chunks/chunk-TPUTTEHF.js +0 -3002
  775. package/dist/chunks/chunk-VUACWPFC.js +0 -892
  776. package/dist/chunks/chunk-WD7H5L2L.js +0 -168
  777. package/dist/chunks/chunk-WDCPVJJC.js +0 -341
  778. package/dist/chunks/chunk-WJ67RR7S.js +0 -554
  779. package/dist/chunks/chunk-WKC37UOZ.js +0 -143
  780. package/dist/chunks/chunk-WLKPH7JA.js +0 -2786
  781. package/dist/chunks/chunk-YWCPLD22.js +0 -2343
  782. package/dist/chunks/crypto-HZTUU327.js +0 -11
  783. package/dist/cloud/view/CloudAuth.browser.d.ts +0 -2
  784. package/dist/cloud/view/CloudAuth.browser.js +0 -111
  785. package/dist/cloud/view/CloudAuth.d.ts +0 -1
  786. package/dist/cloud/view/CloudAuth.js +0 -9
  787. package/dist/core/Doc.d.ts +0 -11
  788. package/dist/core/Doc.js +0 -44
  789. package/dist/core/Role.test.d.ts +0 -1
  790. package/dist/core/Shape.d.ts +0 -19
  791. package/dist/core/Trigger.test.d.ts +0 -1
  792. package/dist/core/Type.test.d.ts +0 -1
  793. package/dist/core/db/EntryIndex.test.d.ts +0 -1
  794. package/dist/core/db/EntryResolver.test.d.ts +0 -1
  795. package/dist/core/db/LocalDB.test.d.ts +0 -1
  796. package/dist/core/field/RichTextField.test.d.ts +0 -1
  797. package/dist/core/shape/ListShape.test.d.ts +0 -1
  798. package/dist/core/shape/RecordShape.d.ts +0 -26
  799. package/dist/core/shape/RecordShape.js +0 -102
  800. package/dist/core/shape/RecordShape.test.d.ts +0 -1
  801. package/dist/core/shape/RichTextShape.d.ts +0 -75
  802. package/dist/core/shape/RichTextShape.js +0 -435
  803. package/dist/core/shape/RichTextShape.test.d.ts +0 -1
  804. package/dist/core/shape/ScalarShape.d.ts +0 -20
  805. package/dist/core/shape/ScalarShape.js +0 -53
  806. package/dist/core/shape/ScalarShape.test.d.ts +0 -1
  807. package/dist/core/shape/UnionShape.d.ts +0 -34
  808. package/dist/core/shape/UnionShape.js +0 -141
  809. package/dist/core/shape/UnionShape.test.d.ts +0 -1
  810. package/dist/core/source/CombinedSource.test.d.ts +0 -1
  811. package/dist/core/source/FSSource.test.d.ts +0 -1
  812. package/dist/core/source/FilePatch.test.d.ts +0 -1
  813. package/dist/core/source/GitDelta.test.d.ts +0 -1
  814. package/dist/core/source/GitUtils.test.d.ts +0 -1
  815. package/dist/core/source/GithubSource.test.d.ts +0 -1
  816. package/dist/core/source/IndexedDBSource.test.d.ts +0 -1
  817. package/dist/core/source/MemorySource.test.d.ts +0 -1
  818. package/dist/core/source/SourceExport.test.d.ts +0 -1
  819. package/dist/core/source/Tree.test.d.ts +0 -1
  820. package/dist/core/source/Utils.test.d.ts +0 -1
  821. package/dist/core/util/CodeGen.test.d.ts +0 -1
  822. package/dist/core/util/EntryFilenames.test.d.ts +0 -1
  823. package/dist/core/util/JWT.test.d.ts +0 -1
  824. package/dist/core/util/Paths.test.d.ts +0 -1
  825. package/dist/core/util/Slugs.test.d.ts +0 -1
  826. package/dist/dashboard/DashboardNav.d.ts +0 -22
  827. package/dist/dashboard/DashboardNav.js +0 -44
  828. package/dist/dashboard/DashboardProvider.d.ts +0 -16
  829. package/dist/dashboard/DashboardProvider.js +0 -28
  830. package/dist/dashboard/Routes.d.ts +0 -111
  831. package/dist/dashboard/Routes.js +0 -78
  832. package/dist/dashboard/Welcome.d.ts +0 -1
  833. package/dist/dashboard/Welcome.js +0 -21
  834. package/dist/dashboard/atoms/DashboardAtoms.d.ts +0 -18
  835. package/dist/dashboard/atoms/DashboardAtoms.js +0 -86
  836. package/dist/dashboard/atoms/DbAtoms.d.ts +0 -5
  837. package/dist/dashboard/atoms/DbAtoms.js +0 -95
  838. package/dist/dashboard/atoms/Edits.d.ts +0 -31
  839. package/dist/dashboard/atoms/Edits.js +0 -93
  840. package/dist/dashboard/atoms/EntryAtoms.d.ts +0 -34
  841. package/dist/dashboard/atoms/EntryAtoms.js +0 -298
  842. package/dist/dashboard/atoms/EntryEditorAtoms.d.ts +0 -255
  843. package/dist/dashboard/atoms/EntryEditorAtoms.js +0 -629
  844. package/dist/dashboard/atoms/EntrySummaryAtoms.d.ts +0 -21
  845. package/dist/dashboard/atoms/EntrySummaryAtoms.js +0 -58
  846. package/dist/dashboard/atoms/ErrorAtoms.d.ts +0 -4
  847. package/dist/dashboard/atoms/ErrorAtoms.js +0 -18
  848. package/dist/dashboard/atoms/FormAtoms.d.ts +0 -56
  849. package/dist/dashboard/atoms/FormAtoms.js +0 -189
  850. package/dist/dashboard/atoms/LocationAtoms.d.ts +0 -25
  851. package/dist/dashboard/atoms/LocationAtoms.js +0 -104
  852. package/dist/dashboard/atoms/NavigationAtoms.d.ts +0 -38
  853. package/dist/dashboard/atoms/NavigationAtoms.js +0 -124
  854. package/dist/dashboard/atoms/PolicyAtom.d.ts +0 -6
  855. package/dist/dashboard/atoms/PolicyAtom.js +0 -29
  856. package/dist/dashboard/atoms/PreferencesAtoms.d.ts +0 -16
  857. package/dist/dashboard/atoms/PreferencesAtoms.js +0 -53
  858. package/dist/dashboard/atoms/RouterAtoms.d.ts +0 -78
  859. package/dist/dashboard/atoms/RouterAtoms.js +0 -161
  860. package/dist/dashboard/atoms/StyleAtoms.d.ts +0 -1
  861. package/dist/dashboard/atoms/StyleAtoms.js +0 -14
  862. package/dist/dashboard/atoms/YAtom.d.ts +0 -2
  863. package/dist/dashboard/atoms/YAtom.js +0 -24
  864. package/dist/dashboard/editor/DefaultViews.d.ts +0 -19
  865. package/dist/dashboard/editor/DefaultViews.js +0 -52
  866. package/dist/dashboard/editor/InputForm.d.ts +0 -26
  867. package/dist/dashboard/editor/InputForm.js +0 -53
  868. package/dist/dashboard/editor/ViewKeys.d.ts +0 -23
  869. package/dist/dashboard/editor/ViewKeys.js +0 -29
  870. package/dist/dashboard/hook/UseConfig.d.ts +0 -1
  871. package/dist/dashboard/hook/UseConfig.js +0 -12
  872. package/dist/dashboard/hook/UseDashboard.d.ts +0 -1
  873. package/dist/dashboard/hook/UseDashboard.js +0 -12
  874. package/dist/dashboard/hook/UseDb.d.ts +0 -2
  875. package/dist/dashboard/hook/UseDb.js +0 -14
  876. package/dist/dashboard/hook/UseDebounce.d.ts +0 -1
  877. package/dist/dashboard/hook/UseDebounce.js +0 -23
  878. package/dist/dashboard/hook/UseEntryLocation.d.ts +0 -1
  879. package/dist/dashboard/hook/UseEntryLocation.js +0 -12
  880. package/dist/dashboard/hook/UseEntrySummary.d.ts +0 -1
  881. package/dist/dashboard/hook/UseEntrySummary.js +0 -16
  882. package/dist/dashboard/hook/UseExplorer.d.ts +0 -14
  883. package/dist/dashboard/hook/UseExplorer.js +0 -13
  884. package/dist/dashboard/hook/UseFocusList.d.ts +0 -14
  885. package/dist/dashboard/hook/UseFocusList.js +0 -113
  886. package/dist/dashboard/hook/UseNav.d.ts +0 -10
  887. package/dist/dashboard/hook/UseNav.js +0 -12
  888. package/dist/dashboard/hook/UsePolicy.d.ts +0 -1
  889. package/dist/dashboard/hook/UsePolicy.js +0 -14
  890. package/dist/dashboard/hook/UsePreferences.d.ts +0 -6
  891. package/dist/dashboard/hook/UsePreferences.js +0 -30
  892. package/dist/dashboard/hook/UseSession.d.ts +0 -1
  893. package/dist/dashboard/hook/UseSession.js +0 -12
  894. package/dist/dashboard/hook/UseUploads.d.ts +0 -42
  895. package/dist/dashboard/hook/UseUploads.js +0 -91
  896. package/dist/dashboard/pages/ContentView.d.ts +0 -5
  897. package/dist/dashboard/pages/ContentView.js +0 -96
  898. package/dist/dashboard/util/Atoms.d.ts +0 -2
  899. package/dist/dashboard/util/Atoms.js +0 -21
  900. package/dist/dashboard/util/DebounceAtom.d.ts +0 -2
  901. package/dist/dashboard/util/DebounceAtom.js +0 -26
  902. package/dist/dashboard/util/HashRouter.d.ts +0 -1
  903. package/dist/dashboard/util/HashRouter.js +0 -2
  904. package/dist/dashboard/util/Head.d.ts +0 -2
  905. package/dist/dashboard/util/Head.js +0 -10
  906. package/dist/dashboard/util/KeepInView.d.ts +0 -2
  907. package/dist/dashboard/util/KeepInView.js +0 -19
  908. package/dist/dashboard/util/KeepPreviousData.d.ts +0 -9
  909. package/dist/dashboard/util/KeepPreviousData.js +0 -32
  910. package/dist/dashboard/util/Loader.d.ts +0 -17
  911. package/dist/dashboard/util/Loader.js +0 -31
  912. package/dist/dashboard/util/SuspenseBoundary.d.ts +0 -4
  913. package/dist/dashboard/util/SuspenseBoundary.js +0 -23
  914. package/dist/dashboard/util/WithResolvers.d.ts +0 -2
  915. package/dist/dashboard/util/WithResolvers.js +0 -16
  916. package/dist/dashboard/view/AlineaLogo.d.ts +0 -2
  917. package/dist/dashboard/view/AlineaLogo.js +0 -16
  918. package/dist/dashboard/view/Breadcrumbs.d.ts +0 -3
  919. package/dist/dashboard/view/Breadcrumbs.js +0 -33
  920. package/dist/dashboard/view/Create.d.ts +0 -13
  921. package/dist/dashboard/view/Create.js +0 -75
  922. package/dist/dashboard/view/EntryEdit.d.ts +0 -5
  923. package/dist/dashboard/view/EntryEdit.js +0 -222
  924. package/dist/dashboard/view/EntryTree.d.ts +0 -5
  925. package/dist/dashboard/view/EntryTree.js +0 -1463
  926. package/dist/dashboard/view/ErrorBoundary.d.ts +0 -6
  927. package/dist/dashboard/view/ErrorBoundary.js +0 -95
  928. package/dist/dashboard/view/IconButton.d.ts +0 -18
  929. package/dist/dashboard/view/IconButton.js +0 -51
  930. package/dist/dashboard/view/InputLabel.d.ts +0 -36
  931. package/dist/dashboard/view/InputLabel.js +0 -151
  932. package/dist/dashboard/view/MediaExplorer.d.ts +0 -7
  933. package/dist/dashboard/view/MediaExplorer.js +0 -121
  934. package/dist/dashboard/view/Modal.d.ts +0 -8
  935. package/dist/dashboard/view/Modal.js +0 -63
  936. package/dist/dashboard/view/PageHeader.d.ts +0 -5
  937. package/dist/dashboard/view/PageHeader.js +0 -26
  938. package/dist/dashboard/view/Preview.d.ts +0 -3
  939. package/dist/dashboard/view/Preview.js +0 -20
  940. package/dist/dashboard/view/RootOverview.d.ts +0 -5
  941. package/dist/dashboard/view/RootOverview.js +0 -46
  942. package/dist/dashboard/view/SearchBox.d.ts +0 -1
  943. package/dist/dashboard/view/SearchBox.js +0 -126
  944. package/dist/dashboard/view/Sidebar.d.ts +0 -21
  945. package/dist/dashboard/view/Sidebar.js +0 -312
  946. package/dist/dashboard/view/Toolbar.d.ts +0 -9
  947. package/dist/dashboard/view/Toolbar.js +0 -240
  948. package/dist/dashboard/view/Viewport.d.ts +0 -8
  949. package/dist/dashboard/view/Viewport.js +0 -69
  950. package/dist/dashboard/view/WorkspaceLabel.d.ts +0 -7
  951. package/dist/dashboard/view/WorkspaceLabel.js +0 -32
  952. package/dist/dashboard/view/diff/ChangeBox.d.ts +0 -14
  953. package/dist/dashboard/view/diff/ChangeBox.js +0 -36
  954. package/dist/dashboard/view/diff/DiffUtils.d.ts +0 -16
  955. package/dist/dashboard/view/diff/DiffUtils.js +0 -82
  956. package/dist/dashboard/view/diff/DiffUtils.test.d.ts +0 -1
  957. package/dist/dashboard/view/diff/EntryDiff.d.ts +0 -6
  958. package/dist/dashboard/view/diff/EntryDiff.js +0 -45
  959. package/dist/dashboard/view/diff/FieldDiff.d.ts +0 -10
  960. package/dist/dashboard/view/diff/FieldDiff.js +0 -51
  961. package/dist/dashboard/view/diff/FieldsDiff.d.ts +0 -7
  962. package/dist/dashboard/view/diff/FieldsDiff.js +0 -24
  963. package/dist/dashboard/view/diff/ListDiff.d.ts +0 -10
  964. package/dist/dashboard/view/diff/ListDiff.js +0 -32
  965. package/dist/dashboard/view/diff/RichTextDiff.d.ts +0 -11
  966. package/dist/dashboard/view/diff/RichTextDiff.js +0 -94
  967. package/dist/dashboard/view/diff/ScalarDiff.d.ts +0 -5
  968. package/dist/dashboard/view/diff/ScalarDiff.js +0 -1520
  969. package/dist/dashboard/view/entry/EditModeToggle.d.ts +0 -9
  970. package/dist/dashboard/view/entry/EditModeToggle.js +0 -51
  971. package/dist/dashboard/view/entry/EntryHeader.d.ts +0 -5
  972. package/dist/dashboard/view/entry/EntryHeader.js +0 -414
  973. package/dist/dashboard/view/entry/EntryHistory.d.ts +0 -2
  974. package/dist/dashboard/view/entry/EntryHistory.js +0 -78
  975. package/dist/dashboard/view/entry/EntryNotice.d.ts +0 -7
  976. package/dist/dashboard/view/entry/EntryNotice.js +0 -44
  977. package/dist/dashboard/view/entry/EntryPreview.d.ts +0 -10
  978. package/dist/dashboard/view/entry/EntryPreview.js +0 -44
  979. package/dist/dashboard/view/entry/EntrySummary.d.ts +0 -3
  980. package/dist/dashboard/view/entry/EntrySummary.js +0 -75
  981. package/dist/dashboard/view/entry/EntryTitle.d.ts +0 -7
  982. package/dist/dashboard/view/entry/EntryTitle.js +0 -64
  983. package/dist/dashboard/view/entry/FieldToolbar.d.ts +0 -11
  984. package/dist/dashboard/view/entry/FieldToolbar.js +0 -41
  985. package/dist/dashboard/view/entry/LangSwitch.d.ts +0 -7
  986. package/dist/dashboard/view/entry/LangSwitch.js +0 -110
  987. package/dist/dashboard/view/entry/NewEntry.d.ts +0 -4
  988. package/dist/dashboard/view/entry/NewEntry.js +0 -288
  989. package/dist/dashboard/view/entry/RootHeader.d.ts +0 -4
  990. package/dist/dashboard/view/entry/RootHeader.js +0 -61
  991. package/dist/dashboard/view/explorer/Explorer.d.ts +0 -24
  992. package/dist/dashboard/view/explorer/Explorer.js +0 -2230
  993. package/dist/dashboard/view/explorer/ExplorerItem.d.ts +0 -11
  994. package/dist/dashboard/view/explorer/ExplorerItem.js +0 -128
  995. package/dist/dashboard/view/explorer/ExplorerRow.d.ts +0 -15
  996. package/dist/dashboard/view/explorer/ExplorerRow.js +0 -73
  997. package/dist/dashboard/view/media/CardOverview.d.ts +0 -1
  998. package/dist/dashboard/view/media/CardOverview.js +0 -10
  999. package/dist/dashboard/view/media/FileEntry.d.ts +0 -6
  1000. package/dist/dashboard/view/media/FileEntry.js +0 -223
  1001. package/dist/dashboard/view/media/FileSummary.d.ts +0 -3
  1002. package/dist/dashboard/view/media/FileSummary.js +0 -102
  1003. package/dist/dashboard/view/media/FileUploadRow.d.ts +0 -2
  1004. package/dist/dashboard/view/media/FileUploadRow.js +0 -53
  1005. package/dist/dashboard/view/media/FileUploader.d.ts +0 -10
  1006. package/dist/dashboard/view/media/FileUploader.js +0 -151
  1007. package/dist/dashboard/view/media/MediaThumbnail.d.ts +0 -11
  1008. package/dist/dashboard/view/media/MediaThumbnail.js +0 -55
  1009. package/dist/dashboard/view/preview/BrowserPreview.d.ts +0 -12
  1010. package/dist/dashboard/view/preview/BrowserPreview.js +0 -210
  1011. package/dist/dashboard/view/sidebar/SidebarSettings.d.ts +0 -1
  1012. package/dist/dashboard/view/sidebar/SidebarSettings.js +0 -192
  1013. package/dist/field/check/CheckField.stories.d.ts +0 -5
  1014. package/dist/field/code/CodeField.stories.d.ts +0 -5
  1015. package/dist/field/date/DateField.stories.d.ts +0 -5
  1016. package/dist/field/json/JsonField.stories.d.ts +0 -5
  1017. package/dist/field/metadata/MetadataField.stories.d.ts +0 -5
  1018. package/dist/field/number/NumberField.stories.d.ts +0 -5
  1019. package/dist/field/object/ObjectField.stories.d.ts +0 -5
  1020. package/dist/field/path/PathField.stories.d.ts +0 -5
  1021. package/dist/field/richtext/RichText.stories.d.ts +0 -5
  1022. package/dist/field/select/SelectField.stories.d.ts +0 -5
  1023. package/dist/field/tabs/Tabs.stories.d.ts +0 -5
  1024. package/dist/field/text/TextField.stories.d.ts +0 -5
  1025. package/dist/field/time/TimeField.stories.d.ts +0 -5
  1026. package/dist/picker/entry/EntryPicker.browser.d.ts +0 -7
  1027. package/dist/picker/entry/EntryPicker.browser.js +0 -373
  1028. package/dist/picker/entry/EntryPicker.stories.d.ts +0 -2
  1029. package/dist/picker/entry/EntryPickerRow.d.ts +0 -5
  1030. package/dist/picker/entry/EntryPickerRow.js +0 -24
  1031. package/dist/picker/url/UrlPicker.browser.d.ts +0 -6
  1032. package/dist/picker/url/UrlPicker.browser.js +0 -83
  1033. package/dist/picker/url/UrlPicker.stories.d.ts +0 -5
  1034. package/dist/picker/url/UrlPickerRow.d.ts +0 -5
  1035. package/dist/picker/url/UrlPickerRow.js +0 -38
  1036. package/dist/preview/ChunkCookieValue.test.d.ts +0 -1
  1037. package/dist/preview/PreviewPayload.test.d.ts +0 -1
  1038. package/dist/test/EntryFixture.d.ts +0 -30
  1039. package/dist/test/EntryFixture.js +0 -91
  1040. package/dist/test/broken-index.test.d.ts +0 -1
  1041. package/dist/test/cms.d.ts +0 -17
  1042. package/dist/test/cms.js +0 -38
  1043. package/dist/test/drafts.test.d.ts +0 -1
  1044. package/dist/test/example.d.ts +0 -137
  1045. package/dist/test/example.js +0 -230
  1046. package/dist/test/insert-order.test.d.ts +0 -1
  1047. package/dist/test/links.test.d.ts +0 -1
  1048. package/dist/test/locales.test.d.ts +0 -1
  1049. package/dist/test/moves.test.d.ts +0 -1
  1050. package/dist/test/mutate.test.d.ts +0 -1
  1051. package/dist/test/query.test.d.ts +0 -1
  1052. package/dist/test/renames.test.d.ts +0 -1
  1053. package/dist/test/roles.test.d.ts +0 -1
  1054. package/dist/test/schema/DemoHome.d.ts +0 -25
  1055. package/dist/test/schema/DemoHome.js +0 -25
  1056. package/dist/test/schema/DemoRecipe.d.ts +0 -14
  1057. package/dist/test/schema/DemoRecipe.js +0 -22
  1058. package/dist/test/schema/DemoRecipes.d.ts +0 -4
  1059. package/dist/test/schema/DemoRecipes.js +0 -14
  1060. package/dist/test/schema/index.d.ts +0 -3
  1061. package/dist/test/schema/index.js +0 -4
  1062. package/dist/test/seeding.test.d.ts +0 -1
  1063. package/dist/test/shared.test.d.ts +0 -1
  1064. package/dist/test/status.test.d.ts +0 -1
  1065. package/dist/test/uploads.test.d.ts +0 -1
  1066. package/dist/ui/AppBar.d.ts +0 -14
  1067. package/dist/ui/AppBar.js +0 -68
  1068. package/dist/ui/Avatar.d.ts +0 -6
  1069. package/dist/ui/Avatar.js +0 -33
  1070. package/dist/ui/Badge.d.ts +0 -9
  1071. package/dist/ui/Badge.js +0 -44
  1072. package/dist/ui/Button.d.ts +0 -9
  1073. package/dist/ui/Button.js +0 -57
  1074. package/dist/ui/Button.stories.d.ts +0 -6
  1075. package/dist/ui/Chip.d.ts +0 -8
  1076. package/dist/ui/Chip.js +0 -46
  1077. package/dist/ui/DropdownMenu.d.ts +0 -12
  1078. package/dist/ui/DropdownMenu.js +0 -415
  1079. package/dist/ui/Ellipsis.d.ts +0 -2
  1080. package/dist/ui/Ellipsis.js +0 -33
  1081. package/dist/ui/ErrorMessage.d.ts +0 -4
  1082. package/dist/ui/ErrorMessage.js +0 -17
  1083. package/dist/ui/Icon.d.ts +0 -9
  1084. package/dist/ui/Icon.js +0 -41
  1085. package/dist/ui/Lift.d.ts +0 -3
  1086. package/dist/ui/Lift.js +0 -22
  1087. package/dist/ui/Loader.d.ts +0 -8
  1088. package/dist/ui/Loader.js +0 -32
  1089. package/dist/ui/Main.d.ts +0 -12
  1090. package/dist/ui/Main.js +0 -56
  1091. package/dist/ui/Pane.d.ts +0 -9
  1092. package/dist/ui/Pane.js +0 -132
  1093. package/dist/ui/PopoverMenu.d.ts +0 -12
  1094. package/dist/ui/PopoverMenu.js +0 -418
  1095. package/dist/ui/Property.d.ts +0 -1
  1096. package/dist/ui/Property.js +0 -7
  1097. package/dist/ui/Sink.d.ts +0 -9
  1098. package/dist/ui/Sink.js +0 -49
  1099. package/dist/ui/Statusbar.d.ts +0 -15
  1100. package/dist/ui/Statusbar.js +0 -54
  1101. package/dist/ui/Tabs.d.ts +0 -11
  1102. package/dist/ui/Tabs.js +0 -293
  1103. package/dist/ui/TextLabel.d.ts +0 -5
  1104. package/dist/ui/TextLabel.js +0 -10
  1105. package/dist/ui/Typo.d.ts +0 -35
  1106. package/dist/ui/Typo.js +0 -28
  1107. package/dist/ui/UIStory.d.ts +0 -8
  1108. package/dist/ui/branding/FavIcon.d.ts +0 -5
  1109. package/dist/ui/branding/FavIcon.js +0 -56
  1110. package/dist/ui/branding/LogoShape.d.ts +0 -6
  1111. package/dist/ui/branding/LogoShape.js +0 -52
  1112. package/dist/ui/hook/UseAutoHide.d.ts +0 -8
  1113. package/dist/ui/hook/UseAutoHide.js +0 -43
  1114. package/dist/ui/hook/UseColorScheme.d.ts +0 -4
  1115. package/dist/ui/hook/UseColorScheme.js +0 -13
  1116. package/dist/ui/hook/UseContrastColor.d.ts +0 -1
  1117. package/dist/ui/hook/UseContrastColor.js +0 -12
  1118. package/dist/ui/hook/UseElementSize.d.ts +0 -6
  1119. package/dist/ui/hook/UseElementSize.js +0 -52
  1120. package/dist/ui/hook/UseForceUpdate.d.ts +0 -1
  1121. package/dist/ui/hook/UseForceUpdate.js +0 -11
  1122. package/dist/ui/hook/UseHash.d.ts +0 -1
  1123. package/dist/ui/hook/UseHash.js +0 -24
  1124. package/dist/ui/hook/UseInitialEffect.d.ts +0 -2
  1125. package/dist/ui/hook/UseInitialEffect.js +0 -15
  1126. package/dist/ui/hook/UseLocalStorage.d.ts +0 -1
  1127. package/dist/ui/hook/UseLocalStorage.js +0 -36
  1128. package/dist/ui/hook/UseNonInitialEffect.d.ts +0 -2
  1129. package/dist/ui/hook/UseNonInitialEffect.js +0 -17
  1130. package/dist/ui/hook/UseTrigger.d.ts +0 -7
  1131. package/dist/ui/hook/UseTrigger.js +0 -29
  1132. package/dist/ui/icons/IcAlignJustify.d.ts +0 -3
  1133. package/dist/ui/icons/IcAlignJustify.js +0 -18
  1134. package/dist/ui/icons/IcAlignLeft.d.ts +0 -2
  1135. package/dist/ui/icons/IcAlignLeft.js +0 -16
  1136. package/dist/ui/icons/IcAlignRight.d.ts +0 -2
  1137. package/dist/ui/icons/IcAlignRight.js +0 -16
  1138. package/dist/ui/icons/IcBaselineAccountCircle.d.ts +0 -2
  1139. package/dist/ui/icons/IcBaselineAccountCircle.js +0 -26
  1140. package/dist/ui/icons/IcBaselineContentCopy.d.ts +0 -2
  1141. package/dist/ui/icons/IcBaselineContentCopy.js +0 -26
  1142. package/dist/ui/icons/IcBaselineContentPasteGo.d.ts +0 -2
  1143. package/dist/ui/icons/IcBaselineContentPasteGo.js +0 -35
  1144. package/dist/ui/icons/IcBaselineDesktopMac.d.ts +0 -2
  1145. package/dist/ui/icons/IcBaselineDesktopMac.js +0 -16
  1146. package/dist/ui/icons/IcBaselineErrorOutline.d.ts +0 -2
  1147. package/dist/ui/icons/IcBaselineErrorOutline.js +0 -26
  1148. package/dist/ui/icons/IcBaselinePause.d.ts +0 -2
  1149. package/dist/ui/icons/IcBaselinePause.js +0 -20
  1150. package/dist/ui/icons/IcBaselinePhoneIphone.d.ts +0 -2
  1151. package/dist/ui/icons/IcBaselinePhoneIphone.js +0 -16
  1152. package/dist/ui/icons/IcBaselineWifiTethering.d.ts +0 -2
  1153. package/dist/ui/icons/IcBaselineWifiTethering.js +0 -26
  1154. package/dist/ui/icons/IcOutlineArchive.d.ts +0 -2
  1155. package/dist/ui/icons/IcOutlineArchive.js +0 -26
  1156. package/dist/ui/icons/IcOutlineArrowCircleRight.d.ts +0 -2
  1157. package/dist/ui/icons/IcOutlineArrowCircleRight.js +0 -16
  1158. package/dist/ui/icons/IcOutlineAvTimer.d.ts +0 -2
  1159. package/dist/ui/icons/IcOutlineAvTimer.js +0 -26
  1160. package/dist/ui/icons/IcOutlineCloudUpload.d.ts +0 -2
  1161. package/dist/ui/icons/IcOutlineCloudUpload.js +0 -26
  1162. package/dist/ui/icons/IcOutlineDarkMode.d.ts +0 -2
  1163. package/dist/ui/icons/IcOutlineDarkMode.js +0 -16
  1164. package/dist/ui/icons/IcOutlineDescription.d.ts +0 -2
  1165. package/dist/ui/icons/IcOutlineDescription.js +0 -26
  1166. package/dist/ui/icons/IcOutlineDrafts.d.ts +0 -2
  1167. package/dist/ui/icons/IcOutlineDrafts.js +0 -26
  1168. package/dist/ui/icons/IcOutlineFolder.d.ts +0 -2
  1169. package/dist/ui/icons/IcOutlineFolder.js +0 -26
  1170. package/dist/ui/icons/IcOutlineInsertDriveFile.d.ts +0 -2
  1171. package/dist/ui/icons/IcOutlineInsertDriveFile.js +0 -26
  1172. package/dist/ui/icons/IcOutlineKeyboardTab.d.ts +0 -2
  1173. package/dist/ui/icons/IcOutlineKeyboardTab.js +0 -26
  1174. package/dist/ui/icons/IcOutlineLightMode.d.ts +0 -2
  1175. package/dist/ui/icons/IcOutlineLightMode.js +0 -16
  1176. package/dist/ui/icons/IcOutlineList.d.ts +0 -3
  1177. package/dist/ui/icons/IcOutlineList.js +0 -18
  1178. package/dist/ui/icons/IcOutlineLock.d.ts +0 -2
  1179. package/dist/ui/icons/IcOutlineLock.js +0 -26
  1180. package/dist/ui/icons/IcOutlineMoreHoriz.d.ts +0 -3
  1181. package/dist/ui/icons/IcOutlineMoreHoriz.js +0 -18
  1182. package/dist/ui/icons/IcOutlinePreview.d.ts +0 -2
  1183. package/dist/ui/icons/IcOutlinePreview.js +0 -16
  1184. package/dist/ui/icons/IcOutlineRemoveRedEye.d.ts +0 -2
  1185. package/dist/ui/icons/IcOutlineRemoveRedEye.js +0 -26
  1186. package/dist/ui/icons/IcOutlineScreenshot.d.ts +0 -2
  1187. package/dist/ui/icons/IcOutlineScreenshot.js +0 -16
  1188. package/dist/ui/icons/IcOutlineTableRows.d.ts +0 -2
  1189. package/dist/ui/icons/IcOutlineTableRows.js +0 -26
  1190. package/dist/ui/icons/IcRoundAdd.d.ts +0 -2
  1191. package/dist/ui/icons/IcRoundAdd.js +0 -16
  1192. package/dist/ui/icons/IcRoundAddCircle.d.ts +0 -3
  1193. package/dist/ui/icons/IcRoundAddCircle.js +0 -18
  1194. package/dist/ui/icons/IcRoundAddCircleOutline.d.ts +0 -2
  1195. package/dist/ui/icons/IcRoundAddCircleOutline.js +0 -16
  1196. package/dist/ui/icons/IcRoundArchive.d.ts +0 -2
  1197. package/dist/ui/icons/IcRoundArchive.js +0 -16
  1198. package/dist/ui/icons/IcRoundArrowBack.d.ts +0 -2
  1199. package/dist/ui/icons/IcRoundArrowBack.js +0 -16
  1200. package/dist/ui/icons/IcRoundArrowDownward.d.ts +0 -2
  1201. package/dist/ui/icons/IcRoundArrowDownward.js +0 -26
  1202. package/dist/ui/icons/IcRoundArrowDropDown.d.ts +0 -3
  1203. package/dist/ui/icons/IcRoundArrowDropDown.js +0 -18
  1204. package/dist/ui/icons/IcRoundArrowDropDownCircle.d.ts +0 -3
  1205. package/dist/ui/icons/IcRoundArrowDropDownCircle.js +0 -18
  1206. package/dist/ui/icons/IcRoundArrowDropUp.d.ts +0 -3
  1207. package/dist/ui/icons/IcRoundArrowDropUp.js +0 -18
  1208. package/dist/ui/icons/IcRoundArrowForward.d.ts +0 -2
  1209. package/dist/ui/icons/IcRoundArrowForward.js +0 -16
  1210. package/dist/ui/icons/IcRoundArrowUpward.d.ts +0 -2
  1211. package/dist/ui/icons/IcRoundArrowUpward.js +0 -26
  1212. package/dist/ui/icons/IcRoundAttachFile.d.ts +0 -2
  1213. package/dist/ui/icons/IcRoundAttachFile.js +0 -10
  1214. package/dist/ui/icons/IcRoundCheck.d.ts +0 -2
  1215. package/dist/ui/icons/IcRoundCheck.js +0 -16
  1216. package/dist/ui/icons/IcRoundCheckBox.d.ts +0 -2
  1217. package/dist/ui/icons/IcRoundCheckBox.js +0 -16
  1218. package/dist/ui/icons/IcRoundCheckBoxOutlineBlank.d.ts +0 -2
  1219. package/dist/ui/icons/IcRoundCheckBoxOutlineBlank.js +0 -16
  1220. package/dist/ui/icons/IcRoundChevronRight.d.ts +0 -2
  1221. package/dist/ui/icons/IcRoundChevronRight.js +0 -26
  1222. package/dist/ui/icons/IcRoundDescription.d.ts +0 -2
  1223. package/dist/ui/icons/IcRoundDescription.js +0 -26
  1224. package/dist/ui/icons/IcRoundDragHandle.d.ts +0 -3
  1225. package/dist/ui/icons/IcRoundDragHandle.js +0 -18
  1226. package/dist/ui/icons/IcRoundExitToApp.d.ts +0 -2
  1227. package/dist/ui/icons/IcRoundExitToApp.js +0 -26
  1228. package/dist/ui/icons/IcRoundFeed.d.ts +0 -2
  1229. package/dist/ui/icons/IcRoundFeed.js +0 -16
  1230. package/dist/ui/icons/IcRoundFormatBold.d.ts +0 -3
  1231. package/dist/ui/icons/IcRoundFormatBold.js +0 -18
  1232. package/dist/ui/icons/IcRoundFormatClear.d.ts +0 -3
  1233. package/dist/ui/icons/IcRoundFormatClear.js +0 -18
  1234. package/dist/ui/icons/IcRoundFormatItalic.d.ts +0 -3
  1235. package/dist/ui/icons/IcRoundFormatItalic.js +0 -18
  1236. package/dist/ui/icons/IcRoundFormatListBulleted.d.ts +0 -3
  1237. package/dist/ui/icons/IcRoundFormatListBulleted.js +0 -18
  1238. package/dist/ui/icons/IcRoundFormatPaint.d.ts +0 -2
  1239. package/dist/ui/icons/IcRoundFormatPaint.js +0 -10
  1240. package/dist/ui/icons/IcRoundHamburger.d.ts +0 -3
  1241. package/dist/ui/icons/IcRoundHamburger.js +0 -18
  1242. package/dist/ui/icons/IcRoundHdrStrong.d.ts +0 -3
  1243. package/dist/ui/icons/IcRoundHdrStrong.js +0 -18
  1244. package/dist/ui/icons/IcRoundHorizontalRule.d.ts +0 -3
  1245. package/dist/ui/icons/IcRoundHorizontalRule.js +0 -19
  1246. package/dist/ui/icons/IcRoundInsertDriveFile.d.ts +0 -2
  1247. package/dist/ui/icons/IcRoundInsertDriveFile.js +0 -16
  1248. package/dist/ui/icons/IcRoundKeyboardArrowDown.d.ts +0 -2
  1249. package/dist/ui/icons/IcRoundKeyboardArrowDown.js +0 -16
  1250. package/dist/ui/icons/IcRoundKeyboardArrowLeft.d.ts +0 -3
  1251. package/dist/ui/icons/IcRoundKeyboardArrowLeft.js +0 -18
  1252. package/dist/ui/icons/IcRoundKeyboardArrowRight.d.ts +0 -2
  1253. package/dist/ui/icons/IcRoundKeyboardArrowRight.js +0 -16
  1254. package/dist/ui/icons/IcRoundKeyboardArrowUp.d.ts +0 -2
  1255. package/dist/ui/icons/IcRoundKeyboardArrowUp.js +0 -16
  1256. package/dist/ui/icons/IcRoundLanguage.d.ts +0 -2
  1257. package/dist/ui/icons/IcRoundLanguage.js +0 -16
  1258. package/dist/ui/icons/IcRoundLastPage.d.ts +0 -2
  1259. package/dist/ui/icons/IcRoundLastPage.js +0 -26
  1260. package/dist/ui/icons/IcRoundLock.d.ts +0 -3
  1261. package/dist/ui/icons/IcRoundLock.js +0 -18
  1262. package/dist/ui/icons/IcRoundMenu.d.ts +0 -2
  1263. package/dist/ui/icons/IcRoundMenu.js +0 -16
  1264. package/dist/ui/icons/IcRoundMoreHoriz.d.ts +0 -2
  1265. package/dist/ui/icons/IcRoundMoreHoriz.js +0 -16
  1266. package/dist/ui/icons/IcRoundMoreVert.d.ts +0 -2
  1267. package/dist/ui/icons/IcRoundMoreVert.js +0 -26
  1268. package/dist/ui/icons/IcRoundNorthEast.d.ts +0 -2
  1269. package/dist/ui/icons/IcRoundNorthEast.js +0 -16
  1270. package/dist/ui/icons/IcRoundNotes.d.ts +0 -2
  1271. package/dist/ui/icons/IcRoundNotes.js +0 -16
  1272. package/dist/ui/icons/IcRoundNumbers.d.ts +0 -2
  1273. package/dist/ui/icons/IcRoundNumbers.js +0 -16
  1274. package/dist/ui/icons/IcRoundPermMedia.d.ts +0 -2
  1275. package/dist/ui/icons/IcRoundPermMedia.js +0 -25
  1276. package/dist/ui/icons/IcRoundPublish.d.ts +0 -2
  1277. package/dist/ui/icons/IcRoundPublish.js +0 -16
  1278. package/dist/ui/icons/IcRoundPublishedWithChanges.d.ts +0 -2
  1279. package/dist/ui/icons/IcRoundPublishedWithChanges.js +0 -26
  1280. package/dist/ui/icons/IcRoundQuote.d.ts +0 -2
  1281. package/dist/ui/icons/IcRoundQuote.js +0 -16
  1282. package/dist/ui/icons/IcRoundRedo.d.ts +0 -3
  1283. package/dist/ui/icons/IcRoundRedo.js +0 -18
  1284. package/dist/ui/icons/IcRoundRemoveCircleOutline.d.ts +0 -2
  1285. package/dist/ui/icons/IcRoundRemoveCircleOutline.js +0 -16
  1286. package/dist/ui/icons/IcRoundRotateLeft.d.ts +0 -2
  1287. package/dist/ui/icons/IcRoundRotateLeft.js +0 -16
  1288. package/dist/ui/icons/IcRoundSend.d.ts +0 -2
  1289. package/dist/ui/icons/IcRoundSend.js +0 -26
  1290. package/dist/ui/icons/IcRoundSouthWest.d.ts +0 -2
  1291. package/dist/ui/icons/IcRoundSouthWest.js +0 -16
  1292. package/dist/ui/icons/IcRoundSubscript.d.ts +0 -2
  1293. package/dist/ui/icons/IcRoundSubscript.js +0 -26
  1294. package/dist/ui/icons/IcRoundSuperscript.d.ts +0 -2
  1295. package/dist/ui/icons/IcRoundSuperscript.js +0 -26
  1296. package/dist/ui/icons/IcRoundTabletMac.d.ts +0 -2
  1297. package/dist/ui/icons/IcRoundTabletMac.js +0 -16
  1298. package/dist/ui/icons/IcRoundTextFields.d.ts +0 -2
  1299. package/dist/ui/icons/IcRoundTextFields.js +0 -16
  1300. package/dist/ui/icons/IcRoundTranslate.d.ts +0 -2
  1301. package/dist/ui/icons/IcRoundTranslate.js +0 -26
  1302. package/dist/ui/icons/IcRoundUndo.d.ts +0 -3
  1303. package/dist/ui/icons/IcRoundUndo.js +0 -18
  1304. package/dist/ui/icons/IcRoundUnfoldLess.d.ts +0 -2
  1305. package/dist/ui/icons/IcRoundUnfoldLess.js +0 -26
  1306. package/dist/ui/icons/IcRoundUnfoldMore.d.ts +0 -2
  1307. package/dist/ui/icons/IcRoundUnfoldMore.js +0 -16
  1308. package/dist/ui/icons/IcRoundUploadFile.d.ts +0 -3
  1309. package/dist/ui/icons/IcRoundUploadFile.js +0 -18
  1310. package/dist/ui/icons/IcRoundVisibilityOff.d.ts +0 -2
  1311. package/dist/ui/icons/IcRoundVisibilityOff.js +0 -16
  1312. package/dist/ui/icons/IcRoundWarning.d.ts +0 -2
  1313. package/dist/ui/icons/IcRoundWarning.js +0 -16
  1314. package/dist/ui/icons/IcSharpBrightnessMedium.d.ts +0 -2
  1315. package/dist/ui/icons/IcSharpBrightnessMedium.js +0 -16
  1316. package/dist/ui/icons/IcSharpVerticalAlignCenter.d.ts +0 -2
  1317. package/dist/ui/icons/IcSharpVerticalAlignCenter.js +0 -16
  1318. package/dist/ui/icons/IcTwotoneDescription.d.ts +0 -2
  1319. package/dist/ui/icons/IcTwotoneDescription.js +0 -37
  1320. package/dist/ui/icons/IcTwotoneFolder.d.ts +0 -2
  1321. package/dist/ui/icons/IcTwotoneFolder.js +0 -37
  1322. package/dist/ui/icons/IcTwotoneInsertDriveFile.d.ts +0 -2
  1323. package/dist/ui/icons/IcTwotoneInsertDriveFile.js +0 -30
  1324. package/dist/ui/icons/MdiGithub.d.ts +0 -3
  1325. package/dist/ui/icons/MdiGithub.js +0 -18
  1326. package/dist/ui/icons/MdiSourceBranch.d.ts +0 -2
  1327. package/dist/ui/icons/MdiSourceBranch.js +0 -16
  1328. package/dist/ui/icons/MdiTwitterCircle.d.ts +0 -2
  1329. package/dist/ui/icons/MdiTwitterCircle.js +0 -26
  1330. package/dist/ui/icons/MiLayers.d.ts +0 -3
  1331. package/dist/ui/icons/MiLayers.js +0 -16
  1332. package/dist/ui/icons/PhGlobe.d.ts +0 -2
  1333. package/dist/ui/icons/PhGlobe.js +0 -26
  1334. package/dist/ui/icons/RiFlashlightFill.d.ts +0 -2
  1335. package/dist/ui/icons/RiFlashlightFill.js +0 -10
  1336. package/dist/ui/icons/TableDelete.d.ts +0 -2
  1337. package/dist/ui/icons/TableDelete.js +0 -25
  1338. package/dist/ui/icons/TableDeleteColumn.d.ts +0 -2
  1339. package/dist/ui/icons/TableDeleteColumn.js +0 -16
  1340. package/dist/ui/icons/TableDeleteRow.d.ts +0 -2
  1341. package/dist/ui/icons/TableDeleteRow.js +0 -16
  1342. package/dist/ui/icons/TableHeaderCell.d.ts +0 -2
  1343. package/dist/ui/icons/TableHeaderCell.js +0 -16
  1344. package/dist/ui/icons/TableHeaderColumn.d.ts +0 -2
  1345. package/dist/ui/icons/TableHeaderColumn.js +0 -16
  1346. package/dist/ui/icons/TableHeaderRow.d.ts +0 -2
  1347. package/dist/ui/icons/TableHeaderRow.js +0 -16
  1348. package/dist/ui/icons/TableInsertColumnAfter.d.ts +0 -2
  1349. package/dist/ui/icons/TableInsertColumnAfter.js +0 -16
  1350. package/dist/ui/icons/TableInsertColumnBefore.d.ts +0 -2
  1351. package/dist/ui/icons/TableInsertColumnBefore.js +0 -16
  1352. package/dist/ui/icons/TableInsertRowAfter.d.ts +0 -2
  1353. package/dist/ui/icons/TableInsertRowAfter.js +0 -16
  1354. package/dist/ui/icons/TableInsertRowBefore.d.ts +0 -2
  1355. package/dist/ui/icons/TableInsertRowBefore.js +0 -16
  1356. package/dist/ui/icons/TableMergeCells.d.ts +0 -2
  1357. package/dist/ui/icons/TableMergeCells.js +0 -16
  1358. package/dist/ui/icons/TableSplitCell.d.ts +0 -2
  1359. package/dist/ui/icons/TableSplitCell.js +0 -16
  1360. package/dist/ui/util/ContrastColor.d.ts +0 -1
  1361. package/dist/ui/util/ContrastColor.js +0 -17
  1362. package/dist/ui/util/CreateTypo.d.ts +0 -62
  1363. package/dist/ui/util/CreateTypo.js +0 -119
  1364. package/dist/ui/util/Elevation.d.ts +0 -12
  1365. package/dist/ui/util/Elevation.js +0 -20
  1366. package/dist/ui/util/PropsWithAs.d.ts +0 -12
  1367. package/dist/ui/util/PropsWithAs.js +0 -10
  1368. package/dist/ui/util/Slots.d.ts +0 -11
  1369. package/dist/ui/util/Slots.js +0 -50
  1370. package/dist/ui/util/TextareaAutosize.d.ts +0 -2
  1371. package/dist/ui/util/TextareaAutosize.js +0 -40
  1372. package/dist/ui/util/Units.d.ts +0 -1
  1373. package/dist/ui/util/Units.js +0 -7
  1374. package/dist/ui/util/UseId.d.ts +0 -1
  1375. package/dist/ui/util/UseId.js +0 -11
  1376. package/dist/yjs.d.ts +0 -1
  1377. package/dist/yjs.js +0 -206
  1378. /package/dist/{core/Shape.js → chunks/chunk-NUFRM6SI.js} +0 -0
  1379. /package/dist/{backend/Handler.test.d.ts → dashboard/app/EntrySidebarPreview.spec.d.ts} +0 -0
  1380. /package/dist/{backend/router/Router.test.d.ts → dashboard/app/WorkspaceMenu.spec.d.ts} +0 -0
  1381. /package/dist/{cli/Init.test.d.ts → field/link/LinkField.spec.d.ts} +0 -0
  1382. /package/dist/{cli/util/CommitMessage.test.d.ts → field/list/ListField.spec.d.ts} +0 -0
  1383. /package/dist/{core/Config.test.d.ts → field/richtext/RichTextField.spec.d.ts} +0 -0
@@ -1,419 +1,1501 @@
1
+ import "../../chunks/chunk-NUFRM6SI.js";
1
2
  import {
2
- CSS,
3
- DndContext,
4
- DragOverlay,
5
- KeyboardSensor,
6
- LayoutMeasuringStrategy,
7
- PointerSensor,
8
- SortableContext,
9
- closestCenter,
10
- defaultAnimateLayoutChanges,
11
- defaultDropAnimation,
12
- sortableKeyboardCoordinates,
13
- useSensor,
14
- useSensors,
15
- useSortable,
16
- verticalListSortingStrategy
17
- } from "../../chunks/chunk-TPUTTEHF.js";
3
+ unwrap
4
+ } from "../../chunks/chunk-STAJCW4Z.js";
5
+ import {
6
+ useAtomValue,
7
+ useSetAtom
8
+ } from "../../chunks/chunk-U4VOHNR2.js";
9
+ import {
10
+ atom
11
+ } from "../../chunks/chunk-Y7XOMJOC.js";
12
+ import "../../chunks/chunk-IWN3T3FL.js";
13
+ import "../../chunks/chunk-RKDPDEF7.js";
14
+ import "../../chunks/chunk-SJBZFMQ2.js";
15
+ import {
16
+ $5d3a17cc2564e64f$export$905ab40ac2179daa,
17
+ $74812c42150b3de8$export$7941f8aafa4b6021,
18
+ $f302ef02e940a6f8$export$ccdee5eaf73cf661
19
+ } from "../../chunks/chunk-YK3OSMDM.js";
18
20
  import {
19
21
  dist_default
20
- } from "../../chunks/chunk-A5O3N2GS.js";
21
- import "../../chunks/chunk-NZLE2WMY.js";
22
+ } from "../../chunks/chunk-I4OYYAX5.js";
23
+ import "../../chunks/chunk-CQ52GEHY.js";
22
24
 
23
25
  // src/field/link/LinkField.view.tsx
24
- import { Entry } from "alinea/core/Entry";
26
+ import {
27
+ Button,
28
+ DialogTrigger,
29
+ Icon,
30
+ List,
31
+ ListCreateRow,
32
+ ListDragPreview,
33
+ ListLabel,
34
+ ListRow,
35
+ ListRowActions,
36
+ ListRowBadges,
37
+ ListRowBody,
38
+ ListRowDrag,
39
+ ListRowDragHandle,
40
+ ListRowFoldButton,
41
+ ListRowFooter,
42
+ ListRowHeader,
43
+ ListRowSettings,
44
+ MenuSeparator,
45
+ Popover,
46
+ Select,
47
+ SelectItem,
48
+ TextField
49
+ } from "alinea/components";
50
+ import { createId } from "alinea/core/Id";
51
+ import { getType, getWorkspace } from "alinea/core/Internal";
25
52
  import { Reference } from "alinea/core/Reference";
26
- import { ListRow } from "alinea/core/shape/ListShape";
27
- import { entries } from "alinea/core/util/Objects";
28
- import { FormRow } from "alinea/dashboard/atoms/FormAtoms";
29
- import { InputForm } from "alinea/dashboard/editor/InputForm";
30
- import { useField } from "alinea/dashboard/editor/UseField";
31
- import { useGraph } from "alinea/dashboard/hook/UseGraph";
32
- import { useLocale } from "alinea/dashboard/hook/UseLocale";
33
- import { useNav } from "alinea/dashboard/hook/UseNav";
34
- import { SuspenseBoundary } from "alinea/dashboard/util/SuspenseBoundary";
35
- import { Create } from "alinea/dashboard/view/Create";
36
- import { IconButton } from "alinea/dashboard/view/IconButton";
37
- import { InputLabel } from "alinea/dashboard/view/InputLabel";
38
- import { EntryReference } from "alinea/picker/entry/EntryReference";
39
- import { UrlReference } from "alinea/picker/url/UrlPicker";
40
- import { TextLabel } from "alinea/ui";
41
- import { IcRoundAttachFile } from "alinea/ui/icons/IcRoundAttachFile";
42
- import { IcRoundClose } from "alinea/ui/icons/IcRoundClose";
43
- import IcRoundDragHandle from "alinea/ui/icons/IcRoundDragHandle";
44
- import { IcRoundEdit } from "alinea/ui/icons/IcRoundEdit";
45
- import { IcRoundLink } from "alinea/ui/icons/IcRoundLink";
46
- import { IcRoundOpenInNew } from "alinea/ui/icons/IcRoundOpenInNew";
47
- import { IcRoundPanorama } from "alinea/ui/icons/IcRoundPanorama";
48
- import { Sink } from "alinea/ui/Sink";
53
+ import { Root } from "alinea/core/Root";
54
+ import { Type } from "alinea/core/Type";
55
+ import { Badge } from "alinea/dashboard/app/Badge";
56
+ import { CompactRecordFields } from "alinea/dashboard/app/CompactField";
57
+ import { NodeEditor } from "alinea/dashboard/app/EntryFields";
58
+ import { configAtom, graphAtom } from "alinea/dashboard/atoms/core";
59
+ import { linkEntryAtoms } from "alinea/dashboard/atoms/link";
60
+ import {
61
+ ExternalLinkPicker
62
+ } from "alinea/dashboard/app/ExternalLinkPicker";
63
+ import { ImagePicker } from "alinea/dashboard/app/ImagePicker";
49
64
  import {
50
- Suspense,
51
- useState
52
- } from "react";
65
+ LinkPicker,
66
+ LinkPickerModal
67
+ } from "alinea/dashboard/app/LinkPicker";
68
+ import { nav } from "alinea/dashboard/atoms/nav";
69
+ import {
70
+ useEntry,
71
+ useField,
72
+ useFieldNode,
73
+ useFieldOptions,
74
+ useNodes,
75
+ useOptionalEntryAtoms
76
+ } from "alinea/dashboard/hooks";
77
+ import {
78
+ IcRoundAttachFile,
79
+ IcRoundAdd,
80
+ IcRoundClose,
81
+ IcRoundEdit,
82
+ IcRoundLink,
83
+ IcRoundMoreHoriz,
84
+ IcRoundOpenInNew,
85
+ IcRoundPanorama
86
+ } from "alinea/dashboard/icons";
87
+ import { Fragment, useMemo, useRef, useState } from "react";
53
88
 
54
- // src/field/link/LinkField.module.scss
55
- var LinkField_module_default = {
56
- "root": "alinea-LinkField",
57
- "root-inner": "alinea-LinkField-inner",
58
- "rootInner": "alinea-LinkField-inner",
59
- "row": "alinea-LinkField-row",
60
- "is-dragging": "alinea-LinkField-is-dragging",
61
- "isDragging": "alinea-LinkField-is-dragging",
62
- "is-overlay": "alinea-LinkField-is-overlay",
63
- "isOverlay": "alinea-LinkField-is-overlay",
64
- "row-header": "alinea-LinkField-row-header",
65
- "rowHeader": "alinea-LinkField-row-header",
66
- "row-staticHandle": "alinea-LinkField-row-staticHandle",
67
- "rowStaticHandle": "alinea-LinkField-row-staticHandle",
68
- "create": "alinea-LinkField-create"
89
+ // src/field/link/LinkField.module.css
90
+ var LinkField_default = {
91
+ "LinkFieldView-previewImagePlaceholder": "alinea-LinkFieldView-previewImagePlaceholder",
92
+ "LinkFieldViewPreviewImagePlaceholder": "alinea-LinkFieldView-previewImagePlaceholder",
93
+ "LinkFieldView-skeleton-pulse": "alinea-LinkFieldView-skeleton-pulse",
94
+ "LinkFieldViewSkeletonPulse": "alinea-LinkFieldView-skeleton-pulse",
95
+ "LinkFieldView-title": "alinea-LinkFieldView-title",
96
+ "LinkFieldViewTitle": "alinea-LinkFieldView-title",
97
+ "LinkFieldView-metaLabel": "alinea-LinkFieldView-metaLabel",
98
+ "LinkFieldViewMetaLabel": "alinea-LinkFieldView-metaLabel",
99
+ "LinkFieldView-meta": "alinea-LinkFieldView-meta",
100
+ "LinkFieldViewMeta": "alinea-LinkFieldView-meta",
101
+ "LinkFieldView-anchorOption": "alinea-LinkFieldView-anchorOption",
102
+ "LinkFieldViewAnchorOption": "alinea-LinkFieldView-anchorOption",
103
+ "LinkFieldView-labelText": "alinea-LinkFieldView-labelText",
104
+ "LinkFieldViewLabelText": "alinea-LinkFieldView-labelText",
105
+ "is-missing": "alinea-is-missing",
106
+ "isMissing": "alinea-is-missing",
107
+ "LinkFieldView-type": "alinea-LinkFieldView-type",
108
+ "LinkFieldViewType": "alinea-LinkFieldView-type",
109
+ "is-wide": "alinea-is-wide",
110
+ "isWide": "alinea-is-wide",
111
+ "LinkFieldView-previewImage": "alinea-LinkFieldView-previewImage",
112
+ "LinkFieldViewPreviewImage": "alinea-LinkFieldView-previewImage",
113
+ "LinkFieldView-rowDropTarget": "alinea-LinkFieldView-rowDropTarget",
114
+ "LinkFieldViewRowDropTarget": "alinea-LinkFieldView-rowDropTarget",
115
+ "LinkFieldView-anchorOption-label": "alinea-LinkFieldView-anchorOption-label",
116
+ "LinkFieldViewAnchorOptionLabel": "alinea-LinkFieldView-anchorOption-label",
117
+ "LinkFieldView-dropIndicator": "alinea-LinkFieldView-dropIndicator",
118
+ "LinkFieldViewDropIndicator": "alinea-LinkFieldView-dropIndicator",
119
+ "LinkFieldView-icon": "alinea-LinkFieldView-icon",
120
+ "LinkFieldViewIcon": "alinea-LinkFieldView-icon",
121
+ "LinkFieldView-imagePlaceholder": "alinea-LinkFieldView-imagePlaceholder",
122
+ "LinkFieldViewImagePlaceholder": "alinea-LinkFieldView-imagePlaceholder",
123
+ "LinkFieldView-anchorOption-location": "alinea-LinkFieldView-anchorOption-location",
124
+ "LinkFieldViewAnchorOptionLocation": "alinea-LinkFieldView-anchorOption-location",
125
+ "LinkFieldView-label": "alinea-LinkFieldView-label",
126
+ "LinkFieldViewLabel": "alinea-LinkFieldView-label",
127
+ "LinkFieldView-create": "alinea-LinkFieldView-create",
128
+ "LinkFieldViewCreate": "alinea-LinkFieldView-create",
129
+ "LinkFieldView-image": "alinea-LinkFieldView-image",
130
+ "LinkFieldViewImage": "alinea-LinkFieldView-image",
131
+ "LinkFieldView-skeleton": "alinea-LinkFieldView-skeleton",
132
+ "LinkFieldViewSkeleton": "alinea-LinkFieldView-skeleton",
133
+ "is-loading": "alinea-is-loading",
134
+ "isLoading": "alinea-is-loading",
135
+ "LinkFieldView-createButton": "alinea-LinkFieldView-createButton",
136
+ "LinkFieldViewCreateButton": "alinea-LinkFieldView-createButton"
69
137
  };
70
138
 
71
139
  // src/field/link/LinkField.view.tsx
72
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
73
- var styles = dist_default(LinkField_module_default);
74
- function getLinkIcon(name) {
75
- switch (name) {
76
- case "entry":
77
- return IcRoundLink;
78
- case "url":
79
- return IcRoundOpenInNew;
80
- case "file":
81
- return IcRoundAttachFile;
82
- case "image":
83
- return IcRoundPanorama;
84
- default:
85
- return void 0;
86
- }
140
+ import { Fragment as Fragment2, jsx, jsxs } from "react/jsx-runtime";
141
+ var styles = dist_default(LinkField_default);
142
+ var LINK_FIELD_ROW_DRAG_TYPE = "application/x-alinea-link-field-row";
143
+ function LinkRowText({ node }) {
144
+ const type = useAtomValue(node.field("_type"));
145
+ if (type === "entry" || type === "image" || type === "file")
146
+ return /* @__PURE__ */ jsx(EntryRowLayer, { node, textOnly: true });
147
+ if (type === "url") return /* @__PURE__ */ jsx(UrlRow, { node, textOnly: true });
148
+ return null;
87
149
  }
88
- function SingleLinkInput({ field }) {
89
- const { options, value, mutator, error } = useField(field);
90
- const { readOnly } = options;
91
- const [pickFrom, setPickFrom] = useState();
92
- const picker = pickFrom ? options.pickers[pickFrom] : void 0;
93
- function handleConfirm(link) {
94
- if (readOnly) return;
95
- const selected = link[0];
96
- if (!pickFrom || !picker || !selected) return;
97
- if (selected[Reference.type] !== pickFrom) return;
98
- mutator.replace(selected);
99
- setPickFrom(void 0);
100
- }
101
- const PickerView = picker && picker.view;
102
- return /* @__PURE__ */ jsxs(Fragment, { children: [
103
- PickerView && /* @__PURE__ */ jsx(SuspenseBoundary, { name: "picker", children: /* @__PURE__ */ jsx(
104
- PickerView,
150
+ function isPickerType(type) {
151
+ return type === "entry" || type === "url" || type === "file" || type === "image";
152
+ }
153
+ function isLinkFieldRow(value) {
154
+ if (!value || typeof value !== "object") return false;
155
+ const type = value[Reference.type];
156
+ return typeof type === "string" && isPickerType(type);
157
+ }
158
+ function getPickerType(type) {
159
+ return isPickerType(type) ? type : "entry";
160
+ }
161
+ function getEntryPickerType(type) {
162
+ return type === "url" ? "entry" : type;
163
+ }
164
+ function EntryRowLayer({ hasFields, node, textOnly }) {
165
+ const entryId = useAtomValue(node.field("_entry"));
166
+ const type = useAtomValue(node.field("_type"));
167
+ if (!entryId) return null;
168
+ return /* @__PURE__ */ jsx(
169
+ EntryRow,
170
+ {
171
+ entryId,
172
+ hasFields,
173
+ image: type === "image",
174
+ textOnly
175
+ }
176
+ );
177
+ }
178
+ function EntryRow({ entryId, hasFields, image, textOnly }) {
179
+ const state = useLinkEntryState(entryId);
180
+ if (state.state === "hasData" && state.data)
181
+ return /* @__PURE__ */ jsx(
182
+ LoadedEntryRow,
105
183
  {
106
- type: pickFrom,
107
- options: picker.options,
108
- selection: [value],
109
- onConfirm: handleConfirm,
110
- onCancel: () => setPickFrom(void 0)
184
+ entry: state.data,
185
+ hasFields,
186
+ image,
187
+ textOnly
111
188
  }
112
- ) }),
113
- /* @__PURE__ */ jsx(InputLabel, { ...options, error, icon: IcRoundLink, children: /* @__PURE__ */ jsx("div", { className: styles.root(), children: /* @__PURE__ */ jsx("div", { className: styles.root.inner(), children: /* @__PURE__ */ jsx(Sink.Root, { children: value && options.pickers[value[Reference.type]] ? /* @__PURE__ */ jsx(
114
- LinkInputRow,
189
+ );
190
+ if (state.state !== "loading")
191
+ return /* @__PURE__ */ jsx(
192
+ MissingEntryRow,
115
193
  {
116
- readOnly,
117
- field,
118
- rowId: value[Reference.id],
119
- fields: options.pickers[value[Reference.type]].fields,
120
- picker: options.pickers[value[Reference.type]],
121
- reference: value,
122
- onRemove: () => mutator.replace(void 0),
123
- onEdit: () => setPickFrom(value[Reference.type])
194
+ entryId,
195
+ hasFields,
196
+ image,
197
+ textOnly
198
+ }
199
+ );
200
+ return /* @__PURE__ */ jsx(
201
+ EntryLoadingRow,
202
+ {
203
+ hasFields,
204
+ image,
205
+ pending: true,
206
+ textOnly
207
+ }
208
+ );
209
+ }
210
+ function useLinkEntryState(entryId) {
211
+ return useAtomValue(linkEntryAtoms(entryId));
212
+ }
213
+ function MissingEntryRow({
214
+ entryId,
215
+ hasFields,
216
+ image,
217
+ textOnly
218
+ }) {
219
+ return /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.label({ missing: true }), children: [
220
+ image && !textOnly && /* @__PURE__ */ jsx(
221
+ "span",
222
+ {
223
+ className: styles.LinkFieldView.imagePlaceholder(),
224
+ "data-has-fields": hasFields ? "true" : void 0,
225
+ "aria-hidden": "true"
124
226
  }
125
- ) : /* @__PURE__ */ jsx("div", { className: styles.create(), children: /* @__PURE__ */ jsx(Create.Root, { disabled: readOnly, children: entries(options.pickers).map(([name, picker2]) => {
126
- return /* @__PURE__ */ jsx(
127
- Create.Button,
227
+ ),
228
+ /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.labelText(), children: [
229
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.title(), children: "Missing entry" }),
230
+ !textOnly && /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.meta(), children: entryId })
231
+ ] })
232
+ ] });
233
+ }
234
+ function EntryLoadingRow({
235
+ hasFields,
236
+ image,
237
+ pending,
238
+ textOnly
239
+ }) {
240
+ return /* @__PURE__ */ jsxs(
241
+ "span",
242
+ {
243
+ className: styles.LinkFieldView.label({ loading: true }),
244
+ "aria-busy": pending || void 0,
245
+ children: [
246
+ image && !textOnly && /* @__PURE__ */ jsx(
247
+ "span",
248
+ {
249
+ className: styles.LinkFieldView.imagePlaceholder(),
250
+ "data-has-fields": hasFields ? "true" : void 0,
251
+ "aria-hidden": "true"
252
+ }
253
+ ),
254
+ /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.labelText(), children: [
255
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.skeleton({ wide: true }) }),
256
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.skeleton() })
257
+ ] })
258
+ ]
259
+ }
260
+ );
261
+ }
262
+ function LoadedEntryRow({
263
+ entry,
264
+ hasFields,
265
+ image,
266
+ textOnly
267
+ }) {
268
+ return /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.label(), children: [
269
+ image && !textOnly && /* @__PURE__ */ jsx(EntryRowImage, { entry, hasFields }),
270
+ /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.labelText(), children: [
271
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.title(), children: entry.title }),
272
+ entry.parents.length > 0 ? /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.meta(), children: /* @__PURE__ */ jsx(EntryParents, { parents: entry.parents }) }) : null
273
+ ] })
274
+ ] });
275
+ }
276
+ function EntryRowImage({ entry, hasFields }) {
277
+ if (entry.preview) {
278
+ return /* @__PURE__ */ jsx(
279
+ "img",
280
+ {
281
+ alt: "",
282
+ className: styles.LinkFieldView.image(),
283
+ "data-has-fields": hasFields ? "true" : void 0,
284
+ src: entry.preview
285
+ }
286
+ );
287
+ }
288
+ return null;
289
+ }
290
+ function UrlRow({ node, textOnly }) {
291
+ const title = useAtomValue(node.field("_title"));
292
+ const url = useAtomValue(node.field("_url"));
293
+ return /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.label(), children: [
294
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.title(), children: textOnly ? title || url : title || url }),
295
+ !textOnly && title && url && /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.meta(), children: url })
296
+ ] });
297
+ }
298
+ function EntryParents({ parents }) {
299
+ return /* @__PURE__ */ jsx(Fragment2, { children: parents.map((parent, index) => /* @__PURE__ */ jsxs("span", { children: [
300
+ parent.title,
301
+ index < parents.length - 1 ? " / " : ""
302
+ ] }, parent.id)) });
303
+ }
304
+ function getLinkIcon(type) {
305
+ if (type === "url") return IcRoundOpenInNew;
306
+ if (type === "file") return IcRoundAttachFile;
307
+ if (type === "image") return IcRoundPanorama;
308
+ return IcRoundLink;
309
+ }
310
+ function createEntryLink(type, entryId, picker) {
311
+ return {
312
+ ...initialFields(picker),
313
+ _id: createId(),
314
+ _type: getEntryPickerType(type),
315
+ _index: "",
316
+ _entry: entryId
317
+ };
318
+ }
319
+ function createUrlLink(value, picker, current) {
320
+ return {
321
+ ...current ?? initialFields(picker),
322
+ _id: current?._id ?? createId(),
323
+ _type: "url",
324
+ _index: current?._index ?? "",
325
+ _url: value.url,
326
+ _title: value.title,
327
+ _target: value.target
328
+ };
329
+ }
330
+ function initialFields(picker) {
331
+ if (!picker.fields) return {};
332
+ return Type.initialValue(picker.fields);
333
+ }
334
+ function LinkPickerAction({
335
+ anchorRef,
336
+ ariaLabel,
337
+ buttonAppearance = "plain",
338
+ buttonIcon,
339
+ buttonSize,
340
+ children,
341
+ className,
342
+ isDisabled,
343
+ onPick,
344
+ onPickMany,
345
+ picker,
346
+ selection,
347
+ type,
348
+ value
349
+ }) {
350
+ const currentEntry = useEntry();
351
+ const config = useAtomValue(configAtom);
352
+ const selectedWorkspace = currentEntry?.workspace;
353
+ const selectedRoot = currentEntry?.root;
354
+ const selectedMediaRoot = mediaRoot(config, selectedWorkspace);
355
+ const options = picker.options;
356
+ const resolved = useResolvedEntryPickerOptions(options, type, currentEntry);
357
+ if (type === "url") {
358
+ return /* @__PURE__ */ jsxs(DialogTrigger, { children: [
359
+ /* @__PURE__ */ jsx(
360
+ Button,
361
+ {
362
+ "aria-label": ariaLabel,
363
+ appearance: buttonAppearance,
364
+ className,
365
+ icon: buttonIcon,
366
+ isDisabled,
367
+ size: buttonSize,
368
+ children
369
+ }
370
+ ),
371
+ /* @__PURE__ */ jsx(
372
+ ExternalLinkPicker,
128
373
  {
129
- onClick: () => {
130
- if (readOnly) return;
131
- setPickFrom(name);
132
- },
133
- icon: getLinkIcon(name),
134
- children: /* @__PURE__ */ jsx(TextLabel, { label: picker2.label })
374
+ initialValue: externalLinkValue(value),
375
+ selectionMode: "single",
376
+ submitLabel: value ? "Save link" : void 0,
377
+ onConfirm: (link) => onPick(createUrlLink(link, picker, value))
135
378
  },
136
- name
379
+ value?._id ?? "new"
380
+ )
381
+ ] });
382
+ }
383
+ const childLocation = options.pickChildren && currentEntry ? {
384
+ workspace: currentEntry.workspace,
385
+ root: currentEntry.root,
386
+ parentId: currentEntry.id,
387
+ locale: currentEntry.locale
388
+ } : void 0;
389
+ const pickingChildren = Boolean(childLocation);
390
+ const fallbackRoot = type === "file" || type === "image" ? selectedMediaRoot : selectedRoot;
391
+ const fallbackLocation = selectedWorkspace && fallbackRoot ? { workspace: selectedWorkspace, root: fallbackRoot } : void 0;
392
+ const location = childLocation ?? resolved.location ?? fallbackLocation;
393
+ const condition = resolved.condition;
394
+ const handlesMultiple = Boolean(onPickMany && picker.handlesMultiple);
395
+ const pickerProps = {
396
+ condition,
397
+ initialView: type === "file" ? "row" : void 0,
398
+ initialResultMode: entryPickerResultMode(
399
+ type,
400
+ condition,
401
+ options.enableNavigation,
402
+ pickingChildren
403
+ ),
404
+ initialSearchScope: entryPickerSearchScope(
405
+ condition,
406
+ resolved.location,
407
+ options.enableNavigation,
408
+ type
409
+ ),
410
+ location,
411
+ limitLocations: options.limitLocations,
412
+ nestedNavigation: !pickingChildren,
413
+ pickChildren: pickingChildren,
414
+ preselect: false,
415
+ selectionMode: handlesMultiple ? "multiple" : "single",
416
+ selectionBehavior: handlesMultiple ? "toggle" : "replace",
417
+ initialSelection: initialSelection(value, selection),
418
+ onConfirm(selection2) {
419
+ const links = selection2.map(
420
+ (entryId) => createEntryLink(type, entryId, picker)
137
421
  );
138
- }) }) }) }) }) }) })
422
+ if (onPickMany) return onPickMany(links);
423
+ const [link] = links;
424
+ if (link) onPick(link);
425
+ }
426
+ };
427
+ if (type === "file" || type === "image") {
428
+ return /* @__PURE__ */ jsxs(DialogTrigger, { children: [
429
+ /* @__PURE__ */ jsx(
430
+ Button,
431
+ {
432
+ "aria-label": ariaLabel,
433
+ appearance: buttonAppearance,
434
+ className,
435
+ icon: buttonIcon,
436
+ isDisabled,
437
+ size: buttonSize,
438
+ children
439
+ }
440
+ ),
441
+ /* @__PURE__ */ jsx(
442
+ ImagePicker,
443
+ {
444
+ ...pickerProps,
445
+ label: type === "file" ? "Pick a file" : "Pick an image"
446
+ }
447
+ )
448
+ ] });
449
+ }
450
+ return /* @__PURE__ */ jsxs(DialogTrigger, { children: [
451
+ /* @__PURE__ */ jsx(
452
+ Button,
453
+ {
454
+ "aria-label": ariaLabel,
455
+ appearance: buttonAppearance,
456
+ className,
457
+ icon: buttonIcon,
458
+ isDisabled,
459
+ size: buttonSize,
460
+ children
461
+ }
462
+ ),
463
+ /* @__PURE__ */ jsx(LinkPicker, { ...pickerProps, anchorRef })
139
464
  ] });
140
465
  }
141
- var layoutMeasuringConfig = {
142
- strategy: LayoutMeasuringStrategy.Always
143
- };
144
- function MultipleLinksInput({ field }) {
145
- const { options, value, mutator, error } = useField(field);
146
- const { readOnly } = options;
147
- const [pickFrom, setPickFrom] = useState();
148
- const picker = pickFrom ? options.pickers[pickFrom[Reference.type]] : void 0;
149
- function handleConfirm(links) {
150
- if (!pickFrom || !picker || !links) return;
151
- const seen = /* @__PURE__ */ new Set();
152
- for (const link of links) {
153
- if (link[ListRow.type] !== pickFrom[Reference.type]) continue;
154
- seen.add(link[ListRow.id]);
155
- const index = value.findIndex((v) => v[ListRow.id] === link[ListRow.id]);
156
- if (index > -1) mutator.replace(link[ListRow.id], link);
157
- else mutator.push(link);
466
+ function LinkPickerDialog({
467
+ isOpen,
468
+ onOpenChange,
469
+ onPick,
470
+ onPickMany,
471
+ picker,
472
+ selection,
473
+ type,
474
+ value
475
+ }) {
476
+ const currentEntry = useEntry();
477
+ const config = useAtomValue(configAtom);
478
+ const selectedWorkspace = currentEntry?.workspace;
479
+ const selectedRoot = currentEntry?.root;
480
+ const selectedMediaRoot = mediaRoot(config, selectedWorkspace);
481
+ const options = picker.options;
482
+ const resolved = useResolvedEntryPickerOptions(options, type, currentEntry);
483
+ function handlePick(link) {
484
+ onPick(link);
485
+ onOpenChange(false);
486
+ }
487
+ if (type === "url") {
488
+ return /* @__PURE__ */ jsxs(DialogTrigger, { isOpen, onOpenChange, children: [
489
+ /* @__PURE__ */ jsx(Button, { style: { display: "none" }, children: "Replace link" }),
490
+ /* @__PURE__ */ jsx(
491
+ ExternalLinkPicker,
492
+ {
493
+ initialValue: externalLinkValue(value),
494
+ selectionMode: "single",
495
+ submitLabel: value ? "Save link" : void 0,
496
+ onConfirm: (link) => handlePick(createUrlLink(link, picker, value))
497
+ },
498
+ value?._id ?? "new"
499
+ )
500
+ ] });
501
+ }
502
+ const childLocation = options.pickChildren && currentEntry ? {
503
+ workspace: currentEntry.workspace,
504
+ root: currentEntry.root,
505
+ parentId: currentEntry.id
506
+ } : void 0;
507
+ const pickingChildren = Boolean(childLocation);
508
+ const fallbackRoot = type === "file" || type === "image" ? selectedMediaRoot : selectedRoot;
509
+ const fallbackLocation = selectedWorkspace && fallbackRoot ? { workspace: selectedWorkspace, root: fallbackRoot } : void 0;
510
+ const location = childLocation ?? resolved.location ?? fallbackLocation;
511
+ const condition = resolved.condition;
512
+ const handlesMultiple = Boolean(onPickMany && picker.handlesMultiple);
513
+ const pickerProps = {
514
+ condition,
515
+ initialView: type === "file" ? "row" : void 0,
516
+ initialResultMode: entryPickerResultMode(
517
+ type,
518
+ condition,
519
+ options.enableNavigation,
520
+ pickingChildren
521
+ ),
522
+ initialSearchScope: entryPickerSearchScope(
523
+ condition,
524
+ resolved.location,
525
+ options.enableNavigation,
526
+ type
527
+ ),
528
+ location,
529
+ limitLocations: options.limitLocations,
530
+ nestedNavigation: !pickingChildren,
531
+ pickChildren: pickingChildren,
532
+ preselect: false,
533
+ selectionMode: handlesMultiple ? "multiple" : "single",
534
+ selectionBehavior: handlesMultiple ? "toggle" : "replace",
535
+ initialSelection: initialSelection(value, selection),
536
+ onConfirm(selection2) {
537
+ const links = selection2.map(
538
+ (entryId) => createEntryLink(type, entryId, picker)
539
+ );
540
+ if (onPickMany) {
541
+ onPickMany(links);
542
+ onOpenChange(false);
543
+ return;
544
+ }
545
+ const [link] = links;
546
+ if (link) handlePick(link);
547
+ }
548
+ };
549
+ if (type === "file" || type === "image") {
550
+ return /* @__PURE__ */ jsxs(DialogTrigger, { isOpen, onOpenChange, children: [
551
+ /* @__PURE__ */ jsx(Button, { style: { display: "none" }, children: "Replace link" }),
552
+ /* @__PURE__ */ jsx(
553
+ ImagePicker,
554
+ {
555
+ ...pickerProps,
556
+ label: type === "file" ? "Pick a file" : "Pick an image"
557
+ }
558
+ )
559
+ ] });
560
+ }
561
+ return /* @__PURE__ */ jsxs(DialogTrigger, { isOpen, onOpenChange, children: [
562
+ /* @__PURE__ */ jsx(Button, { style: { display: "none" }, children: "Replace link" }),
563
+ /* @__PURE__ */ jsx(LinkPickerModal, { ...pickerProps })
564
+ ] });
565
+ }
566
+ function useResolvedEntryPickerOptions(options, type, entry) {
567
+ const { condition: conditionOption, location: locationOption } = options;
568
+ const resolvedAtom = useMemo(() => {
569
+ const initialValue = {
570
+ condition: typeof conditionOption === "function" ? void 0 : conditionOption,
571
+ location: typeof locationOption === "function" ? void 0 : locationOption
572
+ };
573
+ const resolved = atom(async (get) => {
574
+ if (type === "url") return { condition: void 0, location: void 0 };
575
+ if (!entry) return initialValue;
576
+ const info = { entry, graph: get(graphAtom) };
577
+ const condition = typeof conditionOption === "function" ? conditionOption(info) : conditionOption;
578
+ const location = typeof locationOption === "function" ? locationOption(info) : locationOption;
579
+ const [nextCondition, nextLocation] = await Promise.all([
580
+ condition,
581
+ location
582
+ ]);
583
+ return { condition: nextCondition, location: nextLocation };
584
+ });
585
+ return unwrap(resolved, (previous) => previous ?? initialValue);
586
+ }, [conditionOption, entry, locationOption, type]);
587
+ return useAtomValue(resolvedAtom);
588
+ }
589
+ function entryPickerSearchScope(condition, location, enableNavigation, type) {
590
+ if (type === "file" || type === "image") return "workspace";
591
+ return condition && !location && enableNavigation !== true ? "everything" : "workspace";
592
+ }
593
+ function entryPickerResultMode(type, condition, enableNavigation, pickChildren) {
594
+ return pickChildren || type !== "image" && condition && enableNavigation !== true ? "matches" : "browse";
595
+ }
596
+ function externalLinkValue(value) {
597
+ if (value?.[Reference.type] !== "url") return void 0;
598
+ return {
599
+ url: value._url,
600
+ title: value._title,
601
+ target: value._target
602
+ };
603
+ }
604
+ function initialSelection(value, selection = []) {
605
+ if (value && "_entry" in value) return [value._entry];
606
+ return selection.flatMap((row) => "_entry" in row ? [row._entry] : []);
607
+ }
608
+ function mediaRoot(config, workspaceName) {
609
+ if (!workspaceName) return void 0;
610
+ const workspace = config.workspaces[workspaceName];
611
+ if (!workspace) return void 0;
612
+ return Object.entries(getWorkspace(workspace).roots).find(
613
+ ([, root]) => Root.isMediaRoot(root)
614
+ )?.[0];
615
+ }
616
+ function insertIndex(rowIndex, position) {
617
+ return position === "before" ? rowIndex : rowIndex + 1;
618
+ }
619
+ function reorderIndex(fromIndex, targetIndex) {
620
+ return fromIndex < targetIndex ? targetIndex - 1 : targetIndex;
621
+ }
622
+ function dragRowItem(id) {
623
+ return {
624
+ "text/plain": id,
625
+ [LINK_FIELD_ROW_DRAG_TYPE]: id
626
+ };
627
+ }
628
+ function rowDropPosition(row, y) {
629
+ if (!row) return "after";
630
+ return y < row.offsetHeight / 2 ? "before" : "after";
631
+ }
632
+ async function getDraggedRowId(items, dragType) {
633
+ for (const item of items) {
634
+ if (item.kind === "text" && item.types.has(dragType) && item.getText) {
635
+ return item.getText(dragType);
158
636
  }
159
- if (picker.handlesMultiple)
160
- for (const link of value) {
161
- if (link[ListRow.type] !== pickFrom[Reference.type]) continue;
162
- if (seen.has(link[ListRow.id])) continue;
163
- mutator.remove(link[ListRow.id]);
637
+ }
638
+ return null;
639
+ }
640
+ function SingleLinkCreateActions({ field, value }) {
641
+ const options = useFieldOptions(field);
642
+ const [, setValue] = useField(field);
643
+ const anchorRef = useRef(null);
644
+ if (options.readOnly) return null;
645
+ return /* @__PURE__ */ jsx("div", { className: styles.LinkFieldView.create(), ref: anchorRef, children: Object.entries(options.pickers).map(([type, picker]) => /* @__PURE__ */ jsxs(
646
+ LinkPickerAction,
647
+ {
648
+ anchorRef,
649
+ buttonSize: "small",
650
+ className: styles.LinkFieldView.createButton(),
651
+ onPick: setValue,
652
+ picker,
653
+ type,
654
+ value: value?._type === type ? value : void 0,
655
+ children: [
656
+ /* @__PURE__ */ jsx(
657
+ Icon,
658
+ {
659
+ "aria-hidden": true,
660
+ icon: options.isEntryField ? IcRoundAdd : getLinkIcon(type)
661
+ }
662
+ ),
663
+ options.isEntryField ? options.label : picker.label
664
+ ]
665
+ },
666
+ type
667
+ )) });
668
+ }
669
+ function MultipleLinkCreateActions({ field }) {
670
+ const options = useFieldOptions(field);
671
+ const [value, setValue] = useField(field);
672
+ const anchorRef = useRef(null);
673
+ const links = value ?? [];
674
+ const showCreate = options.max ? links.length < options.max : true;
675
+ if (options.readOnly) return null;
676
+ if (!showCreate) return null;
677
+ return /* @__PURE__ */ jsx("div", { className: styles.LinkFieldView.create(), ref: anchorRef, children: Object.entries(options.pickers).map(([type, picker]) => /* @__PURE__ */ jsxs(
678
+ LinkPickerAction,
679
+ {
680
+ anchorRef,
681
+ buttonSize: "small",
682
+ className: styles.LinkFieldView.createButton(),
683
+ onPick: (link) => {
684
+ setValue((links2) => [...links2 ?? [], link]);
685
+ },
686
+ onPickMany: (picked) => setValue((links2) => [...links2 ?? [], ...picked]),
687
+ picker,
688
+ selection: links.filter((row) => row._type === type),
689
+ type,
690
+ children: [
691
+ /* @__PURE__ */ jsx(
692
+ Icon,
693
+ {
694
+ "aria-hidden": true,
695
+ icon: options.isEntryField ? IcRoundAdd : getLinkIcon(type)
696
+ }
697
+ ),
698
+ options.isEntryField ? options.label : picker.label
699
+ ]
700
+ },
701
+ type
702
+ )) });
703
+ }
704
+ function LinkRowEditor({ node, picker }) {
705
+ if (!picker?.fields) return null;
706
+ return /* @__PURE__ */ jsx(NodeEditor, { node, type: picker.fields });
707
+ }
708
+ function LinkRowActions({
709
+ closeActions,
710
+ isDisabled,
711
+ picker,
712
+ type,
713
+ value,
714
+ onEdit
715
+ }) {
716
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
717
+ /* @__PURE__ */ jsx(
718
+ LinkRowReferenceActions,
719
+ {
720
+ closeActions,
721
+ type,
722
+ value
164
723
  }
165
- setPickFrom(void 0);
724
+ ),
725
+ picker && /* @__PURE__ */ jsx(
726
+ Button,
727
+ {
728
+ "aria-label": "Replace link",
729
+ appearance: "plain",
730
+ icon: IcRoundEdit,
731
+ isDisabled,
732
+ onPress: () => {
733
+ closeActions();
734
+ onEdit();
735
+ },
736
+ children: "Replace link"
737
+ }
738
+ )
739
+ ] });
740
+ }
741
+ function LinkLabelField({ isDisabled, node, value }) {
742
+ const customLabel = useAtomValue(node.field("_label"));
743
+ const setCustomLabel = useSetAtom(node.field("_label"));
744
+ if ("_entry" in value) {
745
+ return /* @__PURE__ */ jsx(
746
+ EntryLinkLabelField,
747
+ {
748
+ customLabel,
749
+ entryId: value._entry,
750
+ isDisabled,
751
+ onChange: setCustomLabel
752
+ }
753
+ );
166
754
  }
167
- const ids = value.map((row) => row[ListRow.id]);
168
- const [dragging, setDragging] = useState(null);
169
- const sensors = useSensors(
170
- useSensor(PointerSensor),
171
- useSensor(KeyboardSensor, {
172
- coordinateGetter: sortableKeyboardCoordinates
173
- })
755
+ return /* @__PURE__ */ jsx(
756
+ ResolvedLinkLabelField,
757
+ {
758
+ customLabel,
759
+ isDisabled,
760
+ onChange: setCustomLabel
761
+ }
174
762
  );
175
- function handleDragStart(event) {
176
- const { active } = event;
177
- setDragging(value.find((row) => row[ListRow.id] === active.id) || null);
763
+ }
764
+ function EntryLinkSuffixField({
765
+ isDisabled,
766
+ node,
767
+ value
768
+ }) {
769
+ const suffix = useAtomValue(node.field("_suffix"));
770
+ const setSuffix = useSetAtom(node.field("_suffix"));
771
+ if (value[Reference.type] !== "entry") return null;
772
+ return /* @__PURE__ */ jsx(
773
+ TextField,
774
+ {
775
+ description: "E.g. ?s=search",
776
+ isDisabled,
777
+ label: "URL suffix",
778
+ onChange: (next) => setSuffix(next || void 0),
779
+ value: suffix ?? ""
780
+ }
781
+ );
782
+ }
783
+ function EntryAnchorField({ node, value }) {
784
+ const anchor = useAtomValue(node.field("_anchor"));
785
+ const setAnchor = useSetAtom(node.field("_anchor"));
786
+ if (value[Reference.type] !== "entry") return null;
787
+ return /* @__PURE__ */ jsx(
788
+ EntryAnchorFieldInner,
789
+ {
790
+ anchor,
791
+ entryId: value._entry,
792
+ onChange: setAnchor
793
+ }
794
+ );
795
+ }
796
+ function EntryAnchorBadge({ node, value }) {
797
+ const anchor = useAtomValue(node.field("_anchor"));
798
+ if (value[Reference.type] !== "entry" || !anchor) return null;
799
+ return /* @__PURE__ */ jsxs(Badge, { size: "small", children: [
800
+ "#",
801
+ anchor
802
+ ] });
803
+ }
804
+ function EntryAnchorFieldInner({
805
+ anchor,
806
+ entryId,
807
+ onChange
808
+ }) {
809
+ const state = useLinkEntryState(entryId);
810
+ const anchors = state.state === "hasData" ? state.data?.anchors ?? [] : [];
811
+ return /* @__PURE__ */ jsx(
812
+ Select,
813
+ {
814
+ items: anchors,
815
+ label: "Anchor",
816
+ onChange: (next) => onChange(next === null ? void 0 : String(next)),
817
+ value: anchor ?? null,
818
+ children: (item) => /* @__PURE__ */ jsx(SelectItem, { id: item.id, textValue: item.label ?? `#${item.id}`, children: /* @__PURE__ */ jsxs("span", { className: styles.LinkFieldView.anchorOption(), children: [
819
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.anchorOption.label(), children: item.label ?? `#${item.id}` }),
820
+ /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.anchorOption.location(), children: item.fieldLabel ?? item.fieldPath })
821
+ ] }) })
822
+ }
823
+ );
824
+ }
825
+ function LinkMetaLabel({ className, node, value }) {
826
+ const customLabel = useAtomValue(node.field("_label"));
827
+ if ("_entry" in value) {
828
+ return /* @__PURE__ */ jsx(
829
+ EntryLinkMetaLabel,
830
+ {
831
+ className,
832
+ customLabel,
833
+ entryId: value._entry
834
+ }
835
+ );
178
836
  }
179
- function handleDragEnd(event) {
180
- const { active, over } = event;
181
- if (!over || active.id === over.id) return;
182
- if (!readOnly) mutator.move(ids.indexOf(active.id), ids.indexOf(over.id));
183
- setDragging(null);
837
+ return /* @__PURE__ */ jsx(
838
+ ResolvedLinkMetaLabel,
839
+ {
840
+ className,
841
+ label: customLabel || linkFallbackLabel(value)
842
+ }
843
+ );
844
+ }
845
+ function linkFallbackLabel(value) {
846
+ if ("_title" in value && value._title) return value._title;
847
+ if ("_url" in value && value._url) return value._url;
848
+ return void 0;
849
+ }
850
+ function EntryLinkMetaLabel({
851
+ className,
852
+ customLabel,
853
+ entryId
854
+ }) {
855
+ const state = useLinkEntryState(entryId);
856
+ if (state.state !== "hasData" || !state.data) {
857
+ return /* @__PURE__ */ jsx(ResolvedLinkMetaLabel, { className, label: customLabel });
858
+ }
859
+ return /* @__PURE__ */ jsx(
860
+ ResolvedLinkMetaLabel,
861
+ {
862
+ className,
863
+ label: customLabel ?? state.data.title
864
+ }
865
+ );
866
+ }
867
+ function ResolvedLinkMetaLabel({ className, label }) {
868
+ const value = label?.trim();
869
+ if (!value) return null;
870
+ return /* @__PURE__ */ jsx("span", { className, children: value });
871
+ }
872
+ function LinkTypeBadge({ picker, type, value, ...props }) {
873
+ const fallbackIcon = getLinkIcon(type);
874
+ const fallbackLabel = picker?.label ?? type;
875
+ if (type === "image") return null;
876
+ if (type === "file") {
877
+ return /* @__PURE__ */ jsx(Badge, { ...props, icon: IcRoundAttachFile, size: "small", children: "File" });
184
878
  }
185
- const showLinkPicker = options.max ? value.length < options.max : true;
186
- const PickerView = picker && picker.view;
187
- return /* @__PURE__ */ jsxs(Fragment, { children: [
188
- pickFrom && PickerView && /* @__PURE__ */ jsx(SuspenseBoundary, { name: "picker", children: /* @__PURE__ */ jsx(
189
- PickerView,
879
+ if ("_entry" in value) {
880
+ return /* @__PURE__ */ jsx(
881
+ EntryLinkTypeBadge,
190
882
  {
191
- type: pickFrom[Reference.type],
192
- options: picker.options,
193
- selection: value.filter((ref) => {
194
- if (ref[ListRow.id] === pickFrom[Reference.id]) return true;
195
- if (picker.handlesMultiple)
196
- return ref[ListRow.type] === pickFrom[Reference.type];
197
- return false;
198
- }),
199
- onConfirm: handleConfirm,
200
- onCancel: () => setPickFrom(void 0)
883
+ ...props,
884
+ entryId: value._entry,
885
+ fallbackIcon,
886
+ fallbackLabel
201
887
  }
202
- ) }),
203
- /* @__PURE__ */ jsx(
204
- DndContext,
888
+ );
889
+ }
890
+ return /* @__PURE__ */ jsx(Badge, { ...props, icon: fallbackIcon, size: "small", children: fallbackLabel });
891
+ }
892
+ function EntryLinkImagePreview({ entryId }) {
893
+ const state = useLinkEntryState(entryId);
894
+ if (state.state !== "hasData" || !state.data?.preview)
895
+ return /* @__PURE__ */ jsx("span", { className: styles.LinkFieldView.previewImagePlaceholder() });
896
+ return /* @__PURE__ */ jsx(
897
+ "img",
898
+ {
899
+ alt: "",
900
+ className: styles.LinkFieldView.previewImage(),
901
+ src: state.data.preview
902
+ }
903
+ );
904
+ }
905
+ function EntryLinkTypeBadge({
906
+ entryId,
907
+ fallbackIcon,
908
+ fallbackLabel,
909
+ ...props
910
+ }) {
911
+ const state = useLinkEntryState(entryId);
912
+ const config = useAtomValue(configAtom);
913
+ const entry = state.state === "hasData" ? state.data : void 0;
914
+ const type = entry ? config.schema[entry.type] : void 0;
915
+ if (!type) {
916
+ return /* @__PURE__ */ jsx(Badge, { ...props, icon: fallbackIcon, size: "small", children: fallbackLabel });
917
+ }
918
+ return /* @__PURE__ */ jsx(
919
+ Badge,
920
+ {
921
+ ...props,
922
+ className: styles.LinkFieldView.type(
923
+ dist_default.merge({ className: props.className })
924
+ ),
925
+ icon: getType(type).icon || IcRoundLink,
926
+ size: "small",
927
+ children: Type.label(type)
928
+ }
929
+ );
930
+ }
931
+ function EntryLinkLabelField({
932
+ customLabel,
933
+ entryId,
934
+ isDisabled,
935
+ onChange
936
+ }) {
937
+ const state = useLinkEntryState(entryId);
938
+ return /* @__PURE__ */ jsx(
939
+ ResolvedLinkLabelField,
940
+ {
941
+ customLabel,
942
+ fallbackLabel: state.state === "hasData" ? state.data?.title : void 0,
943
+ isDisabled,
944
+ onChange
945
+ }
946
+ );
947
+ }
948
+ function ResolvedLinkLabelField({
949
+ customLabel,
950
+ fallbackLabel = "",
951
+ isDisabled,
952
+ onChange
953
+ }) {
954
+ return /* @__PURE__ */ jsx(
955
+ TextField,
956
+ {
957
+ autoFocus: true,
958
+ isDisabled,
959
+ label: "Label",
960
+ onChange,
961
+ value: customLabel ?? fallbackLabel
962
+ }
963
+ );
964
+ }
965
+ function LinkSettingsButton() {
966
+ return /* @__PURE__ */ jsx(
967
+ Button,
968
+ {
969
+ appearance: "plain",
970
+ "aria-label": "Link settings",
971
+ icon: IcRoundMoreHoriz,
972
+ size: "icon-small"
973
+ }
974
+ );
975
+ }
976
+ function LinkRowReferenceActions({
977
+ closeActions,
978
+ type,
979
+ value
980
+ }) {
981
+ if (!("_entry" in value)) return null;
982
+ return /* @__PURE__ */ jsx(
983
+ EntryLinkRowActions,
984
+ {
985
+ closeActions,
986
+ entryId: value._entry,
987
+ type
988
+ }
989
+ );
990
+ }
991
+ function EntryLinkRowActions({
992
+ closeActions,
993
+ entryId,
994
+ type
995
+ }) {
996
+ const scope = useOptionalEntryAtoms();
997
+ const state = useLinkEntryState(entryId);
998
+ if (state.state !== "hasData" || !state.data) {
999
+ return /* @__PURE__ */ jsx(
1000
+ Button,
205
1001
  {
206
- sensors,
207
- collisionDetection: closestCenter,
208
- onDragStart: handleDragStart,
209
- onDragEnd: handleDragEnd,
210
- layoutMeasuring: layoutMeasuringConfig,
211
- children: /* @__PURE__ */ jsx(InputLabel, { ...options, error, icon: IcRoundLink, children: /* @__PURE__ */ jsx("div", { className: styles.root(), children: /* @__PURE__ */ jsxs("div", { className: styles.root.inner(), children: [
1002
+ "aria-label": "Open link",
1003
+ appearance: "plain",
1004
+ icon: IcRoundOpenInNew,
1005
+ isDisabled: true,
1006
+ size: "small",
1007
+ children: "Open link"
1008
+ }
1009
+ );
1010
+ }
1011
+ const entry = state.data;
1012
+ const locale = type === "entry" ? scope?.localeData.requestedLocale : void 0;
1013
+ const href = `#${nav.entry(entry.workspace, entry.root, entry.id, locale)}`;
1014
+ return /* @__PURE__ */ jsx(
1015
+ Button,
1016
+ {
1017
+ "aria-label": "Open link",
1018
+ appearance: "plain",
1019
+ icon: IcRoundOpenInNew,
1020
+ onPress: () => {
1021
+ window.open(href, "_blank", "noopener,noreferrer");
1022
+ closeActions();
1023
+ },
1024
+ children: "Open link"
1025
+ }
1026
+ );
1027
+ }
1028
+ function SingleLinkRow({ field, node, value }) {
1029
+ const [, setValue] = useField(field);
1030
+ const options = useFieldOptions(field);
1031
+ const type = getPickerType(value[Reference.type]);
1032
+ const picker = options.pickers[type];
1033
+ const hasFields = Boolean(picker?.fields);
1034
+ const imagePreviewEntryId = type === "image" && "_entry" in value ? value._entry : void 0;
1035
+ const [actionsOpen, setActionsOpen] = useState(false);
1036
+ const [editOpen, setEditOpen] = useState(false);
1037
+ function closeActions() {
1038
+ setActionsOpen(false);
1039
+ }
1040
+ function removeLink() {
1041
+ setValue(void 0);
1042
+ }
1043
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
1044
+ /* @__PURE__ */ jsxs(ListRow, { "aria-label": "Link item 1", first: true, role: "listitem", children: [
1045
+ /* @__PURE__ */ jsxs(ListRowHeader, { first: true, hasFold: false, children: [
1046
+ imagePreviewEntryId && /* @__PURE__ */ jsx(EntryLinkImagePreview, { entryId: imagePreviewEntryId }),
1047
+ /* @__PURE__ */ jsx(ListRowDrag, { children: /* @__PURE__ */ jsxs(ListRowBadges, { children: [
212
1048
  /* @__PURE__ */ jsx(
213
- SortableContext,
1049
+ LinkTypeBadge,
214
1050
  {
215
- items: ids,
216
- strategy: verticalListSortingStrategy,
217
- children: /* @__PURE__ */ jsxs(Sink.Root, { children: [
218
- value.map((reference) => {
219
- if (!options.pickers[reference[ListRow.type]]) return null;
220
- const picker2 = options.pickers[reference[ListRow.type]];
221
- const type = picker2.fields;
222
- return /* @__PURE__ */ jsx(
223
- LinkInputRowSortable,
224
- {
225
- rowId: reference[ListRow.id],
226
- field,
227
- fields: type,
228
- picker: picker2,
229
- reference,
230
- onRemove: () => mutator.remove(reference[ListRow.id]),
231
- onEdit: () => setPickFrom(reference),
232
- isSortable: options.max !== 1,
233
- readOnly,
234
- multiple: true
235
- },
236
- reference[ListRow.id]
237
- );
238
- }),
239
- showLinkPicker && /* @__PURE__ */ jsx("div", { className: styles.create(), children: /* @__PURE__ */ jsx(Create.Root, { disabled: readOnly, children: entries(options.pickers).map(([name, picker2]) => {
240
- return /* @__PURE__ */ jsx(
241
- Create.Button,
242
- {
243
- onClick: () => setPickFrom({ [Reference.type]: name }),
244
- icon: getLinkIcon(name),
245
- children: /* @__PURE__ */ jsx(TextLabel, { label: picker2.label })
246
- },
247
- name
248
- );
249
- }) }) })
250
- ] })
1051
+ className: styles.LinkFieldView.type(),
1052
+ picker,
1053
+ type,
1054
+ value
251
1055
  }
252
1056
  ),
253
1057
  /* @__PURE__ */ jsx(
254
- DragOverlay,
1058
+ LinkMetaLabel,
255
1059
  {
256
- dropAnimation: {
257
- ...defaultDropAnimation,
258
- dragSourceOpacity: 0.5
259
- },
260
- children: dragging && options.pickers[dragging[Reference.type]] ? /* @__PURE__ */ jsx(
261
- LinkInputRow,
1060
+ className: styles.LinkFieldView.metaLabel(),
1061
+ node,
1062
+ value
1063
+ }
1064
+ ),
1065
+ /* @__PURE__ */ jsx(EntryAnchorBadge, { node, value })
1066
+ ] }) }),
1067
+ !options.readOnly && /* @__PURE__ */ jsxs(ListRowActions, { children: [
1068
+ /* @__PURE__ */ jsxs(DialogTrigger, { isOpen: actionsOpen, onOpenChange: setActionsOpen, children: [
1069
+ /* @__PURE__ */ jsx(LinkSettingsButton, {}),
1070
+ /* @__PURE__ */ jsxs(Popover, { placement: "bottom right", children: [
1071
+ /* @__PURE__ */ jsxs(ListRowSettings, { children: [
1072
+ /* @__PURE__ */ jsx(LinkLabelField, { node, value }),
1073
+ /* @__PURE__ */ jsx(EntryAnchorField, { node, value }),
1074
+ /* @__PURE__ */ jsx(EntryLinkSuffixField, { node, value })
1075
+ ] }),
1076
+ /* @__PURE__ */ jsx(MenuSeparator, {}),
1077
+ /* @__PURE__ */ jsx(ListRowSettings, { actions: true, children: /* @__PURE__ */ jsx(
1078
+ LinkRowActions,
262
1079
  {
263
- field,
264
- rowId: dragging._id,
265
- fields: options.pickers[dragging[Reference.type]].fields,
266
- picker: options.pickers[dragging[Reference.type]],
267
- reference: dragging,
268
- onRemove: () => mutator.remove(dragging._id),
269
- onEdit: () => setPickFrom(dragging),
270
- isDragOverlay: true,
271
- isSortable: options.max !== 1,
272
- readOnly,
273
- multiple: true
1080
+ closeActions,
1081
+ onEdit: () => setEditOpen(true),
1082
+ picker,
1083
+ type,
1084
+ value
274
1085
  }
275
- ) : null
1086
+ ) })
1087
+ ] })
1088
+ ] }),
1089
+ /* @__PURE__ */ jsx(
1090
+ Button,
1091
+ {
1092
+ appearance: "plain",
1093
+ "aria-label": "Remove link",
1094
+ icon: IcRoundClose,
1095
+ onPress: removeLink,
1096
+ size: "icon-small"
276
1097
  }
277
1098
  )
278
- ] }) }) })
1099
+ ] })
1100
+ ] }),
1101
+ hasFields && /* @__PURE__ */ jsx(ListRowBody, { children: /* @__PURE__ */ jsx(LinkRowEditor, { node, picker }) })
1102
+ ] }),
1103
+ picker && /* @__PURE__ */ jsx(
1104
+ LinkPickerDialog,
1105
+ {
1106
+ isOpen: editOpen,
1107
+ onOpenChange: setEditOpen,
1108
+ onPick: setValue,
1109
+ picker,
1110
+ type,
1111
+ value
279
1112
  }
280
1113
  )
281
1114
  ] });
282
1115
  }
283
- function animateLayoutChanges(args) {
284
- const { isSorting, wasSorting } = args;
285
- if (isSorting || wasSorting) return defaultAnimateLayoutChanges(args);
286
- return true;
1116
+ function LinkFieldDragPreview({ icon, label }) {
1117
+ return /* @__PURE__ */ jsx(ListDragPreview, { icon, label });
287
1118
  }
288
- function LinkInputRowSortable(props) {
289
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
290
- animateLayoutChanges,
291
- id: props.reference._id
292
- });
293
- const style = {
294
- transform: CSS.Transform.toString(transform),
295
- transition: transition || void 0
296
- };
297
- return /* @__PURE__ */ jsx(
298
- LinkInputRow,
299
- {
300
- ...props,
301
- rootRef: setNodeRef,
302
- style,
303
- handle: listeners,
304
- ...attributes,
305
- isDragging
306
- }
307
- );
308
- }
309
- function LinkInputRow({
1119
+ function MultipleLinkRow({
1120
+ dragging,
1121
+ expanded,
310
1122
  field,
311
- rowId,
312
- picker,
313
- fields,
314
- reference,
315
- onEdit,
316
- onRemove,
317
- handle,
318
- rootRef,
319
- isDragging,
320
- isDragOverlay,
321
- isSortable,
322
- readOnly,
323
- multiple,
324
- ...rest
1123
+ index,
1124
+ node,
1125
+ onMoveRow,
1126
+ onRowDragEnd,
1127
+ onRowDragStart,
1128
+ onDropIndicatorChange,
1129
+ onToggleRow,
1130
+ value
325
1131
  }) {
326
- const onView = useReferenceViewer();
327
- const RowView = picker.viewRow;
328
- const inner = /* @__PURE__ */ jsxs(
329
- "div",
330
- {
331
- className: styles.row({
332
- dragging: isDragging,
333
- overlay: isDragOverlay
334
- }),
335
- ref: rootRef,
336
- ...rest,
337
- children: [
338
- /* @__PURE__ */ jsxs(Sink.Header, { children: [
339
- /* @__PURE__ */ jsx(Sink.Options, { children: isSortable ? /* @__PURE__ */ jsx(
340
- IconButton,
341
- {
342
- icon: IcRoundDragHandle,
343
- ...handle,
344
- style: { cursor: handle ? "grab" : "grabbing" },
345
- title: "Drag and drop to reorder"
346
- }
347
- ) : /* @__PURE__ */ jsx("div", { className: styles.row.staticHandle(), children: /* @__PURE__ */ jsx(IcRoundLink, {}) }) }),
348
- /* @__PURE__ */ jsx("div", { style: { flexGrow: 1, minWidth: 0 }, children: /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(RowView, { reference }) }) }),
349
- !readOnly && /* @__PURE__ */ jsxs(Sink.Options, { children: [
350
- /* @__PURE__ */ jsx(
351
- IconButton,
352
- {
353
- icon: IcRoundOpenInNew,
354
- onClick: () => onView(reference),
355
- title: reference?._type === "image" ? "Open media file in new tab" : "Open link in new tab"
356
- }
357
- ),
358
- /* @__PURE__ */ jsx(
359
- IconButton,
360
- {
361
- icon: IcRoundEdit,
362
- onClick: onEdit,
363
- title: reference?._type === "image" ? "Change image" : "Edit link"
364
- }
365
- ),
366
- /* @__PURE__ */ jsx(
367
- IconButton,
368
- {
369
- icon: IcRoundClose,
370
- onClick: onRemove,
371
- title: reference?._type === "image" ? "Delete image" : "Delete link"
372
- }
373
- )
374
- ] })
375
- ] }),
376
- fields && /* @__PURE__ */ jsx(Sink.Content, { children: /* @__PURE__ */ jsx(InputForm, { type: fields }) })
377
- ]
1132
+ const [linksValue, setValue] = useField(field);
1133
+ const options = useFieldOptions(field);
1134
+ const links = linksValue ?? [];
1135
+ const type = getPickerType(value[Reference.type]);
1136
+ const picker = options.pickers[type];
1137
+ const hasFields = Boolean(picker?.fields);
1138
+ const imagePreviewEntryId = type === "image" && "_entry" in value ? value._entry : void 0;
1139
+ const itemId = value[Reference.id];
1140
+ const readOnly = Boolean(options.readOnly);
1141
+ const [actionsOpen, setActionsOpen] = useState(false);
1142
+ const [editOpen, setEditOpen] = useState(false);
1143
+ const dragPreview = useRef(null);
1144
+ const rowRef = useRef(null);
1145
+ const { dragProps, isDragging } = $74812c42150b3de8$export$7941f8aafa4b6021({
1146
+ getItems() {
1147
+ return [dragRowItem(itemId)];
1148
+ },
1149
+ getAllowedDropOperations() {
1150
+ return ["move"];
1151
+ },
1152
+ isDisabled: readOnly,
1153
+ onDragEnd: onRowDragEnd,
1154
+ onDragStart: onRowDragStart,
1155
+ preview: dragPreview
1156
+ });
1157
+ const { dropProps, isDropTarget } = $f302ef02e940a6f8$export$ccdee5eaf73cf661({
1158
+ ref: rowRef,
1159
+ isDisabled: readOnly || !dragging,
1160
+ getDropOperation(types, allowedOperations) {
1161
+ if (!types.has(LINK_FIELD_ROW_DRAG_TYPE)) return "cancel";
1162
+ return allowedOperations.includes("move") ? "move" : "cancel";
1163
+ },
1164
+ getDropOperationForPoint(types, allowedOperations) {
1165
+ if (!types.has(LINK_FIELD_ROW_DRAG_TYPE)) return "cancel";
1166
+ return allowedOperations.includes("move") ? "move" : "cancel";
1167
+ },
1168
+ onDropEnter(event) {
1169
+ const position = rowDropPosition(rowRef.current, event.y);
1170
+ onDropIndicatorChange(position);
1171
+ },
1172
+ onDropMove(event) {
1173
+ const position = rowDropPosition(rowRef.current, event.y);
1174
+ onDropIndicatorChange(position);
1175
+ },
1176
+ onDropExit() {
1177
+ onDropIndicatorChange(null);
1178
+ },
1179
+ async onDrop(event) {
1180
+ const position = rowDropPosition(rowRef.current, event.y);
1181
+ const rowId = await getDraggedRowId(event.items, LINK_FIELD_ROW_DRAG_TYPE);
1182
+ onDropIndicatorChange(null);
1183
+ if (!rowId) return;
1184
+ onMoveRow(rowId, insertIndex(index, position));
378
1185
  }
379
- );
380
- if (!fields) return inner;
1186
+ });
1187
+ function closeActions() {
1188
+ setActionsOpen(false);
1189
+ }
1190
+ function removeLink() {
1191
+ setValue((links2) => links2.filter((_, currentIndex) => currentIndex !== index));
1192
+ }
1193
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
1194
+ /* @__PURE__ */ jsx(
1195
+ "div",
1196
+ {
1197
+ ...dropProps,
1198
+ className: styles.LinkFieldView.rowDropTarget(),
1199
+ ref: rowRef,
1200
+ children: /* @__PURE__ */ jsxs(
1201
+ ListRow,
1202
+ {
1203
+ "aria-label": `Link item ${index + 1}`,
1204
+ dragging: isDragging,
1205
+ first: index === 0,
1206
+ role: "listitem",
1207
+ children: [
1208
+ /* @__PURE__ */ jsxs(ListRowHeader, { first: index === 0, hasFold: hasFields, children: [
1209
+ !readOnly && /* @__PURE__ */ jsx(
1210
+ ListRowDragHandle,
1211
+ {
1212
+ ...dragProps,
1213
+ "aria-label": `Drag link item ${index + 1}`,
1214
+ dragging: isDragging
1215
+ }
1216
+ ),
1217
+ imagePreviewEntryId && !hasFields && /* @__PURE__ */ jsx(EntryLinkImagePreview, { entryId: imagePreviewEntryId }),
1218
+ /* @__PURE__ */ jsx($5d3a17cc2564e64f$export$905ab40ac2179daa, { ref: dragPreview, children: () => /* @__PURE__ */ jsx(
1219
+ LinkFieldDragPreview,
1220
+ {
1221
+ icon: getLinkIcon(type),
1222
+ label: /* @__PURE__ */ jsx(LinkRowText, { node })
1223
+ }
1224
+ ) }),
1225
+ /* @__PURE__ */ jsx(ListRowDrag, { dragging: isDragging, children: /* @__PURE__ */ jsxs(ListRowBadges, { children: [
1226
+ hasFields && /* @__PURE__ */ jsx(
1227
+ ListRowFoldButton,
1228
+ {
1229
+ "aria-label": expanded ? "Collapse link" : "Expand link",
1230
+ expanded,
1231
+ onPress: () => onToggleRow(itemId)
1232
+ }
1233
+ ),
1234
+ imagePreviewEntryId && hasFields && /* @__PURE__ */ jsx(EntryLinkImagePreview, { entryId: imagePreviewEntryId }),
1235
+ /* @__PURE__ */ jsx(LinkTypeBadge, { picker, type, value }),
1236
+ /* @__PURE__ */ jsx(
1237
+ LinkMetaLabel,
1238
+ {
1239
+ className: styles.LinkFieldView.metaLabel(),
1240
+ node,
1241
+ value
1242
+ }
1243
+ ),
1244
+ /* @__PURE__ */ jsx(EntryAnchorBadge, { node, value })
1245
+ ] }) }),
1246
+ /* @__PURE__ */ jsxs(ListRowActions, { children: [
1247
+ /* @__PURE__ */ jsxs(DialogTrigger, { isOpen: actionsOpen, onOpenChange: setActionsOpen, children: [
1248
+ /* @__PURE__ */ jsx(LinkSettingsButton, {}),
1249
+ /* @__PURE__ */ jsxs(Popover, { placement: "bottom right", children: [
1250
+ /* @__PURE__ */ jsxs(ListRowSettings, { children: [
1251
+ /* @__PURE__ */ jsx(
1252
+ LinkLabelField,
1253
+ {
1254
+ isDisabled: readOnly,
1255
+ node,
1256
+ value
1257
+ }
1258
+ ),
1259
+ /* @__PURE__ */ jsx(EntryAnchorField, { node, value }),
1260
+ /* @__PURE__ */ jsx(
1261
+ EntryLinkSuffixField,
1262
+ {
1263
+ isDisabled: readOnly,
1264
+ node,
1265
+ value
1266
+ }
1267
+ )
1268
+ ] }),
1269
+ /* @__PURE__ */ jsx(MenuSeparator, {}),
1270
+ /* @__PURE__ */ jsx(ListRowSettings, { actions: true, children: /* @__PURE__ */ jsx(
1271
+ LinkRowActions,
1272
+ {
1273
+ closeActions,
1274
+ isDisabled: readOnly,
1275
+ onEdit: () => setEditOpen(true),
1276
+ picker,
1277
+ type,
1278
+ value
1279
+ }
1280
+ ) })
1281
+ ] })
1282
+ ] }),
1283
+ /* @__PURE__ */ jsx(
1284
+ Button,
1285
+ {
1286
+ appearance: "plain",
1287
+ "aria-label": "Remove link",
1288
+ icon: IcRoundClose,
1289
+ isDisabled: readOnly,
1290
+ onPress: removeLink,
1291
+ size: "icon-small"
1292
+ }
1293
+ )
1294
+ ] })
1295
+ ] }),
1296
+ expanded && hasFields && /* @__PURE__ */ jsx(ListRowBody, { children: /* @__PURE__ */ jsx(LinkRowEditor, { node, picker }) }),
1297
+ !expanded && picker?.fields && /* @__PURE__ */ jsx(ListRowFooter, { children: /* @__PURE__ */ jsx(
1298
+ CompactRecordFields,
1299
+ {
1300
+ fields: Type.fields(picker.fields),
1301
+ layout: "footer",
1302
+ value
1303
+ }
1304
+ ) })
1305
+ ]
1306
+ }
1307
+ )
1308
+ }
1309
+ ),
1310
+ picker && /* @__PURE__ */ jsx(
1311
+ LinkPickerDialog,
1312
+ {
1313
+ isOpen: editOpen,
1314
+ onOpenChange: setEditOpen,
1315
+ onPick: (link) => {
1316
+ setValue(
1317
+ (links2) => links2.map(
1318
+ (current, currentIndex) => currentIndex === index ? link : current
1319
+ )
1320
+ );
1321
+ },
1322
+ picker,
1323
+ type,
1324
+ value
1325
+ }
1326
+ )
1327
+ ] });
1328
+ }
1329
+ function LinkFieldDropIndicator({ active }) {
381
1330
  return /* @__PURE__ */ jsx(
382
- FormRow,
1331
+ "div",
383
1332
  {
384
- field,
385
- type: fields,
386
- readOnly,
387
- rowId: multiple ? rowId : void 0,
388
- children: inner
1333
+ "aria-hidden": true,
1334
+ className: styles.LinkFieldView.dropIndicator(),
1335
+ "data-active": active || void 0
389
1336
  }
390
1337
  );
391
1338
  }
392
- function useReferenceViewer() {
393
- const nav = useNav();
394
- const locale = useLocale();
395
- const graph = useGraph();
396
- return (reference) => {
397
- if (UrlReference.isUrl(reference)) {
398
- window.open(reference[UrlReference.url], "_blank");
399
- } else if (EntryReference.isEntryReference(reference)) {
400
- graph.first({
401
- id: reference[EntryReference.entry],
402
- locale: reference[Reference.type] === "entry" ? locale : null,
403
- select: {
404
- id: Entry.id,
405
- workspace: Entry.workspace,
406
- root: Entry.root
407
- },
408
- status: "preferDraft"
409
- }).then((entry) => {
410
- if (!entry) return;
411
- window.open(`#${nav.entry(entry)}`, "_blank");
1339
+ function SingleLinkFieldView({ field }) {
1340
+ const [value] = useField(field);
1341
+ const options = useFieldOptions(field);
1342
+ const node = useFieldNode(field);
1343
+ const nodeIsEmpty = useAtomValue(node.isEmpty);
1344
+ const selectedValue = isLinkFieldRow(value) ? value : void 0;
1345
+ const isEmpty = nodeIsEmpty || !selectedValue;
1346
+ const hasRows = Boolean(selectedValue);
1347
+ const readOnly = Boolean(options.readOnly);
1348
+ const selectedPicker = selectedValue ? options.pickers[getPickerType(selectedValue[Reference.type])] : void 0;
1349
+ const showFold = Boolean(selectedPicker?.fields);
1350
+ const content = (hasRows || !readOnly) && /* @__PURE__ */ jsxs(List, { "aria-label": options.label || "Link", children: [
1351
+ selectedValue && /* @__PURE__ */ jsx(
1352
+ SingleLinkRow,
1353
+ {
1354
+ field,
1355
+ node,
1356
+ value: selectedValue
1357
+ }
1358
+ ),
1359
+ isEmpty && !readOnly && /* @__PURE__ */ jsx(ListCreateRow, { empty: true, children: /* @__PURE__ */ jsx(SingleLinkCreateActions, { field }) })
1360
+ ] });
1361
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
1362
+ /* @__PURE__ */ jsx(
1363
+ ListLabel,
1364
+ {
1365
+ "aria-label": hasRows ? "Link selected" : "No link selected",
1366
+ expanded: true,
1367
+ hasRows,
1368
+ isDisabled: true,
1369
+ description: options.help,
1370
+ shared: options.shared,
1371
+ showFold,
1372
+ inline: options.inline,
1373
+ children: options.label
1374
+ }
1375
+ ),
1376
+ content
1377
+ ] });
1378
+ }
1379
+ function MultipleLinksFieldView({ field }) {
1380
+ const [value] = useField(field);
1381
+ const options = useFieldOptions(field);
1382
+ const list = useFieldNode(field);
1383
+ const links = value ?? [];
1384
+ const nodes = useNodes(list) ?? [];
1385
+ const readOnly = Boolean(options.readOnly);
1386
+ const hasRows = nodes.length > 0;
1387
+ const hasFoldableRows = links.some((link) => {
1388
+ const picker = options.pickers[getPickerType(link[Reference.type])];
1389
+ return Boolean(picker?.fields);
1390
+ });
1391
+ const [foldedIds, setFoldedIds] = useState(/* @__PURE__ */ new Set());
1392
+ const [draggingRowId, setDraggingRowId] = useState(null);
1393
+ const [dropIndicator, setDropIndicator] = useState(null);
1394
+ const rowIdsAtom = useMemo(
1395
+ () => atom((get) => {
1396
+ const nodes2 = get(list.nodes);
1397
+ return nodes2.map((node) => get(node.field("_id")));
1398
+ }),
1399
+ [list]
1400
+ );
1401
+ const rowIds = useAtomValue(rowIdsAtom);
1402
+ const moveRowAtom = useMemo(
1403
+ () => atom(null, (get, set, rowId, targetIndex) => {
1404
+ const currentNodes = get(list.nodes);
1405
+ const fromIndex = currentNodes.findIndex((node) => {
1406
+ return get(node.field("_id")) === rowId;
412
1407
  });
413
- }
414
- };
1408
+ if (fromIndex === -1) return;
1409
+ const toIndex = reorderIndex(fromIndex, targetIndex);
1410
+ if (toIndex === fromIndex) return;
1411
+ set(list.move, fromIndex, toIndex);
1412
+ }),
1413
+ [list]
1414
+ );
1415
+ const moveRow = useSetAtom(moveRowAtom);
1416
+ const allExpanded = nodes.length > 0 && foldedIds.size === 0;
1417
+ function toggleAll() {
1418
+ setFoldedIds(allExpanded ? new Set(rowIds) : /* @__PURE__ */ new Set());
1419
+ }
1420
+ function toggleRow(rowId) {
1421
+ setFoldedIds((current) => {
1422
+ const next = new Set(current);
1423
+ if (next.has(rowId)) next.delete(rowId);
1424
+ else next.add(rowId);
1425
+ return next;
1426
+ });
1427
+ }
1428
+ function isBoundaryDropTarget(index) {
1429
+ return dropIndicator?.index === index && dropIndicator.position === "before" || dropIndicator?.index === index - 1 && dropIndicator.position === "after";
1430
+ }
1431
+ const content = (hasRows || !readOnly) && /* @__PURE__ */ jsxs(Fragment2, { children: [
1432
+ /* @__PURE__ */ jsx(
1433
+ LinkFieldDropIndicator,
1434
+ {
1435
+ active: dropIndicator?.index === 0 && dropIndicator.position === "before"
1436
+ }
1437
+ ),
1438
+ /* @__PURE__ */ jsxs(List, { "aria-label": options.label || "Links", children: [
1439
+ nodes.length > 0 && /* @__PURE__ */ jsx(Fragment2, { children: nodes.map((node, index) => {
1440
+ const value2 = links[index];
1441
+ if (!value2) return null;
1442
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1443
+ index > 0 && /* @__PURE__ */ jsx(
1444
+ LinkFieldDropIndicator,
1445
+ {
1446
+ active: isBoundaryDropTarget(index)
1447
+ }
1448
+ ),
1449
+ /* @__PURE__ */ jsx(
1450
+ MultipleLinkRow,
1451
+ {
1452
+ dragging: Boolean(draggingRowId),
1453
+ expanded: !foldedIds.has(value2._id),
1454
+ field,
1455
+ index,
1456
+ node,
1457
+ onMoveRow: moveRow,
1458
+ onRowDragEnd: () => {
1459
+ setDraggingRowId(null);
1460
+ setDropIndicator(null);
1461
+ },
1462
+ onRowDragStart: () => setDraggingRowId(value2._id),
1463
+ onDropIndicatorChange: (position) => setDropIndicator(position ? { index, position } : null),
1464
+ onToggleRow: toggleRow,
1465
+ value: value2
1466
+ }
1467
+ )
1468
+ ] }, value2._id);
1469
+ }) }),
1470
+ /* @__PURE__ */ jsx(
1471
+ LinkFieldDropIndicator,
1472
+ {
1473
+ active: dropIndicator?.index === nodes.length - 1 && dropIndicator.position === "after"
1474
+ }
1475
+ ),
1476
+ !readOnly && /* @__PURE__ */ jsx(ListCreateRow, { empty: !hasRows, children: /* @__PURE__ */ jsx(MultipleLinkCreateActions, { field }) })
1477
+ ] })
1478
+ ] });
1479
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
1480
+ /* @__PURE__ */ jsx(
1481
+ ListLabel,
1482
+ {
1483
+ "aria-label": hasRows ? allExpanded ? "Collapse all links" : "Expand all links" : "No links to fold",
1484
+ expanded: allExpanded,
1485
+ hasRows,
1486
+ isDisabled: !hasFoldableRows,
1487
+ onPress: toggleAll,
1488
+ description: options.help,
1489
+ shared: options.shared,
1490
+ showFold: hasFoldableRows,
1491
+ inline: options.inline,
1492
+ children: options.label
1493
+ }
1494
+ ),
1495
+ content
1496
+ ] });
415
1497
  }
416
1498
  export {
417
- MultipleLinksInput,
418
- SingleLinkInput
1499
+ MultipleLinksFieldView,
1500
+ SingleLinkFieldView
419
1501
  };