@inshapardaz/likhari-react 0.1.6-dev.70 → 0.1.6

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 (62) hide show
  1. package/dist/EditorRoot.d.ts +1 -25
  2. package/dist/EditorRoot.d.ts.map +1 -1
  3. package/dist/EditorRoot.js +5 -24
  4. package/dist/components/LinkDialog.d.ts.map +1 -1
  5. package/dist/components/LinkDialog.js +3 -7
  6. package/dist/components/Toolbar.d.ts +1 -4
  7. package/dist/components/Toolbar.d.ts.map +1 -1
  8. package/dist/components/Toolbar.js +33 -246
  9. package/dist/index.d.ts +0 -4
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +0 -2
  12. package/dist/nodes.d.ts.map +1 -1
  13. package/dist/nodes.js +0 -2
  14. package/dist/theme/EditorThemeProvider.d.ts +1 -17
  15. package/dist/theme/EditorThemeProvider.d.ts.map +1 -1
  16. package/dist/theme/EditorThemeProvider.js +2 -24
  17. package/dist/theme/editor.css +0 -125
  18. package/dist/theme/editorTheme.d.ts.map +1 -1
  19. package/dist/theme/editorTheme.js +0 -1
  20. package/package.json +1 -2
  21. package/dist/PortalTargetContext.d.ts +0 -16
  22. package/dist/PortalTargetContext.d.ts.map +0 -1
  23. package/dist/PortalTargetContext.js +0 -18
  24. package/dist/i18n/index.d.ts +0 -4
  25. package/dist/i18n/index.d.ts.map +0 -1
  26. package/dist/i18n/index.js +0 -2
  27. package/dist/i18n/strings.d.ts +0 -158
  28. package/dist/i18n/strings.d.ts.map +0 -1
  29. package/dist/i18n/strings.js +0 -425
  30. package/dist/i18n/useStrings.d.ts +0 -10
  31. package/dist/i18n/useStrings.d.ts.map +0 -1
  32. package/dist/i18n/useStrings.js +0 -14
  33. package/dist/image/ImageComponent.d.ts +0 -23
  34. package/dist/image/ImageComponent.d.ts.map +0 -1
  35. package/dist/image/ImageComponent.js +0 -171
  36. package/dist/image/ImageCropDialog.d.ts +0 -22
  37. package/dist/image/ImageCropDialog.d.ts.map +0 -1
  38. package/dist/image/ImageCropDialog.js +0 -120
  39. package/dist/image/ImageCropper.d.ts +0 -15
  40. package/dist/image/ImageCropper.d.ts.map +0 -1
  41. package/dist/image/ImageCropper.js +0 -120
  42. package/dist/image/ImageDialog.d.ts +0 -37
  43. package/dist/image/ImageDialog.d.ts.map +0 -1
  44. package/dist/image/ImageDialog.js +0 -176
  45. package/dist/image/ImageNode.d.ts +0 -64
  46. package/dist/image/ImageNode.d.ts.map +0 -1
  47. package/dist/image/ImageNode.js +0 -133
  48. package/dist/image/ImageOptionsContext.d.ts +0 -24
  49. package/dist/image/ImageOptionsContext.d.ts.map +0 -1
  50. package/dist/image/ImageOptionsContext.js +0 -10
  51. package/dist/image/cropMath.d.ts +0 -35
  52. package/dist/image/cropMath.d.ts.map +0 -1
  53. package/dist/image/cropMath.js +0 -92
  54. package/dist/image/imageEdit.d.ts +0 -49
  55. package/dist/image/imageEdit.d.ts.map +0 -1
  56. package/dist/image/imageEdit.js +0 -132
  57. package/dist/image/imageUrl.d.ts +0 -14
  58. package/dist/image/imageUrl.d.ts.map +0 -1
  59. package/dist/image/imageUrl.js +0 -27
  60. package/dist/theme/accentColor.d.ts +0 -43
  61. package/dist/theme/accentColor.d.ts.map +0 -1
  62. package/dist/theme/accentColor.js +0 -84
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOlD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,EAQ5C,CAAC"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAMlD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,EAO5C,CAAC"}
package/dist/nodes.js CHANGED
@@ -2,7 +2,6 @@ import { HeadingNode, QuoteNode } from '@lexical/rich-text';
2
2
  import { ListItemNode, ListNode } from '@lexical/list';
