@rebasepro/admin 0.3.0 → 0.5.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/README.md +135 -0
- package/dist/{CollectionEditorDialog-D0VqpLPO.js → CollectionEditorDialog-C8E440oK.js} +22 -5
- package/dist/CollectionEditorDialog-C8E440oK.js.map +1 -0
- package/dist/{CollectionsStudioView-Bc3Rxxc2.js → CollectionsStudioView-Brr_b06v.js} +4 -4
- package/dist/{CollectionsStudioView-Bc3Rxxc2.js.map → CollectionsStudioView-Brr_b06v.js.map} +1 -1
- package/dist/{ExportCollectionAction-Ckc-09BQ.js → ExportCollectionAction-D3TTYXrq.js} +35 -27
- package/dist/ExportCollectionAction-D3TTYXrq.js.map +1 -0
- package/dist/{ImportCollectionAction-BqjIrC3Z.js → ImportCollectionAction-Dn7lya6E.js} +2 -2
- package/dist/{ImportCollectionAction-BqjIrC3Z.js.map → ImportCollectionAction-Dn7lya6E.js.map} +1 -1
- package/dist/{PropertyEditView-CvRSV-A2.js → PropertyEditView-ChBleIbN.js} +4 -4
- package/dist/PropertyEditView-ChBleIbN.js.map +1 -0
- package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +1 -0
- package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +1 -1
- package/dist/collection_editor_ui.js +3 -3
- package/dist/components/CollectionPanel.d.ts +83 -0
- package/dist/components/EntityDetailView.d.ts +0 -3
- package/dist/components/EntityEditView.d.ts +2 -3
- package/dist/components/RebaseRouteDefs.d.ts +1 -1
- package/dist/components/SelectableTable/SelectableTable.d.ts +2 -2
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +1 -1
- package/dist/components/SelectableTable/SelectionStore.d.ts +3 -3
- package/dist/components/admin/index.d.ts +1 -3
- package/dist/components/index.d.ts +1 -0
- package/dist/editor.js +15 -5
- package/dist/editor.js.map +1 -1
- package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +1 -1
- package/dist/hooks/navigation/useResolvedViews.d.ts +2 -5
- package/dist/{index-BCcLwgfe.js → index-D3S9x_RP.js} +2 -2
- package/dist/{index-BCcLwgfe.js.map → index-D3S9x_RP.js.map} +1 -1
- package/dist/{index-DY2k5TtG.js → index-D9RNzm01.js} +3 -3
- package/dist/index-D9RNzm01.js.map +1 -0
- package/dist/{index-UQOMHwt1.js → index-DrrT332R.js} +3 -3
- package/dist/index-DrrT332R.js.map +1 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.js +228 -295
- package/dist/index.js.map +1 -1
- package/dist/util/entity_view_constants.d.ts +6 -0
- package/dist/util/resolutions.d.ts +1 -2
- package/dist/{util-ZM9gQuCv.js → util-COYYD8zr.js} +473 -880
- package/dist/util-COYYD8zr.js.map +1 -0
- package/package.json +9 -10
- package/src/collection_editor/pgColumnToProperty.ts +19 -2
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +2 -1
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +2 -1
- package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +1 -1
- package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +1 -1
- package/src/collection_editor/ui/collection_editor/templates/products_template.ts +1 -1
- package/src/collection_editor/ui/collection_editor/templates/users_template.ts +1 -1
- package/src/collection_editor/validateCollectionJson.ts +12 -12
- package/src/components/CollectionPanel.tsx +155 -0
- package/src/components/DefaultDrawer.tsx +2 -2
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +5 -2
- package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +64 -34
- package/src/components/EntityCollectionView/EntityCollectionListView.tsx +8 -1
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +4 -1
- package/src/components/EntityCollectionView/hooks/useCollectionInlineEditor.ts +1 -0
- package/src/components/EntityCollectionView/useEntityPreviewSlots.ts +68 -18
- package/src/components/EntityDetailView.tsx +32 -36
- package/src/components/EntityEditView.tsx +101 -50
- package/src/components/EntityEditViewFormActions.tsx +4 -4
- package/src/components/EntitySidePanel.tsx +50 -14
- package/src/components/PropertyCollectionView.tsx +1 -0
- package/src/components/RebaseRouteDefs.tsx +4 -6
- package/src/components/SelectableTable/SelectableTable.tsx +24 -22
- package/src/components/SelectableTable/SelectableTableContext.tsx +2 -1
- package/src/components/SelectableTable/SelectionStore.ts +4 -4
- package/src/components/admin/index.ts +1 -3
- package/src/components/index.ts +3 -3
- package/src/data_export/export/BasicExportAction.tsx +11 -9
- package/src/data_export/export/ExportCollectionAction.tsx +15 -13
- package/src/editor/editor.tsx +20 -4
- package/src/form/EntityForm.tsx +3 -3
- package/src/form/PropertyFieldBinding.tsx +1 -1
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +1 -1
- package/src/form/field_bindings/MapFieldBinding.tsx +3 -45
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +3 -1
- package/src/hooks/navigation/useBuildNavigationStateController.tsx +2 -3
- package/src/hooks/navigation/useResolvedCollections.ts +2 -10
- package/src/hooks/navigation/useResolvedViews.tsx +6 -48
- package/src/hooks/useBuildSideEntityController.tsx +20 -3
- package/src/index.ts +6 -5
- package/src/util/entity_view_constants.ts +6 -0
- package/src/util/previews.ts +9 -1
- package/src/util/resolutions.ts +2 -6
- package/dist/CollectionEditorDialog-D0VqpLPO.js.map +0 -1
- package/dist/ExportCollectionAction-Ckc-09BQ.js.map +0 -1
- package/dist/PropertyEditView-CvRSV-A2.js.map +0 -1
- package/dist/components/admin/RoleChip.d.ts +0 -4
- package/dist/components/admin/RolesFilterSelect.d.ts +0 -2
- package/dist/components/admin/RolesView.d.ts +0 -4
- package/dist/components/admin/UserRolesSelectField.d.ts +0 -2
- package/dist/components/admin/UsersView.d.ts +0 -4
- package/dist/index-DY2k5TtG.js.map +0 -1
- package/dist/index-UQOMHwt1.js.map +0 -1
- package/dist/util-ZM9gQuCv.js.map +0 -1
- package/src/components/admin/RoleChip.tsx +0 -23
- package/src/components/admin/RolesFilterSelect.tsx +0 -45
- package/src/components/admin/RolesView.tsx +0 -470
- package/src/components/admin/UserRolesSelectField.tsx +0 -50
- package/src/components/admin/UsersView.tsx +0 -693
|
@@ -3,6 +3,7 @@ import { FormexController } from "@rebasepro/formex";
|
|
|
3
3
|
import { Property, PropertyConfig } from "@rebasepro/types";
|
|
4
4
|
export type PropertyWithId = Property & {
|
|
5
5
|
id?: string;
|
|
6
|
+
conditions?: import('@rebasepro/types').PropertyConditions;
|
|
6
7
|
};
|
|
7
8
|
export type OnPropertyChangedParams = {
|
|
8
9
|
id?: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EntityCollection } from "@rebasepro/types";
|
|
1
|
+
import type { EntityCollection } from "@rebasepro/types";
|
|
2
2
|
export declare const blogCollectionTemplate: EntityCollection;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EntityCollection } from "@rebasepro/types";
|
|
1
|
+
import type { EntityCollection } from "@rebasepro/types";
|
|
2
2
|
export declare const pagesCollectionTemplate: EntityCollection;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EntityCollection } from "@rebasepro/types";
|
|
1
|
+
import type { EntityCollection } from "@rebasepro/types";
|
|
2
2
|
export declare const productsCollectionTemplate: EntityCollection;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EntityCollection } from "@rebasepro/types";
|
|
1
|
+
import type { EntityCollection } from "@rebasepro/types";
|
|
2
2
|
export declare const usersCollectionTemplate: EntityCollection;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CollectionEditorDialog } from "./CollectionEditorDialog-
|
|
2
|
-
import { a, b } from "./PropertyEditView-
|
|
3
|
-
import { C, a as a2 } from "./CollectionsStudioView-
|
|
1
|
+
import { CollectionEditorDialog } from "./CollectionEditorDialog-C8E440oK.js";
|
|
2
|
+
import { a, b } from "./PropertyEditView-ChBleIbN.js";
|
|
3
|
+
import { C, a as a2 } from "./CollectionsStudioView-Brr_b06v.js";
|
|
4
4
|
export {
|
|
5
5
|
CollectionEditorDialog,
|
|
6
6
|
C as CollectionStudioView,
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { EntityCollection, ViewMode } from "@rebasepro/types";
|
|
2
|
+
/**
|
|
3
|
+
* Props for the {@link CollectionPanel} component.
|
|
4
|
+
*
|
|
5
|
+
* This is a high-level, consumer-friendly wrapper around {@link EntityCollectionView}
|
|
6
|
+
* designed for embedding collection views inside custom pages (home pages,
|
|
7
|
+
* dashboards, entity detail views, etc.).
|
|
8
|
+
*
|
|
9
|
+
* At minimum, provide the `path` (collection slug). All other props are optional
|
|
10
|
+
* overrides that take precedence over the collection's default configuration.
|
|
11
|
+
*
|
|
12
|
+
* @group Components
|
|
13
|
+
*/
|
|
14
|
+
export type CollectionPanelProps = {
|
|
15
|
+
/**
|
|
16
|
+
* The collection slug / path to display (e.g. "tasks", "clients").
|
|
17
|
+
* The collection must be registered in the Rebase context.
|
|
18
|
+
*/
|
|
19
|
+
path: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional title displayed above the collection.
|
|
22
|
+
* Set to `false` to hide the title entirely.
|
|
23
|
+
* Defaults to the collection's `name`.
|
|
24
|
+
*/
|
|
25
|
+
title?: string | false;
|
|
26
|
+
/**
|
|
27
|
+
* Force a specific view mode, overriding the collection's default.
|
|
28
|
+
*/
|
|
29
|
+
viewMode?: ViewMode;
|
|
30
|
+
/**
|
|
31
|
+
* Override the sort field.
|
|
32
|
+
*/
|
|
33
|
+
sort?: [string, "asc" | "desc"];
|
|
34
|
+
/**
|
|
35
|
+
* Maximum number of entities to display.
|
|
36
|
+
*/
|
|
37
|
+
limit?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Whether to sync filter/sort state with URL query params.
|
|
40
|
+
* Defaults to `false` (embedded panels shouldn't hijack the URL).
|
|
41
|
+
*/
|
|
42
|
+
updateUrl?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Override the entity open mode when clicking an entity.
|
|
45
|
+
*/
|
|
46
|
+
openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
|
|
47
|
+
/**
|
|
48
|
+
* Additional CSS class name for the container.
|
|
49
|
+
*/
|
|
50
|
+
className?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Any additional collection-level overrides (e.g. `previewProperties`,
|
|
53
|
+
* `enabledViews`, `entityActions`, `defaultFilter`, etc.).
|
|
54
|
+
*/
|
|
55
|
+
collectionOverrides?: Partial<EntityCollection>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* A high-level, reusable wrapper for embedding a Rebase collection view
|
|
59
|
+
* inside custom pages (dashboards, home pages, entity detail views, etc.).
|
|
60
|
+
*
|
|
61
|
+
* Usage:
|
|
62
|
+
* ```tsx
|
|
63
|
+
* import { CollectionPanel } from "@rebasepro/admin";
|
|
64
|
+
*
|
|
65
|
+
* function MyDashboard() {
|
|
66
|
+
* return (
|
|
67
|
+
* <div>
|
|
68
|
+
* <CollectionPanel path="tasks" title="Pending Tasks" />
|
|
69
|
+
* <CollectionPanel
|
|
70
|
+
* path="clients"
|
|
71
|
+
* viewMode="table"
|
|
72
|
+
* collectionOverrides={{
|
|
73
|
+
* defaultFilter: { status: ["!=", "completed"] }
|
|
74
|
+
* }}
|
|
75
|
+
* />
|
|
76
|
+
* </div>
|
|
77
|
+
* );
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @group Components
|
|
82
|
+
*/
|
|
83
|
+
export declare function CollectionPanel({ path, title, viewMode, sort, limit, updateUrl, openEntityMode, className, collectionOverrides }: CollectionPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import type { EntityCollection } from "@rebasepro/types";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { EntityStatus } from "@rebasepro/types";
|
|
4
|
-
export declare const MAIN_TAB_VALUE = "__main_##Q$SC^#S6";
|
|
5
|
-
export declare const JSON_TAB_VALUE = "__json";
|
|
6
|
-
export declare const HISTORY_TAB_VALUE = "__rebase_history";
|
|
7
4
|
export type BarActionsParams = {
|
|
8
5
|
values: object;
|
|
9
6
|
status: EntityStatus;
|
|
@@ -2,9 +2,8 @@ import type { EntityCollection } from "@rebasepro/types";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { Entity, EntityStatus } from "@rebasepro/types";
|
|
4
4
|
import type { EntityFormProps, OnUpdateParams } from "../types/components/EntityFormProps";
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
export declare const HISTORY_TAB_VALUE = "__rebase_history";
|
|
5
|
+
import { MAIN_TAB_VALUE, JSON_TAB_VALUE, HISTORY_TAB_VALUE } from "../util/entity_view_constants";
|
|
6
|
+
export { MAIN_TAB_VALUE, JSON_TAB_VALUE, HISTORY_TAB_VALUE };
|
|
8
7
|
export type BarActionsParams = {
|
|
9
8
|
values: object;
|
|
10
9
|
status: EntityStatus;
|
|
@@ -13,7 +13,7 @@ export interface RebaseRouteDefsProps {
|
|
|
13
13
|
* Route definitions for the CMS.
|
|
14
14
|
*
|
|
15
15
|
* Defines all standard routes: home, studio home, collection view,
|
|
16
|
-
* settings,
|
|
16
|
+
* settings, debug, custom views, and a catch-all 404.
|
|
17
17
|
*
|
|
18
18
|
* **Independently usable**: Use this when you want Rebase routes
|
|
19
19
|
* inside your own layout/navigation setup.
|
|
@@ -6,7 +6,7 @@ export type SelectableTableProps<M extends Record<string, unknown>> = {
|
|
|
6
6
|
/**
|
|
7
7
|
* Callback when a cell value changes.
|
|
8
8
|
*/
|
|
9
|
-
onValueChange?: OnCellValueChange<
|
|
9
|
+
onValueChange?: OnCellValueChange<unknown, M>;
|
|
10
10
|
columns: VirtualTableColumn[];
|
|
11
11
|
cellRenderer: React.ComponentType<CellRendererParams<Entity<M>>>;
|
|
12
12
|
/**
|
|
@@ -66,7 +66,7 @@ export type SelectableTableProps<M extends Record<string, unknown>> = {
|
|
|
66
66
|
* bust the cell memo comparator, triggering re-render of cells
|
|
67
67
|
* even when rowData hasn't changed.
|
|
68
68
|
*/
|
|
69
|
-
extraData?:
|
|
69
|
+
extraData?: unknown;
|
|
70
70
|
};
|
|
71
71
|
/**
|
|
72
72
|
* This component is in charge of rendering a collection table with a high
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { EntityCollectionTableController } from "@rebasepro/core";
|
|
3
3
|
export declare const SelectableTableContext: React.Context<EntityCollectionTableController<Record<string, unknown>>>;
|
|
4
|
-
export declare const useSelectableTableController: () => EntityCollectionTableController<
|
|
4
|
+
export declare const useSelectableTableController: <M extends Record<string, unknown> = Record<string, unknown>>() => EntityCollectionTableController<M>;
|
|
@@ -13,9 +13,9 @@ import { SelectedCellProps } from "@rebasepro/types";
|
|
|
13
13
|
* derivation actually changed will re-render.
|
|
14
14
|
*/
|
|
15
15
|
export declare function createSelectionStore(): {
|
|
16
|
-
getSnapshot: () => SelectedCellProps
|
|
16
|
+
getSnapshot: () => SelectedCellProps | undefined;
|
|
17
17
|
subscribe: (listener: () => void) => () => void;
|
|
18
|
-
select: (cell: SelectedCellProps
|
|
18
|
+
select: (cell: SelectedCellProps | undefined) => void;
|
|
19
19
|
};
|
|
20
20
|
export type SelectionStore = ReturnType<typeof createSelectionStore>;
|
|
21
21
|
/**
|
|
@@ -24,6 +24,6 @@ export type SelectionStore = ReturnType<typeof createSelectionStore>;
|
|
|
24
24
|
* `selected` boolean actually changes (not on every store update).
|
|
25
25
|
*/
|
|
26
26
|
export declare function useCellSelected(store: {
|
|
27
|
-
getSnapshot: () => SelectedCellProps
|
|
27
|
+
getSnapshot: () => SelectedCellProps | undefined;
|
|
28
28
|
subscribe: (listener: () => void) => () => void;
|
|
29
29
|
}, propertyKey: string, entityPath: string, entityId: string | number): boolean;
|
package/dist/editor.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
|
|
2
2
|
import React__default, { createContext, useContext, forwardRef, useRef, useState, useEffect, useLayoutEffect, useMemo } from "react";
|
|
3
|
+
import { NodeSelection, PluginKey, Plugin, TextSelection, EditorState, Selection } from "prosemirror-state";
|
|
3
4
|
import { Slot, defaultBorderMixin, cls, TypeIcon, iconSize, CheckSquareIcon, Heading1Icon, Heading2Icon, Heading3Icon, ListIcon, ListOrderedIcon, QuoteIcon, CodeIcon, ImageIcon, TableIcon, Wand2Icon, TextField, IconButton, Tooltip, ChevronDownIcon, CheckIcon, Popover, Button, focusedDisabled, Trash2Icon, BoldIcon, ItalicIcon, UnderlineIcon, StrikethroughIcon, Label, Checkbox, useInjectStyles, Separator, TextareaAutosize } from "@rebasepro/ui";
|
|
4
5
|
import { useTranslation } from "@rebasepro/core";
|
|
5
6
|
import { c } from "react-compiler-runtime";
|
|
6
7
|
import { autoUpdate, computePosition, offset, flip, shift } from "@floating-ui/dom";
|
|
7
|
-
import { NodeSelection, PluginKey, Plugin, TextSelection, EditorState } from "prosemirror-state";
|
|
8
8
|
import { Fragment, DOMParser, DOMSerializer } from "prosemirror-model";
|
|
9
9
|
import { setBlockType, wrapIn, toggleMark, baseKeymap } from "prosemirror-commands";
|
|
10
10
|
import { wrapInList, sinkListItem, liftListItem, splitListItem } from "prosemirror-schema-list";
|
|
@@ -3589,16 +3589,23 @@ const RebaseEditor = ({
|
|
|
3589
3589
|
}
|
|
3590
3590
|
}, [highlight?.from, highlight?.to]);
|
|
3591
3591
|
const proseClass = proseClasses[textSize];
|
|
3592
|
-
return /* @__PURE__ */ jsxs("div", { className: "relative min-h-[200px] w-full", children: [
|
|
3592
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative min-h-[200px] w-full flex flex-col", children: [
|
|
3593
3593
|
/* @__PURE__ */ jsx("button", { type: "button", onClick: handleToggleMarkdown, title: isMarkdownMode ? "Switch to Visual Editor" : "Switch to Markdown", className: "absolute top-2 right-2 z-10 px-2 py-1 text-xs font-medium text-surface-400 hover:text-surface-700 dark:text-surface-600 dark:hover:text-surface-300 transition-colors opacity-50 hover:opacity-100 bg-transparent rounded", children: isMarkdownMode ? "Visual" : "Markdown" }),
|
|
3594
3594
|
/* @__PURE__ */ jsxs(ProseMirrorContext.Provider, { value: useMemo(() => ({
|
|
3595
3595
|
state,
|
|
3596
3596
|
view
|
|
3597
3597
|
}), [state, view]), children: [
|
|
3598
3598
|
/* @__PURE__ */ jsxs("div", { style: {
|
|
3599
|
-
display: isMarkdownMode ? "none" : "
|
|
3600
|
-
}, children: [
|
|
3601
|
-
/* @__PURE__ */ jsx("div", { ref: editorRef,
|
|
3599
|
+
display: isMarkdownMode ? "none" : "flex"
|
|
3600
|
+
}, className: "flex-1 flex flex-col", children: [
|
|
3601
|
+
/* @__PURE__ */ jsx("div", { ref: editorRef, onClick: (e_3) => {
|
|
3602
|
+
if (view && e_3.target === e_3.currentTarget) {
|
|
3603
|
+
view.focus();
|
|
3604
|
+
const end = view.state.doc.content.size;
|
|
3605
|
+
const tr_1 = view.state.tr.setSelection(Selection.near(view.state.doc.resolve(end), -1));
|
|
3606
|
+
view.dispatch(tr_1);
|
|
3607
|
+
}
|
|
3608
|
+
}, className: cls("relative prose dark:prose-invert cursor-text flex-1", proseClass, "prose-headings:font-title prose-headings:font-normal prose-strong:font-semibold prose-code:font-normal prose-blockquote:font-normal prose-a:font-normal font-default focus:outline-none max-w-full py-4") }),
|
|
3602
3609
|
view && /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
3603
3610
|
/* @__PURE__ */ jsxs(EditorBubble, { options: {
|
|
3604
3611
|
placement: "top",
|
|
@@ -3630,6 +3637,9 @@ const RebaseEditor = ({
|
|
|
3630
3637
|
const cssStyles = `
|
|
3631
3638
|
.ProseMirror {
|
|
3632
3639
|
box-shadow: none !important;
|
|
3640
|
+
padding-left: 2rem;
|
|
3641
|
+
padding-right: 2rem;
|
|
3642
|
+
min-height: 100%;
|
|
3633
3643
|
}
|
|
3634
3644
|
.ProseMirror .is-editor-empty:first-child::before {
|
|
3635
3645
|
content: attr(data-placeholder);
|