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.
Files changed (69) hide show
  1. package/dist/components/MessageController.js +29 -28
  2. package/dist/components/MessageController.js.map +1 -1
  3. package/dist/components/MessagesForm.js +92 -76
  4. package/dist/components/MessagesForm.js.map +1 -1
  5. package/dist/components/actions/JsonImport.d.ts +1 -1
  6. package/dist/components/actions/JsonImport.js +63 -0
  7. package/dist/components/actions/JsonImport.js.map +1 -0
  8. package/dist/components/actions/Move.d.ts +1 -1
  9. package/dist/components/inputs/InputWrapper.d.ts +1 -1
  10. package/dist/components/inputs/InputWrapper.js +24 -18
  11. package/dist/components/inputs/InputWrapper.js.map +1 -1
  12. package/dist/components/inputs/MessageInput.d.ts +1 -1
  13. package/dist/components/inputs/MessageInput.js +27 -41
  14. package/dist/components/inputs/MessageInput.js.map +1 -1
  15. package/dist/components/inputs/RichTextInput.js +62 -58
  16. package/dist/components/inputs/RichTextInput.js.map +1 -1
  17. package/dist/components/inputs/toolbar/AlignmentControls.d.ts +1 -1
  18. package/dist/components/inputs/toolbar/AlignmentControls.js +47 -44
  19. package/dist/components/inputs/toolbar/AlignmentControls.js.map +1 -1
  20. package/dist/components/inputs/toolbar/BlockElementSelect.d.ts +1 -1
  21. package/dist/components/inputs/toolbar/BlockElementSelect.js +60 -54
  22. package/dist/components/inputs/toolbar/BlockElementSelect.js.map +1 -1
  23. package/dist/components/inputs/toolbar/LinkEditor.d.ts +1 -1
  24. package/dist/components/inputs/toolbar/LinkEditor.js +182 -170
  25. package/dist/components/inputs/toolbar/LinkEditor.js.map +1 -1
  26. package/dist/components/inputs/toolbar/MarkControls.d.ts +1 -1
  27. package/dist/components/inputs/toolbar/MarkControls.js +29 -28
  28. package/dist/components/inputs/toolbar/MarkControls.js.map +1 -1
  29. package/dist/components/inputs/toolbar/RichTextToolbar.d.ts +1 -1
  30. package/dist/components/inputs/toolbar/RichTextToolbar.js +29 -26
  31. package/dist/components/inputs/toolbar/RichTextToolbar.js.map +1 -1
  32. package/dist/components/inputs/variables/VariableChip.d.ts +1 -1
  33. package/dist/components/inputs/variables/VariableChip.js +55 -49
  34. package/dist/components/inputs/variables/VariableChip.js.map +1 -1
  35. package/dist/components/inputs/variables/VariableSuggestion.d.ts +1 -1
  36. package/dist/components/inputs/variables/VariableSuggestion.js +24 -23
  37. package/dist/components/inputs/variables/VariableSuggestion.js.map +1 -1
  38. package/dist/components/inputs/variables/editors/DateVariableEditor.d.ts +1 -1
  39. package/dist/components/inputs/variables/editors/PluralVariableEditor.d.ts +1 -1
  40. package/dist/components/inputs/variables/editors/PluralVariableEditor.js +151 -122
  41. package/dist/components/inputs/variables/editors/PluralVariableEditor.js.map +1 -1
  42. package/dist/components/inputs/variables/editors/SelectVariableEditor.d.ts +1 -1
  43. package/dist/components/inputs/variables/editors/SelectVariableEditor.js +33 -29
  44. package/dist/components/inputs/variables/editors/SelectVariableEditor.js.map +1 -1
  45. package/dist/components/inputs/variables/editors/TagVariableEditor.d.ts +1 -1
  46. package/dist/components/inputs/variables/editors/TagVariableEditor.js +13 -12
  47. package/dist/components/inputs/variables/editors/TagVariableEditor.js.map +1 -1
  48. package/dist/components/inputs/variables/editors/TimeVariableEditor.d.ts +1 -1
  49. package/dist/components/inputs/variables/pickers/NumericVariablePicker.d.ts +1 -1
  50. package/dist/components/inputs/variables/pickers/NumericVariablePicker.js +40 -36
  51. package/dist/components/inputs/variables/pickers/NumericVariablePicker.js.map +1 -1
  52. package/dist/components/inputs/variables/pickers/TemporalElementEditor.d.ts +1 -1
  53. package/dist/components/layout/MessageField.js +42 -38
  54. package/dist/components/layout/MessageField.js.map +1 -1
  55. package/dist/components/layout/MessagesTabs.js +31 -30
  56. package/dist/components/layout/MessagesTabs.js.map +1 -1
  57. package/dist/components/layout/MessagesTree.js +52 -51
  58. package/dist/components/layout/MessagesTree.js.map +1 -1
  59. package/dist/context/messages-form.d.ts +1 -1
  60. package/dist/context/messages-form.js +12 -11
  61. package/dist/context/messages-form.js.map +1 -1
  62. package/dist/exports/link.d.ts +1 -1
  63. package/dist/exports/link.js +11 -10
  64. package/dist/exports/link.js.map +1 -1
  65. package/dist/exports/view.d.ts +1 -1
  66. package/dist/exports/view.js +43 -40
  67. package/dist/exports/view.js.map +1 -1
  68. package/dist/types.d.ts +2 -2
  69. package/package.json +1 -2