3
3
  import { LinkNode } from '@lexical/link';
4
4
  import { HorizontalRuleNode } from '@lexical/react/LexicalHorizontalRuleNode';
5
- import { ImageNode } from './image/ImageNode.js';
6
5
  /**
7
6
  * Node types registered on the editor at construction time. Per
8
7
  * editor-architecture-design.md §2, node registration cannot be conditional
@@ -19,5 +18,4 @@ export const EDITOR_NODES = [
19
18
  ListItemNode,
20
19
  LinkNode,
21
20
  HorizontalRuleNode,
22
- ImageNode,
23
21
  ];
@@ -4,23 +4,7 @@ import './editor.css';
4
4
  export interface EditorThemeProviderProps {
5
5
  theme?: MantineThemeOverride;
6
6
  colorScheme?: 'light' | 'dark';
7
- /** Overrides both Mantine's primary color and the `--editor-accent` /
8
- * `--editor-accent-soft` CSS variables — see EditorRootProps.accentColor. */
9
- accentColor?: string;
10
- /**
11
- * The id of the portal-anchor element EditorRoot renders inside
12
- * `.likhari-root` (see PortalTargetContext.tsx). Scopes Mantine's OWN
13
- * `data-mantine-color-scheme` attribute and CSS variables to that single
14
- * element instead of the default `document.documentElement` — without
15
- * this, Mantine's Modal/Menu/Select/Tooltip surfaces (background, text,
16
- * border colors) would always render in Mantine's global light scheme
17
- * regardless of `colorScheme`, since nothing ever told MantineProvider
18
- * which scheme to use; forcing it at `document.documentElement` instead
19
- * would work but would leak dark mode onto the rest of the host page and
20
- * collide between multiple EditorRoot instances with different schemes.
21
- */
22
- scopeElementId?: string;
23
7
  children: React.ReactNode;
24
8
  }
25
- export declare function EditorThemeProvider({ theme, colorScheme, accentColor, scopeElementId, children }: EditorThemeProviderProps): import("react").JSX.Element;
9
+ export declare function EditorThemeProvider({ theme, colorScheme, children }: EditorThemeProviderProps): import("react").JSX.Element;
26
10
  //# sourceMappingURL=EditorThemeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/EditorThemeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,0BAA0B,CAAC;AAIlC,OAAO,cAAc,CAAC;AAsBtB,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B;iFAC6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,wBAAwB,+BA+C1H"}
1
+ {"version":3,"file":"EditorThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/EditorThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,0BAA0B,CAAC;AAGlC,OAAO,cAAc,CAAC;AAsBtB,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,wBAAwB,+BAa7F"}
@@ -1,10 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
3
2
  import { MantineProvider } from '@mantine/core';
4
3
  import '@mantine/core/styles.css';
5
4
  import { buildThemeCss } from '@inshapardaz/likhari-core';
6
5
  import { defaultMantineTheme } from './mantineTheme.js';
7
- import { generateAccentCssVars, generateAccentShades } from './accentColor.js';
8
6
  import './editor.css';
9
7
  let cssInjected = false;
10
8
  // Scopes the --editor-* variables to the wrapper div below, which is what
@@ -23,28 +21,8 @@ function useThemeCssInjection() {
23
21
  cssInjected = true;
24
22
  }
25
23
  }
