From abff2cba9ba6117ff00d6a017b7a88058fea16a0 Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Mon, 24 Nov 2025 18:33:54 +0100
Subject: [PATCH 01/75] style d'impression
---
assets/css/panel.css | 10 +++---
assets/css/src/generic.css | 3 ++
assets/css/src/print.css | 69 +++++++++++++++++++++++++++++++-------
site/templates/linear.php | 4 +++
4 files changed, 68 insertions(+), 18 deletions(-)
diff --git a/assets/css/panel.css b/assets/css/panel.css
index 33ce206..3b53cbb 100644
--- a/assets/css/panel.css
+++ b/assets/css/panel.css
@@ -1,12 +1,12 @@
.k-panel-menu {
- background-color: var(--color-primary);
+ background-color: #000;
}
.k-panel-menu * {
- color: var(--color-background);
+ color: #fff;
}
.k-panel-menu-button[aria-current] * {
- color: var(--color-primary);
+ color: #000;
}
.k-panel[data-template="year"] .k-list-items .k-item:first-child {
@@ -20,6 +20,6 @@
border-radius: var(--rounded-md) var(--rounded-md) 0 0;
transform: translateY(0.3rem);
- background-color: var(--color-primary);
- color: var(--color-background);
+ background-color: #000;
+ color: #fff;
}
diff --git a/assets/css/src/generic.css b/assets/css/src/generic.css
index 99508e2..bd94abc 100644
--- a/assets/css/src/generic.css
+++ b/assets/css/src/generic.css
@@ -138,5 +138,8 @@ button.less::after {
width: 100%;
margin-top: calc(var(--unit--vertical) / 2);
}
+.only-print{
+ display: none;
+}
diff --git a/assets/css/src/print.css b/assets/css/src/print.css
index 25c61bc..c608b47 100644
--- a/assets/css/src/print.css
+++ b/assets/css/src/print.css
@@ -1,8 +1,18 @@
@media print {
/* Hide header / footer infos. */
+ * {
+ -webkit-print-color-adjust: exact;
+ print-color-adjust: exact;
+ }
+
@page {
- margin: 0;
+ /*variable pas supporter dans les marges...*/
+ /*
+ --unit--horizontal: 2.5vw;
+ --unit--vertical: 1.7rem;
+ */
+ margin: 2.5vw 1.7rem;
size: auto;
@top-left {
@@ -25,38 +35,58 @@
content: none;
}
}
+ .only-print{
+ display: block;
+ }
- .panel, nav {
- display: none;
+ .panel, nav, .main-edito-btn, .theme-toggler, .page-cover .links,
+ [data-template="home"] .title-wrapper button.open-nav, #nav-overlay{
+ display: none !important;
}
/* regle du light mode dupliqué*/
:root {
- --color-background: #ffffff;
- --color-primary: #000;
+ --color-background: #ffffff !important;
+ --color-primary: #000 !important;
--color-secondary-rgb: 140, 140, 140;
--font-weight-light: 240;
+
+ --unit--vertical: 2cm;
}
body {
- padding-top: 4rem;
background-image: none;
background-color: var(--color-background) !important;
}
-
+ #main-header {
+ position: relative;
+ page-break-after: always;
+ padding-top: 0;
+ }
.minimized #inactuel{
transform: none !important;
margin: 0 !important;
}
+ #logo *{
+ font-size: 27.3vw;
+ }
#logo h1{
display: grid;
grid-template-columns: 100%;
grid-template-rows: auto;
}
+ #logo span{
+ padding: 0;
+ }
#logo #actuel, #logo #inactuel{
grid-column: 1;
grid-row: 1;
}
+ [data-theme="light"] #logo #actuel, [data-theme="dark"] #logo #actuel,
+ [data-theme="light"] #logo #inactuel, [data-theme="dark"] #logo #inactuel{
+ mix-blend-mode: normal;
+ }
+
#logo #actuel {
font-weight: 550;
color: rgb(254, 250, 254) !important;
@@ -66,16 +96,19 @@
#logo #inactuel {
z-index: 0;
}
+ .page-cover{
+ padding-top: 0;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ height: auto;
+ page-break-after: always;
+ }
.main-title.fs-xxl {
font-size: 7rem !important;
line-height: 1 !important;
}
-
- #main-header {
- position: relative;
- }
-
#entry-btns {
display: none;
}
@@ -85,7 +118,17 @@
}
article #main-content {
- width: 60%;
+ /* width: 60%; */
margin: auto;
}
+ main {
+ padding-left: 0;
+ }
+ /* .url{
+ position: absolute;
+ transform: rotate(90deg);
+ transform-origin: top left;
+ bottom: 0;
+ right: 0;
+ } */
}
diff --git a/site/templates/linear.php b/site/templates/linear.php
index beab9b3..cd94c5e 100644
--- a/site/templates/linear.php
+++ b/site/templates/linear.php
@@ -20,6 +20,10 @@
/ = $page->category() ?>
+
+ imprimé le = \Kirby\Toolkit\Date::today()->format('d/m/Y'); ?>
+ = $page->url() ?>
+
From d365abfdb9e6033ce690482d981f45292b62ad6d Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Thu, 27 Nov 2025 14:17:05 +0100
Subject: [PATCH 02/75] initialisation of the plugin web2print
---
site/plugins/your-plugin/.editorconfig | 20 +++
site/plugins/your-plugin/.gitattributes | 11 ++
site/plugins/your-plugin/.gitignore | 14 +++
site/plugins/your-plugin/LICENSE.md | 21 ++++
site/plugins/your-plugin/README.md | 117 ++++++++++++++++++
site/plugins/your-plugin/SECURITY.md | 18 +++
site/plugins/your-plugin/composer.json | 21 ++++
site/plugins/your-plugin/composer.lock | 66 ++++++++++
site/plugins/your-plugin/index.css | 2 +
site/plugins/your-plugin/index.js | 40 ++++++
site/plugins/your-plugin/index.php | 7 ++
site/plugins/your-plugin/package.json | 12 ++
.../src/components/DemoSection.vue | 17 +++
site/plugins/your-plugin/src/index.js | 7 ++
14 files changed, 373 insertions(+)
create mode 100644 site/plugins/your-plugin/.editorconfig
create mode 100644 site/plugins/your-plugin/.gitattributes
create mode 100644 site/plugins/your-plugin/.gitignore
create mode 100644 site/plugins/your-plugin/LICENSE.md
create mode 100644 site/plugins/your-plugin/README.md
create mode 100644 site/plugins/your-plugin/SECURITY.md
create mode 100644 site/plugins/your-plugin/composer.json
create mode 100644 site/plugins/your-plugin/composer.lock
create mode 100644 site/plugins/your-plugin/index.css
create mode 100644 site/plugins/your-plugin/index.js
create mode 100644 site/plugins/your-plugin/index.php
create mode 100644 site/plugins/your-plugin/package.json
create mode 100644 site/plugins/your-plugin/src/components/DemoSection.vue
create mode 100644 site/plugins/your-plugin/src/index.js
diff --git a/site/plugins/your-plugin/.editorconfig b/site/plugins/your-plugin/.editorconfig
new file mode 100644
index 0000000..3b762c9
--- /dev/null
+++ b/site/plugins/your-plugin/.editorconfig
@@ -0,0 +1,20 @@
+# This file is for unifying the coding style for different editors and IDEs
+# editorconfig.org
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.php]
+indent_size = 4
+
+[*.md,*.txt]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[composer.json]
+indent_size = 4
diff --git a/site/plugins/your-plugin/.gitattributes b/site/plugins/your-plugin/.gitattributes
new file mode 100644
index 0000000..033ba13
--- /dev/null
+++ b/site/plugins/your-plugin/.gitattributes
@@ -0,0 +1,11 @@
+# Note: You need to uncomment the lines you want to use; the other lines can be deleted
+
+# Git
+# .gitattributes export-ignore
+# .gitignore export-ignore
+
+# Tests
+# /.coveralls.yml export-ignore
+# /.travis.yml export-ignore
+# /phpunit.xml.dist export-ignore
+# /tests/ export-ignore
diff --git a/site/plugins/your-plugin/.gitignore b/site/plugins/your-plugin/.gitignore
new file mode 100644
index 0000000..4d81cf5
--- /dev/null
+++ b/site/plugins/your-plugin/.gitignore
@@ -0,0 +1,14 @@
+# OS files
+.DS_Store
+
+# npm modules
+/node_modules
+
+# Parcel cache folder
+.cache
+
+# Composer files
+/vendor
+
+# kirbyup temp development entry
+/index.dev.mjs
diff --git a/site/plugins/your-plugin/LICENSE.md b/site/plugins/your-plugin/LICENSE.md
new file mode 100644
index 0000000..8e663d7
--- /dev/null
+++ b/site/plugins/your-plugin/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/site/plugins/your-plugin/README.md b/site/plugins/your-plugin/README.md
new file mode 100644
index 0000000..ad2b202
--- /dev/null
+++ b/site/plugins/your-plugin/README.md
@@ -0,0 +1,117 @@
+# Kirby Pluginkit: Example plugin for Kirby
+
+> Variant "Panel plugin setup"
+
+This is a boilerplate for a Kirby Panel plugin that can be installed via all three [supported installation methods](https://getkirby.com/docs/guide/plugins/plugin-setup-basic#the-three-plugin-installation-methods).
+
+You can find a list of Pluginkit variants on the [`master` branch](https://github.com/getkirby/pluginkit/tree/master).
+
+****
+
+## How to use the Pluginkit
+
+1. Fork this repository
+2. Change the plugin name and description in the `composer.json`
+3. Change the plugin name in the `index.php` and `src/index.js`
+4. Change the license if you don't want to publish under MIT
+5. Add your plugin code to the `index.php` and `src/index.js`
+6. Update this `README` with instructions for your plugin
+
+### Install the development and build setup
+
+We use [kirbyup](https://github.com/johannschopplich/kirbyup) for the development and build setup.
+
+You can start developing directly. kirbyup will be fetched remotely with your first `npm run` command, which may take a short amount of time.
+
+### Development
+
+You can start the dev process with:
+
+```bash
+npm run dev
+```
+
+This will automatically update the `index.js` and `index.css` of your plugin as soon as you make changes.
+Reload the Panel to see your code changes reflected.
+
+With kirbyup 2.0.0+ and Kirby 3.7.4+ you can alternatively use hot module reloading (HMR):
+
+```bash
+npm run serve
+```
+
+This will start a development server that updates the page as soon as you make changes. Some updates are instant, like CSS or Vue template changes, others require a reload of the page, which happens automatically.
+
+> [!NOTE]
+> The live reload functionality requires top level await, [which is only supported in modern browsers](https://caniuse.com/mdn-javascript_operators_await_top_level). If you're developing in older browsers, use `npm run dev` and reload the page manually to see changes.
+
+### Production
+
+As soon as you are happy with your plugin, you should build the final version with:
+
+```bash
+npm run build
+```
+
+This will automatically create a minified and optimized version of your `index.js` and `index.css`
+which you can ship with your plugin.
+
+We have a tutorial on how to build your own plugin based on the Pluginkit [in the Kirby documentation](https://getkirby.com/docs/guide/plugins/plugin-setup-basic).
+
+### Build reproducibility
+
+While kirbyup will stay backwards compatible, exact build reproducibility may be of importance to you. If so, we recommend to target a specific package version, rather than using npx:
+
+```json
+{
+ "scripts": {
+ "dev": "kirbyup src/index.js --watch",
+ "build": "kirbyup src/index.js"
+ },
+ "devDependencies": {
+ "kirbyup": "^3.1.0"
+ }
+}
+```
+
+What follows is an example README for your plugin.
+
+****
+
+## Installation
+
+### Download
+
+Download and copy this repository to `/site/plugins/{{ plugin-name }}`.
+
+### Git submodule
+
+```bash
+git submodule add https://github.com/{{ your-name }}/{{ plugin-name }}.git site/plugins/{{ plugin-name }}
+```
+
+### Composer
+
+```bash
+composer require {{ your-name }}/{{ plugin-name }}
+```
+
+## Setup
+
+*Additional instructions on how to configure the plugin (e.g. blueprint setup, config options, etc.)*
+
+## Options
+
+*Document the options and APIs that this plugin offers*
+
+## Development
+
+*Add instructions on how to help working on the plugin (e.g. npm setup, Composer dev dependencies, etc.)*
+
+## License
+
+MIT
+
+## Credits
+
+- [Your Name](https://github.com/ghost)
diff --git a/site/plugins/your-plugin/SECURITY.md b/site/plugins/your-plugin/SECURITY.md
new file mode 100644
index 0000000..3726336
--- /dev/null
+++ b/site/plugins/your-plugin/SECURITY.md
@@ -0,0 +1,18 @@
+# Security Policy
+
+## Supported Versions
+
+*Use this section to tell people about which versions of your project are currently being supported with security updates.*
+
+| Version | Supported |
+| ------- | ------------------ |
+| 5.1.x | :white_check_mark: |
+| 5.0.x | :x: |
+| 4.0.x | :white_check_mark: |
+| < 4.0 | :x: |
+
+## Reporting a Vulnerability
+
+*Use this section to tell people how to report a vulnerability.*
+
+*Tell them where to go, how often they can expect to get an update on a reported vulnerability, what to expect if the vulnerability is accepted or declined, etc.*
diff --git a/site/plugins/your-plugin/composer.json b/site/plugins/your-plugin/composer.json
new file mode 100644
index 0000000..fa07b14
--- /dev/null
+++ b/site/plugins/your-plugin/composer.json
@@ -0,0 +1,21 @@
+{
+ "name": "getkirby/pluginkit",
+ "description": "Kirby Example Plugin",
+ "license": "MIT",
+ "type": "kirby-plugin",
+ "version": "1.0.0",
+ "authors": [
+ {
+ "name": "Your Name",
+ "email": "you@example.com"
+ }
+ ],
+ "require": {
+ "getkirby/composer-installer": "^1.1"
+ },
+ "config": {
+ "allow-plugins": {
+ "getkirby/composer-installer": true
+ }
+ }
+}
diff --git a/site/plugins/your-plugin/composer.lock b/site/plugins/your-plugin/composer.lock
new file mode 100644
index 0000000..a5ae0fa
--- /dev/null
+++ b/site/plugins/your-plugin/composer.lock
@@ -0,0 +1,66 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "37a8e61308b9b6f49cb9835f477f0c64",
+ "packages": [
+ {
+ "name": "getkirby/composer-installer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getkirby/composer-installer.git",
+ "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getkirby/composer-installer/zipball/c98ece30bfba45be7ce457e1102d1b169d922f3d",
+ "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.8 || ^2.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Kirby\\ComposerInstaller\\Plugin"
+ },
+ "autoload": {
+ "psr-4": {
+ "Kirby\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins",
+ "homepage": "https://getkirby.com",
+ "support": {
+ "issues": "https://github.com/getkirby/composer-installer/issues",
+ "source": "https://github.com/getkirby/composer-installer/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://getkirby.com/buy",
+ "type": "custom"
+ }
+ ],
+ "time": "2020-12-28T12:54:39+00:00"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": [],
+ "plugin-api-version": "2.6.0"
+}
diff --git a/site/plugins/your-plugin/index.css b/site/plugins/your-plugin/index.css
new file mode 100644
index 0000000..d9c4995
--- /dev/null
+++ b/site/plugins/your-plugin/index.css
@@ -0,0 +1,2 @@
+
+/** Put your CSS here **/
diff --git a/site/plugins/your-plugin/index.js b/site/plugins/your-plugin/index.js
new file mode 100644
index 0000000..89fa8b4
--- /dev/null
+++ b/site/plugins/your-plugin/index.js
@@ -0,0 +1,40 @@
+(function() {
+ "use strict";
+ function normalizeComponent(scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
+ var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
+ if (render) {
+ options.render = render;
+ options.staticRenderFns = staticRenderFns;
+ options._compiled = true;
+ }
+ return {
+ exports: scriptExports,
+ options
+ };
+ }
+ const _sfc_main = {
+ // Put your section logic here
+ };
+ var _sfc_render = function render() {
+ var _vm = this;
+ _vm._self._c;
+ return _vm._m(0);
+ };
+ var _sfc_staticRenderFns = [function() {
+ var _vm = this, _c = _vm._self._c;
+ return _c("section", { staticClass: "k-demo-section" }, [_c("header", { staticClass: "k-section-header" }, [_c("h2", { staticClass: "k-headline" }, [_vm._v("Your custom section")])])]);
+ }];
+ _sfc_render._withStripped = true;
+ var __component__ = /* @__PURE__ */ normalizeComponent(
+ _sfc_main,
+ _sfc_render,
+ _sfc_staticRenderFns
+ );
+ __component__.options.__file = "C:/Users/anton/Desktop/studioVariable/actuelleInactuelle/actuel-inactuel/site/plugins/your-plugin/src/components/DemoSection.vue";
+ const DemoSection = __component__.exports;
+ window.panel.plugin("getkirby/pluginkit", {
+ sections: {
+ demo: DemoSection
+ }
+ });
+})();
diff --git a/site/plugins/your-plugin/index.php b/site/plugins/your-plugin/index.php
new file mode 100644
index 0000000..e4f92c0
--- /dev/null
+++ b/site/plugins/your-plugin/index.php
@@ -0,0 +1,7 @@
+ [
+ 'demo' => []
+ ],
+]);
diff --git a/site/plugins/your-plugin/package.json b/site/plugins/your-plugin/package.json
new file mode 100644
index 0000000..1913c34
--- /dev/null
+++ b/site/plugins/your-plugin/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "getkirby/pluginkit",
+ "description": "Kirby Example Plugin",
+ "license": "MIT",
+ "type": "kirby-plugin",
+ "version": "1.0.0",
+ "scripts": {
+ "dev": "npx -y kirbyup src/index.js --watch",
+ "serve": "npx -y kirbyup serve src/index.js",
+ "build": "npx -y kirbyup src/index.js"
+ }
+}
diff --git a/site/plugins/your-plugin/src/components/DemoSection.vue b/site/plugins/your-plugin/src/components/DemoSection.vue
new file mode 100644
index 0000000..b8e211a
--- /dev/null
+++ b/site/plugins/your-plugin/src/components/DemoSection.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/site/plugins/your-plugin/src/index.js b/site/plugins/your-plugin/src/index.js
new file mode 100644
index 0000000..1c6306a
--- /dev/null
+++ b/site/plugins/your-plugin/src/index.js
@@ -0,0 +1,7 @@
+import DemoSection from "./components/DemoSection.vue";
+
+window.panel.plugin("getkirby/pluginkit", {
+ sections: {
+ demo: DemoSection
+ }
+});
From 7d3d20d006a5e77f28fe0264783c2aecda88d4ea Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Fri, 28 Nov 2025 14:40:57 +0100
Subject: [PATCH 03/75] fin du tuto, les vrais galere commence
---
site/blueprints/pages/author.yml | 2 +
site/plugins/your-plugin/index.js | 2 +-
site/plugins/your-plugin/index.php | 17 ++++++-
.../src/components/DemoSection.vue | 51 +++++++++++++++++--
site/plugins/your-plugin/src/index.js | 2 +-
5 files changed, 66 insertions(+), 8 deletions(-)
diff --git a/site/blueprints/pages/author.yml b/site/blueprints/pages/author.yml
index 7860b89..f17f9f2 100644
--- a/site/blueprints/pages/author.yml
+++ b/site/blueprints/pages/author.yml
@@ -8,6 +8,8 @@ tabs:
presentationSection:
type: fields
fields:
+ demo:
+ type: demo
presentation:
extends: fields/body
label: Présentation
diff --git a/site/plugins/your-plugin/index.js b/site/plugins/your-plugin/index.js
index 89fa8b4..8b85eda 100644
--- a/site/plugins/your-plugin/index.js
+++ b/site/plugins/your-plugin/index.js
@@ -22,7 +22,7 @@
};
var _sfc_staticRenderFns = [function() {
var _vm = this, _c = _vm._self._c;
- return _c("section", { staticClass: "k-demo-section" }, [_c("header", { staticClass: "k-section-header" }, [_c("h2", { staticClass: "k-headline" }, [_vm._v("Your custom section")])])]);
+ return _c("section", { staticClass: "k-demo-section" }, [_c("header", { staticClass: "k-section-header" }, [_c("h2", { staticClass: "k-headline" }, [_vm._v("Test")])])]);
}];
_sfc_render._withStripped = true;
var __component__ = /* @__PURE__ */ normalizeComponent(
diff --git a/site/plugins/your-plugin/index.php b/site/plugins/your-plugin/index.php
index e4f92c0..1be738a 100644
--- a/site/plugins/your-plugin/index.php
+++ b/site/plugins/your-plugin/index.php
@@ -1,7 +1,20 @@
[
- 'demo' => []
+ 'fields' => [
+ 'demo' => [
+ 'props' => [
+ 'value' => function ($value = null) {
+ $margins = Yaml::decode($value);
+ return [
+ 'top' => 0,
+ 'right' => 0,
+ 'bottom' => 0,
+ 'left' => 0,
+ ...$margins
+ ];
+ }
+ ]
+ ]
],
]);
diff --git a/site/plugins/your-plugin/src/components/DemoSection.vue b/site/plugins/your-plugin/src/components/DemoSection.vue
index b8e211a..02accdc 100644
--- a/site/plugins/your-plugin/src/components/DemoSection.vue
+++ b/site/plugins/your-plugin/src/components/DemoSection.vue
@@ -1,14 +1,57 @@
-
+
+
+
+
+
+
+ Générer le fichier texte
+
+
+
+
diff --git a/site/plugins/your-plugin/src/index.js b/site/plugins/your-plugin/src/index.js
index 1c6306a..a0895ca 100644
--- a/site/plugins/your-plugin/src/index.js
+++ b/site/plugins/your-plugin/src/index.js
@@ -1,7 +1,7 @@
import DemoSection from "./components/DemoSection.vue";
window.panel.plugin("getkirby/pluginkit", {
- sections: {
+ fields: {
demo: DemoSection
}
});
From 3df6ff186f1c4bcb9e990b94fe4ea51f8e3a29da Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Fri, 28 Nov 2025 17:58:50 +0100
Subject: [PATCH 04/75] tout doit disparaitre
---
site/blueprints/pages/author.yml | 10 ++-
site/plugins/your-plugin/index.css | 2 -
site/plugins/your-plugin/index.js | 41 +------------
site/plugins/your-plugin/index.php | 30 ++++-----
.../src/components/DemoSection.vue | 60 ------------------
.../src/components/Web2printField.vue | 61 +++++++++++++++++++
site/plugins/your-plugin/src/index.js | 6 +-
7 files changed, 86 insertions(+), 124 deletions(-)
delete mode 100644 site/plugins/your-plugin/src/components/DemoSection.vue
create mode 100644 site/plugins/your-plugin/src/components/Web2printField.vue
diff --git a/site/blueprints/pages/author.yml b/site/blueprints/pages/author.yml
index f17f9f2..598ce96 100644
--- a/site/blueprints/pages/author.yml
+++ b/site/blueprints/pages/author.yml
@@ -8,8 +8,14 @@ tabs:
presentationSection:
type: fields
fields:
- demo:
- type: demo
+
+ web2printTest:
+ type: web2print
+ options:
+ - summary
+ - page-number
+ - cover
+
presentation:
extends: fields/body
label: Présentation
diff --git a/site/plugins/your-plugin/index.css b/site/plugins/your-plugin/index.css
index d9c4995..e69de29 100644
--- a/site/plugins/your-plugin/index.css
+++ b/site/plugins/your-plugin/index.css
@@ -1,2 +0,0 @@
-
-/** Put your CSS here **/
diff --git a/site/plugins/your-plugin/index.js b/site/plugins/your-plugin/index.js
index 8b85eda..a149249 100644
--- a/site/plugins/your-plugin/index.js
+++ b/site/plugins/your-plugin/index.js
@@ -1,40 +1 @@
-(function() {
- "use strict";
- function normalizeComponent(scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
- var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
- if (render) {
- options.render = render;
- options.staticRenderFns = staticRenderFns;
- options._compiled = true;
- }
- return {
- exports: scriptExports,
- options
- };
- }
- const _sfc_main = {
- // Put your section logic here
- };
- var _sfc_render = function render() {
- var _vm = this;
- _vm._self._c;
- return _vm._m(0);
- };
- var _sfc_staticRenderFns = [function() {
- var _vm = this, _c = _vm._self._c;
- return _c("section", { staticClass: "k-demo-section" }, [_c("header", { staticClass: "k-section-header" }, [_c("h2", { staticClass: "k-headline" }, [_vm._v("Test")])])]);
- }];
- _sfc_render._withStripped = true;
- var __component__ = /* @__PURE__ */ normalizeComponent(
- _sfc_main,
- _sfc_render,
- _sfc_staticRenderFns
- );
- __component__.options.__file = "C:/Users/anton/Desktop/studioVariable/actuelleInactuelle/actuel-inactuel/site/plugins/your-plugin/src/components/DemoSection.vue";
- const DemoSection = __component__.exports;
- window.panel.plugin("getkirby/pluginkit", {
- sections: {
- demo: DemoSection
- }
- });
-})();
+(function(){"use strict";function d(n,t,o,c,s,r,i,a){var e=typeof n=="function"?n.options:n;return t&&(e.render=t,e.staticRenderFns=o,e._compiled=!0),{exports:n,options:e}}const l={__name:"Web2PrintBtn",props:{htmlPageString:String},setup(n){const{htmlPageString:t}=n;async function o(){const r=await fetch("https://web2print.studio-variable.com",{method:"POST","Content-Type":"application/pdf","X-API-Key":"25377ab6e2153b159d1d5fa22501228810b6aec9d63346bd0614045dc167061c",body:{html:t}});if(r.ok){const i=await r.blob(),a=window.URL.createObjectURL(i),e=document.createElement("a");e.href=a,e.download="document.pdf",e.click()}else{const i=await r.json();console.error("Erreur:",i)}}return{__sfc:!0,getPdf:o}}};var u=function(){var t=this,o=t._self._c,c=t._self._setupProxy;return o("k-button",{attrs:{variant:"filled"},on:{click:function(s){return c.getPdf()}}},[t._v("Button")])},f=[],_=d(l,u,f);const p=_.exports;window.panel.plugin("studio-variable/web2print",{fields:{web2print:p}})})();
diff --git a/site/plugins/your-plugin/index.php b/site/plugins/your-plugin/index.php
index 1be738a..2b8a31b 100644
--- a/site/plugins/your-plugin/index.php
+++ b/site/plugins/your-plugin/index.php
@@ -1,20 +1,16 @@
[
- 'demo' => [
- 'props' => [
- 'value' => function ($value = null) {
- $margins = Yaml::decode($value);
- return [
- 'top' => 0,
- 'right' => 0,
- 'bottom' => 0,
- 'left' => 0,
- ...$margins
- ];
- }
- ]
- ]
- ],
+Kirby::plugin('studio-variable/web2print', [
+ 'fields' => [
+ 'web2print' => [
+ 'props' => [
+ 'options' => function ($options = []) {
+ return $options;
+ },
+ 'value' => function ($value = []) {
+ return $value;
+ }
+ ],
+ ],
+ ],
]);
diff --git a/site/plugins/your-plugin/src/components/DemoSection.vue b/site/plugins/your-plugin/src/components/DemoSection.vue
deleted file mode 100644
index 02accdc..0000000
--- a/site/plugins/your-plugin/src/components/DemoSection.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
- Générer le fichier texte
-
-
-
-
-
-
-
-
-
diff --git a/site/plugins/your-plugin/src/components/Web2printField.vue b/site/plugins/your-plugin/src/components/Web2printField.vue
new file mode 100644
index 0000000..3d0d1af
--- /dev/null
+++ b/site/plugins/your-plugin/src/components/Web2printField.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
diff --git a/site/plugins/your-plugin/src/index.js b/site/plugins/your-plugin/src/index.js
index a0895ca..288e91c 100644
--- a/site/plugins/your-plugin/src/index.js
+++ b/site/plugins/your-plugin/src/index.js
@@ -1,7 +1,7 @@
-import DemoSection from "./components/DemoSection.vue";
+import ToggleGroup from "./components/Web2printField.vue";
-window.panel.plugin("getkirby/pluginkit", {
+window.panel.plugin("studio-variable/web2print", {
fields: {
- demo: DemoSection
+ web2print: ToggleGroup
}
});
From 20e305744f6a0b9f9216e26d93ac7d7ca8ea7449 Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Fri, 28 Nov 2025 18:25:43 +0100
Subject: [PATCH 05/75] ajustement alignement toggle-mode ordi fix #42
---
assets/css/src/toggle-light-mode.css | 12 +-
site/plugins/your-plugin/index.dev.mjs | 8 +
.../node_modules/.vite/deps/_metadata.json | 8 +
.../node_modules/.vite/deps/package.json | 3 +
site/plugins/your-plugin/vendor/autoload.php | 25 +
.../vendor/composer/ClassLoader.php | 579 ++++++
.../vendor/composer/InstalledVersions.php | 359 ++++
.../your-plugin/vendor/composer/LICENSE | 21 +
.../vendor/composer/autoload_classmap.php | 10 +
.../vendor/composer/autoload_namespaces.php | 9 +
.../vendor/composer/autoload_psr4.php | 10 +
.../vendor/composer/autoload_real.php | 36 +
.../vendor/composer/autoload_static.php | 36 +
.../vendor/composer/installed.json | 56 +
.../your-plugin/vendor/composer/installed.php | 32 +
.../getkirby/composer-installer/composer.json | 30 +
.../getkirby/composer-installer/composer.lock | 1680 +++++++++++++++++
.../getkirby/composer-installer/readme.md | 104 +
.../src/ComposerInstaller/CmsInstaller.php | 64 +
.../src/ComposerInstaller/Installer.php | 105 ++
.../src/ComposerInstaller/Plugin.php | 59 +
.../src/ComposerInstaller/PluginInstaller.php | 112 ++
22 files changed, 3354 insertions(+), 4 deletions(-)
create mode 100644 site/plugins/your-plugin/index.dev.mjs
create mode 100644 site/plugins/your-plugin/node_modules/.vite/deps/_metadata.json
create mode 100644 site/plugins/your-plugin/node_modules/.vite/deps/package.json
create mode 100644 site/plugins/your-plugin/vendor/autoload.php
create mode 100644 site/plugins/your-plugin/vendor/composer/ClassLoader.php
create mode 100644 site/plugins/your-plugin/vendor/composer/InstalledVersions.php
create mode 100644 site/plugins/your-plugin/vendor/composer/LICENSE
create mode 100644 site/plugins/your-plugin/vendor/composer/autoload_classmap.php
create mode 100644 site/plugins/your-plugin/vendor/composer/autoload_namespaces.php
create mode 100644 site/plugins/your-plugin/vendor/composer/autoload_psr4.php
create mode 100644 site/plugins/your-plugin/vendor/composer/autoload_real.php
create mode 100644 site/plugins/your-plugin/vendor/composer/autoload_static.php
create mode 100644 site/plugins/your-plugin/vendor/composer/installed.json
create mode 100644 site/plugins/your-plugin/vendor/composer/installed.php
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.json
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.lock
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/readme.md
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php
create mode 100644 site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php
diff --git a/assets/css/src/toggle-light-mode.css b/assets/css/src/toggle-light-mode.css
index d8d44ce..47b44e8 100644
--- a/assets/css/src/toggle-light-mode.css
+++ b/assets/css/src/toggle-light-mode.css
@@ -4,6 +4,7 @@
bottom: 0;
padding: calc((var(--unit--vertical) / 2) / 2) calc(var(--unit--horizontal) / 2);
margin: calc((var(--unit--vertical) / 2) / 2) calc(var(--unit--horizontal) / 2);
+ margin-bottom: calc(var(--unit--vertical) - ((var(--unit--vertical) / 2) / 2));
z-index: 100;
}
.theme-toggler-icon {
@@ -19,9 +20,12 @@
-webkit-mask: var(--icon-theme-toggler) no-repeat center;
}
@media screen and (max-width: 640px) {
-.theme-toggler-icon {
- width: 1.1rem;
- height: 1.1rem;
-}
+ .theme-toggler{
+ margin-bottom: calc((var(--unit--vertical) / 2) / 2);
+ }
+ .theme-toggler-icon {
+ width: 1.1rem;
+ height: 1.1rem;
+ }
}
\ No newline at end of file
diff --git a/site/plugins/your-plugin/index.dev.mjs b/site/plugins/your-plugin/index.dev.mjs
new file mode 100644
index 0000000..1b45508
--- /dev/null
+++ b/site/plugins/your-plugin/index.dev.mjs
@@ -0,0 +1,8 @@
+try {
+ await import("http://[::1]:5177/src/index.js");
+} catch (err) {
+ console.error(
+ "[kirbyup] Couldn't connect to the development server. Run `npm run serve` to start Vite or build the plugin with `npm run build` so Kirby uses the production version."
+ );
+ throw err;
+}
diff --git a/site/plugins/your-plugin/node_modules/.vite/deps/_metadata.json b/site/plugins/your-plugin/node_modules/.vite/deps/_metadata.json
new file mode 100644
index 0000000..a66f422
--- /dev/null
+++ b/site/plugins/your-plugin/node_modules/.vite/deps/_metadata.json
@@ -0,0 +1,8 @@
+{
+ "hash": "2448440c",
+ "configHash": "ac82c898",
+ "lockfileHash": "e3b0c442",
+ "browserHash": "066a9804",
+ "optimized": {},
+ "chunks": {}
+}
\ No newline at end of file
diff --git a/site/plugins/your-plugin/node_modules/.vite/deps/package.json b/site/plugins/your-plugin/node_modules/.vite/deps/package.json
new file mode 100644
index 0000000..3dbc1ca
--- /dev/null
+++ b/site/plugins/your-plugin/node_modules/.vite/deps/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/site/plugins/your-plugin/vendor/autoload.php b/site/plugins/your-plugin/vendor/autoload.php
new file mode 100644
index 0000000..de891ee
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/autoload.php
@@ -0,0 +1,25 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier
+ * @author Jordi Boggiano
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ /** @var \Closure(string):void */
+ private static $includeFile;
+
+ /** @var string|null */
+ private $vendorDir;
+
+ // PSR-4
+ /**
+ * @var array>
+ */
+ private $prefixLengthsPsr4 = array();
+ /**
+ * @var array>
+ */
+ private $prefixDirsPsr4 = array();
+ /**
+ * @var list
+ */
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ /**
+ * List of PSR-0 prefixes
+ *
+ * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
+ *
+ * @var array>>
+ */
+ private $prefixesPsr0 = array();
+ /**
+ * @var list
+ */
+ private $fallbackDirsPsr0 = array();
+
+ /** @var bool */
+ private $useIncludePath = false;
+
+ /**
+ * @var array
+ */
+ private $classMap = array();
+
+ /** @var bool */
+ private $classMapAuthoritative = false;
+
+ /**
+ * @var array
+ */
+ private $missingClasses = array();
+
+ /** @var string|null */
+ private $apcuPrefix;
+
+ /**
+ * @var array
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param string|null $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ self::initializeIncludeClosure();
+ }
+
+ /**
+ * @return array>
+ */
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ /**
+ * @return array>
+ */
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ /**
+ * @return list
+ */
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ /**
+ * @return list
+ */
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ /**
+ * @return array Array of classname => path
+ */
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap Class to filename map
+ *
+ * @return void
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix, either
+ * appending or prepending to the ones previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param list|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ $paths = (array) $paths;
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace, either
+ * appending or prepending to the ones previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function addPsr4($prefix, $paths, $prepend = false)
+ {
+ $paths = (array) $paths;
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix,
+ * replacing any others previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param list|string $paths The PSR-0 base directories
+ *
+ * @return void
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace,
+ * replacing any others previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ *
+ * @return void
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ *
+ * @return void
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ *
+ * @return void
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ *
+ * @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
+ */
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ *
+ * @return void
+ */
+ public function unregister()
+ {
+ spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class The name of the class
+ * @return true|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ $includeFile = self::$includeFile;
+ $includeFile($file);
+
+ return true;
+ }
+
+ return null;
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders keyed by their corresponding vendor directories.
+ *
+ * @return array
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+
+ /**
+ * @return void
+ */
+ private static function initializeIncludeClosure()
+ {
+ if (self::$includeFile !== null) {
+ return;
+ }
+
+ /**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ */
+ self::$includeFile = \Closure::bind(static function($file) {
+ include $file;
+ }, null, null);
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/composer/InstalledVersions.php b/site/plugins/your-plugin/vendor/composer/InstalledVersions.php
new file mode 100644
index 0000000..51e734a
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/InstalledVersions.php
@@ -0,0 +1,359 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ *
+ * @final
+ */
+class InstalledVersions
+{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array}>
+ */
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints((string) $constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require $vendorDir.'/composer/installed.php';
+ $installed[] = self::$installedByVendor[$vendorDir] = $required;
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require __DIR__ . '/installed.php';
+ self::$installed = $required;
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ if (self::$installed !== array()) {
+ $installed[] = self::$installed;
+ }
+
+ return $installed;
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/composer/LICENSE b/site/plugins/your-plugin/vendor/composer/LICENSE
new file mode 100644
index 0000000..f27399a
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/site/plugins/your-plugin/vendor/composer/autoload_classmap.php b/site/plugins/your-plugin/vendor/composer/autoload_classmap.php
new file mode 100644
index 0000000..0fb0a2c
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/autoload_classmap.php
@@ -0,0 +1,10 @@
+ $vendorDir . '/composer/InstalledVersions.php',
+);
diff --git a/site/plugins/your-plugin/vendor/composer/autoload_namespaces.php b/site/plugins/your-plugin/vendor/composer/autoload_namespaces.php
new file mode 100644
index 0000000..15a2ff3
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+ array($vendorDir . '/getkirby/composer-installer/src'),
+);
diff --git a/site/plugins/your-plugin/vendor/composer/autoload_real.php b/site/plugins/your-plugin/vendor/composer/autoload_real.php
new file mode 100644
index 0000000..ad1a32a
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/autoload_real.php
@@ -0,0 +1,36 @@
+register(true);
+
+ return $loader;
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/composer/autoload_static.php b/site/plugins/your-plugin/vendor/composer/autoload_static.php
new file mode 100644
index 0000000..42cf9a6
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/autoload_static.php
@@ -0,0 +1,36 @@
+
+ array (
+ 'Kirby\\' => 6,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'Kirby\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/getkirby/composer-installer/src',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInit37a8e61308b9b6f49cb9835f477f0c64::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit37a8e61308b9b6f49cb9835f477f0c64::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit37a8e61308b9b6f49cb9835f477f0c64::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/composer/installed.json b/site/plugins/your-plugin/vendor/composer/installed.json
new file mode 100644
index 0000000..5402f5e
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/installed.json
@@ -0,0 +1,56 @@
+{
+ "packages": [
+ {
+ "name": "getkirby/composer-installer",
+ "version": "1.2.1",
+ "version_normalized": "1.2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/getkirby/composer-installer.git",
+ "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getkirby/composer-installer/zipball/c98ece30bfba45be7ce457e1102d1b169d922f3d",
+ "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.8 || ^2.0"
+ },
+ "time": "2020-12-28T12:54:39+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Kirby\\ComposerInstaller\\Plugin"
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Kirby\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins",
+ "homepage": "https://getkirby.com",
+ "support": {
+ "issues": "https://github.com/getkirby/composer-installer/issues",
+ "source": "https://github.com/getkirby/composer-installer/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://getkirby.com/buy",
+ "type": "custom"
+ }
+ ],
+ "install-path": "../getkirby/composer-installer"
+ }
+ ],
+ "dev": true,
+ "dev-package-names": []
+}
diff --git a/site/plugins/your-plugin/vendor/composer/installed.php b/site/plugins/your-plugin/vendor/composer/installed.php
new file mode 100644
index 0000000..06008bc
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/composer/installed.php
@@ -0,0 +1,32 @@
+ array(
+ 'name' => 'getkirby/pluginkit',
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'reference' => null,
+ 'type' => 'kirby-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'dev' => true,
+ ),
+ 'versions' => array(
+ 'getkirby/composer-installer' => array(
+ 'pretty_version' => '1.2.1',
+ 'version' => '1.2.1.0',
+ 'reference' => 'c98ece30bfba45be7ce457e1102d1b169d922f3d',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../getkirby/composer-installer',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'getkirby/pluginkit' => array(
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'reference' => null,
+ 'type' => 'kirby-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.json b/site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.json
new file mode 100644
index 0000000..e817b35
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.json
@@ -0,0 +1,30 @@
+{
+ "name": "getkirby/composer-installer",
+ "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins",
+ "type": "composer-plugin",
+ "license": "MIT",
+ "homepage": "https://getkirby.com",
+ "require": {
+ "composer-plugin-api": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "composer/composer": "^1.8 || ^2.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Kirby\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Kirby\\": "tests/"
+ }
+ },
+ "scripts": {
+ "fix": "php-cs-fixer fix --config .php_cs",
+ "test": "--stderr --coverage-html=tests/coverage"
+ },
+ "extra": {
+ "class": "Kirby\\ComposerInstaller\\Plugin"
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.lock b/site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.lock
new file mode 100644
index 0000000..8461817
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/composer.lock
@@ -0,0 +1,1680 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "981db668fb0d4f37f7b64daf03b5f131",
+ "packages": [],
+ "packages-dev": [
+ {
+ "name": "composer/ca-bundle",
+ "version": "1.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/ca-bundle.git",
+ "reference": "8a7ecad675253e4654ea05505233285377405215"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215",
+ "reference": "8a7ecad675253e4654ea05505233285377405215",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "ext-pcre": "*",
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
+ "psr/log": "^1.0",
+ "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\CaBundle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
+ "keywords": [
+ "cabundle",
+ "cacert",
+ "certificate",
+ "ssl",
+ "tls"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/ca-bundle/issues",
+ "source": "https://github.com/composer/ca-bundle/tree/1.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-08-23T12:54:47+00:00"
+ },
+ {
+ "name": "composer/composer",
+ "version": "2.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/composer.git",
+ "reference": "62139b2806178adb979d76bd3437534a1a9fd490"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/composer/zipball/62139b2806178adb979d76bd3437534a1a9fd490",
+ "reference": "62139b2806178adb979d76bd3437534a1a9fd490",
+ "shasum": ""
+ },
+ "require": {
+ "composer/ca-bundle": "^1.0",
+ "composer/semver": "^3.0",
+ "composer/spdx-licenses": "^1.2",
+ "composer/xdebug-handler": "^1.1",
+ "justinrainbow/json-schema": "^5.2.10",
+ "php": "^5.3.2 || ^7.0 || ^8.0",
+ "psr/log": "^1.0",
+ "react/promise": "^1.2 || ^2.7",
+ "seld/jsonlint": "^1.4",
+ "seld/phar-utils": "^1.0",
+ "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0",
+ "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0",
+ "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0",
+ "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0"
+ },
+ "require-dev": {
+ "phpspec/prophecy": "^1.10",
+ "symfony/phpunit-bridge": "^4.2 || ^5.0"
+ },
+ "suggest": {
+ "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
+ "ext-zip": "Enabling the zip extension allows you to unzip archives",
+ "ext-zlib": "Allow gzip compression of HTTP requests"
+ },
+ "bin": [
+ "bin/composer"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\": "src/Composer"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "https://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.",
+ "homepage": "https://getcomposer.org/",
+ "keywords": [
+ "autoload",
+ "dependency",
+ "package"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/composer/issues",
+ "source": "https://github.com/composer/composer/tree/2.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-03T16:20:39+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464",
+ "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.54",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.2.4"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-13T08:59:24+00:00"
+ },
+ {
+ "name": "composer/spdx-licenses",
+ "version": "1.5.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/spdx-licenses.git",
+ "reference": "de30328a7af8680efdc03e396aad24befd513200"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200",
+ "reference": "de30328a7af8680efdc03e396aad24befd513200",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Spdx\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "SPDX licenses list and validation library.",
+ "keywords": [
+ "license",
+ "spdx",
+ "validator"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/spdx-licenses/issues",
+ "source": "https://github.com/composer/spdx-licenses/tree/1.5.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-03T16:04:16+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "1.4.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "f28d44c286812c714741478d968104c5e604a1d4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4",
+ "reference": "f28d44c286812c714741478d968104c5e604a1d4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0",
+ "psr/log": "^1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/1.4.5"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-13T08:04:11+00:00"
+ },
+ {
+ "name": "justinrainbow/json-schema",
+ "version": "5.2.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/justinrainbow/json-schema.git",
+ "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b",
+ "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
+ "json-schema/json-schema-test-suite": "1.2.0",
+ "phpunit/phpunit": "^4.8.35"
+ },
+ "bin": [
+ "bin/validate-json"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bruno Prieto Reis",
+ "email": "bruno.p.reis@gmail.com"
+ },
+ {
+ "name": "Justin Rainbow",
+ "email": "justin.rainbow@gmail.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Robert Schönthal",
+ "email": "seroscho@googlemail.com"
+ }
+ ],
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "support": {
+ "issues": "https://github.com/justinrainbow/json-schema/issues",
+ "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10"
+ },
+ "time": "2020-05-27T16:41:55+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/master"
+ },
+ "time": "2017-02-14T16:28:37+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.3"
+ },
+ "time": "2020-03-23T09:12:05+00:00"
+ },
+ {
+ "name": "react/promise",
+ "version": "v2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4",
+ "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v2.8.0"
+ },
+ "time": "2020-05-12T15:16:56+00:00"
+ },
+ {
+ "name": "seld/jsonlint",
+ "version": "1.8.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57",
+ "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ },
+ "bin": [
+ "bin/jsonlint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "JSON Linter",
+ "keywords": [
+ "json",
+ "linter",
+ "parser",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/jsonlint/issues",
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-11T09:19:24+00:00"
+ },
+ {
+ "name": "seld/phar-utils",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/phar-utils.git",
+ "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796",
+ "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Seld\\PharUtils\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "PHAR file format utilities, for when PHP phars you up",
+ "keywords": [
+ "phar"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/phar-utils/issues",
+ "source": "https://github.com/Seldaek/phar-utils/tree/master"
+ },
+ "time": "2020-07-07T18:42:57+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "47c02526c532fb381374dab26df05e7313978976"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976",
+ "reference": "47c02526c532fb381374dab26df05e7313978976",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/string": "^5.1"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Console Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-18T08:03:05+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v5.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d",
+ "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Filesystem Component",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v5.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-11-30T17:05:38+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba",
+ "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-08T17:02:38+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41",
+ "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-10-23T14:02:19+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
+ "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-10-23T14:02:19+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "727d1096295d807c309fb01a851577302394c897"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897",
+ "reference": "727d1096295d807c309fb01a851577302394c897",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-10-23T14:02:19+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "39d483bdf39be819deabf04ec872eb0b2410b531"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531",
+ "reference": "39d483bdf39be819deabf04ec872eb0b2410b531",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-10-23T14:02:19+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed",
+ "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-10-23T14:02:19+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
+ "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.20-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-10-23T14:02:19+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd",
+ "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.15"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Process Component",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v5.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-08T17:03:37+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1",
+ "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.0"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/master"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-09-07T11:33:47+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v5.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed",
+ "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "files": [
+ "Resources/functions.php"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony String component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2020-12-05T07:33:16+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "composer-plugin-api": "^1.0 || ^2.0"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.0.0"
+}
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/readme.md b/site/plugins/your-plugin/vendor/getkirby/composer-installer/readme.md
new file mode 100644
index 0000000..c5dab97
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/readme.md
@@ -0,0 +1,104 @@
+# Kirby Composer Installer
+
+[](https://github.com/getkirby/composer-installer/actions?query=workflow%3ACI)
+[](https://coveralls.io/github/getkirby/composer-installer)
+
+This is Kirby's custom [Composer installer](https://getcomposer.org/doc/articles/custom-installers.md) for the Kirby CMS.
+It is responsible for automatically choosing the correct installation paths if you install the CMS via Composer.
+
+It can also be used to automatically install Kirby plugins to the `site/plugins` directory.
+
+## Installing the CMS
+
+### Default configuration
+
+If you `require` the `getkirby/cms` package in your own `composer.json`, there is nothing else you need to do:
+
+```js
+{
+ "require": {
+ "getkirby/cms": "^3.0"
+ }
+}
+```
+
+Kirby's Composer installer (this repo) will run automatically and will install the CMS to the `kirby` directory.
+
+### Custom installation path
+
+You might want to use a different installation path. The path can be configured like this in your `composer.json`:
+
+```js
+{
+ "require": {
+ "getkirby/cms": "^3.0"
+ },
+ "extra": {
+ "kirby-cms-path": "kirby" // change this to your custom path
+ }
+}
+```
+
+### Disable the installer for the CMS
+
+If you prefer to have the CMS installed to the `vendor` directory, you can disable the custom path entirely:
+
+```js
+{
+ "require": {
+ "getkirby/cms": "^3.0"
+ },
+ "extra": {
+ "kirby-cms-path": false
+ }
+}
+```
+
+Please note that you will need to modify your site's `index.php` to load the `vendor/autoload.php` file instead of Kirby's `bootstrap.php`.
+
+## Installing plugins
+
+### Support in published plugins
+
+Plugins need to require this installer as a Composer dependency to make use of the automatic installation to the `site/plugins` directory.
+
+You can find out more about this in our [plugin documentation](https://getkirby.com/docs/guide/plugins/plugin-setup-basic).
+
+### Usage for plugin users
+
+As a user of Kirby plugins that support this installer, you only need to `require` the plugins in your site's `composer.json`:
+
+```js
+{
+ "require": {
+ "getkirby/cms": "^3.0",
+ "superwoman/superplugin": "^1.0"
+ }
+}
+```
+
+The installer (this repo) will run automatically, as the plugin dev added it to the plugin's `composer.json`.
+
+### Custom installation path
+
+If your `site/plugins` directory is at a custom path, you can configure the installation path like this in your `composer.json`:
+
+```js
+{
+ "require": {
+ "getkirby/cms": "^3.0",
+ "superwoman/superplugin": "^1.0"
+ },
+ "extra": {
+ "kirby-plugin-path": "site/plugins" // change this to your custom path
+ }
+}
+```
+
+## License
+
+
+
+## Author
+
+Lukas Bestle
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php
new file mode 100644
index 0000000..5dc9481
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/CmsInstaller.php
@@ -0,0 +1,64 @@
+
+ * @link https://getkirby.com
+ * @copyright Bastian Allgeier GmbH
+ * @license https://opensource.org/licenses/MIT
+ */
+class CmsInstaller extends Installer
+{
+ /**
+ * Decides if the installer supports the given type
+ *
+ * @param string $packageType
+ * @return bool
+ */
+ public function supports($packageType): bool
+ {
+ return $packageType === 'kirby-cms';
+ }
+
+ /**
+ * Returns the installation path of a package
+ *
+ * @param \Composer\Package\PackageInterface $package
+ * @return string
+ */
+ public function getInstallPath(PackageInterface $package): string
+ {
+ // get the extra configuration of the top-level package
+ if ($rootPackage = $this->composer->getPackage()) {
+ $extra = $rootPackage->getExtra();
+ } else {
+ $extra = [];
+ }
+
+ // use path from configuration, otherwise fall back to default
+ if (isset($extra['kirby-cms-path']) === true) {
+ $path = $extra['kirby-cms-path'];
+ } else {
+ $path = 'kirby';
+ }
+
+ // if explicitly set to something invalid (e.g. `false`), install to vendor dir
+ if (is_string($path) !== true) {
+ return parent::getInstallPath($package);
+ }
+
+ // don't allow unsafe directories
+ $vendorDir = $this->composer->getConfig()->get('vendor-dir', Config::RELATIVE_PATHS) ?? 'vendor';
+ if ($path === $vendorDir || $path === '.') {
+ throw new InvalidArgumentException('The path ' . $path . ' is an unsafe installation directory for ' . $package->getPrettyName() . '.');
+ }
+
+ return $path;
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php
new file mode 100644
index 0000000..34371dc
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Installer.php
@@ -0,0 +1,105 @@
+
+ * @link https://getkirby.com
+ * @copyright Bastian Allgeier GmbH
+ * @license https://opensource.org/licenses/MIT
+ */
+class Installer extends LibraryInstaller
+{
+ /**
+ * Decides if the installer supports the given type
+ *
+ * @param string $packageType
+ * @return bool
+ */
+ public function supports($packageType): bool
+ {
+ throw new RuntimeException('This method needs to be overridden.'); // @codeCoverageIgnore
+ }
+
+ /**
+ * Installs a specific package
+ *
+ * @param \Composer\Repository\InstalledRepositoryInterface $repo Repository in which to check
+ * @param \Composer\Package\PackageInterface $package Package instance to install
+ * @return \React\Promise\PromiseInterface|null
+ */
+ public function install(InstalledRepositoryInterface $repo, PackageInterface $package)
+ {
+ // first install the package normally...
+ $promise = parent::install($repo, $package);
+
+ // ...then run custom code
+ $postInstall = function () use ($package): void {
+ $this->postInstall($package);
+ };
+
+ // Composer 2 in async mode
+ if ($promise instanceof PromiseInterface) {
+ return $promise->then($postInstall);
+ }
+
+ // Composer 1 or Composer 2 without async
+ $postInstall();
+ }
+
+ /**
+ * Updates a specific package
+ *
+ * @param \Composer\Repository\InstalledRepositoryInterface $repo Repository in which to check
+ * @param \Composer\Package\PackageInterface $initial Already installed package version
+ * @param \Composer\Package\PackageInterface $target Updated version
+ * @return \React\Promise\PromiseInterface|null
+ *
+ * @throws \InvalidArgumentException if $initial package is not installed
+ */
+ public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target)
+ {
+ // first update the package normally...
+ $promise = parent::update($repo, $initial, $target);
+
+ // ...then run custom code
+ $postInstall = function () use ($target): void {
+ $this->postInstall($target);
+ };
+
+ // Composer 2 in async mode
+ if ($promise instanceof PromiseInterface) {
+ return $promise->then($postInstall);
+ }
+
+ // Composer 1 or Composer 2 without async
+ $postInstall();
+ }
+
+ /**
+ * Custom handler that will be called after each package
+ * installation or update
+ *
+ * @param \Composer\Package\PackageInterface $package
+ * @return void
+ */
+ protected function postInstall(PackageInterface $package)
+ {
+ // remove the package's `vendor` directory to avoid duplicated autoloader and vendor code
+ $packageVendorDir = $this->getInstallPath($package) . '/vendor';
+ if (is_dir($packageVendorDir) === true) {
+ $success = $this->filesystem->removeDirectory($packageVendorDir);
+
+ if ($success !== true) {
+ throw new RuntimeException('Could not completely delete ' . $packageVendorDir . ', aborting.'); // @codeCoverageIgnore
+ }
+ }
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php
new file mode 100644
index 0000000..033cbc2
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php
@@ -0,0 +1,59 @@
+
+ * @link https://getkirby.com
+ * @copyright Bastian Allgeier GmbH
+ * @license https://opensource.org/licenses/MIT
+ */
+class Plugin implements PluginInterface
+{
+ /**
+ * Apply plugin modifications to Composer
+ *
+ * @param \Composer\Composer $composer
+ * @param \Composer\IO\IOInterface $io
+ * @return void
+ */
+ public function activate(Composer $composer, IOInterface $io): void
+ {
+ $installationManager = $composer->getInstallationManager();
+ $installationManager->addInstaller(new CmsInstaller($io, $composer));
+ $installationManager->addInstaller(new PluginInstaller($io, $composer));
+ }
+
+ /**
+ * Remove any hooks from Composer
+ *
+ * @codeCoverageIgnore
+ *
+ * @param \Composer\Composer $composer
+ * @param \Composer\IO\IOInterface $io
+ * @return void
+ */
+ public function deactivate(Composer $composer, IOInterface $io): void
+ {
+ // nothing to do
+ }
+
+ /**
+ * Prepare the plugin to be uninstalled
+ *
+ * @codeCoverageIgnore
+ *
+ * @param Composer $composer
+ * @param IOInterface $io
+ * @return void
+ */
+ public function uninstall(Composer $composer, IOInterface $io): void
+ {
+ // nothing to do
+ }
+}
diff --git a/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php
new file mode 100644
index 0000000..ccdd188
--- /dev/null
+++ b/site/plugins/your-plugin/vendor/getkirby/composer-installer/src/ComposerInstaller/PluginInstaller.php
@@ -0,0 +1,112 @@
+
+ * @link https://getkirby.com
+ * @copyright Bastian Allgeier GmbH
+ * @license https://opensource.org/licenses/MIT
+ */
+class PluginInstaller extends Installer
+{
+ /**
+ * Decides if the installer supports the given type
+ *
+ * @param string $packageType
+ * @return bool
+ */
+ public function supports($packageType): bool
+ {
+ return $packageType === 'kirby-plugin';
+ }
+
+ /**
+ * Returns the installation path of a package
+ *
+ * @param \Composer\Package\PackageInterface $package
+ * @return string path
+ */
+ public function getInstallPath(PackageInterface $package): string
+ {
+ // place into `vendor` directory as usual if Pluginkit is not supported
+ if ($this->supportsPluginkit($package) !== true) {
+ return parent::getInstallPath($package);
+ }
+
+ // get the extra configuration of the top-level package
+ if ($rootPackage = $this->composer->getPackage()) {
+ $extra = $rootPackage->getExtra();
+ } else {
+ $extra = [];
+ }
+
+ // use base path from configuration, otherwise fall back to default
+ $basePath = $extra['kirby-plugin-path'] ?? 'site/plugins';
+
+ if (is_string($basePath) !== true) {
+ throw new InvalidArgumentException('Invalid "kirby-plugin-path" option');
+ }
+
+ // determine the plugin name from its package name;
+ // can be overridden in the plugin's `composer.json`
+ $prettyName = $package->getPrettyName();
+ $pluginExtra = $package->getExtra();
+ if (empty($pluginExtra['installer-name']) === false) {
+ $name = $pluginExtra['installer-name'];
+
+ if (is_string($name) !== true) {
+ throw new InvalidArgumentException('Invalid "installer-name" option in plugin ' . $prettyName);
+ }
+ } elseif (strpos($prettyName, '/') !== false) {
+ // use name after the slash
+ $name = explode('/', $prettyName)[1];
+ } else {
+ $name = $prettyName;
+ }
+
+ // build destination path from base path and plugin name
+ return $basePath . '/' . $name;
+ }
+
+ /**
+ * Custom handler that will be called after each package
+ * installation or update
+ *
+ * @param \Composer\Package\PackageInterface $package
+ * @return void
+ */
+ protected function postInstall(PackageInterface $package): void
+ {
+ // only continue if Pluginkit is supported
+ if ($this->supportsPluginkit($package) !== true) {
+ return;
+ }
+
+ parent::postInstall($package);
+ }
+
+ /**
+ * Checks if the package has explicitly required this installer;
+ * otherwise (if the Pluginkit is not yet supported by the plugin)
+ * the installer will fall back to the behavior of the LibraryInstaller
+ *
+ * @param \Composer\Package\PackageInterface $package
+ * @return bool
+ */
+ protected function supportsPluginkit(PackageInterface $package): bool
+ {
+ foreach ($package->getRequires() as $link) {
+ if ($link->getTarget() === 'getkirby/composer-installer') {
+ return true;
+ }
+ }
+
+ // no required package is the installer
+ return false;
+ }
+}
From 9aece684983c6e2da67eb54d7dd370c8a7bde439 Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Tue, 2 Dec 2025 16:58:53 +0100
Subject: [PATCH 06/75] fix les couleur du panel
---
assets/css/panel.css | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/assets/css/panel.css b/assets/css/panel.css
index 33ce206..3b53cbb 100644
--- a/assets/css/panel.css
+++ b/assets/css/panel.css
@@ -1,12 +1,12 @@
.k-panel-menu {
- background-color: var(--color-primary);
+ background-color: #000;
}
.k-panel-menu * {
- color: var(--color-background);
+ color: #fff;
}
.k-panel-menu-button[aria-current] * {
- color: var(--color-primary);
+ color: #000;
}
.k-panel[data-template="year"] .k-list-items .k-item:first-child {
@@ -20,6 +20,6 @@
border-radius: var(--rounded-md) var(--rounded-md) 0 0;
transform: translateY(0.3rem);
- background-color: var(--color-primary);
- color: var(--color-background);
+ background-color: #000;
+ color: #fff;
}
From c0ec5f30ad43981d9d0faaadce7800db9dff0550 Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Wed, 3 Dec 2025 14:09:48 +0100
Subject: [PATCH 07/75] test
---
.gitlab-ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 37636c1..59cab4a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,5 @@
image: node:latest
-
+#test
stages:
- build and deploy
From 0c447209d95f5024a2cca6a7f5b58fd92ae5cc61 Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Wed, 3 Dec 2025 14:49:24 +0100
Subject: [PATCH 08/75] supression your-plugin
---
site/plugins/your-plugin/.editorconfig | 20 ---
site/plugins/your-plugin/.gitattributes | 11 --
site/plugins/your-plugin/.gitignore | 14 ---
site/plugins/your-plugin/LICENSE.md | 21 ----
site/plugins/your-plugin/README.md | 117 ------------------
site/plugins/your-plugin/SECURITY.md | 18 ---
site/plugins/your-plugin/composer.json | 21 ----
site/plugins/your-plugin/composer.lock | 66 ----------
site/plugins/your-plugin/index.css | 0
site/plugins/your-plugin/index.js | 1 -
site/plugins/your-plugin/index.php | 16 ---
site/plugins/your-plugin/package.json | 12 --
.../src/components/Web2printField.vue | 61 ---------
site/plugins/your-plugin/src/index.js | 7 --
14 files changed, 385 deletions(-)
delete mode 100644 site/plugins/your-plugin/.editorconfig
delete mode 100644 site/plugins/your-plugin/.gitattributes
delete mode 100644 site/plugins/your-plugin/.gitignore
delete mode 100644 site/plugins/your-plugin/LICENSE.md
delete mode 100644 site/plugins/your-plugin/README.md
delete mode 100644 site/plugins/your-plugin/SECURITY.md
delete mode 100644 site/plugins/your-plugin/composer.json
delete mode 100644 site/plugins/your-plugin/composer.lock
delete mode 100644 site/plugins/your-plugin/index.css
delete mode 100644 site/plugins/your-plugin/index.js
delete mode 100644 site/plugins/your-plugin/index.php
delete mode 100644 site/plugins/your-plugin/package.json
delete mode 100644 site/plugins/your-plugin/src/components/Web2printField.vue
delete mode 100644 site/plugins/your-plugin/src/index.js
diff --git a/site/plugins/your-plugin/.editorconfig b/site/plugins/your-plugin/.editorconfig
deleted file mode 100644
index 3b762c9..0000000
--- a/site/plugins/your-plugin/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-# This file is for unifying the coding style for different editors and IDEs
-# editorconfig.org
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.php]
-indent_size = 4
-
-[*.md,*.txt]
-trim_trailing_whitespace = false
-insert_final_newline = false
-
-[composer.json]
-indent_size = 4
diff --git a/site/plugins/your-plugin/.gitattributes b/site/plugins/your-plugin/.gitattributes
deleted file mode 100644
index 033ba13..0000000
--- a/site/plugins/your-plugin/.gitattributes
+++ /dev/null
@@ -1,11 +0,0 @@
-# Note: You need to uncomment the lines you want to use; the other lines can be deleted
-
-# Git
-# .gitattributes export-ignore
-# .gitignore export-ignore
-
-# Tests
-# /.coveralls.yml export-ignore
-# /.travis.yml export-ignore
-# /phpunit.xml.dist export-ignore
-# /tests/ export-ignore
diff --git a/site/plugins/your-plugin/.gitignore b/site/plugins/your-plugin/.gitignore
deleted file mode 100644
index 4d81cf5..0000000
--- a/site/plugins/your-plugin/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-# OS files
-.DS_Store
-
-# npm modules
-/node_modules
-
-# Parcel cache folder
-.cache
-
-# Composer files
-/vendor
-
-# kirbyup temp development entry
-/index.dev.mjs
diff --git a/site/plugins/your-plugin/LICENSE.md b/site/plugins/your-plugin/LICENSE.md
deleted file mode 100644
index 8e663d7..0000000
--- a/site/plugins/your-plugin/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/site/plugins/your-plugin/README.md b/site/plugins/your-plugin/README.md
deleted file mode 100644
index ad2b202..0000000
--- a/site/plugins/your-plugin/README.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# Kirby Pluginkit: Example plugin for Kirby
-
-> Variant "Panel plugin setup"
-
-This is a boilerplate for a Kirby Panel plugin that can be installed via all three [supported installation methods](https://getkirby.com/docs/guide/plugins/plugin-setup-basic#the-three-plugin-installation-methods).
-
-You can find a list of Pluginkit variants on the [`master` branch](https://github.com/getkirby/pluginkit/tree/master).
-
-****
-
-## How to use the Pluginkit
-
-1. Fork this repository
-2. Change the plugin name and description in the `composer.json`
-3. Change the plugin name in the `index.php` and `src/index.js`
-4. Change the license if you don't want to publish under MIT
-5. Add your plugin code to the `index.php` and `src/index.js`
-6. Update this `README` with instructions for your plugin
-
-### Install the development and build setup
-
-We use [kirbyup](https://github.com/johannschopplich/kirbyup) for the development and build setup.
-
-You can start developing directly. kirbyup will be fetched remotely with your first `npm run` command, which may take a short amount of time.
-
-### Development
-
-You can start the dev process with:
-
-```bash
-npm run dev
-```
-
-This will automatically update the `index.js` and `index.css` of your plugin as soon as you make changes.
-Reload the Panel to see your code changes reflected.
-
-With kirbyup 2.0.0+ and Kirby 3.7.4+ you can alternatively use hot module reloading (HMR):
-
-```bash
-npm run serve
-```
-
-This will start a development server that updates the page as soon as you make changes. Some updates are instant, like CSS or Vue template changes, others require a reload of the page, which happens automatically.
-
-> [!NOTE]
-> The live reload functionality requires top level await, [which is only supported in modern browsers](https://caniuse.com/mdn-javascript_operators_await_top_level). If you're developing in older browsers, use `npm run dev` and reload the page manually to see changes.
-
-### Production
-
-As soon as you are happy with your plugin, you should build the final version with:
-
-```bash
-npm run build
-```
-
-This will automatically create a minified and optimized version of your `index.js` and `index.css`
-which you can ship with your plugin.
-
-We have a tutorial on how to build your own plugin based on the Pluginkit [in the Kirby documentation](https://getkirby.com/docs/guide/plugins/plugin-setup-basic).
-
-### Build reproducibility
-
-While kirbyup will stay backwards compatible, exact build reproducibility may be of importance to you. If so, we recommend to target a specific package version, rather than using npx:
-
-```json
-{
- "scripts": {
- "dev": "kirbyup src/index.js --watch",
- "build": "kirbyup src/index.js"
- },
- "devDependencies": {
- "kirbyup": "^3.1.0"
- }
-}
-```
-
-What follows is an example README for your plugin.
-
-****
-
-## Installation
-
-### Download
-
-Download and copy this repository to `/site/plugins/{{ plugin-name }}`.
-
-### Git submodule
-
-```bash
-git submodule add https://github.com/{{ your-name }}/{{ plugin-name }}.git site/plugins/{{ plugin-name }}
-```
-
-### Composer
-
-```bash
-composer require {{ your-name }}/{{ plugin-name }}
-```
-
-## Setup
-
-*Additional instructions on how to configure the plugin (e.g. blueprint setup, config options, etc.)*
-
-## Options
-
-*Document the options and APIs that this plugin offers*
-
-## Development
-
-*Add instructions on how to help working on the plugin (e.g. npm setup, Composer dev dependencies, etc.)*
-
-## License
-
-MIT
-
-## Credits
-
-- [Your Name](https://github.com/ghost)
diff --git a/site/plugins/your-plugin/SECURITY.md b/site/plugins/your-plugin/SECURITY.md
deleted file mode 100644
index 3726336..0000000
--- a/site/plugins/your-plugin/SECURITY.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Security Policy
-
-## Supported Versions
-
-*Use this section to tell people about which versions of your project are currently being supported with security updates.*
-
-| Version | Supported |
-| ------- | ------------------ |
-| 5.1.x | :white_check_mark: |
-| 5.0.x | :x: |
-| 4.0.x | :white_check_mark: |
-| < 4.0 | :x: |
-
-## Reporting a Vulnerability
-
-*Use this section to tell people how to report a vulnerability.*
-
-*Tell them where to go, how often they can expect to get an update on a reported vulnerability, what to expect if the vulnerability is accepted or declined, etc.*
diff --git a/site/plugins/your-plugin/composer.json b/site/plugins/your-plugin/composer.json
deleted file mode 100644
index fa07b14..0000000
--- a/site/plugins/your-plugin/composer.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "getkirby/pluginkit",
- "description": "Kirby Example Plugin",
- "license": "MIT",
- "type": "kirby-plugin",
- "version": "1.0.0",
- "authors": [
- {
- "name": "Your Name",
- "email": "you@example.com"
- }
- ],
- "require": {
- "getkirby/composer-installer": "^1.1"
- },
- "config": {
- "allow-plugins": {
- "getkirby/composer-installer": true
- }
- }
-}
diff --git a/site/plugins/your-plugin/composer.lock b/site/plugins/your-plugin/composer.lock
deleted file mode 100644
index a5ae0fa..0000000
--- a/site/plugins/your-plugin/composer.lock
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- "content-hash": "37a8e61308b9b6f49cb9835f477f0c64",
- "packages": [
- {
- "name": "getkirby/composer-installer",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/getkirby/composer-installer.git",
- "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/getkirby/composer-installer/zipball/c98ece30bfba45be7ce457e1102d1b169d922f3d",
- "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.0 || ^2.0"
- },
- "require-dev": {
- "composer/composer": "^1.8 || ^2.0"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "Kirby\\ComposerInstaller\\Plugin"
- },
- "autoload": {
- "psr-4": {
- "Kirby\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins",
- "homepage": "https://getkirby.com",
- "support": {
- "issues": "https://github.com/getkirby/composer-installer/issues",
- "source": "https://github.com/getkirby/composer-installer/tree/1.2.1"
- },
- "funding": [
- {
- "url": "https://getkirby.com/buy",
- "type": "custom"
- }
- ],
- "time": "2020-12-28T12:54:39+00:00"
- }
- ],
- "packages-dev": [],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": [],
- "platform-dev": [],
- "plugin-api-version": "2.6.0"
-}
diff --git a/site/plugins/your-plugin/index.css b/site/plugins/your-plugin/index.css
deleted file mode 100644
index e69de29..0000000
diff --git a/site/plugins/your-plugin/index.js b/site/plugins/your-plugin/index.js
deleted file mode 100644
index a149249..0000000
--- a/site/plugins/your-plugin/index.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){"use strict";function d(n,t,o,c,s,r,i,a){var e=typeof n=="function"?n.options:n;return t&&(e.render=t,e.staticRenderFns=o,e._compiled=!0),{exports:n,options:e}}const l={__name:"Web2PrintBtn",props:{htmlPageString:String},setup(n){const{htmlPageString:t}=n;async function o(){const r=await fetch("https://web2print.studio-variable.com",{method:"POST","Content-Type":"application/pdf","X-API-Key":"25377ab6e2153b159d1d5fa22501228810b6aec9d63346bd0614045dc167061c",body:{html:t}});if(r.ok){const i=await r.blob(),a=window.URL.createObjectURL(i),e=document.createElement("a");e.href=a,e.download="document.pdf",e.click()}else{const i=await r.json();console.error("Erreur:",i)}}return{__sfc:!0,getPdf:o}}};var u=function(){var t=this,o=t._self._c,c=t._self._setupProxy;return o("k-button",{attrs:{variant:"filled"},on:{click:function(s){return c.getPdf()}}},[t._v("Button")])},f=[],_=d(l,u,f);const p=_.exports;window.panel.plugin("studio-variable/web2print",{fields:{web2print:p}})})();
diff --git a/site/plugins/your-plugin/index.php b/site/plugins/your-plugin/index.php
deleted file mode 100644
index 2b8a31b..0000000
--- a/site/plugins/your-plugin/index.php
+++ /dev/null
@@ -1,16 +0,0 @@
- [
- 'web2print' => [
- 'props' => [
- 'options' => function ($options = []) {
- return $options;
- },
- 'value' => function ($value = []) {
- return $value;
- }
- ],
- ],
- ],
-]);
diff --git a/site/plugins/your-plugin/package.json b/site/plugins/your-plugin/package.json
deleted file mode 100644
index 1913c34..0000000
--- a/site/plugins/your-plugin/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "getkirby/pluginkit",
- "description": "Kirby Example Plugin",
- "license": "MIT",
- "type": "kirby-plugin",
- "version": "1.0.0",
- "scripts": {
- "dev": "npx -y kirbyup src/index.js --watch",
- "serve": "npx -y kirbyup serve src/index.js",
- "build": "npx -y kirbyup src/index.js"
- }
-}
diff --git a/site/plugins/your-plugin/src/components/Web2printField.vue b/site/plugins/your-plugin/src/components/Web2printField.vue
deleted file mode 100644
index 3d0d1af..0000000
--- a/site/plugins/your-plugin/src/components/Web2printField.vue
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/site/plugins/your-plugin/src/index.js b/site/plugins/your-plugin/src/index.js
deleted file mode 100644
index 288e91c..0000000
--- a/site/plugins/your-plugin/src/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import ToggleGroup from "./components/Web2printField.vue";
-
-window.panel.plugin("studio-variable/web2print", {
- fields: {
- web2print: ToggleGroup
- }
-});
From fcf47818d0b64aec6751c4a1949807828c9e4c22 Mon Sep 17 00:00:00 2001
From: antonin gallon
Date: Wed, 3 Dec 2025 16:08:25 +0100
Subject: [PATCH 09/75] =?UTF-8?q?Fixes=20#43=20-=20Standardisation=20des?=
=?UTF-8?q?=20titres=20=20faite=20avec=20correction=20en=20h1=20de=20ce=20?=
=?UTF-8?q?qui=20ne=20devait=20pas=20=C3=AAtre=20des=20h2=20et=20--font-si?=
=?UTF-8?q?ze-xl?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitlab-ci.yml | 2 +-
assets/css/src/texts.css | 1 +
site/templates/author.php | 2 +-
site/templates/error.php | 4 +---
site/templates/grid.php | 8 +++++---
site/templates/home.php | 6 +++++-
site/templates/info.php | 4 +---
site/templates/newsletter.php | 2 +-
8 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 59cab4a..37636c1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,5 @@
image: node:latest
-#test
+
stages:
- build and deploy
diff --git a/assets/css/src/texts.css b/assets/css/src/texts.css
index 6bdb636..b86f747 100644
--- a/assets/css/src/texts.css
+++ b/assets/css/src/texts.css
@@ -64,6 +64,7 @@ article h2 {
box-sizing: border-box;
font-weight: var(--font-weight-light);
margin-bottom: var(--unit--vertical);
+ font-size: var(--font-size-xl);
}
.text__title {
diff --git a/site/templates/author.php b/site/templates/author.php
index d002cf9..d70a54a 100644
--- a/site/templates/author.php
+++ b/site/templates/author.php
@@ -4,7 +4,7 @@
- = $page->title() ?>
+ = $page->title() ?>
= $page->presentation() ?>
diff --git a/site/templates/error.php b/site/templates/error.php
index b930d26..780ff03 100644
--- a/site/templates/error.php
+++ b/site/templates/error.php
@@ -3,9 +3,7 @@
true], slots: true) ?>
-
- = $page->title() ?>
+ = $page->title() ?>
diff --git a/site/templates/grid.php b/site/templates/grid.php
index 2f0a22a..efd8f5e 100644
--- a/site/templates/grid.php
+++ b/site/templates/grid.php
@@ -3,9 +3,7 @@
true], slots: true) ?>
-
- = $page->title() ?>
+ = $page->title() ?>
par
= $page->category() ?>
+
+ imprimé le = \Kirby\Toolkit\Date::today()->format('d/m/Y'); ?>
+ = $page->url() ?>
+
diff --git a/site/templates/home.php b/site/templates/home.php
index 8b0d181..fc9dcaf 100644
--- a/site/templates/home.php
+++ b/site/templates/home.php
@@ -9,8 +9,12 @@
class="no-underline home-baseline"
title="lire l'éditorial"
>
- = $site->subtitle()->inline() ?>
+ = $site->subtitle()->inline() ?>
+
+ imprimé le = \Kirby\Toolkit\Date::today()->format('d/m/Y'); ?>
+ = $page->url() ?>
+
true], slots: true) ?>
-
- = $page->title() ?>
+ = $page->title() ?>
= $page->body() ?>
diff --git a/site/templates/newsletter.php b/site/templates/newsletter.php
index 7e1e5b8..ff9552f 100644
--- a/site/templates/newsletter.php
+++ b/site/templates/newsletter.php
@@ -3,7 +3,7 @@
true), slots: true) ?>
- = $page->title() ?>
+ = $page->title() ?>
= $page->body() ?>