rimecms 0.33.0 → 1.0.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 (526) hide show
  1. package/dist/adapter-sqlite/auth.server.d.ts +2 -2
  2. package/dist/adapter-sqlite/columns.server.js +2 -2
  3. package/dist/adapter-sqlite/connect.server.d.ts +12 -0
  4. package/dist/adapter-sqlite/connect.server.js +31 -0
  5. package/dist/adapter-sqlite/generate-schema/index.server.js +11 -3
  6. package/dist/adapter-sqlite/generate-schema/root.server.d.ts +13 -4
  7. package/dist/adapter-sqlite/generate-schema/root.server.js +75 -131
  8. package/dist/adapter-sqlite/generate-schema/templates.server.d.ts +36 -15
  9. package/dist/adapter-sqlite/generate-schema/templates.server.js +60 -18
  10. package/dist/adapter-sqlite/index.server.d.ts +13 -5
  11. package/dist/adapter-sqlite/index.server.js +9 -6
  12. package/dist/adapter-sqlite/naming.server.d.ts +6 -8
  13. package/dist/adapter-sqlite/naming.server.js +22 -4
  14. package/dist/adapter-sqlite/paths.server.d.ts +10 -0
  15. package/dist/adapter-sqlite/paths.server.js +131 -0
  16. package/dist/adapter-sqlite/read.server.d.ts +10 -1
  17. package/dist/adapter-sqlite/read.server.js +22 -10
  18. package/dist/adapter-sqlite/rows.server.d.ts +1 -1
  19. package/dist/adapter-sqlite/select.server.d.ts +19 -0
  20. package/dist/adapter-sqlite/select.server.js +71 -63
  21. package/dist/adapter-sqlite/table.server.d.ts +2 -2
  22. package/dist/adapter-sqlite/transform.server.js +33 -3
  23. package/dist/adapter-sqlite/types.server.d.ts +10 -3
  24. package/dist/adapter-sqlite/where.server.d.ts +2 -3
  25. package/dist/adapter-sqlite/where.server.js +19 -1
  26. package/dist/core/adapter.d.ts +98 -0
  27. package/dist/core/auth/better-auth/config.server.d.ts +3 -3
  28. package/dist/core/auth/better-auth/instance.server.d.ts +6 -6
  29. package/dist/core/auth/handler/index.server.js +1 -1
  30. package/dist/core/auth/staff/derive.js +1 -1
  31. package/dist/core/auth/validate-config.js +3 -5
  32. package/dist/core/boot.server.d.ts +8 -8
  33. package/dist/core/config/context.server.d.ts +2 -2
  34. package/dist/core/config/types.d.ts +43 -5
  35. package/dist/core/config/validate.server.js +34 -51
  36. package/dist/core/dev/cli/commands/build.js +21 -6
  37. package/dist/core/dev/cli/commands/init.server.d.ts +2 -1
  38. package/dist/core/dev/cli/commands/init.server.js +32 -6
  39. package/dist/core/dev/cli/index.js +1 -0
  40. package/dist/core/dev/cli/templates/init.d.ts +6 -1
  41. package/dist/core/dev/cli/templates/init.js +30 -2
  42. package/dist/core/dev/cli/util/package-manager.server.d.ts +1 -0
  43. package/dist/core/dev/cli/util/package-manager.server.js +11 -8
  44. package/dist/core/dev/cli/util/package.server.d.ts +9 -0
  45. package/dist/core/dev/cli/util/package.server.js +43 -0
  46. package/dist/core/dev/codegen/routes/common.server.d.ts +2 -0
  47. package/dist/core/dev/codegen/routes/common.server.js +7 -3
  48. package/dist/core/dev/codegen/routes/util.server.d.ts +2 -1
  49. package/dist/core/dev/codegen/routes/util.server.js +4 -1
  50. package/dist/core/dev/codegen/types/contributions.server.d.ts +3 -2
  51. package/dist/core/dev/codegen/types/contributions.server.js +10 -3
  52. package/dist/core/dev/config-memo.server.js +4 -0
  53. package/dist/core/dev/vite.server.js +4 -3
  54. package/dist/core/fields/blank.d.ts +21 -0
  55. package/dist/core/fields/blank.js +37 -0
  56. package/dist/core/fields/builders/field-builder.d.ts +53 -0
  57. package/dist/core/fields/builders/field-builder.js +14 -1
  58. package/dist/core/fields/builders/form-field-builder.d.ts +8 -0
  59. package/dist/core/fields/builders/form-field-builder.js +14 -1
  60. package/dist/core/fields/util.d.ts +9 -2
  61. package/dist/core/fields/util.js +123 -135
  62. package/dist/core/fields/walk.d.ts +44 -0
  63. package/dist/core/fields/walk.js +55 -0
  64. package/dist/core/handler.server.js +4 -0
  65. package/dist/core/i18n/context.d.ts +5 -0
  66. package/dist/core/i18n/context.js +6 -0
  67. package/dist/core/i18n/en/common.d.ts +71 -0
  68. package/dist/core/i18n/en/common.js +72 -1
  69. package/dist/core/i18n/en/fields.d.ts +68 -0
  70. package/dist/core/i18n/en/fields.js +69 -1
  71. package/dist/core/i18n/fr/common.d.ts +71 -0
  72. package/dist/core/i18n/fr/common.js +72 -1
  73. package/dist/core/i18n/fr/fields.d.ts +68 -0
  74. package/dist/core/i18n/fr/fields.js +69 -1
  75. package/dist/core/i18n/index.d.ts +29 -3
  76. package/dist/core/i18n/index.js +55 -29
  77. package/dist/core/locale/copy.server.js +3 -3
  78. package/dist/core/logger.server.js +15 -6
  79. package/dist/core/pipeline/build-document.server.d.ts +3 -0
  80. package/dist/core/pipeline/build-document.server.js +10 -7
  81. package/dist/core/pipeline/config-map/index.d.ts +9 -0
  82. package/dist/core/pipeline/config-map/index.js +16 -50
  83. package/dist/core/pipeline/hooks/process-document-fields.server.d.ts +3 -0
  84. package/dist/core/pipeline/hooks/process-document-fields.server.js +48 -12
  85. package/dist/core/pipeline/hooks/set-default-values.server.d.ts +1 -0
  86. package/dist/core/pipeline/hooks/set-default-values.server.js +1 -0
  87. package/dist/core/pipeline/persist/blocks/extract.server.js +1 -1
  88. package/dist/core/pipeline/persist/relations/extract.server.js +2 -0
  89. package/dist/core/pipeline/populate-relations.server.d.ts +27 -0
  90. package/dist/core/pipeline/populate-relations.server.js +42 -0
  91. package/dist/core/pipeline/run.server.d.ts +17 -6
  92. package/dist/core/pipeline/run.server.js +44 -30
  93. package/dist/core/plugins/cache/module.server.d.ts +1 -1
  94. package/dist/core/plugins/cache/module.server.js +5 -5
  95. package/dist/core/prototype/area/api.server.js +1 -2
  96. package/dist/core/prototype/area/definition.js +1 -10
  97. package/dist/core/prototype/area/definition.server.js +4 -5
  98. package/dist/core/prototype/area/hooks.server.js +3 -2
  99. package/dist/core/prototype/area/operations/find.js +2 -0
  100. package/dist/core/prototype/blank.d.ts +26 -0
  101. package/dist/core/prototype/blank.js +22 -0
  102. package/dist/core/prototype/collection/api.server.d.ts +29 -3
  103. package/dist/core/prototype/collection/api.server.js +47 -4
  104. package/dist/core/prototype/collection/definition.js +0 -3
  105. package/dist/core/prototype/collection/hooks/merge-with-blank.server.d.ts +5 -1
  106. package/dist/core/prototype/collection/hooks/merge-with-blank.server.js +8 -22
  107. package/dist/core/prototype/collection/hooks.server.js +11 -5
  108. package/dist/core/prototype/collection/nested/module.server.js +3 -1
  109. package/dist/core/prototype/collection/nested/tree.d.ts +12 -0
  110. package/dist/core/prototype/collection/nested/tree.js +42 -0
  111. package/dist/core/prototype/collection/operations/duplicate.js +1 -1
  112. package/dist/core/prototype/collection/operations/find-by-id.js +2 -0
  113. package/dist/core/prototype/collection/operations/find-by-ids.d.ts +19 -0
  114. package/dist/core/prototype/collection/operations/find-by-ids.js +54 -0
  115. package/dist/core/prototype/collection/operations/find.js +21 -27
  116. package/dist/core/prototype/collection/operations/update-slug-by-id.d.ts +20 -0
  117. package/dist/core/prototype/collection/operations/update-slug-by-id.js +53 -0
  118. package/dist/core/prototype/collection/rest/index.server.js +3 -1
  119. package/dist/core/prototype/collection/rest/update-slug-by-id.server.d.ts +2 -0
  120. package/dist/core/prototype/collection/rest/update-slug-by-id.server.js +20 -0
  121. package/dist/core/prototype/collection/thumbnail/find-thumbnail.d.ts +2 -1
  122. package/dist/core/prototype/collection/thumbnail/find-thumbnail.js +4 -27
  123. package/dist/core/prototype/collection/thumbnail/hooks/set-document-thumbnail.server.js +1 -1
  124. package/dist/core/prototype/collection/upload/directories/derive.js +3 -1
  125. package/dist/core/prototype/collection/upload/disk/delete.server.js +1 -2
  126. package/dist/core/prototype/define.js +2 -0
  127. package/dist/core/prototype/shared/metas/fields.js +2 -1
  128. package/dist/core/prototype/shared/title/find-title.d.ts +2 -1
  129. package/dist/core/prototype/shared/title/find-title.js +5 -28
  130. package/dist/core/prototype/shared/title/hooks/set-document-title.server.js +1 -1
  131. package/dist/core/prototype/shared/url/addresses.server.d.ts +36 -0
  132. package/dist/core/prototype/shared/url/addresses.server.js +119 -0
  133. package/dist/core/prototype/shared/url/doc-type.d.ts +6 -0
  134. package/dist/core/prototype/shared/url/doc-type.js +9 -0
  135. package/dist/core/prototype/shared/url/format.server.d.ts +27 -0
  136. package/dist/core/prototype/shared/url/format.server.js +38 -0
  137. package/dist/core/prototype/shared/url/hooks/create-paths.server.d.ts +2 -0
  138. package/dist/core/prototype/shared/url/hooks/create-paths.server.js +9 -0
  139. package/dist/core/prototype/shared/url/hooks/detach-paths.server.d.ts +6 -0
  140. package/dist/core/prototype/shared/url/hooks/detach-paths.server.js +19 -0
  141. package/dist/core/prototype/shared/url/hooks/index.server.d.ts +5 -1
  142. package/dist/core/prototype/shared/url/hooks/index.server.js +5 -1
  143. package/dist/core/prototype/shared/url/hooks/set-area-url.server.d.ts +2 -0
  144. package/dist/core/prototype/shared/url/hooks/set-area-url.server.js +8 -0
  145. package/dist/core/prototype/shared/url/hooks/set-live-url.server.d.ts +5 -0
  146. package/dist/core/prototype/shared/url/hooks/set-live-url.server.js +19 -0
  147. package/dist/core/prototype/shared/url/hooks/sync-paths.server.d.ts +8 -0
  148. package/dist/core/prototype/shared/url/hooks/sync-paths.server.js +38 -0
  149. package/dist/core/prototype/shared/url/refresh.server.d.ts +36 -0
  150. package/dist/core/prototype/shared/url/refresh.server.js +58 -0
  151. package/dist/core/prototype/shared/versions/configure.server.js +3 -0
  152. package/dist/core/routes/context.server.d.ts +2 -1
  153. package/dist/fields/blocks/component/AddBlockButton.svelte +48 -137
  154. package/dist/fields/blocks/component/Block.svelte +153 -117
  155. package/dist/fields/blocks/component/Block.svelte.d.ts +11 -5
  156. package/dist/fields/blocks/component/BlockActions.svelte +76 -26
  157. package/dist/fields/blocks/component/BlockActions.svelte.d.ts +3 -0
  158. package/dist/fields/blocks/component/Blocks.svelte +248 -91
  159. package/dist/fields/blocks/component/focus/BlocksFocus.svelte +680 -0
  160. package/dist/fields/blocks/component/focus/BlocksFocus.svelte.d.ts +7 -0
  161. package/dist/fields/blocks/component/focus/Layers.svelte +145 -0
  162. package/dist/fields/blocks/component/focus/Layers.svelte.d.ts +9 -0
  163. package/dist/fields/blocks/component/focus/LayersList.svelte +304 -0
  164. package/dist/fields/blocks/component/focus/LayersList.svelte.d.ts +10 -0
  165. package/dist/fields/blocks/component/focus/Palette.svelte +135 -0
  166. package/dist/fields/blocks/component/focus/Palette.svelte.d.ts +9 -0
  167. package/dist/fields/blocks/component/focus/RenderPlaceholder.svelte +77 -0
  168. package/dist/fields/blocks/component/focus/RenderPlaceholder.svelte.d.ts +10 -0
  169. package/dist/fields/blocks/component/focus/Renders.svelte +302 -0
  170. package/dist/fields/blocks/component/focus/Renders.svelte.d.ts +11 -0
  171. package/dist/fields/blocks/component/focus/Stage.svelte +190 -0
  172. package/dist/fields/blocks/component/focus/Stage.svelte.d.ts +8 -0
  173. package/dist/fields/blocks/component/focus/StagePlaceholder.svelte +69 -0
  174. package/dist/fields/blocks/component/focus/StagePlaceholder.svelte.d.ts +3 -0
  175. package/dist/fields/blocks/component/focus/focus.svelte.d.ts +140 -0
  176. package/dist/fields/blocks/component/focus/focus.svelte.js +424 -0
  177. package/dist/fields/blocks/component/picker/BlockPicker.svelte +88 -0
  178. package/dist/fields/blocks/component/picker/BlockPicker.svelte.d.ts +10 -0
  179. package/dist/fields/blocks/component/picker/BlockTile.svelte +121 -0
  180. package/dist/fields/blocks/component/picker/BlockTile.svelte.d.ts +12 -0
  181. package/dist/fields/blocks/index.d.ts +49 -7
  182. package/dist/fields/blocks/index.js +61 -12
  183. package/dist/fields/checkbox/component/Checkbox.svelte +11 -37
  184. package/dist/fields/checkbox/component/Checkbox.svelte.d.ts +1 -0
  185. package/dist/fields/combobox/component/ComboBox.svelte +37 -7
  186. package/dist/fields/combobox/component/combobox.css +26 -10
  187. package/dist/fields/date/component/Date.svelte +43 -12
  188. package/dist/fields/group/component/Group.svelte +110 -41
  189. package/dist/fields/group/index.d.ts +5 -1
  190. package/dist/fields/group/index.js +10 -2
  191. package/dist/fields/link/component/Link.svelte +184 -143
  192. package/dist/fields/link/component/RessourceInput.svelte +26 -24
  193. package/dist/fields/link/index.d.ts +2 -1
  194. package/dist/fields/link/module.server.js +2 -4
  195. package/dist/fields/number/component/Number.svelte +38 -20
  196. package/dist/fields/number/component/number.css +22 -20
  197. package/dist/fields/number/index.d.ts +1 -0
  198. package/dist/fields/radio/component/Radio.svelte +12 -0
  199. package/dist/fields/radio/index.js +1 -1
  200. package/dist/fields/relation/component/Relation.svelte +169 -40
  201. package/dist/fields/relation/component/RelationInline.svelte +258 -0
  202. package/dist/fields/relation/component/RelationInline.svelte.d.ts +26 -0
  203. package/dist/fields/relation/component/default/Default.svelte +210 -100
  204. package/dist/fields/relation/component/default/Default.svelte.d.ts +14 -1
  205. package/dist/fields/relation/component/types.d.ts +4 -0
  206. package/dist/fields/relation/component/upload/Browse.svelte +619 -88
  207. package/dist/fields/relation/component/upload/Browse.svelte.d.ts +10 -2
  208. package/dist/fields/relation/component/upload/Create.svelte +41 -0
  209. package/dist/fields/relation/component/upload/Create.svelte.d.ts +13 -0
  210. package/dist/fields/relation/component/upload/Upload.svelte +287 -101
  211. package/dist/fields/relation/component/upload/Upload.svelte.d.ts +6 -1
  212. package/dist/fields/relation/component/upload/upload.css +5 -81
  213. package/dist/fields/relation/index.d.ts +1 -41
  214. package/dist/fields/relation/index.js +0 -67
  215. package/dist/fields/relation/module.server.js +7 -1
  216. package/dist/fields/relation/populate.d.ts +8 -0
  217. package/dist/fields/relation/populate.js +49 -0
  218. package/dist/fields/relation/util.d.ts +69 -0
  219. package/dist/fields/relation/util.js +103 -0
  220. package/dist/fields/relation/value.d.ts +25 -0
  221. package/dist/fields/relation/value.js +27 -0
  222. package/dist/fields/rich-text/client.d.ts +2 -5
  223. package/dist/fields/rich-text/client.js +1 -3
  224. package/dist/fields/rich-text/component/Cell.svelte +1 -1
  225. package/dist/fields/rich-text/component/RichText.svelte +12 -80
  226. package/dist/fields/rich-text/component/RichText.svelte.d.ts +1 -1
  227. package/dist/fields/rich-text/component/RichTextInline.svelte +28 -0
  228. package/dist/fields/rich-text/component/RichTextInline.svelte.d.ts +11 -0
  229. package/dist/fields/rich-text/component/bubble-menu/bubble-menu.css +4 -3
  230. package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte +3 -1
  231. package/dist/fields/rich-text/component/bubble-menu/icon-button/icon-button.css +2 -2
  232. package/dist/fields/rich-text/component/bubble-menu/node-selector/node-selector.css +7 -10
  233. package/dist/fields/rich-text/component/drag-handle/drag-handle.css +0 -2
  234. package/dist/fields/rich-text/component/styles/editor.css +111 -0
  235. package/dist/fields/rich-text/component/styles/field.css +71 -0
  236. package/dist/fields/rich-text/component/suggestion/suggestion.svelte +41 -56
  237. package/dist/fields/rich-text/core/build-editor-config.js +1 -1
  238. package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle-plugin.js +29 -3
  239. package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle.d.ts +1 -0
  240. package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle.js +2 -1
  241. package/dist/fields/rich-text/core/features/fields/fields.css +2 -3
  242. package/dist/fields/rich-text/core/features/hr/hr.css +4 -4
  243. package/dist/fields/rich-text/core/features/link/component/link-selector.css +0 -4
  244. package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +24 -8
  245. package/dist/fields/rich-text/core/features/resource/resource-extension.js +3 -3
  246. package/dist/fields/rich-text/core/features/resource/resource.svelte +21 -7
  247. package/dist/fields/rich-text/core/features/upload/upload-extension.js +3 -4
  248. package/dist/fields/rich-text/core/features/upload/upload.svelte +21 -9
  249. package/dist/fields/rich-text/core/rich-text-editor-core.svelte +103 -0
  250. package/dist/fields/rich-text/core/rich-text-editor-core.svelte.d.ts +15 -0
  251. package/dist/fields/rich-text/index.d.ts +0 -17
  252. package/dist/fields/rich-text/index.js +0 -44
  253. package/dist/fields/rich-text/json.d.ts +18 -0
  254. package/dist/fields/rich-text/json.js +44 -0
  255. package/dist/fields/select/component/Select.svelte +67 -28
  256. package/dist/fields/slug/component/Slug.svelte +26 -53
  257. package/dist/fields/slug/index.d.ts +1 -0
  258. package/dist/fields/slug/index.js +1 -1
  259. package/dist/fields/tabs/component/Tabs.svelte +28 -22
  260. package/dist/fields/tabs/index.d.ts +4 -1
  261. package/dist/fields/tabs/index.js +17 -5
  262. package/dist/fields/text/index.d.ts +1 -0
  263. package/dist/fields/textarea/component/TextArea.svelte +28 -13
  264. package/dist/fields/textarea/index.d.ts +1 -0
  265. package/dist/fields/time/component/Time.svelte +9 -2
  266. package/dist/fields/toggle/component/Toggle.svelte +8 -25
  267. package/dist/fields/toggle/component/Toggle.svelte.d.ts +1 -0
  268. package/dist/fields/toggle/index.d.ts +1 -0
  269. package/dist/fields/tree/component/AddItemButton.svelte +18 -5
  270. package/dist/fields/tree/component/Tree.svelte +48 -19
  271. package/dist/fields/tree/component/TreeBlock.svelte +318 -104
  272. package/dist/fields/tree/component/TreeBlockActions.svelte +71 -7
  273. package/dist/fields/tree/component/TreeBlockActions.svelte.d.ts +4 -0
  274. package/dist/fields/tree/component/props.d.ts +2 -1
  275. package/dist/fields/tree/index.d.ts +13 -1
  276. package/dist/fields/tree/index.js +35 -9
  277. package/dist/fields/types.d.ts +3 -1
  278. package/dist/index.d.ts +2 -8
  279. package/dist/index.js +2 -6
  280. package/dist/{panel/components/sections/live → live}/Consumer.svelte +2 -2
  281. package/dist/{panel/components/sections/live → live}/Consumer.svelte.d.ts +1 -1
  282. package/dist/{panel/components/sections/live → live}/LiveEdit.svelte +3 -3
  283. package/dist/{panel/components/sections/live → live}/Provider.svelte +1 -1
  284. package/dist/{panel/context/live.svelte.d.ts → live/context.svelte.d.ts} +1 -1
  285. package/dist/{panel/context/live.svelte.js → live/context.svelte.js} +3 -74
  286. package/dist/panel/components/Root.svelte +16 -44
  287. package/dist/panel/components/Root.svelte.d.ts +1 -1
  288. package/dist/panel/components/fields/Error.svelte +18 -3
  289. package/dist/panel/components/fields/FieldsPreview.svelte +30 -17
  290. package/dist/panel/components/fields/FieldsPreviewTrigger.svelte +25 -3
  291. package/dist/panel/components/fields/Hint.svelte +51 -8
  292. package/dist/panel/components/fields/Hint.svelte.d.ts +11 -0
  293. package/dist/panel/components/fields/Label.svelte +2 -0
  294. package/dist/panel/components/fields/LabelFor.svelte +7 -2
  295. package/dist/panel/components/fields/RenderFields.svelte +10 -3
  296. package/dist/panel/components/fields/fieldset.svelte.d.ts +4 -1
  297. package/dist/panel/components/fields/fieldset.svelte.js +9 -2
  298. package/dist/panel/components/fields/index.d.ts +1 -0
  299. package/dist/panel/components/fields/setting.css +82 -0
  300. package/dist/panel/components/sections/auth/AuthForm.svelte +25 -26
  301. package/dist/panel/components/sections/collection/Avatar.svelte +61 -0
  302. package/dist/panel/components/sections/collection/Avatar.svelte.d.ts +9 -0
  303. package/dist/panel/components/sections/collection/DocStatus.svelte +28 -0
  304. package/dist/panel/components/sections/collection/DocStatus.svelte.d.ts +7 -0
  305. package/dist/panel/components/sections/collection/Empty.svelte +3 -3
  306. package/dist/panel/components/sections/collection/StatusDot.svelte +7 -5
  307. package/dist/panel/components/sections/collection/When.svelte +33 -0
  308. package/dist/panel/components/sections/collection/When.svelte.d.ts +8 -0
  309. package/dist/panel/components/sections/collection/bulk-upload/BulkUploadDialog.svelte +65 -21
  310. package/dist/panel/components/sections/collection/bulk-upload/BulkUploadDialog.svelte.d.ts +3 -2
  311. package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte +45 -162
  312. package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte.d.ts +3 -2
  313. package/dist/panel/components/sections/collection/bulk-upload/FileDrop.svelte +151 -0
  314. package/dist/panel/components/sections/collection/bulk-upload/FileDrop.svelte.d.ts +17 -0
  315. package/dist/panel/components/sections/collection/bulk-upload/PageDrop.svelte +177 -0
  316. package/dist/panel/components/sections/collection/bulk-upload/PageDrop.svelte.d.ts +12 -0
  317. package/dist/panel/components/sections/collection/bulk-upload/UploadProgress.svelte +75 -0
  318. package/dist/panel/components/sections/collection/bulk-upload/UploadProgress.svelte.d.ts +8 -0
  319. package/dist/panel/components/sections/collection/folder/Folder.svelte +18 -3
  320. package/dist/panel/components/sections/collection/folder/FolderEdit.svelte +26 -18
  321. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +98 -58
  322. package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte.d.ts +0 -1
  323. package/dist/panel/components/sections/collection/folder/Folders.svelte +60 -0
  324. package/dist/panel/components/sections/collection/folder/Folders.svelte.d.ts +7 -0
  325. package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte +31 -71
  326. package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte.d.ts +1 -0
  327. package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +5 -3
  328. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +250 -37
  329. package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +2 -0
  330. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +43 -18
  331. package/dist/panel/components/sections/collection/header/ButtonCreate.svelte.d.ts +6 -4
  332. package/dist/panel/components/sections/collection/header/DisplayMode.svelte +69 -58
  333. package/dist/panel/components/sections/collection/header/DisplayMode.svelte.d.ts +0 -1
  334. package/dist/panel/components/sections/collection/header/FilterMenu.svelte +60 -0
  335. package/dist/panel/components/sections/collection/header/FilterMenu.svelte.d.ts +14 -0
  336. package/dist/panel/components/sections/collection/header/SearchInput.svelte +17 -26
  337. package/dist/panel/components/sections/collection/header/SelectUI.svelte +19 -34
  338. package/dist/panel/components/sections/collection/list/CollectionList.svelte +99 -68
  339. package/dist/panel/components/sections/collection/list/columns.d.ts +21 -0
  340. package/dist/panel/components/sections/collection/list/columns.js +23 -0
  341. package/dist/panel/components/sections/collection/list/header/Header.svelte +99 -51
  342. package/dist/panel/components/sections/collection/list/row/Row.svelte +165 -82
  343. package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +4 -0
  344. package/dist/panel/components/sections/collection/tree/CollectionTree.svelte +92 -44
  345. package/dist/panel/components/sections/collection/tree/CollectionTree.svelte.d.ts +1 -0
  346. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte +139 -43
  347. package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte.d.ts +2 -0
  348. package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +1 -1
  349. package/dist/panel/components/sections/commands/CommandButton.svelte +99 -0
  350. package/dist/panel/components/sections/commands/CommandButton.svelte.d.ts +10 -0
  351. package/dist/panel/components/sections/commands/CommandPalette.svelte +275 -0
  352. package/dist/panel/components/sections/commands/CommandPalette.svelte.d.ts +8 -0
  353. package/dist/panel/components/sections/commands/Commands.svelte +18 -0
  354. package/dist/panel/components/sections/commands/Commands.svelte.d.ts +9 -0
  355. package/dist/panel/components/sections/document/AuthAPIKeyDialog.svelte +23 -7
  356. package/dist/panel/components/sections/document/AuthFooter.svelte +31 -12
  357. package/dist/panel/components/sections/document/AutoSaveBanner.svelte +24 -7
  358. package/dist/panel/components/sections/document/ButtonSave.svelte +32 -21
  359. package/dist/panel/components/sections/document/ButtonSave.svelte.d.ts +5 -5
  360. package/dist/panel/components/sections/document/ButtonStatus.svelte +68 -20
  361. package/dist/panel/components/sections/document/ChangeSlugDialog.svelte +199 -0
  362. package/dist/panel/components/sections/document/ChangeSlugDialog.svelte.d.ts +10 -0
  363. package/dist/panel/components/sections/document/CurrentlyEdited.svelte +2 -2
  364. package/dist/panel/components/sections/document/Document.svelte +96 -65
  365. package/dist/panel/components/sections/document/DocumentChildren.svelte +175 -0
  366. package/dist/panel/components/sections/document/DocumentChildren.svelte.d.ts +8 -0
  367. package/dist/panel/components/sections/document/DocumentUrl.svelte +119 -0
  368. package/dist/panel/components/sections/document/DocumentUrl.svelte.d.ts +9 -0
  369. package/dist/panel/components/sections/document/Header.svelte +171 -94
  370. package/dist/panel/components/sections/document/Settings.svelte +255 -110
  371. package/dist/panel/components/sections/document/Settings.svelte.d.ts +0 -1
  372. package/dist/panel/components/sections/document/Versions.svelte +5 -3
  373. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +112 -53
  374. package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte.d.ts +2 -2
  375. package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte +74 -41
  376. package/dist/panel/components/sections/live/LiveFloatingUI.svelte +30 -11
  377. package/dist/panel/components/sections/live/live-edit-panel.css +2 -2
  378. package/dist/panel/components/sections/page-layout/Page.svelte +13 -1
  379. package/dist/panel/components/ui/breadcrumb/BreadCrumb.svelte +55 -27
  380. package/dist/panel/components/ui/button/button.svelte +81 -54
  381. package/dist/panel/components/ui/button/index.d.ts +7 -3
  382. package/dist/panel/components/ui/button/index.js +2 -2
  383. package/dist/panel/components/ui/calendar/calendar.css +27 -27
  384. package/dist/panel/components/ui/card/card-description.svelte +1 -1
  385. package/dist/panel/components/ui/card/card.svelte +21 -4
  386. package/dist/panel/components/ui/card-document/card-document.svelte +24 -12
  387. package/dist/panel/components/ui/card-resource/card-resource.svelte +26 -8
  388. package/dist/panel/components/ui/checkbox/checkbox.css +8 -10
  389. package/dist/panel/components/ui/checkbox/checkbox.svelte.d.ts +1 -1
  390. package/dist/panel/components/ui/command/command-dialog.css +28 -4
  391. package/dist/panel/components/ui/command/command-dialog.svelte +4 -1
  392. package/dist/panel/components/ui/command/command-dialog.svelte.d.ts +2 -0
  393. package/dist/panel/components/ui/command/command-empty.css +1 -1
  394. package/dist/panel/components/ui/command/command-group.css +3 -3
  395. package/dist/panel/components/ui/command/command-input-select.svelte +3 -3
  396. package/dist/panel/components/ui/command/command-input.svelte +38 -14
  397. package/dist/panel/components/ui/command/command-input.svelte.d.ts +6 -1
  398. package/dist/panel/components/ui/command/command-item.css +2 -2
  399. package/dist/panel/components/ui/command/command-list.css +1 -1
  400. package/dist/panel/components/ui/command/command-separator.css +1 -1
  401. package/dist/panel/components/ui/context-menu/context-menu-item.css +2 -2
  402. package/dist/panel/components/ui/context-menu/context-menu.css +6 -7
  403. package/dist/panel/components/ui/dialog/dialog-content.css +8 -10
  404. package/dist/panel/components/ui/dialog/dialog-content.svelte +19 -0
  405. package/dist/panel/components/ui/dialog/dialog-description.css +1 -1
  406. package/dist/panel/components/ui/dialog/dialog-footer.svelte +5 -1
  407. package/dist/panel/components/ui/dialog/dialog-overlay.css +1 -1
  408. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +19 -5
  409. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +1 -1
  410. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-content.css +6 -4
  411. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-item.css +1 -1
  412. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-radio-item.css +1 -1
  413. package/dist/panel/components/ui/dropdown-menu/dropdown-menu-separator.css +1 -1
  414. package/dist/panel/components/ui/input/input.svelte +57 -31
  415. package/dist/panel/components/ui/kbd/Kbd.svelte +90 -0
  416. package/dist/panel/components/ui/kbd/Kbd.svelte.d.ts +11 -0
  417. package/dist/panel/components/ui/kbd/index.d.ts +1 -0
  418. package/dist/panel/components/ui/kbd/index.js +1 -0
  419. package/dist/panel/components/ui/label/label.css +5 -3
  420. package/dist/panel/components/ui/language-switcher/LanguageSwitcher.svelte +27 -15
  421. package/dist/panel/components/ui/nav/Nav.svelte +180 -110
  422. package/dist/panel/components/ui/nav/Nav.svelte.d.ts +0 -2
  423. package/dist/panel/components/ui/nav/NavGroup.svelte +87 -73
  424. package/dist/panel/components/ui/nav/NavItemButton.svelte +69 -29
  425. package/dist/panel/components/ui/nav/UserButton.svelte +132 -71
  426. package/dist/panel/components/ui/page-header/PageHeader.svelte +140 -42
  427. package/dist/panel/components/ui/page-header/PageHeader.svelte.d.ts +8 -1
  428. package/dist/panel/components/ui/popover/popover-content.css +4 -3
  429. package/dist/panel/components/ui/radio-group/radio-group.css +4 -6
  430. package/dist/panel/components/ui/radio-row-group/radio-row-group.css +19 -7
  431. package/dist/panel/components/ui/scroll-area/scroll-area.css +2 -2
  432. package/dist/panel/components/ui/separator/separator.svelte +1 -1
  433. package/dist/panel/components/ui/sheet/index.d.ts +4 -4
  434. package/dist/panel/components/ui/sheet/index.js +5 -5
  435. package/dist/panel/components/ui/sheet/sheet.css +50 -11
  436. package/dist/panel/components/ui/sonner/sonner.css +11 -8
  437. package/dist/panel/components/ui/switch/switch.css +13 -18
  438. package/dist/panel/components/ui/switch/switch.svelte.d.ts +1 -1
  439. package/dist/panel/components/ui/tabs/tabs.css +44 -35
  440. package/dist/panel/components/ui/tag/tag.svelte +20 -6
  441. package/dist/panel/components/ui/tooltip/tooltip-content.svelte +14 -4
  442. package/dist/panel/components/ui/tree/tree-rows.css +146 -0
  443. package/dist/panel/context/blocks-ops.d.ts +78 -0
  444. package/dist/panel/context/blocks-ops.js +170 -0
  445. package/dist/panel/context/collection.svelte.d.ts +28 -0
  446. package/dist/panel/context/collection.svelte.js +120 -65
  447. package/dist/panel/context/commands.svelte.d.ts +80 -0
  448. package/dist/panel/context/commands.svelte.js +108 -0
  449. package/dist/panel/context/config.svelte.d.ts +2 -2
  450. package/dist/panel/context/documentForm.svelte.d.ts +34 -2
  451. package/dist/panel/context/documentForm.svelte.js +106 -103
  452. package/dist/panel/context/nav.svelte.d.ts +23 -0
  453. package/dist/panel/context/nav.svelte.js +56 -0
  454. package/dist/panel/fonts/Geist-VariableFont_wght.ttf +0 -0
  455. package/dist/panel/fonts/GeistMono-VariableFont_wght.ttf +0 -0
  456. package/dist/panel/index.d.ts +7 -4
  457. package/dist/panel/index.js +11 -5
  458. package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +16 -1
  459. package/dist/panel/pages/collection/CollectionPage.svelte +236 -61
  460. package/dist/panel/pages/collection/load.server.js +1 -1
  461. package/dist/panel/pages/dashboard/Dashboard.svelte +135 -90
  462. package/dist/panel/pages/dashboard/DashboardCard.svelte +109 -0
  463. package/dist/panel/pages/dashboard/DashboardCard.svelte.d.ts +14 -0
  464. package/dist/panel/pages/dashboard/DashboardCollection.svelte +180 -57
  465. package/dist/panel/pages/dashboard/DashboardCollection.svelte.d.ts +1 -0
  466. package/dist/panel/pages/dashboard/DashboardRow.svelte +93 -0
  467. package/dist/panel/pages/dashboard/DashboardRow.svelte.d.ts +16 -0
  468. package/dist/panel/pages/dashboard/load.server.js +49 -25
  469. package/dist/panel/pages/dashboard/time.d.ts +19 -0
  470. package/dist/panel/pages/dashboard/time.js +29 -0
  471. package/dist/panel/pages/dashboard/types.d.ts +9 -2
  472. package/dist/panel/pages/live/Live.svelte +53 -50
  473. package/dist/panel/public.d.ts +4 -0
  474. package/dist/panel/public.js +6 -0
  475. package/dist/panel/style/font.css +21 -32
  476. package/dist/panel/style/index.css +191 -122
  477. package/dist/panel/style/mixins/index.css +14 -0
  478. package/dist/panel/style/palette.css +35 -26
  479. package/dist/panel/style/postcss/size-function.d.ts +4 -0
  480. package/dist/panel/style/postcss/size-function.js +24 -0
  481. package/dist/panel/style/radius.css +4 -5
  482. package/dist/panel/style/scheme.css +111 -0
  483. package/dist/panel/style/size.css +3 -0
  484. package/dist/panel/util/Sortable.js +9 -4
  485. package/dist/panel/util/keys.d.ts +24 -0
  486. package/dist/panel/util/keys.js +63 -0
  487. package/dist/panel/util/time.d.ts +12 -0
  488. package/dist/panel/util/time.js +35 -0
  489. package/dist/panel/util/upload-file.d.ts +106 -0
  490. package/dist/panel/util/upload-file.js +165 -0
  491. package/dist/public.d.ts +13 -0
  492. package/dist/public.js +12 -0
  493. package/dist/util/index.d.ts +7 -10
  494. package/dist/util/index.js +7 -8
  495. package/dist/util/object.d.ts +10 -0
  496. package/dist/util/object.js +22 -1
  497. package/dist/util/string.d.ts +17 -0
  498. package/dist/util/string.js +23 -0
  499. package/package.json +12 -8
  500. package/dist/core/pipeline/config-map/build-tree-map.d.ts +0 -4
  501. package/dist/core/pipeline/config-map/build-tree-map.js +0 -30
  502. package/dist/core/prototype/doc.d.ts +0 -31
  503. package/dist/core/prototype/doc.js +0 -118
  504. package/dist/core/prototype/shared/url/augment.d.ts +0 -13
  505. package/dist/core/prototype/shared/url/augment.js +0 -11
  506. package/dist/core/prototype/shared/url/hooks/populate-url.server.d.ts +0 -4
  507. package/dist/core/prototype/shared/url/hooks/populate-url.server.js +0 -120
  508. package/dist/fields/relation/client.d.ts +0 -28
  509. package/dist/fields/relation/client.js +0 -37
  510. package/dist/fields/rich-text/component/styles/rich-text.css +0 -183
  511. package/dist/panel/components/sections/collection/header/Header.svelte +0 -17
  512. package/dist/panel/components/sections/collection/header/Header.svelte.d.ts +0 -3
  513. package/dist/panel/components/sections/collection/header/Separator.svelte +0 -8
  514. package/dist/panel/components/sections/collection/header/Separator.svelte.d.ts +0 -26
  515. package/dist/panel/components/sections/collection/tree/util.d.ts +0 -12
  516. package/dist/panel/components/sections/collection/tree/util.js +0 -22
  517. package/dist/panel/fonts/ChivoMono-Italic-VariableFont_wght.ttf +0 -0
  518. package/dist/panel/fonts/ChivoMono-VariableFont_wght.ttf +0 -0
  519. package/dist/panel/fonts/Inter-VariableFont_slnt,wght.ttf +0 -0
  520. package/dist/panel/fonts/Lora-Italic-VariableFont_wght.ttf +0 -0
  521. package/dist/panel/fonts/Lora-VariableFont_wght.ttf +0 -0
  522. package/dist/panel/style/shadow.css +0 -10
  523. package/dist/util/path.d.ts +0 -16
  524. package/dist/util/path.js +0 -19
  525. /package/dist/{panel/components/sections/live → live}/LiveEdit.svelte.d.ts +0 -0
  526. /package/dist/{panel/components/sections/live → live}/Provider.svelte.d.ts +0 -0
