diff --git a/development/config/import.mjs b/development/config/import.mjs index f6580e704dd6e7b5c13ed3fd72aa2df230263fdc..c4926dc59f8f08b6d07eb43bea8d88e4ed1df6a6 100644 --- a/development/config/import.mjs +++ b/development/config/import.mjs @@ -1,8 +1,8 @@ export const projectRoot = "/home/vs/workspaces/oss/monster/monster"; export const sourcePath = "/home/vs/workspaces/oss/monster/monster/source"; export const developmentPath = "/home/vs/workspaces/oss/monster/monster/development"; -export const pnpxBin = "/nix/store/hd8c9fhdqv36nyh5zg4z32ccficlz9n8-pnpm-8.15.5/bin/pnpx"; -export const nodeBin = "/nix/store/k5inwzpp6a0295pd3nfckk9hq8wmifhz-nodejs-20.15.1/bin/node"; +export const pnpxBin = "/nix/store/2viji2z5i8ifq0ymhir2z8yyk1g29ddz-pnpm-8.15.5/bin/pnpx"; +export const nodeBin = "/nix/store/if6aqyl3sl0hz14a12mndj35swb1mcwi-nodejs-20.17.0/bin/node"; export const license = "/**" + "\n" + " * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved." + "\n" + " * Node module: @schukai/monster" + "\n" + diff --git a/development/issues/closed/259.html b/development/issues/closed/259.html new file mode 100644 index 0000000000000000000000000000000000000000..b2858cb007f60636b116fdb53b80672c1cc8a000 --- /dev/null +++ b/development/issues/closed/259.html @@ -0,0 +1,117 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>copy control should close after leave div #259</title> + <script src="./259.mjs" type="module"></script> +</head> +<body> + <h1>copy control should close after leave div #259</h1> + <p></p> + <ul> + <li><a href="https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/259">Issue #259</a></li> + <li><a href="/">Back to overview</a></li> + </ul> + <main> + + + <monster-copy> + <span> das ist der text 1</span> + </monster-copy> + <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> <br> + <br> + <br> + <monster-copy> + das ist der text 2 + </monster-copy> + + + </main> +</body> +</html> diff --git a/development/issues/closed/259.mjs b/development/issues/closed/259.mjs new file mode 100644 index 0000000000000000000000000000000000000000..59eccb40d89838372e0c9b48ed3258e74e67562a --- /dev/null +++ b/development/issues/closed/259.mjs @@ -0,0 +1,15 @@ +/** +* @file development/issues/open/259.mjs +* @url https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/259 +* @description copy control should close after leave div +* @issue 259 +*/ + +import "../../../source/components/style/property.pcss"; +import "../../../source/components/style/link.pcss"; +import "../../../source/components/style/color.pcss"; +import "../../../source/components/style/theme.pcss"; +import "../../../source/components/style/normalize.pcss"; +import "../../../source/components/style/typography.pcss"; +import "../../../source/components/content/copy.mjs"; + diff --git a/flake.lock b/flake.lock index 0bc61a9356ced33ec95f18e07ab00e65a8873eb9..1a499d0e7aefad066e169f4fe49bacdb2a0e34d0 100644 --- a/flake.lock +++ b/flake.lock @@ -5,7 +5,9 @@ "commonFlake": "commonFlake", "flake-utils": "flake-utils", "flakeUtils": "flakeUtils", - "nixpkgs": "nixpkgs_2", + "nixpkgs": [ + "nixpkgs" + ], "nixpkgsUnstable": "nixpkgsUnstable", "versionFlake": "versionFlake" }, @@ -45,7 +47,9 @@ }, "commonFlake_2": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "dir": "common", @@ -148,22 +152,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1726447378, - "narHash": "sha256-2yV8nmYE1p9lfmLHhOCbYwQC/W8WYfGQABoGzJOb1JQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "086b448a5d54fd117f4dc2dee55c9f0ff461bdc1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1704145853, "narHash": "sha256-G/1AMt9ibpeMlcxvD1vNaC8imGaK+g7zZ99e29BLgWw=", @@ -178,28 +166,13 @@ "type": "indirect" } }, - "nixpkgs_4": { - "locked": { - "lastModified": 1714971268, - "narHash": "sha256-IKwMSwHj9+ec660l+I4tki/1NRoeGpyA2GdtdYpAgEw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "27c13997bf450a01219899f5a83bd6ffbfc70d3c", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.11", - "type": "indirect" - } - }, - "nixpkgs_5": { + "nixpkgs_3": { "locked": { - "lastModified": 1728193676, - "narHash": "sha256-PbDWAIjKJdlVg+qQRhzdSor04bAPApDqIv2DofTyynk=", + "lastModified": 1731239293, + "narHash": "sha256-q2yjIWFFcTzp5REWQUOU9L6kHdCDmFDpqeix86SOvDc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6", + "rev": "9256f7c71a195ebe7a218043d9f93390d49e6884", "type": "github" }, "original": { @@ -209,27 +182,12 @@ "type": "github" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1704145853, - "narHash": "sha256-G/1AMt9ibpeMlcxvD1vNaC8imGaK+g7zZ99e29BLgWw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2d2ea8eab9e400618748ab1a6a108255233b602c", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.11", - "type": "indirect" - } - }, "root": { "inputs": { "certificatesFlake": "certificatesFlake", "commonFlake": "commonFlake_2", "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_3", "versionFlake": "versionFlake_2" } }, @@ -280,7 +238,7 @@ }, "versionFlake": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1716914109, @@ -298,7 +256,9 @@ }, "versionFlake_2": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1716914109, diff --git a/flake.nix b/flake.nix index 5406bbc1fd34086d485ed5b621b9388cfed8452a..0b22742a927987e2f64b3b1e6bd7bee66e00ea70 100644 --- a/flake.nix +++ b/flake.nix @@ -8,16 +8,19 @@ commonFlake = { url = "git+https://gitlab.schukai.com/schukai/entwicklung/nix-flakes.git?dir=common"; flake = true; + inputs.nixpkgs.follows = "nixpkgs"; }; versionFlake = { url = "git+https://gitlab.schukai.com/oss/utilities/version.git"; flake = true; + inputs.nixpkgs.follows = "nixpkgs"; }; certificatesFlake = { url = "git+https://gitlab.schukai.com/alvine/certificates.git"; flake = true; + inputs.nixpkgs.follows = "nixpkgs"; }; }; diff --git a/nix/config/release.nix b/nix/config/release.nix index 3a6377bc39e4fbdf3f2467ed42d402e8a2bc1b1e..05df912d710defb37f020289696ca4dc3d1f2e4a 100644 --- a/nix/config/release.nix +++ b/nix/config/release.nix @@ -3,4 +3,4 @@ commit = "f09bcc861b02213b8e7d1d409a0788cf44ba222c"; name = "Monster"; mnemonic = "monster"; -} \ No newline at end of file +} diff --git a/package.json b/package.json index 4ffa3d5be47f5e73137599535379ae40de5b79af..9181ff0df6cf3676508fb005dbc02e579b822fa5 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "jsdom-global": "^3.0.2", "mocha": "^10.8.2", "playwright": "^1.48.2", - "postcss": "^8.4.47", + "postcss": "^8.4.49", "postcss-fluid": "^1.4.2", "postcss-for": "^2.1.1", "postcss-import": "^16.1.0", @@ -82,7 +82,7 @@ "postcss-responsive-type": "^1.0.0", "postcss-rtlcss": "^5.5.0", "postcss-strip-units": "^2.0.1", - "puppeteer": "^23.7.0", + "puppeteer": "^23.7.1", "sinon": "^19.0.2", "turbowatch": "^2.29.4", "url": "^0.11.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e7472cf14e017b3d9fe42769e0b13ba36a7608b..a507b0d508832882d20f5f3602c123520736356d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,7 +32,7 @@ importers: version: 5.12.4 autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.47) + version: 10.4.20(postcss@8.4.49) browserslist: specifier: ^4.24.2 version: 4.24.2 @@ -53,7 +53,7 @@ importers: version: 0.0.2 cssnano: specifier: ^7.0.6 - version: 7.0.6(postcss@8.4.47) + version: 7.0.6(postcss@8.4.49) dom-storage: specifier: ^2.1.0 version: 2.1.0 @@ -94,8 +94,8 @@ importers: specifier: ^1.48.2 version: 1.48.2 postcss: - specifier: ^8.4.47 - version: 8.4.47 + specifier: ^8.4.49 + version: 8.4.49 postcss-fluid: specifier: ^1.4.2 version: 1.4.2 @@ -104,34 +104,34 @@ importers: version: 2.1.1 postcss-import: specifier: ^16.1.0 - version: 16.1.0(postcss@8.4.47) + version: 16.1.0(postcss@8.4.49) postcss-load-config: specifier: ^6.0.1 - version: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0) + version: 6.0.1(jiti@1.21.6)(postcss@8.4.49)(yaml@2.6.0) postcss-mixins: specifier: ^11.0.3 - version: 11.0.3(postcss@8.4.47) + version: 11.0.3(postcss@8.4.49) postcss-nested: specifier: ^6.2.0 - version: 6.2.0(postcss@8.4.47) + version: 6.2.0(postcss@8.4.49) postcss-nesting: specifier: ^13.0.1 - version: 13.0.1(postcss@8.4.47) + version: 13.0.1(postcss@8.4.49) postcss-normalize: specifier: ^13.0.1 - version: 13.0.1(browserslist@4.24.2)(postcss@8.4.47) + version: 13.0.1(browserslist@4.24.2)(postcss@8.4.49) postcss-responsive-type: specifier: ^1.0.0 version: 1.0.0 postcss-rtlcss: specifier: ^5.5.0 - version: 5.5.0(postcss@8.4.47) + version: 5.5.0(postcss@8.4.49) postcss-strip-units: specifier: ^2.0.1 version: 2.0.1 puppeteer: - specifier: ^23.7.0 - version: 23.7.0(typescript@5.4.2) + specifier: ^23.7.1 + version: 23.7.1(typescript@5.4.2) sinon: specifier: ^19.0.2 version: 19.0.2 @@ -149,25 +149,25 @@ importers: version: 0.12.5 vite: specifier: 5.4.8 - version: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + version: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-banner: specifier: ^0.8.0 version: 0.8.0 vite-plugin-directory-index: specifier: ^3.0.1 - version: 3.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)) + version: 3.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite-plugin-list-directory-contents: specifier: ^1.4.5 - version: 1.4.5(@types/node@18.19.64)(rollup@4.24.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + version: 1.4.5(@types/node@18.19.64)(rollup@4.25.0)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) vite-plugin-minify: specifier: ^2.0.1 - version: 2.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)) + version: 2.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite-plugin-mock: specifier: ^3.0.2 - version: 3.0.2(esbuild@0.24.0)(mockjs@1.1.0)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)) + version: 3.0.2(esbuild@0.24.0)(mockjs@1.1.0)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vite-plugin-terminal: specifier: ^1.2.0 - version: 1.2.0(rollup@4.24.4)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)) + version: 1.2.0(rollup@4.25.0)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) ws: specifier: ^8.18.0 version: 8.18.0 @@ -789,93 +789,93 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.24.4': - resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} + '@rollup/rollup-android-arm-eabi@4.25.0': + resolution: {integrity: sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.24.4': - resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} + '@rollup/rollup-android-arm64@4.25.0': + resolution: {integrity: sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.24.4': - resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} + '@rollup/rollup-darwin-arm64@4.25.0': + resolution: {integrity: sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.4': - resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} + '@rollup/rollup-darwin-x64@4.25.0': + resolution: {integrity: sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.24.4': - resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} + '@rollup/rollup-freebsd-arm64@4.25.0': + resolution: {integrity: sha512-xpEIXhiP27EAylEpreCozozsxWQ2TJbOLSivGfXhU4G1TBVEYtUPi2pOZBnvGXHyOdLAUUhPnJzH3ah5cqF01g==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.24.4': - resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} + '@rollup/rollup-freebsd-x64@4.25.0': + resolution: {integrity: sha512-sC5FsmZGlJv5dOcURrsnIK7ngc3Kirnx3as2XU9uER+zjfyqIjdcMVgzy4cOawhsssqzoAX19qmxgJ8a14Qrqw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.24.4': - resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} + '@rollup/rollup-linux-arm-gnueabihf@4.25.0': + resolution: {integrity: sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.4': - resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} + '@rollup/rollup-linux-arm-musleabihf@4.25.0': + resolution: {integrity: sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.4': - resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} + '@rollup/rollup-linux-arm64-gnu@4.25.0': + resolution: {integrity: sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.4': - resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} + '@rollup/rollup-linux-arm64-musl@4.25.0': + resolution: {integrity: sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': - resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.25.0': + resolution: {integrity: sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.4': - resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} + '@rollup/rollup-linux-riscv64-gnu@4.25.0': + resolution: {integrity: sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.4': - resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} + '@rollup/rollup-linux-s390x-gnu@4.25.0': + resolution: {integrity: sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.4': - resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} + '@rollup/rollup-linux-x64-gnu@4.25.0': + resolution: {integrity: sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.4': - resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} + '@rollup/rollup-linux-x64-musl@4.25.0': + resolution: {integrity: sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.4': - resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} + '@rollup/rollup-win32-arm64-msvc@4.25.0': + resolution: {integrity: sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.4': - resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} + '@rollup/rollup-win32-ia32-msvc@4.25.0': + resolution: {integrity: sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.4': - resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} + '@rollup/rollup-win32-x64-msvc@4.25.0': + resolution: {integrity: sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==} cpu: [x64] os: [win32] @@ -1193,8 +1193,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001677: - resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==} + caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} chai-dom@1.12.0: resolution: {integrity: sha512-pLP8h6IBR8z1AdeQ+EMcJ7dXPdsax/1Q7gdGZjsnAmSBl3/gItQUYSCo32br1qOy4SlcBjvqId7ilAf3uJ2K1w==} @@ -1319,8 +1319,8 @@ packages: typescript: optional: true - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} crypt@0.0.2: @@ -1480,8 +1480,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.51: - resolution: {integrity: sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==} + electron-to-chromium@1.5.56: + resolution: {integrity: sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==} element-internals-polyfill@1.3.12: resolution: {integrity: sha512-KW1k+cMGwXlx3X9nqhgmuElAfR/c/ccFt0pG4KpwK++Mx9Y+mPExxJW+jgQnqux/NQrJejgOxxg4Naf3f6y67Q==} @@ -2217,8 +2217,8 @@ packages: nwsapi@2.2.13: resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} on-finished@2.3.0: @@ -2619,8 +2619,8 @@ packages: resolution: {integrity: sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==} engines: {node: '>=4.0.0'} - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} pretty-bytes@6.1.1: @@ -2661,12 +2661,12 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer-core@23.7.0: - resolution: {integrity: sha512-0kC81k3K6n6Upg/k04xv+Mi8yy62bNAJiK7LCA71zfq2XKEo9WAzas1t6UQiLgaNHtGNKM0d1KbR56p/+mgEiQ==} + puppeteer-core@23.7.1: + resolution: {integrity: sha512-Om/qCZhd+HLoAr7GltrRAZpS3uOXwHu7tXAoDbNcJADHjG2zeAlDArgyIPXYGG4QB/EQUHk13Q6RklNxGM73Pg==} engines: {node: '>=18'} - puppeteer@23.7.0: - resolution: {integrity: sha512-YTgo0KFe8NtBcI9hCu/xsjPFumEhu8kA7QqLr6Uh79JcEsUcUt+go966NgKYXJ+P3Fuefrzn2SXwV3cyOe/UcQ==} + puppeteer@23.7.1: + resolution: {integrity: sha512-jS6XehagMvxQ12etwY/4EOYZ0Sm8GAsrtGhdQn4AqpJAyHc3RYl7tGd4QYh/MmShDw8sF9FWYQqGidhoXaqokQ==} engines: {node: '>=18'} hasBin: true @@ -2757,8 +2757,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.24.4: - resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} + rollup@4.25.0: + resolution: {integrity: sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3012,11 +3012,11 @@ packages: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} - tldts-core@6.1.58: - resolution: {integrity: sha512-dR936xmhBm7AeqHIhCWwK765gZ7dFyL+IqLSFAjJbFlUXGMLCb8i2PzlzaOuWBuplBTaBYseSb565nk/ZEM0Bg==} + tldts-core@6.1.60: + resolution: {integrity: sha512-XHjoxak8SFQnHnmYHb3PcnW5TZ+9ErLZemZei3azuIRhQLw4IExsVbL3VZJdHcLeNaXq6NqawgpDPpjBOg4B5g==} - tldts@6.1.58: - resolution: {integrity: sha512-MQJrJhjHOYGYb8DobR6Y4AdDbd4TYkyQ+KBDVc5ODzs1cbrvPpfN1IemYi9jfipJ/vR1YWvrDli0hg1y19VRoA==} + tldts@6.1.60: + resolution: {integrity: sha512-TYVHm7G9NCnhgqOsFalbX6MG1Po5F4efF+tLfoeiOGQq48Oqgwcgz8upY2R1BHWa4aDrj28RYx0dkYJ63qCFMg==} hasBin: true to-regex-range@5.0.1: @@ -3810,74 +3810,74 @@ snapshots: - supports-color - utf-8-validate - '@rollup/plugin-strip@3.0.4(rollup@4.24.4)': + '@rollup/plugin-strip@3.0.4(rollup@4.25.0)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.24.4) + '@rollup/pluginutils': 5.1.3(rollup@4.25.0) estree-walker: 2.0.2 magic-string: 0.30.12 optionalDependencies: - rollup: 4.24.4 + rollup: 4.25.0 - '@rollup/pluginutils@5.1.3(rollup@4.24.4)': + '@rollup/pluginutils@5.1.3(rollup@4.25.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.24.4 + rollup: 4.25.0 - '@rollup/rollup-android-arm-eabi@4.24.4': + '@rollup/rollup-android-arm-eabi@4.25.0': optional: true - '@rollup/rollup-android-arm64@4.24.4': + '@rollup/rollup-android-arm64@4.25.0': optional: true - '@rollup/rollup-darwin-arm64@4.24.4': + '@rollup/rollup-darwin-arm64@4.25.0': optional: true - '@rollup/rollup-darwin-x64@4.24.4': + '@rollup/rollup-darwin-x64@4.25.0': optional: true - '@rollup/rollup-freebsd-arm64@4.24.4': + '@rollup/rollup-freebsd-arm64@4.25.0': optional: true - '@rollup/rollup-freebsd-x64@4.24.4': + '@rollup/rollup-freebsd-x64@4.25.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + '@rollup/rollup-linux-arm-gnueabihf@4.25.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.4': + '@rollup/rollup-linux-arm-musleabihf@4.25.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.4': + '@rollup/rollup-linux-arm64-gnu@4.25.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.4': + '@rollup/rollup-linux-arm64-musl@4.25.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + '@rollup/rollup-linux-powerpc64le-gnu@4.25.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.4': + '@rollup/rollup-linux-riscv64-gnu@4.25.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.4': + '@rollup/rollup-linux-s390x-gnu@4.25.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.4': + '@rollup/rollup-linux-x64-gnu@4.25.0': optional: true - '@rollup/rollup-linux-x64-musl@4.24.4': + '@rollup/rollup-linux-x64-musl@4.25.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.4': + '@rollup/rollup-win32-arm64-msvc@4.25.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.4': + '@rollup/rollup-win32-ia32-msvc@4.25.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.4': + '@rollup/rollup-win32-x64-msvc@4.25.0': optional: true '@rushstack/node-core-library@3.66.1(@types/node@18.19.64)': @@ -3994,11 +3994,11 @@ snapshots: '@types/node': 22.9.0 optional: true - '@wesbos/code-icons@1.2.4(rollup@4.24.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)': + '@wesbos/code-icons@1.2.4(rollup@4.25.0)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)': dependencies: '@types/node': 18.19.64 - vite: 4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) - vite-plugin-dts: 1.7.3(@types/node@18.19.64)(rollup@4.24.4)(vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)) + vite: 4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite-plugin-dts: 1.7.3(@types/node@18.19.64)(rollup@4.25.0)(vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vscode-icons-js: 11.6.1 transitivePeerDependencies: - less @@ -4093,14 +4093,14 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.20(postcss@8.4.47): + autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001677 + caniuse-lite: 1.0.30001680 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -4161,8 +4161,8 @@ snapshots: browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001677 - electron-to-chromium: 1.5.51 + caniuse-lite: 1.0.30001680 + electron-to-chromium: 1.5.56 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.2) @@ -4218,11 +4218,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.2 - caniuse-lite: 1.0.30001677 + caniuse-lite: 1.0.30001680 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001677: {} + caniuse-lite@1.0.30001680: {} chai-dom@1.12.0(chai@5.1.2): dependencies: @@ -4353,7 +4353,7 @@ snapshots: optionalDependencies: typescript: 5.4.2 - cross-spawn@7.0.3: + cross-spawn@7.0.5: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -4361,9 +4361,9 @@ snapshots: crypt@0.0.2: {} - css-declaration-sorter@7.2.0(postcss@8.4.47): + css-declaration-sorter@7.2.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 css-select@5.1.0: dependencies: @@ -4387,49 +4387,49 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.6(postcss@8.4.47): + cssnano-preset-default@7.0.6(postcss@8.4.49): dependencies: browserslist: 4.24.2 - css-declaration-sorter: 7.2.0(postcss@8.4.47) - cssnano-utils: 5.0.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-calc: 10.0.2(postcss@8.4.47) - postcss-colormin: 7.0.2(postcss@8.4.47) - postcss-convert-values: 7.0.4(postcss@8.4.47) - postcss-discard-comments: 7.0.3(postcss@8.4.47) - postcss-discard-duplicates: 7.0.1(postcss@8.4.47) - postcss-discard-empty: 7.0.0(postcss@8.4.47) - postcss-discard-overridden: 7.0.0(postcss@8.4.47) - postcss-merge-longhand: 7.0.4(postcss@8.4.47) - postcss-merge-rules: 7.0.4(postcss@8.4.47) - postcss-minify-font-values: 7.0.0(postcss@8.4.47) - postcss-minify-gradients: 7.0.0(postcss@8.4.47) - postcss-minify-params: 7.0.2(postcss@8.4.47) - postcss-minify-selectors: 7.0.4(postcss@8.4.47) - postcss-normalize-charset: 7.0.0(postcss@8.4.47) - postcss-normalize-display-values: 7.0.0(postcss@8.4.47) - postcss-normalize-positions: 7.0.0(postcss@8.4.47) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.47) - postcss-normalize-string: 7.0.0(postcss@8.4.47) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.47) - postcss-normalize-unicode: 7.0.2(postcss@8.4.47) - postcss-normalize-url: 7.0.0(postcss@8.4.47) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.47) - postcss-ordered-values: 7.0.1(postcss@8.4.47) - postcss-reduce-initial: 7.0.2(postcss@8.4.47) - postcss-reduce-transforms: 7.0.0(postcss@8.4.47) - postcss-svgo: 7.0.1(postcss@8.4.47) - postcss-unique-selectors: 7.0.3(postcss@8.4.47) - - cssnano-utils@5.0.0(postcss@8.4.47): - dependencies: - postcss: 8.4.47 - - cssnano@7.0.6(postcss@8.4.47): - dependencies: - cssnano-preset-default: 7.0.6(postcss@8.4.47) + css-declaration-sorter: 7.2.0(postcss@8.4.49) + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-calc: 10.0.2(postcss@8.4.49) + postcss-colormin: 7.0.2(postcss@8.4.49) + postcss-convert-values: 7.0.4(postcss@8.4.49) + postcss-discard-comments: 7.0.3(postcss@8.4.49) + postcss-discard-duplicates: 7.0.1(postcss@8.4.49) + postcss-discard-empty: 7.0.0(postcss@8.4.49) + postcss-discard-overridden: 7.0.0(postcss@8.4.49) + postcss-merge-longhand: 7.0.4(postcss@8.4.49) + postcss-merge-rules: 7.0.4(postcss@8.4.49) + postcss-minify-font-values: 7.0.0(postcss@8.4.49) + postcss-minify-gradients: 7.0.0(postcss@8.4.49) + postcss-minify-params: 7.0.2(postcss@8.4.49) + postcss-minify-selectors: 7.0.4(postcss@8.4.49) + postcss-normalize-charset: 7.0.0(postcss@8.4.49) + postcss-normalize-display-values: 7.0.0(postcss@8.4.49) + postcss-normalize-positions: 7.0.0(postcss@8.4.49) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49) + postcss-normalize-string: 7.0.0(postcss@8.4.49) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49) + postcss-normalize-unicode: 7.0.2(postcss@8.4.49) + postcss-normalize-url: 7.0.0(postcss@8.4.49) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.49) + postcss-ordered-values: 7.0.1(postcss@8.4.49) + postcss-reduce-initial: 7.0.2(postcss@8.4.49) + postcss-reduce-transforms: 7.0.0(postcss@8.4.49) + postcss-svgo: 7.0.1(postcss@8.4.49) + postcss-unique-selectors: 7.0.3(postcss@8.4.49) + + cssnano-utils@5.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + cssnano@7.0.6(postcss@8.4.49): + dependencies: + cssnano-preset-default: 7.0.6(postcss@8.4.49) lilconfig: 3.1.2 - postcss: 8.4.47 + postcss: 8.4.49 csso@5.0.5: dependencies: @@ -4525,7 +4525,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.51: {} + electron-to-chromium@1.5.56: {} element-internals-polyfill@1.3.12: {} @@ -4775,7 +4775,7 @@ snapshots: foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 signal-exit: 4.1.0 form-data@4.0.1: @@ -5327,7 +5327,7 @@ snapshots: nwsapi@2.2.13: {} - object-inspect@1.13.2: {} + object-inspect@1.13.3: {} on-finished@2.3.0: dependencies: @@ -5446,47 +5446,47 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-browser-comments@6.0.1(browserslist@4.24.2)(postcss@8.4.47): + postcss-browser-comments@6.0.1(browserslist@4.24.2)(postcss@8.4.49): dependencies: browserslist: 4.24.2 - postcss: 8.4.47 + postcss: 8.4.49 - postcss-calc@10.0.2(postcss@8.4.47): + postcss-calc@10.0.2(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.4.47): + postcss-colormin@7.0.2(postcss@8.4.49): dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.4.47): + postcss-convert-values@7.0.4(postcss@8.4.49): dependencies: browserslist: 4.24.2 - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.3(postcss@8.4.47): + postcss-discard-comments@7.0.3(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 - postcss-discard-duplicates@7.0.1(postcss@8.4.47): + postcss-discard-duplicates@7.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss-discard-empty@7.0.0(postcss@8.4.47): + postcss-discard-empty@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss-discard-overridden@7.0.0(postcss@8.4.47): + postcss-discard-overridden@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-fluid@1.4.2: {} @@ -5495,162 +5495,162 @@ snapshots: postcss: 5.2.18 postcss-simple-vars: 2.0.0 - postcss-import@16.1.0(postcss@8.4.47): + postcss-import@16.1.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.47): + postcss-js@4.0.1(postcss@8.4.49): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.47 + postcss: 8.4.49 - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(yaml@2.6.0): + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.49)(yaml@2.6.0): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 1.21.6 - postcss: 8.4.47 + postcss: 8.4.49 yaml: 2.6.0 - postcss-merge-longhand@7.0.4(postcss@8.4.47): + postcss-merge-longhand@7.0.4(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.4.47) + stylehacks: 7.0.4(postcss@8.4.49) - postcss-merge-rules@7.0.4(postcss@8.4.47): + postcss-merge-rules@7.0.4(postcss@8.4.49): dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.47) - postcss: 8.4.47 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@7.0.0(postcss@8.4.47): + postcss-minify-font-values@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.4.47): + postcss-minify-gradients@7.0.0(postcss@8.4.49): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.47) - postcss: 8.4.47 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.4.47): + postcss-minify-params@7.0.2(postcss@8.4.49): dependencies: browserslist: 4.24.2 - cssnano-utils: 5.0.0(postcss@8.4.47) - postcss: 8.4.47 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.0.4(postcss@8.4.47): + postcss-minify-selectors@7.0.4(postcss@8.4.49): dependencies: cssesc: 3.0.0 - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 - postcss-mixins@11.0.3(postcss@8.4.47): + postcss-mixins@11.0.3(postcss@8.4.49): dependencies: - postcss: 8.4.47 - postcss-js: 4.0.1(postcss@8.4.47) - postcss-simple-vars: 7.0.1(postcss@8.4.47) - sugarss: 4.0.1(postcss@8.4.47) + postcss: 8.4.49 + postcss-js: 4.0.1(postcss@8.4.49) + postcss-simple-vars: 7.0.1(postcss@8.4.49) + sugarss: 4.0.1(postcss@8.4.49) tinyglobby: 0.2.10 - postcss-nested@6.2.0(postcss@8.4.47): + postcss-nested@6.2.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 - postcss-nesting@13.0.1(postcss@8.4.47): + postcss-nesting@13.0.1(postcss@8.4.49): dependencies: '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.0.0) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 7.0.0 - postcss-normalize-charset@7.0.0(postcss@8.4.47): + postcss-normalize-charset@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss-normalize-display-values@7.0.0(postcss@8.4.47): + postcss-normalize-display-values@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.4.47): + postcss-normalize-positions@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.4.47): + postcss-normalize-repeat-style@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.4.47): + postcss-normalize-string@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.4.47): + postcss-normalize-timing-functions@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.4.47): + postcss-normalize-unicode@7.0.2(postcss@8.4.49): dependencies: browserslist: 4.24.2 - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.4.47): + postcss-normalize-url@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.4.47): + postcss-normalize-whitespace@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-normalize@13.0.1(browserslist@4.24.2)(postcss@8.4.47): + postcss-normalize@13.0.1(browserslist@4.24.2)(postcss@8.4.49): dependencies: '@csstools/normalize.css': 12.1.1 browserslist: 4.24.2 - postcss: 8.4.47 - postcss-browser-comments: 6.0.1(browserslist@4.24.2)(postcss@8.4.47) + postcss: 8.4.49 + postcss-browser-comments: 6.0.1(browserslist@4.24.2)(postcss@8.4.49) sanitize.css: 13.0.0 - postcss-ordered-values@7.0.1(postcss@8.4.47): + postcss-ordered-values@7.0.1(postcss@8.4.49): dependencies: - cssnano-utils: 5.0.0(postcss@8.4.47) - postcss: 8.4.47 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 postcss-value-parser: 4.2.0 - postcss-reduce-initial@7.0.2(postcss@8.4.47): + postcss-reduce-initial@7.0.2(postcss@8.4.49): dependencies: browserslist: 4.24.2 caniuse-api: 3.0.0 - postcss: 8.4.47 + postcss: 8.4.49 - postcss-reduce-transforms@7.0.0(postcss@8.4.47): + postcss-reduce-transforms@7.0.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 postcss-responsive-type@1.0.0: dependencies: postcss: 6.0.23 - postcss-rtlcss@5.5.0(postcss@8.4.47): + postcss-rtlcss@5.5.0(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 rtlcss: 4.3.0 postcss-selector-parser@6.1.2: @@ -5667,24 +5667,24 @@ snapshots: dependencies: postcss: 5.2.18 - postcss-simple-vars@7.0.1(postcss@8.4.47): + postcss-simple-vars@7.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-strip-units@2.0.1: dependencies: postcss: 6.0.23 reduce-function-call: 1.0.3 - postcss-svgo@7.0.1(postcss@8.4.47): + postcss-svgo@7.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@7.0.3(postcss@8.4.47): + postcss-unique-selectors@7.0.3(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} @@ -5702,7 +5702,7 @@ snapshots: source-map: 0.6.1 supports-color: 5.5.0 - postcss@8.4.47: + postcss@8.4.49: dependencies: nanoid: 3.3.7 picocolors: 1.1.1 @@ -5749,7 +5749,7 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@23.7.0: + puppeteer-core@23.7.1: dependencies: '@puppeteer/browsers': 2.4.1 chromium-bidi: 0.8.0(devtools-protocol@0.0.1354347) @@ -5762,13 +5762,13 @@ snapshots: - supports-color - utf-8-validate - puppeteer@23.7.0(typescript@5.4.2): + puppeteer@23.7.1(typescript@5.4.2): dependencies: '@puppeteer/browsers': 2.4.1 chromium-bidi: 0.8.0(devtools-protocol@0.0.1354347) cosmiconfig: 9.0.0(typescript@5.4.2) devtools-protocol: 0.0.1354347 - puppeteer-core: 23.7.0 + puppeteer-core: 23.7.1 typed-query-selector: 2.12.0 transitivePeerDependencies: - bufferutil @@ -5857,28 +5857,28 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.24.4: + rollup@4.25.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.4 - '@rollup/rollup-android-arm64': 4.24.4 - '@rollup/rollup-darwin-arm64': 4.24.4 - '@rollup/rollup-darwin-x64': 4.24.4 - '@rollup/rollup-freebsd-arm64': 4.24.4 - '@rollup/rollup-freebsd-x64': 4.24.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.4 - '@rollup/rollup-linux-arm-musleabihf': 4.24.4 - '@rollup/rollup-linux-arm64-gnu': 4.24.4 - '@rollup/rollup-linux-arm64-musl': 4.24.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 - '@rollup/rollup-linux-riscv64-gnu': 4.24.4 - '@rollup/rollup-linux-s390x-gnu': 4.24.4 - '@rollup/rollup-linux-x64-gnu': 4.24.4 - '@rollup/rollup-linux-x64-musl': 4.24.4 - '@rollup/rollup-win32-arm64-msvc': 4.24.4 - '@rollup/rollup-win32-ia32-msvc': 4.24.4 - '@rollup/rollup-win32-x64-msvc': 4.24.4 + '@rollup/rollup-android-arm-eabi': 4.25.0 + '@rollup/rollup-android-arm64': 4.25.0 + '@rollup/rollup-darwin-arm64': 4.25.0 + '@rollup/rollup-darwin-x64': 4.25.0 + '@rollup/rollup-freebsd-arm64': 4.25.0 + '@rollup/rollup-freebsd-x64': 4.25.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.25.0 + '@rollup/rollup-linux-arm-musleabihf': 4.25.0 + '@rollup/rollup-linux-arm64-gnu': 4.25.0 + '@rollup/rollup-linux-arm64-musl': 4.25.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.25.0 + '@rollup/rollup-linux-riscv64-gnu': 4.25.0 + '@rollup/rollup-linux-s390x-gnu': 4.25.0 + '@rollup/rollup-linux-x64-gnu': 4.25.0 + '@rollup/rollup-linux-x64-musl': 4.25.0 + '@rollup/rollup-win32-arm64-msvc': 4.25.0 + '@rollup/rollup-win32-ia32-msvc': 4.25.0 + '@rollup/rollup-win32-x64-msvc': 4.25.0 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} @@ -5887,7 +5887,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.4.47 + postcss: 8.4.49 strip-json-comments: 3.1.1 run-parallel@1.2.0: @@ -5949,7 +5949,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 signal-exit@4.1.0: {} @@ -6068,15 +6068,15 @@ snapshots: strip-json-comments@3.1.1: {} - stylehacks@7.0.4(postcss@8.4.47): + stylehacks@7.0.4(postcss@8.4.49): dependencies: browserslist: 4.24.2 - postcss: 8.4.47 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 - sugarss@4.0.1(postcss@8.4.47): + sugarss@4.0.1(postcss@8.4.49): dependencies: - postcss: 8.4.47 + postcss: 8.4.49 supports-color@2.0.0: {} @@ -6150,11 +6150,11 @@ snapshots: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tldts-core@6.1.58: {} + tldts-core@6.1.60: {} - tldts@6.1.58: + tldts@6.1.60: dependencies: - tldts-core: 6.1.58 + tldts-core: 6.1.60 to-regex-range@5.0.1: dependencies: @@ -6164,7 +6164,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.58 + tldts: 6.1.60 tr46@0.0.3: {} @@ -6278,33 +6278,33 @@ snapshots: vite-plugin-banner@0.8.0: {} - vite-plugin-directory-index@3.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)): + vite-plugin-directory-index@3.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: picomatch: 2.3.1 pretty-bytes: 6.1.1 - vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) - vite-plugin-dts@1.7.3(@types/node@18.19.64)(rollup@4.24.4)(vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)): + vite-plugin-dts@1.7.3(@types/node@18.19.64)(rollup@4.25.0)(vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: '@microsoft/api-extractor': 7.47.11(@types/node@18.19.64) - '@rollup/pluginutils': 5.1.3(rollup@4.24.4) + '@rollup/pluginutils': 5.1.3(rollup@4.25.0) '@rushstack/node-core-library': 3.66.1(@types/node@18.19.64) debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 fs-extra: 10.1.0 kolorist: 1.8.0 ts-morph: 17.0.1 - vite: 4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-list-directory-contents@1.4.5(@types/node@18.19.64)(rollup@4.24.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0): + vite-plugin-list-directory-contents@1.4.5(@types/node@18.19.64)(rollup@4.25.0)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0): dependencies: - '@wesbos/code-icons': 1.2.4(rollup@4.24.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) - vite: 4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) - vite-plugin-dts: 1.7.3(@types/node@18.19.64)(rollup@4.24.4)(vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)) + '@wesbos/code-icons': 1.2.4(rollup@4.25.0)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite: 4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) + vite-plugin-dts: 1.7.3(@types/node@18.19.64)(rollup@4.25.0)(vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)) vscode-icons-js: 11.6.1 transitivePeerDependencies: - '@types/node' @@ -6317,13 +6317,13 @@ snapshots: - supports-color - terser - vite-plugin-minify@2.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)): + vite-plugin-minify@2.0.1(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: '@types/html-minifier-terser': 7.0.2 html-minifier-terser: 7.2.0 - vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) - vite-plugin-mock@3.0.2(esbuild@0.24.0)(mockjs@1.1.0)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)): + vite-plugin-mock@3.0.2(esbuild@0.24.0)(mockjs@1.1.0)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: bundle-require: 4.2.1(esbuild@0.24.0) chokidar: 3.6.0 @@ -6334,42 +6334,42 @@ snapshots: mockjs: 1.1.0 path-to-regexp: 6.3.0 picocolors: 1.1.1 - vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - supports-color - vite-plugin-terminal@1.2.0(rollup@4.24.4)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0)): + vite-plugin-terminal@1.2.0(rollup@4.25.0)(vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0)): dependencies: - '@rollup/plugin-strip': 3.0.4(rollup@4.24.4) + '@rollup/plugin-strip': 3.0.4(rollup@4.25.0) debug: 4.3.7(supports-color@8.1.1) kolorist: 1.8.0 sirv: 2.0.4 ufo: 1.5.4 - vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0) + vite: 5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0) transitivePeerDependencies: - rollup - supports-color - vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0): + vite@4.5.5(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0): dependencies: esbuild: 0.18.20 - postcss: 8.4.47 + postcss: 8.4.49 rollup: 3.29.5 optionalDependencies: '@types/node': 18.19.64 fsevents: 2.3.3 - sugarss: 4.0.1(postcss@8.4.47) + sugarss: 4.0.1(postcss@8.4.49) terser: 5.36.0 - vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.47))(terser@5.36.0): + vite@5.4.8(@types/node@18.19.64)(sugarss@4.0.1(postcss@8.4.49))(terser@5.36.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.4 + postcss: 8.4.49 + rollup: 4.25.0 optionalDependencies: '@types/node': 18.19.64 fsevents: 2.3.3 - sugarss: 4.0.1(postcss@8.4.47) + sugarss: 4.0.1(postcss@8.4.49) terser: 5.36.0 vscode-icons-js@11.6.1: diff --git a/source/components/content/copy.mjs b/source/components/content/copy.mjs index f2a0f28ac73999432849d5e111a7e5988af8e9a6..0881bdbe255ac495bfcf757361eb5d2b04340ace 100644 --- a/source/components/content/copy.mjs +++ b/source/components/content/copy.mjs @@ -8,30 +8,34 @@ * For those who do not wish to adhere to the AGPLv3, a commercial license is available. * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms. * For more information about purchasing a commercial license, please contact schukai GmbH. + * + * SPDX-License-Identifier: AGPL-3.0 */ -import { instanceSymbol } from "../../constants.mjs"; +import {instanceSymbol} from "../../constants.mjs"; import { - addAttributeToken, - removeAttributeToken, + addAttributeToken, + removeAttributeToken, } from "../../dom/attributes.mjs"; import { - ATTRIBUTE_ERRORMESSAGE, - ATTRIBUTE_ROLE, + ATTRIBUTE_ERRORMESSAGE, + ATTRIBUTE_ROLE, } from "../../dom/constants.mjs"; -import { CustomElement, getSlottedElements } from "../../dom/customelement.mjs"; +import {CustomElement, getSlottedElements} from "../../dom/customelement.mjs"; import { - assembleMethodSymbol, - registerCustomElement, + assembleMethodSymbol, + registerCustomElement, } from "../../dom/customelement.mjs"; -import { getDocument } from "../../dom/util.mjs"; -import { STYLE_DISPLAY_MODE_BLOCK } from "../form/constants.mjs"; -import { CopyStyleSheet } from "./stylesheet/copy.mjs"; -import { fireCustomEvent } from "../../dom/events.mjs"; -import { positionPopper } from "../form/util/floating-ui.mjs"; -import { DeadMansSwitch } from "../../util/deadmansswitch.mjs"; +import {getDocument} from "../../dom/util.mjs"; +import {isString} from "../../types/is.mjs"; +import {validateString} from "../../types/validate.mjs"; +import {STYLE_DISPLAY_MODE_BLOCK} from "../form/constants.mjs"; +import {CopyStyleSheet} from "./stylesheet/copy.mjs"; +import {fireCustomEvent} from "../../dom/events.mjs"; +import {positionPopper} from "../form/util/floating-ui.mjs"; +import {DeadMansSwitch} from "../../util/deadmansswitch.mjs"; -export { Copy }; +export {Copy}; /** * @private @@ -39,6 +43,12 @@ export { Copy }; */ const timerCallbackSymbol = Symbol("timerCallback"); +/** + * @private + * @type {symbol} + */ +const timerDelaySymbol = Symbol("timerDelay"); + /** * @private * @type {symbol} @@ -83,248 +93,265 @@ const resizeObserverSymbol = Symbol("resizeObserver"); * @summary A beautiful Copy that can make your life easier and also looks good. */ class Copy extends CustomElement { - /** - * This method is called by the `instanceof` operator. - * @return {symbol} - */ - static get [instanceSymbol]() { - return Symbol.for("@schukai/monster/components/content/copy@@instance"); - } - - /** - * - * @return {Components.Content.Copy - * @fires monster-copy-clicked This event is fired when the copy button is clicked. - * @fires monster-copy-success This event is fired when the copy action is successful. - * @fires monster-copy-error This event is fired when the copy action fails. - */ - [assembleMethodSymbol]() { - super[assembleMethodSymbol](); - initControlReferences.call(this); - initEventHandler.call(this); - return this; - } - - /** - * This method is called when the element is connected to the dom. - * - * @return {void} - */ - connectedCallback() { - super.connectedCallback(); - - const document = getDocument(); - - for (const [, type] of Object.entries(["click", "touch"])) { - // close on outside ui-events - document.addEventListener(type, this[closeEventHandler]); - } - - updatePopper.call(this); - attachResizeObserver.call(this); - } - - /** - * This method is called when the element is disconnected from the dom. - * - * @return {void} - */ - disconnectedCallback() { - super.disconnectedCallback(); - - // close on outside ui-events - for (const [, type] of Object.entries(["click", "touch"])) { - document.removeEventListener(type, this[closeEventHandler]); - } - - disconnectResizeObserver.call(this); - } - - /** - * To set the options via the HTML Tag, the attribute `data-monster-options` must be used. - * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control} - * - * The individual configuration values can be found in the table. - * - * @property {Object} templates Template definitions - * @property {string} templates.main Main template - * @property {Object} actions Callbacks - * @property {string} actions.click="throw Error" Callback when clicked - * @property {Object} features Features - * @property {boolean} features.stripTags=true Strip tags from the copied text - * @property {boolean} features.preventOpenEventSent=false Prevent open event from being sent - * @property {Object} popper Popper configuration - * @property {string} popper.placement="top" Popper placement - * @property {string[]} popper.middleware=["autoPlacement", "shift", "offset:15", "arrow"] Popper middleware - * @property {boolean} disabled=false Disabled state - */ - get defaults() { - return Object.assign({}, super.defaults, { - templates: { - main: getTemplate(), - }, - disabled: false, - features: { - stripTags: true, - preventOpenEventSent: false, - }, - popper: { - placement: "top", - middleware: ["autoPlacement", "shift", "offset:15", "arrow"], - }, - }); - } - - /** - * @return {string} - */ - static getTag() { - return "monster-copy"; - } - - /** - * @return {CSSStyleSheet[]} - */ - static getCSSStyleSheet() { - return [CopyStyleSheet]; - } - - /** - * With this method, you can show the popper. - * - * @return {Copy} - */ - showDialog() { - show.call(this); - return this; - } - - /** - * With this method, you can hide the popper. - * - * @return {Copy} - */ - hideDialog() { - hide.call(this); - return this; - } - - /** - * With this method, you can toggle the popper. - * - * @return {Copy} - */ - toggleDialog() { - if (this[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) { - this.hideDialog(); - } else { - this.showDialog(); - } - return this; - } + /** + * This method is called by the `instanceof` operator. + * @return {symbol} + */ + static get [instanceSymbol]() { + return Symbol.for("@schukai/monster/components/content/copy@@instance"); + } + + /** + * + * @return {Components.Content.Copy + * @fires monster-copy-clicked This event is fired when the copy button is clicked. + * @fires monster-copy-success This event is fired when the copy action is successful. + * @fires monster-copy-error This event is fired when the copy action fails. + */ + [assembleMethodSymbol]() { + super[assembleMethodSymbol](); + initControlReferences.call(this); + initEventHandler.call(this); + return this; + } + + /** + * This method is called when the element is connected to the dom. + * + * @return {void} + */ + connectedCallback() { + super.connectedCallback(); + + const document = getDocument(); + + for (const [, type] of Object.entries(["click", "touch"])) { + // close on outside ui-events + document.addEventListener(type, this[closeEventHandler]); + } + + updatePopper.call(this); + attachResizeObserver.call(this); + } + + /** + * This method is called when the element is disconnected from the dom. + * + * @return {void} + */ + disconnectedCallback() { + super.disconnectedCallback(); + + // close on outside ui-events + for (const [, type] of Object.entries(["click", "touch"])) { + document.removeEventListener(type, this[closeEventHandler]); + } + + disconnectResizeObserver.call(this); + } + + /** + * To set the options via the HTML Tag, the attribute `data-monster-options` must be used. + * @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control} + * + * The individual configuration values can be found in the table. + * + * @property {Object} templates Template definitions + * @property {string} templates.main Main template + * @property {Object} actions Callbacks + * @property {string} actions.click="throw Error" Callback when clicked + * @property {Object} features Features + * @property {boolean} features.stripTags=true Strip tags from the copied text + * @property {boolean} features.preventOpenEventSent=false Prevent open event from being sent + * @property {Object} popper Popper configuration + * @property {string} popper.placement="top" Popper placement + * @property {string[]} popper.middleware=["autoPlacement", "shift", "offset:15", "arrow"] Popper middleware + * @property {boolean} disabled=false Disabled state + */ + get defaults() { + return Object.assign({}, super.defaults, { + templates: { + main: getTemplate(), + }, + disabled: false, + features: { + stripTags: true, + preventOpenEventSent: false, + }, + popper: { + placement: "top", + middleware: ["autoPlacement", "offset:-1", "arrow"], + }, + }); + } + + /** + * @return {string} + */ + static getTag() { + return "monster-copy"; + } + + /** + * @return {CSSStyleSheet[]} + */ + static getCSSStyleSheet() { + return [CopyStyleSheet]; + } + + /** + * With this method, you can show the popper. + * + * @return {Copy} + */ + showDialog() { + if (this[timerDelaySymbol] instanceof DeadMansSwitch) { + try { + this[timerDelaySymbol].defuse(); + } catch (e) { + } + } + + this[timerDelaySymbol] = new DeadMansSwitch(500, () => { + show.call(this); + }); + + return this; + } + + /** + * With this method, you can hide the popper. + * + * @return {Copy} + */ + hideDialog() { + if (this[timerDelaySymbol] instanceof DeadMansSwitch) { + try { + this[timerDelaySymbol].defuse(); + } catch (e) { + } + } + + hide.call(this); + return this; + } + + /** + * With this method, you can toggle the popper. + * + * @return {Copy} + */ + toggleDialog() { + if (this[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) { + this.hideDialog(); + } else { + this.showDialog(); + } + return this; + } } /** * @private */ function attachResizeObserver() { - // against flickering - this[resizeObserverSymbol] = new ResizeObserver((entries) => { - if (this[timerCallbackSymbol] instanceof DeadMansSwitch) { - try { - this[timerCallbackSymbol].touch(); - return; - } catch (e) { - delete this[timerCallbackSymbol]; - } - } - - this[timerCallbackSymbol] = new DeadMansSwitch(200, () => { - updatePopper.call(this); - }); - }); - - this[resizeObserverSymbol].observe(this.parentElement); + // against flickering + this[resizeObserverSymbol] = new ResizeObserver((entries) => { + if (this[timerCallbackSymbol] instanceof DeadMansSwitch) { + try { + this[timerCallbackSymbol].touch(); + return; + } catch (e) { + delete this[timerCallbackSymbol]; + } + } + + this[timerCallbackSymbol] = new DeadMansSwitch(200, () => { + updatePopper.call(this); + }); + }); + + this[resizeObserverSymbol].observe(this.parentElement); } /** * @private */ function disconnectResizeObserver() { - if (this[resizeObserverSymbol] instanceof ResizeObserver) { - this[resizeObserverSymbol].disconnect(); - } + if (this[resizeObserverSymbol] instanceof ResizeObserver) { + this[resizeObserverSymbol].disconnect(); + } } /** * @private */ function hide() { - const self = this; + const self = this; - fireCustomEvent(self, "monster-popper-hide", { - self, - }); + fireCustomEvent(self, "monster-popper-hide", { + self, + }); - self[popperElementSymbol].style.display = "none"; - removeAttributeToken(self[controlElementSymbol], "class", "open"); + self[popperElementSymbol].style.display = "none"; + removeAttributeToken(self[controlElementSymbol], "class", "open"); - setTimeout(() => { - fireCustomEvent(self, "monster-popper-hidden", { - self, - }); - }, 0); + setTimeout(() => { + fireCustomEvent(self, "monster-popper-hidden", { + self, + }); + }, 0); } /** * @private */ function show() { - const self = this; + const self = this; - if (self.getOption("disabled", false) === true) { - return; - } + if (self.getOption("disabled", false) === true) { + return; + } - if (self[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) { - return; - } + if (self[popperElementSymbol].style.display === STYLE_DISPLAY_MODE_BLOCK) { + return; + } - fireCustomEvent(self, "monster-popper-open", { - self, - }); + fireCustomEvent(self, "monster-popper-open", { + self, + }); - self[popperElementSymbol].style.visibility = "hidden"; - self[popperElementSymbol].style.display = STYLE_DISPLAY_MODE_BLOCK; + self[popperElementSymbol].style.visibility = "hidden"; + self[popperElementSymbol].style.display = STYLE_DISPLAY_MODE_BLOCK; - addAttributeToken(self[controlElementSymbol], "class", "open"); - updatePopper.call(self); + addAttributeToken(self[controlElementSymbol], "class", "open"); + updatePopper.call(self); - setTimeout(() => { - fireCustomEvent(self, "monster-popper-opened", { - self, - }); - }, 0); + setTimeout(() => { + fireCustomEvent(self, "monster-popper-opened", { + self, + }); + }, 0); } /** * @private */ function updatePopper() { - if (this[popperElementSymbol].style.display !== STYLE_DISPLAY_MODE_BLOCK) { - return; - } - - if (this.getOption("disabled", false) === true) { - return; - } - - positionPopper.call( - this, - this[controlElementSymbol], - this[popperElementSymbol], - this.getOption("popper", {}), - ); + if (this[popperElementSymbol].style.display !== STYLE_DISPLAY_MODE_BLOCK) { + return; + } + + if (this.getOption("disabled", false) === true) { + return; + } + + positionPopper.call( + this, + this[controlElementSymbol], + this[popperElementSymbol], + this.getOption("popper", {}), + ); } /** @@ -332,92 +359,126 @@ function updatePopper() { * @return {initEventHandler} */ function initEventHandler() { - const self = this; - - this[closeEventHandler] = (event) => { - const path = event.composedPath(); - - for (const [, element] of Object.entries(path)) { - if (element === this) { - return; - } - } - hide.call(this); - }; - - const type = "click"; - - this[controlElementSymbol].addEventListener("mouseenter", (event) => { - if (this.getOption("features.preventOpenEventSent") === true) { - event.preventDefault(); - } - this.showDialog(); - }); - - this[controlElementSymbol].addEventListener("focus", (event) => { - if (this.getOption("features.preventOpenEventSent") === true) { - event.preventDefault(); - } - this.showDialog(); - }); - this[controlElementSymbol].addEventListener("blur", (event) => { - if (this.getOption("features.preventOpenEventSent") === true) { - event.preventDefault(); - } - this.hideDialog(); - }); - - this[copyButtonElementSymbol].addEventListener(type, function (event) { - fireCustomEvent(self, "monster-copy-clicked", { - element: self, - }); - - const nodes = getSlottedElements.call(self, ":scope"); - - let text = ""; - for (const node of nodes) { - if (self.getOption("features.stripTags")) { - text += node.textContent; - } else { - text += node.outerHTML; - } - } - - navigator.clipboard - .writeText(text) - .then(function () { - self[copyButtonElementSymbol] - .querySelector("use") - .setAttribute("href", "#copy-success"); - setTimeout(() => { - self[copyButtonElementSymbol] - .querySelector("use") - .setAttribute("href", "#copy"); - }, 2000); - - fireCustomEvent(self, "monster-copy-success", { - element: self, - }); - }) - .catch(function (e) { - self[copyButtonElementSymbol] - .querySelector("use") - .setAttribute("href", "#copy-error"); - setTimeout(() => { - self[copyButtonElementSymbol] - .querySelector("use") - .setAttribute("href", "#copy"); - }, 2000); - - fireCustomEvent(self, "monster-copy-error", { - element: self, - }); - - addAttributeToken(self, ATTRIBUTE_ERRORMESSAGE, "" + e); - }); - }); - - return this; + const self = this; + + this[closeEventHandler] = (event) => { + const path = event.composedPath(); + + for (const [, element] of Object.entries(path)) { + if (element === this) { + return; + } + } + hide.call(this); + }; + + const type = "click"; + + this[controlElementSymbol].addEventListener("mouseenter", (event) => { + if (this.getOption("features.preventOpenEventSent") === true) { + event.preventDefault(); + } + this.showDialog(); + }); + + this[controlElementSymbol].addEventListener("mouseleave", (event) => { + if (this.getOption("features.preventOpenEventSent") === true) { + event.preventDefault(); + } + this.hideDialog(); + }); + + this[controlElementSymbol].addEventListener("focus", (event) => { + if (this.getOption("features.preventOpenEventSent") === true) { + event.preventDefault(); + } + this.showDialog(); + }); + this[controlElementSymbol].addEventListener("blur", (event) => { + if (this.getOption("features.preventOpenEventSent") === true) { + event.preventDefault(); + } + this.hideDialog(); + }); + + this[copyButtonElementSymbol].addEventListener(type, function (event) { + fireCustomEvent(self, "monster-copy-clicked", { + element: self, + }); + + const text = getSlottedCopyContent.call(self); + + navigator.clipboard + .writeText(text) + .then(function () { + self[copyButtonElementSymbol] + .querySelector("use") + .setAttribute("href", "#copy-success"); + setTimeout(() => { + self[copyButtonElementSymbol] + .querySelector("use") + .setAttribute("href", "#copy"); + }, 2000); + + fireCustomEvent(self, "monster-copy-success", { + element: self, + }); + }) + .catch(function (e) { + self[copyButtonElementSymbol] + .querySelector("use") + .setAttribute("href", "#copy-error"); + setTimeout(() => { + self[copyButtonElementSymbol] + .querySelector("use") + .setAttribute("href", "#copy"); + }, 2000); + + fireCustomEvent(self, "monster-copy-error", { + element: self, + }); + + addAttributeToken(self, ATTRIBUTE_ERRORMESSAGE, "" + e); + }); + }); + + return this; +} + +/** + * @private + * @returns {Set<any>|string} + */ +function getSlottedCopyContent() { + const self = this; + const result = new Set(); + + if (!(this.shadowRoot instanceof ShadowRoot)) { + return result; + } + + const slots = this.shadowRoot.querySelectorAll("slot"); + + let text = ""; + for (const [, slot] of Object.entries(slots)) { + slot.assignedNodes().forEach(function (node) { + if ( + node instanceof HTMLElement || + node instanceof SVGElement || + node instanceof MathMLElement + ) { + if (self.getOption("features.stripTags")) { + text += node.textContent.trim(); + } else { + text += node.outerHTML.trim(); + } + } else { + text += node.textContent.trim(); + } + }); + } + + return text; } /** @@ -425,17 +486,17 @@ function initEventHandler() { * @return {void} */ function initControlReferences() { - this[controlElementSymbol] = this.shadowRoot.querySelector( - `[${ATTRIBUTE_ROLE}="control"]`, - ); + this[controlElementSymbol] = this.shadowRoot.querySelector( + `[${ATTRIBUTE_ROLE}="control"]`, + ); - this[copyButtonElementSymbol] = this.shadowRoot.querySelector( - `[${ATTRIBUTE_ROLE}="button"]`, - ); + this[copyButtonElementSymbol] = this.shadowRoot.querySelector( + `[${ATTRIBUTE_ROLE}="button"]`, + ); - this[popperElementSymbol] = this.shadowRoot.querySelector( - `[${ATTRIBUTE_ROLE}="popper"]`, - ); + this[popperElementSymbol] = this.shadowRoot.querySelector( + `[${ATTRIBUTE_ROLE}="popper"]`, + ); } /** @@ -443,14 +504,15 @@ function initControlReferences() { * @return {string} */ function getTemplate() { - // language=HTML - return ` + // language=HTML + return ` <div data-monster-role="control" part="control"> <slot></slot> <div data-monster-role="popper" part="popper" tabindex="-1" class="monster-color-primary-1"> <div data-monster-role="arrow"></div> <button data-monster-role="button" part="button"> - <svg data-monster-role="icon-map"><defs> + <svg data-monster-role="icon-map"> + <defs> <g id="copy"> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1z"/> <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0z"/> @@ -471,7 +533,11 @@ function getTemplate() { </g> </defs> - </svg><svg data-monster-role="icon" xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 16 16"><use href="#copy"></use></svg> + </svg> + <svg data-monster-role="icon" xmlns="http://www.w3.org/2000/svg" width="25" height="25" + viewBox="0 0 16 16"> + <use href="#copy"></use> + </svg> </button> </div> </div>`; diff --git a/source/util/deadmansswitch.mjs b/source/util/deadmansswitch.mjs index 21fba4764f75303a1fbd0236f7b8f49adf889b2d..578ffd1600611fd7f23de723e1736493108d83fb 100644 --- a/source/util/deadmansswitch.mjs +++ b/source/util/deadmansswitch.mjs @@ -63,11 +63,23 @@ class DeadMansSwitch extends Base { } clearTimeout(this[internalSymbol]["timer"]); - initCallback.call(this); return this; } + + /** + * @throws {Error} has already run + * @returns {DeadMansSwitch} + */ + defuse() { + if (this[internalSymbol]["isAlreadyRun"] === true) { + throw new Error("has already run"); + } + + clearTimeout(this[internalSymbol]["timer"]); + return this; + } } /**