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
|
@@ -198,7 +198,7 @@ const livePage = () => `
|
|
|
198
198
|
<script lang="ts">
|
|
199
199
|
import { Live } from '${PACKAGE_NAME}/panel/client';
|
|
200
200
|
|
|
201
|
-
import config from '
|
|
201
|
+
import config from '../../../../lib/${OUTPUT_DIR}/rime.config.js';
|
|
202
202
|
|
|
203
203
|
const { data } = $props();
|
|
204
204
|
</script>
|
|
@@ -273,8 +273,8 @@ export const commonRoutes = {
|
|
|
273
273
|
page: panelPage,
|
|
274
274
|
pageServer: panelPageServer
|
|
275
275
|
},
|
|
276
|
-
'(rime)/live': {
|
|
277
|
-
page: livePage,
|
|
276
|
+
'(rime)/panel/live-edit': {
|
|
277
|
+
'page@(rime)': livePage,
|
|
278
278
|
pageServer: livePageServer
|
|
279
279
|
}
|
|
280
280
|
};
|
|
@@ -2,11 +2,11 @@ import { logger } from '../../../logger/index.server.js';
|
|
|
2
2
|
import { withDirectoriesSuffix, withVersionsSuffix } from '../../../naming.js';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
|
-
import { areaAPIRoutes, areaRoutes, areaVersionsPanelRoutes } from './area.js';
|
|
6
|
-
import { collectionAPIRoutes, collectionPanelRoutes, collectionVersionsPanelRoutes } from './collection.js';
|
|
7
|
-
import { commonRoutes, customRoute } from './common.js';
|
|
8
|
-
import { injectCustomCSS, removeCustomCSS } from './custom-css.js';
|
|
9
|
-
import { ensureDir, shouldRegenerateRoutes, writeRouteFile } from './util.js';
|
|
5
|
+
import { areaAPIRoutes, areaRoutes, areaVersionsPanelRoutes } from './area.server.js';
|
|
6
|
+
import { collectionAPIRoutes, collectionPanelRoutes, collectionVersionsPanelRoutes } from './collection.server.js';
|
|
7
|
+
import { commonRoutes, customRoute } from './common.server.js';
|
|
8
|
+
import { injectCustomCSS, removeCustomCSS } from './custom-css.server.js';
|
|
9
|
+
import { ensureDir, shouldRegenerateRoutes, writeRouteFile } from './util.server.js';
|
|
10
10
|
const projectRoot = process.cwd();
|
|
11
11
|
/**
|
|
12
12
|
* Main function to generate browser routes based on configuration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isUploadConfig } from '../../../collections/upload/util/config.js';
|
|
2
2
|
import { PACKAGE_NAME } from '../../../constant.server.js';
|
|
3
|
-
import cache from '../../cache/index.js';
|
|
3
|
+
import cache from '../../cache/index.server.js';
|
|
4
4
|
import { FormFieldBuilder } from '../../../fields/builders/form-field-builder.js';
|
|
5
5
|
import { logger } from '../../../logger/index.server.js';
|
|
6
6
|
import { withVersionsSuffix } from '../../../naming.js';
|
|
@@ -4,7 +4,7 @@ import path from 'node:path';
|
|
|
4
4
|
import { ensureHasInit } from '../../ensure.server.js';
|
|
5
5
|
import { logger } from '../../logger/index.server.js';
|
|
6
6
|
import { INPUT_DIR, OUTPUT_DIR } from '../constants.js';
|
|
7
|
-
import { sanitize } from '../generate/sanitize/index.js';
|
|
7
|
+
import { sanitize } from '../generate/sanitize/index.server.js';
|
|
8
8
|
dotenv.config({ override: true });
|
|
9
9
|
const dev = process.env.NODE_ENV === 'development';
|
|
10
10
|
export function rime() {
|
|
@@ -36,15 +36,19 @@ export function rime() {
|
|
|
36
36
|
}
|
|
37
37
|
catch (error) {
|
|
38
38
|
logger.error('Error while sanitizing config:', error.message);
|
|
39
|
-
|
|
39
|
+
return;
|
|
40
40
|
}
|
|
41
41
|
// Trigger generation
|
|
42
42
|
try {
|
|
43
|
-
await server.ssrLoadModule(`src/lib/${OUTPUT_DIR}/rime.config.server.ts`);
|
|
43
|
+
const mod = await server.ssrLoadModule(`src/lib/${OUTPUT_DIR}/rime.config.server.ts`);
|
|
44
|
+
// The config's default export is the createRime() promise; ssrLoadModule
|
|
45
|
+
// only awaits the module's synchronous evaluation, so we must await it
|
|
46
|
+
// directly to observe init errors (e.g. invalid config) here instead of
|
|
47
|
+
// letting them become unhandled rejections that crash the dev server.
|
|
48
|
+
await mod.default;
|
|
44
49
|
}
|
|
45
50
|
catch (error) {
|
|
46
51
|
logger.error('Failed to reload the config', error.message);
|
|
47
|
-
throw error;
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Field, FormField, SeparatorField } from '../../fields/types.js';
|
|
2
2
|
import type { Dic } from '../../util/types.js';
|
|
3
|
+
import type { FieldBuilder } from './builders';
|
|
3
4
|
/**
|
|
4
5
|
* Checks if a field is a presentative field (currently only separator fields).
|
|
5
6
|
* Presentative fields are used for UI organization and don't store data.
|
|
@@ -65,3 +66,15 @@ export declare function pathToRegex(path: string): RegExp;
|
|
|
65
66
|
*
|
|
66
67
|
*/
|
|
67
68
|
export declare const getFieldConfigByPath: (path: string, fields: Field[]) => FormField | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Traverses a FieldBuilder[] tree and returns the subset of builders to pass to
|
|
71
|
+
* RenderFields, along with the path prefix those builders should be rendered at.
|
|
72
|
+
*
|
|
73
|
+
* Containers (tabs, groups) are treated as transparent navigation layers.
|
|
74
|
+
* Blocks are treated as endpoints — the blocks builder itself is returned
|
|
75
|
+
* regardless of any index:blockType suffix in the path.
|
|
76
|
+
*/
|
|
77
|
+
export declare function getFieldBuildersAtPath(fieldPath: string, builders: FieldBuilder[], parentPath?: string): {
|
|
78
|
+
fields: FieldBuilder[];
|
|
79
|
+
path: string;
|
|
80
|
+
};
|
package/dist/core/fields/util.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { isBlocksFieldRaw } from '../../fields/blocks/index.js';
|
|
2
|
-
import { isGroupFieldRaw } from '../../fields/group/index.js';
|
|
3
|
-
import { isTabsFieldRaw } from '../../fields/tabs/index.js';
|
|
4
|
-
import { isTreeFieldRaw } from '../../fields/tree/index.js';
|
|
1
|
+
import { BlocksBuilder, isBlocksFieldRaw } from '../../fields/blocks/index.js';
|
|
2
|
+
import { GroupFieldBuilder, isGroupFieldRaw } from '../../fields/group/index.js';
|
|
3
|
+
import { isTabsFieldRaw, TabsBuilder } from '../../fields/tabs/index.js';
|
|
4
|
+
import { isTreeFieldRaw, TreeBuilder } from '../../fields/tree/index.js';
|
|
5
|
+
import { normalizeFieldPath } from '../../util/doc.js';
|
|
5
6
|
/**
|
|
6
7
|
* Checks if a field is a presentative field (currently only separator fields).
|
|
7
8
|
* Presentative fields are used for UI organization and don't store data.
|
|
@@ -168,3 +169,75 @@ export const getFieldConfigByPath = (path, fields) => {
|
|
|
168
169
|
};
|
|
169
170
|
return findInFields(fields, parts);
|
|
170
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Traverses a FieldBuilder[] tree and returns the subset of builders to pass to
|
|
174
|
+
* RenderFields, along with the path prefix those builders should be rendered at.
|
|
175
|
+
*
|
|
176
|
+
* Containers (tabs, groups) are treated as transparent navigation layers.
|
|
177
|
+
* Blocks are treated as endpoints — the blocks builder itself is returned
|
|
178
|
+
* regardless of any index:blockType suffix in the path.
|
|
179
|
+
*/
|
|
180
|
+
export function getFieldBuildersAtPath(fieldPath, builders, parentPath = '') {
|
|
181
|
+
if (!fieldPath)
|
|
182
|
+
return { fields: builders, path: parentPath };
|
|
183
|
+
const dotIndex = fieldPath.indexOf('.');
|
|
184
|
+
const head = dotIndex === -1 ? fieldPath : fieldPath.slice(0, dotIndex);
|
|
185
|
+
const tail = dotIndex === -1 ? '' : fieldPath.slice(dotIndex + 1);
|
|
186
|
+
const isEndpoint = fieldPath.split('.').length === 1;
|
|
187
|
+
const nextParentPath = normalizeFieldPath(`${parentPath}${parentPath ? '.' : ''}${head}`);
|
|
188
|
+
for (const builder of builders) {
|
|
189
|
+
// ── Tabs container: navigate into the matching tab
|
|
190
|
+
if (builder instanceof TabsBuilder) {
|
|
191
|
+
const tab = builder.field.tabs.find((t) => t.name === head);
|
|
192
|
+
if (!tab)
|
|
193
|
+
continue;
|
|
194
|
+
if (isEndpoint) {
|
|
195
|
+
// Path targets the tab → return all its inner fields
|
|
196
|
+
return { fields: tab.raw.fields, path: nextParentPath };
|
|
197
|
+
}
|
|
198
|
+
return getFieldBuildersAtPath(tail, tab.raw.fields, nextParentPath);
|
|
199
|
+
}
|
|
200
|
+
if (!isFormField(builder.raw))
|
|
201
|
+
continue;
|
|
202
|
+
// ── Group field: navigate into children
|
|
203
|
+
if (builder instanceof GroupFieldBuilder && builder.raw.name === head) {
|
|
204
|
+
const children = builder.field.fields;
|
|
205
|
+
if (isEndpoint)
|
|
206
|
+
return { fields: children, path: nextParentPath };
|
|
207
|
+
return getFieldBuildersAtPath(tail, children, nextParentPath);
|
|
208
|
+
}
|
|
209
|
+
// —— Blocks
|
|
210
|
+
if (builder instanceof BlocksBuilder && builder.raw.name === head) {
|
|
211
|
+
const blockType = tail.split('.')[0]?.split(':')[1];
|
|
212
|
+
const isInnerBlockLookup = tail.split('.').length > 1;
|
|
213
|
+
const nextParentPathWithBlockIndex = `${nextParentPath}.${tail.split('.')[0]}`;
|
|
214
|
+
if (blockType) {
|
|
215
|
+
const block = builder.raw.blocks.find((b) => b.name === blockType);
|
|
216
|
+
if (!isInnerBlockLookup && block?.raw.fields) {
|
|
217
|
+
return {
|
|
218
|
+
fields: block?.raw.fields,
|
|
219
|
+
path: normalizeFieldPath(nextParentPathWithBlockIndex)
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
if (block) {
|
|
223
|
+
return getFieldBuildersAtPath(tail.split('.').slice(1).join('.'), block?.raw.fields, normalizeFieldPath(nextParentPathWithBlockIndex));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return { fields: [builder], path: parentPath };
|
|
227
|
+
}
|
|
228
|
+
// Tree
|
|
229
|
+
if (builder instanceof TreeBuilder && builder.raw.name === head) {
|
|
230
|
+
const children = builder.raw.fields;
|
|
231
|
+
const nextParentPathWithIndex = `${nextParentPath}.${tail.split('.')[0]}`;
|
|
232
|
+
if (isEndpoint)
|
|
233
|
+
return { fields: children, path: nextParentPath };
|
|
234
|
+
return getFieldBuildersAtPath(tail.split('.').slice(1).join('.'), children, nextParentPathWithIndex);
|
|
235
|
+
}
|
|
236
|
+
// Direct unique field match
|
|
237
|
+
if (isEndpoint && isFormField(builder.raw) && builder.raw.name === fieldPath) {
|
|
238
|
+
return { fields: [builder], path: parentPath };
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
console.warn(`[LiveEditPanel] fieldPath "${fieldPath}" not found in config fields`);
|
|
242
|
+
return { fields: builders, path: parentPath };
|
|
243
|
+
}
|
|
@@ -58,6 +58,7 @@ declare namespace _default {
|
|
|
58
58
|
export let unsaved_dialog_text: string;
|
|
59
59
|
export let version_created: string;
|
|
60
60
|
export let versions_history: string;
|
|
61
|
+
export let view_all: string;
|
|
61
62
|
export let view_page: string;
|
|
62
63
|
export let view_site: string;
|
|
63
64
|
export let welcome: string;
|
|
@@ -58,6 +58,7 @@ export default {
|
|
|
58
58
|
unsaved_dialog_text: 'There are unsaved modifications in the document.',
|
|
59
59
|
version_created: 'New version created',
|
|
60
60
|
versions_history: 'Versions history',
|
|
61
|
+
view_all: 'View all',
|
|
61
62
|
view_page: 'View page',
|
|
62
63
|
view_site: 'View website',
|
|
63
64
|
welcome: 'Welcome'
|
|
@@ -58,6 +58,7 @@ declare namespace _default {
|
|
|
58
58
|
export let version_created: string;
|
|
59
59
|
export let versions_history: string;
|
|
60
60
|
export let versions: string;
|
|
61
|
+
export let view_all: string;
|
|
61
62
|
export let view_page: string;
|
|
62
63
|
export let view_site: string;
|
|
63
64
|
export let welcome: string;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { PARAMS } from '../../../constant.js';
|
|
1
2
|
import { logger } from '../../../logger/index.server.js';
|
|
2
3
|
import { getValueAtPath } from '../../../../util/object.js';
|
|
4
|
+
import validate from '../../../../util/validate.js';
|
|
3
5
|
import { Hooks } from '../index.server.js';
|
|
4
6
|
/**
|
|
5
7
|
* Hook to populate _children property on document from a nested collection
|
|
@@ -25,6 +27,11 @@ export const populateURL = Hooks.beforeRead(async (args) => {
|
|
|
25
27
|
logger.error(`Error while generating url of ${config.slug} with id: ${args.doc.id}, ${err.message}`);
|
|
26
28
|
return args;
|
|
27
29
|
}
|
|
30
|
+
const isValidURL = validate.url(url);
|
|
31
|
+
if (typeof isValidURL === 'string') {
|
|
32
|
+
logger.warn(`Invalid URL generated for ${config.slug} with id: ${args.doc.id}, url: ${url}`);
|
|
33
|
+
return args;
|
|
34
|
+
}
|
|
28
35
|
const match = url.match(/\[\.\.\.parent\.(\w+(?:\.\w+)*)\]/);
|
|
29
36
|
if (match) {
|
|
30
37
|
const fullMatch = match[0];
|
|
@@ -91,8 +98,9 @@ export const populateURL = Hooks.beforeRead(async (args) => {
|
|
|
91
98
|
}
|
|
92
99
|
// Add the live url if needed
|
|
93
100
|
if (config.live && event.locals.user && url) {
|
|
94
|
-
args.doc._live = `${process.env.PUBLIC_RIME_URL}/live?src=${url}&slug=${config.slug}&id=${args.doc.id}`;
|
|
95
|
-
args.doc._live +=
|
|
101
|
+
args.doc._live = `${process.env.PUBLIC_RIME_URL}/panel/live-edit?src=${url}&slug=${config.slug}&id=${args.doc.id}`;
|
|
102
|
+
args.doc._live += args.doc.versionId ? `&${PARAMS.VERSION_ID}=${args.doc.versionId}` : '';
|
|
103
|
+
args.doc._live += locale ? `&${PARAMS.LOCALE}=${locale}` : '';
|
|
96
104
|
}
|
|
97
105
|
}
|
|
98
106
|
return args;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { filePathToFile } from '../../../collections/upload/util/converter.js';
|
|
1
|
+
import { filePathToFile } from '../../../collections/upload/util/converter.server.js';
|
|
2
2
|
import { VersionOperations } from '../../../collections/versions/operations.js';
|
|
3
3
|
import { VERSIONS_STATUS } from '../../../constant.js';
|
|
4
4
|
import { RimeError } from '../../../errors/index.js';
|
|
@@ -84,7 +84,7 @@ async function prepareDataForNewVersion(args) {
|
|
|
84
84
|
original: originalDoc,
|
|
85
85
|
configMap: originalConfigMap,
|
|
86
86
|
ignore: ['status'],
|
|
87
|
-
mode: '
|
|
87
|
+
mode: 'all'
|
|
88
88
|
});
|
|
89
89
|
// Set default status to "draft" if no data.status
|
|
90
90
|
if (!data.status) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BeforeOperationRelation } from '../../../adapter-sqlite/relations.js';
|
|
1
|
+
import type { BeforeOperationRelation } from '../../../adapter-sqlite/relations.server.js';
|
|
2
2
|
import type { Relation } from '../../../fields/relation/index.js';
|
|
3
3
|
export type RelationDiff = {
|
|
4
4
|
toAdd: BeforeOperationRelation[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BeforeOperationRelation } from '../../../adapter-sqlite/relations.js';
|
|
1
|
+
import type { BeforeOperationRelation } from '../../../adapter-sqlite/relations.server.js';
|
|
2
2
|
import type { Dic } from '../../../util/types.js';
|
|
3
3
|
import type { ConfigMap } from '../configMap/types.js';
|
|
4
4
|
type Args = {
|
|
@@ -1149,7 +1149,7 @@ export declare function createRime<const C extends Config>(config: BuildConfig<C
|
|
|
1149
1149
|
$Infer: {
|
|
1150
1150
|
body: {
|
|
1151
1151
|
userId: string;
|
|
1152
|
-
role: "user" | "
|
|
1152
|
+
role: "user" | "admin" | "staff" | ("user" | "admin" | "staff")[];
|
|
1153
1153
|
};
|
|
1154
1154
|
};
|
|
1155
1155
|
};
|
|
@@ -1229,7 +1229,7 @@ export declare function createRime<const C extends Config>(config: BuildConfig<C
|
|
|
1229
1229
|
email: string;
|
|
1230
1230
|
password?: string | undefined;
|
|
1231
1231
|
name: string;
|
|
1232
|
-
role?: "user" | "
|
|
1232
|
+
role?: "user" | "admin" | "staff" | ("user" | "admin" | "staff")[] | undefined;
|
|
1233
1233
|
data?: Record<string, any> | undefined;
|
|
1234
1234
|
};
|
|
1235
1235
|
};
|
|
@@ -1773,7 +1773,7 @@ export declare function createRime<const C extends Config>(config: BuildConfig<C
|
|
|
1773
1773
|
permission?: never | undefined;
|
|
1774
1774
|
}) & {
|
|
1775
1775
|
userId?: string | undefined;
|
|
1776
|
-
role?: "user" | "
|
|
1776
|
+
role?: "user" | "admin" | "staff" | undefined;
|
|
1777
1777
|
};
|
|
1778
1778
|
};
|
|
1779
1779
|
};
|
|
@@ -3155,7 +3155,7 @@ export declare function createRime<const C extends Config>(config: BuildConfig<C
|
|
|
3155
3155
|
$Infer: {
|
|
3156
3156
|
body: {
|
|
3157
3157
|
userId: string;
|
|
3158
|
-
role: "user" | "
|
|
3158
|
+
role: "user" | "admin" | "staff" | ("user" | "admin" | "staff")[];
|
|
3159
3159
|
};
|
|
3160
3160
|
};
|
|
3161
3161
|
};
|
|
@@ -3235,7 +3235,7 @@ export declare function createRime<const C extends Config>(config: BuildConfig<C
|
|
|
3235
3235
|
email: string;
|
|
3236
3236
|
password?: string | undefined;
|
|
3237
3237
|
name: string;
|
|
3238
|
-
role?: "user" | "
|
|
3238
|
+
role?: "user" | "admin" | "staff" | ("user" | "admin" | "staff")[] | undefined;
|
|
3239
3239
|
data?: Record<string, any> | undefined;
|
|
3240
3240
|
};
|
|
3241
3241
|
};
|
|
@@ -3779,7 +3779,7 @@ export declare function createRime<const C extends Config>(config: BuildConfig<C
|
|
|
3779
3779
|
permission?: never | undefined;
|
|
3780
3780
|
}) & {
|
|
3781
3781
|
userId?: string | undefined;
|
|
3782
|
-
role?: "user" | "
|
|
3782
|
+
role?: "user" | "admin" | "staff" | undefined;
|
|
3783
3783
|
};
|
|
3784
3784
|
};
|
|
3785
3785
|
};
|
package/dist/core/rime.server.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// import type { Adapter } from '../adapter-sqlite/index.server.js';
|
|
2
2
|
import { dev } from '$app/environment';
|
|
3
|
-
import devCache from './dev/cache/index.js';
|
|
4
3
|
import { betterAuth } from 'better-auth';
|
|
5
4
|
import { AreaAPI } from './areas/local-api.server.js';
|
|
6
5
|
import { CollectionAPI } from './collections/local-api.server.js';
|
|
7
6
|
import { getBaseAuthConfig } from './config/auth/better-auth.server.js';
|
|
8
7
|
import { createConfigContext } from './config/config-context.server.js';
|
|
9
|
-
import validate from './config/server/validate.js';
|
|
10
|
-
import writeMemo from './config/server/write.js';
|
|
11
|
-
import generateRoutes from './dev/generate/routes/index.js';
|
|
12
|
-
import generateTypes from './dev/generate/types/index.js';
|
|
8
|
+
import validate from './config/server/validate.server.js';
|
|
9
|
+
import writeMemo from './config/server/write.server.js';
|
|
10
|
+
import generateRoutes from './dev/generate/routes/index.server.js';
|
|
11
|
+
import generateTypes from './dev/generate/types/index.server.js';
|
|
13
12
|
import { RimeError } from './errors/index.js';
|
|
14
13
|
import i18n from './i18n/index.js';
|
|
15
14
|
import { registerTranslation } from './i18n/register.server.js';
|
|
@@ -29,13 +28,18 @@ export async function createRime(config) {
|
|
|
29
28
|
// Generate schema, types, routes
|
|
30
29
|
if (dev) {
|
|
31
30
|
const changed = writeMemo(config);
|
|
32
|
-
const valid =
|
|
33
|
-
if (
|
|
31
|
+
const valid = validate(config);
|
|
32
|
+
if (!valid) {
|
|
34
33
|
throw new RimeError('Config not valid');
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
}
|
|
35
|
+
if (changed) {
|
|
36
|
+
generateRoutes(config);
|
|
37
|
+
await generateSchema(config);
|
|
38
|
+
await generateTypes(config);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
logger.debug('Nothing to generate');
|
|
42
|
+
}
|
|
39
43
|
}
|
|
40
44
|
// Create adapter, consume the generated schema
|
|
41
45
|
const adapter = await createAdapter(configCtx);
|
|
@@ -53,9 +57,6 @@ export async function createRime(config) {
|
|
|
53
57
|
// Register dictionaries for panel Language
|
|
54
58
|
const dictionnaries = await registerTranslation(config.panel.language);
|
|
55
59
|
i18n.init(dictionnaries);
|
|
56
|
-
if (dev) {
|
|
57
|
-
devCache.delete('.init');
|
|
58
|
-
}
|
|
59
60
|
/**
|
|
60
61
|
* Function that define the locale to use in a request event
|
|
61
62
|
* based on this priority, high to low :
|
|
@@ -91,33 +91,27 @@
|
|
|
91
91
|
</div>
|
|
92
92
|
</div>
|
|
93
93
|
|
|
94
|
-
<style
|
|
95
|
-
|
|
96
|
-
/* Font */
|
|
97
|
-
|
|
98
|
-
/**************************************/
|
|
99
|
-
|
|
100
|
-
.rz-block {
|
|
94
|
+
<style>.rz-block {
|
|
101
95
|
--rz-fields-padding: var(--rz-size-5);
|
|
102
96
|
position: relative;
|
|
103
97
|
border: var(--rz-border);
|
|
104
98
|
border-radius: var(--rz-radius-sm);
|
|
105
99
|
}
|
|
106
100
|
|
|
107
|
-
.rz-block__grip {
|
|
101
|
+
.rz-block__grip {
|
|
108
102
|
cursor: grab;
|
|
109
103
|
}
|
|
110
104
|
|
|
111
|
-
.rz-block:hover > :global(.rz-block__content > .rz-block__header > .rz-block-actions) {
|
|
105
|
+
.rz-block:hover > :global(.rz-block__content > .rz-block__header > .rz-block-actions) {
|
|
112
106
|
opacity: 1;
|
|
113
107
|
pointer-events: all;
|
|
114
108
|
}
|
|
115
109
|
|
|
116
|
-
.rz-block__content {
|
|
110
|
+
.rz-block__content {
|
|
117
111
|
background-color: var(--rz-collapse-fields-content-bg);
|
|
118
112
|
}
|
|
119
113
|
|
|
120
|
-
.rz-block__header {
|
|
114
|
+
.rz-block__header {
|
|
121
115
|
display: flex;
|
|
122
116
|
position: relative;
|
|
123
117
|
align-items: center;
|
|
@@ -129,14 +123,14 @@
|
|
|
129
123
|
background-color: hsl(var(--rz-row-bg));
|
|
130
124
|
}
|
|
131
125
|
|
|
132
|
-
.rz-block__title-button {
|
|
126
|
+
.rz-block__title-button {
|
|
133
127
|
flex: 1;
|
|
134
128
|
justify-content: flex-start;
|
|
135
129
|
flex-direction: row;
|
|
136
130
|
padding: var(--rz-size-3);
|
|
137
131
|
}
|
|
138
132
|
|
|
139
|
-
.rz-block__content--closed {
|
|
133
|
+
.rz-block__content--closed {
|
|
140
134
|
border-radius: var(--rz-radius-md);
|
|
141
135
|
.rz-block__header {
|
|
142
136
|
border-color: transparent;
|
|
@@ -157,7 +151,7 @@
|
|
|
157
151
|
}
|
|
158
152
|
}
|
|
159
153
|
|
|
160
|
-
.rz-block__title {
|
|
154
|
+
.rz-block__title {
|
|
161
155
|
display: flex;
|
|
162
156
|
height: var(--rz-size-6);
|
|
163
157
|
align-items: center;
|
|
@@ -167,25 +161,25 @@
|
|
|
167
161
|
font-size: var(--rz-text-xs);
|
|
168
162
|
}
|
|
169
163
|
|
|
170
|
-
.rz-block__heading {
|
|
164
|
+
.rz-block__heading {
|
|
171
165
|
font-variation-settings: 'wght' 500;
|
|
172
166
|
font-weight: 500;
|
|
173
167
|
}
|
|
174
168
|
|
|
175
|
-
.rz-block__fields {
|
|
169
|
+
.rz-block__fields {
|
|
176
170
|
flex: 1;
|
|
177
171
|
padding: var(--rz-size-6) 0;
|
|
178
172
|
}
|
|
179
173
|
|
|
180
|
-
.rz-block__fields--hidden {
|
|
174
|
+
.rz-block__fields--hidden {
|
|
181
175
|
display: none;
|
|
182
176
|
}
|
|
183
177
|
|
|
184
|
-
.rz-block[data-sorting='true'] .rz-block__grip {
|
|
178
|
+
.rz-block[data-sorting='true'] .rz-block__grip {
|
|
185
179
|
display: none;
|
|
186
180
|
}
|
|
187
181
|
|
|
188
|
-
:global(.rz-block-actions) {
|
|
182
|
+
:global(.rz-block-actions) {
|
|
189
183
|
position: absolute;
|
|
190
184
|
opacity: 0;
|
|
191
185
|
pointer-events: none;
|
|
@@ -131,30 +131,24 @@
|
|
|
131
131
|
</div>
|
|
132
132
|
</fieldset>
|
|
133
133
|
|
|
134
|
-
<style
|
|
135
|
-
|
|
136
|
-
/* Font */
|
|
137
|
-
|
|
138
|
-
/**************************************/
|
|
139
|
-
|
|
140
|
-
.rz-blocks__title {
|
|
134
|
+
<style>.rz-blocks__title {
|
|
141
135
|
font-variation-settings: 'wght' 500;
|
|
142
136
|
font-weight: 500;
|
|
143
137
|
}
|
|
144
138
|
|
|
145
|
-
sup {
|
|
139
|
+
sup {
|
|
146
140
|
font-size: var(--rz-text-2xs);
|
|
147
141
|
text-transform: uppercase;
|
|
148
142
|
}
|
|
149
143
|
|
|
150
|
-
.rz-blocks__actions {
|
|
144
|
+
.rz-blocks__actions {
|
|
151
145
|
/* translate: 0 calc(-1 * var(--rz-size-2)); */
|
|
152
146
|
display: flex;
|
|
153
147
|
align-items: end;
|
|
154
148
|
gap: var(--rz-size-2);
|
|
155
149
|
}
|
|
156
150
|
|
|
157
|
-
.rz-blocks__list {
|
|
151
|
+
.rz-blocks__list {
|
|
158
152
|
display: grid;
|
|
159
153
|
gap: var(--rz-size-4);
|
|
160
154
|
|
|
@@ -163,13 +157,12 @@ sup {
|
|
|
163
157
|
}
|
|
164
158
|
}
|
|
165
159
|
|
|
166
|
-
.rz-blocks__header {
|
|
160
|
+
.rz-blocks__header {
|
|
167
161
|
display: flex;
|
|
168
162
|
justify-content: space-between;
|
|
169
163
|
margin-bottom: var(--rz-size-4);
|
|
170
164
|
}
|
|
171
|
-
|
|
172
|
-
.rz-blocks__actions-bottom {
|
|
165
|
+
.rz-blocks__actions-bottom {
|
|
173
166
|
display: flex;
|
|
174
167
|
gap: var(--rz-size-3);
|
|
175
168
|
padding-right: var(--rz-size-3);
|
|
@@ -91,19 +91,13 @@
|
|
|
91
91
|
{/if}
|
|
92
92
|
</div>
|
|
93
93
|
|
|
94
|
-
<style
|
|
95
|
-
|
|
96
|
-
/* Font */
|
|
97
|
-
|
|
98
|
-
/**************************************/
|
|
99
|
-
|
|
100
|
-
:root {
|
|
94
|
+
<style>:root {
|
|
101
95
|
--rz-group-trigger-bg: hsl(var(--rz-row-bg));
|
|
102
96
|
--rz-group-preview-bg: light-dark(hsl(var(--rz-gray-16)), hsl(var(--rz-gray-3)));
|
|
103
97
|
--rz-group-content-bg: var(--rz-collapse-fields-content-bg);
|
|
104
98
|
}
|
|
105
99
|
|
|
106
|
-
.rz-group-field__wrapper {
|
|
100
|
+
.rz-group-field__wrapper {
|
|
107
101
|
border: var(--rz-border);
|
|
108
102
|
border-radius: var(--rz-radius-md);
|
|
109
103
|
background-color: var(--rz-group-trigger-bg);
|
|
@@ -114,18 +108,18 @@
|
|
|
114
108
|
}
|
|
115
109
|
}
|
|
116
110
|
|
|
117
|
-
.rz-group-field__wrapper--hidden {
|
|
111
|
+
.rz-group-field__wrapper--hidden {
|
|
118
112
|
display: none;
|
|
119
113
|
}
|
|
120
114
|
|
|
121
|
-
.rz-group-field__content {
|
|
115
|
+
.rz-group-field__content {
|
|
122
116
|
--rz-fields-padding: var(--rz-size-5);
|
|
123
117
|
padding-top: var(--rz-fields-padding);
|
|
124
118
|
padding-bottom: var(--rz-fields-padding);
|
|
125
119
|
background-color: var(--rz-group-content-bg);
|
|
126
120
|
}
|
|
127
121
|
|
|
128
|
-
.rz-group-field__trigger {
|
|
122
|
+
.rz-group-field__trigger {
|
|
129
123
|
display: flex;
|
|
130
124
|
align-items: center;
|
|
131
125
|
justify-content: space-between;
|
|
@@ -149,8 +143,7 @@
|
|
|
149
143
|
rotate: -180deg;
|
|
150
144
|
}
|
|
151
145
|
}
|
|
152
|
-
|
|
153
|
-
.rz-group-field__trigger--live {
|
|
146
|
+
.rz-group-field__trigger--live {
|
|
154
147
|
font-size: var(--rz-text-md);
|
|
155
148
|
}
|
|
156
149
|
</style>
|
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/* Chrome, Safari, Edge, Opera */
|
|
79
|
+
|
|
79
80
|
.rz-number__input::-webkit-outer-spin-button,
|
|
80
81
|
.rz-number__input::-webkit-inner-spin-button {
|
|
81
82
|
-webkit-appearance: none;
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
}
|
|
84
85
|
|
|
85
86
|
/* Firefox */
|
|
87
|
+
|
|
86
88
|
.rz-number__input[type='number'] {
|
|
87
89
|
-webkit-appearance: textfield;
|
|
88
90
|
appearance: textfield;
|