import type { DocsGraphicFloatSide, DocsGraphicWrap } from "./docs-graphic-types"

/** Material icon ids used across graphic toolbars and sidebars (Google Docs parity). */
export const DOCS_GRAPHIC_WRAP_ICONS: Record<DocsGraphicWrap, string> = {
  inline: "material-symbols:text-fields",
  square: "material-symbols:wrap-text",
  tight: "material-symbols:wrap-text",
  through: "material-symbols:wrap-text",
  "top-bottom": "material-symbols:vertical-align-center",
  behind: "material-symbols:layers-clear",
  "in-front": "material-symbols:layers",
}

export const DOCS_GRAPHIC_FLOAT_SIDE_ICONS: Record<DocsGraphicFloatSide, string> = {
  left: "material-symbols:format-align-left",
  center: "material-symbols:format-align-center",
  right: "material-symbols:format-align-right",
}

export const DOCS_GRAPHIC_FLOAT_SIDE_LABELS: Record<DocsGraphicFloatSide, string> = {
  left: "Gauche",
  center: "Centre",
  right: "Droite",
}

/** In-flow wrap modes in the floating toolbar habillage dropdown. */
export const DOCS_GRAPHIC_FLOATING_WRAP_ACTIONS: {
  wrap: DocsGraphicWrap
  label: string
}[] = [
  { wrap: "top-bottom", label: "Retour à la ligne" },
  { wrap: "square", label: "Intercaler le texte" },
  { wrap: "inline", label: "En ligne avec le texte" },
]

/** Layer wrap modes as icon buttons on the floating toolbar. */
export const DOCS_GRAPHIC_LAYER_WRAP_ACTIONS: {
  wrap: DocsGraphicWrap
  label: string
}[] = [
  { wrap: "behind", label: "Derrière le texte" },
  { wrap: "in-front", label: "Devant le texte" },
]

export const DOCS_GRAPHIC_ADVANCED_WRAP_ACTIONS: {
  wrap: DocsGraphicWrap
  label: string
}[] = [
  { wrap: "tight", label: "Rapproché" },
  { wrap: "through", label: "À travers" },
]

/** Short labels for sidebar option cards (Google Docs clarity). */
export const DOCS_GRAPHIC_WRAP_SHORT_LABELS: Record<DocsGraphicWrap, string> = {
  inline: "En ligne",
  square: "Intercaler",
  tight: "Rapproché",
  through: "À travers",
  "top-bottom": "Retour ligne",
  behind: "Derrière",
  "in-front": "Devant",
}

export const DOCS_GRAPHIC_WRAP_DESCRIPTIONS: Record<DocsGraphicWrap, string> = {
  inline: "L'image reste sur la même ligne que le texte.",
  square: "Le texte s'enroule autour de l'image.",
  tight: "Le texte suit de près le contour de l'image.",
  through: "Le texte passe à travers l'image.",
  "top-bottom": "L'image est au-dessus et en dessous du texte.",
  behind: "L'image passe derrière le texte.",
  "in-front": "L'image passe devant le texte.",
}

export const DOCS_GRAPHIC_POSITION_MODE_SHORT_LABELS: Record<
  import("./docs-graphic-types").DocsGraphicPositionMode,
  string
> = {
  "move-with-text": "Avec le texte",
  "fixed-on-page": "Fixe sur la page",
}

export const DOCS_GRAPHIC_POSITION_MODE_DESCRIPTIONS: Record<
  import("./docs-graphic-types").DocsGraphicPositionMode,
  string
> = {
  "move-with-text": "L'image se déplace quand vous modifiez le texte.",
  "fixed-on-page": "L'image reste à la même place sur la page.",
}

export type DocsGraphicOptionsSection =
  | "size"
  | "gradient"
  | "wrap"
  | "margin"
  | "position"
  | "recolor"
  | "adjust"
  | "alt"
