rimecms 0.32.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter-sqlite/auth.server.d.ts +2 -2
- package/dist/adapter-sqlite/columns.server.js +2 -2
- package/dist/adapter-sqlite/connect.server.d.ts +12 -0
- package/dist/adapter-sqlite/connect.server.js +31 -0
- package/dist/adapter-sqlite/generate-schema/column.server.js +1 -1
- package/dist/adapter-sqlite/generate-schema/index.server.js +11 -3
- package/dist/adapter-sqlite/generate-schema/root.server.d.ts +13 -4
- package/dist/adapter-sqlite/generate-schema/root.server.js +75 -131
- package/dist/adapter-sqlite/generate-schema/templates.server.d.ts +27 -6
- package/dist/adapter-sqlite/generate-schema/templates.server.js +63 -11
- package/dist/adapter-sqlite/index.server.d.ts +13 -5
- package/dist/adapter-sqlite/index.server.js +9 -6
- package/dist/adapter-sqlite/naming.server.d.ts +6 -8
- package/dist/adapter-sqlite/naming.server.js +22 -4
- package/dist/adapter-sqlite/paths.server.d.ts +10 -0
- package/dist/adapter-sqlite/paths.server.js +122 -0
- package/dist/adapter-sqlite/read.server.d.ts +10 -1
- package/dist/adapter-sqlite/read.server.js +22 -10
- package/dist/adapter-sqlite/select.server.d.ts +19 -0
- package/dist/adapter-sqlite/select.server.js +71 -63
- package/dist/adapter-sqlite/table.server.d.ts +2 -2
- package/dist/adapter-sqlite/transform.server.js +33 -3
- package/dist/adapter-sqlite/types.server.d.ts +10 -3
- package/dist/adapter-sqlite/where.server.d.ts +2 -3
- package/dist/adapter-sqlite/where.server.js +19 -1
- package/dist/core/adapter.d.ts +94 -0
- package/dist/core/auth/better-auth/config.server.d.ts +3 -3
- package/dist/core/auth/better-auth/instance.server.d.ts +6 -6
- package/dist/core/auth/handler/index.server.js +1 -1
- package/dist/core/auth/staff/derive.js +1 -1
- package/dist/core/auth/validate-config.js +3 -5
- package/dist/core/boot.server.d.ts +6 -6
- package/dist/core/config/types.d.ts +53 -5
- package/dist/core/config/validate.server.js +34 -51
- package/dist/core/dev/cli/commands/build.js +21 -6
- package/dist/core/dev/cli/commands/init.server.d.ts +2 -1
- package/dist/core/dev/cli/commands/init.server.js +32 -6
- package/dist/core/dev/cli/index.js +1 -0
- package/dist/core/dev/cli/templates/init.d.ts +6 -1
- package/dist/core/dev/cli/templates/init.js +30 -2
- package/dist/core/dev/cli/util/package-manager.server.d.ts +1 -0
- package/dist/core/dev/cli/util/package-manager.server.js +11 -8
- package/dist/core/dev/cli/util/package.server.d.ts +9 -0
- package/dist/core/dev/cli/util/package.server.js +43 -0
- package/dist/core/dev/codegen/types/contributions.server.d.ts +3 -2
- package/dist/core/dev/codegen/types/contributions.server.js +10 -3
- package/dist/core/dev/vite.server.js +4 -3
- package/dist/core/fields/blank.d.ts +21 -0
- package/dist/core/fields/blank.js +37 -0
- package/dist/core/fields/builders/field-builder.d.ts +53 -0
- package/dist/core/fields/builders/field-builder.js +14 -1
- package/dist/core/fields/builders/form-field-builder.d.ts +8 -0
- package/dist/core/fields/builders/form-field-builder.js +14 -1
- package/dist/core/fields/util.d.ts +9 -2
- package/dist/core/fields/util.js +123 -135
- package/dist/core/fields/walk.d.ts +44 -0
- package/dist/core/fields/walk.js +55 -0
- package/dist/core/handler.server.js +4 -0
- package/dist/core/i18n/context.d.ts +5 -0
- package/dist/core/i18n/context.js +6 -0
- package/dist/core/i18n/en/common.d.ts +71 -0
- package/dist/core/i18n/en/common.js +72 -1
- package/dist/core/i18n/en/fields.d.ts +68 -0
- package/dist/core/i18n/en/fields.js +69 -1
- package/dist/core/i18n/fr/common.d.ts +71 -0
- package/dist/core/i18n/fr/common.js +72 -1
- package/dist/core/i18n/fr/fields.d.ts +68 -0
- package/dist/core/i18n/fr/fields.js +69 -1
- package/dist/core/i18n/index.d.ts +29 -3
- package/dist/core/i18n/index.js +55 -29
- package/dist/core/locale/copy.server.js +3 -3
- package/dist/core/logger.server.js +15 -6
- package/dist/core/pipeline/build-document.server.d.ts +3 -0
- package/dist/core/pipeline/build-document.server.js +10 -7
- package/dist/core/pipeline/config-map/index.d.ts +9 -0
- package/dist/core/pipeline/config-map/index.js +16 -50
- package/dist/core/pipeline/hooks/process-document-fields.server.d.ts +3 -0
- package/dist/core/pipeline/hooks/process-document-fields.server.js +48 -12
- package/dist/core/pipeline/hooks/set-default-values.server.d.ts +1 -0
- package/dist/core/pipeline/hooks/set-default-values.server.js +1 -0
- package/dist/core/pipeline/persist/blocks/extract.server.js +1 -1
- package/dist/core/pipeline/persist/relations/extract.server.js +2 -0
- package/dist/core/pipeline/populate-relations.server.d.ts +27 -0
- package/dist/core/pipeline/populate-relations.server.js +42 -0
- package/dist/core/pipeline/run.server.d.ts +17 -6
- package/dist/core/pipeline/run.server.js +44 -30
- package/dist/core/plugins/cache/module.server.d.ts +1 -1
- package/dist/core/plugins/cache/module.server.js +5 -5
- package/dist/core/plugins/defaults/module.server.js +2 -2
- package/dist/core/plugins/defaults/types.d.ts +5 -3
- package/dist/core/plugins/sse/index.d.ts +1 -1
- package/dist/core/plugins/sse/index.server.d.ts +5 -6
- package/dist/core/plugins/sse/index.server.js +3 -2
- package/dist/core/plugins/sse/types.d.ts +5 -0
- package/dist/core/prototype/area/api.server.js +1 -2
- package/dist/core/prototype/area/definition.js +1 -10
- package/dist/core/prototype/area/definition.server.js +4 -5
- package/dist/core/prototype/area/hooks.server.js +3 -2
- package/dist/core/prototype/area/operations/find.js +2 -0
- package/dist/core/prototype/blank.d.ts +26 -0
- package/dist/core/prototype/blank.js +22 -0
- package/dist/core/prototype/collection/api.server.d.ts +29 -3
- package/dist/core/prototype/collection/api.server.js +47 -4
- package/dist/core/prototype/collection/definition.js +0 -3
- package/dist/core/prototype/collection/hooks/merge-with-blank.server.d.ts +5 -1
- package/dist/core/prototype/collection/hooks/merge-with-blank.server.js +8 -22
- package/dist/core/prototype/collection/hooks.server.js +11 -5
- package/dist/core/prototype/collection/nested/module.server.js +3 -1
- package/dist/core/prototype/collection/nested/tree.d.ts +12 -0
- package/dist/core/prototype/collection/nested/tree.js +42 -0
- package/dist/core/prototype/collection/operations/find-by-id.js +2 -0
- package/dist/core/prototype/collection/operations/find-by-ids.d.ts +19 -0
- package/dist/core/prototype/collection/operations/find-by-ids.js +54 -0
- package/dist/core/prototype/collection/operations/find.js +21 -27
- package/dist/core/prototype/collection/operations/update-slug-by-id.d.ts +20 -0
- package/dist/core/prototype/collection/operations/update-slug-by-id.js +53 -0
- package/dist/core/prototype/collection/rest/index.server.js +3 -1
- package/dist/core/prototype/collection/rest/update-slug-by-id.server.d.ts +2 -0
- package/dist/core/prototype/collection/rest/update-slug-by-id.server.js +20 -0
- package/dist/core/prototype/collection/thumbnail/find-thumbnail.d.ts +2 -1
- package/dist/core/prototype/collection/thumbnail/find-thumbnail.js +4 -27
- package/dist/core/prototype/collection/upload/directories/derive.js +3 -1
- package/dist/core/prototype/collection/upload/disk/delete.server.js +1 -2
- package/dist/core/prototype/define.js +2 -0
- package/dist/core/prototype/shared/metas/fields.js +2 -1
- package/dist/core/prototype/shared/title/find-title.d.ts +2 -1
- package/dist/core/prototype/shared/title/find-title.js +5 -28
- package/dist/core/prototype/shared/url/addresses.server.d.ts +26 -0
- package/dist/core/prototype/shared/url/addresses.server.js +119 -0
- package/dist/core/prototype/shared/url/doc-type.d.ts +6 -0
- package/dist/core/prototype/shared/url/doc-type.js +9 -0
- package/dist/core/prototype/shared/url/format.server.d.ts +27 -0
- package/dist/core/prototype/shared/url/format.server.js +38 -0
- package/dist/core/prototype/shared/url/hooks/create-paths.server.d.ts +2 -0
- package/dist/core/prototype/shared/url/hooks/create-paths.server.js +9 -0
- package/dist/core/prototype/shared/url/hooks/detach-paths.server.d.ts +5 -0
- package/dist/core/prototype/shared/url/hooks/detach-paths.server.js +18 -0
- package/dist/core/prototype/shared/url/hooks/index.server.d.ts +5 -1
- package/dist/core/prototype/shared/url/hooks/index.server.js +5 -1
- package/dist/core/prototype/shared/url/hooks/set-area-url.server.d.ts +2 -0
- package/dist/core/prototype/shared/url/hooks/set-area-url.server.js +8 -0
- package/dist/core/prototype/shared/url/hooks/set-live-url.server.d.ts +5 -0
- package/dist/core/prototype/shared/url/hooks/set-live-url.server.js +19 -0
- package/dist/core/prototype/shared/url/hooks/sync-paths.server.d.ts +7 -0
- package/dist/core/prototype/shared/url/hooks/sync-paths.server.js +37 -0
- package/dist/core/prototype/shared/url/refresh.server.d.ts +36 -0
- package/dist/core/prototype/shared/url/refresh.server.js +58 -0
- package/dist/core/prototype/shared/versions/configure.server.js +3 -0
- package/dist/core/routes/context.server.d.ts +2 -1
- package/dist/fields/blocks/component/AddBlockButton.svelte +48 -137
- package/dist/fields/blocks/component/Block.svelte +153 -117
- package/dist/fields/blocks/component/Block.svelte.d.ts +11 -5
- package/dist/fields/blocks/component/BlockActions.svelte +76 -26
- package/dist/fields/blocks/component/BlockActions.svelte.d.ts +3 -0
- package/dist/fields/blocks/component/Blocks.svelte +248 -91
- package/dist/fields/blocks/component/focus/BlocksFocus.svelte +680 -0
- package/dist/fields/blocks/component/focus/BlocksFocus.svelte.d.ts +7 -0
- package/dist/fields/blocks/component/focus/Layers.svelte +145 -0
- package/dist/fields/blocks/component/focus/Layers.svelte.d.ts +9 -0
- package/dist/fields/blocks/component/focus/LayersList.svelte +304 -0
- package/dist/fields/blocks/component/focus/LayersList.svelte.d.ts +10 -0
- package/dist/fields/blocks/component/focus/Palette.svelte +135 -0
- package/dist/fields/blocks/component/focus/Palette.svelte.d.ts +9 -0
- package/dist/fields/blocks/component/focus/RenderPlaceholder.svelte +77 -0
- package/dist/fields/blocks/component/focus/RenderPlaceholder.svelte.d.ts +10 -0
- package/dist/fields/blocks/component/focus/Renders.svelte +302 -0
- package/dist/fields/blocks/component/focus/Renders.svelte.d.ts +11 -0
- package/dist/fields/blocks/component/focus/Stage.svelte +190 -0
- package/dist/fields/blocks/component/focus/Stage.svelte.d.ts +8 -0
- package/dist/fields/blocks/component/focus/StagePlaceholder.svelte +69 -0
- package/dist/fields/blocks/component/focus/StagePlaceholder.svelte.d.ts +3 -0
- package/dist/fields/blocks/component/focus/focus.svelte.d.ts +140 -0
- package/dist/fields/blocks/component/focus/focus.svelte.js +424 -0
- package/dist/fields/blocks/component/picker/BlockPicker.svelte +88 -0
- package/dist/fields/blocks/component/picker/BlockPicker.svelte.d.ts +10 -0
- package/dist/fields/blocks/component/picker/BlockTile.svelte +121 -0
- package/dist/fields/blocks/component/picker/BlockTile.svelte.d.ts +12 -0
- package/dist/fields/blocks/index.d.ts +49 -7
- package/dist/fields/blocks/index.js +61 -12
- package/dist/fields/checkbox/component/Checkbox.svelte +11 -37
- package/dist/fields/checkbox/component/Checkbox.svelte.d.ts +1 -0
- package/dist/fields/combobox/component/ComboBox.svelte +37 -7
- package/dist/fields/combobox/component/combobox.css +26 -10
- package/dist/fields/date/component/Date.svelte +43 -12
- package/dist/fields/group/component/Group.svelte +110 -41
- package/dist/fields/group/index.d.ts +5 -1
- package/dist/fields/group/index.js +10 -2
- package/dist/fields/link/component/Link.svelte +184 -143
- package/dist/fields/link/component/RessourceInput.svelte +26 -24
- package/dist/fields/link/index.d.ts +1 -0
- package/dist/fields/link/module.server.js +2 -4
- package/dist/fields/number/component/Number.svelte +38 -20
- package/dist/fields/number/component/number.css +22 -20
- package/dist/fields/number/index.d.ts +1 -0
- package/dist/fields/radio/component/Radio.svelte +12 -0
- package/dist/fields/radio/index.js +1 -1
- package/dist/fields/relation/component/Relation.svelte +169 -40
- package/dist/fields/relation/component/RelationInline.svelte +258 -0
- package/dist/fields/relation/component/RelationInline.svelte.d.ts +26 -0
- package/dist/fields/relation/component/default/Default.svelte +210 -100
- package/dist/fields/relation/component/default/Default.svelte.d.ts +14 -1
- package/dist/fields/relation/component/types.d.ts +4 -0
- package/dist/fields/relation/component/upload/Browse.svelte +619 -88
- package/dist/fields/relation/component/upload/Browse.svelte.d.ts +10 -2
- package/dist/fields/relation/component/upload/Create.svelte +41 -0
- package/dist/fields/relation/component/upload/Create.svelte.d.ts +13 -0
- package/dist/fields/relation/component/upload/Upload.svelte +287 -101
- package/dist/fields/relation/component/upload/Upload.svelte.d.ts +6 -1
- package/dist/fields/relation/component/upload/upload.css +5 -81
- package/dist/fields/relation/module.server.js +7 -1
- package/dist/fields/relation/value.d.ts +25 -0
- package/dist/fields/relation/value.js +27 -0
- package/dist/fields/rich-text/component/RichText.svelte +12 -80
- package/dist/fields/rich-text/component/RichText.svelte.d.ts +1 -1
- package/dist/fields/rich-text/component/RichTextInline.svelte +28 -0
- package/dist/fields/rich-text/component/RichTextInline.svelte.d.ts +11 -0
- package/dist/fields/rich-text/component/bubble-menu/bubble-menu.css +4 -3
- package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte +3 -1
- package/dist/fields/rich-text/component/bubble-menu/icon-button/icon-button.css +2 -2
- package/dist/fields/rich-text/component/bubble-menu/node-selector/node-selector.css +7 -10
- package/dist/fields/rich-text/component/drag-handle/drag-handle.css +0 -2
- package/dist/fields/rich-text/component/styles/editor.css +111 -0
- package/dist/fields/rich-text/component/styles/field.css +71 -0
- package/dist/fields/rich-text/component/suggestion/suggestion.svelte +41 -56
- package/dist/fields/rich-text/core/build-editor-config.js +1 -1
- package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle-plugin.js +29 -3
- package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle.d.ts +1 -0
- package/dist/fields/rich-text/core/extensions/drag-handle/drag-handle.js +2 -1
- package/dist/fields/rich-text/core/features/fields/fields.css +2 -3
- package/dist/fields/rich-text/core/features/hr/hr.css +4 -4
- package/dist/fields/rich-text/core/features/link/component/link-selector.css +0 -4
- package/dist/fields/rich-text/core/features/link/component/link-selector.svelte +24 -8
- package/dist/fields/rich-text/core/features/resource/resource.svelte +20 -6
- package/dist/fields/rich-text/core/features/upload/upload.svelte +20 -8
- package/dist/fields/rich-text/core/rich-text-editor-core.svelte +103 -0
- package/dist/fields/rich-text/core/rich-text-editor-core.svelte.d.ts +15 -0
- package/dist/fields/select/component/Select.svelte +67 -28
- package/dist/fields/slug/component/Slug.svelte +26 -53
- package/dist/fields/slug/index.d.ts +1 -0
- package/dist/fields/slug/index.js +1 -1
- package/dist/fields/tabs/component/Tabs.svelte +28 -22
- package/dist/fields/tabs/index.d.ts +4 -1
- package/dist/fields/tabs/index.js +17 -5
- package/dist/fields/text/index.d.ts +1 -0
- package/dist/fields/textarea/component/TextArea.svelte +28 -13
- package/dist/fields/textarea/index.d.ts +1 -0
- package/dist/fields/time/component/Time.svelte +9 -2
- package/dist/fields/toggle/component/Toggle.svelte +8 -25
- package/dist/fields/toggle/component/Toggle.svelte.d.ts +1 -0
- package/dist/fields/toggle/index.d.ts +1 -0
- package/dist/fields/tree/component/AddItemButton.svelte +18 -5
- package/dist/fields/tree/component/Tree.svelte +48 -19
- package/dist/fields/tree/component/TreeBlock.svelte +318 -104
- package/dist/fields/tree/component/TreeBlockActions.svelte +71 -7
- package/dist/fields/tree/component/TreeBlockActions.svelte.d.ts +4 -0
- package/dist/fields/tree/component/props.d.ts +2 -1
- package/dist/fields/tree/index.d.ts +13 -1
- package/dist/fields/tree/index.js +35 -9
- package/dist/fields/types.d.ts +3 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3 -2
- package/dist/panel/components/Root.svelte +16 -44
- package/dist/panel/components/Root.svelte.d.ts +1 -1
- package/dist/panel/components/fields/Error.svelte +18 -3
- package/dist/panel/components/fields/FieldsPreview.svelte +30 -17
- package/dist/panel/components/fields/FieldsPreviewTrigger.svelte +25 -3
- package/dist/panel/components/fields/Hint.svelte +51 -8
- package/dist/panel/components/fields/Hint.svelte.d.ts +11 -0
- package/dist/panel/components/fields/Label.svelte +2 -0
- package/dist/panel/components/fields/LabelFor.svelte +7 -2
- package/dist/panel/components/fields/RenderFields.svelte +10 -3
- package/dist/panel/components/fields/fieldset.svelte.d.ts +4 -1
- package/dist/panel/components/fields/fieldset.svelte.js +9 -2
- package/dist/panel/components/fields/index.d.ts +1 -0
- package/dist/panel/components/fields/setting.css +82 -0
- package/dist/panel/components/sections/auth/AuthForm.svelte +25 -26
- package/dist/panel/components/sections/collection/Avatar.svelte +61 -0
- package/dist/panel/components/sections/collection/Avatar.svelte.d.ts +9 -0
- package/dist/panel/components/sections/collection/DocStatus.svelte +28 -0
- package/dist/panel/components/sections/collection/DocStatus.svelte.d.ts +7 -0
- package/dist/panel/components/sections/collection/Empty.svelte +3 -3
- package/dist/panel/components/sections/collection/StatusDot.svelte +7 -5
- package/dist/panel/components/sections/collection/When.svelte +33 -0
- package/dist/panel/components/sections/collection/When.svelte.d.ts +8 -0
- package/dist/panel/components/sections/collection/bulk-upload/BulkUploadDialog.svelte +65 -21
- package/dist/panel/components/sections/collection/bulk-upload/BulkUploadDialog.svelte.d.ts +3 -2
- package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte +45 -162
- package/dist/panel/components/sections/collection/bulk-upload/DropZone.svelte.d.ts +3 -2
- package/dist/panel/components/sections/collection/bulk-upload/FileDrop.svelte +151 -0
- package/dist/panel/components/sections/collection/bulk-upload/FileDrop.svelte.d.ts +17 -0
- package/dist/panel/components/sections/collection/bulk-upload/PageDrop.svelte +177 -0
- package/dist/panel/components/sections/collection/bulk-upload/PageDrop.svelte.d.ts +12 -0
- package/dist/panel/components/sections/collection/bulk-upload/UploadProgress.svelte +75 -0
- package/dist/panel/components/sections/collection/bulk-upload/UploadProgress.svelte.d.ts +8 -0
- package/dist/panel/components/sections/collection/folder/Folder.svelte +18 -3
- package/dist/panel/components/sections/collection/folder/FolderEdit.svelte +26 -18
- package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +98 -58
- package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte.d.ts +0 -1
- package/dist/panel/components/sections/collection/folder/Folders.svelte +60 -0
- package/dist/panel/components/sections/collection/folder/Folders.svelte.d.ts +7 -0
- package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte +31 -71
- package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte.d.ts +1 -0
- package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +5 -3
- package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +250 -37
- package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +2 -0
- package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +43 -18
- package/dist/panel/components/sections/collection/header/ButtonCreate.svelte.d.ts +6 -4
- package/dist/panel/components/sections/collection/header/DisplayMode.svelte +69 -58
- package/dist/panel/components/sections/collection/header/DisplayMode.svelte.d.ts +0 -1
- package/dist/panel/components/sections/collection/header/FilterMenu.svelte +60 -0
- package/dist/panel/components/sections/collection/header/FilterMenu.svelte.d.ts +14 -0
- package/dist/panel/components/sections/collection/header/SearchInput.svelte +17 -26
- package/dist/panel/components/sections/collection/header/SelectUI.svelte +19 -34
- package/dist/panel/components/sections/collection/list/CollectionList.svelte +99 -68
- package/dist/panel/components/sections/collection/list/columns.d.ts +21 -0
- package/dist/panel/components/sections/collection/list/columns.js +23 -0
- package/dist/panel/components/sections/collection/list/header/Header.svelte +99 -51
- package/dist/panel/components/sections/collection/list/row/Row.svelte +165 -82
- package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +4 -0
- package/dist/panel/components/sections/collection/tree/CollectionTree.svelte +92 -44
- package/dist/panel/components/sections/collection/tree/CollectionTree.svelte.d.ts +1 -0
- package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte +139 -43
- package/dist/panel/components/sections/collection/tree/CollectionTreeNode.svelte.d.ts +2 -0
- package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +1 -1
- package/dist/panel/components/sections/commands/CommandButton.svelte +99 -0
- package/dist/panel/components/sections/commands/CommandButton.svelte.d.ts +10 -0
- package/dist/panel/components/sections/commands/CommandPalette.svelte +275 -0
- package/dist/panel/components/sections/commands/CommandPalette.svelte.d.ts +8 -0
- package/dist/panel/components/sections/commands/Commands.svelte +18 -0
- package/dist/panel/components/sections/commands/Commands.svelte.d.ts +9 -0
- package/dist/panel/components/sections/document/AuthAPIKeyDialog.svelte +23 -7
- package/dist/panel/components/sections/document/AuthFooter.svelte +31 -12
- package/dist/panel/components/sections/document/AutoSaveBanner.svelte +24 -7
- package/dist/panel/components/sections/document/ButtonSave.svelte +32 -21
- package/dist/panel/components/sections/document/ButtonSave.svelte.d.ts +5 -5
- package/dist/panel/components/sections/document/ButtonStatus.svelte +68 -20
- package/dist/panel/components/sections/document/ChangeSlugDialog.svelte +199 -0
- package/dist/panel/components/sections/document/ChangeSlugDialog.svelte.d.ts +10 -0
- package/dist/panel/components/sections/document/CurrentlyEdited.svelte +2 -2
- package/dist/panel/components/sections/document/Document.svelte +96 -65
- package/dist/panel/components/sections/document/DocumentChildren.svelte +175 -0
- package/dist/panel/components/sections/document/DocumentChildren.svelte.d.ts +8 -0
- package/dist/panel/components/sections/document/DocumentUrl.svelte +119 -0
- package/dist/panel/components/sections/document/DocumentUrl.svelte.d.ts +9 -0
- package/dist/panel/components/sections/document/Header.svelte +171 -94
- package/dist/panel/components/sections/document/Settings.svelte +255 -110
- package/dist/panel/components/sections/document/Settings.svelte.d.ts +0 -1
- package/dist/panel/components/sections/document/Versions.svelte +5 -3
- package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +112 -53
- package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte.d.ts +2 -2
- package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte +74 -41
- package/dist/panel/components/sections/document/upload-header/drop-zone/DropZone.svelte.d.ts +1 -1
- package/dist/panel/components/sections/live/LiveEdit.svelte +2 -2
- package/dist/panel/components/sections/live/LiveFloatingUI.svelte +30 -11
- package/dist/panel/components/sections/live/live-edit-panel.css +2 -2
- package/dist/panel/components/sections/page-layout/Page.svelte +13 -1
- package/dist/panel/components/ui/breadcrumb/BreadCrumb.svelte +55 -27
- package/dist/panel/components/ui/button/button.svelte +81 -54
- package/dist/panel/components/ui/button/index.d.ts +7 -3
- package/dist/panel/components/ui/button/index.js +2 -2
- package/dist/panel/components/ui/calendar/calendar.css +27 -27
- package/dist/panel/components/ui/calendar/calendar.svelte.d.ts +1 -1
- package/dist/panel/components/ui/card/card-description.svelte +1 -1
- package/dist/panel/components/ui/card/card.svelte +21 -4
- package/dist/panel/components/ui/card-document/card-document.svelte +24 -12
- package/dist/panel/components/ui/card-resource/card-resource.svelte +26 -8
- package/dist/panel/components/ui/checkbox/checkbox.css +8 -10
- package/dist/panel/components/ui/command/command-dialog.css +28 -4
- package/dist/panel/components/ui/command/command-dialog.svelte +4 -1
- package/dist/panel/components/ui/command/command-dialog.svelte.d.ts +2 -0
- package/dist/panel/components/ui/command/command-empty.css +1 -1
- package/dist/panel/components/ui/command/command-group.css +3 -3
- package/dist/panel/components/ui/command/command-input-select.svelte +3 -3
- package/dist/panel/components/ui/command/command-input.svelte +38 -14
- package/dist/panel/components/ui/command/command-input.svelte.d.ts +6 -1
- package/dist/panel/components/ui/command/command-item.css +2 -2
- package/dist/panel/components/ui/command/command-list.css +1 -1
- package/dist/panel/components/ui/command/command-separator.css +1 -1
- package/dist/panel/components/ui/context-menu/context-menu-item.css +2 -2
- package/dist/panel/components/ui/context-menu/context-menu.css +6 -7
- package/dist/panel/components/ui/dialog/dialog-content.css +8 -10
- package/dist/panel/components/ui/dialog/dialog-content.svelte +19 -0
- package/dist/panel/components/ui/dialog/dialog-description.css +1 -1
- package/dist/panel/components/ui/dialog/dialog-footer.svelte +5 -1
- package/dist/panel/components/ui/dialog/dialog-overlay.css +1 -1
- package/dist/panel/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +19 -5
- package/dist/panel/components/ui/dropdown-menu/dropdown-menu-content.css +6 -4
- package/dist/panel/components/ui/dropdown-menu/dropdown-menu-item.css +1 -1
- package/dist/panel/components/ui/dropdown-menu/dropdown-menu-radio-item.css +1 -1
- package/dist/panel/components/ui/dropdown-menu/dropdown-menu-separator.css +1 -1
- package/dist/panel/components/ui/input/input.svelte +57 -31
- package/dist/panel/components/ui/kbd/Kbd.svelte +90 -0
- package/dist/panel/components/ui/kbd/Kbd.svelte.d.ts +11 -0
- package/dist/panel/components/ui/kbd/index.d.ts +1 -0
- package/dist/panel/components/ui/kbd/index.js +1 -0
- package/dist/panel/components/ui/label/label.css +5 -3
- package/dist/panel/components/ui/language-switcher/LanguageSwitcher.svelte +27 -15
- package/dist/panel/components/ui/nav/Nav.svelte +180 -110
- package/dist/panel/components/ui/nav/Nav.svelte.d.ts +0 -2
- package/dist/panel/components/ui/nav/NavGroup.svelte +87 -73
- package/dist/panel/components/ui/nav/NavItemButton.svelte +69 -29
- package/dist/panel/components/ui/nav/UserButton.svelte +132 -71
- package/dist/panel/components/ui/page-header/PageHeader.svelte +140 -42
- package/dist/panel/components/ui/page-header/PageHeader.svelte.d.ts +8 -1
- package/dist/panel/components/ui/popover/popover-content.css +4 -3
- package/dist/panel/components/ui/radio-group/radio-group.css +4 -6
- package/dist/panel/components/ui/radio-row-group/radio-row-group.css +19 -7
- package/dist/panel/components/ui/scroll-area/scroll-area.css +2 -2
- package/dist/panel/components/ui/separator/separator.svelte +1 -1
- package/dist/panel/components/ui/sheet/index.d.ts +4 -4
- package/dist/panel/components/ui/sheet/index.js +5 -5
- package/dist/panel/components/ui/sheet/sheet.css +50 -11
- package/dist/panel/components/ui/sonner/sonner.css +11 -8
- package/dist/panel/components/ui/switch/switch.css +13 -18
- package/dist/panel/components/ui/tabs/tabs.css +44 -35
- package/dist/panel/components/ui/tag/tag.svelte +20 -6
- package/dist/panel/components/ui/tooltip/tooltip-content.svelte +14 -4
- package/dist/panel/components/ui/tree/tree-rows.css +146 -0
- package/dist/panel/context/blocks-ops.d.ts +78 -0
- package/dist/panel/context/blocks-ops.js +170 -0
- package/dist/panel/context/collection.svelte.d.ts +28 -0
- package/dist/panel/context/collection.svelte.js +120 -65
- package/dist/panel/context/commands.svelte.d.ts +80 -0
- package/dist/panel/context/commands.svelte.js +108 -0
- package/dist/panel/context/documentForm.svelte.d.ts +34 -2
- package/dist/panel/context/documentForm.svelte.js +105 -102
- package/dist/panel/context/live.svelte.js +2 -73
- package/dist/panel/context/nav.svelte.d.ts +23 -0
- package/dist/panel/context/nav.svelte.js +56 -0
- package/dist/panel/fonts/Geist-VariableFont_wght.ttf +0 -0
- package/dist/panel/fonts/GeistMono-VariableFont_wght.ttf +0 -0
- package/dist/panel/index.d.ts +7 -1
- package/dist/panel/index.js +10 -1
- package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +16 -1
- package/dist/panel/pages/collection/CollectionPage.svelte +236 -61
- package/dist/panel/pages/collection/load.server.js +1 -1
- package/dist/panel/pages/dashboard/Dashboard.svelte +135 -90
- package/dist/panel/pages/dashboard/DashboardCard.svelte +109 -0
- package/dist/panel/pages/dashboard/DashboardCard.svelte.d.ts +14 -0
- package/dist/panel/pages/dashboard/DashboardCollection.svelte +180 -57
- package/dist/panel/pages/dashboard/DashboardCollection.svelte.d.ts +1 -0
- package/dist/panel/pages/dashboard/DashboardRow.svelte +93 -0
- package/dist/panel/pages/dashboard/DashboardRow.svelte.d.ts +16 -0
- package/dist/panel/pages/dashboard/load.server.js +49 -25
- package/dist/panel/pages/dashboard/time.d.ts +19 -0
- package/dist/panel/pages/dashboard/time.js +29 -0
- package/dist/panel/pages/dashboard/types.d.ts +9 -2
- package/dist/panel/pages/live/Live.svelte +53 -50
- package/dist/panel/style/font.css +21 -32
- package/dist/panel/style/index.css +191 -122
- package/dist/panel/style/mixins/index.css +14 -0
- package/dist/panel/style/palette.css +35 -26
- package/dist/panel/style/postcss/size-function.d.ts +4 -0
- package/dist/panel/style/postcss/size-function.js +24 -0
- package/dist/panel/style/radius.css +4 -5
- package/dist/panel/style/scheme.css +111 -0
- package/dist/panel/style/size.css +3 -0
- package/dist/panel/util/Sortable.js +9 -4
- package/dist/panel/util/keys.d.ts +24 -0
- package/dist/panel/util/keys.js +63 -0
- package/dist/panel/util/populate.d.ts +8 -0
- package/dist/panel/util/populate.js +49 -0
- package/dist/panel/util/time.d.ts +12 -0
- package/dist/panel/util/time.js +35 -0
- package/dist/panel/util/upload-file.d.ts +106 -0
- package/dist/panel/util/upload-file.js +165 -0
- package/dist/types.d.ts +1 -0
- package/dist/util/index.d.ts +7 -10
- package/dist/util/index.js +7 -8
- package/dist/util/object.d.ts +10 -0
- package/dist/util/object.js +22 -1
- package/dist/util/string.d.ts +17 -0
- package/dist/util/string.js +23 -0
- package/package.json +1 -3
- package/dist/core/pipeline/config-map/build-tree-map.d.ts +0 -4
- package/dist/core/pipeline/config-map/build-tree-map.js +0 -30
- package/dist/core/prototype/doc.d.ts +0 -31
- package/dist/core/prototype/doc.js +0 -118
- package/dist/core/prototype/shared/url/augment.d.ts +0 -13
- package/dist/core/prototype/shared/url/augment.js +0 -11
- package/dist/core/prototype/shared/url/hooks/populate-url.server.d.ts +0 -4
- package/dist/core/prototype/shared/url/hooks/populate-url.server.js +0 -120
- package/dist/fields/rich-text/component/styles/rich-text.css +0 -183
- package/dist/panel/components/sections/collection/header/Header.svelte +0 -17
- package/dist/panel/components/sections/collection/header/Header.svelte.d.ts +0 -3
- package/dist/panel/components/sections/collection/header/Separator.svelte +0 -8
- package/dist/panel/components/sections/collection/header/Separator.svelte.d.ts +0 -26
- package/dist/panel/components/sections/collection/tree/util.d.ts +0 -12
- package/dist/panel/components/sections/collection/tree/util.js +0 -22
- package/dist/panel/fonts/ChivoMono-Italic-VariableFont_wght.ttf +0 -0
- package/dist/panel/fonts/ChivoMono-VariableFont_wght.ttf +0 -0
- package/dist/panel/fonts/Inter-VariableFont_slnt,wght.ttf +0 -0
- package/dist/panel/fonts/Lora-Italic-VariableFont_wght.ttf +0 -0
- package/dist/panel/fonts/Lora-VariableFont_wght.ttf +0 -0
- package/dist/panel/style/shadow.css +0 -10
- package/dist/util/path.d.ts +0 -16
- package/dist/util/path.js +0 -19
|
@@ -15,3 +15,46 @@ export function getPackageInfoByKey(key) {
|
|
|
15
15
|
return '';
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
const BUN_PREFIX = 'bun --bun ';
|
|
19
|
+
/** Below it, JavaScriptCore's slow lookbehind regexes (Vite's wasm filters) double dev boot. */
|
|
20
|
+
export const MIN_BUN = '1.4';
|
|
21
|
+
const VITE_SCRIPTS = ['dev', 'build', 'preview'];
|
|
22
|
+
function readPackageJson() {
|
|
23
|
+
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
24
|
+
const raw = fs.readFileSync(packageJsonPath, 'utf-8');
|
|
25
|
+
// Keep the file's own indentation (sv writes tabs)
|
|
26
|
+
const indent = raw.match(/^[ \t]+/m)?.[0] ?? ' ';
|
|
27
|
+
return { path: packageJsonPath, json: JSON.parse(raw), indent };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Prefixes the app's vite scripts with `bun --bun`, so vite (and `bun:sqlite`) run on Bun
|
|
31
|
+
* rather than on the Node its bin's shebang asks for. Returns whether it wrote anything.
|
|
32
|
+
*/
|
|
33
|
+
export function setBunScripts() {
|
|
34
|
+
const { path: packageJsonPath, json, indent } = readPackageJson();
|
|
35
|
+
let changed = false;
|
|
36
|
+
for (const key of VITE_SCRIPTS) {
|
|
37
|
+
const script = json.scripts?.[key];
|
|
38
|
+
if (typeof script === 'string' && script.startsWith('vite ')) {
|
|
39
|
+
json.scripts[key] = BUN_PREFIX + script;
|
|
40
|
+
changed = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (!json.engines?.bun) {
|
|
44
|
+
json.engines = { ...json.engines, bun: `>=${MIN_BUN}` };
|
|
45
|
+
changed = true;
|
|
46
|
+
}
|
|
47
|
+
if (changed)
|
|
48
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(json, null, indent) + '\n');
|
|
49
|
+
return changed;
|
|
50
|
+
}
|
|
51
|
+
/** Whether `rime init --bun` set this app up — its vite scripts are what `rime build` reads back. */
|
|
52
|
+
export function usesBunScripts() {
|
|
53
|
+
try {
|
|
54
|
+
const { json } = readPackageJson();
|
|
55
|
+
return VITE_SCRIPTS.some((key) => json.scripts?.[key]?.startsWith(BUN_PREFIX));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -3,8 +3,9 @@ import type { BuiltArea, BuiltCollection } from '../../../config/types.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* What each config's generated doc type gains beyond its own fields.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* `UploadDoc`, adds its `sizes` member and filters out the fields its image sizes collide with
|
|
6
|
+
* Three contributors and they are the whole list: `versions` adds `versionId`, `upload` extends
|
|
7
|
+
* `UploadDoc`, adds its `sizes` member and filters out the fields its image sizes collide with,
|
|
8
|
+
* `url` adds the address.
|
|
8
9
|
* The `fields` predicates are **ANDed** — each says which fields it still wants generated, and
|
|
9
10
|
* a field has to survive both.
|
|
10
11
|
*
|
|
@@ -2,11 +2,14 @@ import { isVersioned } from '../../../prototype/shared/versions/enabled.js';
|
|
|
2
2
|
import { versionsDocType } from '../../../prototype/shared/versions/doc-type.js';
|
|
3
3
|
import { isUpload } from '../../../prototype/collection/upload/enabled.js';
|
|
4
4
|
import { uploadDocType } from '../../../prototype/collection/upload/doc-type.js';
|
|
5
|
+
import { hasUrl } from '../../../prototype/shared/url/enabled.js';
|
|
6
|
+
import { urlDocType } from '../../../prototype/shared/url/doc-type.js';
|
|
5
7
|
/**
|
|
6
8
|
* What each config's generated doc type gains beyond its own fields.
|
|
7
9
|
*
|
|
8
|
-
*
|
|
9
|
-
* `UploadDoc`, adds its `sizes` member and filters out the fields its image sizes collide with
|
|
10
|
+
* Three contributors and they are the whole list: `versions` adds `versionId`, `upload` extends
|
|
11
|
+
* `UploadDoc`, adds its `sizes` member and filters out the fields its image sizes collide with,
|
|
12
|
+
* `url` adds the address.
|
|
10
13
|
* The `fields` predicates are **ANDed** — each says which fields it still wants generated, and
|
|
11
14
|
* a field has to survive both.
|
|
12
15
|
*
|
|
@@ -14,7 +17,11 @@ import { uploadDocType } from '../../../prototype/collection/upload/doc-type.js'
|
|
|
14
17
|
export const contributionsFor = (config) =>
|
|
15
18
|
// Upload before versions: the prototype's feature list has upload first, and the members land
|
|
16
19
|
// in that order in the generated type.
|
|
17
|
-
[
|
|
20
|
+
[
|
|
21
|
+
isUpload(config) ? uploadDocType(config) : null,
|
|
22
|
+
isVersioned(config) ? versionsDocType() : null,
|
|
23
|
+
hasUrl(config) ? urlDocType(config.type) : null
|
|
24
|
+
]
|
|
18
25
|
.filter((c) => c !== null)
|
|
19
26
|
.reduce((current, contribution) => ({
|
|
20
27
|
extends: [...current.extends, ...(contribution.extends ?? [])],
|
|
@@ -149,16 +149,17 @@ export function rime() {
|
|
|
149
149
|
},
|
|
150
150
|
config() {
|
|
151
151
|
return {
|
|
152
|
+
// `bun:sqlite` only exists at runtime under Bun (adapterSqlite driver 'bun').
|
|
152
153
|
ssr: {
|
|
153
|
-
external: ['sharp']
|
|
154
|
+
external: ['sharp', 'bun:sqlite']
|
|
154
155
|
},
|
|
155
156
|
optimizeDeps: {
|
|
156
|
-
exclude: ['sharp'],
|
|
157
|
+
exclude: ['sharp', 'bun:sqlite'],
|
|
157
158
|
include: ['@lucide/svelte']
|
|
158
159
|
},
|
|
159
160
|
build: {
|
|
160
161
|
rollupOptions: {
|
|
161
|
-
external: ['sharp']
|
|
162
|
+
external: ['sharp', 'bun:sqlite']
|
|
162
163
|
},
|
|
163
164
|
target: 'es2022'
|
|
164
165
|
},
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { FieldBuilder } from './builders/field-builder.js';
|
|
2
|
+
import type { Field } from '../../fields/types.js';
|
|
3
|
+
import type { Dic } from '../../util/types.js';
|
|
4
|
+
import type { RequestEvent } from '@sveltejs/kit';
|
|
5
|
+
/** What a field is handed to build its blank value. The event is a default's, and boot has none. */
|
|
6
|
+
export type BlankContext = {
|
|
7
|
+
event?: RequestEvent;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* A list of fields as a blank object, each field contributing its own members.
|
|
11
|
+
*
|
|
12
|
+
* A branch opens an object, a leaf holds its default, and a repeater holds its own — `#` in a
|
|
13
|
+
* segment means only a document can name the children.
|
|
14
|
+
*
|
|
15
|
+
* ```
|
|
16
|
+
* group('attributes').fields(text('title')) -> { attributes: { title: null } }
|
|
17
|
+
* tabs(tab('meta').fields(text('title'))) -> { meta: { title: null } }
|
|
18
|
+
* blocks('layout', [...]) -> { layout: [] }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare const blankFields: (fields: FieldBuilder<Field>[], context?: BlankContext) => Dic;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { isFormField } from './util.js';
|
|
2
|
+
/**
|
|
3
|
+
* A list of fields as a blank object, each field contributing its own members.
|
|
4
|
+
*
|
|
5
|
+
* A branch opens an object, a leaf holds its default, and a repeater holds its own — `#` in a
|
|
6
|
+
* segment means only a document can name the children.
|
|
7
|
+
*
|
|
8
|
+
* ```
|
|
9
|
+
* group('attributes').fields(text('title')) -> { attributes: { title: null } }
|
|
10
|
+
* tabs(tab('meta').fields(text('title'))) -> { meta: { title: null } }
|
|
11
|
+
* blocks('layout', [...]) -> { layout: [] }
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export const blankFields = (fields, context = {}) => {
|
|
15
|
+
const doc = {};
|
|
16
|
+
for (const field of fields) {
|
|
17
|
+
try {
|
|
18
|
+
const nodes = field.use.nodes();
|
|
19
|
+
if (!nodes.length || nodes.some((node) => node.segment.includes('#'))) {
|
|
20
|
+
if (isFormField(field))
|
|
21
|
+
doc[field.name] = field.use.defaultValue(context) ?? null;
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
// Its name opens an object, or it has none and its branches land on this one.
|
|
25
|
+
const target = field.name ? (doc[field.name] = {}) : doc;
|
|
26
|
+
for (const node of nodes) {
|
|
27
|
+
const bucket = node.segment ? (target[node.segment] = {}) : target;
|
|
28
|
+
Object.assign(bucket, blankFields(node.fields, context));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
console.error(`Building the blank value of ${field.type} field "${field.name}" failed.`);
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return doc;
|
|
37
|
+
};
|
|
@@ -23,6 +23,53 @@ export type FieldUse = {
|
|
|
23
23
|
accessCreate(...args: Parameters<FieldAccess>): boolean;
|
|
24
24
|
accessUpdate(...args: Parameters<FieldAccess>): boolean;
|
|
25
25
|
generateType(): string;
|
|
26
|
+
/** Every branch this field can produce, from the config alone. */
|
|
27
|
+
nodes(): FieldNode[];
|
|
28
|
+
/** The branches this particular value has. */
|
|
29
|
+
nodesFor(value: unknown): ValueNode[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* One branch below a field: what it adds to the path, and the fields under it.
|
|
33
|
+
*
|
|
34
|
+
* ```
|
|
35
|
+
* group('attributes') -> { segment: '', fields: [ text('title') ] }
|
|
36
|
+
* tabs(tab('meta')) -> { segment: 'meta', fields: [ text('title') ] }
|
|
37
|
+
* blocks('layout') -> { segment: '#:hero', fields: [ text('title') ] }
|
|
38
|
+
* tree('nav') -> { segment: '#', repeatVia: '_children', fields: [ text('label') ] }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export type FieldNode = {
|
|
42
|
+
/**
|
|
43
|
+
* The segment this branch contributes below the field's own name. `''` when it contributes
|
|
44
|
+
* nothing — Group, whose own name is already the segment. `#` stands for an index that only a
|
|
45
|
+
* document can supply.
|
|
46
|
+
*/
|
|
47
|
+
segment: string;
|
|
48
|
+
/**
|
|
49
|
+
* When set, the branch nests into itself through this segment, so `nav.0`, `nav.0._children.1`
|
|
50
|
+
* and deeper are all this same branch. Read when resolving a path; a value walk flattens the
|
|
51
|
+
* recursion itself.
|
|
52
|
+
*/
|
|
53
|
+
repeatVia?: string;
|
|
54
|
+
fields: FieldBuilder[];
|
|
55
|
+
/**
|
|
56
|
+
* The branch is stored as rows of its own, in a child table of the owner, not as its columns.
|
|
57
|
+
* `kind` is the table's marker on disk; `name` is what follows it.
|
|
58
|
+
*
|
|
59
|
+
* ```
|
|
60
|
+
* blocks('layout', [block('hero')]) { kind: 'blocks', name: 'hero' } pages__$blocks_hero
|
|
61
|
+
* tree('nav') { kind: 'tree', name: 'nav' } pages__$tree_nav
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
storage?: NodeStorage;
|
|
65
|
+
};
|
|
66
|
+
export type NodeStorage = {
|
|
67
|
+
kind: 'blocks' | 'tree';
|
|
68
|
+
name: string;
|
|
69
|
+
};
|
|
70
|
+
/** A branch a real value has: a concrete segment, no `#`, and the data under it. */
|
|
71
|
+
export type ValueNode = FieldNode & {
|
|
72
|
+
value: unknown;
|
|
26
73
|
};
|
|
27
74
|
export declare class FieldBuilder<T extends Field = Field> {
|
|
28
75
|
field: T;
|
|
@@ -68,4 +115,10 @@ export declare class FieldBuilder<T extends Field = Field> {
|
|
|
68
115
|
* compile error), while staying a real overridable method so every concrete field can
|
|
69
116
|
* provide its own, unlike a private `#field` which can't be polymorphically overridden. */
|
|
70
117
|
protected generateType(): string;
|
|
118
|
+
/** The branches below this field, from the config alone. A leaf has none.
|
|
119
|
+
* `protected` and reached through `.use.nodes()`, same as `generateType`. */
|
|
120
|
+
protected nodes(): FieldNode[];
|
|
121
|
+
/** The branches below this field for one value. A leaf has none.
|
|
122
|
+
* `protected` and reached through `.use.nodesFor()`, same as `generateType`. */
|
|
123
|
+
protected nodesFor(_value: unknown): ValueNode[];
|
|
71
124
|
}
|
|
@@ -56,7 +56,9 @@ export class FieldBuilder {
|
|
|
56
56
|
accessCreate: (..._args) => true,
|
|
57
57
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
58
58
|
accessUpdate: (..._args) => true,
|
|
59
|
-
generateType: () => this.generateType()
|
|
59
|
+
generateType: () => this.generateType(),
|
|
60
|
+
nodes: () => this.nodes(),
|
|
61
|
+
nodesFor: (value) => this.nodesFor(value)
|
|
60
62
|
};
|
|
61
63
|
}
|
|
62
64
|
get component() {
|
|
@@ -72,4 +74,15 @@ export class FieldBuilder {
|
|
|
72
74
|
generateType() {
|
|
73
75
|
return '';
|
|
74
76
|
}
|
|
77
|
+
/** The branches below this field, from the config alone. A leaf has none.
|
|
78
|
+
* `protected` and reached through `.use.nodes()`, same as `generateType`. */
|
|
79
|
+
nodes() {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
/** The branches below this field for one value. A leaf has none.
|
|
83
|
+
* `protected` and reached through `.use.nodesFor()`, same as `generateType`. */
|
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
85
|
+
nodesFor(_value) {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
75
88
|
}
|
|
@@ -67,6 +67,14 @@ export declare class FormFieldBuilder<T extends FormField = FormField> extends F
|
|
|
67
67
|
* `_parent` on a nested collection is the typical case: the site tree must not fork per version.
|
|
68
68
|
*/
|
|
69
69
|
$root(): this;
|
|
70
|
+
/**
|
|
71
|
+
* Indexes the field's column, for a field a list is filtered or sorted by.
|
|
72
|
+
*
|
|
73
|
+
* ```ts
|
|
74
|
+
* text('sku').$index() // where[sku][equals]=… reads the index, not every row
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
$index(): this;
|
|
70
78
|
/** `label`/`localized`/`root`/`required` are the only properties that need
|
|
71
79
|
* anything beyond a plain `this.field` read (a fallback default, or a
|
|
72
80
|
* boolean coercion) — everything else a concrete field type adds
|
|
@@ -69,6 +69,17 @@ export class FormFieldBuilder extends FieldBuilder {
|
|
|
69
69
|
this.field.root = true;
|
|
70
70
|
return this;
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Indexes the field's column, for a field a list is filtered or sorted by.
|
|
74
|
+
*
|
|
75
|
+
* ```ts
|
|
76
|
+
* text('sku').$index() // where[sku][equals]=… reads the index, not every row
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
$index() {
|
|
80
|
+
this.field.index = true;
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
72
83
|
/** `label`/`localized`/`root`/`required` are the only properties that need
|
|
73
84
|
* anything beyond a plain `this.field` read (a fallback default, or a
|
|
74
85
|
* boolean coercion) — everything else a concrete field type adds
|
|
@@ -148,7 +159,9 @@ export class FormFieldBuilder extends FieldBuilder {
|
|
|
148
159
|
const value = this.field.defaultValue;
|
|
149
160
|
return typeof value === 'function' ? value(context) : value;
|
|
150
161
|
},
|
|
151
|
-
generateType: () => this._references?.resolve ? this.resolvedReferenceType() : this.generateType()
|
|
162
|
+
generateType: () => this._references?.resolve ? this.resolvedReferenceType() : this.generateType(),
|
|
163
|
+
nodes: () => this.nodes(),
|
|
164
|
+
nodesFor: (value) => this.nodesFor(value)
|
|
152
165
|
};
|
|
153
166
|
}
|
|
154
167
|
/** The document a resolved reference reads as, whatever the field's own type says. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Field, FormField, SeparatorField } from '../../fields/types.js';
|
|
1
|
+
import type { Field, FieldAccess, FormField, SeparatorField } from '../../fields/types.js';
|
|
2
2
|
import type { Dic } from '../../util/types.js';
|
|
3
3
|
import type { FormFieldBuilder } from './builders/form-field-builder.js';
|
|
4
4
|
import type { FieldBuilder } from './builders/index.js';
|
|
@@ -35,7 +35,7 @@ export declare const isLiveField: (field: Field) => boolean | undefined;
|
|
|
35
35
|
* ]}
|
|
36
36
|
* ]);
|
|
37
37
|
*/
|
|
38
|
-
export declare const emptyValuesFromFieldConfig:
|
|
38
|
+
export declare const emptyValuesFromFieldConfig: (fields: FieldBuilder[]) => Dic;
|
|
39
39
|
/**
|
|
40
40
|
* Converts a path with numeric indices to a regex pattern
|
|
41
41
|
* Numbers between dots or between dot and colon are converted to \d+
|
|
@@ -85,6 +85,8 @@ export declare const baseFieldNames: (config: {
|
|
|
85
85
|
fields: FieldBuilder[];
|
|
86
86
|
}) => string[];
|
|
87
87
|
export type ResolvedReference = {
|
|
88
|
+
/** The field itself, for whoever must ask it something — who may read it, for one. */
|
|
89
|
+
field: FormFieldBuilder<FormField>;
|
|
88
90
|
/** The document path: `meta.owner`. */
|
|
89
91
|
path: string;
|
|
90
92
|
/** The column it is stored in: `meta__owner`. */
|
|
@@ -109,6 +111,11 @@ export type ResolvedReference = {
|
|
|
109
111
|
* Walks tabs and groups, whose columns sit on the owner's row. Blocks and tree rows are their
|
|
110
112
|
* own tables and are not walked.
|
|
111
113
|
*/
|
|
114
|
+
/**
|
|
115
|
+
* The resolved references a reader may see, by path — what a read asks the adapter to join. A
|
|
116
|
+
* reference the pipeline would drop for this reader is not joined for nothing.
|
|
117
|
+
*/
|
|
118
|
+
export declare const readableReferences: (fields: FieldBuilder[], user: Parameters<FieldAccess>[0]) => string[];
|
|
112
119
|
export declare const resolvedReferencesOf: (fields: FieldBuilder[], parentPath?: string) => ResolvedReference[];
|
|
113
120
|
/**
|
|
114
121
|
* Splits a write into the half that belongs on the base row and the half that belongs on the
|