@@ -1,8 +1,3 @@
1
- .rz-tabs[data-tabs-root] {
2
- margin-left: calc(-1 * var(--rz-fields-padding));
3
- margin-right: calc(-1 * var(--rz-fields-padding));
4
- }
5
-
6
1
  /**************************************/
7
2
  /* Trigger
8
3
  /**************************************/
@@ -15,36 +10,51 @@
15
10
  white-space: nowrap;
16
11
  text-transform: capitalize;
17
12
  transition: all 0.2s ease;
18
- border-bottom: 2px solid transparent;
19
- --rz-ring-opacity: 0;
20
- box-shadow:
21
- 0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
22
- 0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
23
- font-variation-settings: 'wght' 600;
24
- font-weight: 600;
13
+ padding-inline: var(--rz-size-3);
14
+ border-radius: var(--rz-radius-md);
15
+ background-color: transparent;
16
+ color: var(--rz-fg-muted);
17
+ font-variation-settings: 'wght' 380;
18
+ font-weight: 380;
19
+ }
20
+
21
+ .rz-tabs-trigger:hover {
22
+ color: var(--rz-fg);
23
+ }
24
+
25
+ /* With a data-label, the trigger keeps the width of its bolder, active label. */
26
+ .rz-tabs-trigger[data-label] {
27
+ flex-direction: column;
28
+ }
29
+ .rz-tabs-trigger[data-label]::after {
30
+ content: attr(data-label);
31
+ height: 0;
32
+ overflow: hidden;
33
+ visibility: hidden;
34
+ font-variation-settings: 'wght' 450;
35
+ font-weight: 450;
25
36
  }
