{"version":3,"file":"RichTextEditor.cjs","sources":["../src/RichTextEditor.tsx"],"sourcesContent":["import { createMemo, JSX, splitProps } from 'solid-js';\nimport { Editor } from '@empoleon/solid-tiptap';\nimport {\n  Box,\n  BoxProps,\n  ElementProps,\n  factory,\n  Factory,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '@empoleon/core';\nimport { DEFAULT_LABELS, RichTextEditorLabels } from './labels';\nimport { RichTextEditorProvider } from './RichTextEditor.context';\nimport { RichTextEditorContent } from './RichTextEditorContent/RichTextEditorContent';\nimport * as controls from './RichTextEditorControl';\nimport { RichTextEditorControl } from './RichTextEditorControl/RichTextEditorControl';\nimport { RichTextEditorControlsGroup } from './RichTextEditorControlsGroup/RichTextEditorControlsGroup';\nimport { RichTextEditorToolbar } from './RichTextEditorToolbar/RichTextEditorToolbar';\nimport classes from './RichTextEditor.module.css';\n\nexport type RichTextEditorVariant = 'default' | 'subtle';\n\nexport type RichTextEditorStylesNames =\n  | 'linkEditorSave'\n  | 'linkEditorDropdown'\n  | 'root'\n  | 'content'\n  | 'typographyStylesProvider'\n  | 'control'\n  | 'controlIcon'\n  | 'controlsGroup'\n  | 'toolbar'\n  | 'linkEditor'\n  | 'linkEditorInput'\n  | 'linkEditorExternalControl';\n\nexport interface RichTextEditorProps\n  extends BoxProps,\n    StylesApiProps<RichTextEditorFactory>,\n    ElementProps<'div'> {\n  /** Tiptap editor instance */\n  editor: Editor | null;\n\n  /** Determines whether code highlight styles should be added, `true` by default */\n  withCodeHighlightStyles?: boolean;\n\n  /** Determines whether typography styles should be added, `true` by default */\n  withTypographyStyles?: boolean;\n\n  /** Labels that are used in controls */\n  labels?: Partial<RichTextEditorLabels>;\n\n  /** Child editor components */\n  children: JSX.Element;\n}\n\nexport type RichTextEditorFactory = Factory<{\n  props: RichTextEditorProps;\n  ref: HTMLDivElement;\n  stylesNames: RichTextEditorStylesNames;\n  variant: RichTextEditorVariant;\n  staticComponents: {\n    Content: typeof RichTextEditorContent;\n    Control: typeof RichTextEditorControl;\n    Toolbar: typeof RichTextEditorToolbar;\n    ControlsGroup: typeof RichTextEditorControlsGroup;\n    Bold: typeof controls.BoldControl;\n    Italic: typeof controls.ItalicControl;\n    Strikethrough: typeof controls.StrikeThroughControl;\n    Underline: typeof controls.UnderlineControl;\n    ClearFormatting: typeof controls.ClearFormattingControl;\n    H1: typeof controls.H1Control;\n    H2: typeof controls.H2Control;\n    H3: typeof controls.H3Control;\n    H4: typeof controls.H4Control;\n    H5: typeof controls.H5Control;\n    H6: typeof controls.H6Control;\n    BulletList: typeof controls.BulletListControl;\n    OrderedList: typeof controls.OrderedListControl;\n    Link: typeof controls.RichTextEditorLinkControl;\n    Unlink: typeof controls.UnlinkControl;\n    Blockquote: typeof controls.BlockquoteControl;\n    AlignLeft: typeof controls.AlignLeftControl;\n    AlignRight: typeof controls.AlignRightControl;\n    AlignCenter: typeof controls.AlignCenterControl;\n    AlignJustify: typeof controls.AlignJustifyControl;\n    Superscript: typeof controls.SuperscriptControl;\n    Subscript: typeof controls.SubscriptControl;\n    Code: typeof controls.CodeControl;\n    CodeBlock: typeof controls.CodeBlockControl;\n    ColorPicker: typeof controls.RichTextEditorColorPickerControl;\n    Color: typeof controls.RichTextEditorColorControl;\n    Highlight: typeof controls.HighlightControl;\n    Hr: typeof controls.HrControl;\n    UnsetColor: typeof controls.UnsetColorControl;\n    Undo: typeof controls.UndoControl;\n    Redo: typeof controls.RedoControl;\n    TaskList: typeof controls.TaskListControl;\n    TaskListSink: typeof controls.TaskListSinkControl;\n    TaskListLift: typeof controls.TaskListLiftControl;\n  };\n}>;\n\nconst defaultProps: Partial<RichTextEditorProps> = {\n  withCodeHighlightStyles: true,\n  withTypographyStyles: true,\n  variant: 'default',\n};\n\nexport const RichTextEditor = factory<RichTextEditorFactory>(_props => {\n  const props = useProps('RichTextEditor', defaultProps, _props);\n  const [local, others] = splitProps(props, [\n    'classNames',\n    'className',\n    'style',\n    'styles',\n    'unstyled',\n    'vars',\n    'editor',\n    'withCodeHighlightStyles',\n    'withTypographyStyles',\n    'labels',\n    'children',\n    'variant',\n    'ref'\n  ]);\n\n  const getStyles = useStyles<RichTextEditorFactory>({\n    name: 'RichTextEditor',\n    classes,\n    props,\n    className: local.className,\n    style: local.style,\n    classNames: local.classNames,\n    styles: local.styles,\n    unstyled: local.unstyled,\n    vars: local.vars,\n  });\n\n  const mergedLabels = createMemo(() => ({ ...DEFAULT_LABELS, ...local.labels }));\n\n  return (\n    <RichTextEditorProvider\n      value={{\n        editor: local.editor,\n        getStyles,\n        labels: mergedLabels(),\n        withCodeHighlightStyles: local.withCodeHighlightStyles,\n        withTypographyStyles: local.withTypographyStyles,\n        unstyled: local.unstyled,\n        variant: local.variant,\n      }}\n    >\n      <Box {...getStyles('root')} {...others} ref={local.ref}>\n        {local.children}\n      </Box>\n    </RichTextEditorProvider>\n  );\n});\n\nRichTextEditor.classes = classes;\nRichTextEditor.displayName = '@empoleon/tiptap/RichTextEditor';\n\n// Generic components\nRichTextEditor.Content = RichTextEditorContent;\nRichTextEditor.Control = RichTextEditorControl;\nRichTextEditor.Toolbar = RichTextEditorToolbar;\nRichTextEditor.ControlsGroup = RichTextEditorControlsGroup;\n\n// Controls components\nRichTextEditor.Bold = controls.BoldControl;\nRichTextEditor.Italic = controls.ItalicControl;\nRichTextEditor.Strikethrough = controls.StrikeThroughControl;\nRichTextEditor.Underline = controls.UnderlineControl;\nRichTextEditor.ClearFormatting = controls.ClearFormattingControl;\nRichTextEditor.H1 = controls.H1Control;\nRichTextEditor.H2 = controls.H2Control;\nRichTextEditor.H3 = controls.H3Control;\nRichTextEditor.H4 = controls.H4Control;\nRichTextEditor.H5 = controls.H5Control;\nRichTextEditor.H6 = controls.H6Control;\nRichTextEditor.BulletList = controls.BulletListControl;\nRichTextEditor.OrderedList = controls.OrderedListControl;\nRichTextEditor.Link = controls.RichTextEditorLinkControl;\nRichTextEditor.Unlink = controls.UnlinkControl;\nRichTextEditor.Blockquote = controls.BlockquoteControl;\nRichTextEditor.AlignLeft = controls.AlignLeftControl;\nRichTextEditor.AlignRight = controls.AlignRightControl;\nRichTextEditor.AlignCenter = controls.AlignCenterControl;\nRichTextEditor.AlignJustify = controls.AlignJustifyControl;\nRichTextEditor.Superscript = controls.SuperscriptControl;\nRichTextEditor.Subscript = controls.SubscriptControl;\nRichTextEditor.Code = controls.CodeControl;\nRichTextEditor.CodeBlock = controls.CodeBlockControl;\nRichTextEditor.ColorPicker = controls.RichTextEditorColorPickerControl;\nRichTextEditor.Color = controls.RichTextEditorColorControl;\nRichTextEditor.Highlight = controls.HighlightControl;\nRichTextEditor.Hr = controls.HrControl;\nRichTextEditor.UnsetColor = controls.UnsetColorControl;\nRichTextEditor.Undo = controls.UndoControl;\nRichTextEditor.Redo = controls.RedoControl;\nRichTextEditor.TaskList = controls.TaskListControl;\nRichTextEditor.TaskListSink = controls.TaskListSinkControl;\nRichTextEditor.TaskListLift = controls.TaskListLiftControl;\n"],"names":["defaultProps","withCodeHighlightStyles","withTypographyStyles","variant","RichTextEditor","factory","_props","props","useProps","local","others","splitProps","getStyles","useStyles","name","classes","className","style","classNames","styles","unstyled","vars","mergedLabels","createMemo","DEFAULT_LABELS","labels","_$createComponent","RichTextEditorProvider","value","editor","children","Box","ref","r$","_ref$","displayName","Content","RichTextEditorContent","Control","RichTextEditorControl","Toolbar","RichTextEditorToolbar","ControlsGroup","RichTextEditorControlsGroup","Bold","controls","Italic","Strikethrough","Underline","ClearFormatting","H1","H2","H3","H4","H5","H6","BulletList","OrderedList","Link","Unlink","Blockquote","AlignLeft","AlignRight","AlignCenter","AlignJustify","Superscript","Subscript","Code","CodeBlock","ColorPicker","Color","Highlight","Hr","UnsetColor","Undo","Redo","TaskList","TaskListSink","TaskListLift"],"mappings":"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"}