26
- export function EditorThemeProvider({ theme, colorScheme, accentColor, scopeElementId, children }) {
24
+ export function EditorThemeProvider({ theme, colorScheme, children }) {
27
25
  useThemeCssInjection();
28
- // Mantine wants a 10-shade array; a host only supplies one color, so a
29
- // small local helper (accentColor.ts) mixes it towards white/black for
30
- // the rest of the ramp. If `theme` is ALSO supplied, its own `colors`
31
- // still wins for anything it explicitly sets (shallow-merged per color
32
- // key) — the accent override alone isn't worth a generic deep-merge here.
33
- const resolvedTheme = useMemo(() => {
34
- const shades = accentColor ? generateAccentShades(accentColor) : null;
35
- const base = shades ? { ...defaultMantineTheme, colors: { ...defaultMantineTheme.colors, likhariAccent: shades } } : defaultMantineTheme;
36
- if (!theme)
37
- return base;
38
- return { ...base, ...theme, colors: { ...base.colors, ...theme.colors } };
39
- }, [accentColor, theme]);
40
- // Inline style wins over the injected stylesheet rule (same element, same
41
- // specificity otherwise) — only set when accentColor is actually given,
42
- // so the default static tokens keep applying via the stylesheet the rest
43
- // of the time.
44
- const accentVars = accentColor ? generateAccentCssVars(accentColor, colorScheme === 'dark' ? 'dark' : 'light') : null;
45
- const accentStyle = accentVars
46
- ? { '--editor-accent': accentVars.accent, '--editor-accent-soft': accentVars.accentSoft }
47
- : {};
48
26
  return (
49
27
  // display: contents keeps this wrapper out of the layout tree — CSS
50
28
  // custom properties still cascade to children through it (inheritance
@@ -52,5 +30,5 @@ export function EditorThemeProvider({ theme, colorScheme, accentColor, scopeElem
52
30
  // element and the host's actual parent, so EditorRoot's `height` prop
53
31
  // (e.g. '100%') resolves against the host's container as if this div
54
32
  // weren't there at all.
55
- _jsx("div", { className: "likhari-theme-scope", "data-editor-color-scheme": colorScheme, style: { display: 'contents', ...accentStyle }, children: _jsx(MantineProvider, { theme: resolvedTheme, forceColorScheme: colorScheme, defaultColorScheme: "auto", getRootElement: scopeElementId ? () => document.getElementById(scopeElementId) ?? undefined : undefined, cssVariablesSelector: scopeElementId ? `#${CSS.escape(scopeElementId)}` : undefined, children: children }) }));
33
+ _jsx("div", { className: "likhari-theme-scope", "data-editor-color-scheme": colorScheme, style: { display: 'contents' }, children: _jsx(MantineProvider, { theme: theme ?? defaultMantineTheme, children: children }) }));
56
34
  }
@@ -19,12 +19,6 @@
19
19
  its own height so only the canvas below scrolls. */
20
20
  .likhari-toolbar {
21
21
  display: flex;
22
- /* Containing block for the hidden width-measuring clone (Toolbar.tsx):
23
- without this, its position: absolute would resolve against the
24
- viewport instead, and its intentionally-unwrapped (possibly very wide)
25
- content could inflate the host page's scroll area instead of being
26
- clipped by .likhari-root's overflow: hidden. */
27
- position: relative;
28
22
  flex-shrink: 0;
29
23
  align-items: center;
30
24
  gap: 8px;
@@ -39,18 +33,6 @@
39
33
  row-gap: 4px;
40
34
  }
41
35
 
42
- /* Empty portal-anchor (EditorRoot.tsx) — exists only so Mantine's portaled
43
- Menu/Modal/Select-combobox/Tooltip content has a DOM ancestor inside
44
- .likhari-root/.likhari-theme-scope to inherit --editor-* vars and `dir`
45
- from; it must take up no space and never intercept pointer events. */
46
- .likhari-portal-target {
47
- position: absolute;
48
- width: 0;
49
- height: 0;
50
- overflow: visible;
51
- pointer-events: none;
52
- }
53
-
54
36
  .likhari-toolbar-group {
55
37
  display: flex;
56
38
  align-items: center;
@@ -253,113 +235,6 @@
253
235
  margin: 1.5em 0;
254
236
  }
255
237
 
256
- /* Images — block-level figure; the caption is static text (edited in the
257
- image's dialog), and a selected image gets a corner resize handle. */
258
- .likhari-image-block {
259
- margin: 0 0 1em 0;
260
- }
261
-
262
- .likhari-image-figure {
263
- display: block;
264
- margin: 0;
265
- text-align: center;
266
- }
267
-
268
- .likhari-image-wrap {
269
- position: relative;
270
- display: inline-block;
271
- max-width: 100%;
272
- line-height: 0;
273
- }
274
-
275
- .likhari-image {
276
- display: block;
277
- max-width: 100%;
278
- height: auto;
279
- border-radius: 4px;
280
- cursor: default;
281
- }
282
-
283
- .likhari-image-figure[data-selected='true'] .likhari-image {
284
- outline: 2px solid var(--editor-accent);
285
- outline-offset: 2px;
286
- }
287
-
288
- .likhari-image-resize-handle {
289
- position: absolute;
290
- right: -6px;
291
- bottom: -6px;
292
- width: 12px;
293
- height: 12px;
294
- border: 2px solid var(--editor-paper);
295
- border-radius: 3px;
296
- background: var(--editor-accent);
297
- cursor: nwse-resize;
298
- touch-action: none;
299
- }
300
-
301
- .likhari-image-caption {
302
- margin-top: 6px;
303
- color: var(--editor-ink-soft);
304
- font-size: 0.85em;
305
- line-height: 1.4;
306
- text-align: center;
307
- }
308
-
309
- /* Image dialog — crop stage. The selection dims everything outside it. */
310
- .likhari-cropper-stage {
311
- position: relative;
312
- display: inline-block;
313
- align-self: center;
314
- max-width: 100%;
315
- padding: 8px;
316
- overflow: hidden;
317
- line-height: 0;
318
- cursor: crosshair;
319
- touch-action: none;
320
- user-select: none;
321
- }
322
-
323
- .likhari-cropper-frame {
324
- position: relative;
325
- display: inline-block;
326
- max-width: 100%;
327
- }
328
-
329
- .likhari-cropper-image {
330
- display: block;
331
- max-width: 100%;
332
- max-height: 320px;
333
- }
334
-
335
- .likhari-cropper-selection {
336
- position: absolute;
337
- border: 2px solid #fff;
338
- outline: 1px solid rgba(0, 0, 0, 0.5);
339
- box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5);
340
- cursor: move;
341
- }
342
-
343
- .likhari-cropper-handle {
344
- position: absolute;
345
- width: 12px;
346
- height: 12px;
347
- border: 1px solid rgba(0, 0, 0, 0.6);
348
- border-radius: 2px;
349
- background: #fff;
350
- /* 12px handles on small selections would overlap; keep them on the border. */
351
- transform: translate(-50%, -50%);
352
- }
353
-
354
- .likhari-cropper-handle[data-handle='nw'] { left: 0; top: 0; cursor: nwse-resize; }
355
- .likhari-cropper-handle[data-handle='n'] { left: 50%; top: 0; cursor: ns-resize; }
356
- .likhari-cropper-handle[data-handle='ne'] { left: 100%; top: 0; cursor: nesw-resize; }
357
- .likhari-cropper-handle[data-handle='e'] { left: 100%; top: 50%; cursor: ew-resize; }
358
- .likhari-cropper-handle[data-handle='se'] { left: 100%; top: 100%; cursor: nwse-resize; }
359
- .likhari-cropper-handle[data-handle='s'] { left: 50%; top: 100%; cursor: ns-resize; }
360
- .likhari-cropper-handle[data-handle='sw'] { left: 0; top: 100%; cursor: nesw-resize; }
361
- .likhari-cropper-handle[data-handle='w'] { left: 0; top: 50%; cursor: ew-resize; }
362
-
363
238
  /* Link menu: the URL item shows one truncated line. */
364
239
  .likhari-link-menu-url {
365
240
  max-width: 100%;
@@ -1 +1 @@
1
- {"version":3,"file":"editorTheme.d.ts","sourceRoot":"","sources":["../../src/theme/editorTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,kBA8BzB,CAAC"}
1
+ {"version":3,"file":"editorTheme.d.ts","sourceRoot":"","sources":["../../src/theme/editorTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,kBA6BzB,CAAC"}
@@ -32,5 +32,4 @@ export const editorTheme = {
32
32
  superscript: 'likhari-text-superscript',
33
33
  },
34
34
  hr: 'likhari-hr',
35
- image: 'likhari-image-block',
36
35
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inshapardaz/likhari-react",
3
- "version": "0.1.6-dev.70",
3
+ "version": "0.1.6",
4
4
  "description": "React implementation of the Likhari editor, built on @lexical/react.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -13,7 +13,6 @@
13
13
  "exports": {
14
14
  ".": {
15
15
  "types": "./dist/index.d.ts",
16
- "development": "./src/index.ts",
17
16
  "import": "./dist/index.js"
18
17
  },
19
18
  "./package.json": "./package.json"
@@ -1,16 +0,0 @@
1
- /**
2
- * CSS selector for the portal-anchor `<div>` `EditorRoot` renders as the
3
- * first child of `.likhari-root` (see EditorRoot.tsx). Mantine's `Menu`,
4
- * `Modal`, `Select`'s combobox and `Tooltip` all default to portaling their
5
- * content to `document.body` — outside the DOM subtree that carries the
6
- * `--editor-*` CSS custom properties (`.likhari-theme-scope`) and the `dir`
7
- * attribute (`.likhari-root`), so none of that styling/direction reaches
8
- * them. Passing this selector as the target fixes that by portaling into a
9
- * genuine descendant of both instead.
10
- *
11
- * `undefined` (the default, outside any `EditorRoot`, or before it has
12
- * mounted) falls back to Mantine's own default portal behavior.
13
- */
14
- export declare const PortalTargetContext: import("react").Context<string | undefined>;
15
- export declare function usePortalTarget(): string | undefined;
16
- //# sourceMappingURL=PortalTargetContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PortalTargetContext.d.ts","sourceRoot":"","sources":["../src/PortalTargetContext.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,6CAA+C,CAAC;AAEhF,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD"}
@@ -1,18 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- /**
3
- * CSS selector for the portal-anchor `<div>` `EditorRoot` renders as the
4
- * first child of `.likhari-root` (see EditorRoot.tsx). Mantine's `Menu`,
5
- * `Modal`, `Select`'s combobox and `Tooltip` all default to portaling their
6
- * content to `document.body` — outside the DOM subtree that carries the
7
- * `--editor-*` CSS custom properties (`.likhari-theme-scope`) and the `dir`
8
- * attribute (`.likhari-root`), so none of that styling/direction reaches
9
- * them. Passing this selector as the target fixes that by portaling into a
10
- * genuine descendant of both instead.
11
- *
12
- * `undefined` (the default, outside any `EditorRoot`, or before it has
13
- * mounted) falls back to Mantine's own default portal behavior.
14
- */
15
- export const PortalTargetContext = createContext(undefined);
16
- export function usePortalTarget() {
17
- return useContext(PortalTargetContext);
18
- }
@@ -1,4 +0,0 @@
1
- export type { Locale, Strings } from './strings.js';
2
- export { STRINGS, getStrings } from './strings.js';
3
- export { useStrings, useUiStrings, UiStringsContext } from './useStrings.js';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +0,0 @@
1
- export { STRINGS, getStrings } from './strings.js';
2
- export { useStrings, useUiStrings, UiStringsContext } from './useStrings.js';
@@ -1,158 +0,0 @@
1
- /**
2
- * UI localization strings for the editor's own chrome (toolbar, dialogs,
3
- * menus, placeholders) — see docs/lexical-editor-spec.md §3.2. This is
4
- * separate from content direction/fonts (handled in EditorRoot) and from
5
- * Markdown/HTML/plain-text format translation, which is out of scope here.
6
- */
7
- /** Re-exported from EditorRoot's existing prop type so there is a single
8
- * source of truth for which locales the editor knows about. */
9
- export type Locale = 'en' | 'ur' | 'pa-shahmukhi';
10
- export interface Strings {
11
- editor: {
12
- /** Default placeholder shown in an empty editor (overridden by an explicit `placeholder` prop). */
13
- placeholder: string;
14
- /** aria-label on the contenteditable itself. */
15
- contentLabel: string;
16
- /** window.confirm() prompt shown by EditorRef.confirmDiscard() when there are unsaved changes. */
17
- confirmDiscard: string;
18
- };
19
- common: {
20
- cancel: string;
21
- save: string;
22
- insert: string;
23
- };
24
- toolbar: {
25
- /** aria-label on the toolbar's own role="toolbar" container. */
26
- ariaLabel: string;
27
- save: string;
28
- undo: string;
29
- redo: string;
30
- formattingLabel: string;
31
- bold: string;
32
- italic: string;
33
- underline: string;
34
- fontFamily: string;
35
- fontFamilyPlaceholder: string;
36
- fontSize: string;
37
- fontSizePlaceholder: string;
38
- noMatch: string;
39
- alignment: string;
40
- linkOptions: string;
41
- insertLink: string;
42
- insertImage: string;
43
- poetryBlocks: string;
44
- comingSoon: (label: string) => string;
45
- autocorrect: string;
46
- textCleanup: string;
47
- spellChecker: string;
48
- moreFormatting: string;
49
- strikethrough: string;
50
- superscript: string;
51
- subscript: string;
52
- uppercase: string;
53
- lowercase: string;
54
- capitalize: string;
55
- clearFormatting: string;
56
- outdent: string;
57
- indent: string;
58
- formattingOptions: {
59
- paragraph: string;
60
- heading: (level: number) => string;
61
- numberedList: string;
62
- bulletList: string;
63
- taskList: string;
64
- quote: string;
65
- };
66
- alignOptions: {
67
- start: string;
68
- center: string;
69
- end: string;
70
- justify: string;
71
- left: string;
72
- right: string;
73
- };
74
- };
75
- link: {
76
- menuLabel: string;
77
- noUrl: string;
78
- editLink: string;
79
- removeLink: string;
80
- };
81
- linkDialog: {
82
- titleInsert: string;
83
- titleEdit: string;
84
- urlLabel: string;
85
- urlPlaceholder: string;
86
- textLabel: string;
87
- textPlaceholder: string;
88
- invalidUrl: string;
89
- apply: string;
90
- };
91
- imageDialog: {
92
- titleInsert: string;
93
- titleEdit: string;
94
- currentImage: string;
95
- fromUrl: string;
96
- upload: string;
97
- embeddedInDocument: string;
98
- linkedFrom: (src: string) => string;
99
- convertButton: string;
100
- convertHint: string;
101
- imageUrlLabel: string;
102
- imageUrlPlaceholder: string;
103
- embedCopyLabel: string;
104
- embedCopyDescription: string;
105
- convertedFromUrl: string;
106
- fileLabel: string;
107
- filePlaceholder: string;
108
- fileDescription: (maxSizeMB: number, storedInDocument: boolean) => string;
109
- altTextLabel: string;
110
- altTextDescription: string;
111
- captionLabel: string;
112
- captionDescription: string;
113
- errors: {
114
- enterUrl: string;
115
- chooseFile: string;
116
- noImage: string;
117
- uploadUnusable: string;
118
- couldNotSave: string;
119
- couldNotConvert: string;
120
- couldNotReadFile: string;
121
- largerThan: (maxSizeMB: number) => string;
122
- };
123
- };
124
- imageCropDialog: {
125
- title: string;
126
- sizeLabel: string;
127
- widthLabel: string;
128
- heightLabel: string;
129
- autoPlaceholder: string;
130
- keepProportions: string;
131
- originalSize: string;
132
- dragHint: (natural: {
133
- width: number;
134
- height: number;
135
- } | null) => string;
136
- errors: {
137
- uploadUnusable: string;
138
- couldNotSave: string;
139
- largerThan: (maxSizeMB: number) => string;
140
- };
141
- };
142
- imageMenu: {
143
- editImage: string;
144
- convertToEmbedded: string;
145
- cropResize: string;
146
- addCaption: string;
147
- editCaption: string;
148
- removeCaption: string;
149
- deleteImage: string;
150
- resizeImage: string;
151
- };
152
- }
153
- export declare const STRINGS: Record<Locale, Strings>;
154
- /** Returns the strings dictionary for `locale`, defensively falling back to
155
- * `en` for any locale not present in `STRINGS` (e.g. a future locale value
156
- * passed by a caller on an older type definition). */
157
- export declare function getStrings(locale: Locale): Strings;
158
- //# sourceMappingURL=strings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/i18n/strings.ts"],"names":[],"mappings":"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"}