26
37
 
27
38
  .rz-tabs-trigger[data-state='active'] {
28
- border-color: hsl(var(--rz-color-fg));
39
+ background-color: var(--rz-bg-knob);
40
+ box-shadow: var(--rz-shadow-knob);
29
41
  position: relative;
42
+ font-variation-settings: 'wght' 450;
43
+ font-weight: 450;
30
44
  }
31
45
 
32
46
  .rz-tabs-trigger[data-state='active']:not([data-error='true']) {
33
- color: hsl(var(--rz-color-fg));
47
+ color: var(--rz-fg);
34
48
  }
35
49
  .rz-tabs-trigger[data-error='true'] {
36
- color: hsl(var(--rz-color-alert) / 1);
37
- }
38
- .rz-tabs-trigger[data-state='inactive'] {
39
- opacity: 0.8;
50
+ color: var(--rz-danger);
40
51
  }
41
52
 
53
+ /* The ring hugs the trigger: the track clips what overflows it. */
42
54
  .rz-tabs-trigger:focus-visible {
43
- --rz-ring-opacity: 1;
44
- box-shadow:
45
- 0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
46
- 0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
47
- outline: none;
55
+ outline: 2px solid var(--rz-accent-border);
56
+ outline-offset: 2px;
57
+ outline-offset: 0;
48
58
  }
