pillardash-ui-react 0.1.151 → 0.1.154

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 (32) hide show
  1. package/dist/cjs/components/Cards/Card.js +1 -1
  2. package/dist/cjs/components/Cards/Card.js.map +1 -1
  3. package/dist/cjs/components/Form/TextEditor/ImagePopover.js +1 -1
  4. package/dist/cjs/components/Form/TextEditor/ImagePopover.js.map +1 -1
  5. package/dist/cjs/components/Form/TextEditor/LinkPopover.js +1 -1
  6. package/dist/cjs/components/Form/TextEditor/LinkPopover.js.map +1 -1
  7. package/dist/cjs/components/Form/TextEditor/TextEditor.js +1 -1
  8. package/dist/cjs/components/Form/TextEditor/TextEditor.js.map +1 -1
  9. package/dist/cjs/components/Form/TextEditor/ToolbarGroups.js +1 -1
  10. package/dist/cjs/components/Form/TextEditor/ToolbarGroups.js.map +1 -1
  11. package/dist/cjs/components/Form/TextEditor/extensions.js +1 -1
  12. package/dist/cjs/components/Form/TextEditor/extensions.js.map +1 -1
  13. package/dist/cjs/components/Form/TextEditor/toolbar.js +1 -1
  14. package/dist/cjs/components/Form/TextEditor/toolbar.js.map +1 -1
  15. package/dist/esm/components/Cards/Card.mjs +1 -1
  16. package/dist/esm/components/Cards/Card.mjs.map +1 -1
  17. package/dist/esm/components/Form/TextEditor/ImagePopover.mjs +1 -1
  18. package/dist/esm/components/Form/TextEditor/ImagePopover.mjs.map +1 -1
  19. package/dist/esm/components/Form/TextEditor/LinkPopover.mjs +1 -1
  20. package/dist/esm/components/Form/TextEditor/LinkPopover.mjs.map +1 -1
  21. package/dist/esm/components/Form/TextEditor/TextEditor.mjs +1 -1
  22. package/dist/esm/components/Form/TextEditor/TextEditor.mjs.map +1 -1
  23. package/dist/esm/components/Form/TextEditor/ToolbarGroups.mjs +1 -1
  24. package/dist/esm/components/Form/TextEditor/ToolbarGroups.mjs.map +1 -1
  25. package/dist/esm/components/Form/TextEditor/extensions.mjs +1 -1
  26. package/dist/esm/components/Form/TextEditor/extensions.mjs.map +1 -1
  27. package/dist/esm/components/Form/TextEditor/toolbar.mjs +1 -1
  28. package/dist/esm/components/Form/TextEditor/toolbar.mjs.map +1 -1
  29. package/dist/index.d.ts +6 -2
  30. package/dist/styles.css +1 -1
  31. package/dist/text-editor.d.ts +6 -1
  32. package/package.json +11 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarGroups.mjs","sources":["../../../../../src/components/Form/TextEditor/ToolbarGroups.tsx"],"sourcesContent":["import React from \"react\";\nimport type { Editor } from \"@tiptap/react\";\nimport {\n Bold as BoldIcon,\n Italic as ItalicIcon,\n Underline as UnderlineIcon,\n List,\n ListOrdered,\n Code as CodeIcon,\n FileCode,\n Strikethrough,\n Quote,\n Minus,\n Undo2,\n Redo2,\n Table2,\n Rows3,\n Columns3,\n TableProperties,\n Split,\n Trash2,\n ListTodo,\n AlignLeft,\n AlignCenter,\n AlignRight,\n AlignJustify,\n} from \"lucide-react\";\n\nimport { ToolbarButton } from \"./toolbar\";\n\nexport const HistoryTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().undo().run()} disabled={!editor.can().undo()} title=\"Undo\"><Undo2 size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().redo().run()} disabled={!editor.can().redo()} title=\"Redo\"><Redo2 size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().unsetAllMarks().run()} title=\"Clear formatting\"><Minus size={16} /></ToolbarButton>\n </>\n);\n\nexport const FormattingTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} active={editor.isActive(\"bold\")} ariaPressed={editor.isActive(\"bold\")} title=\"Bold\"><BoldIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleItalic().run()} active={editor.isActive(\"italic\")} ariaPressed={editor.isActive(\"italic\")} title=\"Italic\"><ItalicIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleUnderline().run()} active={editor.isActive(\"underline\")} ariaPressed={editor.isActive(\"underline\")} title=\"Underline\"><UnderlineIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleStrike().run()} active={editor.isActive(\"strike\")} ariaPressed={editor.isActive(\"strike\")} title=\"Strikethrough\"><Strikethrough size={16} /></ToolbarButton>\n </>\n);\n\nexport const ListTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleBulletList().run()} active={editor.isActive(\"bulletList\")} ariaPressed={editor.isActive(\"bulletList\")} title=\"Bullet list\"><List size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleOrderedList().run()} active={editor.isActive(\"orderedList\")} ariaPressed={editor.isActive(\"orderedList\")} title=\"Numbered list\"><ListOrdered size={16} /></ToolbarButton>\n </>\n);\n\nexport const CodeTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCode().run()} active={editor.isActive(\"code\")} ariaPressed={editor.isActive(\"code\")} title=\"Inline code\"><CodeIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCodeBlock().run()} active={editor.isActive(\"codeBlock\")} ariaPressed={editor.isActive(\"codeBlock\")} title=\"Code block\"><FileCode size={16} /></ToolbarButton>\n </>\n);\n\nexport const QuoteTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <ToolbarButton onClick={() => editor.chain().focus().toggleBlockquote().run()} active={editor.isActive(\"blockquote\")} ariaPressed={editor.isActive(\"blockquote\")} title=\"Quote\"><Quote size={16} /></ToolbarButton>\n);\n\nexport const TableTools: React.FC<{ editor: Editor }> = ({ editor }) => {\n const [open, setOpen] = React.useState(false);\n const ref = React.useRef<HTMLDivElement | null>(null);\n const inTable = editor.isActive(\"table\");\n\n React.useEffect(() => {\n if (!open) return;\n const onDown = (event: MouseEvent) => {\n if (!ref.current?.contains(event.target as Node)) setOpen(false);\n };\n const onEsc = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"mousedown\", onDown);\n window.addEventListener(\"keydown\", onEsc);\n return () => {\n window.removeEventListener(\"mousedown\", onDown);\n window.removeEventListener(\"keydown\", onEsc);\n };\n }, [open]);\n\n const run = (action: () => void) => {\n action();\n setOpen(false);\n };\n\n return (\n <div className=\"relative\" ref={ref}>\n <ToolbarButton onClick={() => setOpen((prev) => !prev)} title=\"Table actions\" active={inTable} ariaPressed={open}>\n <Table2 size={16} />\n </ToolbarButton>\n {open && (\n <div className=\"absolute left-1/2 z-10 mt-2 w-56 -translate-x-1/2 rounded-lg border border-gray-200 bg-white p-1 shadow-lg\">\n <button type=\"button\" className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm hover:bg-gray-100\" onClick={() => run(() => editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run())}><Table2 size={14} /> Insert table</button>\n <button type=\"button\" disabled={!inTable} className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\" onClick={() => run(() => editor.chain().focus().addRowAfter().run())}><Rows3 size={14} /> Add row</button>\n <button type=\"button\" disabled={!inTable} className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\" onClick={() => run(() => editor.chain().focus().deleteRow().run())}><Trash2 size={14} /> Delete row</button>\n <button type=\"button\" disabled={!inTable} className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\" onClick={() => run(() => editor.chain().focus().addColumnAfter().run())}><Columns3 size={14} /> Add column</button>\n <button type=\"button\" disabled={!inTable} className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\" onClick={() => run(() => editor.chain().focus().deleteColumn().run())}><TableProperties size={14} /> Delete column</button>\n <button type=\"button\" disabled={!inTable} className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50\" onClick={() => run(() => editor.chain().focus().mergeOrSplit().run())}><Split size={14} /> Merge/Split cells</button>\n <button type=\"button\" disabled={!inTable} className=\"flex w-full items-center gap-2 rounded px-2 py-1 text-left text-sm text-red-700 hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-50\" onClick={() => run(() => editor.chain().focus().deleteTable().run())}><Trash2 size={14} /> Delete table</button>\n </div>\n )}\n </div>\n );\n};\n\nexport const InsertTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleTaskList().run()} active={editor.isActive(\"taskList\")} ariaPressed={editor.isActive(\"taskList\")} title=\"Task list\"><ListTodo size={16} /></ToolbarButton>\n </>\n);\n\nexport const AlignmentTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign(\"left\").run()} active={editor.isActive({ textAlign: \"left\" })} ariaPressed={editor.isActive({ textAlign: \"left\" })} title=\"Align left\"><AlignLeft size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign(\"center\").run()} active={editor.isActive({ textAlign: \"center\" })} ariaPressed={editor.isActive({ textAlign: \"center\" })} title=\"Align center\"><AlignCenter size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign(\"right\").run()} active={editor.isActive({ textAlign: \"right\" })} ariaPressed={editor.isActive({ textAlign: \"right\" })} title=\"Align right\"><AlignRight size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign(\"justify\").run()} active={editor.isActive({ textAlign: \"justify\" })} ariaPressed={editor.isActive({ textAlign: \"justify\" })} title=\"Justify\"><AlignJustify size={16} /></ToolbarButton>\n </>\n);\n"],"names":["HistoryTools","_a","editor","_jsxs","_Fragment","children","_jsx","ToolbarButton","onClick","chain","focus","undo","run","disabled","can","title","Undo2","size","redo","Redo2","unsetAllMarks","Minus","FormattingTools","toggleBold","active","isActive","ariaPressed","BoldIcon","toggleItalic","ItalicIcon","toggleUnderline","UnderlineIcon","toggleStrike","Strikethrough","ListTools","toggleBulletList","List","toggleOrderedList","ListOrdered","CodeTools","toggleCode","CodeIcon","toggleCodeBlock","FileCode","QuoteTools","toggleBlockquote","Quote","TableTools","_b","React","useState","open","setOpen","ref","useRef","inTable","useEffect","onDown","event","current","contains","target","onEsc","key","window","addEventListener","removeEventListener","action","className","prev","Table2","type","insertTable","rows","cols","withHeaderRow","addRowAfter","Rows3","deleteRow","Trash2","addColumnAfter","Columns3","deleteColumn","TableProperties","mergeOrSplit","Split","deleteTable","InsertTools","toggleTaskList","ListTodo","AlignmentTools","setTextAlign","textAlign","AlignLeft","AlignCenter","AlignRight","AlignJustify"],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarGroups.mjs","sources":["../../../../../src/components/Form/TextEditor/ToolbarGroups.tsx"],"sourcesContent":["import React from \"react\";\nimport type { Editor } from \"@tiptap/react\";\nimport {\n Bold as BoldIcon,\n Italic as ItalicIcon,\n Underline as UnderlineIcon,\n List,\n ListOrdered,\n Code as CodeIcon,\n FileCode,\n Strikethrough,\n Quote,\n Minus,\n Undo2,\n Redo2,\n Table2,\n Rows3,\n Columns3,\n TableProperties,\n Split,\n Trash2,\n ListTodo,\n AlignLeft,\n AlignCenter,\n AlignRight,\n AlignJustify,\n ChevronDown,\n} from \"lucide-react\";\n\nimport { ToolbarButton } from \"./toolbar\";\n\nconst menuSurfaceClassName =\n \"absolute left-1/2 z-20 mt-2 -translate-x-1/2 rounded-xl border border-gray-200 bg-white p-2 text-gray-700 shadow-xl shadow-gray-900/10 ring-1 ring-black/5 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-200 dark:shadow-black/30 dark:ring-white/10\";\n\nconst menuItemClassName =\n \"flex w-full items-center gap-2 rounded-lg px-2.5 py-2 text-left text-sm transition-colors hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-gray-800\";\n\nconst tableGridSize = 6;\n\nconst useDismissiblePopover = (\n open: boolean,\n ref: React.RefObject<HTMLElement>,\n onClose: () => void,\n) => {\n React.useEffect(() => {\n if (!open) return;\n\n const onDown = (event: MouseEvent) => {\n if (!ref.current?.contains(event.target as Node)) onClose();\n };\n const onEsc = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") onClose();\n };\n\n window.addEventListener(\"mousedown\", onDown);\n window.addEventListener(\"keydown\", onEsc);\n return () => {\n window.removeEventListener(\"mousedown\", onDown);\n window.removeEventListener(\"keydown\", onEsc);\n };\n }, [onClose, open, ref]);\n};\n\nexport const HistoryTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().undo().run()} disabled={!editor.can().undo()} title=\"Undo\"><Undo2 size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().redo().run()} disabled={!editor.can().redo()} title=\"Redo\"><Redo2 size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().unsetAllMarks().run()} title=\"Clear formatting\"><Minus size={16} /></ToolbarButton>\n </>\n);\n\nexport const FormattingTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} active={editor.isActive(\"bold\")} ariaPressed={editor.isActive(\"bold\")} title=\"Bold\"><BoldIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleItalic().run()} active={editor.isActive(\"italic\")} ariaPressed={editor.isActive(\"italic\")} title=\"Italic\"><ItalicIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleUnderline().run()} active={editor.isActive(\"underline\")} ariaPressed={editor.isActive(\"underline\")} title=\"Underline\"><UnderlineIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleStrike().run()} active={editor.isActive(\"strike\")} ariaPressed={editor.isActive(\"strike\")} title=\"Strikethrough\"><Strikethrough size={16} /></ToolbarButton>\n </>\n);\n\nexport const ListTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleBulletList().run()} active={editor.isActive(\"bulletList\")} ariaPressed={editor.isActive(\"bulletList\")} title=\"Bullet list\"><List size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleOrderedList().run()} active={editor.isActive(\"orderedList\")} ariaPressed={editor.isActive(\"orderedList\")} title=\"Numbered list\"><ListOrdered size={16} /></ToolbarButton>\n </>\n);\n\nexport const CodeTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCode().run()} active={editor.isActive(\"code\")} ariaPressed={editor.isActive(\"code\")} title=\"Inline code\"><CodeIcon size={16} /></ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCodeBlock().run()} active={editor.isActive(\"codeBlock\")} ariaPressed={editor.isActive(\"codeBlock\")} title=\"Code block\"><FileCode size={16} /></ToolbarButton>\n </>\n);\n\nexport const QuoteTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <ToolbarButton onClick={() => editor.chain().focus().toggleBlockquote().run()} active={editor.isActive(\"blockquote\")} ariaPressed={editor.isActive(\"blockquote\")} title=\"Quote\"><Quote size={16} /></ToolbarButton>\n);\n\nexport const TableTools: React.FC<{ editor: Editor }> = ({ editor }) => {\n const [open, setOpen] = React.useState(false);\n const [hoveredSize, setHoveredSize] = React.useState({ rows: 3, cols: 3 });\n const ref = React.useRef<HTMLDivElement | null>(null);\n const inTable = editor.isActive(\"table\");\n const close = React.useCallback(() => setOpen(false), []);\n\n useDismissiblePopover(open, ref, close);\n\n const run = (action: () => void) => {\n action();\n setOpen(false);\n };\n\n return (\n <div className=\"relative\" ref={ref}>\n <ToolbarButton onClick={() => setOpen((prev) => !prev)} title=\"Table actions\" active={inTable} ariaPressed={open}>\n <Table2 size={16} />\n </ToolbarButton>\n {open && (\n <div className={`${menuSurfaceClassName} w-64`}>\n <div className=\"mb-2 flex items-center justify-between px-1\">\n <span className=\"text-xs font-medium text-gray-500 dark:text-gray-400\">Insert table</span>\n <span className=\"rounded-full bg-primary-50 px-2 py-0.5 text-xs font-medium text-primary-700 dark:bg-primary-900/40 dark:text-primary-300\">\n {hoveredSize.rows} x {hoveredSize.cols}\n </span>\n </div>\n <div className=\"grid grid-cols-6 gap-1 px-1 pb-2\">\n {Array.from({ length: tableGridSize }).map((_, rowIndex) =>\n Array.from({ length: tableGridSize }).map((__, colIndex) => {\n const rows = rowIndex + 1;\n const cols = colIndex + 1;\n const selected = rows <= hoveredSize.rows && cols <= hoveredSize.cols;\n\n return (\n <button\n key={`${rows}-${cols}`}\n type=\"button\"\n className={`h-7 rounded-md border transition-colors ${\n selected\n ? \"border-primary-500 bg-primary-500/20 dark:bg-primary-500/25\"\n : \"border-gray-200 bg-gray-50 hover:border-primary-400 dark:border-gray-700 dark:bg-gray-950\"\n }`}\n title={`Insert ${rows} x ${cols} table`}\n aria-label={`Insert ${rows} x ${cols} table`}\n onMouseEnter={() => setHoveredSize({ rows, cols })}\n onFocus={() => setHoveredSize({ rows, cols })}\n onClick={() => run(() => editor.chain().focus().insertTable({ rows, cols, withHeaderRow: true }).run())}\n />\n );\n }),\n )}\n </div>\n\n <div className=\"border-t border-gray-100 pt-2 dark:border-gray-800\">\n <button type=\"button\" disabled={!inTable} className={menuItemClassName} onClick={() => run(() => editor.chain().focus().addRowAfter().run())}><Rows3 size={14} /> Add row</button>\n <button type=\"button\" disabled={!inTable} className={menuItemClassName} onClick={() => run(() => editor.chain().focus().deleteRow().run())}><Trash2 size={14} /> Delete row</button>\n <button type=\"button\" disabled={!inTable} className={menuItemClassName} onClick={() => run(() => editor.chain().focus().addColumnAfter().run())}><Columns3 size={14} /> Add column</button>\n <button type=\"button\" disabled={!inTable} className={menuItemClassName} onClick={() => run(() => editor.chain().focus().deleteColumn().run())}><TableProperties size={14} /> Delete column</button>\n <button type=\"button\" disabled={!inTable} className={menuItemClassName} onClick={() => run(() => editor.chain().focus().mergeOrSplit().run())}><Split size={14} /> Merge/Split cells</button>\n <button type=\"button\" disabled={!inTable} className={`${menuItemClassName} text-red-700 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-950/40`} onClick={() => run(() => editor.chain().focus().deleteTable().run())}><Trash2 size={14} /> Delete table</button>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport const InsertTools: React.FC<{ editor: Editor }> = ({ editor }) => (\n <>\n <ToolbarButton onClick={() => editor.chain().focus().toggleTaskList().run()} active={editor.isActive(\"taskList\")} ariaPressed={editor.isActive(\"taskList\")} title=\"Task list\"><ListTodo size={16} /></ToolbarButton>\n </>\n);\n\nconst alignments = [\n { value: \"left\", label: \"Align left\", icon: AlignLeft },\n { value: \"center\", label: \"Align center\", icon: AlignCenter },\n { value: \"right\", label: \"Align right\", icon: AlignRight },\n { value: \"justify\", label: \"Justify\", icon: AlignJustify },\n] as const;\n\nexport const AlignmentTools: React.FC<{ editor: Editor }> = ({ editor }) => {\n const [open, setOpen] = React.useState(false);\n const ref = React.useRef<HTMLDivElement | null>(null);\n const activeAlignment = alignments.find((alignment) => editor.isActive({ textAlign: alignment.value })) ?? alignments[0];\n const ActiveIcon = activeAlignment.icon;\n const close = React.useCallback(() => setOpen(false), []);\n\n useDismissiblePopover(open, ref, close);\n\n return (\n <div className=\"relative\" ref={ref}>\n <ToolbarButton onClick={() => setOpen((prev) => !prev)} active={open} ariaPressed={open} title={activeAlignment.label} className=\"gap-1\">\n <ActiveIcon size={16} />\n <ChevronDown size={12} />\n </ToolbarButton>\n {open && (\n <div className={`${menuSurfaceClassName} w-44`}>\n {alignments.map((alignment) => {\n const Icon = alignment.icon;\n const active = editor.isActive({ textAlign: alignment.value });\n\n return (\n <button\n key={alignment.value}\n type=\"button\"\n className={`${menuItemClassName} ${active ? \"bg-primary-50 text-primary-700 dark:bg-primary-900/40 dark:text-primary-300\" : \"\"}`}\n onClick={() => {\n editor.chain().focus().setTextAlign(alignment.value).run();\n setOpen(false);\n }}\n >\n <Icon size={14} /> {alignment.label}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"],"names":["menuSurfaceClassName","menuItemClassName","useDismissiblePopover","open","ref","onClose","React","useEffect","onDown","event","_a","current","contains","target","onEsc","key","window","addEventListener","removeEventListener","HistoryTools","editor","_jsxs","_Fragment","children","_jsx","ToolbarButton","onClick","chain","focus","undo","run","disabled","can","title","Undo2","size","redo","Redo2","unsetAllMarks","Minus","FormattingTools","toggleBold","active","isActive","ariaPressed","BoldIcon","toggleItalic","ItalicIcon","toggleUnderline","UnderlineIcon","toggleStrike","Strikethrough","ListTools","toggleBulletList","List","toggleOrderedList","ListOrdered","CodeTools","toggleCode","CodeIcon","toggleCodeBlock","FileCode","QuoteTools","toggleBlockquote","Quote","TableTools","_b","useState","setOpen","_c","rows","cols","hoveredSize","setHoveredSize","useRef","inTable","close","useCallback","action","className","prev","Table2","concat","Array","from","length","map","_","rowIndex","__","colIndex","selected","type","onMouseEnter","onFocus","insertTable","withHeaderRow","addRowAfter","Rows3","deleteRow","Trash2","addColumnAfter","Columns3","deleteColumn","TableProperties","mergeOrSplit","Split","deleteTable","InsertTools","toggleTaskList","ListTodo","alignments","value","label","icon","AlignLeft","AlignCenter","AlignRight","AlignJustify","AlignmentTools","activeAlignment","find","alignment","textAlign","ActiveIcon","ChevronDown","Icon","setTextAlign"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__assign as e,__spreadArray as t}from"../../../node_modules/tslib/tslib.es6.mjs";import i from"../../../node_modules/@tiptap/extension-bold/dist/index.mjs";import o from"../../../node_modules/@tiptap/extension-bullet-list/dist/index.mjs";import n from"../../../node_modules/@tiptap/extension-code/dist/index.mjs";import s from"../../../node_modules/@tiptap/extension-code-block/dist/index.mjs";import m from"../../../node_modules/@tiptap/extension-heading/dist/index.mjs";import d from"@tiptap/extension-image";import r from"../../../node_modules/@tiptap/extension-italic/dist/index.mjs";import l from"@tiptap/extension-link";import a from"../../../node_modules/@tiptap/extension-list-item/dist/index.mjs";import p from"../../../node_modules/@tiptap/extension-ordered-list/dist/index.mjs";import x from"../../../node_modules/@tiptap/extension-strike/dist/index.mjs";import{Table as u}from"../../../node_modules/@tiptap/extension-table/dist/index.mjs";import f from"../../../node_modules/@tiptap/extension-table-cell/dist/index.mjs";import g from"../../../node_modules/@tiptap/extension-table-header/dist/index.mjs";import c from"../../../node_modules/@tiptap/extension-table-row/dist/index.mjs";import b from"../../../node_modules/@tiptap/extension-task-item/dist/index.mjs";import h from"../../../node_modules/@tiptap/extension-task-list/dist/index.mjs";import j from"../../../node_modules/@tiptap/extension-text-align/dist/index.mjs";import _ from"@tiptap/extension-underline";import k from"@tiptap/starter-kit";var L={heading:!0,formatting:!0,lists:!0,code:!0,quote:!0,link:!0,history:!0,placeholder:!0,slashCommand:!1,table:!1,image:!1,taskList:!1,alignment:!0},y={minimal:{heading:!1,formatting:!0,lists:!0,code:!1,quote:!1,link:!0,history:!0,placeholder:!0,slashCommand:!1,table:!1,image:!1,taskList:!1,alignment:!1},standard:e({},L),full:e(e({},L),{slashCommand:!0,table:!0,image:!0,taskList:!0,alignment:!0})},C=function(t){return e(e({},L),t)},v=function(e){var L=C(e);return t(t(t(t(t(t(t(t(t([k.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,codeBlock:!1})],L.formatting?[i,r,_,x]:[],!0),L.code?[n,s.configure({HTMLAttributes:{class:"bg-gray-100 p-3 rounded text-sm font-mono"}})]:[],!0),L.heading?[m.configure({levels:[1,2,3]})]:[],!0),L.alignment?[j.configure({types:["heading","paragraph"]})]:[],!0),L.lists?[o,p,a]:[],!0),L.link?[l.configure({openOnClick:!1,HTMLAttributes:{class:"text-blue-600 underline"}})]:[],!0),L.taskList?[h,b.configure({nested:!0})]:[],!0),L.image?[d.configure({inline:!1,allowBase64:!0})]:[],!0),L.table?[u.configure({resizable:!0}),c,g,f]:[],!0)},w="prose prose-sm max-w-none prose-h1:text-3xl prose-h1:font-bold prose-h2:text-2xl prose-h2:font-semibold prose-h3:text-xl prose-h3:font-semibold mx-auto focus:outline-none min-h-[200px] p-4";export{v as createTextEditorExtensions,L as defaultTextEditorFeatures,w as editorContentClassName,y as toolbarPresetFeatures,C as withDefaultFeatures};
