@ginia/ui 0.1.19 → 0.1.20
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/ui/index.d.cts +13 -2
- package/dist/components/ui/index.d.ts +13 -2
- package/dist/components/ui/rich-text-editor/index.cjs +21219 -7
- package/dist/components/ui/rich-text-editor/index.cjs.map +1 -1
- package/dist/components/ui/rich-text-editor/index.js +21211 -1
- package/dist/components/ui/rich-text-editor/index.js.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/components/ui/rich-text-editor/index.d.cts +0 -2
- package/dist/components/ui/rich-text-editor/index.d.ts +0 -2
- package/dist/components/ui/rich-text-editor/rich-text-editor.cjs +0 -282
- package/dist/components/ui/rich-text-editor/rich-text-editor.cjs.map +0 -1
- package/dist/components/ui/rich-text-editor/rich-text-editor.d.cts +0 -13
- package/dist/components/ui/rich-text-editor/rich-text-editor.d.ts +0 -13
- package/dist/components/ui/rich-text-editor/rich-text-editor.js +0 -262
- package/dist/components/ui/rich-text-editor/rich-text-editor.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/rich-text-editor/rich-text-editor.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useEditor, EditorContent } from \"@tiptap/react\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Color from \"@tiptap/extension-color\";\nimport { TextStyle } from \"@tiptap/extension-text-style\";\nimport ImageExtension from \"@tiptap/extension-image\";\nimport LinkExtension from \"@tiptap/extension-link\";\nimport Placeholder from \"@tiptap/extension-placeholder\";\nimport {\n Bold,\n Italic,\n Strikethrough,\n List,\n ListOrdered,\n Link,\n AlignLeft,\n AlignCenter,\n AlignRight,\n Image as ImageIcon,\n Heading1,\n Heading2,\n Heading3,\n} from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\ninterface RichTextEditorProps {\n value: string;\n onChange: (content: string) => void;\n placeholder?: string;\n height?: number;\n className?: string;\n readOnly?: boolean;\n}\n\nfunction ToolbarButton({\n onClick,\n children,\n title,\n isActive = false,\n}: {\n onClick: () => void;\n children: React.ReactNode;\n title: string;\n isActive?: boolean;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n title={title}\n className={cn(\n \"rounded p-2 transition-colors\",\n isActive ? \"bg-primary text-primary-foreground\" : \"text-muted-foreground hover:bg-muted\",\n )}\n >\n {children}\n </button>\n );\n}\n\nfunction RichTextEditor({\n value,\n onChange,\n placeholder = \"Escribe aquí...\",\n height = 200,\n className = \"\",\n readOnly = false,\n}: RichTextEditorProps) {\n const editor = useEditor({\n extensions: [\n StarterKit,\n TextAlign.configure({\n types: [\"heading\", \"paragraph\"],\n }),\n Color.configure({ types: [TextStyle.name] }),\n TextStyle,\n ImageExtension.configure({\n HTMLAttributes: {\n class: \"max-w-full h-auto rounded-lg\",\n },\n }),\n LinkExtension.configure({\n openOnClick: false,\n }),\n Placeholder.configure({\n placeholder: placeholder,\n }),\n ],\n content: value,\n editable: !readOnly,\n immediatelyRender: false,\n onUpdate: ({ editor: e }) => {\n onChange(e.getHTML());\n },\n editorProps: {\n attributes: {\n class:\n \"prose prose-sm mx-auto focus:outline-none max-w-none\",\n style: `min-height: ${height}px;`,\n },\n },\n });\n\n React.useEffect(() => {\n if (editor && editor.getHTML() !== value) {\n editor.commands.setContent(value);\n }\n }, [value, editor]);\n\n if (!editor) {\n return (\n <div className={cn(\"overflow-hidden rounded-lg border border-border\", className)}>\n <div className=\"flex h-32 animate-pulse items-center justify-center rounded bg-muted text-muted-foreground\">\n Cargando editor...\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"rich-text-editor\"\n className={cn(\"overflow-hidden rounded-lg border border-border\", className)}\n >\n {!readOnly && (\n <div className=\"flex flex-wrap gap-1 border-b border-border bg-muted/50 p-2\">\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}\n title=\"Título 1\"\n isActive={editor.isActive(\"heading\", { level: 1 })}\n >\n <Heading1 className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}\n title=\"Título 2\"\n isActive={editor.isActive(\"heading\", { level: 2 })}\n >\n <Heading2 className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}\n title=\"Título 3\"\n isActive={editor.isActive(\"heading\", { level: 3 })}\n >\n <Heading3 className=\"h-4 w-4\" />\n </ToolbarButton>\n <div className=\"mx-1 h-6 w-px bg-border\" />\n\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleBold().run()}\n title=\"Negrita\"\n isActive={editor.isActive(\"bold\")}\n >\n <Bold className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleItalic().run()}\n title=\"Cursiva\"\n isActive={editor.isActive(\"italic\")}\n >\n <Italic className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleStrike().run()}\n title=\"Tachado\"\n isActive={editor.isActive(\"strike\")}\n >\n <Strikethrough className=\"h-4 w-4\" />\n </ToolbarButton>\n <div className=\"mx-1 h-6 w-px bg-border\" />\n\n <div className=\"relative\">\n <input\n type=\"color\"\n className=\"h-8 w-8 cursor-pointer rounded border border-border\"\n onChange={(e) => {\n editor.chain().focus().setColor(e.target.value).run();\n }}\n title=\"Color del texto\"\n />\n </div>\n\n <div className=\"mx-1 h-6 w-px bg-border\" />\n\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleBulletList().run()}\n title=\"Lista con viñetas\"\n isActive={editor.isActive(\"bulletList\")}\n >\n <List className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().toggleOrderedList().run()}\n title=\"Lista numerada\"\n isActive={editor.isActive(\"orderedList\")}\n >\n <ListOrdered className=\"h-4 w-4\" />\n </ToolbarButton>\n <div className=\"mx-1 h-6 w-px bg-border\" />\n\n <ToolbarButton\n onClick={() => editor.chain().focus().setTextAlign(\"left\").run()}\n title=\"Alinear izquierda\"\n isActive={editor.isActive({ textAlign: \"left\" })}\n >\n <AlignLeft className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().setTextAlign(\"center\").run()}\n title=\"Centrar\"\n isActive={editor.isActive({ textAlign: \"center\" })}\n >\n <AlignCenter className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => editor.chain().focus().setTextAlign(\"right\").run()}\n title=\"Alinear derecha\"\n isActive={editor.isActive({ textAlign: \"right\" })}\n >\n <AlignRight className=\"h-4 w-4\" />\n </ToolbarButton>\n <div className=\"mx-1 h-6 w-px bg-border\" />\n\n <ToolbarButton\n onClick={() => {\n const url = prompt(\"Ingresa la URL:\");\n if (url) {\n editor.chain().focus().setLink({ href: url }).run();\n }\n }}\n title=\"Insertar enlace\"\n isActive={editor.isActive(\"link\")}\n >\n <Link className=\"h-4 w-4\" />\n </ToolbarButton>\n <ToolbarButton\n onClick={() => {\n const url = prompt(\"Ingresa la URL de la imagen:\");\n if (url) {\n editor.chain().focus().setImage({ src: url }).run();\n }\n }}\n title=\"Insertar imagen\"\n >\n <ImageIcon className=\"h-4 w-4\" />\n </ToolbarButton>\n </div>\n )}\n <EditorContent\n editor={editor}\n className=\"prose prose-sm max-w-none bg-card p-3\"\n style={{ minHeight: `${height}px` }}\n />\n </div>\n );\n}\n\nexport { RichTextEditor };\nexport type { RichTextEditorProps };\n"],"mappings":"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","names":[]}
|