"use client" import type { ReactNode } from "react" import { Icon } from "@iconify/react" import { BarChart3, Bookmark, Calendar, CircleDot, FileText, ImageIcon, Link2, MessageSquarePlus, Minus, PenLine, Plus, Shapes, Smile, Table2, Upload, } from "lucide-react" import { DocsExclusiveMenuSub, DocsExclusiveMenuSubRoot } from "@/components/drive/richtext/docs-exclusive-menu-sub" import { DocsInsertTablePicker } from "@/components/drive/richtext/docs-insert-table-picker" import { DOCS_MENUBAR_CONTENT_PROPS } from "@/components/drive/richtext/docs-menubar-props" import { MenubarContent, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShortcut, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, } from "@/components/ui/menubar" import { suitePublicAsset } from "@/lib/suite/suite-public-asset" export type DocsInsertMenuActions = { onInsertImageFromComputer: () => void onInsertImageFromDrive: () => void onInsertNewDraw: () => void onInsertDrawFromDrive: () => void onInsertLink: () => void onInsertHorizontalRule: () => void onInsertTable: (rows: number, cols: number) => void onInsertHeader: () => void onInsertFooter: () => void onInsertWatermark: () => void onInsertPageNumbersHeader: () => void onInsertPageNumbersFooter: () => void onOpenPageNumbersOptions: () => void } function MenuIcon({ children }: { children: ReactNode }) { return {children} } function DocsMenuBadge({ children }: { children: ReactNode }) { return ( {children} ) } function DisabledMenuItem({ icon, children, badge, shortcut, }: { icon: ReactNode children: ReactNode badge?: ReactNode shortcut?: string }) { return ( {icon} {children} {badge} {shortcut ? {shortcut} : null} ) } function InsertBuildingBlockItems() { return ( <> }>Notes de réunion }> Brouillon d'email }> Journal simple des décisions }> Voir plus ) } function InsertPlaceholderChipItems() { return ( <> }>Date }> Personne }>Fichier }> Événement d'agenda }> Lieu ) } export function DocsInsertMenu({ actions, disabled, pageElementsEnabled = true, }: { actions: DocsInsertMenuActions disabled?: boolean pageElementsEnabled?: boolean }) { const pageElementsDisabled = disabled || !pageElementsEnabled return ( Insertion Image Importer depuis l'ordinateur }> Rechercher sur le Web Drive }> Photos }> Appareil photo }> À partir d'une URL Tableau Composants de base { if (disabled) return actions.onInsertTable(rows, cols) }} /> Composants de base Chips intelligents }>Date }> Contact }>Fichier }> Événement d'agenda }> Lieu Chips d'espace réservé }> Menu déroulant Signatures électroniques Premium }> Insérer un champ de signature }> Demander une signature Lien ⌘K Dessin Nouveau À partir de Drive Graphique }> Barres }> Colonnes }> Lignes }> Secteurs }> Depuis Sheets Symboles }>Emoji Ω}> Caractères spéciaux π²}> Équation } shortcut="Maj+F11"> Onglet Ligne horizontale Saut } shortcut="⌘↵" > Saut de page }> Saut de colonne }> Saut de section (page suivante) }> Saut de section (continu) }>Signet Éléments de page Mise à jour Table des matières }> Table des matières avec liens }> Table des matières en texte brut En-tête Ctrl+⌘O Ctrl+⌘H Pied de page Ctrl+⌘O Ctrl+⌘F Filigrane # Numéros de page En haut de page En bas de page Options de numérotation… } shortcut="⌘⌥F" > Note de bas de page } shortcut="⌘⌥M"> Commentaire ) }