@@ -1,81 +1,85 @@
1
- import f from "@tiptap/extension-blockquote";
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 s from "@tiptap/extension-code-block";
4
- import d from "@tiptap/extension-document";
5
- import g from "@tiptap/extension-hard-break";
6
- import u from "@tiptap/extension-heading";
7
- import h from "@tiptap/extension-highlight";
8
- import T from "@tiptap/extension-horizontal-rule";
9
- import k from "@tiptap/extension-italic";
10
- import x from "@tiptap/extension-link";
11
- import { BulletList as R, OrderedList as E, ListItem as L, ListKeymap as y } from "@tiptap/extension-list";
12
- import B from "@tiptap/extension-paragraph";
13
- import H from "@tiptap/extension-strike";
14
- import b from "@tiptap/extension-text";
15
- import C from "@tiptap/extension-text-align";
16
- import I from "@tiptap/extension-typography";
17
- import N from "@tiptap/extension-underline";
18
- import { UndoRedo as O, TrailingNode as U } from "@tiptap/extensions";
19
- import { useEditor as q, EditorContent as w } from "@tiptap/react";
20
- import { useMessagesForm as M } from "../../context/messages-form.js";
21
- import { InputWrapper as S } from "./InputWrapper.js";
22
- import { RichTextToolbar as z } from "./toolbar/RichTextToolbar.js";
23
- function mo({
24
- error: e,
25
- label: t,
26
- lang: i,
27
- onBlur: m,
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: p,
30
- className: a
30
+ value: a,
31
+ className: f
31
32
  }) {
32
- const { richTextEditorOptions: o } = M();
33
+ const { richTextEditorOptions: o } = S();
33
34
  console.log(o);
34
- const r = q({
35
- content: p,
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
- T,
43
- f,
44
- s,
46
+ B,
47
+ H,
45
48
  R,
46
- E,
47
- L,
48
- x.configure({
49
+ y.configure({
49
50
  openOnClick: !1,
50
51
  enableClickSelection: !0
51
52
  }),
52
53
  c,
53
- k,
54
- H,
55
- N,
54
+ L,
56
55
  I,
57
- h,
58
- C.configure({
56
+ U,
57
+ O,
58
+ T,
59
+ N.configure({
59
60
  types: ["heading", "paragraph", "blockquote"]
60
61
  }),
61
- O,
62
- U,
63
- y
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__ */ React.createElement(S, { label: t, error: e, className: a }, /* @__PURE__ */ React.createElement(z, { className: "mb-3 w-full min-w-max", editor: r }), /* @__PURE__ */ React.createElement(
69
- w,
70
- {
71
- className: "tiptap-editor min-h-8",
72
- editor: r,
73
- lang: i,
74
- onBlur: m
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
- mo as RichTextInput
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":";;;;;;;;;;;;;;;;;;;;;;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,sBAAA,cAACwB,GAAA,EAAa,OAAAhC,GAAc,OAAAD,GAAc,WAAAM,yCACvC4B,GAAA,EAAgB,WAAU,yBAAwB,QAAAzB,EAAA,CAAgB,GACnE,sBAAA;AAAA,IAAC0B;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,QAAA1B;AAAA,MACA,MAAAP;AAAA,MACA,QAAAC;AAAA,IAAA;AAAA,EAAA,CAEJ;AAEJ;"}
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 { IconAlignLeft as c, IconAlignCenter as g, IconAlignRight as u } from "@tabler/icons-react";
2
- import { useEditorState as d } from "@tiptap/react";
3
- import { Toolbar as t } from "radix-ui";
4
- function v({ editor: n }) {
5
- const { value: a, disabled: r } = d({
6
- editor: n,
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 i = e.editor?.getAttributes("paragraph"), l = e.editor?.getAttributes("heading"), s = e.editor?.getAttributes("blockquote");
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: i?.textAlign || l?.textAlign || s?.textAlign
12
+ value: l?.textAlign || s?.textAlign || g?.textAlign
12
13
  };
13
14
  }
14
- }) ?? { value: "left" }, o = (e) => {
15
- n && n.chain().focus().setTextAlign(e).run();
15
+ }) ?? { value: "left" }, a = (e) => {
16
+ i && i.chain().focus().setTextAlign(e).run();
16
17
  };
17
- return /* @__PURE__ */ React.createElement(
18
- t.ToggleGroup,
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: a,
24
- onValueChange: o,
25
- disabled: r
26
- },
27
- /* @__PURE__ */ React.createElement(
28
- t.ToggleItem,
29
- {
30
- 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",
31
- value: "left",
32
- "aria-label": "Left aligned"
33
- },
34
- /* @__PURE__ */ React.createElement(c, { size: 16 })
35
- ),
36
- /* @__PURE__ */ React.createElement(
37
- t.ToggleItem,
38
- {
39
- 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",
40
- value: "center",
41
- "aria-label": "Center aligned"
42
- },
43
- /* @__PURE__ */ React.createElement(g, { size: 16 })
44
- ),
45
- /* @__PURE__ */ React.createElement(
46
- t.ToggleItem,
47
- {
48
- 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",
49
- value: "right",
50
- "aria-label": "Right aligned"
51
- },
52
- /* @__PURE__ */ React.createElement(u, { size: 16 })
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
- v as AlignmentControls
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":";;;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,sBAAA;AAAA,IAACQ,EAAQ;AAAA,IAAR;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,cAAW;AAAA,MACX,OAAAR;AAAA,MACA,eAAeO;AAAA,MACf,UAAAN;AAAA,IAAA;AAAA,IAEA,sBAAA;AAAA,MAACO,EAAQ;AAAA,MAAR;AAAA,QACC,WAAU;AAAA,QACV,OAAM;AAAA,QACN,cAAW;AAAA,MAAA;AAAA,MAEX,sBAAA,cAACC,GAAA,EAAc,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,IAE3B,sBAAA;AAAA,MAACD,EAAQ;AAAA,MAAR;AAAA,QACC,WAAU;AAAA,QACV,OAAM;AAAA,QACN,cAAW;AAAA,MAAA;AAAA,MAEX,sBAAA,cAACE,GAAA,EAAgB,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,IAE7B,sBAAA;AAAA,MAACF,EAAQ;AAAA,MAAR;AAAA,QACC,WAAU;AAAA,QACV,OAAM;AAAA,QACN,cAAW;AAAA,MAAA;AAAA,MAEX,sBAAA,cAACG,GAAA,EAAe,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,EAC5B;AAGN;"}
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 { IconH6 as s, IconH5 as u, IconH4 as d, IconH3 as h, IconH2 as m, IconH1 as b, IconLetterT as v, IconList as f, IconListNumbers as g, IconSeparatorHorizontal as k, IconBlockquote as p, IconCode as E } from "@tabler/icons-react";
2
- import { useEditorState as H } from "@tiptap/react";
3
- import { Select as t, Toolbar as I } from "radix-ui";
4
- import { useMemo as L } from "react";
5
- import { cn as c } from "../../../utils/cn.js";
6
- function x({ editor: a }) {
7
- const o = L(() => {
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) => n.HEADINGS[l]
10
+ (l) => o.HEADINGS[l]
10
11
  ) ?? [];
11
12
  return [
12
- n.TEXT,
13
+ o.TEXT,
13
14
  ...e.length > 0 ? ["-", ...e] : [],
14
15
  "-",
15
- ...n.LIST,
16
+ ...o.LIST,
16
17
  "-",
17
- n.SEPARATOR,
18
- n.BLOCKQUOTE,
19
- n.CODE_BLOCK
18
+ o.SEPARATOR,
19
+ o.BLOCKQUOTE,
20
+ o.CODE_BLOCK
20
21
  ];
21
- }, [a]), r = H({
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
- }), i = (e) => {
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__ */ React.createElement(t.Root, { value: r ?? "text", onValueChange: i }, /* @__PURE__ */ React.createElement(t.Trigger, { asChild: !0 }, /* @__PURE__ */ React.createElement(I.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" }, /* @__PURE__ */ React.createElement(t.Value, null))), /* @__PURE__ */ React.createElement(t.Portal, null, /* @__PURE__ */ React.createElement(
73
- t.Content,
74
- {
75
- "data-slot": "select-content",
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
- key: l,
83
- className: "my-1 h-px bg-border"
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
- ) : /* @__PURE__ */ React.createElement(
86
- t.Item,
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 n = {
101
- TEXT: { value: "text", label: "Text", icon: v },
106
+ const o = {
107
+ TEXT: { value: "text", label: "Text", icon: g },
102
108
  HEADINGS: {
103
- 1: { value: "h1", label: "Heading 1", icon: b },
104
- 2: { value: "h2", label: "Heading 2", icon: m },
105
- 3: { value: "h3", label: "Heading 3", icon: h },
106
- 4: { value: "h4", label: "Heading 4", icon: d },
107
- 5: { value: "h5", label: "Heading 5", icon: u },
108
- 6: { value: "h6", label: "Heading 6", icon: s }
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: f },
112
- { value: "ordered-list", label: "Ordered List", icon: g }
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: k
123
+ icon: H
118
124
  },
119
125
  BLOCKQUOTE: {
120
126
  value: "blockquote",
121
127
  label: "Blockquote",
122
- icon: p
128
+ icon: I
123
129
  },
124
- CODE_BLOCK: { value: "code-block", label: "Code Block", icon: E }
130
+ CODE_BLOCK: { value: "code-block", label: "Code Block", icon: L }
125
131
  };
126
132
  export {
127
- x as BlockElementSelect
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
  */