49
59
  .rz-tabs-trigger:disabled {
50
60
  pointer-events: none;
@@ -59,13 +69,9 @@
59
69
  margin-top: var(--rz-size-2);
60
70
  }
61
71
  .rz-tabs-content:focus-visible {
62
- outline: none;
63
72
  border-radius: var(--rz-radius-sm);
64
- --rz-ring-offset: 8px;
65
- --rz-ring-offset-bg: var(--rz-color-bg);
66
- box-shadow:
67
- 0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
68
- 0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
73
+ outline: 2px solid var(--rz-accent-border);
74
+ outline-offset: 2px;
69
75
  }
70
76
 
71
77
  /**************************************/
@@ -75,13 +81,16 @@
75
81
  .rz-tabs-list {
76
82
  overflow-x: auto;
77
83
  overflow-y: visible;
78
- background-color: hsl(var(--rz-color-bg));
79
- color: hsl(var(--rz-ground-2) / 1);
80
- height: var(--rz-size-10);
81
- width: 100%;
84
+ background-color: var(--rz-bg-well);
85
+ box-shadow: inset 0 0 0 1px var(--rz-border);
86
+ border-radius: var(--rz-radius-lg);
87
+ padding: 3px;
88
+ height: var(--rz-size-9);
89
+ width: -moz-fit-content;
90
+ width: fit-content;
91
+ max-width: 100%;
82
92
  display: inline-flex;
83
93
  align-items: center;
84
- gap: var(--rz-size-6);
94
+ gap: 2px;
85
95
  justify-content: flex-start;
86
- /* border-bottom: 1px solid hsl(var(--rz-color-border)); */
87
96
  }