1
+ import{__assign as e,__spreadArray as t}from"../../../node_modules/tslib/tslib.es6.mjs";import o from"../../../node_modules/@tiptap/extension-bold/dist/index.mjs";import i from"../../../node_modules/@tiptap/extension-bullet-list/dist/index.mjs";import n from"../../../node_modules/@tiptap/extension-code/dist/index.mjs";import s from"../../../node_modules/@tiptap/extension-code-block/dist/index.mjs";import r from"../../../node_modules/@tiptap/extension-heading/dist/index.mjs";import d from"@tiptap/extension-image";import m from"../../../node_modules/@tiptap/extension-italic/dist/index.mjs";import l from"@tiptap/extension-link";import a from"../../../node_modules/@tiptap/extension-list-item/dist/index.mjs";import p from"../../../node_modules/@tiptap/extension-ordered-list/dist/index.mjs";import x from"@tiptap/extension-placeholder";import u from"../../../node_modules/@tiptap/extension-strike/dist/index.mjs";import{Table as f}from"../../../node_modules/@tiptap/extension-table/dist/index.mjs";import c from"../../../node_modules/@tiptap/extension-table-cell/dist/index.mjs";import g from"../../../node_modules/@tiptap/extension-table-header/dist/index.mjs";import b from"../../../node_modules/@tiptap/extension-table-row/dist/index.mjs";import h from"../../../node_modules/@tiptap/extension-task-item/dist/index.mjs";import k from"../../../node_modules/@tiptap/extension-task-list/dist/index.mjs";import j from"../../../node_modules/@tiptap/extension-text-align/dist/index.mjs";import _ from"@tiptap/extension-underline";import{Markdown as v}from"@tiptap/markdown";import y from"@tiptap/starter-kit";var L={heading:!0,formatting:!0,lists:!0,code:!0,quote:!0,link:!0,history:!0,placeholder:!0,slashCommand:!1,table:!1,image:!1,taskList:!1,alignment:!0},w={minimal:{heading:!1,formatting:!0,lists:!0,code:!1,quote:!1,link:!0,history:!0,placeholder:!0,slashCommand:!1,table:!1,image:!1,taskList:!1,alignment:!1},standard:e({},L),full:e(e({},L),{slashCommand:!0,table:!0,image:!0,taskList:!0,alignment:!0})},C=function(t){return e(e({},L),t)},q=function(e,L){var w,q,A=C(e),B=null!==(w=null==L?void 0:L.contentFormat)&&void 0!==w?w:"html";return t(t(t(t(t(t(t(t(t(t(t([y.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,codeBlock:!1})],A.formatting?[o,m,_,u]:[],!0),A.code?[n,s.configure({HTMLAttributes:{class:"rounded bg-gray-100 p-3 font-mono text-sm dark:bg-gray-800"}})]:[],!0),A.heading?[r.configure({levels:[1,2,3]})]:[],!0),A.alignment?[j.configure({types:["heading","paragraph"]})]:[],!0),A.lists?[i,p,a]:[],!0),A.link?[l.configure({openOnClick:!1,HTMLAttributes:{class:"text-blue-600 underline dark:text-blue-400"}})]:[],!0),A.taskList?[k,h.configure({nested:!0})]:[],!0),A.image?[d.configure({inline:!1,allowBase64:!0})]:[],!0),A.table?[f.configure({resizable:!0}),b,g,c]:[],!0),A.placeholder?[x.configure({placeholder:null!==(q=null==L?void 0:L.placeholder)&&void 0!==q?q:"Start writing..."})]:[],!0),"markdown"===B?[v]:[],!0)},A="prose prose-sm max-w-none prose-h1:text-3xl prose-h1:font-bold prose-h2:text-2xl prose-h2:font-semibold prose-h3:text-xl prose-h3:font-semibold prose-a:text-blue-600 prose-code:rounded prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:before:content-none prose-code:after:content-none mx-auto min-h-[200px] p-4 focus:outline-none dark:prose-invert dark:prose-a:text-blue-400 dark:prose-code:bg-gray-800";export{q as createTextEditorExtensions,L as defaultTextEditorFeatures,A as editorContentClassName,w as toolbarPresetFeatures,C as withDefaultFeatures};
2
2
  //# sourceMappingURL=extensions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.mjs","sources":["../../../../../src/components/Form/TextEditor/extensions.ts"],"sourcesContent":["import Bold from \"@tiptap/extension-bold\";\nimport BulletList from \"@tiptap/extension-bullet-list\";\nimport Code from \"@tiptap/extension-code\";\nimport CodeBlock from \"@tiptap/extension-code-block\";\nimport Heading from \"@tiptap/extension-heading\";\nimport Image from \"@tiptap/extension-image\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport ListItem from \"@tiptap/extension-list-item\";\nimport OrderedList from \"@tiptap/extension-ordered-list\";\nimport Strike from \"@tiptap/extension-strike\";\nimport { Table } from \"@tiptap/extension-table\";\nimport TableCell from \"@tiptap/extension-table-cell\";\nimport TableHeader from \"@tiptap/extension-table-header\";\nimport TableRow from \"@tiptap/extension-table-row\";\nimport TaskItem from \"@tiptap/extension-task-item\";\nimport TaskList from \"@tiptap/extension-task-list\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Underline from \"@tiptap/extension-underline\";\nimport StarterKit from \"@tiptap/starter-kit\";\n\nexport interface TextEditorFeatures {\n heading?: boolean;\n formatting?: boolean;\n lists?: boolean;\n code?: boolean;\n quote?: boolean;\n link?: boolean;\n history?: boolean;\n placeholder?: boolean;\n slashCommand?: boolean;\n table?: boolean;\n image?: boolean;\n taskList?: boolean;\n alignment?: boolean;\n}\n\nexport type ToolbarPreset = \"minimal\" | \"standard\" | \"full\";\n\nexport const defaultTextEditorFeatures: Required<TextEditorFeatures> = {\n heading: true,\n formatting: true,\n lists: true,\n code: true,\n quote: true,\n link: true,\n history: true,\n placeholder: true,\n slashCommand: false,\n table: false,\n image: false,\n taskList: false,\n alignment: true,\n};\n\nexport const toolbarPresetFeatures: Record<ToolbarPreset, Required<TextEditorFeatures>> = {\n minimal: {\n heading: false,\n formatting: true,\n lists: true,\n code: false,\n quote: false,\n link: true,\n history: true,\n placeholder: true,\n slashCommand: false,\n table: false,\n image: false,\n taskList: false,\n alignment: false,\n },\n standard: {\n ...defaultTextEditorFeatures,\n },\n full: {\n ...defaultTextEditorFeatures,\n slashCommand: true,\n table: true,\n image: true,\n taskList: true,\n alignment: true,\n },\n};\n\nexport const withDefaultFeatures = (features?: TextEditorFeatures): Required<TextEditorFeatures> => ({\n ...defaultTextEditorFeatures,\n ...features,\n});\n\nexport const createTextEditorExtensions = (features?: TextEditorFeatures) => {\n const f = withDefaultFeatures(features);\n\n return [\n StarterKit.configure({\n heading: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n codeBlock: false,\n }),\n ...(f.formatting ? [Bold, Italic, Underline, Strike] : []),\n ...(f.code\n ? [\n Code,\n CodeBlock.configure({\n HTMLAttributes: {\n class: \"bg-gray-100 p-3 rounded text-sm font-mono\",\n },\n }),\n ]\n : []),\n ...(f.heading ? [Heading.configure({ levels: [1, 2, 3] })] : []),\n ...(f.alignment ? [TextAlign.configure({ types: [\"heading\", \"paragraph\"] })] : []),\n ...(f.lists ? [BulletList, OrderedList, ListItem] : []),\n ...(f.link\n ? [\n Link.configure({\n openOnClick: false,\n HTMLAttributes: {\n class: \"text-blue-600 underline\",\n },\n }),\n ]\n : []),\n ...(f.taskList ? [TaskList, TaskItem.configure({ nested: true })] : []),\n ...(f.image ? [Image.configure({ inline: false, allowBase64: true })] : []),\n ...(f.table\n ? [\n Table.configure({ resizable: true }),\n TableRow,\n TableHeader,\n TableCell,\n ]\n : []),\n ];\n};\n\nexport const editorContentClassName =\n \"prose prose-sm max-w-none prose-h1:text-3xl prose-h1:font-bold prose-h2:text-2xl prose-h2:font-semibold prose-h3:text-xl prose-h3:font-semibold mx-auto focus:outline-none min-h-[200px] p-4\";\n"],"names":["defaultTextEditorFeatures","heading","formatting","lists","code","quote","link","history","placeholder","slashCommand","table","image","taskList","alignment","toolbarPresetFeatures","minimal","standard","__assign","full","withDefaultFeatures","features","createTextEditorExtensions","f","__spreadArray","StarterKit","configure","bulletList","orderedList","listItem","codeBlock","Bold","Italic","Underline","Strike","Code","CodeBlock","HTMLAttributes","class","Heading","levels","TextAlign","types","BulletList","OrderedList","ListItem","Link","openOnClick","TaskList","TaskItem","nested","Image","inline","allowBase64","Table","resizable","TableRow","TableHeader","TableCell","editorContentClassName"],"mappings":"i/CAuCO,IAAMA,EAA0D,CACnEC,SAAS,EACTC,YAAY,EACZC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,WAAW,GAGFC,EAA6E,CACtFC,QAAS,CACLd,SAAS,EACTC,YAAY,EACZC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,WAAW,GAEfG,SAAQC,EAAA,CAAA,EACDjB,GAEPkB,KAAID,EAAAA,EAAA,CAAA,EACGjB,GAAyB,CAC5BS,cAAc,EACdC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,WAAW,KAINM,EAAsB,SAACC,GAAgE,OAAAH,EAAAA,EAAA,CAAA,EAC7FjB,GACAoB,EAF6F,EAKvFC,EAA6B,SAACD,GACvC,IAAME,EAAIH,EAAoBC,GAE9B,OAAAG,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACIC,EAAWC,UAAU,CACjBxB,SAAS,EACTyB,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,WAAW,KAEXP,EAAEpB,WAAa,CAAC4B,EAAMC,EAAQC,EAAWC,GAAU,IAAG,GACtDX,EAAElB,KACA,CACI8B,EACAC,EAAUV,UAAU,CAChBW,eAAgB,CACZC,MAAO,gDAInB,OACFf,EAAErB,QAAU,CAACqC,EAAQb,UAAU,CAAEc,OAAQ,CAAC,EAAG,EAAG,MAAS,OACzDjB,EAAET,UAAY,CAAC2B,EAAUf,UAAU,CAAEgB,MAAO,CAAC,UAAW,gBAAmB,OAC3EnB,EAAEnB,MAAQ,CAACuC,EAAYC,EAAaC,GAAY,OAChDtB,EAAEhB,KACA,CACIuC,EAAKpB,UAAU,CACXqB,aAAa,EACbV,eAAgB,CACZC,MAAO,8BAInB,IAAG,GACLf,EAAEV,SAAW,CAACmC,EAAUC,EAASvB,UAAU,CAAEwB,QAAQ,KAAW,IAAG,GACnE3B,EAAEX,MAAQ,CAACuC,EAAMzB,UAAU,CAAE0B,QAAQ,EAAOC,aAAa,KAAW,IAAG,GACvE9B,EAAEZ,MACA,CACI2C,EAAM5B,UAAU,CAAE6B,WAAW,IAC7BC,EACAC,EACAC,GAEJ,IAAG,EAEjB,EAEaC,EACT"}
