/**
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */

import type { EditorThemeClasses } from 'lexical';

import './CrystallizeRTEditorTheme.css';

const theme: EditorThemeClasses = {
  blockCursor: 'CrystallizeRTEditorTheme__blockCursor',
  characterLimit: 'CrystallizeRTEditorTheme__characterLimit',
  code: 'CrystallizeRTEditorTheme__code',
  codeHighlight: {
    atrule: 'CrystallizeRTEditorTheme__tokenAttr',
    attr: 'CrystallizeRTEditorTheme__tokenAttr',
    boolean: 'CrystallizeRTEditorTheme__tokenProperty',
    builtin: 'CrystallizeRTEditorTheme__tokenSelector',
    cdata: 'CrystallizeRTEditorTheme__tokenComment',
    char: 'CrystallizeRTEditorTheme__tokenSelector',
    class: 'CrystallizeRTEditorTheme__tokenFunction',
    'class-name': 'CrystallizeRTEditorTheme__tokenFunction',
    comment: 'CrystallizeRTEditorTheme__tokenComment',
    constant: 'CrystallizeRTEditorTheme__tokenProperty',
    deleted: 'CrystallizeRTEditorTheme__tokenProperty',
    doctype: 'CrystallizeRTEditorTheme__tokenComment',
    entity: 'CrystallizeRTEditorTheme__tokenOperator',
    function: 'CrystallizeRTEditorTheme__tokenFunction',
    important: 'CrystallizeRTEditorTheme__tokenVariable',
    inserted: 'CrystallizeRTEditorTheme__tokenSelector',
    keyword: 'CrystallizeRTEditorTheme__tokenAttr',
    namespace: 'CrystallizeRTEditorTheme__tokenVariable',
    number: 'CrystallizeRTEditorTheme__tokenProperty',
    operator: 'CrystallizeRTEditorTheme__tokenOperator',
    prolog: 'CrystallizeRTEditorTheme__tokenComment',
    property: 'CrystallizeRTEditorTheme__tokenProperty',
    punctuation: 'CrystallizeRTEditorTheme__tokenPunctuation',
    regex: 'CrystallizeRTEditorTheme__tokenVariable',
    selector: 'CrystallizeRTEditorTheme__tokenSelector',
    string: 'CrystallizeRTEditorTheme__tokenSelector',
    symbol: 'CrystallizeRTEditorTheme__tokenProperty',
    tag: 'CrystallizeRTEditorTheme__tokenProperty',
    url: 'CrystallizeRTEditorTheme__tokenOperator',
    variable: 'CrystallizeRTEditorTheme__tokenVariable',
  },
  embedBlock: {
    base: 'CrystallizeRTEditorTheme__embedBlock',
    focus: 'CrystallizeRTEditorTheme__embedBlockFocus',
  },
  hashtag: 'CrystallizeRTEditorTheme__hashtag',
  heading: {
    h1: 'CrystallizeRTEditorTheme__h1',
    h2: 'CrystallizeRTEditorTheme__h2',
    h3: 'CrystallizeRTEditorTheme__h3',
    h4: 'CrystallizeRTEditorTheme__h4',
    h5: 'CrystallizeRTEditorTheme__h5',
    h6: 'CrystallizeRTEditorTheme__h6',
  },
  image: '',
  indent: 'CrystallizeRTEditorTheme__indent',
  link: 'CrystallizeRTEditorTheme__link',
  list: {
    listitem: 'CrystallizeRTEditorTheme__listItem',
    listitemChecked: 'CrystallizeRTEditorTheme__listItemChecked',
    listitemUnchecked: 'CrystallizeRTEditorTheme__listItemUnchecked',
    nested: {
      listitem: 'CrystallizeRTEditorTheme__nestedListItem',
    },
    olDepth: [
      'CrystallizeRTEditorTheme__ol1',
      'CrystallizeRTEditorTheme__ol2',
      'CrystallizeRTEditorTheme__ol3',
      'CrystallizeRTEditorTheme__ol4',
      'CrystallizeRTEditorTheme__ol5',
    ],
    ul: 'CrystallizeRTEditorTheme__ul',
  },
  ltr: 'CrystallizeRTEditorTheme__ltr',
  mark: 'CrystallizeRTEditorTheme__mark',
  markOverlap: 'CrystallizeRTEditorTheme__markOverlap',
  paragraph: 'CrystallizeRTEditorTheme__paragraph',
  quote: 'CrystallizeRTEditorTheme__quote',
  rtl: 'CrystallizeRTEditorTheme__rtl',
  table: 'CrystallizeRTEditorTheme__table',
  tableAddColumns: 'CrystallizeRTEditorTheme__tableAddColumns',
  tableAddRows: 'CrystallizeRTEditorTheme__tableAddRows',
  tableCell: 'CrystallizeRTEditorTheme__tableCell',
  tableCellActionButton: 'CrystallizeRTEditorTheme__tableCellActionButton',
  tableCellActionButtonContainer: 'CrystallizeRTEditorTheme__tableCellActionButtonContainer',
  tableCellEditing: 'CrystallizeRTEditorTheme__tableCellEditing',
  tableCellHeader: 'CrystallizeRTEditorTheme__tableCellHeader',
  tableCellPrimarySelected: 'CrystallizeRTEditorTheme__tableCellPrimarySelected',
  tableCellResizer: 'CrystallizeRTEditorTheme__tableCellResizer',
  tableCellSelected: 'CrystallizeRTEditorTheme__tableCellSelected',
  tableCellSortedIndicator: 'CrystallizeRTEditorTheme__tableCellSortedIndicator',
  tableResizeRuler: 'CrystallizeRTEditorTheme__tableCellResizeRuler',
  tableSelected: 'CrystallizeRTEditorTheme__tableSelected',
  text: {
    bold: 'CrystallizeRTEditorTheme__textBold',
    code: 'CrystallizeRTEditorTheme__textCode',
    italic: 'CrystallizeRTEditorTheme__textItalic',
    strikethrough: 'CrystallizeRTEditorTheme__textStrikethrough',
    subscript: 'CrystallizeRTEditorTheme__textSubscript',
    superscript: 'CrystallizeRTEditorTheme__textSuperscript',
    underline: 'CrystallizeRTEditorTheme__textUnderline',
    underlineStrikethrough: 'CrystallizeRTEditorTheme__textUnderlineStrikethrough',
  },
};

export default theme;