@@ -20,10 +20,24 @@
20
20
  </button>
21
21
  </div>
22
22
 
23
- <style global>
24
- :root {
25
- --tag-color-bg: hsl(var(--rz-gray-0));
26
- --tag-color-fg: hsl(var(--rz-gray-13));
23
+ <style global>/* A level: its fill, a hairline, its shadow. raised, float. */
24
+
25
+ /* A well: an input, a track, a dropzone. Its edge shows on hover. */
26
+
27
+ /* The hover tint, laid over the element's own fill. */
28
+
29
+ /* The picked item of a segmented control. */
30
+
31
+ /* The primary button's face: black on light, white on dark. */
32
+
33
+ /* Keyboard focus on a button, a tab, a link. */
34
+
35
+ /* A focused input: an accent edge and a soft halo. */
36
+
37
+ /* An input with an error. */
38
+ :root {
39
+ --tag-color-bg: var(--rz-bg-active);
40
+ --tag-color-fg: var(--rz-fg-muted);
27
41
  }
28
42
 
29
43
  .rz-tag {
@@ -48,8 +62,8 @@
48
62
  }
49
63
 
50
64
  .rz-tag__button:focus-visible {
51
- outline: none;
52
- background-color: hsl(var(--rz-color-ring));
65
+ outline: 2px solid var(--rz-accent-border);
66
+ outline-offset: 2px;
53
67
  }
54
68
 
55
69
  .rz-tag__button--readonly {
@@ -25,8 +25,8 @@
25
25
 
26
26
  <style>
27
27
  :root {
28
- --rz-tooltip-color-fg: light-dark(hsl(var(--rz-gray-16)), hsl(var(--rz-gray-2)));
29
- --rz-tooltip-color-bg: light-dark(hsl(var(--rz-gray-0)), hsl(var(--rz-gray-11)));
28
+ --rz-tooltip-color-fg: var(--rz-fg-inverse);
29
+ --rz-tooltip-color-bg: var(--rz-bg-inverse);
30
30
  }
31
31
 
32
32
  .rz-tooltip {
@@ -34,8 +34,18 @@
34
34
  color: var(--rz-tooltip-color-fg);
35
35
  padding: var(--rz-size-1-5) var(--rz-size-3);
36
36
  font-size: var(--rz-text-xs);
37
- z-index: 200;
38
- overflow: hidden;
37
+ z-index: 400;
39
38
  border-radius: var(--rz-radius-md);
39
+ position: relative;
40
+ &:before {
41
+ left: 0;
42
+ top: 12px;
43
+ content: '';
44
+ width: 6px;
45
+ background-color: var(--rz-tooltip-color-bg);
46
+ height: 6px;
47
+ transform: rotate(45deg) translateX(-3px);
48
+ position: absolute;
49
+ }
40
50
  }
41
51
  </style>
@@ -0,0 +1,146 @@
1
+ /*
2
+ * Rows of a tree in one raised card: a nested collection's documents.
3
+ * A list sets the depth of its rows; a row moved into another list, while dragged, takes that
4
+ * list's depth at once.
5
+ *
6
+ * ╭──────────────────────────────────────╮
7
+ * │ ⠿ ⌄ About ⋯ │ depth 0
8
+ * │ ⠿ │ Team ⋯ │ depth 1, the guide under About's chevron
9
+ * │ ⠿ › Blog 3 ⋯ │ folded, its count of children
10
+ * ╰──────────────────────────────────────╯
11
+ *
12
+ * [grip 24][20 × depth][chevron 16][8][title …]
13
+ */
14
+
15
+ .rz-tree-rows {
16
+ position: relative;
17
+ }
18
+
19
+ /* The card around a tree: its rows, and whatever heads them. */
20
+ .rz-tree-card:not([data-empty]) {
21
+ background-color: var(--rz-bg-raised);
22
+ box-shadow:
23
+ 0 0 0 1px var(--rz-border),
24
+ var(--rz-shadow-raised);
25
+ border-radius: var(--rz-radius-xl);
26
+ overflow: hidden;
27
+
28
+ /* A first row on the card's edge has no hairline above it. */
29
+ > :first-child > .rz-tree-row {
30
+ box-shadow: none;
31
+ }
32
+ }
33
+
34
+ /* Inside a group, a block, a tree item or a stage card: a hairline, no second fill. */
35
+ :is(.rz-group-field__content, .rz-block__fields, .rz-tree-item__fields, .rz-stage__fields)
36
+ .rz-tree-card:not([data-empty]) {
37
+ background-color: transparent;
38
+ box-shadow: 0 0 0 1px var(--rz-border);
39
+ }
40
+
41
+ /* A nested list: the guide down from its parent's chevron, through every row under it. */
42
+ .rz-tree-rows:not(.rz-tree-rows--root)::before {
43
+ content: '';
44
+ position: absolute;
45
+ top: 0;
46
+ bottom: 0;
47
+ left: calc(calc(8 * var(--rz-unit)) + (var(--rz-tree-depth, 1) - 1) * calc(5 * var(--rz-unit)));
48
+ width: 1px;
49
+ background-color: var(--rz-border-strong);
50
+ pointer-events: none;
51
+ }
52
+
53
+ .rz-tree-rows:not(:has(> *))::before {
54
+ display: none;
55
+ }
56
+
57
+ .rz-tree-rows[hidden] {
58
+ display: none;
59
+ }
60
+
61
+ /* A row: flat, a hairline above it, pushed right by its depth. */
62
+ .rz-tree-row {
63
+ position: relative;
64
+ display: flex;
65
+ align-items: center;
66
+ gap: var(--rz-size-2);
67
+ min-height: var(--rz-row-height);
68
+ padding-left: calc(calc(6 * var(--rz-unit)) + var(--rz-tree-depth, 0) * calc(5 * var(--rz-unit)));
69
+ padding-right: var(--rz-size-2);
70
+ box-shadow: inset 0 1px 0 var(--rz-border);
71
+ transition: background-color 0.15s;
72
+
73
+ &:hover {
74
+ background-color: var(--rz-bg-hover);
75
+ }
76
+ }
77
+
78
+ /* The grip, at the row's left edge whatever its depth; faint, clear on hover. */
79
+ .rz-tree-row__grip {
80
+ position: absolute;
81
+ top: 0;
82
+ bottom: 0;
83
+ left: 0;
84
+ display: grid;
85
+ place-items: center;
86
+ width: var(--rz-size-6);
87
+ color: var(--rz-fg-subtle);
88
+ opacity: 0.5;
89
+ cursor: grab;
90
+ transition: opacity 0.15s;
91
+ }
92
+
93
+ .rz-tree-row:hover .rz-tree-row__grip {
94
+ opacity: 1;
95
+ }
96
+
97
+ /* Folds the children, on a row that has some. */
98
+ .rz-tree-row__fold {
99
+ display: grid;
100
+ flex-shrink: 0;
101
+ place-items: center;
102
+ width: var(--rz-size-4);
103
+ height: var(--rz-size-4);
104
+ border-radius: var(--rz-radius-sm);
105
+ color: var(--rz-fg-subtle);
106
+
107
+ &:hover {
108
+ background-color: var(--rz-bg-hover);
109
+ color: var(--rz-fg);
110
+ }
111
+
112
+ &:focus-visible {
113
+ outline: 2px solid var(--rz-accent-border);
114
+ outline-offset: 2px;
115
+ outline-offset: 0;
116
+ }
117
+ }
118
+
119
+ .rz-tree-row__title {
120
+ font-variation-settings: 'wght' 500;
121
+ font-weight: 500;
122
+ min-width: 0;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ white-space: nowrap;
126
+ text-align: left;
127
+ }
128
+
129
+ /* How many children a folded row holds. */
130
+ .rz-tree-row__count {
131
+ display: inline-flex;
132
+ flex-shrink: 0;
133
+ align-items: center;
134
+ height: calc(4.5 * var(--rz-unit));
135
+ padding-inline: var(--rz-size-1-5);
136
+ border-radius: var(--rz-radius-full);
137
+ background-color: var(--rz-bg-well);
138
+ box-shadow: inset 0 0 0 1px var(--rz-border);
139
+ color: var(--rz-fg-subtle);
140
+ font-size: var(--rz-text-xs);
141
+ }
142
+
143
+ /* The row in hand stays faint where it will land. */
144
+ .sortable-ghost > .rz-tree-row {
145
+ opacity: 0.4;
146
+ }
@@ -0,0 +1,78 @@
1
+ import type { GenericBlock } from '../../core/prototype/types.js';
2
+ import type { Dic } from '../../util/types.js';
3
+ /**
4
+ * The block operations, over a plain document. The form wraps them with its state, its errors
5
+ * and its live-edit callback; every view of the blocks — the inline cards, the focus mode, the
6
+ * shortcuts — goes through the form and lands here.
7
+ *
8
+ * Paths are normalized: no `:type` segment. A block path names one block, `sections.2`; a list
9
+ * path names the array it sits in, `sections` or `sections.0.items`.
10
+ */
11
+ /** Where a block goes: the list, and the index it will have in it. `list.length` appends. */
12
+ export type BlockAt = {
13
+ list: string;
14
+ index: number;
15
+ };
16
+ /** A block to insert: its type and its values. Id, path and position are given on the way in. */
17
+ export type NewBlock = {
18
+ type: string;
19
+ } & Dic;
20
+ /** What the clipboard carries. */
21
+ export type BlockClipboardData = {
22
+ rime: typeof CLIPBOARD_KIND;
23
+ type: string;
24
+ block: GenericBlock;
25
+ };
26
+ export declare const CLIPBOARD_KIND = "block";
27
+ export declare const tempId: () => string;
28
+ /** `sections.0.items.2` -> `{ list: 'sections.0.items', index: 2 }` */
29
+ export declare const parseBlockPath: (path: string) => BlockAt;
30
+ export declare const blockPath: (at: BlockAt) => string;
31
+ /** Whether `path` is `ancestor` itself or lies below it. */
32
+ export declare const isWithin: (path: string, ancestor: string) => boolean;
33
+ /**
34
+ * The index a list path carries at the position `removed` names, once the block at `removed` is
35
+ * gone: a list under a later sibling moves up by one.
36
+ *
37
+ * ```
38
+ * shiftListPath('sections.3.items', { list: 'sections', index: 1 }) // 'sections.2.items'
39
+ * shiftListPath('sections.0.items', { list: 'sections', index: 1 }) // 'sections.0.items'
40
+ * ```
41
+ */
42
+ export declare const shiftListPath: (list: string, removed: BlockAt, delta?: number) => string;
43
+ /**
44
+ * The path with each block index carrying its type, read off the document: what
45
+ * `getFieldAtPath` wants.
46
+ *
47
+ * ```
48
+ * withBlockTypes('sections.0.items.1', doc) // 'sections.0:grid.items.1:paragraph'
49
+ * ```
50
+ */
51
+ export declare const withBlockTypes: (path: string, doc: Dic) => string;
52
+ /**
53
+ * Every `path` and `position` under a list, rewritten from the list's own path: the block's, and
54
+ * those of the lists nested in it.
55
+ */
56
+ export declare const rebuildPaths: <T extends Dic>(items: T[], listPath: string) => T[];
57
+ /** A copy with a fresh temporary id on the block and on everything nested that has one. */
58
+ export declare const withFreshIds: <T extends Dic>(block: T) => T;
59
+ export declare const readList: (doc: Dic, list: string) => GenericBlock[];
60
+ export type BlocksChange<D extends Dic> = {
61
+ doc: D;
62
+ lists: string[];
63
+ };
64
+ export declare const insertBlock: <D extends Dic>(doc: D, at: BlockAt, block: NewBlock) => BlocksChange<D> & {
65
+ id: string;
66
+ };
67
+ export declare const removeBlock: <D extends Dic>(doc: D, path: string) => BlocksChange<D>;
68
+ export declare const duplicateBlock: <D extends Dic>(doc: D, path: string) => BlocksChange<D> & {
69
+ id: string | null;
70
+ };
71
+ /**
72
+ * `to.index` is the index the block has in `to.list` once it is there — what a sortable's
73
+ * `newIndex` says. A move into the block's own subtree is refused and changes nothing.
74
+ */
75
+ export declare const moveBlock: <D extends Dic>(doc: D, from: string, to: BlockAt) => BlocksChange<D>;
76
+ export declare const toClipboard: (block: GenericBlock) => BlockClipboardData;
77
+ /** The block a clipboard text holds, or `null` when the text is something else. */
78
+ export declare const fromClipboard: (text: string) => BlockClipboardData | null;
@@ -0,0 +1,170 @@
1
+ import { getValueAtPath, isObjectLiteral, setValueAtPath } from '../../util/object.js';
2
+ import { normalizeFieldPath } from '../../util/string.js';
3
+ import { randomId } from '../../util/random.js';
4
+ import cloneDeep from 'clone-deep';
5
+ export const CLIPBOARD_KIND = 'block';
6
+ export const tempId = () => `temp-${randomId(8)}`;
7
+ /** `sections.0.items.2` -> `{ list: 'sections.0.items', index: 2 }` */
8
+ export const parseBlockPath = (path) => {
9
+ const normalized = normalizeFieldPath(path);
10
+ const dot = normalized.lastIndexOf('.');
11
+ return { list: normalized.slice(0, dot), index: parseInt(normalized.slice(dot + 1)) };
12
+ };
13
+ export const blockPath = (at) => `${at.list}.${at.index}`;
14
+ /** Whether `path` is `ancestor` itself or lies below it. */
15
+ export const isWithin = (path, ancestor) => path === ancestor || path.startsWith(`${ancestor}.`);
16
+ /**
17
+ * The index a list path carries at the position `removed` names, once the block at `removed` is
18
+ * gone: a list under a later sibling moves up by one.
19
+ *
20
+ * ```
21
+ * shiftListPath('sections.3.items', { list: 'sections', index: 1 }) // 'sections.2.items'
22
+ * shiftListPath('sections.0.items', { list: 'sections', index: 1 }) // 'sections.0.items'
23
+ * ```
24
+ */
25
+ export const shiftListPath = (list, removed, delta = -1) => {
26
+ const prefix = removed.list ? `${removed.list}.` : '';
27
+ if (!list.startsWith(prefix))
28
+ return list;
29
+ const rest = list.slice(prefix.length);
30
+ const [head, ...tail] = rest.split('.');
31
+ const index = parseInt(head);
32
+ if (Number.isNaN(index) || index < removed.index)
33
+ return list;
34
+ if (index === removed.index && delta < 0)
35
+ return list;
36
+ return [prefix + (index + delta), ...tail].join('.');
37
+ };
38
+ /**
39
+ * The path with each block index carrying its type, read off the document: what
40
+ * `getFieldAtPath` wants.
41
+ *
42
+ * ```
43
+ * withBlockTypes('sections.0.items.1', doc) // 'sections.0:grid.items.1:paragraph'
44
+ * ```
45
+ */
46
+ export const withBlockTypes = (path, doc) => {
47
+ const parts = normalizeFieldPath(path).split('.');
48
+ const typed = [];
49
+ for (let i = 0; i < parts.length; i++) {
50
+ const part = parts[i];
51
+ const isIndex = /^\d+$/.test(part);
52
+ if (isIndex) {
53
+ const item = getValueAtPath([...parts.slice(0, i), part].join('.'), doc);
54
+ const type = item && isObjectLiteral(item) && typeof item.type === 'string' ? item.type : '';
55
+ typed.push(type ? `${part}:${type}` : part);
56
+ }
57
+ else {
58
+ typed.push(part);
59
+ }
60
+ }
61
+ return typed.join('.');
62
+ };
63
+ /**
64
+ * Every `path` and `position` under a list, rewritten from the list's own path: the block's, and
65
+ * those of the lists nested in it.
66
+ */
67
+ export const rebuildPaths = (items, listPath) => items.map((item, index) => {
68
+ const next = cloneDeep(item);
69
+ if ('path' in next)
70
+ next.path = listPath;
71
+ next.position = index;
72
+ for (const key of Object.keys(next)) {
73
+ const value = next[key];
74
+ if (Array.isArray(value) && value.length && isObjectLiteral(value[0])) {
75
+ next[key] = rebuildPaths(value, `${listPath}.${index}.${key}`);
76
+ }
77
+ }
78
+ return next;
79
+ });
80
+ /** A copy with a fresh temporary id on the block and on everything nested that has one. */
81
+ export const withFreshIds = (block) => {
82
+ const reset = (value) => {
83
+ if (Array.isArray(value))
84
+ return value.map(reset);
85
+ if (!isObjectLiteral(value))
86
+ return value;
87
+ const next = {};
88
+ for (const [key, child] of Object.entries(value))
89
+ next[key] = reset(child);
90
+ if ('id' in next)
91
+ next.id = tempId();
92
+ return next;
93
+ };
94
+ return reset(cloneDeep(block));
95
+ };
96
+ export const readList = (doc, list) => cloneDeep(getValueAtPath(list, doc)) || [];
97
+ /** One list rewritten and set back on the document. */
98
+ const writeList = (doc, list, blocks) => setValueAtPath(list, doc, rebuildPaths(blocks, list));
99
+ export const insertBlock = (doc, at, block) => {
100
+ const id = tempId();
101
+ const blocks = readList(doc, at.list);
102
+ const inserted = {
103
+ ...block,
104
+ id,
105
+ type: block.type,
106
+ path: at.list,
107
+ position: at.index
108
+ };
109
+ blocks.splice(at.index, 0, inserted);
110
+ return { doc: writeList(doc, at.list, blocks), lists: [at.list], id };
111
+ };
112
+ export const removeBlock = (doc, path) => {
113
+ const at = parseBlockPath(path);
114
+ const blocks = readList(doc, at.list).filter((_, index) => index !== at.index);
115
+ return { doc: writeList(doc, at.list, blocks), lists: [at.list] };
116
+ };
117
+ export const duplicateBlock = (doc, path) => {
118
+ const at = parseBlockPath(path);
119
+ const blocks = readList(doc, at.list);
120
+ const source = blocks[at.index];
121
+ if (!source)
122
+ return { doc, lists: [], id: null };
123
+ const copy = withFreshIds(source);
124
+ blocks.splice(at.index + 1, 0, copy);
125
+ return { doc: writeList(doc, at.list, blocks), lists: [at.list], id: copy.id };
126
+ };
127
+ /**
128
+ * `to.index` is the index the block has in `to.list` once it is there — what a sortable's
129
+ * `newIndex` says. A move into the block's own subtree is refused and changes nothing.
130
+ */
131
+ export const moveBlock = (doc, from, to) => {
132
+ const source = parseBlockPath(from);
133
+ const sourcePath = blockPath(source);
134
+ if (isWithin(to.list, sourcePath))
135
+ return { doc, lists: [] };
136
+ const sourceBlocks = readList(doc, source.list);
137
+ const [moved] = sourceBlocks.splice(source.index, 1);
138
+ if (!moved)
139
+ return { doc, lists: [] };
140
+ if (to.list === source.list) {
141
+ sourceBlocks.splice(to.index, 0, moved);
142
+ return { doc: writeList(doc, source.list, sourceBlocks), lists: [source.list] };
143
+ }
144
+ // The source list first; the target may hang under one of its later siblings and shift.
145
+ let next = writeList(doc, source.list, sourceBlocks);
146
+ const targetList = shiftListPath(to.list, source);
147
+ const targetBlocks = readList(next, targetList);
148
+ targetBlocks.splice(to.index, 0, moved);
149
+ next = writeList(next, targetList, targetBlocks);
150
+ return { doc: next, lists: [source.list, targetList] };
151
+ };
152
+ export const toClipboard = (block) => ({
153
+ rime: CLIPBOARD_KIND,
154
+ type: block.type,
155
+ block: cloneDeep(block)
156
+ });
157
+ /** The block a clipboard text holds, or `null` when the text is something else. */
158
+ export const fromClipboard = (text) => {
159
+ try {
160
+ const data = JSON.parse(text);
161
+ if (!isObjectLiteral(data) || data.rime !== CLIPBOARD_KIND)
162
+ return null;
163
+ if (typeof data.type !== 'string' || !isObjectLiteral(data.block))
164
+ return null;
165
+ return data;
166
+ }
167
+ catch {
168
+ return null;
169
+ }
170
+ };
@@ -1,9 +1,13 @@
1
1
  import type { BuiltCollection } from '../../core/config/types.js';
2
2
  import type { Directory } from '../../core/prototype/collection/upload/types.js';
3
3
  import type { GenericDoc } from '../../core/prototype/types.js';
4
+ import { VERSIONS_STATUS } from '../../core/prototype/shared/versions/constant.js';
4
5
  import type { FormField } from '../../fields/types.js';
6
+ import { type MediaKind } from '../util/upload-file.js';
5
7
  type SortMode = 'asc' | 'dsc';
6
8
  export type DisplayMode = (typeof DISPLAY_MODE)[keyof typeof DISPLAY_MODE];
9
+ export type StatusFilter = 'all' | typeof VERSIONS_STATUS.DRAFT | typeof VERSIONS_STATUS.PUBLISHED;
10
+ export type KindFilter = 'all' | MediaKind;
7
11
  export declare const DISPLAY_MODE: {
8
12
  readonly LIST: "display_list";
9
13
  readonly GRID: "display_grid";
@@ -34,10 +38,22 @@ export declare function setCollectionContext(args: Args): {
34
38
  toggleSelectOf: (docId: string) => void;
35
39
  selectAll: () => void;
36
40
  selected: string[];
41
+ /** On while a document is checked; turning it off drops the selection. */
37
42
  selectMode: boolean;
38
43
  readonly isAllSelected: boolean;
39
44
  deleteSelection: () => Promise<void>;
40
45
  filterBy: (inputValue: string) => void;
46
+ /** The documents on screen, after the search, the folder and the filters. */
47
+ readonly shown: GenericDoc[];
48
+ /** A filter change drops the selection, so no hidden document stays picked. */
49
+ statusFilter: StatusFilter;
50
+ kindFilter: KindFilter;
51
+ readonly kinds: ("image" | "document" | "audio" | "video" | "other")[];
52
+ readonly draftsCount: number;
53
+ readonly totalSize: number;
54
+ /** Every document of the collection, whatever the search. */
55
+ readonly total: number;
56
+ pathOf: (doc: GenericDoc) => string;
41
57
  readonly isUpload: boolean;
42
58
  upload: {
43
59
  directories: Directory[];
@@ -84,10 +100,22 @@ export declare function getCollectionContext(): {
84
100
  toggleSelectOf: (docId: string) => void;
85
101
  selectAll: () => void;
86
102
  selected: string[];
103
+ /** On while a document is checked; turning it off drops the selection. */
87
104
  selectMode: boolean;
88
105
  readonly isAllSelected: boolean;
89
106
  deleteSelection: () => Promise<void>;
90
107
  filterBy: (inputValue: string) => void;
108
+ /** The documents on screen, after the search, the folder and the filters. */
109
+ readonly shown: GenericDoc[];
110
+ /** A filter change drops the selection, so no hidden document stays picked. */
111
+ statusFilter: StatusFilter;
112
+ kindFilter: KindFilter;
113
+ readonly kinds: ("image" | "document" | "audio" | "video" | "other")[];
114
+ readonly draftsCount: number;
115
+ readonly totalSize: number;
116
+ /** Every document of the collection, whatever the search. */
117
+ readonly total: number;
118
+ pathOf: (doc: GenericDoc) => string;
91
119
  readonly isUpload: boolean;
92
120
  upload: {
93
121
  directories: Directory[];