1
+ {"version":3,"file":"extensions.mjs","sources":["../../../../../src/components/Form/TextEditor/extensions.ts"],"sourcesContent":["import Bold from \"@tiptap/extension-bold\";\nimport BulletList from \"@tiptap/extension-bullet-list\";\nimport Code from \"@tiptap/extension-code\";\nimport CodeBlock from \"@tiptap/extension-code-block\";\nimport Heading from \"@tiptap/extension-heading\";\nimport Image from \"@tiptap/extension-image\";\nimport Italic from \"@tiptap/extension-italic\";\nimport Link from \"@tiptap/extension-link\";\nimport ListItem from \"@tiptap/extension-list-item\";\nimport OrderedList from \"@tiptap/extension-ordered-list\";\nimport Placeholder from \"@tiptap/extension-placeholder\";\nimport Strike from \"@tiptap/extension-strike\";\nimport { Table } from \"@tiptap/extension-table\";\nimport TableCell from \"@tiptap/extension-table-cell\";\nimport TableHeader from \"@tiptap/extension-table-header\";\nimport TableRow from \"@tiptap/extension-table-row\";\nimport TaskItem from \"@tiptap/extension-task-item\";\nimport TaskList from \"@tiptap/extension-task-list\";\nimport TextAlign from \"@tiptap/extension-text-align\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { Markdown } from \"@tiptap/markdown\";\nimport StarterKit from \"@tiptap/starter-kit\";\n\nexport interface TextEditorFeatures {\n heading?: boolean;\n formatting?: boolean;\n lists?: boolean;\n code?: boolean;\n quote?: boolean;\n link?: boolean;\n history?: boolean;\n placeholder?: boolean;\n slashCommand?: boolean;\n table?: boolean;\n image?: boolean;\n taskList?: boolean;\n alignment?: boolean;\n}\n\nexport type ToolbarPreset = \"minimal\" | \"standard\" | \"full\";\n\nexport type TextEditorContentFormat = \"html\" | \"markdown\";\n\nexport const defaultTextEditorFeatures: Required<TextEditorFeatures> = {\n heading: true,\n formatting: true,\n lists: true,\n code: true,\n quote: true,\n link: true,\n history: true,\n placeholder: true,\n slashCommand: false,\n table: false,\n image: false,\n taskList: false,\n alignment: true,\n};\n\nexport const toolbarPresetFeatures: Record<ToolbarPreset, Required<TextEditorFeatures>> = {\n minimal: {\n heading: false,\n formatting: true,\n lists: true,\n code: false,\n quote: false,\n link: true,\n history: true,\n placeholder: true,\n slashCommand: false,\n table: false,\n image: false,\n taskList: false,\n alignment: false,\n },\n standard: {\n ...defaultTextEditorFeatures,\n },\n full: {\n ...defaultTextEditorFeatures,\n slashCommand: true,\n table: true,\n image: true,\n taskList: true,\n alignment: true,\n },\n};\n\nexport const withDefaultFeatures = (features?: TextEditorFeatures): Required<TextEditorFeatures> => ({\n ...defaultTextEditorFeatures,\n ...features,\n});\n\nexport const createTextEditorExtensions = (\n features?: TextEditorFeatures,\n options?: { contentFormat?: TextEditorContentFormat; placeholder?: string },\n) => {\n const f = withDefaultFeatures(features);\n const contentFormat = options?.contentFormat ?? \"html\";\n\n return [\n StarterKit.configure({\n heading: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n codeBlock: false,\n }),\n ...(f.formatting ? [Bold, Italic, Underline, Strike] : []),\n ...(f.code\n ? [\n Code,\n CodeBlock.configure({\n HTMLAttributes: {\n class: \"rounded bg-gray-100 p-3 font-mono text-sm dark:bg-gray-800\",\n },\n }),\n ]\n : []),\n ...(f.heading ? [Heading.configure({ levels: [1, 2, 3] })] : []),\n ...(f.alignment ? [TextAlign.configure({ types: [\"heading\", \"paragraph\"] })] : []),\n ...(f.lists ? [BulletList, OrderedList, ListItem] : []),\n ...(f.link\n ? [\n Link.configure({\n openOnClick: false,\n HTMLAttributes: {\n class: \"text-blue-600 underline dark:text-blue-400\",\n },\n }),\n ]\n : []),\n ...(f.taskList ? [TaskList, TaskItem.configure({ nested: true })] : []),\n ...(f.image ? [Image.configure({ inline: false, allowBase64: true })] : []),\n ...(f.table\n ? [\n Table.configure({ resizable: true }),\n TableRow,\n TableHeader,\n TableCell,\n ]\n : []),\n ...(f.placeholder\n ? [\n Placeholder.configure({\n placeholder: options?.placeholder ?? \"Start writing...\",\n }),\n ]\n : []),\n ...(contentFormat === \"markdown\" ? [Markdown] : []),\n ];\n};\n\nexport const editorContentClassName =\n \"prose prose-sm max-w-none prose-h1:text-3xl prose-h1:font-bold prose-h2:text-2xl prose-h2:font-semibold prose-h3:text-xl prose-h3:font-semibold prose-a:text-blue-600 prose-code:rounded prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:before:content-none prose-code:after:content-none mx-auto min-h-[200px] p-4 focus:outline-none dark:prose-invert dark:prose-a:text-blue-400 dark:prose-code:bg-gray-800\";\n"],"names":["defaultTextEditorFeatures","heading","formatting","lists","code","quote","link","history","placeholder","slashCommand","table","image","taskList","alignment","toolbarPresetFeatures","minimal","standard","__assign","full","withDefaultFeatures","features","createTextEditorExtensions","options","f","contentFormat","_a","__spreadArray","StarterKit","configure","bulletList","orderedList","listItem","codeBlock","Bold","Italic","Underline","Strike","Code","CodeBlock","HTMLAttributes","class","Heading","levels","TextAlign","types","BulletList","OrderedList","ListItem","Link","openOnClick","TaskList","TaskItem","nested","Image","inline","allowBase64","Table","resizable","TableRow","TableHeader","TableCell","Placeholder","_b","Markdown","editorContentClassName"],"mappings":"0kDA2CO,IAAMA,EAA0D,CACnEC,SAAS,EACTC,YAAY,EACZC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,WAAW,GAGFC,EAA6E,CACtFC,QAAS,CACLd,SAAS,EACTC,YAAY,EACZC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,cAAc,EACdC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,WAAW,GAEfG,SAAQC,EAAA,CAAA,EACDjB,GAEPkB,KAAID,EAAAA,EAAA,CAAA,EACGjB,GAAyB,CAC5BS,cAAc,EACdC,OAAO,EACPC,OAAO,EACPC,UAAU,EACVC,WAAW,KAINM,EAAsB,SAACC,GAAgE,OAAAH,EAAAA,EAAA,CAAA,EAC7FjB,GACAoB,EAF6F,EAKvFC,EAA6B,SACtCD,EACAE,WAEMC,EAAIJ,EAAoBC,GACxBI,EAAsC,QAAtBC,EAAAH,aAAO,EAAPA,EAASE,qBAAa,IAAAC,EAAAA,EAAI,OAEhD,OAAAC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACIC,EAAWC,UAAU,CACjB3B,SAAS,EACT4B,YAAY,EACZC,aAAa,EACbC,UAAU,EACVC,WAAW,KAEXT,EAAErB,WAAa,CAAC+B,EAAMC,EAAQC,EAAWC,GAAU,IAAG,GACtDb,EAAEnB,KACA,CACIiC,EACAC,EAAUV,UAAU,CAChBW,eAAgB,CACZC,MAAO,iEAInB,OACFjB,EAAEtB,QAAU,CAACwC,EAAQb,UAAU,CAAEc,OAAQ,CAAC,EAAG,EAAG,MAAS,OACzDnB,EAAEV,UAAY,CAAC8B,EAAUf,UAAU,CAAEgB,MAAO,CAAC,UAAW,gBAAmB,OAC3ErB,EAAEpB,MAAQ,CAAC0C,EAAYC,EAAaC,GAAY,OAChDxB,EAAEjB,KACA,CACI0C,EAAKpB,UAAU,CACXqB,aAAa,EACbV,eAAgB,CACZC,MAAO,iDAInB,IAAG,GACLjB,EAAEX,SAAW,CAACsC,EAAUC,EAASvB,UAAU,CAAEwB,QAAQ,KAAW,IAAG,GACnE7B,EAAEZ,MAAQ,CAAC0C,EAAMzB,UAAU,CAAE0B,QAAQ,EAAOC,aAAa,KAAW,IAAG,GACvEhC,EAAEb,MACA,CACI8C,EAAM5B,UAAU,CAAE6B,WAAW,IAC7BC,EACAC,EACAC,GAEJ,OACFrC,EAAEf,YACA,CACIqD,EAAYjC,UAAU,CAClBpB,YAAiC,QAApBsD,EAAAxC,eAAAA,EAASd,mBAAW,IAAAsD,EAAAA,EAAI,sBAG7C,OACgB,aAAlBtC,EAA+B,CAACuC,GAAY,IAAG,EAE3D,EAEaC,EACT"}
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as a}from"react/jsx-runtime";import{SeparatorVertical as r}from"lucide-react";var t=function(a){var r=a.onClick,t=a.active,l=void 0!==t&&t,n=a.disabled,i=void 0!==n&&n,o=a.title,c=a.children,d=a.ariaPressed;return e("button",{onClick:r,className:"p-2 rounded transition-colors ".concat(l?"bg-blue-200 text-blue-800":"hover:bg-gray-200"," ").concat(i?"opacity-50 cursor-not-allowed":""),type:"button",disabled:i,title:o,"aria-label":o,"aria-pressed":d,children:c})},l=function(){return e(r,{className:"mx-2 h-6 w-px bg-gray-300"})},n=function(r){var t=r.value,l=r.onChange;return e("div",{className:"flex items-center gap-2",children:a("select",{className:"rounded border border-gray-300 bg-white px-2 py-1 text-sm","aria-label":"Heading level",value:t,onChange:function(e){return l(Number(e.target.value))},children:[e("option",{value:0,children:"Normal"}),e("option",{value:1,className:"text-2xl",children:"Heading 1"}),e("option",{value:2,className:"text-xl",children:"Heading 2"}),e("option",{value:3,className:"text-lg",children:"Heading 3"})]})})};export{n as HeadingSelect,t as ToolbarButton,l as ToolbarDivider};
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";import{SeparatorVertical as a}from"lucide-react";var t=function(e){var a=e.onClick,t=e.active,n=void 0!==t&&t,i=e.disabled,o=void 0!==i&&i,l=e.title,c=e.children,s=e.ariaPressed,d=e.className,g=void 0===d?"":d;return r("button",{onClick:a,className:"inline-flex h-8 min-w-8 items-center justify-center rounded-md px-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-primary-500/30 focus:ring-offset-1 focus:ring-offset-white dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-100 dark:focus:ring-offset-gray-950 ".concat(n?"bg-primary-50 text-primary-700 dark:bg-primary-900/40 dark:text-primary-300":""," ").concat(o?"cursor-not-allowed opacity-40 hover:bg-transparent":""," ").concat(g).trim(),type:"button",disabled:o,title:l,"aria-label":l,"aria-pressed":s,children:c})},n=function(){return r(a,{className:"mx-1 h-5 w-px bg-gray-200 text-transparent dark:bg-gray-800"})},i=function(a){var t=a.value,n=a.onChange;return r("div",{className:"flex items-center gap-2",children:e("select",{className:"h-8 rounded-md border-0 bg-transparent px-2 text-sm font-medium text-gray-700 outline-none transition-colors hover:bg-gray-100 focus:ring-2 focus:ring-primary-500/30 dark:text-gray-200 dark:hover:bg-gray-800","aria-label":"Heading level",value:t,onChange:function(r){return n(Number(r.target.value))},children:[r("option",{value:0,children:"Normal"}),r("option",{value:1,className:"text-2xl",children:"Heading 1"}),r("option",{value:2,className:"text-xl",children:"Heading 2"}),r("option",{value:3,className:"text-lg",children:"Heading 3"})]})})};export{i as HeadingSelect,t as ToolbarButton,n as ToolbarDivider};
2
2
  //# sourceMappingURL=toolbar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.mjs","sources":["../../../../../src/components/Form/TextEditor/toolbar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Heading1, Heading2, Heading3, SeparatorVertical } from \"lucide-react\";\n\nexport type HeadingLevel = 0 | 1 | 2 | 3;\n\nexport const ToolbarButton: React.FC<{\n onClick: () => void;\n active?: boolean;\n disabled?: boolean;\n title: string;\n children: React.ReactNode;\n ariaPressed?: boolean;\n}> = ({\n onClick,\n active = false,\n disabled = false,\n title,\n children,\n ariaPressed,\n}) => (\n <button\n onClick={onClick}\n className={`p-2 rounded transition-colors ${active ? \"bg-blue-200 text-blue-800\" : \"hover:bg-gray-200\"} ${disabled ? \"opacity-50 cursor-not-allowed\" : \"\"}`}\n type=\"button\"\n disabled={disabled}\n title={title}\n aria-label={title}\n aria-pressed={ariaPressed}\n >\n {children}\n </button>\n);\n\nexport const ToolbarDivider = () => (\n <SeparatorVertical className=\"mx-2 h-6 w-px bg-gray-300\" />\n);\n\nexport const HeadingSelect: React.FC<{\n value: HeadingLevel;\n onChange: (value: HeadingLevel) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex items-center gap-2\">\n <select\n className=\"rounded border border-gray-300 bg-white px-2 py-1 text-sm\"\n aria-label=\"Heading level\"\n value={value}\n onChange={(e) => onChange(Number(e.target.value) as HeadingLevel)}\n >\n <option value={0}>Normal</option>\n <option value={1} className=\"text-2xl\">\n Heading 1\n </option>\n <option value={2} className=\"text-xl\">\n Heading 2\n </option>\n <option value={3} className=\"text-lg\">\n Heading 3\n </option>\n </select>\n {/*<Heading1 size={14} className=\"text-gray-500\" />\n <Heading2 size={14} className=\"text-gray-500\" />\n <Heading3 size={14} className=\"text-gray-500\" />*/}\n </div>\n);\n"],"names":["ToolbarButton","_a","onClick","_b","active","_c","disabled","title","children","ariaPressed","_jsx","className","concat","type","ToolbarDivider","SeparatorVertical","HeadingSelect","value","onChange","_jsxs","e","Number","target"],"mappings":"mGAKO,IAAMA,EAOR,SAACC,OACJC,EAAOD,EAAAC,QACPC,EAAAF,EAAAG,OAAAA,OAAM,IAAAD,GAAQA,EACdE,EAAAJ,EAAAK,SAAAA,OAAQ,IAAAD,GAAQA,EAChBE,EAAKN,EAAAM,MACLC,EAAQP,EAAAO,SACRC,EAAWR,EAAAQ,YACP,OACJC,YACER,QAASA,EACTS,UAAW,iCAAAC,OAAiCR,EAAS,4BAA8B,oBAAmB,KAAAQ,OAAIN,EAAW,gCAAkC,IACvJO,KAAK,SACLP,SAAUA,EACVC,MAAOA,EAAK,aACAA,iBACEE,EAAWD,SAExBA,GAVC,EAcOM,EAAiB,WAAM,OAClCJ,EAACK,EAAiB,CAACJ,UAAU,6BADK,EAIvBK,EAGR,SAACf,OAAEgB,EAAKhB,EAAAgB,MAAEC,EAAQjB,EAAAiB,SAAO,OAC5BR,EAAA,MAAA,CAAKC,UAAU,0BAAyBH,SACtCW,EAAA,SAAA,CACER,UAAU,4DAA2D,aAC1D,gBACXM,MAAOA,EACPC,SAAU,SAACE,GAAM,OAAAF,EAASG,OAAOD,EAAEE,OAAOL,OAAzB,EAAgDT,SAAA,CAEjEE,EAAA,SAAA,CAAQO,MAAO,EAACT,SAAA,WAChBE,YAAQO,MAAO,EAAGN,UAAU,WAAUH,SAAA,cAGtCE,YAAQO,MAAO,EAAGN,UAAU,UAASH,SAAA,cAGrCE,YAAQO,MAAO,EAAGN,UAAU,UAASH,SAAA,kBAfb"}
