@lindle/linoardo 1.0.52 → 1.0.53
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/{chunk-S7VLFCLP.js → chunk-7UHEFXWO.js} +5 -19
- package/dist/chunk-7UHEFXWO.js.map +1 -0
- package/dist/{chunk-3J6Y3EQW.js → chunk-HOPFH5GQ.js} +32 -8
- package/dist/chunk-HOPFH5GQ.js.map +1 -0
- package/dist/index.cjs +33 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/notification.cjs +3 -17
- package/dist/notification.cjs.map +1 -1
- package/dist/notification.js +1 -1
- package/dist/styles.css +34 -17
- package/dist/textarea.cjs +30 -7
- package/dist/textarea.cjs.map +1 -1
- package/dist/textarea.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-3J6Y3EQW.js.map +0 -1
- package/dist/chunk-S7VLFCLP.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Form/TextArea/index.tsx"],"names":["nextValue","nextPosition"],"mappings":"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","file":"chunk-3J6Y3EQW.js","sourcesContent":["import React from 'react';\nimport CodeBlockLowlight from '@tiptap/extension-code-block-lowlight';\nimport StarterKit from '@tiptap/starter-kit';\nimport Underline from '@tiptap/extension-underline';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport { common, createLowlight } from 'lowlight';\nimport TurndownService from 'turndown';\nimport { marked } from 'marked';\nimport { twMerge } from 'tailwind-merge';\nimport type { InputRounded, InputSize, InputVariant } from '../Input/types';\nimport type { TextAreaFormattingToolbar, TextAreaProps } from './types.textarea';\n\nconst variantClasses = {\n solid:\n 'rounded border border-gray-400 bg-white shadow-sm focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/30 dark:border-gray-600 dark:bg-slate-900 dark:shadow-black/20 dark:focus-within:border-primary/70 dark:focus-within:ring-primary/40',\n sharp:\n 'rounded-none border border-gray-400 bg-white shadow-sm focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/30 dark:border-gray-600 dark:bg-slate-900 dark:shadow-black/20 dark:focus-within:border-primary/70 dark:focus-within:ring-primary/40',\n outline:\n 'rounded border-2 border-black bg-white focus-within:border-black focus-within:ring-2 focus-within:ring-black/30 dark:border-black dark:bg-transparent dark:focus-within:border-black dark:focus-within:ring-black/40',\n text: 'rounded-none border-0 border-b border-transparent px-0 bg-transparent focus-within:border-primary focus-within:ring-0 focus-within:ring-transparent dark:border-b-gray-600 dark:focus-within:border-primary/70',\n ghost:\n 'rounded border border-transparent bg-gray-50 text-gray-900 focus-within:bg-white focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/15 dark:bg-slate-800 dark:text-gray-100 dark:focus-within:bg-slate-700 dark:focus-within:border-primary/60 dark:focus-within:ring-primary/25',\n filled:\n 'rounded border border-gray-200 bg-gray-100 focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/25 dark:border-gray-700 dark:bg-slate-800 dark:focus-within:border-primary/60 dark:focus-within:ring-primary/30',\n underlined:\n 'rounded-none border-0 border-b border-gray-300 px-0 bg-transparent focus-within:border-primary focus-within:ring-0 focus-within:ring-transparent dark:border-b-gray-600 dark:focus-within:border-primary/70'\n} satisfies Record<InputVariant, string>;\n\nconst roundedClasses = {\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n '3xl': 'rounded-3xl'\n} satisfies Record<InputRounded, string>;\n\nconst sizeClasses = {\n 'x-small': {\n paddingY: 'py-2',\n paddingX: 'px-2',\n text: 'text-xs'\n },\n small: {\n paddingY: 'py-2.5',\n paddingX: 'px-2.5',\n text: 'text-sm'\n },\n medium: {\n paddingY: 'py-3',\n paddingX: 'px-3',\n text: 'text-base'\n },\n large: {\n paddingY: 'py-3.5',\n paddingX: 'px-3.5',\n text: 'text-lg'\n },\n 'x-large': {\n paddingY: 'py-4',\n paddingX: 'px-4',\n text: 'text-xl'\n }\n} satisfies Record<\n InputSize,\n {\n paddingY: string;\n paddingX: string;\n text: string;\n }\n>;\n\nconst statusClasses = {\n error: 'border-red-500 focus:border-red-500 focus:ring-red-400',\n warn: 'border-amber-500 focus:border-amber-500 focus:ring-amber-400',\n success: 'border-emerald-500 focus:border-emerald-500 focus:ring-emerald-400'\n} as const;\n\nconst statusMessageClasses = {\n error: 'text-red-600 dark:text-red-300',\n warn: 'text-amber-600 dark:text-amber-300',\n success: 'text-emerald-600 dark:text-emerald-300'\n} as const;\n\nconst DEFAULT_TOOLBAR: TextAreaFormattingToolbar[] = ['bold', 'italic', 'underline', 'strike', 'heading', 'bulletList', 'orderedList', 'blockquote', 'codeBlock'];\nconst CODE_BLOCK_LANGUAGES = ['ts', 'json', 'python', 'bash'] as const;\nconst DEFAULT_CODE_BLOCK_LANGUAGE = CODE_BLOCK_LANGUAGES[0];\nconst TEXTAREA_TAB_CHARACTER = '\\t';\nconst lowlight = createLowlight(common);\nlowlight.registerAlias({ ts: 'typescript' });\nconst turndown = new TurndownService({\n codeBlockStyle: 'fenced',\n headingStyle: 'atx',\n bulletListMarker: '-'\n});\n\nconst markdownToHtml = (markdown?: string) => {\n if (!markdown) {\n return '<p></p>';\n }\n\n return marked.parse(markdown) as string;\n};\n\nconst htmlToMarkdown = (html: string) => turndown.turndown(html).trim();\n\nconst createChangeEvent = (element: HTMLTextAreaElement): React.ChangeEvent<HTMLTextAreaElement> =>\n ({\n target: element,\n currentTarget: element\n }) as React.ChangeEvent<HTMLTextAreaElement>;\n\nconst assignRef = <T,>(ref: React.ForwardedRef<T>, value: T | null) => {\n if (typeof ref === 'function') {\n ref(value);\n return;\n }\n\n if (ref) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n};\n\nconst updateTextareaValue = (element: HTMLTextAreaElement, nextValue: string, selectionStart: number, selectionEnd: number) => {\n element.value = nextValue;\n element.setSelectionRange(selectionStart, selectionEnd);\n};\n\nconst indentSelectedLines = (value: string, selectionStart: number, selectionEnd: number) => {\n const lineStart = value.lastIndexOf('\\n', Math.max(0, selectionStart - 1)) + 1;\n const lineEndIndex = value.indexOf('\\n', selectionEnd);\n const lineEnd = lineEndIndex === -1 ? value.length : lineEndIndex;\n const selectedBlock = value.slice(lineStart, lineEnd);\n const lines = selectedBlock.split('\\n');\n const indentedBlock = lines.map(line => `${TEXTAREA_TAB_CHARACTER}${line}`).join('\\n');\n\n return {\n nextValue: `${value.slice(0, lineStart)}${indentedBlock}${value.slice(lineEnd)}`,\n selectionStart: selectionStart + TEXTAREA_TAB_CHARACTER.length,\n selectionEnd: selectionEnd + lines.length * TEXTAREA_TAB_CHARACTER.length\n };\n};\n\nconst outdentSelectedLines = (value: string, selectionStart: number, selectionEnd: number) => {\n const lineStart = value.lastIndexOf('\\n', Math.max(0, selectionStart - 1)) + 1;\n const lineEndIndex = value.indexOf('\\n', selectionEnd);\n const lineEnd = lineEndIndex === -1 ? value.length : lineEndIndex;\n const selectedBlock = value.slice(lineStart, lineEnd);\n const lines = selectedBlock.split('\\n');\n const updatedLines = lines.map(line => (line.startsWith(TEXTAREA_TAB_CHARACTER) ? line.slice(TEXTAREA_TAB_CHARACTER.length) : line));\n const removedBeforeSelectionStart = selectionStart === lineStart && !lines[0].startsWith(TEXTAREA_TAB_CHARACTER) ? 0 : lines[0].startsWith(TEXTAREA_TAB_CHARACTER) ? TEXTAREA_TAB_CHARACTER.length : 0;\n const removedTotal = lines.reduce((count, line) => count + (line.startsWith(TEXTAREA_TAB_CHARACTER) ? TEXTAREA_TAB_CHARACTER.length : 0), 0);\n\n return {\n nextValue: `${value.slice(0, lineStart)}${updatedLines.join('\\n')}${value.slice(lineEnd)}`,\n selectionStart: Math.max(lineStart, selectionStart - removedBeforeSelectionStart),\n selectionEnd: Math.max(lineStart, selectionEnd - removedTotal)\n };\n};\n\ntype ToolbarButtonProps = {\n label: string;\n active?: boolean;\n disabled?: boolean;\n onMouseDown: React.MouseEventHandler<HTMLButtonElement>;\n};\n\ntype CodeBlockLanguage = (typeof CODE_BLOCK_LANGUAGES)[number];\n\nconst isCodeBlockLanguage = (value: string): value is CodeBlockLanguage => CODE_BLOCK_LANGUAGES.includes(value as CodeBlockLanguage);\n\nconst ToolbarButton = ({ label, active, disabled, onMouseDown }: ToolbarButtonProps) => (\n <button\n type='button'\n disabled={disabled}\n onMouseDown={onMouseDown}\n className={twMerge(\n 'inline-flex min-w-8 items-center justify-center rounded border px-2 py-1 text-xs font-medium transition-colors',\n active\n ? 'border-primary bg-primary text-white'\n : 'border-gray-300 bg-white text-gray-700 hover:border-gray-400 hover:bg-gray-50 dark:border-slate-600 dark:bg-slate-900 dark:text-gray-200 dark:hover:bg-slate-800',\n disabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {label}\n </button>\n);\n\n/**\n * Multiline text input matching Input variants, sizing and status messaging.\n */\nconst TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n { variant = 'outline', size = 'medium', rounded = 'md', success, error, warn, className, wrapperClassName, label, prepend, append, rows = 4, richText = false, toolbar = DEFAULT_TOOLBAR, ...props },\n ref\n ) => {\n const { placeholder, onFocus, onBlur, onChange, onKeyDown, value, defaultValue, disabled, readOnly, ...textareaProps } = props;\n const reactId = React.useId();\n const hasLabel = Boolean(label);\n const hasProvidedPlaceholder = typeof placeholder === 'string' && placeholder.trim().length > 0;\n const hidePlaceholderUntilFocus = hasLabel && hasProvidedPlaceholder;\n const [isFocused, setIsFocused] = React.useState(false);\n const classBase = 'textarea-base transition-colors duration-200 w-full has-[textarea:disabled]:opacity-50 has-[textarea:disabled]:cursor-not-allowed';\n const textareaBase =\n 'peer block w-full min-w-0 resize-y border-0 bg-transparent p-0 text-gray-900 dark:text-gray-100 placeholder:text-gray-500 dark:placeholder:text-gray-400 focus:outline-none focus:ring-0';\n const proseBase =\n 'ProseMirror min-h-[7rem] w-full border-0 bg-transparent p-0 text-gray-900 dark:text-gray-100 focus:outline-none [&_blockquote]:border-l-4 [&_blockquote]:border-gray-300 [&_blockquote]:pl-3 [&_blockquote]:italic dark:[&_blockquote]:border-slate-600 [&_:not(pre)>code]:rounded [&_:not(pre)>code]:bg-black [&_:not(pre)>code]:px-1 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-white dark:[&_:not(pre)>code]:bg-black dark:[&_:not(pre)>code]:text-white [&_pre]:overflow-x-auto [&_pre]:rounded [&_pre]:bg-black [&_pre]:p-3 [&_pre]:text-white [&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_pre_code]:text-white [&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5 [&_h1]:text-2xl [&_h1]:font-semibold [&_h2]:text-xl [&_h2]:font-semibold';\n const hiddenTextareaRef = React.useRef<HTMLTextAreaElement | null>(null);\n const forwardedRef = React.useRef<HTMLTextAreaElement | null>(null);\n const isControlled = value !== undefined;\n const markdownValue = typeof value === 'string' ? value : typeof defaultValue === 'string' ? defaultValue : '';\n const [internalMarkdown, setInternalMarkdown] = React.useState(markdownValue);\n const resolvedMarkdownValue = isControlled ? (typeof value === 'string' ? value : '') : internalMarkdown;\n\n const status = error\n ? { tone: 'error' as const, message: error }\n : warn\n ? { tone: 'warn' as const, message: warn }\n : success\n ? { tone: 'success' as const, message: success }\n : undefined;\n\n const variantClass = variantClasses[variant] ?? variantClasses.outline;\n const toneClass = status ? statusClasses[status.tone] : undefined;\n const hasPrepend = typeof prepend === 'string' ? prepend.trim().length > 0 : Boolean(prepend);\n const hasAppend = typeof append === 'string' ? append.trim().length > 0 : Boolean(append);\n const sizeConfig = sizeClasses[size] ?? sizeClasses.medium;\n const sizeClass = [sizeConfig.paddingY, sizeConfig.paddingX, sizeConfig.text].join(' ');\n const roundedClass = variant === 'sharp' || variant === 'text' || variant === 'underlined' ? 'rounded-none' : roundedClasses[rounded];\n\n const inputName = textareaProps.name || reactId;\n const basePlaceholder = placeholder ?? (hasLabel ? ' ' : undefined);\n const placeholderValue = hidePlaceholderUntilFocus ? (isFocused ? placeholder : ' ') : basePlaceholder;\n const placeholderClass = hidePlaceholderUntilFocus\n ? 'placeholder-transparent focus:placeholder-gray-500 focus:dark:placeholder-gray-400'\n : undefined;\n const editor = useEditor({\n extensions: [\n StarterKit.configure({ heading: { levels: [1, 2] }, codeBlock: false }),\n CodeBlockLowlight.configure({\n defaultLanguage: DEFAULT_CODE_BLOCK_LANGUAGE,\n enableTabIndentation: true,\n lowlight,\n HTMLAttributes: {\n class: 'hljs'\n }\n }),\n Underline\n ],\n content: markdownToHtml(resolvedMarkdownValue),\n editable: richText && !disabled && !readOnly,\n immediatelyRender: false,\n editorProps: {\n attributes: {\n class: twMerge(proseBase, placeholderClass),\n 'data-placeholder': placeholderValue ?? ''\n }\n },\n onFocus: () => {\n if (!richText) {\n return;\n }\n\n if (hidePlaceholderUntilFocus) {\n setIsFocused(true);\n }\n const target = hiddenTextareaRef.current;\n if (target) {\n onFocus?.(createChangeEvent(target) as unknown as React.FocusEvent<HTMLTextAreaElement>);\n }\n },\n onBlur: () => {\n if (!richText) {\n return;\n }\n\n if (hidePlaceholderUntilFocus) {\n setIsFocused(false);\n }\n const target = hiddenTextareaRef.current;\n if (target) {\n onBlur?.(createChangeEvent(target) as unknown as React.FocusEvent<HTMLTextAreaElement>);\n }\n },\n onUpdate: ({ editor: currentEditor }) => {\n if (!richText) {\n return;\n }\n\n const nextMarkdown = htmlToMarkdown(currentEditor.getHTML());\n const target = hiddenTextareaRef.current;\n\n setInternalMarkdown(nextMarkdown);\n\n if (!target) {\n return;\n }\n\n target.value = nextMarkdown;\n onChange?.(createChangeEvent(target));\n }\n });\n const activeCodeBlockLanguage = (() => {\n const language = editor?.getAttributes('codeBlock').language;\n if (typeof language === 'string' && isCodeBlockLanguage(language)) {\n return language;\n }\n\n return DEFAULT_CODE_BLOCK_LANGUAGE;\n })();\n\n React.useEffect(() => {\n if (!richText) {\n return;\n }\n\n const target = hiddenTextareaRef.current;\n if (!target) {\n return;\n }\n\n target.value = resolvedMarkdownValue;\n forwardedRef.current = target;\n assignRef(ref, target);\n }, [ref, resolvedMarkdownValue, richText]);\n\n React.useEffect(() => {\n if (!editor || !richText || !isControlled) {\n return;\n }\n\n const nextMarkdown = typeof value === 'string' ? value : '';\n const currentMarkdown = htmlToMarkdown(editor.getHTML());\n if (currentMarkdown === nextMarkdown) {\n return;\n }\n\n editor.commands.setContent(markdownToHtml(nextMarkdown), { emitUpdate: false });\n }, [editor, isControlled, richText, value]);\n\n React.useEffect(() => {\n if (!isControlled) {\n setInternalMarkdown(typeof defaultValue === 'string' ? defaultValue : '');\n }\n }, [defaultValue, isControlled]);\n\n React.useEffect(() => {\n if (!editor || !richText) {\n return;\n }\n\n editor.setEditable(!disabled && !readOnly);\n }, [disabled, editor, readOnly, richText]);\n\n const renderPrepend = hasPrepend ? (\n typeof prepend === 'string' ? (\n <span className={twMerge('text-gray-500 dark:text-gray-400', sizeConfig.text)}>{prepend}</span>\n ) : (\n prepend\n )\n ) : null;\n const renderAppend = hasAppend ? (\n typeof append === 'string' ? (\n <span className={twMerge('text-gray-500 dark:text-gray-400', sizeConfig.text)}>{append}</span>\n ) : (\n append\n )\n ) : null;\n\n const handleFocus: React.FocusEventHandler<HTMLTextAreaElement> = event => {\n if (hidePlaceholderUntilFocus) setIsFocused(true);\n onFocus?.(event);\n };\n\n const handleBlur: React.FocusEventHandler<HTMLTextAreaElement> = event => {\n if (hidePlaceholderUntilFocus) setIsFocused(false);\n onBlur?.(event);\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLTextAreaElement> = event => {\n onKeyDown?.(event);\n\n if (event.defaultPrevented || event.key !== 'Tab' || disabled || readOnly) {\n return;\n }\n\n const target = event.currentTarget;\n const { selectionStart, selectionEnd, value: currentValue } = target;\n\n event.preventDefault();\n\n if (selectionStart !== selectionEnd && currentValue.slice(selectionStart, selectionEnd).includes('\\n')) {\n const nextState = event.shiftKey\n ? outdentSelectedLines(currentValue, selectionStart, selectionEnd)\n : indentSelectedLines(currentValue, selectionStart, selectionEnd);\n\n updateTextareaValue(target, nextState.nextValue, nextState.selectionStart, nextState.selectionEnd);\n onChange?.(createChangeEvent(target));\n return;\n }\n\n if (event.shiftKey) {\n const lineStart = currentValue.lastIndexOf('\\n', Math.max(0, selectionStart - 1)) + 1;\n if (currentValue.slice(lineStart, selectionStart).endsWith(TEXTAREA_TAB_CHARACTER)) {\n const nextValue = `${currentValue.slice(0, selectionStart - TEXTAREA_TAB_CHARACTER.length)}${currentValue.slice(selectionEnd)}`;\n const nextPosition = selectionStart - TEXTAREA_TAB_CHARACTER.length;\n\n updateTextareaValue(target, nextValue, nextPosition, nextPosition);\n onChange?.(createChangeEvent(target));\n }\n return;\n }\n\n const nextValue = `${currentValue.slice(0, selectionStart)}${TEXTAREA_TAB_CHARACTER}${currentValue.slice(selectionEnd)}`;\n const nextPosition = selectionStart + TEXTAREA_TAB_CHARACTER.length;\n\n updateTextareaValue(target, nextValue, nextPosition, nextPosition);\n onChange?.(createChangeEvent(target));\n };\n\n return (\n <div className={twMerge('flex flex-col gap-1', wrapperClassName)}>\n <div className={twMerge('flex w-full items-start gap-2', classBase, variantClass, roundedClass, toneClass, sizeClass, className)}>\n {hasPrepend && <span className='flex shrink-0 items-start pt-0.5'>{renderPrepend}</span>}\n\n <div className='relative min-w-0 flex-1'>\n {richText ? (\n <>\n <textarea\n {...textareaProps}\n ref={node => {\n hiddenTextareaRef.current = node;\n forwardedRef.current = node;\n if (node) {\n assignRef(ref, node);\n }\n }}\n id={inputName}\n name={inputName}\n rows={rows}\n value={isControlled ? value : undefined}\n defaultValue={!isControlled ? defaultValue : undefined}\n disabled={disabled}\n readOnly\n tabIndex={-1}\n aria-hidden\n className='sr-only'\n />\n <div className='flex flex-wrap gap-1 border-b border-gray-200 pb-2 dark:border-slate-700'>\n {toolbar.includes('bold') && (\n <ToolbarButton\n label='B'\n disabled={!editor?.isEditable}\n active={editor?.isActive('bold')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleBold().run();\n }}\n />\n )}\n {toolbar.includes('italic') && (\n <ToolbarButton\n label='I'\n disabled={!editor?.isEditable}\n active={editor?.isActive('italic')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleItalic().run();\n }}\n />\n )}\n {toolbar.includes('underline') && (\n <ToolbarButton\n label='U'\n disabled={!editor?.isEditable}\n active={editor?.isActive('underline')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleUnderline().run();\n }}\n />\n )}\n {toolbar.includes('strike') && (\n <ToolbarButton\n label='S'\n disabled={!editor?.isEditable}\n active={editor?.isActive('strike')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleStrike().run();\n }}\n />\n )}\n {toolbar.includes('heading') && (\n <>\n <ToolbarButton\n label='H1'\n disabled={!editor?.isEditable}\n active={editor?.isActive('heading', { level: 1 })}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleHeading({ level: 1 }).run();\n }}\n />\n <ToolbarButton\n label='H2'\n disabled={!editor?.isEditable}\n active={editor?.isActive('heading', { level: 2 })}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleHeading({ level: 2 }).run();\n }}\n />\n </>\n )}\n {toolbar.includes('bulletList') && (\n <ToolbarButton\n label='List'\n disabled={!editor?.isEditable}\n active={editor?.isActive('bulletList')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleBulletList().run();\n }}\n />\n )}\n {toolbar.includes('orderedList') && (\n <ToolbarButton\n label='1.'\n disabled={!editor?.isEditable}\n active={editor?.isActive('orderedList')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleOrderedList().run();\n }}\n />\n )}\n {toolbar.includes('blockquote') && (\n <ToolbarButton\n label='Quote'\n disabled={!editor?.isEditable}\n active={editor?.isActive('blockquote')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleBlockquote().run();\n }}\n />\n )}\n {toolbar.includes('codeBlock') && (\n <>\n <ToolbarButton\n label='Code'\n disabled={!editor?.isEditable}\n active={editor?.isActive('codeBlock')}\n onMouseDown={event => {\n event.preventDefault();\n editor?.chain().focus().toggleCodeBlock({ language: activeCodeBlockLanguage }).run();\n }}\n />\n <label className='sr-only' htmlFor={`${inputName}-code-language`}>\n Code language\n </label>\n <select\n id={`${inputName}-code-language`}\n value={activeCodeBlockLanguage}\n disabled={!editor?.isEditable}\n className='min-w-24 rounded border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-600 dark:bg-slate-900 dark:text-gray-200'\n onChange={event => {\n const language = event.target.value;\n if (!isCodeBlockLanguage(language)) {\n return;\n }\n\n editor?.chain().focus().setCodeBlock({ language }).run();\n }}\n >\n {CODE_BLOCK_LANGUAGES.map(language => (\n <option key={language} value={language}>\n {language}\n </option>\n ))}\n </select>\n </>\n )}\n </div>\n <EditorContent editor={editor} className='pt-3' />\n </>\n ) : (\n <textarea\n {...textareaProps}\n ref={node => {\n forwardedRef.current = node;\n assignRef(ref, node);\n }}\n id={inputName}\n name={inputName}\n rows={rows}\n placeholder={placeholderValue}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onChange={onChange}\n disabled={disabled}\n readOnly={readOnly}\n value={value}\n defaultValue={defaultValue}\n className={twMerge(textareaBase, placeholderClass)}\n />\n )}\n\n {label && (\n <label\n htmlFor={inputName}\n className={twMerge(\n 'absolute left-0 z-10 transition-all duration-150 pointer-events-none text-gray-700 dark:text-gray-200',\n '-top-2 -translate-y-full text-xs bg-white px-1 dark:bg-slate-900',\n !richText && 'peer-focus:left-0 peer-focus:-top-5 peer-focus:-translate-y-full peer-focus:text-xs peer-focus:text-gray-600 dark:peer-focus:text-gray-300',\n !richText &&\n 'peer-placeholder-shown:top-3 peer-placeholder-shown:translate-y-0 peer-placeholder-shown:text-sm peer-placeholder-shown:bg-transparent peer-placeholder-shown:px-0 peer-placeholder-shown:text-gray-500 dark:peer-placeholder-shown:text-gray-400',\n !richText &&\n 'peer-[&:not(:placeholder-shown)]:left-0 peer-[&:not(:placeholder-shown)]:-top-2 peer-[&:not(:placeholder-shown)]:-translate-y-full peer-[&:not(:placeholder-shown)]:text-xs peer-[&:not(:placeholder-shown)]:bg-white peer-[&:not(:placeholder-shown)]:px-1 peer-[&:not(:placeholder-shown)]:text-gray-700 dark:peer-[&:not(:placeholder-shown)]:bg-slate-900 dark:peer-[&:not(:placeholder-shown)]:text-gray-200',\n richText && (isFocused || resolvedMarkdownValue) && '-top-2 -translate-y-full text-xs',\n richText && !(isFocused || resolvedMarkdownValue) && 'top-3 translate-y-0 text-sm bg-transparent px-0 text-gray-500 dark:text-gray-400'\n )}\n >\n {label}\n </label>\n )}\n </div>\n\n {hasAppend && <span className='flex shrink-0 items-start pt-0.5'>{renderAppend}</span>}\n </div>\n {status?.message && <span className={twMerge('text-sm', statusMessageClasses[status.tone])}>{status.message}</span>}\n </div>\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport type { TextAreaProps } from './types.textarea';\nexport default TextArea;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Feedback/Notification/index.tsx"],"names":["normalized"],"mappings":"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","file":"chunk-S7VLFCLP.js","sourcesContent":["import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type {\n NotificationArgs,\n NotificationPlacement,\n NotificationProps,\n NotificationType,\n NotificationVariant\n} from './types.notification';\nimport type { PropIcon } from '../../global.types';\n\nconst placementClasses: Record<NotificationPlacement, string> = {\n topLeft: 'top-4 left-4 items-start',\n topRight: 'top-4 right-4 items-end',\n bottomLeft: 'bottom-4 left-4 items-start',\n bottomRight: 'bottom-4 right-4 items-end'\n};\n\nconst typeIconMap: Record<NotificationType, string> = {\n info: 'mdi-information-outline',\n success: 'mdi-check-circle-outline',\n warning: 'mdi-alert-outline',\n error: 'mdi-close-circle-outline'\n};\n\nconst typeAccentMap: Record<NotificationType, string> = {\n info: 'bg-sky-50 text-sky-600',\n success: 'bg-emerald-50 text-emerald-600',\n warning: 'bg-amber-50 text-amber-700',\n error: 'bg-red-50 text-red-600'\n};\n\nconst typeTone: Record<\n NotificationType,\n { bg: string; text: string; border: string; iconBg: string; iconText: string }\n> = {\n info: {\n bg: 'bg-sky-50',\n text: 'text-sky-900',\n border: 'border-sky-200',\n iconBg: 'bg-sky-100',\n iconText: 'text-sky-600'\n },\n success: {\n bg: 'bg-emerald-50',\n text: 'text-emerald-900',\n border: 'border-emerald-200',\n iconBg: 'bg-emerald-100',\n iconText: 'text-emerald-600'\n },\n warning: {\n bg: 'bg-amber-50',\n text: 'text-amber-900',\n border: 'border-amber-200',\n iconBg: 'bg-amber-100',\n iconText: 'text-amber-700'\n },\n error: {\n bg: 'bg-red-50',\n text: 'text-red-900',\n border: 'border-red-200',\n iconBg: 'bg-red-100',\n iconText: 'text-red-600'\n }\n};\n\nconst isBrowser = typeof window !== 'undefined';\n\ntype AutoCloseEntry = {\n timeoutId: ReturnType<typeof setTimeout>;\n duration: number;\n onClose: () => void;\n};\n\nconst autoCloseTimers = new Map<React.Key, AutoCloseEntry>();\n\nconst clearAutoCloseTimer = (key: React.Key) => {\n const existing = autoCloseTimers.get(key);\n if (!existing) return;\n clearTimeout(existing.timeoutId);\n autoCloseTimers.delete(key);\n};\n\nconst scheduleAutoClose = (\n key: React.Key,\n duration: number | null | undefined,\n onClose?: () => void\n) => {\n if (!isBrowser) return;\n if (typeof duration !== 'number' || !Number.isFinite(duration) || duration < 0 || !onClose) {\n clearAutoCloseTimer(key);\n return;\n }\n\n const existing = autoCloseTimers.get(key);\n if (existing && existing.duration === duration && existing.onClose === onClose) return;\n if (existing) clearAutoCloseTimer(key);\n\n const timeoutId = setTimeout(() => {\n autoCloseTimers.delete(key);\n onClose();\n }, duration);\n\n autoCloseTimers.set(key, { timeoutId, duration, onClose });\n};\n\nconst cleanupStaleTimers = (activeKeys: Set<React.Key>) => {\n if (!isBrowser) return;\n for (const key of Array.from(autoCloseTimers.keys())) {\n if (!activeKeys.has(key)) {\n clearAutoCloseTimer(key);\n }\n }\n};\n\nconst resolveVariantClass = (variant: NotificationVariant, type?: NotificationType) => {\n const tone = type ? typeTone[type] : undefined;\n switch (variant) {\n case 'filled':\n return twMerge(\n tone?.bg ?? 'bg-primary/10',\n tone?.text ?? 'text-primary',\n 'border border-transparent shadow-none'\n );\n case 'outline':\n return twMerge(\n 'bg-white/90',\n tone?.text ?? 'text-gray-900',\n tone?.border ?? 'border-primary/20',\n 'border-[1.5px]'\n );\n case 'ghost':\n return twMerge(\n 'bg-transparent shadow-none border border-transparent',\n tone?.text ?? 'text-gray-900'\n );\n case 'solid':\n default:\n return 'bg-white/95 text-gray-900 border border-gray-200';\n }\n};\n\nconst resolveIconClassName = (icon?: PropIcon | string) => {\n if (!icon) return undefined;\n if (typeof icon === 'string') {\n const trimmed = icon.trim();\n if (!trimmed) return undefined;\n if (trimmed.includes(' ')) return trimmed;\n const normalized = trimmed.startsWith('mdi-') ? trimmed : `mdi-${trimmed}`;\n return `mdi ${normalized}`;\n }\n const [library, iconName] = icon;\n const normalized = iconName?.startsWith('mdi-') ? iconName : `mdi-${iconName}`;\n return `mdi ${library} ${normalized}`.trim();\n};\n\nconst resolveIconNode = (icon?: React.ReactNode | PropIcon, fallbackClassName?: string) => {\n if (React.isValidElement(icon)) return icon;\n const iconClassName = resolveIconClassName(icon as PropIcon) ?? fallbackClassName;\n if (!iconClassName) return null;\n const hasBase = iconClassName.split(' ').some(token => token.trim() === 'mdi');\n const hasGlyph = iconClassName.includes('mdi-');\n const finalClassName = hasBase && hasGlyph ? iconClassName : `mdi ${iconClassName}`.trim();\n return <i className={finalClassName} aria-hidden />;\n};\n\nconst NotificationCard: React.FC<{\n item: NotificationArgs & { key: React.Key };\n}> = ({ item }) => {\n const {\n key,\n message,\n description,\n icon,\n closeIcon,\n closable = true,\n duration,\n btn,\n onClick,\n className,\n style,\n role = 'status',\n type,\n variant = 'solid',\n ...rest\n } = item;\n\n const hasMessage = message !== undefined && message !== null;\n const hasDescription = description !== undefined && description !== null;\n const hasContent = hasMessage || hasDescription;\n const accentClass = type ? typeAccentMap[type] : undefined;\n const iconNode = resolveIconNode(icon, type ? `mdi ${typeIconMap[type]}` : undefined);\n const closeIconNode = resolveIconNode(closeIcon, 'mdi mdi-close');\n const variantClass = resolveVariantClass(variant as NotificationVariant, type);\n const toneIconBg = type ? typeTone[type]?.iconBg : undefined;\n const toneIconText = type ? typeTone[type]?.iconText : undefined;\n\n return (\n <article\n {...rest}\n role={role}\n className={twMerge(\n 'pointer-events-auto flex w-88 max-w-[calc(100vw-2.5rem)] gap-3 rounded-2xl p-4 shadow-xl ring-1 ring-black/5 backdrop-blur-sm transition hover:-translate-y-0.5 hover:shadow-2xl focus:outline-none',\n 'dark:border-gray-800 dark:bg-gray-900/95 dark:text-gray-50 dark:ring-white/5',\n variantClass,\n className\n )}\n style={style}\n onClick={onClick}\n >\n {iconNode ? (\n <div\n className={twMerge(\n 'mt-0.5 flex h-10 w-10 shrink-0 items-center justify-center rounded-xl text-xl',\n toneIconBg ?? accentClass ?? 'bg-primary/10',\n toneIconText ?? 'text-primary'\n )}\n >\n {iconNode}\n </div>\n ) : null}\n <div className='min-w-0 flex-1 space-y-1'>\n {hasContent ? (\n <div className='space-y-1'>\n {hasMessage ? (\n <div className='text-[15px] font-semibold leading-5 text-gray-900 dark:text-white'>\n {message}\n </div>\n ) : null}\n {hasDescription ? (\n <div className='text-sm leading-6 text-gray-600 dark:text-gray-300'>\n {description}\n </div>\n ) : null}\n </div>\n ) : null}\n {btn ? <div className='pt-1 text-sm'>{btn}</div> : null}\n </div>\n {closable ? (\n <button\n type='button'\n aria-label='Zavřít upozornění'\n className='-mr-1 -mt-1 h-8 w-8 shrink-0 rounded-full text-gray-500 transition hover:bg-gray-100 hover:text-gray-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-white'\n onClick={event => {\n event.stopPropagation();\n item.onClose?.();\n }}\n >\n {closeIconNode}\n </button>\n ) : null}\n </article>\n );\n};\n\nconst Notification: React.FC<NotificationProps> = ({\n items = [],\n placement = 'topRight',\n variant = 'solid',\n gap = 12,\n containerClassName,\n className,\n ...rest\n}) => {\n if (!items.length) {\n if (isBrowser) {\n for (const key of Array.from(autoCloseTimers.keys())) {\n clearAutoCloseTimer(key);\n }\n }\n return null;\n }\n\n const grouped = new Map<NotificationPlacement, (NotificationArgs & { key: React.Key })[]>();\n const activeKeys = new Set<React.Key>();\n items.forEach(item => {\n const resolvedKey = item.key ?? `notification-${item.message ?? Math.random()}`;\n const resolvedPlacement = item.placement ?? placement;\n const resolvedVariant = item.variant ?? variant;\n activeKeys.add(resolvedKey);\n scheduleAutoClose(resolvedKey, item.duration, item.onClose);\n const group = grouped.get(resolvedPlacement) ?? [];\n group.push({ ...item, key: resolvedKey, variant: resolvedVariant });\n grouped.set(resolvedPlacement, group);\n });\n cleanupStaleTimers(activeKeys);\n\n return (\n <>\n {Array.from(grouped.entries()).map(([groupPlacement, groupItems]) => (\n <div\n key={groupPlacement}\n className={twMerge(\n 'pointer-events-none fixed z-70 flex w-full max-w-[24rem] flex-col',\n placementClasses[groupPlacement],\n containerClassName,\n className\n )}\n style={{ gap: `${gap}px` }}\n {...rest}\n >\n {groupItems.map(item => (\n <NotificationCard key={item.key} item={item} />\n ))}\n </div>\n ))}\n </>\n );\n};\n\nexport type {\n NotificationArgs,\n NotificationPlacement,\n NotificationProps,\n NotificationType,\n NotificationVariant\n} from './types.notification';\nexport default Notification;\n"]}
|