{
  "name": "Todo List Moderne - Offline First",
  "short_name": "TodoList",
  "description": "Application Todo List moderne avec mode hors ligne et synchronisation optionnelle",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#4f46e5",
  "theme_color": "#4f46e5",
  "orientation": "portrait-primary",
  "scope": "/",
  "lang": "fr",
  "dir": "ltr",
  "categories": ["productivity", "utilities", "lifestyle"],
  "screenshots": [
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIwIiBoZWlnaHQ9IjY0MCIgdmlld0JveD0iMCAwIDMyMCA2NDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIzMjAiIGhlaWdodD0iNjQwIiBmaWxsPSIjNGY0NmU1Ii8+Cjx0ZXh0IHg9IjE2MCIgeT0iMzIwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMjQiIGZpbGw9IndoaXRlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkeT0iLjNlbSI+VG9kbyBMaXN0IE1vZGVybmU8L3RleHQ+Cjwvc3ZnPg==",
      "sizes": "320x640",
      "type": "image/svg+xml",
      "form_factor": "narrow"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTUwIiBoZWlnaHQ9IjQ4MCIgdmlld0JveD0iMCAwIDU1MCA0ODAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1NTAiIGhlaWdodD0iNDgwIiBmaWxsPSIjNGY0NmU1Ii8+Cjx0ZXh0IHg9IjI3NSIgeT0iMjQwIiBmb250LWZhbWlseT0iQXJpYWwiIGZvbnQtc2l6ZT0iMjQiIGZpbGw9IndoaXRlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBkeT0iLjNlbSI+VG9kbyBMaXN0IE1vZGVybmU8L3RleHQ+Cjwvc3ZnPg==",
      "sizes": "550x480",
      "type": "image/svg+xml",
      "form_factor": "wide"
    }
  ],
  "shortcuts": [
    {
      "name": "Ajouter une tâche",
      "short_name": "Ajouter",
      "description": "Ajouter rapidement une nouvelle tâche",
      "url": "/?action=add",
      "icons": [
        {
          "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iMTYiIGZpbGw9IiM2MzY2ZjEiLz4KPHBhdGggZD0iTTQ4IDMySDMyVjQ4SDQ4VjMyWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQ4IDMySDY0VjQ4SDQ4VjMyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+",
          "sizes": "96x96",
          "type": "image/svg+xml"
        }
      ]
    },
    {
      "name": "Tâches actives",
      "short_name": "Actives",
      "description": "Voir les tâches non terminées",
      "url": "/?filter=active",
      "icons": [
        {
          "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iMTYiIGZpbGw9IiMxMGI5ODEiLz4KPHBhdGggZD0iTTQ4IDI0YzEzLjIzIDAgMjQgMTAuNzcgMjQgMjRzLTEwLjc3IDI0LTI0IDI0LTI0LTEwLjc3LTI0LTI0IDEwLjc3LTI0IDI0LTI0eiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+",
          "sizes": "96x96",
          "type": "image/svg+xml"
        }
      ]
    },
    {
      "name": "Synchroniser",
      "short_name": "Sync",
      "description": "Synchroniser avec le serveur",
      "url": "/?action=sync",
      "icons": [
        {
          "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iMTYiIGZpbGw9IiNmNTllMGIiLz4KPHBhdGggZD0iTTQ4IDI0YzEuMTYgMCAyLjM0LjE3IDMuNS41TDM5IDM1LjVBMTIgMTIgMCAwIDEgNTYgNDRWNjBIMzBaIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4=",
          "sizes": "96x96",
          "type": "image/svg+xml"
        }
      ]
    }
  ],
  "icons": [
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDE5MiAxOTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxOTIiIGhlaWdodD0iMTkyIiByeD0iMjQiIGZpbGw9IiM0ZjQ2ZTUiLz4KPHBhdGggZD0iOTYgNzJDMTIwLjYyIDcyIDE0MyAzNS42MiAxNDMgMTBDMTQzIDEyNC4yNiAxMjAuNjIgMTYxIDk2IDE2MVM0OSAxMjQuMjYgNDkgMTBDNDkgMzUuNjIgNzEuMzggNzIgOTYgNzJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNOTYgNTZINDZ2Mmw0LTR6IiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=",
      "sizes": "192x192",
      "type": "image/svg+xml",
      "purpose": "maskable"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiByeD0iNjQiIGZpbGw9IiM0ZjQ2ZTUiLz4KPHBhdGggZD0iMjU2IDE5MmMxOS42NyAwIDM2LjU0IDEwLjU0IDM4IDEzSDIyNFYxOTJaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjU2IDE0NEgxMjZ2NWgyNzFWNjBIMTI2VjE0NFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yNTYgMTI4SDI0MXYzaDE2LTR6IiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=",
      "sizes": "512x512",
      "type": "image/svg+xml",
      "purpose": "maskable"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiByeD0iNCIgZmlsbD0iIzRmNDZlNSIvPgo8cGF0aCBkPSJNMjQgMTlIMjBWMjFIMjRWMTVIMjZWMjFIMjRWMTlaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=",
      "sizes": "48x48",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iNCIgZmlsbD0iIzRmNDZlNSIvPgo8cGF0aCBkPSJNMzIgMjZIMjB2Mmw4LTR6IiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=",
      "sizes": "64x64",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iOCIgZmlsbD0iIzRmNDZlNSIvPgo8cGF0aCBkPSJNOTYgNTZINDZ2Mmw0LTR6IiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=",
      "sizes": "96x96",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiByeD0iMTIiIGZpbGw9IiM0ZjQ2ZTUiLz4KPHBhdGggZD0iNjQgMzZsLTUtNWgxMGw1LTV6IiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4=",
      "sizes": "128x128",
      "type": "image/svg+xml"
    },
    {
      "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiByeD0iMjQiIGZpbGw9IiM0ZjQ2ZTUiLz4KPHBhdGggZD0iMTI4IDExMmwtOC04aDE2bDgtOHoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPg==",
      "sizes": "256x256",
      "type": "image/svg+xml"
    }
  ],
  "related_applications": [],
  "prefer_related_applications": false,
  "file_handlers": [
    {
      "action": "/import",
      "accept": {
        "application/json": [".json"],
        "text/plain": [".txt"]
      }
    }
  ],
  "protocol_handlers": [
    {
      "protocol": "web+todoapp",
      "url": "/?action=%s"
    }
  ],
  "edge_side_panel": {
    "preferred_width": 400
  },
  "launch_handler": {
    "client_mode": "focus-existing"
  }
}