1
+ {"version":3,"file":"toolbar.mjs","sources":["../../../../../src/components/Form/TextEditor/toolbar.tsx"],"sourcesContent":["import React from \"react\";\nimport { SeparatorVertical } from \"lucide-react\";\n\nexport type HeadingLevel = 0 | 1 | 2 | 3;\n\nexport const ToolbarButton: React.FC<{\n onClick: () => void;\n active?: boolean;\n disabled?: boolean;\n title: string;\n children: React.ReactNode;\n ariaPressed?: boolean;\n className?: string;\n}> = ({\n onClick,\n active = false,\n disabled = false,\n title,\n children,\n ariaPressed,\n className = \"\",\n}) => (\n <button\n onClick={onClick}\n className={`inline-flex h-8 min-w-8 items-center justify-center rounded-md px-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-primary-500/30 focus:ring-offset-1 focus:ring-offset-white dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-100 dark:focus:ring-offset-gray-950 ${active ? \"bg-primary-50 text-primary-700 dark:bg-primary-900/40 dark:text-primary-300\" : \"\"} ${disabled ? \"cursor-not-allowed opacity-40 hover:bg-transparent\" : \"\"} ${className}`.trim()}\n type=\"button\"\n disabled={disabled}\n title={title}\n aria-label={title}\n aria-pressed={ariaPressed}\n >\n {children}\n </button>\n);\n\nexport const ToolbarDivider = () => (\n <SeparatorVertical className=\"mx-1 h-5 w-px bg-gray-200 text-transparent dark:bg-gray-800\" />\n);\n\nexport const HeadingSelect: React.FC<{\n value: HeadingLevel;\n onChange: (value: HeadingLevel) => void;\n}> = ({ value, onChange }) => (\n <div className=\"flex items-center gap-2\">\n <select\n className=\"h-8 rounded-md border-0 bg-transparent px-2 text-sm font-medium text-gray-700 outline-none transition-colors hover:bg-gray-100 focus:ring-2 focus:ring-primary-500/30 dark:text-gray-200 dark:hover:bg-gray-800\"\n aria-label=\"Heading level\"\n value={value}\n onChange={(e) => onChange(Number(e.target.value) as HeadingLevel)}\n >\n <option value={0}>Normal</option>\n <option value={1} className=\"text-2xl\">\n Heading 1\n </option>\n <option value={2} className=\"text-xl\">\n Heading 2\n </option>\n <option value={3} className=\"text-lg\">\n Heading 3\n </option>\n </select>\n </div>\n);\n"],"names":["ToolbarButton","_a","onClick","_b","active","_c","disabled","title","children","ariaPressed","_d","className","_jsx","concat","trim","type","ToolbarDivider","SeparatorVertical","HeadingSelect","value","onChange","_jsxs","e","Number","target"],"mappings":"mGAKO,IAAMA,EAQR,SAACC,GACJ,IAAAC,EAAOD,EAAAC,QACPC,EAAAF,EAAAG,OAAAA,OAAM,IAAAD,GAAQA,EACdE,EAAAJ,EAAAK,SAAAA,cAAgBD,EAChBE,EAAKN,EAAAM,MACLC,EAAQP,EAAAO,SACRC,EAAWR,EAAAQ,YACXC,EAAAT,EAAAU,UAAAA,OAAS,IAAAD,EAAG,GAAEA,EACV,OACJE,EAAA,SAAA,CACEV,QAASA,EACTS,UAAW,sVAAAE,OAAsVT,EAAS,8EAAgF,GAAE,KAAAS,OAAIP,EAAW,qDAAuD,GAAE,KAAAO,OAAIF,GAAYG,OACphBC,KAAK,SACLT,SAAUA,EACVC,MAAOA,EAAK,aACAA,EAAK,eACHE,EAAWD,SAExBA,GAVC,EAcOQ,EAAiB,WAAM,OAClCJ,EAACK,EAAiB,CAACN,UAAU,+DADK,EAIvBO,EAGR,SAACjB,OAAEkB,EAAKlB,EAAAkB,MAAEC,EAAQnB,EAAAmB,SAAO,OAC5BR,EAAA,MAAA,CAAKD,UAAU,0BAAyBH,SACtCa,EAAA,SAAA,CACEV,UAAU,kNAAiN,aAChN,gBACXQ,MAAOA,EACPC,SAAU,SAACE,GAAM,OAAAF,EAASG,OAAOD,EAAEE,OAAOL,OAAzB,EAAgDX,SAAA,CAEjEI,EAAA,SAAA,CAAQO,MAAO,EAACX,SAAA,WAChBI,YAAQO,MAAO,EAAGR,UAAU,WAAUH,SAAA,cAGtCI,YAAQO,MAAO,EAAGR,UAAU,UAASH,SAAA,cAGrCI,YAAQO,MAAO,EAAGR,UAAU,UAASH,SAAA,kBAfb"}
package/dist/index.d.ts CHANGED
@@ -35,12 +35,16 @@ declare enum ExportFormatEnum {
35
35
  }
