alinea 1.7.0 → 2.0.0-preview.1

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