{"version":3,"file":"RichTextEditor.cjs","sources":["../../../../src/components/forms/rich-text-editor/RichTextEditor.tsx"],"sourcesContent":["import { memo, useId } from 'react'\r\n\r\nimport AlignmentGroup from '@components/forms/rich-text-editor/components/alignment-group/AlignmentGroup.tsx'\r\nimport BlockFormatGroup from '@components/forms/rich-text-editor/components/block-format-group/BlockFormatGroup.tsx'\r\nimport EditorField from '@components/forms/rich-text-editor/components/editor-field/EditorField.tsx'\r\nimport HelperText from '@components/forms/rich-text-editor/components/helper-text/HelperText.tsx'\r\nimport HistoryGroup from '@components/forms/rich-text-editor/components/history-group/HistoryGroup.tsx'\r\nimport { Redo, Undo } from '@components/forms/rich-text-editor/components/history-group'\r\nimport ImageGroup from '@components/forms/rich-text-editor/components/image-group/ImageGroup.tsx'\r\nimport LinkGroup from '@components/forms/rich-text-editor/components/link-group/LinkGroup.tsx'\r\nimport { SetLink, UnsetLink } from '@components/forms/rich-text-editor/components/link-group'\r\nimport ListsGroup from '@components/forms/rich-text-editor/components/lists-group/ListsGroup.tsx'\r\nimport { RichTextEditorLabel } from '@components/forms/rich-text-editor/components/rich-text-editor-label'\r\nimport ReadOnlyField from '@components/forms/rich-text-editor/components/read-only-field/ReadOnlyField.tsx'\r\nimport TextAppearanceGroup from '@components/forms/rich-text-editor/components/text-appearance-group/TextAppearanceGroup.tsx'\r\nimport TextStyleGroup from '@components/forms/rich-text-editor/components/text-style-group/TextStyleGroup.tsx'\r\nimport {\r\n    Bold,\r\n    Italic,\r\n    Strike,\r\n    Underline,\r\n} from '@components/forms/rich-text-editor/components/text-style-group'\r\nimport Toolbar from '@components/forms/rich-text-editor/components/toolbar/Toolbar.tsx'\r\nimport ToolbarGroups from '@components/forms/rich-text-editor/components/toolbar-groups/ToolbarGroups.tsx'\r\nimport ToolbarGroup from '@components/forms/rich-text-editor/components/toolbar-group/ToolbarGroup.tsx'\r\nimport ToolbarSeparator from '@components/forms/rich-text-editor/components/toolbar-separator/ToolbarSeparator.tsx'\r\nimport { RichTextEditorContext } from '@components/forms/rich-text-editor/context/RichTextEditor.context.ts'\r\nimport { cn } from '@utils/cn.ts'\r\nimport { EMPTY_RICH_TEXT_DOCUMENT } from '@components/forms/rich-text-editor/constants/richTextEmptyDocument.const.ts'\r\nimport { RICH_TEXT_EDITOR_DEFAULT_LABELS } from '@components/forms/rich-text-editor/constants/richTextEditorDefaultLabels.const.ts'\r\nimport { RICH_TEXT_EDITOR_STYLES } from '@components/forms/rich-text-editor/styles/RichTextEditor.css.ts'\r\nimport { useRichTextEditor } from '@components/forms/rich-text-editor/hooks/useRichTextEditor.hook.ts'\r\nimport type {\r\n    RichTextEditorCompound,\r\n    RichTextEditorProps,\r\n    RichTextValue,\r\n} from '@components/forms/rich-text-editor/types'\r\n\r\n/**\r\n * Full-featured rich-text editor compound backed by TipTap. Manages a\r\n * controlled/uncontrolled JSON document value and provides context to all\r\n * slot components.\r\n *\r\n * Compound slots: `RichTextEditor.Label`, `.EditorField`, `.ReadOnlyField`,\r\n * `.HelperText`, `.Toolbar`, `.ToolbarGroups`, `.ToolbarGroup`,\r\n * `.ToolbarSeparator`, `.HistoryGroup`, `.Undo`, `.Redo`,\r\n * `.TextStyleGroup`, `.Bold`, `.Italic`, `.Underline`, `.Strike`,\r\n * `.TextAppearanceGroup`, `.LinkGroup`, `.SetLink`, `.UnsetLink`,\r\n * `.BlockFormatGroup`, `.ListsGroup`, `.AlignmentGroup`, `.ImageGroup`.\r\n */\r\nconst RichTextEditor = memo<RichTextEditorProps>(({\r\n    value,\r\n    defaultValue,\r\n    onValueChange,\r\n    onImageUpload,\r\n    label,\r\n    helperText,\r\n    error,\r\n    placeholder,\r\n    disabled = false,\r\n    readOnly = false,\r\n    required = false,\r\n    width,\r\n    className,\r\n    name,\r\n    labels,\r\n    'aria-label': ariaLabel,\r\n    'aria-labelledby': ariaLabelledBy,\r\n    children,\r\n}) => {\r\n    const labelId = useId()\r\n    const helperId = useId()\r\n    const editor = useRichTextEditor({\r\n        value,\r\n        defaultValue,\r\n        onValueChange,\r\n        disabled,\r\n        readOnly,\r\n        required,\r\n        label,\r\n        placeholder,\r\n        error,\r\n        helperText,\r\n        labelId,\r\n        helperId,\r\n        ariaLabel,\r\n        ariaLabelledBy,\r\n    })\r\n\r\n    // Rebuilt on every render so static compound children observe editor transactions.\r\n    const contextValue = {\r\n        editor,\r\n        disabled,\r\n        readOnly,\r\n        onImageUpload,\r\n        label,\r\n        helperText,\r\n        error,\r\n        ariaLabel,\r\n        ariaLabelledBy,\r\n        labelId,\r\n        helperId,\r\n        name,\r\n        required,\r\n        renderedValue: (editor?.getJSON() as RichTextValue | undefined)\r\n            ?? value\r\n            ?? defaultValue\r\n            ?? EMPTY_RICH_TEXT_DOCUMENT,\r\n        labels: { ...RICH_TEXT_EDITOR_DEFAULT_LABELS, ...labels },\r\n    }\r\n\r\n    if (!editor) {\r\n        return null\r\n    }\r\n\r\n    return (\r\n        <RichTextEditorContext.Provider value={contextValue}>\r\n            <div\r\n                className={cn(RICH_TEXT_EDITOR_STYLES.root, className)}\r\n                style={width !== undefined ? { width } : undefined}\r\n            >\r\n                {children}\r\n            </div>\r\n        </RichTextEditorContext.Provider>\r\n    )\r\n}) as unknown as RichTextEditorCompound\r\n\r\nRichTextEditor.displayName = 'RichTextEditor'\r\nRichTextEditor.Label = RichTextEditorLabel\r\nRichTextEditor.EditorField = EditorField\r\nRichTextEditor.ReadOnlyField = ReadOnlyField\r\nRichTextEditor.HelperText = HelperText\r\nRichTextEditor.Toolbar = Toolbar\r\nRichTextEditor.ToolbarGroups = ToolbarGroups\r\nRichTextEditor.ToolbarGroup = ToolbarGroup\r\nRichTextEditor.ToolbarSeparator = ToolbarSeparator\r\nRichTextEditor.HistoryGroup = HistoryGroup\r\nRichTextEditor.Undo = Undo\r\nRichTextEditor.Redo = Redo\r\nRichTextEditor.TextStyleGroup = TextStyleGroup\r\nRichTextEditor.Bold = Bold\r\nRichTextEditor.Italic = Italic\r\nRichTextEditor.Underline = Underline\r\nRichTextEditor.Strike = Strike\r\nRichTextEditor.TextAppearanceGroup = TextAppearanceGroup\r\nRichTextEditor.LinkGroup = LinkGroup\r\nRichTextEditor.SetLink = SetLink\r\nRichTextEditor.UnsetLink = UnsetLink\r\nRichTextEditor.BlockFormatGroup = BlockFormatGroup\r\nRichTextEditor.ListsGroup = ListsGroup\r\nRichTextEditor.AlignmentGroup = AlignmentGroup\r\nRichTextEditor.ImageGroup = ImageGroup\r\n\r\nexport default RichTextEditor\r\n"],"names":["RichTextEditor","memo","value","defaultValue","onValueChange","onImageUpload","label","helperText","error","placeholder","disabled","readOnly","required","width","className","name","labels","ariaLabel","ariaLabelledBy","children","labelId","useId","helperId","editor","useRichTextEditor","contextValue","EMPTY_RICH_TEXT_DOCUMENT","RICH_TEXT_EDITOR_DEFAULT_LABELS","jsx","RichTextEditorContext","cn","RICH_TEXT_EDITOR_STYLES","RichTextEditorLabel","EditorField","ReadOnlyField","HelperText","Toolbar","ToolbarGroups","ToolbarGroup","ToolbarSeparator","HistoryGroup","Undo","Redo","TextStyleGroup","Bold","Italic","Underline","Strike","TextAppearanceGroup","LinkGroup","SetLink","UnsetLink","BlockFormatGroup","ListsGroup","AlignmentGroup","ImageGroup"],"mappings":"q0DAkDMA,EAAiBC,EAAAA,KAA0B,CAAC,CAC9C,MAAAC,EACA,aAAAC,EACA,cAAAC,EACA,cAAAC,EACA,MAAAC,EACA,WAAAC,EACA,MAAAC,EACA,YAAAC,EACA,SAAAC,EAAW,GACX,SAAAC,EAAW,GACX,SAAAC,EAAW,GACX,MAAAC,EACA,UAAAC,EACA,KAAAC,EACA,OAAAC,EACA,aAAcC,EACd,kBAAmBC,EACnB,SAAAC,CACJ,IAAM,CACF,MAAMC,EAAUC,EAAAA,MAAA,EACVC,EAAWD,EAAAA,MAAA,EACXE,EAASC,EAAAA,kBAAkB,CAC7B,MAAAtB,EACA,aAAAC,EACA,cAAAC,EACA,SAAAM,EACA,SAAAC,EACA,SAAAC,EACA,MAAAN,EACA,YAAAG,EACA,MAAAD,EACA,WAAAD,EACA,QAAAa,EACA,SAAAE,EACA,UAAAL,EACA,eAAAC,CAAA,CACH,EAGKO,EAAe,CACjB,OAAAF,EACA,SAAAb,EACA,SAAAC,EACA,cAAAN,EACA,MAAAC,EACA,WAAAC,EACA,MAAAC,EACA,UAAAS,EACA,eAAAC,EACA,QAAAE,EACA,SAAAE,EACA,KAAAP,EACA,SAAAH,EACA,cAAgBW,GAAQ,QAAA,GACjBrB,GACAC,GACAuB,EAAAA,yBACP,OAAQ,CAAE,GAAGC,EAAAA,gCAAiC,GAAGX,CAAA,CAAO,EAG5D,OAAKO,EAKDK,EAAAA,IAACC,EAAAA,sBAAsB,SAAtB,CAA+B,MAAOJ,EACnC,SAAAG,EAAAA,IAAC,MAAA,CACG,UAAWE,EAAAA,GAAGC,0BAAwB,KAAMjB,CAAS,EACrD,MAAOD,IAAU,OAAY,CAAE,MAAAA,GAAU,OAExC,SAAAM,CAAA,CAAA,EAET,EAXO,IAaf,CAAC,EAEDnB,EAAe,YAAc,iBAC7BA,EAAe,MAAQgC,EACvBhC,EAAe,YAAciC,EAC7BjC,EAAe,cAAgBkC,EAC/BlC,EAAe,WAAamC,EAC5BnC,EAAe,QAAUoC,EACzBpC,EAAe,cAAgBqC,EAC/BrC,EAAe,aAAesC,EAC9BtC,EAAe,iBAAmBuC,EAClCvC,EAAe,aAAewC,EAC9BxC,EAAe,KAAOyC,EACtBzC,EAAe,KAAO0C,EACtB1C,EAAe,eAAiB2C,EAChC3C,EAAe,KAAO4C,EAAAA,KACtB5C,EAAe,OAAS6C,EAAAA,OACxB7C,EAAe,UAAY8C,EAAAA,UAC3B9C,EAAe,OAAS+C,EAAAA,OACxB/C,EAAe,oBAAsBgD,EACrChD,EAAe,UAAYiD,EAC3BjD,EAAe,QAAUkD,EACzBlD,EAAe,UAAYmD,EAC3BnD,EAAe,iBAAmBoD,EAClCpD,EAAe,WAAaqD,EAC5BrD,EAAe,eAAiBsD,EAChCtD,EAAe,WAAauD"}