36
36
  declare function ExportButton(): react_jsx_runtime.JSX.Element;
37
37
 
38
+ type CardVariant = "default" | "elevated" | "outline" | "glass" | "premium";
39
+ type CardPadding = "none" | "sm" | "md" | "lg";
38
40
  interface CardProps {
39
41
  children: ReactNode;
40
42
  className?: string;
43
+ variant?: CardVariant;
44
+ padding?: CardPadding;
41
45
  glass?: boolean;
42
46
  }
43
- declare const Card: ({ children, className, glass }: CardProps) => react_jsx_runtime.JSX.Element;
47
+ declare const Card: ({ children, className, variant, padding, glass, }: CardProps) => react_jsx_runtime.JSX.Element;
44
48
 
45
49
  interface EmptyStateProps {
46
50
  title?: string;
@@ -622,4 +626,4 @@ interface BadgeProps {
622
626
  declare const Badge: React$1.FC<BadgeProps>;
623
627
 
624
628
  export { AlertContext, AlertProvider, Badge, Breadcrumb, Button, Card, CardStatsSkeleton, CheckBox, CheckBoxDemo, ConfirmationAlert, DateTimePicker, DateTimePickerDemo, EmptyStateCard, ExportButton, ExportFormatEnum, FileUpload, FileView, Input, InputWithPrefix, Loading, LoadingDemo, Modal, ModalExample, Pagination, RadioGroup, SKELETON_LOADER_VERSION, SKELETON_PATTERNS, SKELETON_PRESETS, Search, Select, SelectButton, SkeletonAvatar, SkeletonButton, SkeletonCard, SkeletonImage, SkeletonList, SkeletonLoader, SkeletonLoaderExample, SkeletonProfile, SkeletonTable, SkeletonText, Table, TableDropdown, TableSkeleton, TagInput, TagInputDemo, Tooltip, alert, useAlert };
625
- export type { AlertContextProps, AlertItem, AlertProps, AlertType, BadgeProps, BadgeVariant, BreadcrumbItem, BreadcrumbProps, ButtonProps, CheckBoxProps, Column, ConfirmationPopupProps, ConfirmationType, DateTimePickerProps, DateTimeValue, EmptyStateProps, FileItem, FileUploadProps, FileViewProps, InputElement, InputProps, InputWithPrefixProps, LoadingProps, ModalProps, PaginationProps, RadioGroupProps, SearchProps, SelectButtonOption, SelectButtonProps, SelectOption, SelectProps, SkeletonAnimation, SkeletonLoaderModule, SkeletonLoaderProps, SkeletonSize, SkeletonVariant, TableDropdownProps, TableProps, Tag, TagInputProps, TooltipProps };
629
+ export type { AlertContextProps, AlertItem, AlertProps, AlertType, BadgeProps, BadgeVariant, BreadcrumbItem, BreadcrumbProps, ButtonProps, CardProps, CheckBoxProps, Column, ConfirmationPopupProps, ConfirmationType, DateTimePickerProps, DateTimeValue, EmptyStateProps, FileItem, FileUploadProps, FileViewProps, InputElement, InputProps, InputWithPrefixProps, LoadingProps, ModalProps, PaginationProps, RadioGroupProps, SearchProps, SelectButtonOption, SelectButtonProps, SelectOption, SelectProps, SkeletonAnimation, SkeletonLoaderModule, SkeletonLoaderProps, SkeletonSize, SkeletonVariant, TableDropdownProps, TableProps, Tag, TagInputProps, TooltipProps };