payload-intl 0.0.2 → 0.0.4
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/components/MessageController.js +29 -28
- package/dist/components/MessageController.js.map +1 -1
- package/dist/components/MessagesForm.js +92 -76
- package/dist/components/MessagesForm.js.map +1 -1
- package/dist/components/actions/JsonImport.d.ts +1 -1
- package/dist/components/actions/JsonImport.js +63 -0
- package/dist/components/actions/JsonImport.js.map +1 -0
- package/dist/components/actions/Move.d.ts +1 -1
- package/dist/components/inputs/InputWrapper.d.ts +1 -1
- package/dist/components/inputs/InputWrapper.js +24 -18
- package/dist/components/inputs/InputWrapper.js.map +1 -1
- package/dist/components/inputs/MessageInput.d.ts +1 -1
- package/dist/components/inputs/MessageInput.js +27 -41
- package/dist/components/inputs/MessageInput.js.map +1 -1
- package/dist/components/inputs/RichTextInput.js +62 -58
- package/dist/components/inputs/RichTextInput.js.map +1 -1
- package/dist/components/inputs/toolbar/AlignmentControls.d.ts +1 -1
- package/dist/components/inputs/toolbar/AlignmentControls.js +47 -44
- package/dist/components/inputs/toolbar/AlignmentControls.js.map +1 -1
- package/dist/components/inputs/toolbar/BlockElementSelect.d.ts +1 -1
- package/dist/components/inputs/toolbar/BlockElementSelect.js +60 -54
- package/dist/components/inputs/toolbar/BlockElementSelect.js.map +1 -1
- package/dist/components/inputs/toolbar/LinkEditor.d.ts +1 -1
- package/dist/components/inputs/toolbar/LinkEditor.js +182 -170
- package/dist/components/inputs/toolbar/LinkEditor.js.map +1 -1
- package/dist/components/inputs/toolbar/MarkControls.d.ts +1 -1
- package/dist/components/inputs/toolbar/MarkControls.js +29 -28
- package/dist/components/inputs/toolbar/MarkControls.js.map +1 -1
- package/dist/components/inputs/toolbar/RichTextToolbar.d.ts +1 -1
- package/dist/components/inputs/toolbar/RichTextToolbar.js +29 -26
- package/dist/components/inputs/toolbar/RichTextToolbar.js.map +1 -1
- package/dist/components/inputs/variables/VariableChip.d.ts +1 -1
- package/dist/components/inputs/variables/VariableChip.js +55 -49
- package/dist/components/inputs/variables/VariableChip.js.map +1 -1
- package/dist/components/inputs/variables/VariableSuggestion.d.ts +1 -1
- package/dist/components/inputs/variables/VariableSuggestion.js +24 -23
- package/dist/components/inputs/variables/VariableSuggestion.js.map +1 -1
- package/dist/components/inputs/variables/editors/DateVariableEditor.d.ts +1 -1
- package/dist/components/inputs/variables/editors/PluralVariableEditor.d.ts +1 -1
- package/dist/components/inputs/variables/editors/PluralVariableEditor.js +151 -122
- package/dist/components/inputs/variables/editors/PluralVariableEditor.js.map +1 -1
- package/dist/components/inputs/variables/editors/SelectVariableEditor.d.ts +1 -1
- package/dist/components/inputs/variables/editors/SelectVariableEditor.js +33 -29
- package/dist/components/inputs/variables/editors/SelectVariableEditor.js.map +1 -1
- package/dist/components/inputs/variables/editors/TagVariableEditor.d.ts +1 -1
- package/dist/components/inputs/variables/editors/TagVariableEditor.js +13 -12
- package/dist/components/inputs/variables/editors/TagVariableEditor.js.map +1 -1
- package/dist/components/inputs/variables/editors/TimeVariableEditor.d.ts +1 -1
- package/dist/components/inputs/variables/pickers/NumericVariablePicker.d.ts +1 -1
- package/dist/components/inputs/variables/pickers/NumericVariablePicker.js +40 -36
- package/dist/components/inputs/variables/pickers/NumericVariablePicker.js.map +1 -1
- package/dist/components/inputs/variables/pickers/TemporalElementEditor.d.ts +1 -1
- package/dist/components/layout/MessageField.js +42 -38
- package/dist/components/layout/MessageField.js.map +1 -1
- package/dist/components/layout/MessagesTabs.js +31 -30
- package/dist/components/layout/MessagesTabs.js.map +1 -1
- package/dist/components/layout/MessagesTree.js +52 -51
- package/dist/components/layout/MessagesTree.js.map +1 -1
- package/dist/context/messages-form.d.ts +1 -1
- package/dist/context/messages-form.js +12 -11
- package/dist/context/messages-form.js.map +1 -1
- package/dist/exports/link.d.ts +1 -1
- package/dist/exports/link.js +11 -10
- package/dist/exports/link.js.map +1 -1
- package/dist/exports/view.d.ts +1 -1
- package/dist/exports/view.js +43 -40
- package/dist/exports/view.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/package.json +1 -2
|
@@ -1,81 +1,85 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsxs as s, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import d from "@tiptap/extension-blockquote";
|
|
2
3
|
import c from "@tiptap/extension-bold";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { BulletList as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import { UndoRedo as
|
|
19
|
-
import { useEditor as
|
|
20
|
-
import { useMessagesForm as
|
|
21
|
-
import { InputWrapper as
|
|
22
|
-
import { RichTextToolbar as
|
|
23
|
-
function
|
|
24
|
-
error:
|
|
25
|
-
label:
|
|
26
|
-
lang:
|
|
27
|
-
onBlur:
|
|
4
|
+
import g from "@tiptap/extension-code-block";
|
|
5
|
+
import u from "@tiptap/extension-document";
|
|
6
|
+
import h from "@tiptap/extension-hard-break";
|
|
7
|
+
import x from "@tiptap/extension-heading";
|
|
8
|
+
import T from "@tiptap/extension-highlight";
|
|
9
|
+
import k from "@tiptap/extension-horizontal-rule";
|
|
10
|
+
import L from "@tiptap/extension-italic";
|
|
11
|
+
import y from "@tiptap/extension-link";
|
|
12
|
+
import { BulletList as B, OrderedList as H, ListItem as R, ListKeymap as b } from "@tiptap/extension-list";
|
|
13
|
+
import C from "@tiptap/extension-paragraph";
|
|
14
|
+
import I from "@tiptap/extension-strike";
|
|
15
|
+
import E from "@tiptap/extension-text";
|
|
16
|
+
import N from "@tiptap/extension-text-align";
|
|
17
|
+
import O from "@tiptap/extension-typography";
|
|
18
|
+
import U from "@tiptap/extension-underline";
|
|
19
|
+
import { UndoRedo as j, TrailingNode as q } from "@tiptap/extensions";
|
|
20
|
+
import { useEditor as w, EditorContent as M } from "@tiptap/react";
|
|
21
|
+
import { useMessagesForm as S } from "../../context/messages-form.js";
|
|
22
|
+
import { InputWrapper as z } from "./InputWrapper.js";
|
|
23
|
+
import { RichTextToolbar as A } from "./toolbar/RichTextToolbar.js";
|
|
24
|
+
function ao({
|
|
25
|
+
error: i,
|
|
26
|
+
label: e,
|
|
27
|
+
lang: m,
|
|
28
|
+
onBlur: p,
|
|
28
29
|
onChange: n,
|
|
29
|
-
value:
|
|
30
|
-
className:
|
|
30
|
+
value: a,
|
|
31
|
+
className: f
|
|
31
32
|
}) {
|
|
32
|
-
const { richTextEditorOptions: o } =
|
|
33
|
+
const { richTextEditorOptions: o } = S();
|
|
33
34
|
console.log(o);
|
|
34
|
-
const r =
|
|
35
|
-
content:
|
|
35
|
+
const r = w({
|
|
36
|
+
content: a,
|
|
36
37
|
extensions: [
|
|
38
|
+
u,
|
|
39
|
+
...o?.heading !== !1 ? [x.configure(o?.heading)] : [],
|
|
40
|
+
C,
|
|
41
|
+
E,
|
|
42
|
+
h,
|
|
43
|
+
k,
|
|
37
44
|
d,
|
|
38
|
-
...o?.heading !== !1 ? [u.configure(o?.heading)] : [],
|
|
39
|
-
B,
|
|
40
|
-
b,
|
|
41
45
|
g,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
s,
|
|
46
|
+
B,
|
|
47
|
+
H,
|
|
45
48
|
R,
|
|
46
|
-
|
|
47
|
-
L,
|
|
48
|
-
x.configure({
|
|
49
|
+
y.configure({
|
|
49
50
|
openOnClick: !1,
|
|
50
51
|
enableClickSelection: !0
|
|
51
52
|
}),
|
|
52
53
|
c,
|
|
53
|
-
|
|
54
|
-
H,
|
|
55
|
-
N,
|
|
54
|
+
L,
|
|
56
55
|
I,
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
U,
|
|
57
|
+
O,
|
|
58
|
+
T,
|
|
59
|
+
N.configure({
|
|
59
60
|
types: ["heading", "paragraph", "blockquote"]
|
|
60
61
|
}),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
j,
|
|
63
|
+
q,
|
|
64
|
+
b
|
|
64
65
|
],
|
|
65
66
|
immediatelyRender: !1,
|
|
66
67
|
onUpdate: ({ editor: l }) => n?.(l.getHTML())
|
|
67
68
|
});
|
|
68
|
-
return /* @__PURE__ */
|
|
69
|
-
w,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
return /* @__PURE__ */ s(z, { label: e, error: i, className: f, children: [
|
|
70
|
+
/* @__PURE__ */ t(A, { className: "mb-3 w-full min-w-max", editor: r }),
|
|
71
|
+
/* @__PURE__ */ t(
|
|
72
|
+
M,
|
|
73
|
+
{
|
|
74
|
+
className: "tiptap-editor min-h-8",
|
|
75
|
+
editor: r,
|
|
76
|
+
lang: m,
|
|
77
|
+
onBlur: p
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
] });
|
|
77
81
|
}
|
|
78
82
|
export {
|
|
79
|
-
|
|
83
|
+
ao as RichTextInput
|
|
80
84
|
};
|
|
81
85
|
//# sourceMappingURL=RichTextInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextInput.js","sources":["../../../src/components/inputs/RichTextInput.tsx"],"sourcesContent":["import Blockquote from \"@tiptap/extension-blockquote\";\nimport Bold from \"@tiptap/extension-bold\";\nimport CodeBlock from \"@tiptap/extension-code-block\";\nimport Document from \"@tiptap/extension-document\";\nimport HardBreak from \"@tiptap/extension-hard-break\";\nimport Heading from \"@tiptap/extension-heading\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport HorizontalRule from \"@tiptap/extension-horizontal-rule\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport {\n BulletList,\n ListItem,\n ListKeymap,\n OrderedList,\n} from \"@tiptap/extension-list\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Strike from \"@tiptap/extension-strike\";\nimport Text from \"@tiptap/extension-text\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Typography from \"@tiptap/extension-typography\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { TrailingNode, UndoRedo } from \"@tiptap/extensions\";\nimport { EditorContent, useEditor } from \"@tiptap/react\";\n\nimport { useMessagesForm } from \"@/context/messages-form\";\n\nimport type { InputWrapperProps } from \"./InputWrapper\";\nimport { InputWrapper } from \"./InputWrapper\";\nimport { RichTextToolbar } from \"./toolbar/RichTextToolbar\";\n\nexport interface RichTextInputProps extends InputWrapperProps {\n value: string;\n lang: string;\n onChange: (value: string) => void;\n onBlur: () => void;\n}\n\nexport function RichTextInput({\n error,\n label,\n lang,\n onBlur,\n onChange,\n value,\n className,\n}: RichTextInputProps): React.ReactNode {\n const { richTextEditorOptions } = useMessagesForm();\n console.log(richTextEditorOptions);\n const editor = useEditor({\n content: value,\n extensions: [\n Document,\n ...(richTextEditorOptions?.heading !== false\n ? [Heading.configure(richTextEditorOptions?.heading)]\n : []),\n Paragraph,\n Text,\n HardBreak,\n HorizontalRule,\n Blockquote,\n CodeBlock,\n BulletList,\n OrderedList,\n ListItem,\n Link.configure({\n openOnClick: false,\n enableClickSelection: true,\n }),\n Bold,\n Italic,\n Strike,\n Underline,\n Typography,\n Highlight,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\", \"blockquote\"],\n }),\n UndoRedo,\n TrailingNode,\n ListKeymap,\n ],\n immediatelyRender: false,\n onUpdate: ({ editor }) => onChange?.(editor.getHTML()),\n });\n\n return (\n <InputWrapper label={label} error={error} className={className}>\n <RichTextToolbar className=\"mb-3 w-full min-w-max\" editor={editor} />\n <EditorContent\n className=\"tiptap-editor min-h-8\"\n editor={editor}\n lang={lang}\n onBlur={onBlur}\n />\n </InputWrapper>\n );\n}\n"],"names":["RichTextInput","error","label","lang","onBlur","onChange","value","className","richTextEditorOptions","useMessagesForm","editor","useEditor","Document","Heading","Paragraph","Text","HardBreak","HorizontalRule","Blockquote","CodeBlock","BulletList","OrderedList","ListItem","Link","Bold","Italic","Strike","Underline","Typography","Highlight","TextAlign","UndoRedo","TrailingNode","ListKeymap","InputWrapper","RichTextToolbar","EditorContent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RichTextInput.js","sources":["../../../src/components/inputs/RichTextInput.tsx"],"sourcesContent":["import Blockquote from \"@tiptap/extension-blockquote\";\nimport Bold from \"@tiptap/extension-bold\";\nimport CodeBlock from \"@tiptap/extension-code-block\";\nimport Document from \"@tiptap/extension-document\";\nimport HardBreak from \"@tiptap/extension-hard-break\";\nimport Heading from \"@tiptap/extension-heading\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport HorizontalRule from \"@tiptap/extension-horizontal-rule\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport {\n BulletList,\n ListItem,\n ListKeymap,\n OrderedList,\n} from \"@tiptap/extension-list\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Strike from \"@tiptap/extension-strike\";\nimport Text from \"@tiptap/extension-text\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Typography from \"@tiptap/extension-typography\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { TrailingNode, UndoRedo } from \"@tiptap/extensions\";\nimport { EditorContent, useEditor } from \"@tiptap/react\";\n\nimport { useMessagesForm } from \"@/context/messages-form\";\n\nimport type { InputWrapperProps } from \"./InputWrapper\";\nimport { InputWrapper } from \"./InputWrapper\";\nimport { RichTextToolbar } from \"./toolbar/RichTextToolbar\";\n\nexport interface RichTextInputProps extends InputWrapperProps {\n value: string;\n lang: string;\n onChange: (value: string) => void;\n onBlur: () => void;\n}\n\nexport function RichTextInput({\n error,\n label,\n lang,\n onBlur,\n onChange,\n value,\n className,\n}: RichTextInputProps): React.ReactNode {\n const { richTextEditorOptions } = useMessagesForm();\n console.log(richTextEditorOptions);\n const editor = useEditor({\n content: value,\n extensions: [\n Document,\n ...(richTextEditorOptions?.heading !== false\n ? [Heading.configure(richTextEditorOptions?.heading)]\n : []),\n Paragraph,\n Text,\n HardBreak,\n HorizontalRule,\n Blockquote,\n CodeBlock,\n BulletList,\n OrderedList,\n ListItem,\n Link.configure({\n openOnClick: false,\n enableClickSelection: true,\n }),\n Bold,\n Italic,\n Strike,\n Underline,\n Typography,\n Highlight,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\", \"blockquote\"],\n }),\n UndoRedo,\n TrailingNode,\n ListKeymap,\n ],\n immediatelyRender: false,\n onUpdate: ({ editor }) => onChange?.(editor.getHTML()),\n });\n\n return (\n <InputWrapper label={label} error={error} className={className}>\n <RichTextToolbar className=\"mb-3 w-full min-w-max\" editor={editor} />\n <EditorContent\n className=\"tiptap-editor min-h-8\"\n editor={editor}\n lang={lang}\n onBlur={onBlur}\n />\n </InputWrapper>\n );\n}\n"],"names":["RichTextInput","error","label","lang","onBlur","onChange","value","className","richTextEditorOptions","useMessagesForm","editor","useEditor","Document","Heading","Paragraph","Text","HardBreak","HorizontalRule","Blockquote","CodeBlock","BulletList","OrderedList","ListItem","Link","Bold","Italic","Strike","Underline","Typography","Highlight","TextAlign","UndoRedo","TrailingNode","ListKeymap","jsxs","InputWrapper","jsx","RichTextToolbar","EditorContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsCO,SAASA,GAAc;AAAA,EAC5B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AACF,GAAwC;AACtC,QAAM,EAAE,uBAAAC,EAAA,IAA0BC,EAAA;AAClC,UAAQ,IAAID,CAAqB;AACjC,QAAME,IAASC,EAAU;AAAA,IACvB,SAASL;AAAA,IACT,YAAY;AAAA,MACVM;AAAA,MACA,GAAIJ,GAAuB,YAAY,KACnC,CAACK,EAAQ,UAAUL,GAAuB,OAAO,CAAC,IAClD,CAAA;AAAA,MACJM;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC,EAAK,UAAU;AAAA,QACb,aAAa;AAAA,QACb,sBAAsB;AAAA,MAAA,CACvB;AAAA,MACDC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC,EAAU,UAAU;AAAA,QAClB,OAAO,CAAC,WAAW,aAAa,YAAY;AAAA,MAAA,CAC7C;AAAA,MACDC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,IAEF,mBAAmB;AAAA,IACnB,UAAU,CAAC,EAAE,QAAAvB,QAAaL,IAAWK,EAAO,QAAA,CAAS;AAAA,EAAA,CACtD;AAED,SACE,gBAAAwB,EAACC,GAAA,EAAa,OAAAjC,GAAc,OAAAD,GAAc,WAAAM,GACxC,UAAA;AAAA,IAAA,gBAAA6B,EAACC,GAAA,EAAgB,WAAU,yBAAwB,QAAA3B,EAAA,CAAgB;AAAA,IACnE,gBAAA0B;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,QAAA5B;AAAA,QACA,MAAAP;AAAA,QACA,QAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -2,4 +2,4 @@ import { Editor } from '@tiptap/react';
|
|
|
2
2
|
export interface AlignmentControlsProps {
|
|
3
3
|
editor: Editor | null;
|
|
4
4
|
}
|
|
5
|
-
export declare function AlignmentControls({ editor }: AlignmentControlsProps): import("react").JSX.Element;
|
|
5
|
+
export declare function AlignmentControls({ editor }: AlignmentControlsProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,59 +1,62 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { jsxs as u, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { IconAlignLeft as c, IconAlignCenter as d, IconAlignRight as f } from "@tabler/icons-react";
|
|
3
|
+
import { useEditorState as b } from "@tiptap/react";
|
|
4
|
+
import { Toolbar as n } from "radix-ui";
|
|
5
|
+
function p({ editor: i }) {
|
|
6
|
+
const { value: o, disabled: r } = b({
|
|
7
|
+
editor: i,
|
|
7
8
|
selector: (e) => {
|
|
8
|
-
const
|
|
9
|
+
const l = e.editor?.getAttributes("paragraph"), s = e.editor?.getAttributes("heading"), g = e.editor?.getAttributes("blockquote");
|
|
9
10
|
return {
|
|
10
11
|
disabled: e.editor?.isActive("bulletList") || e.editor?.isActive("orderedList"),
|
|
11
|
-
value:
|
|
12
|
+
value: l?.textAlign || s?.textAlign || g?.textAlign
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
|
-
}) ?? { value: "left" },
|
|
15
|
-
|
|
15
|
+
}) ?? { value: "left" }, a = (e) => {
|
|
16
|
+
i && i.chain().focus().setTextAlign(e).run();
|
|
16
17
|
};
|
|
17
|
-
return /* @__PURE__ */
|
|
18
|
-
|
|
18
|
+
return /* @__PURE__ */ u(
|
|
19
|
+
n.ToggleGroup,
|
|
19
20
|
{
|
|
20
21
|
type: "single",
|
|
21
22
|
className: "flex items-center",
|
|
22
23
|
"aria-label": "Text alignment",
|
|
23
|
-
value:
|
|
24
|
-
onValueChange:
|
|
25
|
-
disabled: r
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
24
|
+
value: o,
|
|
25
|
+
onValueChange: a,
|
|
26
|
+
disabled: r,
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ t(
|
|
29
|
+
n.ToggleItem,
|
|
30
|
+
{
|
|
31
|
+
className: "inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0",
|
|
32
|
+
value: "left",
|
|
33
|
+
"aria-label": "Left aligned",
|
|
34
|
+
children: /* @__PURE__ */ t(c, { size: 16 })
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
/* @__PURE__ */ t(
|
|
38
|
+
n.ToggleItem,
|
|
39
|
+
{
|
|
40
|
+
className: "inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0",
|
|
41
|
+
value: "center",
|
|
42
|
+
"aria-label": "Center aligned",
|
|
43
|
+
children: /* @__PURE__ */ t(d, { size: 16 })
|
|
44
|
+
}
|
|
45
|
+
),
|
|
46
|
+
/* @__PURE__ */ t(
|
|
47
|
+
n.ToggleItem,
|
|
48
|
+
{
|
|
49
|
+
className: "inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0",
|
|
50
|
+
value: "right",
|
|
51
|
+
"aria-label": "Right aligned",
|
|
52
|
+
children: /* @__PURE__ */ t(f, { size: 16 })
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
]
|
|
56
|
+
}
|
|
54
57
|
);
|
|
55
58
|
}
|
|
56
59
|
export {
|
|
57
|
-
|
|
60
|
+
p as AlignmentControls
|
|
58
61
|
};
|
|
59
62
|
//# sourceMappingURL=AlignmentControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlignmentControls.js","sources":["../../../../src/components/inputs/toolbar/AlignmentControls.tsx"],"sourcesContent":["import type { Editor } from \"@tiptap/react\";\nimport {\n IconAlignCenter,\n IconAlignLeft,\n IconAlignRight,\n} from \"@tabler/icons-react\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { Toolbar } from \"radix-ui\";\n\nexport interface AlignmentControlsProps {\n editor: Editor | null;\n}\n\nexport function AlignmentControls({ editor }: AlignmentControlsProps) {\n const { value, disabled } = useEditorState<{\n value: string;\n disabled?: boolean;\n }>({\n editor,\n selector: (state) => {\n const attrs = state.editor?.getAttributes(\"paragraph\");\n const headingAttrs = state.editor?.getAttributes(\"heading\");\n const blockquoteAttrs = state.editor?.getAttributes(\"blockquote\");\n\n return {\n disabled:\n state.editor?.isActive(\"bulletList\") ||\n state.editor?.isActive(\"orderedList\"),\n value:\n attrs?.textAlign ||\n headingAttrs?.textAlign ||\n blockquoteAttrs?.textAlign,\n };\n },\n }) ?? { value: \"left\" };\n\n const handleChange = (value: string) => {\n if (!editor) return;\n editor.chain().focus().setTextAlign(value).run();\n };\n\n return (\n <Toolbar.ToggleGroup\n type=\"single\"\n className=\"flex items-center\"\n aria-label=\"Text alignment\"\n value={value}\n onValueChange={handleChange}\n disabled={disabled}\n >\n <Toolbar.ToggleItem\n className=\"inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0\"\n value=\"left\"\n aria-label=\"Left aligned\"\n >\n <IconAlignLeft size={16} />\n </Toolbar.ToggleItem>\n <Toolbar.ToggleItem\n className=\"inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0\"\n value=\"center\"\n aria-label=\"Center aligned\"\n >\n <IconAlignCenter size={16} />\n </Toolbar.ToggleItem>\n <Toolbar.ToggleItem\n className=\"inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0\"\n value=\"right\"\n aria-label=\"Right aligned\"\n >\n <IconAlignRight size={16} />\n </Toolbar.ToggleItem>\n </Toolbar.ToggleGroup>\n );\n}\n"],"names":["AlignmentControls","editor","value","disabled","useEditorState","state","attrs","headingAttrs","blockquoteAttrs","handleChange","Toolbar","IconAlignLeft","IconAlignCenter","IconAlignRight"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AlignmentControls.js","sources":["../../../../src/components/inputs/toolbar/AlignmentControls.tsx"],"sourcesContent":["import type { Editor } from \"@tiptap/react\";\nimport {\n IconAlignCenter,\n IconAlignLeft,\n IconAlignRight,\n} from \"@tabler/icons-react\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { Toolbar } from \"radix-ui\";\n\nexport interface AlignmentControlsProps {\n editor: Editor | null;\n}\n\nexport function AlignmentControls({ editor }: AlignmentControlsProps) {\n const { value, disabled } = useEditorState<{\n value: string;\n disabled?: boolean;\n }>({\n editor,\n selector: (state) => {\n const attrs = state.editor?.getAttributes(\"paragraph\");\n const headingAttrs = state.editor?.getAttributes(\"heading\");\n const blockquoteAttrs = state.editor?.getAttributes(\"blockquote\");\n\n return {\n disabled:\n state.editor?.isActive(\"bulletList\") ||\n state.editor?.isActive(\"orderedList\"),\n value:\n attrs?.textAlign ||\n headingAttrs?.textAlign ||\n blockquoteAttrs?.textAlign,\n };\n },\n }) ?? { value: \"left\" };\n\n const handleChange = (value: string) => {\n if (!editor) return;\n editor.chain().focus().setTextAlign(value).run();\n };\n\n return (\n <Toolbar.ToggleGroup\n type=\"single\"\n className=\"flex items-center\"\n aria-label=\"Text alignment\"\n value={value}\n onValueChange={handleChange}\n disabled={disabled}\n >\n <Toolbar.ToggleItem\n className=\"inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0\"\n value=\"left\"\n aria-label=\"Left aligned\"\n >\n <IconAlignLeft size={16} />\n </Toolbar.ToggleItem>\n <Toolbar.ToggleItem\n className=\"inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0\"\n value=\"center\"\n aria-label=\"Center aligned\"\n >\n <IconAlignCenter size={16} />\n </Toolbar.ToggleItem>\n <Toolbar.ToggleItem\n className=\"inline-flex h-7 flex-shrink-0 flex-grow-0 basis-auto cursor-pointer items-center justify-center rounded border-none bg-transparent px-2 leading-none hover:bg-elevation-250 focus:relative focus:outline data-[state=on]:bg-elevation-600 data-[state=on]:text-elevation-0\"\n value=\"right\"\n aria-label=\"Right aligned\"\n >\n <IconAlignRight size={16} />\n </Toolbar.ToggleItem>\n </Toolbar.ToggleGroup>\n );\n}\n"],"names":["AlignmentControls","editor","value","disabled","useEditorState","state","attrs","headingAttrs","blockquoteAttrs","handleChange","jsxs","Toolbar","jsx","IconAlignLeft","IconAlignCenter","IconAlignRight"],"mappings":";;;;AAaO,SAASA,EAAkB,EAAE,QAAAC,KAAkC;AACpE,QAAM,EAAE,OAAAC,GAAO,UAAAC,EAAA,IAAaC,EAGzB;AAAA,IACD,QAAAH;AAAA,IACA,UAAU,CAACI,MAAU;AACnB,YAAMC,IAAQD,EAAM,QAAQ,cAAc,WAAW,GAC/CE,IAAeF,EAAM,QAAQ,cAAc,SAAS,GACpDG,IAAkBH,EAAM,QAAQ,cAAc,YAAY;AAEhE,aAAO;AAAA,QACL,UACEA,EAAM,QAAQ,SAAS,YAAY,KACnCA,EAAM,QAAQ,SAAS,aAAa;AAAA,QACtC,OACEC,GAAO,aACPC,GAAc,aACdC,GAAiB;AAAA,MAAA;AAAA,IAEvB;AAAA,EAAA,CACD,KAAK,EAAE,OAAO,OAAA,GAETC,IAAe,CAACP,MAAkB;AACtC,IAAKD,KACLA,EAAO,QAAQ,MAAA,EAAQ,aAAaC,CAAK,EAAE,IAAA;AAAA,EAC7C;AAEA,SACE,gBAAAQ;AAAA,IAACC,EAAQ;AAAA,IAAR;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,cAAW;AAAA,MACX,OAAAT;AAAA,MACA,eAAeO;AAAA,MACf,UAAAN;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAS;AAAA,UAACD,EAAQ;AAAA,UAAR;AAAA,YACC,WAAU;AAAA,YACV,OAAM;AAAA,YACN,cAAW;AAAA,YAEX,UAAA,gBAAAC,EAACC,GAAA,EAAc,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAE3B,gBAAAD;AAAA,UAACD,EAAQ;AAAA,UAAR;AAAA,YACC,WAAU;AAAA,YACV,OAAM;AAAA,YACN,cAAW;AAAA,YAEX,UAAA,gBAAAC,EAACE,GAAA,EAAgB,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAE7B,gBAAAF;AAAA,UAACD,EAAQ;AAAA,UAAR;AAAA,YACC,WAAU;AAAA,YACV,OAAM;AAAA,YACN,cAAW;AAAA,YAEX,UAAA,gBAAAC,EAACG,GAAA,EAAe,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAC5B;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -2,4 +2,4 @@ import { Editor } from '@tiptap/react';
|
|
|
2
2
|
export interface BlockElementSelectProps {
|
|
3
3
|
editor: Editor | null;
|
|
4
4
|
}
|
|
5
|
-
export declare function BlockElementSelect({ editor }: BlockElementSelectProps): import("react").JSX.Element;
|
|
5
|
+
export declare function BlockElementSelect({ editor }: BlockElementSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { jsxs as c, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { IconH6 as d, IconH5 as h, IconH4 as b, IconH3 as v, IconH2 as f, IconH1 as m, IconLetterT as g, IconList as k, IconListNumbers as p, IconSeparatorHorizontal as H, IconBlockquote as I, IconCode as L } from "@tabler/icons-react";
|
|
3
|
+
import { useEditorState as T } from "@tiptap/react";
|
|
4
|
+
import { Select as n, Toolbar as x } from "radix-ui";
|
|
5
|
+
import { useMemo as A } from "react";
|
|
6
|
+
import { cn as r } from "../../../utils/cn.js";
|
|
7
|
+
function q({ editor: a }) {
|
|
8
|
+
const i = A(() => {
|
|
8
9
|
const e = a?.extensionManager.extensions.find((l) => l.name === "heading")?.options.levels.map(
|
|
9
|
-
(l) =>
|
|
10
|
+
(l) => o.HEADINGS[l]
|
|
10
11
|
) ?? [];
|
|
11
12
|
return [
|
|
12
|
-
|
|
13
|
+
o.TEXT,
|
|
13
14
|
...e.length > 0 ? ["-", ...e] : [],
|
|
14
15
|
"-",
|
|
15
|
-
...
|
|
16
|
+
...o.LIST,
|
|
16
17
|
"-",
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
o.SEPARATOR,
|
|
19
|
+
o.BLOCKQUOTE,
|
|
20
|
+
o.CODE_BLOCK
|
|
20
21
|
];
|
|
21
|
-
}, [a]),
|
|
22
|
+
}, [a]), s = T({
|
|
22
23
|
editor: a,
|
|
23
24
|
selector: (e) => e.editor?.isActive("heading", { level: 1 }) ? "h1" : e.editor?.isActive("heading", { level: 2 }) ? "h2" : e.editor?.isActive("heading", { level: 3 }) ? "h3" : e.editor?.isActive("heading", { level: 4 }) ? "h4" : e.editor?.isActive("heading", { level: 5 }) ? "h5" : e.editor?.isActive("heading", { level: 6 }) ? "h6" : e.editor?.isActive("bulletList") ? "bullet-list" : e.editor?.isActive("orderedList") ? "ordered-list" : e.editor?.isActive("blockquote") ? "blockquote" : e.editor?.isActive("codeBlock") ? "code-block" : "text"
|
|
24
|
-
}),
|
|
25
|
+
}), u = (e) => {
|
|
25
26
|
if (a) {
|
|
26
27
|
switch (e !== "blockquote" && a.chain().focus().unsetBlockquote().run(), e) {
|
|
27
28
|
case "h1":
|
|
@@ -69,61 +70,66 @@ function x({ editor: a }) {
|
|
|
69
70
|
}, 100);
|
|
70
71
|
}
|
|
71
72
|
};
|
|
72
|
-
return /* @__PURE__ */
|
|
73
|
-
t.
|
|
74
|
-
{
|
|
75
|
-
|
|
76
|
-
side: "bottom",
|
|
77
|
-
className: "relative z-50 w-40 translate-y-2 rounded-md border border-border bg-elevation-100 shadow-md slide-in-from-top-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95"
|
|
78
|
-
},
|
|
79
|
-
/* @__PURE__ */ React.createElement(t.Viewport, { className: c("p-1") }, o.map((e, l) => e === "-" ? /* @__PURE__ */ React.createElement(
|
|
80
|
-
t.Separator,
|
|
73
|
+
return /* @__PURE__ */ c(n.Root, { value: s ?? "text", onValueChange: u, children: [
|
|
74
|
+
/* @__PURE__ */ t(n.Trigger, { asChild: !0, children: /* @__PURE__ */ t(x.Button, { className: "flex w-34 cursor-pointer items-center justify-center gap-2 rounded-sm border-none bg-transparent hover:bg-elevation-250 focus:outline", children: /* @__PURE__ */ t(n.Value, {}) }) }),
|
|
75
|
+
/* @__PURE__ */ t(n.Portal, { children: /* @__PURE__ */ t(
|
|
76
|
+
n.Content,
|
|
81
77
|
{
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
"data-slot": "select-content",
|
|
79
|
+
side: "bottom",
|
|
80
|
+
className: "relative z-50 w-40 translate-y-2 rounded-md border border-border bg-elevation-100 shadow-md slide-in-from-top-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
|
|
81
|
+
children: /* @__PURE__ */ t(n.Viewport, { className: r("p-1"), children: i.map((e, l) => e === "-" ? /* @__PURE__ */ t(
|
|
82
|
+
n.Separator,
|
|
83
|
+
{
|
|
84
|
+
className: "my-1 h-px bg-border"
|
|
85
|
+
},
|
|
86
|
+
l
|
|
87
|
+
) : /* @__PURE__ */ c(
|
|
88
|
+
n.Item,
|
|
89
|
+
{
|
|
90
|
+
"data-slot": "select-item",
|
|
91
|
+
className: r(
|
|
92
|
+
"flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1 hover:bg-elevation-250 hover:outline-none data-[state=checked]:pointer-events-none data-[state=checked]:bg-elevation-800 data-[state=checked]:text-elevation-0"
|
|
93
|
+
),
|
|
94
|
+
value: e.value,
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ t(n.Icon, { asChild: !0, children: /* @__PURE__ */ t(e.icon, { className: "size-4" }) }),
|
|
97
|
+
/* @__PURE__ */ t(n.ItemText, { children: e.label })
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
e.value
|
|
101
|
+
)) })
|
|
84
102
|
}
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
{
|
|
88
|
-
key: e.value,
|
|
89
|
-
"data-slot": "select-item",
|
|
90
|
-
className: c(
|
|
91
|
-
"flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1 hover:bg-elevation-250 hover:outline-none data-[state=checked]:pointer-events-none data-[state=checked]:bg-elevation-800 data-[state=checked]:text-elevation-0"
|
|
92
|
-
),
|
|
93
|
-
value: e.value
|
|
94
|
-
},
|
|
95
|
-
/* @__PURE__ */ React.createElement(t.Icon, { asChild: !0 }, /* @__PURE__ */ React.createElement(e.icon, { className: "size-4" })),
|
|
96
|
-
/* @__PURE__ */ React.createElement(t.ItemText, null, e.label)
|
|
97
|
-
)))
|
|
98
|
-
)));
|
|
103
|
+
) })
|
|
104
|
+
] });
|
|
99
105
|
}
|
|
100
|
-
const
|
|
101
|
-
TEXT: { value: "text", label: "Text", icon:
|
|
106
|
+
const o = {
|
|
107
|
+
TEXT: { value: "text", label: "Text", icon: g },
|
|
102
108
|
HEADINGS: {
|
|
103
|
-
1: { value: "h1", label: "Heading 1", icon:
|
|
104
|
-
2: { value: "h2", label: "Heading 2", icon:
|
|
105
|
-
3: { value: "h3", label: "Heading 3", icon:
|
|
106
|
-
4: { value: "h4", label: "Heading 4", icon:
|
|
107
|
-
5: { value: "h5", label: "Heading 5", icon:
|
|
108
|
-
6: { value: "h6", label: "Heading 6", icon:
|
|
109
|
+
1: { value: "h1", label: "Heading 1", icon: m },
|
|
110
|
+
2: { value: "h2", label: "Heading 2", icon: f },
|
|
111
|
+
3: { value: "h3", label: "Heading 3", icon: v },
|
|
112
|
+
4: { value: "h4", label: "Heading 4", icon: b },
|
|
113
|
+
5: { value: "h5", label: "Heading 5", icon: h },
|
|
114
|
+
6: { value: "h6", label: "Heading 6", icon: d }
|
|
109
115
|
},
|
|
110
116
|
LIST: [
|
|
111
|
-
{ value: "bullet-list", label: "Bullet List", icon:
|
|
112
|
-
{ value: "ordered-list", label: "Ordered List", icon:
|
|
117
|
+
{ value: "bullet-list", label: "Bullet List", icon: k },
|
|
118
|
+
{ value: "ordered-list", label: "Ordered List", icon: p }
|
|
113
119
|
],
|
|
114
120
|
SEPARATOR: {
|
|
115
121
|
value: "separator",
|
|
116
122
|
label: "Separator",
|
|
117
|
-
icon:
|
|
123
|
+
icon: H
|
|
118
124
|
},
|
|
119
125
|
BLOCKQUOTE: {
|
|
120
126
|
value: "blockquote",
|
|
121
127
|
label: "Blockquote",
|
|
122
|
-
icon:
|
|
128
|
+
icon: I
|
|
123
129
|
},
|
|
124
|
-
CODE_BLOCK: { value: "code-block", label: "Code Block", icon:
|
|
130
|
+
CODE_BLOCK: { value: "code-block", label: "Code Block", icon: L }
|
|
125
131
|
};
|
|
126
132
|
export {
|
|
127
|
-
|
|
133
|
+
q as BlockElementSelect
|
|
128
134
|
};
|
|
129
135
|
//# sourceMappingURL=BlockElementSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockElementSelect.js","sources":["../../../../src/components/inputs/toolbar/BlockElementSelect.tsx"],"sourcesContent":["import type { IconProps } from \"@tabler/icons-react\";\nimport type { Editor } from \"@tiptap/react\";\nimport {\n IconBlockquote,\n IconCode,\n IconH1,\n IconH2,\n IconH3,\n IconH4,\n IconH5,\n IconH6,\n IconLetterT,\n IconList,\n IconListNumbers,\n IconSeparatorHorizontal,\n} from \"@tabler/icons-react\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { Select, Toolbar } from \"radix-ui\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport interface BlockElementSelectProps {\n // TODO add config\n editor: Editor | null;\n}\nexport function BlockElementSelect({ editor }: BlockElementSelectProps) {\n const items = useMemo(() => {\n const headings =\n editor?.extensionManager.extensions\n .find((extension) => extension.name === \"heading\")\n ?.options.levels.map(\n (level: 1 | 2 | 3 | 4 | 5 | 6) => BLOCK_ELEMENTS.HEADINGS[level],\n ) ?? [];\n\n return [\n BLOCK_ELEMENTS.TEXT,\n ...(headings.length > 0 ? [\"-\", ...headings] : []),\n \"-\",\n ...BLOCK_ELEMENTS.LIST,\n \"-\",\n BLOCK_ELEMENTS.SEPARATOR,\n BLOCK_ELEMENTS.BLOCKQUOTE,\n BLOCK_ELEMENTS.CODE_BLOCK,\n ];\n }, [editor]);\n\n const value = useEditorState<BlockElementType>({\n editor,\n selector: (state) => {\n if (state.editor?.isActive(\"heading\", { level: 1 })) return \"h1\";\n if (state.editor?.isActive(\"heading\", { level: 2 })) return \"h2\";\n if (state.editor?.isActive(\"heading\", { level: 3 })) return \"h3\";\n if (state.editor?.isActive(\"heading\", { level: 4 })) return \"h4\";\n if (state.editor?.isActive(\"heading\", { level: 5 })) return \"h5\";\n if (state.editor?.isActive(\"heading\", { level: 6 })) return \"h6\";\n if (state.editor?.isActive(\"bulletList\")) return \"bullet-list\";\n if (state.editor?.isActive(\"orderedList\")) return \"ordered-list\";\n if (state.editor?.isActive(\"blockquote\")) return \"blockquote\";\n if (state.editor?.isActive(\"codeBlock\")) return \"code-block\";\n return \"text\";\n },\n });\n const handleChange = (value: string) => {\n if (!editor) return;\n\n if (value !== \"blockquote\") {\n editor.chain().focus().unsetBlockquote().run();\n }\n\n switch (value as BlockElementType) {\n case \"h1\":\n editor.chain().focus().setHeading({ level: 1 }).run();\n break;\n case \"h2\":\n editor.chain().focus().setHeading({ level: 2 }).run();\n break;\n case \"h3\":\n editor.chain().focus().setHeading({ level: 3 }).run();\n break;\n case \"h4\":\n editor.chain().focus().setHeading({ level: 4 }).run();\n break;\n case \"h5\":\n editor.chain().focus().setHeading({ level: 5 }).run();\n break;\n case \"h6\":\n editor.chain().focus().setHeading({ level: 6 }).run();\n break;\n case \"bullet-list\":\n editor.chain().focus().toggleBulletList().run();\n break;\n case \"ordered-list\":\n editor.chain().focus().toggleOrderedList().run();\n break;\n case \"task-list\":\n editor.chain().focus().toggleTaskList().run();\n break;\n case \"separator\":\n editor.chain().focus().setHorizontalRule().run();\n break;\n case \"blockquote\":\n editor.chain().focus().setParagraph().run();\n editor.chain().focus().setBlockquote().run();\n break;\n case \"code-block\":\n editor.chain().focus().setCodeBlock().run();\n break;\n case \"text\":\n editor.chain().focus().setParagraph().run();\n break;\n }\n // TODO bring back the focus to the active text\n setTimeout(() => {\n editor.commands.focus();\n }, 100);\n };\n\n return (\n <Select.Root value={value ?? \"text\"} onValueChange={handleChange}>\n <Select.Trigger asChild>\n <Toolbar.Button className=\"flex w-34 cursor-pointer items-center justify-center gap-2 rounded-sm border-none bg-transparent hover:bg-elevation-250 focus:outline\">\n <Select.Value />\n </Toolbar.Button>\n </Select.Trigger>\n <Select.Portal>\n <Select.Content\n data-slot=\"select-content\"\n side=\"bottom\"\n className=\"relative z-50 w-40 translate-y-2 rounded-md border border-border bg-elevation-100 shadow-md slide-in-from-top-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\"\n >\n <Select.Viewport className={cn(\"p-1\")}>\n {items.map((option, index) => {\n if (option === \"-\")\n return (\n <Select.Separator\n key={index}\n className=\"my-1 h-px bg-border\"\n />\n );\n\n return (\n <Select.Item\n key={option.value}\n data-slot=\"select-item\"\n className={cn(\n \"flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1 hover:bg-elevation-250 hover:outline-none data-[state=checked]:pointer-events-none data-[state=checked]:bg-elevation-800 data-[state=checked]:text-elevation-0\",\n )}\n value={option.value}\n >\n <Select.Icon asChild>\n <option.icon className=\"size-4\" />\n </Select.Icon>\n <Select.ItemText>{option.label}</Select.ItemText>\n </Select.Item>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n}\n\n// MARK: Options\n\ntype BlockElementType =\n | \"text\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"bullet-list\"\n | \"ordered-list\"\n | \"task-list\"\n | \"blockquote\"\n | \"separator\"\n | \"code-block\";\n\ninterface BlockElementOption {\n value: BlockElementType;\n label: string;\n icon: React.FunctionComponent<IconProps>;\n}\n\nconst BLOCK_ELEMENTS = {\n TEXT: { value: \"text\", label: \"Text\", icon: IconLetterT },\n HEADINGS: {\n 1: { value: \"h1\", label: \"Heading 1\", icon: IconH1 },\n 2: { value: \"h2\", label: \"Heading 2\", icon: IconH2 },\n 3: { value: \"h3\", label: \"Heading 3\", icon: IconH3 },\n 4: { value: \"h4\", label: \"Heading 4\", icon: IconH4 },\n 5: { value: \"h5\", label: \"Heading 5\", icon: IconH5 },\n 6: { value: \"h6\", label: \"Heading 6\", icon: IconH6 },\n },\n LIST: [\n { value: \"bullet-list\", label: \"Bullet List\", icon: IconList },\n { value: \"ordered-list\", label: \"Ordered List\", icon: IconListNumbers },\n ],\n SEPARATOR: {\n value: \"separator\",\n label: \"Separator\",\n icon: IconSeparatorHorizontal,\n },\n BLOCKQUOTE: {\n value: \"blockquote\",\n label: \"Blockquote\",\n icon: IconBlockquote,\n },\n CODE_BLOCK: { value: \"code-block\", label: \"Code Block\", icon: IconCode },\n} satisfies Record<\n string,\n | BlockElementOption\n | BlockElementOption[]\n | Record<string | number, BlockElementOption>\n>;\n"],"names":["BlockElementSelect","editor","items","useMemo","headings","extension","level","BLOCK_ELEMENTS","value","useEditorState","state","handleChange","Select","Toolbar","cn","option","index","IconLetterT","IconH1","IconH2","IconH3","IconH4","IconH5","IconH6","IconList","IconListNumbers","IconSeparatorHorizontal","IconBlockquote","IconCode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BlockElementSelect.js","sources":["../../../../src/components/inputs/toolbar/BlockElementSelect.tsx"],"sourcesContent":["import type { IconProps } from \"@tabler/icons-react\";\nimport type { Editor } from \"@tiptap/react\";\nimport {\n IconBlockquote,\n IconCode,\n IconH1,\n IconH2,\n IconH3,\n IconH4,\n IconH5,\n IconH6,\n IconLetterT,\n IconList,\n IconListNumbers,\n IconSeparatorHorizontal,\n} from \"@tabler/icons-react\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { Select, Toolbar } from \"radix-ui\";\nimport { useMemo } from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport interface BlockElementSelectProps {\n // TODO add config\n editor: Editor | null;\n}\nexport function BlockElementSelect({ editor }: BlockElementSelectProps) {\n const items = useMemo(() => {\n const headings =\n editor?.extensionManager.extensions\n .find((extension) => extension.name === \"heading\")\n ?.options.levels.map(\n (level: 1 | 2 | 3 | 4 | 5 | 6) => BLOCK_ELEMENTS.HEADINGS[level],\n ) ?? [];\n\n return [\n BLOCK_ELEMENTS.TEXT,\n ...(headings.length > 0 ? [\"-\", ...headings] : []),\n \"-\",\n ...BLOCK_ELEMENTS.LIST,\n \"-\",\n BLOCK_ELEMENTS.SEPARATOR,\n BLOCK_ELEMENTS.BLOCKQUOTE,\n BLOCK_ELEMENTS.CODE_BLOCK,\n ];\n }, [editor]);\n\n const value = useEditorState<BlockElementType>({\n editor,\n selector: (state) => {\n if (state.editor?.isActive(\"heading\", { level: 1 })) return \"h1\";\n if (state.editor?.isActive(\"heading\", { level: 2 })) return \"h2\";\n if (state.editor?.isActive(\"heading\", { level: 3 })) return \"h3\";\n if (state.editor?.isActive(\"heading\", { level: 4 })) return \"h4\";\n if (state.editor?.isActive(\"heading\", { level: 5 })) return \"h5\";\n if (state.editor?.isActive(\"heading\", { level: 6 })) return \"h6\";\n if (state.editor?.isActive(\"bulletList\")) return \"bullet-list\";\n if (state.editor?.isActive(\"orderedList\")) return \"ordered-list\";\n if (state.editor?.isActive(\"blockquote\")) return \"blockquote\";\n if (state.editor?.isActive(\"codeBlock\")) return \"code-block\";\n return \"text\";\n },\n });\n const handleChange = (value: string) => {\n if (!editor) return;\n\n if (value !== \"blockquote\") {\n editor.chain().focus().unsetBlockquote().run();\n }\n\n switch (value as BlockElementType) {\n case \"h1\":\n editor.chain().focus().setHeading({ level: 1 }).run();\n break;\n case \"h2\":\n editor.chain().focus().setHeading({ level: 2 }).run();\n break;\n case \"h3\":\n editor.chain().focus().setHeading({ level: 3 }).run();\n break;\n case \"h4\":\n editor.chain().focus().setHeading({ level: 4 }).run();\n break;\n case \"h5\":\n editor.chain().focus().setHeading({ level: 5 }).run();\n break;\n case \"h6\":\n editor.chain().focus().setHeading({ level: 6 }).run();\n break;\n case \"bullet-list\":\n editor.chain().focus().toggleBulletList().run();\n break;\n case \"ordered-list\":\n editor.chain().focus().toggleOrderedList().run();\n break;\n case \"task-list\":\n editor.chain().focus().toggleTaskList().run();\n break;\n case \"separator\":\n editor.chain().focus().setHorizontalRule().run();\n break;\n case \"blockquote\":\n editor.chain().focus().setParagraph().run();\n editor.chain().focus().setBlockquote().run();\n break;\n case \"code-block\":\n editor.chain().focus().setCodeBlock().run();\n break;\n case \"text\":\n editor.chain().focus().setParagraph().run();\n break;\n }\n // TODO bring back the focus to the active text\n setTimeout(() => {\n editor.commands.focus();\n }, 100);\n };\n\n return (\n <Select.Root value={value ?? \"text\"} onValueChange={handleChange}>\n <Select.Trigger asChild>\n <Toolbar.Button className=\"flex w-34 cursor-pointer items-center justify-center gap-2 rounded-sm border-none bg-transparent hover:bg-elevation-250 focus:outline\">\n <Select.Value />\n </Toolbar.Button>\n </Select.Trigger>\n <Select.Portal>\n <Select.Content\n data-slot=\"select-content\"\n side=\"bottom\"\n className=\"relative z-50 w-40 translate-y-2 rounded-md border border-border bg-elevation-100 shadow-md slide-in-from-top-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\"\n >\n <Select.Viewport className={cn(\"p-1\")}>\n {items.map((option, index) => {\n if (option === \"-\")\n return (\n <Select.Separator\n key={index}\n className=\"my-1 h-px bg-border\"\n />\n );\n\n return (\n <Select.Item\n key={option.value}\n data-slot=\"select-item\"\n className={cn(\n \"flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1 hover:bg-elevation-250 hover:outline-none data-[state=checked]:pointer-events-none data-[state=checked]:bg-elevation-800 data-[state=checked]:text-elevation-0\",\n )}\n value={option.value}\n >\n <Select.Icon asChild>\n <option.icon className=\"size-4\" />\n </Select.Icon>\n <Select.ItemText>{option.label}</Select.ItemText>\n </Select.Item>\n );\n })}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n}\n\n// MARK: Options\n\ntype BlockElementType =\n | \"text\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"bullet-list\"\n | \"ordered-list\"\n | \"task-list\"\n | \"blockquote\"\n | \"separator\"\n | \"code-block\";\n\ninterface BlockElementOption {\n value: BlockElementType;\n label: string;\n icon: React.FunctionComponent<IconProps>;\n}\n\nconst BLOCK_ELEMENTS = {\n TEXT: { value: \"text\", label: \"Text\", icon: IconLetterT },\n HEADINGS: {\n 1: { value: \"h1\", label: \"Heading 1\", icon: IconH1 },\n 2: { value: \"h2\", label: \"Heading 2\", icon: IconH2 },\n 3: { value: \"h3\", label: \"Heading 3\", icon: IconH3 },\n 4: { value: \"h4\", label: \"Heading 4\", icon: IconH4 },\n 5: { value: \"h5\", label: \"Heading 5\", icon: IconH5 },\n 6: { value: \"h6\", label: \"Heading 6\", icon: IconH6 },\n },\n LIST: [\n { value: \"bullet-list\", label: \"Bullet List\", icon: IconList },\n { value: \"ordered-list\", label: \"Ordered List\", icon: IconListNumbers },\n ],\n SEPARATOR: {\n value: \"separator\",\n label: \"Separator\",\n icon: IconSeparatorHorizontal,\n },\n BLOCKQUOTE: {\n value: \"blockquote\",\n label: \"Blockquote\",\n icon: IconBlockquote,\n },\n CODE_BLOCK: { value: \"code-block\", label: \"Code Block\", icon: IconCode },\n} satisfies Record<\n string,\n | BlockElementOption\n | BlockElementOption[]\n | Record<string | number, BlockElementOption>\n>;\n"],"names":["BlockElementSelect","editor","items","useMemo","headings","extension","level","BLOCK_ELEMENTS","value","useEditorState","state","handleChange","jsxs","Select","jsx","Toolbar","cn","option","index","IconLetterT","IconH1","IconH2","IconH3","IconH4","IconH5","IconH6","IconList","IconListNumbers","IconSeparatorHorizontal","IconBlockquote","IconCode"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export interface LinkEditorProps extends Omit<React.HTMLAttributes<HTMLButtonEle
|
|
|
10
10
|
*/
|
|
11
11
|
autoOpenOnLinkActive?: boolean;
|
|
12
12
|
}
|
|
13
|
-
export declare function LinkEditor({ editor, hideWhenUnavailable, onSetLink, onOpenChange, autoOpenOnLinkActive, onClick, className, ...buttonProps }: LinkEditorProps): import("react").JSX.Element;
|
|
13
|
+
export declare function LinkEditor({ editor, hideWhenUnavailable, onSetLink, onOpenChange, autoOpenOnLinkActive, onClick, className, ...buttonProps }: LinkEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
/**
|
|
15
15
|
* Configuration for the link popover functionality
|
|
16
16
|
*/
|