/**
 * Block element selectors used for detecting block-level elements
 * @type {string}
 */
export const BLOCK_SELECTORS = 'address, article, aside, blockquote, canvas, dd, div, dl, dt, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hr, li, main, nav, noscript, ol, p, pre, section, table, ul, video';

/**
 * Link types for the link plugin
 * @type {Object}
 */
export const LINK_TYPES = {
  TELEPHONE: 'Telephone',
  URL: 'URL',
  MAILTO: 'E-Mail',
  INTERNAL: 'Internal'
};

/**
 * Default block formats for the editor
 * @type {Array<{title: string, tag: string, classes?: string[]}>}
 */
export const DEFAULT_BLOCK_FORMATS = [
  { title: 'Paragraph', tag: 'p' },
  { title: 'Heading 1', tag: 'h1' },
  { title: 'Heading 2', tag: 'h2' },
  { title: 'Heading 3', tag: 'h3' },
  { title: 'Heading 4', tag: 'h4' },
  { title: 'Heading 5', tag: 'h5' },
  { title: 'Heading 6', tag: 'h6' },
  { title: 'Preformatted', tag: 'pre' }
];

/**
 * Custom formats for the editor
 * @type {Object}
 */
export const CUSTOM_FORMATS = {
  bold: { inline: 'strong' },
  underline: { inline: 'u' },
  // Alignment formats that add both CSS classes and inline styles
  alignleft: { 
    selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,audio,video',
    classes: 'has-left-text-align',
    styles: { 'text-align': 'left' },
    remove: 'all'
  },
  aligncenter: { 
    selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,audio,video',
    classes: 'has-center-text-align',
    styles: { 'text-align': 'center' },
    remove: 'all'
  },
  alignright: { 
    selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,audio,video',
    classes: 'has-right-text-align',
    styles: { 'text-align': 'right' },
    remove: 'all'
  },
  alignjustify: { 
    selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img,audio,video',
    classes: 'has-justify-text-align',
    styles: { 'text-align': 'justify' },
    remove: 'all'
  }
};

/**
 * Minified editor properties
 * @type {Object}
 */
export const MINIFIED_PROPS = {
  statusbar: false,
  toolbar: false,
  newline_behavior: 'linebreak'
};