drf-react-by-schema 0.28.22 → 0.28.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/@types/index.d.ts +8 -0
  2. package/dist/@types/index.d.ts.map +1 -1
  3. package/dist/api.d.ts +1 -1
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +4 -1
  6. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -1
  7. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +17 -2
  8. package/dist/components/GenericModelList.d.ts.map +1 -1
  9. package/dist/components/GenericModelList.js +6 -2
  10. package/dist/components/GenericRelatedModelList.d.ts.map +1 -1
  11. package/dist/components/GenericRelatedModelList.js +7 -1
  12. package/dist/components/HtmlContent.d.ts +13 -0
  13. package/dist/components/HtmlContent.d.ts.map +1 -0
  14. package/dist/components/HtmlContent.js +148 -0
  15. package/dist/components/details/DetailFieldBySchema.d.ts.map +1 -1
  16. package/dist/components/details/DetailFieldBySchema.js +7 -0
  17. package/dist/components/forms/FieldBySchema.d.ts.map +1 -1
  18. package/dist/components/forms/FieldBySchema.js +5 -0
  19. package/dist/components/forms/inputs/HtmlFieldBySchema.d.ts +9 -0
  20. package/dist/components/forms/inputs/HtmlFieldBySchema.d.ts.map +1 -0
  21. package/dist/components/forms/inputs/HtmlFieldBySchema.js +55 -0
  22. package/dist/components/forms/inputs/RichTextEditorInput.d.ts +24 -0
  23. package/dist/components/forms/inputs/RichTextEditorInput.d.ts.map +1 -0
  24. package/dist/components/forms/inputs/RichTextEditorInput.js +252 -0
  25. package/dist/context/DRFReactBySchemaContext.d.ts +3 -1
  26. package/dist/context/DRFReactBySchemaContext.d.ts.map +1 -1
  27. package/dist/context/DRFReactBySchemaContext.js +10 -1
  28. package/dist/context/DRFReactBySchemaProvider.d.ts +1 -1
  29. package/dist/context/DRFReactBySchemaProvider.d.ts.map +1 -1
  30. package/dist/context/DRFReactBySchemaProvider.js +3 -2
  31. package/dist/index.d.ts +4 -2
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +6 -1
  34. package/dist/styles/texts.d.ts +25 -0
  35. package/dist/styles/texts.d.ts.map +1 -1
  36. package/dist/styles/texts.js +25 -0
  37. package/dist/utils/utils.d.ts +12 -0
  38. package/dist/utils/utils.d.ts.map +1 -1
  39. package/dist/utils/utils.js +69 -0
  40. package/package.json +13 -1
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.default = HtmlFieldBySchema;
18
+ const react_1 = __importDefault(require("react"));
19
+ const react_hook_form_1 = require("react-hook-form");
20
+ const utils_1 = require("../../../utils");
21
+ const TextFieldBySchema_1 = __importDefault(require("./TextFieldBySchema"));
22
+ const RichTextEditorInput_1 = __importDefault(require("./RichTextEditorInput"));
23
+ /**
24
+ * Rich-text field (`model_html`): the backend column holds HTML. Renders a
25
+ * Tiptap editor when the app has `@tiptap/react` + `@tiptap/starter-kit`
26
+ * installed, and falls back to a multiline text field otherwise.
27
+ */
28
+ function HtmlFieldBySchema(_a) {
29
+ var _b;
30
+ var { name, schema, control, errors, fieldKey, index, sx, disabled, autoFocus, onValueChange } = _a, other = __rest(_a, ["name", "schema", "control", "errors", "fieldKey", "index", "sx", "disabled", "autoFocus", "onValueChange"]);
31
+ const libraries = (0, utils_1.getRichTextLibraries)();
32
+ if (!libraries) {
33
+ return (react_1.default.createElement(TextFieldBySchema_1.default, Object.assign({ name: name, schema: schema, control: control, errors: errors, multiline: true, minRows: 6, fieldKey: fieldKey, index: index, sx: sx, disabled: disabled, autoFocus: autoFocus }, other)));
34
+ }
35
+ if (!(name in schema)) {
36
+ console.error(`HtmlFieldBySchema: could not find schema for ${name}! Not rendering`);
37
+ return;
38
+ }
39
+ const fieldSchema = schema[name];
40
+ if (fieldKey && index && index >= 0) {
41
+ name = `${fieldKey}.${index}.${name}`;
42
+ }
43
+ const { error, helperText } = fieldKey && index && index >= 0
44
+ ? (0, utils_1.errorProps)({ fieldKey, index, fieldKeyProp: name, errors })
45
+ : {
46
+ error: errors && Boolean(errors[name]),
47
+ helperText: errors && errors[name] ? (_b = errors[name]) === null || _b === void 0 ? void 0 : _b.message : fieldSchema.help_text || '',
48
+ };
49
+ return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => (react_1.default.createElement(RichTextEditorInput_1.default, { libraries: libraries, id: name, label: fieldSchema.label, required: (0, utils_1.isFieldRequired)(fieldSchema), disabled: fieldSchema.disabled === true || disabled, error: error, helperText: helperText, value: field.value, onChange: (html) => {
50
+ field.onChange(html);
51
+ if (onValueChange) {
52
+ onValueChange(html);
53
+ }
54
+ }, onBlur: field.onBlur, sx: sx, autoFocus: autoFocus })) }));
55
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import type { SxProps, Theme } from '@mui/material/styles';
3
+ import type { GenericValue } from '../../../@types';
4
+ export interface RichTextEditorInputProps {
5
+ /** Tiptap modules resolved by `getRichTextLibraries()`. */
6
+ libraries: GenericValue;
7
+ id?: string;
8
+ label?: string;
9
+ required?: boolean;
10
+ disabled?: boolean;
11
+ error?: boolean;
12
+ helperText?: string;
13
+ value?: string | null;
14
+ onChange: (html: string) => void;
15
+ onBlur?: () => void;
16
+ sx?: SxProps<Theme>;
17
+ autoFocus?: boolean;
18
+ }
19
+ /**
20
+ * WYSIWYG editor for `model_html` fields: Tiptap with an MUI toolbar. The value
21
+ * is HTML, the same format the Django admin (Summernote) writes to the column.
22
+ */
23
+ export default function RichTextEditorInput({ libraries, id, label, required, disabled, error, helperText, value, onChange, onBlur, sx, autoFocus, }: RichTextEditorInputProps): React.JSX.Element | null;
24
+ //# sourceMappingURL=RichTextEditorInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichTextEditorInput.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/RichTextEditorInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAkC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAoCpD,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,SAAS,EAAE,YAAY,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgND;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,SAAS,EACT,EAAE,EACF,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,EACR,MAAM,EACN,EAAqB,EACrB,SAAS,GACV,EAAE,wBAAwB,4BAsF1B"}
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.default = RichTextEditorInput;
40
+ const react_1 = __importStar(require("react"));
41
+ const styles_1 = require("@mui/material/styles");
42
+ const Box_1 = __importDefault(require("@mui/material/Box"));
43
+ const Button_1 = __importDefault(require("@mui/material/Button"));
44
+ const Dialog_1 = __importDefault(require("@mui/material/Dialog"));
45
+ const DialogActions_1 = __importDefault(require("@mui/material/DialogActions"));
46
+ const DialogContent_1 = __importDefault(require("@mui/material/DialogContent"));
47
+ const DialogTitle_1 = __importDefault(require("@mui/material/DialogTitle"));
48
+ const FormControl_1 = __importDefault(require("@mui/material/FormControl"));
49
+ const FormHelperText_1 = __importDefault(require("@mui/material/FormHelperText"));
50
+ const MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
51
+ const Select_1 = __importDefault(require("@mui/material/Select"));
52
+ const Stack_1 = __importDefault(require("@mui/material/Stack"));
53
+ const TextField_1 = __importDefault(require("@mui/material/TextField"));
54
+ const ToggleButton_1 = __importDefault(require("@mui/material/ToggleButton"));
55
+ const Tooltip_1 = __importDefault(require("@mui/material/Tooltip"));
56
+ const Typography_1 = __importDefault(require("@mui/material/Typography"));
57
+ const FormatBold_1 = __importDefault(require("@mui/icons-material/FormatBold"));
58
+ const FormatItalic_1 = __importDefault(require("@mui/icons-material/FormatItalic"));
59
+ const FormatUnderlined_1 = __importDefault(require("@mui/icons-material/FormatUnderlined"));
60
+ const StrikethroughS_1 = __importDefault(require("@mui/icons-material/StrikethroughS"));
61
+ const FormatListBulleted_1 = __importDefault(require("@mui/icons-material/FormatListBulleted"));
62
+ const FormatListNumbered_1 = __importDefault(require("@mui/icons-material/FormatListNumbered"));
63
+ const FormatQuote_1 = __importDefault(require("@mui/icons-material/FormatQuote"));
64
+ const Code_1 = __importDefault(require("@mui/icons-material/Code"));
65
+ const Link_1 = __importDefault(require("@mui/icons-material/Link"));
66
+ const LinkOff_1 = __importDefault(require("@mui/icons-material/LinkOff"));
67
+ const Undo_1 = __importDefault(require("@mui/icons-material/Undo"));
68
+ const Redo_1 = __importDefault(require("@mui/icons-material/Redo"));
69
+ const FormatClear_1 = __importDefault(require("@mui/icons-material/FormatClear"));
70
+ const HorizontalRule_1 = __importDefault(require("@mui/icons-material/HorizontalRule"));
71
+ const texts_1 = require("../../../styles/texts");
72
+ const editorSx = {
73
+ px: 2,
74
+ py: 1.5,
75
+ minHeight: 160,
76
+ '& .ProseMirror': { outline: 'none', minHeight: 140 },
77
+ '& .ProseMirror > * + *': { mt: 1 },
78
+ '& .ProseMirror p': { m: 0 },
79
+ '& .ProseMirror h1': { typography: 'h5', m: 0 },
80
+ '& .ProseMirror h2': { typography: 'h6', m: 0 },
81
+ '& .ProseMirror h3': { typography: 'subtitle1', m: 0 },
82
+ '& .ProseMirror ul, & .ProseMirror ol': { pl: 3, my: 0 },
83
+ '& .ProseMirror blockquote': {
84
+ borderLeft: 3,
85
+ borderColor: 'divider',
86
+ pl: 2,
87
+ ml: 0,
88
+ color: 'text.secondary',
89
+ },
90
+ '& .ProseMirror pre': {
91
+ p: 1,
92
+ borderRadius: 1,
93
+ backgroundColor: 'action.hover',
94
+ overflowX: 'auto',
95
+ },
96
+ '& .ProseMirror a': { color: 'primary.main', textDecoration: 'underline' },
97
+ '& .ProseMirror hr': { border: 0, borderTop: 1, borderColor: 'divider' },
98
+ };
99
+ /** Empty editor content comes back as `<p></p>`; the form expects an empty string. */
100
+ function normalizeHtml(value) {
101
+ const html = (value !== null && value !== void 0 ? value : '').trim();
102
+ return html === '<p></p>' ? '' : html;
103
+ }
104
+ function Toolbar({ editor, disabled, texts }) {
105
+ const [linkOpen, setLinkOpen] = (0, react_1.useState)(false);
106
+ const [linkUrl, setLinkUrl] = (0, react_1.useState)('');
107
+ if (!editor) {
108
+ return null;
109
+ }
110
+ const isActive = (name, attrs) => editor.isActive(name, attrs);
111
+ const blockValue = isActive('heading', { level: 1 })
112
+ ? 'h1'
113
+ : isActive('heading', { level: 2 })
114
+ ? 'h2'
115
+ : isActive('heading', { level: 3 })
116
+ ? 'h3'
117
+ : 'p';
118
+ const setBlock = (value) => {
119
+ const chain = editor.chain().focus();
120
+ if (value === 'p') {
121
+ chain.setParagraph().run();
122
+ }
123
+ else {
124
+ chain.setHeading({ level: Number(value.slice(1)) }).run();
125
+ }
126
+ };
127
+ const openLinkDialog = () => {
128
+ setLinkUrl(editor.getAttributes('link').href || '');
129
+ setLinkOpen(true);
130
+ };
131
+ const applyLink = () => {
132
+ const href = linkUrl.trim();
133
+ if (!href) {
134
+ editor.chain().focus().extendMarkRange('link').unsetLink().run();
135
+ }
136
+ else {
137
+ editor.chain().focus().extendMarkRange('link').setLink({ href }).run();
138
+ }
139
+ setLinkOpen(false);
140
+ };
141
+ const button = (title, icon, active, onClick, activeValue = title) => (react_1.default.createElement(Tooltip_1.default, { title: title, key: title },
142
+ react_1.default.createElement("span", null,
143
+ react_1.default.createElement(ToggleButton_1.default, { value: activeValue, size: "small", selected: active, disabled: disabled, onChange: onClick, sx: { border: 0, borderRadius: 1, p: 0.5 } }, icon))));
144
+ return (react_1.default.createElement(Stack_1.default, { direction: "row", flexWrap: "wrap", alignItems: "center", gap: 0.25, sx: {
145
+ p: 0.5,
146
+ borderBottom: 1,
147
+ borderColor: 'divider',
148
+ backgroundColor: 'action.hover',
149
+ } },
150
+ react_1.default.createElement(FormControl_1.default, { size: "small", variant: "standard", sx: { minWidth: 110, mx: 0.5 } },
151
+ react_1.default.createElement(Select_1.default, { value: blockValue, disabled: disabled, disableUnderline: true, onChange: (event) => setBlock(event.target.value), inputProps: { 'aria-label': texts.paragraph }, sx: { fontSize: '0.8rem' } },
152
+ react_1.default.createElement(MenuItem_1.default, { value: "p" }, texts.paragraph),
153
+ react_1.default.createElement(MenuItem_1.default, { value: "h1" }, texts.heading1),
154
+ react_1.default.createElement(MenuItem_1.default, { value: "h2" }, texts.heading2),
155
+ react_1.default.createElement(MenuItem_1.default, { value: "h3" }, texts.heading3))),
156
+ button(texts.bold, react_1.default.createElement(FormatBold_1.default, { fontSize: "small" }), isActive('bold'), () => editor.chain().focus().toggleBold().run()),
157
+ button(texts.italic, react_1.default.createElement(FormatItalic_1.default, { fontSize: "small" }), isActive('italic'), () => editor.chain().focus().toggleItalic().run()),
158
+ button(texts.underline, react_1.default.createElement(FormatUnderlined_1.default, { fontSize: "small" }), isActive('underline'), () => editor.chain().focus().toggleUnderline().run()),
159
+ button(texts.strike, react_1.default.createElement(StrikethroughS_1.default, { fontSize: "small" }), isActive('strike'), () => editor.chain().focus().toggleStrike().run()),
160
+ button(texts.bulletList, react_1.default.createElement(FormatListBulleted_1.default, { fontSize: "small" }), isActive('bulletList'), () => editor.chain().focus().toggleBulletList().run()),
161
+ button(texts.orderedList, react_1.default.createElement(FormatListNumbered_1.default, { fontSize: "small" }), isActive('orderedList'), () => editor.chain().focus().toggleOrderedList().run()),
162
+ button(texts.blockquote, react_1.default.createElement(FormatQuote_1.default, { fontSize: "small" }), isActive('blockquote'), () => editor.chain().focus().toggleBlockquote().run()),
163
+ button(texts.codeBlock, react_1.default.createElement(Code_1.default, { fontSize: "small" }), isActive('codeBlock'), () => editor.chain().focus().toggleCodeBlock().run()),
164
+ button(texts.horizontalRule, react_1.default.createElement(HorizontalRule_1.default, { fontSize: "small" }), false, () => editor.chain().focus().setHorizontalRule().run()),
165
+ button(texts.link, react_1.default.createElement(Link_1.default, { fontSize: "small" }), isActive('link'), openLinkDialog),
166
+ button(texts.clearFormatting, react_1.default.createElement(FormatClear_1.default, { fontSize: "small" }), false, () => editor.chain().focus().unsetAllMarks().clearNodes().run()),
167
+ button(texts.undo, react_1.default.createElement(Undo_1.default, { fontSize: "small" }), false, () => editor.chain().focus().undo().run(), 'undo'),
168
+ button(texts.redo, react_1.default.createElement(Redo_1.default, { fontSize: "small" }), false, () => editor.chain().focus().redo().run(), 'redo'),
169
+ button(texts.linkRemove, react_1.default.createElement(LinkOff_1.default, { fontSize: "small" }), false, () => editor.chain().focus().extendMarkRange('link').unsetLink().run(), 'unlink'),
170
+ react_1.default.createElement(Dialog_1.default, { open: linkOpen, onClose: () => setLinkOpen(false), fullWidth: true, maxWidth: "xs" },
171
+ react_1.default.createElement(DialogTitle_1.default, null, texts.linkTitle),
172
+ react_1.default.createElement(DialogContent_1.default, null,
173
+ react_1.default.createElement(TextField_1.default, { autoFocus: true, fullWidth: true, margin: "dense", label: texts.linkUrl, value: linkUrl, onChange: (event) => setLinkUrl(event.target.value), onKeyDown: (event) => {
174
+ if (event.key === 'Enter') {
175
+ event.preventDefault();
176
+ applyLink();
177
+ }
178
+ } })),
179
+ react_1.default.createElement(DialogActions_1.default, null,
180
+ react_1.default.createElement(Button_1.default, { onClick: () => setLinkOpen(false) }, texts.linkCancel),
181
+ react_1.default.createElement(Button_1.default, { variant: "contained", onClick: applyLink }, texts.linkApply)))));
182
+ }
183
+ /**
184
+ * WYSIWYG editor for `model_html` fields: Tiptap with an MUI toolbar. The value
185
+ * is HTML, the same format the Django admin (Summernote) writes to the column.
186
+ */
187
+ function RichTextEditorInput({ libraries, id, label, required, disabled, error, helperText, value, onChange, onBlur, sx = { mt: 2, mb: 1 }, autoFocus, }) {
188
+ const theme = (0, styles_1.useTheme)();
189
+ const texts = (0, react_1.useMemo)(() => (0, texts_1.getThemeTexts)(theme).richText, [theme]);
190
+ // Toolbar state depends on the current selection, which is not a React state.
191
+ const [, setTick] = (0, react_1.useState)(0);
192
+ const refreshToolbar = () => setTick((tick) => tick + 1);
193
+ const onChangeRef = (0, react_1.useRef)(onChange);
194
+ onChangeRef.current = onChange;
195
+ const { useEditor, EditorContent, StarterKit } = libraries;
196
+ const editor = useEditor({
197
+ extensions: [StarterKit.configure({ link: { openOnClick: false } })],
198
+ content: normalizeHtml(value),
199
+ editable: !disabled,
200
+ onUpdate: ({ editor: current }) => {
201
+ onChangeRef.current(current.isEmpty ? '' : current.getHTML());
202
+ },
203
+ onSelectionUpdate: () => refreshToolbar(),
204
+ });
205
+ // Keep the editor in sync when the form value changes from the outside
206
+ // (e.g. loading an existing record), without emitting an update back.
207
+ (0, react_1.useEffect)(() => {
208
+ if (!editor) {
209
+ return;
210
+ }
211
+ const incoming = normalizeHtml(value);
212
+ if (incoming === normalizeHtml(editor.getHTML())) {
213
+ return;
214
+ }
215
+ editor.commands.setContent(incoming, { emitUpdate: false });
216
+ }, [editor, value]);
217
+ (0, react_1.useEffect)(() => {
218
+ if (editor) {
219
+ editor.setEditable(!disabled);
220
+ }
221
+ }, [editor, disabled]);
222
+ (0, react_1.useEffect)(() => {
223
+ if (editor && autoFocus) {
224
+ editor.commands.focus('end');
225
+ }
226
+ }, [editor, autoFocus]);
227
+ if (!editor) {
228
+ return null;
229
+ }
230
+ return (react_1.default.createElement(Box_1.default, { sx: sx },
231
+ label && (react_1.default.createElement(Typography_1.default, { component: "label", htmlFor: id, variant: "caption", sx: {
232
+ display: 'block',
233
+ fontWeight: 600,
234
+ mb: 0.5,
235
+ color: error ? 'error.main' : 'text.secondary',
236
+ } },
237
+ label,
238
+ required ? ' *' : '')),
239
+ react_1.default.createElement(Box_1.default, { onBlur: onBlur, sx: {
240
+ border: 1,
241
+ borderColor: error ? 'error.main' : 'divider',
242
+ borderRadius: 1,
243
+ backgroundColor: disabled ? 'action.disabledBackground' : 'background.paper',
244
+ '&:focus-within': {
245
+ borderColor: error ? 'error.main' : 'primary.main',
246
+ },
247
+ } },
248
+ react_1.default.createElement(Toolbar, { editor: editor, disabled: disabled, texts: texts }),
249
+ react_1.default.createElement(Box_1.default, { sx: editorSx },
250
+ react_1.default.createElement(EditorContent, { editor: editor, id: id }))),
251
+ helperText && react_1.default.createElement(FormHelperText_1.default, { error: error }, helperText)));
252
+ }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Theme } from '@mui/material/styles';
3
- import { SchemasType } from '../@types';
3
+ import { SchemasType, PaginationConfig } from '../@types';
4
+ export declare const DEFAULT_PAGINATION: PaginationConfig;
4
5
  export interface ServerEndPoint {
5
6
  url: string;
6
7
  apiTokenUrl: string;
@@ -22,6 +23,7 @@ interface DRFReactBySchemaContextType {
22
23
  isInBatches?: boolean;
23
24
  firstBatchLength?: number;
24
25
  schemas?: SchemasType;
26
+ pagination?: PaginationConfig;
25
27
  }
26
28
  export interface DRFReactBySchemaProviderProps extends DRFReactBySchemaContextType {
27
29
  children: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"DRFReactBySchemaContext.d.ts","sourceRoot":"","sources":["../../src/context/DRFReactBySchemaContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,2BAA2B;IACnC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;IAChF,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,uBAAuB,4CAMlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,mCAG/B,CAAC"}
1
+ {"version":3,"file":"DRFReactBySchemaContext.d.ts","sourceRoot":"","sources":["../../src/context/DRFReactBySchemaContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAM1D,eAAO,MAAM,kBAAkB,EAAE,gBAIhC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,2BAA2B;IACnC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC;CAC/B;AAED,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;IAChF,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,uBAAuB,4CAOlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,mCAG/B,CAAC"}
@@ -3,15 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useDRFReactBySchema = exports.DRFReactBySchemaContext = void 0;
6
+ exports.useDRFReactBySchema = exports.DRFReactBySchemaContext = exports.DEFAULT_PAGINATION = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const theme_1 = __importDefault(require("../styles/theme"));
9
+ //: Fallback pagination config (mirrors the Django defaults). A consumer app can
10
+ //: override it via the provider ``pagination`` prop, normally the values written
11
+ //: by ``sync_react`` to ``src/drfReactBySchema/pagination.ts``.
12
+ exports.DEFAULT_PAGINATION = {
13
+ perPage: 50,
14
+ pageSizeOptions: [5, 10, 25, 50, 100, 200],
15
+ maxPageSize: 500,
16
+ };
9
17
  exports.DRFReactBySchemaContext = react_1.default.createContext({
10
18
  serverEndPoint: null,
11
19
  theme: theme_1.default,
12
20
  isInBatches: true,
13
21
  firstBatchLength: 100,
14
22
  schemas: undefined,
23
+ pagination: exports.DEFAULT_PAGINATION,
15
24
  });
16
25
  const useDRFReactBySchema = () => {
17
26
  const context = react_1.default.useContext(exports.DRFReactBySchemaContext);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { DRFReactBySchemaProviderProps } from './DRFReactBySchemaContext';
3
- declare const DRFReactBySchemaProvider: ({ serverEndPoint, theme, isInBatches, firstBatchLength, schemas, children, }: DRFReactBySchemaProviderProps) => React.JSX.Element;
3
+ declare const DRFReactBySchemaProvider: ({ serverEndPoint, theme, isInBatches, firstBatchLength, schemas, pagination, children, }: DRFReactBySchemaProviderProps) => React.JSX.Element;
4
4
  export default DRFReactBySchemaProvider;
5
5
  //# sourceMappingURL=DRFReactBySchemaProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DRFReactBySchemaProvider.d.ts","sourceRoot":"","sources":["../../src/context/DRFReactBySchemaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,EAGL,6BAA6B,EAC9B,MAAM,2BAA2B,CAAC;AAEnC,QAAA,MAAM,wBAAwB,GAAI,8EAO/B,6BAA6B,sBAyE/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DRFReactBySchemaProvider.d.ts","sourceRoot":"","sources":["../../src/context/DRFReactBySchemaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,EAGL,6BAA6B,EAE9B,MAAM,2BAA2B,CAAC;AAEnC,QAAA,MAAM,wBAAwB,GAAI,0FAQ/B,6BAA6B,sBA0E/B,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -43,7 +43,7 @@ const utils_1 = require("@mui/utils");
43
43
  const theme_1 = __importDefault(require("../styles/theme"));
44
44
  const Overlays_1 = __importDefault(require("./Overlays"));
45
45
  const DRFReactBySchemaContext_1 = require("./DRFReactBySchemaContext");
46
- const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBatchLength, schemas, children, }) => {
46
+ const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBatchLength, schemas, pagination, children, }) => {
47
47
  const newServerEndPoint = (0, react_1.useMemo)(() => {
48
48
  if (!serverEndPoint) {
49
49
  return null;
@@ -97,7 +97,8 @@ const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBat
97
97
  isInBatches,
98
98
  firstBatchLength,
99
99
  schemas,
100
- }), [firstBatchLength, isInBatches, mergedTheme, newServerEndPoint, schemas]);
100
+ pagination: pagination !== null && pagination !== void 0 ? pagination : DRFReactBySchemaContext_1.DEFAULT_PAGINATION,
101
+ }), [firstBatchLength, isInBatches, mergedTheme, newServerEndPoint, schemas, pagination]);
101
102
  return (react_1.default.createElement(styles_1.ThemeProvider, { theme: mergedTheme },
102
103
  react_1.default.createElement(CssBaseline_1.default, null),
103
104
  react_1.default.createElement(DRFReactBySchemaContext_1.DRFReactBySchemaContext.Provider, { value: contextValue },
package/dist/index.d.ts CHANGED
@@ -21,6 +21,8 @@ import FormWatcher from './components/forms/FormWatcher';
21
21
  import FormBySchema from './components/forms/FormBySchema';
22
22
  import FieldBySchema from './components/forms/FieldBySchema';
23
23
  import TextFieldBySchema from './components/forms/inputs/TextFieldBySchema';
24
+ import HtmlFieldBySchema from './components/forms/inputs/HtmlFieldBySchema';
25
+ import HtmlContent from './components/HtmlContent';
24
26
  import BooleanFieldBySchema from './components/forms/inputs/BooleanFieldBySchema';
25
27
  import DesktopDatePickerBySchema from './components/forms/inputs/DesktopDatePickerBySchema';
26
28
  import DesktopDateTimePickerBySchema from './components/forms/inputs/DesktopDateTimePickerBySchema';
@@ -30,9 +32,9 @@ import FloatFieldBySchema from './components/forms/inputs/FloatFieldBySchema';
30
32
  export { applyDefaultLeafletIcon, applyThemeMarkerIcon, DRF_REACT_BY_SCHEMA_MARKER_ICON, } from './components/forms/inputs/leafletMarker';
31
33
  export { DEFAULT_LAYERS } from './components/forms/inputs/MapGeometryPicker';
32
34
  export { getThemeTexts } from './styles/texts';
33
- export type { DRFReactBySchemaTexts, GeometryTexts, FormTexts, AuthTexts } from './styles/texts';
35
+ export type { DRFReactBySchemaTexts, GeometryTexts, FormTexts, AuthTexts, RichTextTexts, } from './styles/texts';
34
36
  import DetailBySchema from './components/details/DetailBySchema';
35
37
  import DetailFieldBySchema from './components/details/DetailFieldBySchema';
36
- export { DRFReactBySchemaProvider, useAPIWrapper, Form, DialogFormBySchema, ChangePasswordForm, ForgotPasswordForm, DataGridBySchemaEditable, GenericModelList, GenericRelatedModelList, DataTotals, DialogActions, FileTypeIcon, SelectEditInputCell, GridDateInput, GridDecimalInput, GridPatternInput, BooleanInputCell, FormWatcher, FormBySchema, FieldBySchema, TextFieldBySchema, BooleanFieldBySchema, DesktopDatePickerBySchema, DesktopDateTimePickerBySchema, EditableAutocompleteFieldBySchema, AutocompleteFieldBySchema, FloatFieldBySchema, DetailBySchema, DetailFieldBySchema, setAuthToken, emptyByType, getChoiceByValue, populateValues, enrichChoices, buildGenericYupValidationSchema, errorProps, getFieldErrorsFromResponse, getTmpId, isTmpId, getPatternFormat, clearJWT, hasJWT, slugToCamelCase, AUTH_EXPIRED_EVENT, };
38
+ export { DRFReactBySchemaProvider, useAPIWrapper, Form, DialogFormBySchema, ChangePasswordForm, ForgotPasswordForm, DataGridBySchemaEditable, GenericModelList, GenericRelatedModelList, DataTotals, DialogActions, FileTypeIcon, HtmlContent, SelectEditInputCell, GridDateInput, GridDecimalInput, GridPatternInput, BooleanInputCell, FormWatcher, FormBySchema, FieldBySchema, TextFieldBySchema, HtmlFieldBySchema, BooleanFieldBySchema, DesktopDatePickerBySchema, DesktopDateTimePickerBySchema, EditableAutocompleteFieldBySchema, AutocompleteFieldBySchema, FloatFieldBySchema, DetailBySchema, DetailFieldBySchema, setAuthToken, emptyByType, getChoiceByValue, populateValues, enrichChoices, buildGenericYupValidationSchema, errorProps, getFieldErrorsFromResponse, getTmpId, isTmpId, getPatternFormat, clearJWT, hasJWT, slugToCamelCase, AUTH_EXPIRED_EVENT, };
37
39
  export * from './@types/index';
38
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,7 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.AUTH_EXPIRED_EVENT = exports.slugToCamelCase = exports.hasJWT = exports.clearJWT = exports.getPatternFormat = exports.isTmpId = exports.getTmpId = exports.getFieldErrorsFromResponse = exports.errorProps = exports.buildGenericYupValidationSchema = exports.enrichChoices = exports.populateValues = exports.getChoiceByValue = exports.emptyByType = exports.setAuthToken = exports.DetailFieldBySchema = exports.DetailBySchema = exports.FloatFieldBySchema = exports.AutocompleteFieldBySchema = exports.EditableAutocompleteFieldBySchema = exports.DesktopDateTimePickerBySchema = exports.DesktopDatePickerBySchema = exports.BooleanFieldBySchema = exports.TextFieldBySchema = exports.FieldBySchema = exports.FormBySchema = exports.FormWatcher = exports.BooleanInputCell = exports.GridPatternInput = exports.GridDecimalInput = exports.GridDateInput = exports.SelectEditInputCell = exports.FileTypeIcon = exports.DialogActions = exports.DataTotals = exports.GenericRelatedModelList = exports.GenericModelList = exports.DataGridBySchemaEditable = exports.ForgotPasswordForm = exports.ChangePasswordForm = exports.DialogFormBySchema = exports.Form = exports.useAPIWrapper = exports.DRFReactBySchemaProvider = exports.getThemeTexts = exports.DEFAULT_LAYERS = exports.DRF_REACT_BY_SCHEMA_MARKER_ICON = exports.applyThemeMarkerIcon = exports.applyDefaultLeafletIcon = void 0;
20
+ exports.slugToCamelCase = exports.hasJWT = exports.clearJWT = exports.getPatternFormat = exports.isTmpId = exports.getTmpId = exports.getFieldErrorsFromResponse = exports.errorProps = exports.buildGenericYupValidationSchema = exports.enrichChoices = exports.populateValues = exports.getChoiceByValue = exports.emptyByType = exports.setAuthToken = exports.DetailFieldBySchema = exports.DetailBySchema = exports.FloatFieldBySchema = exports.AutocompleteFieldBySchema = exports.EditableAutocompleteFieldBySchema = exports.DesktopDateTimePickerBySchema = exports.DesktopDatePickerBySchema = exports.BooleanFieldBySchema = exports.HtmlFieldBySchema = exports.TextFieldBySchema = exports.FieldBySchema = exports.FormBySchema = exports.FormWatcher = exports.BooleanInputCell = exports.GridPatternInput = exports.GridDecimalInput = exports.GridDateInput = exports.SelectEditInputCell = exports.HtmlContent = exports.FileTypeIcon = exports.DialogActions = exports.DataTotals = exports.GenericRelatedModelList = exports.GenericModelList = exports.DataGridBySchemaEditable = exports.ForgotPasswordForm = exports.ChangePasswordForm = exports.DialogFormBySchema = exports.Form = exports.useAPIWrapper = exports.DRFReactBySchemaProvider = exports.getThemeTexts = exports.DEFAULT_LAYERS = exports.DRF_REACT_BY_SCHEMA_MARKER_ICON = exports.applyThemeMarkerIcon = exports.applyDefaultLeafletIcon = void 0;
21
+ exports.AUTH_EXPIRED_EVENT = void 0;
21
22
  // Methods:
22
23
  const api_1 = require("./api");
23
24
  Object.defineProperty(exports, "setAuthToken", { enumerable: true, get: function () { return api_1.setAuthToken; } });
@@ -84,6 +85,10 @@ const FieldBySchema_1 = __importDefault(require("./components/forms/FieldBySchem
84
85
  exports.FieldBySchema = FieldBySchema_1.default;
85
86
  const TextFieldBySchema_1 = __importDefault(require("./components/forms/inputs/TextFieldBySchema"));
86
87
  exports.TextFieldBySchema = TextFieldBySchema_1.default;
88
+ const HtmlFieldBySchema_1 = __importDefault(require("./components/forms/inputs/HtmlFieldBySchema"));
89
+ exports.HtmlFieldBySchema = HtmlFieldBySchema_1.default;
90
+ const HtmlContent_1 = __importDefault(require("./components/HtmlContent"));
91
+ exports.HtmlContent = HtmlContent_1.default;
87
92
  const BooleanFieldBySchema_1 = __importDefault(require("./components/forms/inputs/BooleanFieldBySchema"));
88
93
  exports.BooleanFieldBySchema = BooleanFieldBySchema_1.default;
89
94
  const DesktopDatePickerBySchema_1 = __importDefault(require("./components/forms/inputs/DesktopDatePickerBySchema"));
@@ -42,6 +42,30 @@ export interface FormTexts {
42
42
  dialogCancel: string;
43
43
  dialogSave: string;
44
44
  }
45
+ export interface RichTextTexts {
46
+ paragraph: string;
47
+ heading1: string;
48
+ heading2: string;
49
+ heading3: string;
50
+ bold: string;
51
+ italic: string;
52
+ underline: string;
53
+ strike: string;
54
+ bulletList: string;
55
+ orderedList: string;
56
+ blockquote: string;
57
+ codeBlock: string;
58
+ horizontalRule: string;
59
+ link: string;
60
+ linkTitle: string;
61
+ linkUrl: string;
62
+ linkApply: string;
63
+ linkRemove: string;
64
+ linkCancel: string;
65
+ clearFormatting: string;
66
+ undo: string;
67
+ redo: string;
68
+ }
45
69
  export interface AuthTexts {
46
70
  email: string;
47
71
  currentPassword: string;
@@ -63,6 +87,7 @@ export interface DRFReactBySchemaTexts {
63
87
  geometry: GeometryTexts;
64
88
  forms: FormTexts;
65
89
  auth: AuthTexts;
90
+ richText: RichTextTexts;
66
91
  }
67
92
  export declare const DEFAULT_TEXTS: DRFReactBySchemaTexts;
68
93
  export declare function getThemeTexts(theme: Theme): DRFReactBySchemaTexts;
@@ -1 +1 @@
1
- {"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../src/styles/texts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IAEjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IAErB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAGD,eAAO,MAAM,aAAa,EAAE,qBA8D3B,CAAC;AAGF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB,CAOjE"}
1
+ {"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../src/styles/texts.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,30 @@ exports.DEFAULT_TEXTS = {
64
64
  forgotConfirmError: 'Invalid or expired reset link. Request a new one.',
65
65
  forgotConfirmSuccess: 'Password updated. You can now sign in with your new password.',
66
66
  },
67
+ richText: {
68
+ paragraph: 'Paragraph',
69
+ heading1: 'Heading 1',
70
+ heading2: 'Heading 2',
71
+ heading3: 'Heading 3',
72
+ bold: 'Bold',
73
+ italic: 'Italic',
74
+ underline: 'Underline',
75
+ strike: 'Strikethrough',
76
+ bulletList: 'Bullet list',
77
+ orderedList: 'Ordered list',
78
+ blockquote: 'Quote',
79
+ codeBlock: 'Code block',
80
+ horizontalRule: 'Horizontal rule',
81
+ link: 'Link',
82
+ linkTitle: 'Insert link',
83
+ linkUrl: 'URL',
84
+ linkApply: 'Apply',
85
+ linkRemove: 'Remove link',
86
+ linkCancel: 'Cancel',
87
+ clearFormatting: 'Clear formatting',
88
+ undo: 'Undo',
89
+ redo: 'Redo',
90
+ },
67
91
  };
68
92
  // Merge theme.texts over the defaults; theme.texts is absent under a bare ThemeProvider.
69
93
  function getThemeTexts(theme) {
@@ -72,5 +96,6 @@ function getThemeTexts(theme) {
72
96
  geometry: Object.assign(Object.assign({}, exports.DEFAULT_TEXTS.geometry), ((custom === null || custom === void 0 ? void 0 : custom.geometry) || {})),
73
97
  forms: Object.assign(Object.assign({}, exports.DEFAULT_TEXTS.forms), ((custom === null || custom === void 0 ? void 0 : custom.forms) || {})),
74
98
  auth: Object.assign(Object.assign({}, exports.DEFAULT_TEXTS.auth), ((custom === null || custom === void 0 ? void 0 : custom.auth) || {})),
99
+ richText: Object.assign(Object.assign({}, exports.DEFAULT_TEXTS.richText), ((custom === null || custom === void 0 ? void 0 : custom.richText) || {})),
75
100
  };
76
101
  }
@@ -106,6 +106,18 @@ export declare function showConditionalVisibleFieldObj<T extends TField = void>(
106
106
  * absent; returns null so callers can fall back to text inputs.
107
107
  */
108
108
  export declare function getMapLibraries(): any;
109
+ /**
110
+ * Detect whether the consuming app has installed `@tiptap/react` +
111
+ * `@tiptap/starter-kit`. Returns the pieces the editor needs, or null so
112
+ * callers can fall back to plain text editing.
113
+ */
114
+ export declare function getRichTextLibraries(): any;
115
+ /**
116
+ * Detect whether the consuming app has installed `dompurify`. HTML from the
117
+ * backend is only injected into the DOM when a sanitizer is available; without
118
+ * it, values are rendered as plain text.
119
+ */
120
+ export declare function getHtmlSanitizer(): any;
109
121
  /** Normalize a GeoJSON value (object, JSON string or null) to a string. */
110
122
  export declare function geometryValueToString(value: GenericValue): string;
111
123
  /** Parse a GeoJSON value (object or JSON string) into an object, or null. */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}