rimecms 0.27.6 → 0.28.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.
- package/dist/adapter-sqlite/{area.js → area.server.js} +2 -2
- package/dist/adapter-sqlite/{blocks.d.ts → blocks.server.d.ts} +1 -1
- package/dist/adapter-sqlite/{blocks.js → blocks.server.js} +1 -1
- package/dist/adapter-sqlite/{collection.js → collection.server.js} +17 -8
- package/dist/adapter-sqlite/generate-schema/write.server.js +2 -2
- package/dist/adapter-sqlite/index.server.d.ts +8 -8
- package/dist/adapter-sqlite/index.server.js +7 -7
- package/dist/adapter-sqlite/{orderBy.js → orderBy.server.js} +1 -1
- package/dist/adapter-sqlite/{relations.d.ts → relations.server.d.ts} +1 -1
- package/dist/adapter-sqlite/{relations.js → relations.server.js} +1 -1
- package/dist/adapter-sqlite/{transform.js → transform.server.js} +2 -3
- package/dist/adapter-sqlite/{tree.d.ts → tree.server.d.ts} +1 -1
- package/dist/adapter-sqlite/{tree.js → tree.server.js} +1 -1
- package/dist/adapter-sqlite/url.server.d.ts +1 -1
- package/dist/core/areas/local-api.server.d.ts +1 -1
- package/dist/core/areas/local-api.server.js +1 -0
- package/dist/core/collections/api/delete.server.js +1 -1
- package/dist/core/collections/api/get.server.js +1 -1
- package/dist/core/collections/api/getById.server.js +3 -1
- package/dist/core/collections/config/augment-panel.d.ts +13 -0
- package/dist/core/collections/config/augment-panel.js +19 -0
- package/dist/core/collections/config/augment-upload.server.d.ts +1 -0
- package/dist/core/collections/config/augment-upload.server.js +1 -0
- package/dist/core/collections/config/builder.js +3 -1
- package/dist/core/collections/config/builder.server.js +3 -1
- package/dist/core/collections/local-api.server.js +3 -1
- package/dist/core/collections/operations/findById.js +3 -1
- package/dist/core/collections/upload/hooks/convert-base64.server.js +1 -1
- package/dist/core/config/auth/better-auth.server.d.ts +3 -3
- package/dist/core/config/auth/better-auth.server.js +1 -1
- package/dist/core/config/client/augment-panel.d.ts +4 -4
- package/dist/core/config/client/build-config.d.ts +5 -5
- package/dist/core/config/server/augment-directories.server.js +3 -3
- package/dist/core/config/server/augment-staff.server.d.ts +1 -1
- package/dist/core/config/server/augment-staff.server.js +1 -1
- package/dist/core/config/server/build-config.server.d.ts +12 -12
- package/dist/core/config/server/build-config.server.js +1 -1
- package/dist/core/config/server/{validate.js → validate.server.js} +61 -29
- package/dist/core/config/server/{write.js → write.server.js} +1 -1
- package/dist/core/config/shared/augment-icons.d.ts +1 -2
- package/dist/core/config/shared/get-staff-collection.d.ts +1 -1
- package/dist/core/config/shared/upload-directories.js +1 -1
- package/dist/core/config/types.d.ts +20 -8
- package/dist/core/dev/cli/build/templates.d.ts +1 -1
- package/dist/core/dev/cli/build/templates.js +5 -2
- package/dist/core/dev/cli/generate/{index.js → index.server.js} +13 -9
- package/dist/core/dev/cli/index.js +11 -6
- package/dist/core/dev/cli/init/{index.js → index.server.js} +68 -25
- package/dist/core/dev/cli/init/{packageManagerUtil.js → package-manager-util.server.js} +5 -5
- package/dist/core/dev/generate/routes/{area.d.ts → area.server.d.ts} +1 -1
- package/dist/core/dev/generate/routes/{area.js → area.server.js} +1 -1
- package/dist/core/dev/generate/routes/{collection.d.ts → collection.server.d.ts} +1 -1
- package/dist/core/dev/generate/routes/{collection.js → collection.server.js} +1 -1
- package/dist/core/dev/generate/routes/{common.d.ts → common.server.d.ts} +1 -1
- package/dist/core/dev/generate/routes/{common.js → common.server.js} +3 -3
- package/dist/core/dev/generate/routes/{index.js → index.server.js} +5 -5
- package/dist/core/dev/generate/routes/{util.js → util.server.js} +1 -1
- package/dist/core/dev/generate/types/{index.js → index.server.js} +1 -1
- package/dist/core/dev/vite/{index.js → index.server.js} +8 -4
- package/dist/core/fields/util.d.ts +13 -0
- package/dist/core/fields/util.js +77 -4
- package/dist/core/i18n/en/common.d.ts +1 -0
- package/dist/core/i18n/en/common.js +1 -0
- package/dist/core/i18n/fr/common.d.ts +1 -0
- package/dist/core/i18n/fr/common.js +1 -0
- package/dist/core/operations/hooks/before-read/populate-url.server.js +10 -2
- package/dist/core/operations/hooks/before-upsert/handle-new-version.server.js +2 -2
- package/dist/core/operations/relations/diff.server.d.ts +1 -1
- package/dist/core/operations/relations/extract.server.d.ts +1 -1
- package/dist/core/rime.server.d.ts +6 -6
- package/dist/core/rime.server.js +15 -14
- package/dist/fields/blocks/component/Block.svelte +13 -19
- package/dist/fields/blocks/component/Blocks.svelte +6 -13
- package/dist/fields/group/component/Group.svelte +6 -13
- package/dist/fields/number/component/number.css +2 -0
- package/dist/fields/relation/component/default/Default.svelte +1 -7
- package/dist/fields/relation/component/upload/upload.css +1 -10
- package/dist/fields/relation/index.d.ts +21 -6
- package/dist/fields/relation/index.js +41 -11
- package/dist/fields/rich-text/component/RichText.svelte +4 -4
- package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte +6 -6
- package/dist/fields/rich-text/component/bubble-menu/bubble-menu.svelte.d.ts +2 -0
- package/dist/fields/rich-text/component/drag-handle/drag-handle.css +1 -0
- package/dist/fields/rich-text/component/styles/rich-text.css +0 -7
- package/dist/fields/rich-text/core/features/resource/resource.svelte +2 -9
- package/dist/fields/rich-text/core/features/upload/upload.svelte +5 -12
- package/dist/fields/rich-text/core/render-rich-text.svelte +5 -3
- package/dist/fields/rich-text/index.d.ts +1 -1
- package/dist/fields/select/component/Select.svelte +5 -11
- package/dist/fields/tabs/index.d.ts +1 -0
- package/dist/fields/tabs/index.js +3 -0
- package/dist/fields/textarea/component/TextArea.svelte +5 -13
- package/dist/fields/tree/component/TreeBlock.svelte +12 -18
- package/dist/fields/types.d.ts +3 -2
- package/dist/live.d.ts +2 -1
- package/dist/live.js +2 -1
- package/dist/panel/components/fields/Error.svelte +1 -7
- package/dist/panel/components/sections/collection/Empty.svelte +1 -0
- package/dist/panel/components/sections/collection/folder/Folder.svelte +7 -16
- package/dist/panel/components/sections/collection/folder/FolderWithActions.svelte +1 -1
- package/dist/panel/components/sections/collection/grid/CollectionGrid.svelte +22 -12
- package/dist/panel/components/sections/collection/grid/create-directory-dialog/CreateDirectoryDialog.svelte +4 -5
- package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte +41 -33
- package/dist/panel/components/sections/collection/grid/grid-item/GridItem.svelte.d.ts +4 -0
- package/dist/panel/components/sections/collection/header/ButtonCreate.svelte +14 -16
- package/dist/panel/components/sections/collection/header/ButtonCreate.svelte.d.ts +2 -0
- package/dist/panel/components/sections/collection/header/DisplayMode.svelte +10 -10
- package/dist/panel/components/sections/collection/header/SearchInput.svelte +2 -8
- package/dist/panel/components/sections/collection/list/CollectionList.svelte +32 -3
- package/dist/panel/components/sections/collection/list/header/Header.svelte +3 -9
- package/dist/panel/components/sections/collection/list/row/Row.svelte +34 -24
- package/dist/panel/components/sections/collection/list/row/Row.svelte.d.ts +9 -0
- package/dist/panel/components/sections/collection/upload-thumb-cell/UploadThumbCell.svelte +11 -1
- package/dist/panel/components/sections/document/ButtonStatus.svelte +3 -11
- package/dist/panel/components/sections/document/Document.svelte +22 -41
- package/dist/panel/components/sections/document/Document.svelte.d.ts +0 -1
- package/dist/panel/components/sections/document/upload-header/UploadHeader.svelte +11 -21
- package/dist/panel/components/sections/live/LiveEdit.svelte +114 -0
- package/dist/panel/components/sections/live/LiveEdit.svelte.d.ts +32 -0
- package/dist/panel/components/sections/live/LiveEditPanel.svelte +53 -0
- package/dist/panel/components/sections/live/LiveEditPanel.svelte.d.ts +11 -0
- package/dist/panel/components/sections/live/LiveFloatingUI.svelte +106 -0
- package/dist/panel/components/sections/live/LiveFloatingUI.svelte.d.ts +12 -0
- package/dist/panel/components/sections/live/Provider.svelte +4 -4
- package/dist/panel/components/sections/live/Provider.svelte.d.ts +5 -3
- package/dist/panel/components/sections/live/live-edit-panel.css +12 -0
- package/dist/panel/components/ui/breadcrumb/BreadCrumb.svelte +2 -9
- package/dist/panel/components/ui/button/button.svelte +35 -54
- package/dist/panel/components/ui/calendar/calendar.css +11 -0
- package/dist/panel/components/ui/card-document/card-document.svelte +21 -14
- package/dist/panel/components/ui/card-resource/card-resource.svelte +8 -14
- package/dist/panel/components/ui/checkbox/checkbox.svelte +1 -1
- package/dist/panel/components/ui/command/command-group.css +1 -0
- package/dist/panel/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +1 -7
- package/dist/panel/components/ui/input/input.svelte +13 -23
- package/dist/panel/components/ui/label/label.css +0 -1
- package/dist/panel/components/ui/nav/NavItemButton.svelte +2 -8
- package/dist/panel/components/ui/page-header/PageHeader.svelte +6 -13
- package/dist/panel/components/ui/radio-group/radio-group.css +2 -0
- package/dist/panel/components/ui/scroll-area/scroll-area.css +0 -4
- package/dist/panel/components/ui/sheet/sheet.css +0 -16
- package/dist/panel/components/ui/tabs/tabs.css +7 -0
- package/dist/panel/context/collection.svelte.d.ts +0 -4
- package/dist/panel/context/collection.svelte.js +0 -3
- package/dist/panel/context/documentForm.svelte.js +1 -0
- package/dist/panel/context/live.svelte.d.ts +8 -20
- package/dist/panel/context/live.svelte.js +65 -35
- package/dist/panel/context/livePanel.svelte.d.ts +11 -0
- package/dist/panel/context/livePanel.svelte.js +8 -0
- package/dist/panel/pages/auth/forgot-password/ForgotPassword.svelte +1 -7
- package/dist/panel/pages/collection/Collection.svelte +3 -1
- package/dist/panel/pages/dashboard/Dashboard.svelte +52 -28
- package/dist/panel/pages/dashboard/DashboardCollection.svelte +91 -0
- package/dist/panel/pages/dashboard/DashboardCollection.svelte.d.ts +9 -0
- package/dist/panel/pages/dashboard/load.server.js +30 -14
- package/dist/panel/pages/dashboard/types.d.ts +1 -0
- package/dist/panel/pages/live/Live.svelte +244 -67
- package/dist/panel/pages/live/Live.svelte.d.ts +9 -1
- package/dist/panel/pages/live/load.server.js +14 -1
- package/dist/panel/style/index.css +562 -8
- package/dist/panel/style/mixins/index.css +1 -3
- package/dist/panel/util/upload.d.ts +1 -1
- package/dist/util/object.js +3 -0
- package/package.json +12 -10
- package/dist/panel/components/sections/document/FloatingUI.svelte +0 -81
- package/dist/panel/components/sections/document/FloatingUI.svelte.d.ts +0 -8
- package/dist/panel/components/sections/live/SidePanel.svelte +0 -61
- package/dist/panel/components/sections/live/SidePanel.svelte.d.ts +0 -14
- package/dist/panel/components/sections/live/side-panel.css +0 -15
- /package/dist/adapter-sqlite/{area.d.ts → area.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{collection.d.ts → collection.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{orderBy.d.ts → orderBy.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{transform.d.ts → transform.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{types.d.ts → types.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{types.js → types.server.js} +0 -0
- /package/dist/adapter-sqlite/{util.d.ts → util.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{util.js → util.server.js} +0 -0
- /package/dist/adapter-sqlite/{where.d.ts → where.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{where.js → where.server.js} +0 -0
- /package/dist/adapter-sqlite/{with.d.ts → with.server.d.ts} +0 -0
- /package/dist/adapter-sqlite/{with.js → with.server.js} +0 -0
- /package/dist/core/collections/upload/util/{converter.d.ts → converter.server.d.ts} +0 -0
- /package/dist/core/collections/upload/util/{converter.js → converter.server.js} +0 -0
- /package/dist/core/config/auth/{better-auth-hooks.d.ts → better-auth-hooks.server.d.ts} +0 -0
- /package/dist/core/config/auth/{better-auth-hooks.js → better-auth-hooks.server.js} +0 -0
- /package/dist/core/config/server/{augment-cors.d.ts → augment-cors.server.d.ts} +0 -0
- /package/dist/core/config/server/{augment-cors.js → augment-cors.server.js} +0 -0
- /package/dist/core/config/server/{validate.d.ts → validate.server.d.ts} +0 -0
- /package/dist/core/config/server/{write.d.ts → write.server.d.ts} +0 -0
- /package/dist/core/dev/cache/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/cache/{index.js → index.server.js} +0 -0
- /package/dist/core/dev/cli/clear/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/cli/clear/{index.js → index.server.js} +0 -0
- /package/dist/core/dev/cli/generate/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/cli/init/{getPackageName.d.ts → get-package-info.server.d.ts} +0 -0
- /package/dist/core/dev/cli/init/{getPackageName.js → get-package-info.server.js} +0 -0
- /package/dist/core/dev/cli/init/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/cli/init/{packageManagerUtil.d.ts → package-manager-util.server.d.ts} +0 -0
- /package/dist/core/dev/generate/routes/{custom-css.d.ts → custom-css.server.d.ts} +0 -0
- /package/dist/core/dev/generate/routes/{custom-css.js → custom-css.server.js} +0 -0
- /package/dist/core/dev/generate/routes/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/generate/routes/{util.d.ts → util.server.d.ts} +0 -0
- /package/dist/core/dev/generate/sanitize/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/generate/sanitize/{index.js → index.server.js} +0 -0
- /package/dist/core/dev/generate/types/{index.d.ts → index.server.d.ts} +0 -0
- /package/dist/core/dev/vite/{index.d.ts → index.server.d.ts} +0 -0
|
@@ -25,19 +25,13 @@
|
|
|
25
25
|
<input bind:this={ref} class="rz-input" bind:value {...restProps} />
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
|
-
<style
|
|
29
|
-
|
|
30
|
-
/* Font */
|
|
31
|
-
|
|
32
|
-
/**************************************/
|
|
33
|
-
|
|
34
|
-
:root {
|
|
28
|
+
<style>:root {
|
|
35
29
|
--rz-input-border-color: light-dark(hsl(var(--rz-gray-14)), hsl(var(--rz-gray-6) / 0.6));
|
|
36
30
|
--rz-input-padding-x: var(--rz-size-3);
|
|
37
31
|
--rz-input-padding-y: var(--rz-size-1);
|
|
38
32
|
}
|
|
39
33
|
|
|
40
|
-
.rz-input {
|
|
34
|
+
.rz-input {
|
|
41
35
|
border: 1px solid var(--rz-input-border-color);
|
|
42
36
|
background-color: hsl(var(--rz-input-bg));
|
|
43
37
|
display: flex;
|
|
@@ -48,11 +42,11 @@
|
|
|
48
42
|
padding: var(--rz-input-padding-y) var(--rz-input-padding-x);
|
|
49
43
|
}
|
|
50
44
|
|
|
51
|
-
.rz-input__icon + .rz-input {
|
|
45
|
+
.rz-input__icon + .rz-input {
|
|
52
46
|
padding-left: calc(var(--rz-input-padding-x) + var(--rz-size-6));
|
|
53
47
|
}
|
|
54
48
|
|
|
55
|
-
input.rz-input:is(:-webkit-autofill, :-webkit-autofill) {
|
|
49
|
+
input.rz-input:is(:-webkit-autofill, :-webkit-autofill) {
|
|
56
50
|
--color: color-mix(in lch, hsl(var(--rz-input-bg)), hsl(var(--rz-color-spot)) 12%);
|
|
57
51
|
background-color: var(--color) !important;
|
|
58
52
|
box-shadow: 0 0 0 1000px var(--color) inset !important;
|
|
@@ -60,23 +54,21 @@ input.rz-input:is(:-webkit-autofill, :-webkit-autofill) {
|
|
|
60
54
|
-webkit-text-fill-color: hsl(var(--rz-color-fg) / 1) !important;
|
|
61
55
|
}
|
|
62
56
|
|
|
63
|
-
input.rz-input:is(:-webkit-autofill, :autofill) {
|
|
57
|
+
input.rz-input:is(:-webkit-autofill, :autofill) {
|
|
64
58
|
--color: color-mix(in lch, hsl(var(--rz-input-bg)), hsl(var(--rz-color-spot)) 12%);
|
|
65
59
|
background-color: var(--color) !important;
|
|
66
60
|
box-shadow: 0 0 0 1000px var(--color) inset !important;
|
|
67
61
|
color: hsl(var(--rz-color-fg) / 1) !important;
|
|
68
62
|
-webkit-text-fill-color: hsl(var(--rz-color-fg) / 1) !important;
|
|
69
63
|
}
|
|
70
|
-
|
|
71
|
-
input.rz-input:is(:-webkit-autofill, :-webkit-autofill):focus {
|
|
64
|
+
input.rz-input:is(:-webkit-autofill, :-webkit-autofill):focus {
|
|
72
65
|
--color: color-mix(in lch, hsl(var(--rz-input-bg)), hsl(var(--rz-color-spot)) 24%);
|
|
73
66
|
background-color: var(--color) !important;
|
|
74
67
|
box-shadow: 0 0 0 1000px var(--color) inset !important;
|
|
75
68
|
color: hsl(var(--rz-color-fg) / 1) !important;
|
|
76
69
|
-webkit-text-fill-color: hsl(var(--rz-color-fg) / 1) !important;
|
|
77
70
|
}
|
|
78
|
-
|
|
79
|
-
input.rz-input:is(:-webkit-autofill, :autofill):focus {
|
|
71
|
+
input.rz-input:is(:-webkit-autofill, :autofill):focus {
|
|
80
72
|
--color: color-mix(in lch, hsl(var(--rz-input-bg)), hsl(var(--rz-color-spot)) 24%);
|
|
81
73
|
background-color: var(--color) !important;
|
|
82
74
|
box-shadow: 0 0 0 1000px var(--color) inset !important;
|
|
@@ -84,34 +76,32 @@ input.rz-input:is(:-webkit-autofill, :autofill):focus {
|
|
|
84
76
|
-webkit-text-fill-color: hsl(var(--rz-color-fg) / 1) !important;
|
|
85
77
|
}
|
|
86
78
|
|
|
87
|
-
.rz-input:disabled {
|
|
79
|
+
.rz-input:disabled {
|
|
88
80
|
opacity: 0.5;
|
|
89
81
|
cursor: not-allowed;
|
|
90
82
|
}
|
|
91
|
-
|
|
92
|
-
.rz-input::-moz-placeholder {
|
|
83
|
+
.rz-input::-moz-placeholder {
|
|
93
84
|
color: hsl(var(--rz-color-fg) / 0.5);
|
|
94
85
|
}
|
|
95
|
-
|
|
96
|
-
.rz-input::placeholder {
|
|
86
|
+
.rz-input::placeholder {
|
|
97
87
|
color: hsl(var(--rz-color-fg) / 0.5);
|
|
98
88
|
}
|
|
99
89
|
|
|
100
|
-
.rz-input:focus-visible {
|
|
90
|
+
.rz-input:focus-visible {
|
|
101
91
|
outline: none;
|
|
102
92
|
box-shadow:
|
|
103
93
|
0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
|
|
104
94
|
0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
|
|
105
95
|
}
|
|
106
96
|
|
|
107
|
-
.rz-input[data-error] {
|
|
97
|
+
.rz-input[data-error] {
|
|
108
98
|
outline: none;
|
|
109
99
|
box-shadow:
|
|
110
100
|
0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
|
|
111
101
|
0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-alert) / var(--rz-ring-opacity, 1));
|
|
112
102
|
}
|
|
113
103
|
|
|
114
|
-
.rz-input-wrapper {
|
|
104
|
+
.rz-input-wrapper {
|
|
115
105
|
position: relative;
|
|
116
106
|
width: 100%;
|
|
117
107
|
|
|
@@ -25,13 +25,7 @@
|
|
|
25
25
|
{@render children?.()}
|
|
26
26
|
</a>
|
|
27
27
|
|
|
28
|
-
<style
|
|
29
|
-
|
|
30
|
-
/* Font */
|
|
31
|
-
|
|
32
|
-
/**************************************/
|
|
33
|
-
|
|
34
|
-
.rz-button-nav {
|
|
28
|
+
<style>.rz-button-nav {
|
|
35
29
|
position: relative;
|
|
36
30
|
display: inline-flex;
|
|
37
31
|
align-items: center;
|
|
@@ -51,7 +45,7 @@
|
|
|
51
45
|
}
|
|
52
46
|
}
|
|
53
47
|
|
|
54
|
-
.rz-button-nav--active {
|
|
48
|
+
.rz-button-nav--active {
|
|
55
49
|
text-decoration: underline;
|
|
56
50
|
position: relative;
|
|
57
51
|
}
|
|
@@ -55,13 +55,7 @@
|
|
|
55
55
|
{/if}
|
|
56
56
|
{/if}
|
|
57
57
|
|
|
58
|
-
<style
|
|
59
|
-
|
|
60
|
-
/* Font */
|
|
61
|
-
|
|
62
|
-
/**************************************/
|
|
63
|
-
|
|
64
|
-
.rz-page-header__row {
|
|
58
|
+
<style>.rz-page-header__row {
|
|
65
59
|
display: flex;
|
|
66
60
|
justify-content: space-between;
|
|
67
61
|
gap: var(--rz-size-4);
|
|
@@ -69,11 +63,11 @@
|
|
|
69
63
|
padding-inline: var(--rz-page-gutter, var(--rz-size-6));
|
|
70
64
|
}
|
|
71
65
|
|
|
72
|
-
.rz-page-header__row:first-child {
|
|
66
|
+
.rz-page-header__row:first-child {
|
|
73
67
|
height: var(--rz-size-16);
|
|
74
68
|
}
|
|
75
69
|
|
|
76
|
-
h1 {
|
|
70
|
+
h1 {
|
|
77
71
|
overflow: hidden;
|
|
78
72
|
display: -webkit-box;
|
|
79
73
|
-webkit-box-orient: vertical;
|
|
@@ -83,7 +77,7 @@ h1 {
|
|
|
83
77
|
font-weight: 600;
|
|
84
78
|
}
|
|
85
79
|
|
|
86
|
-
.rz-page-header__bottom-left,
|
|
80
|
+
.rz-page-header__bottom-left,
|
|
87
81
|
.rz-page-header__bottom-left > div,
|
|
88
82
|
.rz-page-header__bottom-right {
|
|
89
83
|
display: flex;
|
|
@@ -91,7 +85,7 @@ h1 {
|
|
|
91
85
|
gap: var(--rz-size-2);
|
|
92
86
|
}
|
|
93
87
|
|
|
94
|
-
.rz-page-header__row-bottom {
|
|
88
|
+
.rz-page-header__row-bottom {
|
|
95
89
|
position: sticky;
|
|
96
90
|
top: 0;
|
|
97
91
|
z-index: 100;
|
|
@@ -101,8 +95,7 @@ h1 {
|
|
|
101
95
|
border-bottom: var(--rz-border);
|
|
102
96
|
padding-bottom: var(--rz-size-2);
|
|
103
97
|
}
|
|
104
|
-
|
|
105
|
-
.rz-page-header__row-top {
|
|
98
|
+
.rz-page-header__row-top {
|
|
106
99
|
height: var(--rz-size-14);
|
|
107
100
|
background: hsl(var(--rz-color-bg));
|
|
108
101
|
margin-bottom: var(--rz-size-16);
|
|
@@ -22,11 +22,13 @@
|
|
|
22
22
|
flex-shrink: 0;
|
|
23
23
|
cursor: pointer;
|
|
24
24
|
}
|
|
25
|
+
|
|
25
26
|
.rz-radio-group-item:hover {
|
|
26
27
|
--border-color: var(--rz-gray-2);
|
|
27
28
|
--border-opacity: 0.3;
|
|
28
29
|
border-width: 6px;
|
|
29
30
|
}
|
|
31
|
+
|
|
30
32
|
.rz-radio-group-item[data-state='checked'] {
|
|
31
33
|
border: 6px solid hsl(var(--rz-color-spot));
|
|
32
34
|
background-color: hsl(var(--rz-gray-19));
|
|
@@ -6,11 +6,9 @@
|
|
|
6
6
|
height: 100%;
|
|
7
7
|
width: 100%;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
9
|
/**************************************/
|
|
11
10
|
/* ScrollBar
|
|
12
11
|
/**************************************/
|
|
13
|
-
|
|
14
12
|
.rz-scroll-area-scroll-bar {
|
|
15
13
|
display: flex;
|
|
16
14
|
touch-action: none;
|
|
@@ -30,11 +28,9 @@
|
|
|
30
28
|
height: 100%;
|
|
31
29
|
border-left: 1px solid transparent;
|
|
32
30
|
}
|
|
33
|
-
|
|
34
31
|
.rz-scroll-area-scroll-bar--vertical .rz-scroll-area-scroll-bar__thumb {
|
|
35
32
|
flex: 1;
|
|
36
33
|
}
|
|
37
|
-
|
|
38
34
|
.rz-scroll-area-scroll-bar__thumb {
|
|
39
35
|
background-color: hsl(var(--rz-color-border));
|
|
40
36
|
position: relative;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**************************************/
|
|
2
2
|
/* Content
|
|
3
3
|
/**************************************/
|
|
4
|
-
|
|
5
4
|
.rz-sheet-content {
|
|
6
5
|
--ease: cubic-bezier(0.445, 0.05, 0.55, 0.95);
|
|
7
6
|
position: fixed;
|
|
@@ -29,7 +28,6 @@
|
|
|
29
28
|
width: 50%;
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
|
-
|
|
33
31
|
@keyframes exit {
|
|
34
32
|
from {
|
|
35
33
|
opacity: 1;
|
|
@@ -40,7 +38,6 @@
|
|
|
40
38
|
transform: translate3d(100%, 0, 0);
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
|
-
|
|
44
41
|
@keyframes enter {
|
|
45
42
|
from {
|
|
46
43
|
opacity: 0;
|
|
@@ -51,14 +48,12 @@
|
|
|
51
48
|
transform: translate3d(0%, 0, 0);
|
|
52
49
|
}
|
|
53
50
|
}
|
|
54
|
-
|
|
55
51
|
.rz-sheet-content__close {
|
|
56
52
|
position: absolute;
|
|
57
53
|
z-index: 1010;
|
|
58
54
|
right: var(--rz-size-4);
|
|
59
55
|
top: var(--rz-size-4);
|
|
60
56
|
}
|
|
61
|
-
|
|
62
57
|
.rz-sheet-content__close:focus-visible {
|
|
63
58
|
outline: none;
|
|
64
59
|
/* --rz-ring-offset: 2px; */
|
|
@@ -67,7 +62,6 @@
|
|
|
67
62
|
0 0 0 var(--rz-ring-offset, 0px) hsl(var(--rz-ring-offset-bg, var(--rz-gray-6)) / 1),
|
|
68
63
|
0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
|
|
69
64
|
}
|
|
70
|
-
|
|
71
65
|
.rz-sheet-content--right {
|
|
72
66
|
height: 100%;
|
|
73
67
|
right: 0;
|
|
@@ -75,20 +69,16 @@
|
|
|
75
69
|
bottom: 0;
|
|
76
70
|
border-left: var(--rz-border);
|
|
77
71
|
}
|
|
78
|
-
|
|
79
72
|
/**************************************/
|
|
80
73
|
/* Description
|
|
81
74
|
/**************************************/
|
|
82
|
-
|
|
83
75
|
.rz-sheet-description {
|
|
84
76
|
color: hsl(var(--rz-color-fg) / 0.7);
|
|
85
77
|
font-size: var(--rz-text-sm);
|
|
86
78
|
}
|
|
87
|
-
|
|
88
79
|
/**************************************/
|
|
89
80
|
/* Footer
|
|
90
81
|
/**************************************/
|
|
91
|
-
|
|
92
82
|
.rz-sheet-footer {
|
|
93
83
|
display: flex;
|
|
94
84
|
flex-direction: column-reverse;
|
|
@@ -100,11 +90,9 @@
|
|
|
100
90
|
flex-direction: row;
|
|
101
91
|
}
|
|
102
92
|
}
|
|
103
|
-
|
|
104
93
|
/**************************************/
|
|
105
94
|
/* Header
|
|
106
95
|
/**************************************/
|
|
107
|
-
|
|
108
96
|
.rz-sheet-header {
|
|
109
97
|
display: flex;
|
|
110
98
|
flex-direction: column;
|
|
@@ -118,11 +106,9 @@
|
|
|
118
106
|
text-align: left;
|
|
119
107
|
}
|
|
120
108
|
}
|
|
121
|
-
|
|
122
109
|
/**************************************/
|
|
123
110
|
/* Overlay
|
|
124
111
|
/**************************************/
|
|
125
|
-
|
|
126
112
|
.rz-sheet-overlay {
|
|
127
113
|
background-color: var(--rz-overlay-color);
|
|
128
114
|
position: fixed;
|
|
@@ -130,11 +116,9 @@
|
|
|
130
116
|
z-index: 100;
|
|
131
117
|
backdrop-filter: blur(var(--rz-overlay-blur));
|
|
132
118
|
}
|
|
133
|
-
|
|
134
119
|
/**************************************/
|
|
135
120
|
/* Title
|
|
136
121
|
/**************************************/
|
|
137
|
-
|
|
138
122
|
.rz-sheet-title {
|
|
139
123
|
font-size: var(--rz-text-lg);
|
|
140
124
|
font-variation-settings: 'wght' 600;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
/**************************************/
|
|
7
|
+
|
|
7
8
|
/* Trigger
|
|
8
9
|
/**************************************/
|
|
9
10
|
|
|
@@ -32,9 +33,11 @@
|
|
|
32
33
|
.rz-tabs-trigger[data-state='active']:not([data-error='true']) {
|
|
33
34
|
color: hsl(var(--rz-color-fg));
|
|
34
35
|
}
|
|
36
|
+
|
|
35
37
|
.rz-tabs-trigger[data-error='true'] {
|
|
36
38
|
color: hsl(var(--rz-color-alert) / 1);
|
|
37
39
|
}
|
|
40
|
+
|
|
38
41
|
.rz-tabs-trigger[data-state='inactive'] {
|
|
39
42
|
opacity: 0.8;
|
|
40
43
|
}
|
|
@@ -46,18 +49,21 @@
|
|
|
46
49
|
0 0 0 calc(var(--rz-ring-offset, 0px) + 1px) hsl(var(--rz-color-ring) / var(--rz-ring-opacity, 1));
|
|
47
50
|
outline: none;
|
|
48
51
|
}
|
|
52
|
+
|
|
49
53
|
.rz-tabs-trigger:disabled {
|
|
50
54
|
pointer-events: none;
|
|
51
55
|
opacity: 0.5;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
/**************************************/
|
|
59
|
+
|
|
55
60
|
/* Content
|
|
56
61
|
/**************************************/
|
|
57
62
|
|
|
58
63
|
.rz-tabs-content {
|
|
59
64
|
margin-top: var(--rz-size-2);
|
|
60
65
|
}
|
|
66
|
+
|
|
61
67
|
.rz-tabs-content:focus-visible {
|
|
62
68
|
outline: none;
|
|
63
69
|
border-radius: var(--rz-radius-sm);
|
|
@@ -69,6 +75,7 @@
|
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
/**************************************/
|
|
78
|
+
|
|
72
79
|
/* List
|
|
73
80
|
/**************************************/
|
|
74
81
|
|
|
@@ -43,8 +43,6 @@ export declare function setCollectionContext(key: string, args: Args): {
|
|
|
43
43
|
currentPath: `root${string}`;
|
|
44
44
|
parentDirectory: Directory | null;
|
|
45
45
|
};
|
|
46
|
-
/****************************************************/
|
|
47
|
-
/****************************************************/
|
|
48
46
|
addDoc: (doc: GenericDoc) => void;
|
|
49
47
|
updateDoc: (incomingDoc: GenericDoc) => void;
|
|
50
48
|
deleteDoc: (id: string) => Promise<void>;
|
|
@@ -98,8 +96,6 @@ export declare function getCollectionContext(key?: string): {
|
|
|
98
96
|
currentPath: `root${string}`;
|
|
99
97
|
parentDirectory: Directory | null;
|
|
100
98
|
};
|
|
101
|
-
/****************************************************/
|
|
102
|
-
/****************************************************/
|
|
103
99
|
addDoc: (doc: GenericDoc) => void;
|
|
104
100
|
updateDoc: (incomingDoc: GenericDoc) => void;
|
|
105
101
|
deleteDoc: (id: string) => Promise<void>;
|
|
@@ -410,9 +410,6 @@ function createCollectionStore(args) {
|
|
|
410
410
|
set upload(value) {
|
|
411
411
|
upload = value;
|
|
412
412
|
},
|
|
413
|
-
/****************************************************/
|
|
414
|
-
// Docs
|
|
415
|
-
/****************************************************/
|
|
416
413
|
addDoc,
|
|
417
414
|
updateDoc,
|
|
418
415
|
deleteDoc,
|
|
@@ -41,6 +41,7 @@ function createDocumentFormState({ initial, config, readOnly, key, onNestedDocum
|
|
|
41
41
|
const hasError = $derived(errors.length);
|
|
42
42
|
const canSubmit = $derived(!isDisabled && !readOnly && Object.keys(changes).length > 0 && !hasError);
|
|
43
43
|
const nestedLevel = initLevel();
|
|
44
|
+
/** onDataChange is only used to trigger action on live-edit so determine if this is a live-edit form */
|
|
44
45
|
const isLiveEdit = !!onDataChange;
|
|
45
46
|
const locale = getLocaleContext();
|
|
46
47
|
const titleContext = getTitleContext();
|
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
import type { GenericDoc } from '../../core/types/doc.js';
|
|
2
2
|
import type { BeforeNavigate } from '@sveltejs/kit';
|
|
3
|
-
/**
|
|
4
|
-
* Live Editing Flow:
|
|
5
|
-
* 1. Live.svelte sends handshake message to iframe
|
|
6
|
-
* 2. Live context in iframe receives it, enables itself
|
|
7
|
-
* 3. Live context sends handshake response with its href
|
|
8
|
-
* 4. Live.svelte receives the handshake response
|
|
9
|
-
* 5. Live.svelte compares iframe href to expected iframeSrc
|
|
10
|
-
* 6. If they match, sync is established and user can edit
|
|
11
|
-
* 7. When navigating, iframe context sends message to parent with new location + ?live=1
|
|
12
|
-
* 8. Live.svelte navigates to new location, maintaining live edit mode
|
|
13
|
-
*/
|
|
14
|
-
type OnDataCallback = (args: {
|
|
15
|
-
path: string;
|
|
16
|
-
value: any;
|
|
17
|
-
}) => void;
|
|
18
3
|
/**
|
|
19
4
|
* Creates and sets the live context for the current component
|
|
20
5
|
*/
|
|
21
6
|
export declare function setLiveContext<T extends GenericDoc = GenericDoc>(href: string): {
|
|
22
7
|
beforeNavigate: (params: BeforeNavigate) => void;
|
|
23
|
-
onMessage: (e:
|
|
24
|
-
|
|
8
|
+
onMessage: (e: MessageEvent) => Promise<void>;
|
|
9
|
+
readonly documentUpdateURI: string;
|
|
10
|
+
getPanelValue: (update: string, path: string) => any;
|
|
11
|
+
readonly activePanelKey: string | null;
|
|
25
12
|
readonly data: {
|
|
26
13
|
doc: T_1 | undefined;
|
|
27
14
|
};
|
|
@@ -33,12 +20,13 @@ export declare function setLiveContext<T extends GenericDoc = GenericDoc>(href:
|
|
|
33
20
|
*/
|
|
34
21
|
export declare function getLiveContext<T extends GenericDoc = GenericDoc>(): {
|
|
35
22
|
beforeNavigate: (params: BeforeNavigate) => void;
|
|
36
|
-
onMessage: (e:
|
|
37
|
-
|
|
23
|
+
onMessage: (e: MessageEvent) => Promise<void>;
|
|
24
|
+
readonly documentUpdateURI: string;
|
|
25
|
+
getPanelValue: (update: string, path: string) => any;
|
|
26
|
+
readonly activePanelKey: string | null;
|
|
38
27
|
readonly data: {
|
|
39
28
|
doc: T_1 | undefined;
|
|
40
29
|
};
|
|
41
30
|
doc: T | undefined;
|
|
42
31
|
readonly enabled: boolean;
|
|
43
32
|
};
|
|
44
|
-
export {};
|
|
@@ -1,20 +1,26 @@
|
|
|
1
|
+
import { page } from '$app/state';
|
|
2
|
+
import { env } from '$env/dynamic/public';
|
|
1
3
|
import { apiUrl } from '../../core/api/index.js';
|
|
4
|
+
import { PARAMS } from '../../core/constant.js';
|
|
2
5
|
import { toKebabCase } from '../../util/string.js';
|
|
3
6
|
import { getContext, setContext } from 'svelte';
|
|
4
|
-
import { isObjectLiteral, setValueAtPath } from '../../util/object.js';
|
|
7
|
+
import { getValueAtPath, isObjectLiteral, setValueAtPath } from '../../util/object.js';
|
|
5
8
|
const LIVE_KEY = Symbol('rime.live');
|
|
6
9
|
function createStore(href) {
|
|
7
10
|
let enabled = $state(false);
|
|
8
11
|
let doc = $state();
|
|
9
|
-
const
|
|
10
|
-
let
|
|
12
|
+
const liveStore = $state({});
|
|
13
|
+
let activePanelKey = $state(null);
|
|
14
|
+
const origin = new URL(env.PUBLIC_RIME_URL).origin;
|
|
11
15
|
/**
|
|
12
16
|
* Handles navigation within iframe to maintain live editing mode
|
|
13
17
|
*/
|
|
14
18
|
const beforeNavigate = (params) => {
|
|
15
|
-
if (
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
if (params.type === 'leave')
|
|
20
|
+
return;
|
|
21
|
+
const url = params.to?.url.href;
|
|
22
|
+
if (window && window.top && url && enabled) {
|
|
23
|
+
window.top.postMessage({ location: url + '?live=1' });
|
|
18
24
|
params.cancel();
|
|
19
25
|
}
|
|
20
26
|
};
|
|
@@ -22,6 +28,9 @@ function createStore(href) {
|
|
|
22
28
|
* Processes messages from parent window
|
|
23
29
|
*/
|
|
24
30
|
const onMessage = async (e) => {
|
|
31
|
+
// Only accept messages from the trusted panel origin
|
|
32
|
+
if (e.origin !== origin)
|
|
33
|
+
return;
|
|
25
34
|
// Handle handshake request
|
|
26
35
|
if (e.data.handshake) {
|
|
27
36
|
enabled = true;
|
|
@@ -30,14 +39,20 @@ function createStore(href) {
|
|
|
30
39
|
window.top.postMessage({ handshake: href });
|
|
31
40
|
}
|
|
32
41
|
}
|
|
33
|
-
// Handle
|
|
42
|
+
// Handle panel store updates (new protocol — has `update` key)
|
|
43
|
+
else if (e.data.update !== undefined &&
|
|
44
|
+
e.data.path !== undefined &&
|
|
45
|
+
e.data.value !== undefined) {
|
|
46
|
+
await handlePanelUpdate(e.data);
|
|
47
|
+
}
|
|
48
|
+
// Handle active panel notification from parent
|
|
49
|
+
else if ('activePanel' in e.data) {
|
|
50
|
+
activePanelKey = e.data.activePanel ?? null;
|
|
51
|
+
}
|
|
52
|
+
// Handle field updates (legacy single-doc protocol)
|
|
34
53
|
else if (e.data.path && e.data.value !== undefined) {
|
|
35
54
|
await handleFieldUpdate(e.data);
|
|
36
55
|
}
|
|
37
|
-
// Handle focus requests
|
|
38
|
-
else if (e.data.focus && typeof e.data.focus === 'string' && typeof document !== 'undefined') {
|
|
39
|
-
handleFocusField(e.data.focus);
|
|
40
|
-
}
|
|
41
56
|
};
|
|
42
57
|
/**
|
|
43
58
|
* Recursively processes relation objects in any data structure
|
|
@@ -109,6 +124,19 @@ function createStore(href) {
|
|
|
109
124
|
// Return primitives as is
|
|
110
125
|
return value;
|
|
111
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* Handles panel store updates (new multi-panel protocol)
|
|
129
|
+
*/
|
|
130
|
+
const handlePanelUpdate = async (data) => {
|
|
131
|
+
const processedValue = await populate(data.value);
|
|
132
|
+
if (!data.path) {
|
|
133
|
+
// Empty path = full doc seed (sent on panel activation)
|
|
134
|
+
liveStore[data.update] = processedValue;
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const current = liveStore[data.update] ?? {};
|
|
138
|
+
liveStore[data.update] = setValueAtPath(data.path, current, processedValue);
|
|
139
|
+
};
|
|
112
140
|
/**
|
|
113
141
|
* Handles field value updates
|
|
114
142
|
*/
|
|
@@ -120,34 +148,36 @@ function createStore(href) {
|
|
|
120
148
|
// Update the document
|
|
121
149
|
doc = setValueAtPath(data.path, doc, processedValue);
|
|
122
150
|
};
|
|
123
|
-
/**
|
|
124
|
-
* Handles focusing a specific field in the UI
|
|
125
|
-
*/
|
|
126
|
-
const handleFocusField = (focusPath) => {
|
|
127
|
-
const element = document.querySelector(`[data-field="${focusPath}"]`);
|
|
128
|
-
if (element) {
|
|
129
|
-
const ringStyle = '0px 0px 0px 1px red';
|
|
130
|
-
// Scroll to the element
|
|
131
|
-
element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });
|
|
132
|
-
// Add highlight style
|
|
133
|
-
element.style.boxShadow = ringStyle;
|
|
134
|
-
if (currentFocusedElement) {
|
|
135
|
-
currentFocusedElement.style.boxShadow = '';
|
|
136
|
-
}
|
|
137
|
-
currentFocusedElement = element;
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
/**
|
|
141
|
-
* Registers a callback for data changes
|
|
142
|
-
*/
|
|
143
|
-
const onData = (callback) => {
|
|
144
|
-
callbacks.push(callback);
|
|
145
|
-
};
|
|
146
151
|
// Return public facade
|
|
147
152
|
return {
|
|
148
153
|
beforeNavigate,
|
|
149
154
|
onMessage,
|
|
150
|
-
|
|
155
|
+
get documentUpdateURI() {
|
|
156
|
+
const doc = page.data.doc;
|
|
157
|
+
if (!doc)
|
|
158
|
+
throw new Error('live.doc has not been set before accessing documentAPIUpdateURL');
|
|
159
|
+
let uri = `/${doc._type}`;
|
|
160
|
+
if (doc._prototype === 'collection')
|
|
161
|
+
uri += `/${doc.id}`;
|
|
162
|
+
const params = [];
|
|
163
|
+
if (doc.versionId)
|
|
164
|
+
params.push(`${PARAMS.VERSION_ID}=${doc.versionId}`);
|
|
165
|
+
if (doc.locale)
|
|
166
|
+
params.push(`${PARAMS.LOCALE}=${doc.locale}`);
|
|
167
|
+
if (params.length)
|
|
168
|
+
uri += `?${params.join('&')}`;
|
|
169
|
+
return uri;
|
|
170
|
+
},
|
|
171
|
+
getPanelValue: (update, path) => {
|
|
172
|
+
const entry = liveStore[update];
|
|
173
|
+
if (!entry) {
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
return getValueAtPath(path, entry);
|
|
177
|
+
},
|
|
178
|
+
get activePanelKey() {
|
|
179
|
+
return activePanelKey;
|
|
180
|
+
},
|
|
151
181
|
get data() {
|
|
152
182
|
return { doc };
|
|
153
183
|
},
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ActivePanel = {
|
|
2
|
+
key: string;
|
|
3
|
+
update: string;
|
|
4
|
+
fieldPath: string;
|
|
5
|
+
};
|
|
6
|
+
export type LivePanelStore = {
|
|
7
|
+
readonly activePanel: ActivePanel | null;
|
|
8
|
+
readonly panelStack: ActivePanel[];
|
|
9
|
+
};
|
|
10
|
+
export declare function setLivePanelContext(store: LivePanelStore): LivePanelStore;
|
|
11
|
+
export declare function getLivePanelContext(): LivePanelStore;
|
|
@@ -51,13 +51,7 @@
|
|
|
51
51
|
{/if}
|
|
52
52
|
</AuthForm>
|
|
53
53
|
|
|
54
|
-
<style
|
|
55
|
-
|
|
56
|
-
/* Font */
|
|
57
|
-
|
|
58
|
-
/**************************************/
|
|
59
|
-
|
|
60
|
-
p {
|
|
54
|
+
<style>p {
|
|
61
55
|
font-size: var(--rz-text-lg);
|
|
62
56
|
font-variation-settings: 'wght' 600;
|
|
63
57
|
font-weight: 600;
|