From 5f3f21e8bf4b7b6961da5b3e98789207ab0ab2a4 Mon Sep 17 00:00:00 2001 From: Konnor Rogers Date: Fri, 19 Jul 2024 02:05:25 -0400 Subject: [PATCH 01/14] update doc deps, update imports --- CHANGELOG.md | 5 + README.md | 4 +- docs/esbuild.config.js | 16 ++- docs/frontend/javascript/src/lazy-loader.js | 8 +- docs/package.json | 4 +- docs/pnpm-lock.yaml | 100 ++++++++++++------ .../_documentation/components/light-pen.md | 2 +- .../components/light-preview.md | 10 +- .../assets/icons/alphabet-uppercase.svg | 3 + .../shoelace-assets/assets/icons/alphabet.svg | 3 + .../shoelace-assets/assets/icons/amazon.svg | 4 + .../assets/icons/arrows-collapse-vertical.svg | 3 + .../assets/icons/arrows-expand-vertical.svg | 3 + .../assets/icons/arrows-vertical.svg | 3 + .../shoelace-assets/assets/icons/arrows.svg | 3 + .../assets/icons/backpack-fill.svg | 4 + .../shoelace-assets/assets/icons/backpack.svg | 4 + .../assets/icons/backpack2-fill.svg | 4 + .../assets/icons/backpack2.svg | 5 + .../assets/icons/backpack3-fill.svg | 4 + .../assets/icons/backpack3.svg | 4 + .../assets/icons/backpack4-fill.svg | 4 + .../assets/icons/backpack4.svg | 4 + .../shoelace-assets/assets/icons/ban-fill.svg | 3 + docs/src/shoelace-assets/assets/icons/ban.svg | 3 + .../src/shoelace-assets/assets/icons/bing.svg | 5 + .../assets/icons/brilliance.svg | 3 + .../assets/icons/cake-fill.svg | 3 + .../src/shoelace-assets/assets/icons/cake.svg | 3 + .../assets/icons/cake2-fill.svg | 4 + .../shoelace-assets/assets/icons/cake2.svg | 3 + .../shoelace-assets/assets/icons/cookie.svg | 4 + .../src/shoelace-assets/assets/icons/copy.svg | 3 + .../assets/icons/crosshair.svg | 3 + .../assets/icons/crosshair2.svg | 3 + .../assets/icons/duffle-fill.svg | 3 + .../shoelace-assets/assets/icons/duffle.svg | 4 + .../assets/icons/emoji-astonished-fill.svg | 3 + .../assets/icons/emoji-astonished.svg | 4 + .../assets/icons/emoji-grimace-fill.svg | 3 + .../assets/icons/emoji-grimace.svg | 4 + .../assets/icons/emoji-grin-fill.svg | 3 + .../assets/icons/emoji-grin.svg | 4 + .../assets/icons/emoji-surprise-fill.svg | 3 + .../assets/icons/emoji-surprise.svg | 4 + .../assets/icons/emoji-tear-fill.svg | 3 + .../assets/icons/emoji-tear.svg | 4 + .../assets/icons/envelope-arrow-down-fill.svg | 4 + .../assets/icons/envelope-arrow-down.svg | 4 + .../assets/icons/envelope-arrow-up-fill.svg | 4 + .../assets/icons/envelope-arrow-up.svg | 4 + .../shoelace-assets/assets/icons/exposure.svg | 4 + .../shoelace-assets/assets/icons/feather.svg | 3 + .../shoelace-assets/assets/icons/feather2.svg | 3 + .../assets/icons/floppy-fill.svg | 4 + .../shoelace-assets/assets/icons/floppy.svg | 4 + .../assets/icons/floppy2-fill.svg | 4 + .../shoelace-assets/assets/icons/floppy2.svg | 3 + .../assets/icons/gender-neuter.svg | 3 + .../shoelace-assets/assets/icons/gitlab.svg | 3 + .../assets/icons/highlighter.svg | 3 + .../assets/icons/highlights.svg | 3 + .../assets/icons/luggage-fill.svg | 4 + .../shoelace-assets/assets/icons/luggage.svg | 4 + .../assets/icons/mailbox-flag.svg | 4 + .../assets/icons/mailbox2-flag.svg | 4 + .../assets/icons/marker-tip.svg | 3 + .../assets/icons/noise-reduction.svg | 4 + .../assets/icons/nvme-fill.svg | 4 + .../src/shoelace-assets/assets/icons/nvme.svg | 4 + .../assets/icons/opencollective.svg | 4 + .../assets/icons/passport-fill.svg | 4 + .../shoelace-assets/assets/icons/passport.svg | 4 + .../assets/icons/pci-card-network.svg | 5 + .../assets/icons/pci-card-sound.svg | 5 + .../assets/icons/person-arms-up.svg | 4 + .../assets/icons/person-raised-hand.svg | 4 + .../assets/icons/person-standing-dress.svg | 3 + .../assets/icons/person-standing.svg | 3 + .../assets/icons/person-walking.svg | 4 + .../assets/icons/person-wheelchair.svg | 3 + .../shoelace-assets/assets/icons/radar.svg | 3 + .../assets/icons/send-arrow-down-fill.svg | 4 + .../assets/icons/send-arrow-down.svg | 4 + .../assets/icons/send-arrow-up-fill.svg | 4 + .../assets/icons/send-arrow-up.svg | 4 + .../shoelace-assets/assets/icons/shadows.svg | 3 + .../assets/icons/sign-stop-lights.svg | 4 +- .../assets/icons/sim-slash-fill.svg | 3 + .../assets/icons/sim-slash.svg | 3 + .../assets/icons/sourceforge.svg | 4 + .../shoelace-assets/assets/icons/substack.svg | 3 + .../assets/icons/suitcase-fill.svg | 3 + .../assets/icons/suitcase-lg-fill.svg | 3 + .../assets/icons/suitcase-lg.svg | 3 + .../shoelace-assets/assets/icons/suitcase.svg | 4 + .../assets/icons/suitcase2-fill.svg | 3 + .../assets/icons/suitcase2.svg | 3 + .../assets/icons/threads-fill.svg | 4 + .../shoelace-assets/assets/icons/threads.svg | 3 + .../assets/icons/transparency.svg | 3 + .../assets/icons/twitter-x.svg | 3 + .../shoelace-assets/assets/icons/type-h1.svg | 2 +- .../shoelace-assets/assets/icons/type-h2.svg | 2 +- .../shoelace-assets/assets/icons/type-h3.svg | 2 +- .../shoelace-assets/assets/icons/type-h4.svg | 3 + .../shoelace-assets/assets/icons/type-h5.svg | 3 + .../shoelace-assets/assets/icons/type-h6.svg | 3 + .../shoelace-assets/assets/icons/vignette.svg | 4 + .../light-code}/light-code-register.js | 0 .../{ => components/light-code}/light-code.js | 26 ++--- .../light-disclosure-register.js | 0 .../light-disclosure}/light-disclosure.js | 4 +- .../light-editor}/light-editor-register.js | 0 .../light-editor}/light-editor.js | 25 ++--- .../light-editor}/light-editor.styles.js | 0 .../light-pen}/light-pen-register.js | 0 .../{ => components/light-pen}/light-pen.js | 16 +-- .../light-pen}/light-pen.styles.js | 0 .../light-preview}/light-preview-register.js | 0 .../light-preview}/light-preview.js | 29 ++--- .../light-preview}/light-preview.styles.js | 0 exports/index.js | 10 +- exports/{ => styles}/base-styles.js | 0 exports/{ => styles}/code-styles.js | 0 exports/{ => styles}/default-theme.styles.js | 0 scripts/plop/plopfile.js | 69 ++++++------ scripts/plop/templates/component-docs.hbs | 2 +- scripts/plop/templates/component-globals.hbs | 2 +- scripts/plop/templates/component.hbs | 2 +- tests/light-editor.test.js | 2 +- tests/light-pen.test.js | 5 +- 132 files changed, 546 insertions(+), 149 deletions(-) create mode 100644 docs/src/shoelace-assets/assets/icons/alphabet-uppercase.svg create mode 100644 docs/src/shoelace-assets/assets/icons/alphabet.svg create mode 100644 docs/src/shoelace-assets/assets/icons/amazon.svg create mode 100644 docs/src/shoelace-assets/assets/icons/arrows-collapse-vertical.svg create mode 100644 docs/src/shoelace-assets/assets/icons/arrows-expand-vertical.svg create mode 100644 docs/src/shoelace-assets/assets/icons/arrows-vertical.svg create mode 100644 docs/src/shoelace-assets/assets/icons/arrows.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack2-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack2.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack3-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack3.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack4-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/backpack4.svg create mode 100644 docs/src/shoelace-assets/assets/icons/ban-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/ban.svg create mode 100644 docs/src/shoelace-assets/assets/icons/bing.svg create mode 100644 docs/src/shoelace-assets/assets/icons/brilliance.svg create mode 100644 docs/src/shoelace-assets/assets/icons/cake-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/cake.svg create mode 100644 docs/src/shoelace-assets/assets/icons/cake2-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/cake2.svg create mode 100644 docs/src/shoelace-assets/assets/icons/cookie.svg create mode 100644 docs/src/shoelace-assets/assets/icons/copy.svg create mode 100644 docs/src/shoelace-assets/assets/icons/crosshair.svg create mode 100644 docs/src/shoelace-assets/assets/icons/crosshair2.svg create mode 100644 docs/src/shoelace-assets/assets/icons/duffle-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/duffle.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-astonished-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-astonished.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-grimace-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-grimace.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-grin-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-grin.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-surprise-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-surprise.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-tear-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/emoji-tear.svg create mode 100644 docs/src/shoelace-assets/assets/icons/envelope-arrow-down-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/envelope-arrow-down.svg create mode 100644 docs/src/shoelace-assets/assets/icons/envelope-arrow-up-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/envelope-arrow-up.svg create mode 100644 docs/src/shoelace-assets/assets/icons/exposure.svg create mode 100644 docs/src/shoelace-assets/assets/icons/feather.svg create mode 100644 docs/src/shoelace-assets/assets/icons/feather2.svg create mode 100644 docs/src/shoelace-assets/assets/icons/floppy-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/floppy.svg create mode 100644 docs/src/shoelace-assets/assets/icons/floppy2-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/floppy2.svg create mode 100644 docs/src/shoelace-assets/assets/icons/gender-neuter.svg create mode 100644 docs/src/shoelace-assets/assets/icons/gitlab.svg create mode 100644 docs/src/shoelace-assets/assets/icons/highlighter.svg create mode 100644 docs/src/shoelace-assets/assets/icons/highlights.svg create mode 100644 docs/src/shoelace-assets/assets/icons/luggage-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/luggage.svg create mode 100644 docs/src/shoelace-assets/assets/icons/mailbox-flag.svg create mode 100644 docs/src/shoelace-assets/assets/icons/mailbox2-flag.svg create mode 100644 docs/src/shoelace-assets/assets/icons/marker-tip.svg create mode 100644 docs/src/shoelace-assets/assets/icons/noise-reduction.svg create mode 100644 docs/src/shoelace-assets/assets/icons/nvme-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/nvme.svg create mode 100644 docs/src/shoelace-assets/assets/icons/opencollective.svg create mode 100644 docs/src/shoelace-assets/assets/icons/passport-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/passport.svg create mode 100644 docs/src/shoelace-assets/assets/icons/pci-card-network.svg create mode 100644 docs/src/shoelace-assets/assets/icons/pci-card-sound.svg create mode 100644 docs/src/shoelace-assets/assets/icons/person-arms-up.svg create mode 100644 docs/src/shoelace-assets/assets/icons/person-raised-hand.svg create mode 100644 docs/src/shoelace-assets/assets/icons/person-standing-dress.svg create mode 100644 docs/src/shoelace-assets/assets/icons/person-standing.svg create mode 100644 docs/src/shoelace-assets/assets/icons/person-walking.svg create mode 100644 docs/src/shoelace-assets/assets/icons/person-wheelchair.svg create mode 100644 docs/src/shoelace-assets/assets/icons/radar.svg create mode 100644 docs/src/shoelace-assets/assets/icons/send-arrow-down-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/send-arrow-down.svg create mode 100644 docs/src/shoelace-assets/assets/icons/send-arrow-up-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/send-arrow-up.svg create mode 100644 docs/src/shoelace-assets/assets/icons/shadows.svg create mode 100644 docs/src/shoelace-assets/assets/icons/sim-slash-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/sim-slash.svg create mode 100644 docs/src/shoelace-assets/assets/icons/sourceforge.svg create mode 100644 docs/src/shoelace-assets/assets/icons/substack.svg create mode 100644 docs/src/shoelace-assets/assets/icons/suitcase-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/suitcase-lg-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/suitcase-lg.svg create mode 100644 docs/src/shoelace-assets/assets/icons/suitcase.svg create mode 100644 docs/src/shoelace-assets/assets/icons/suitcase2-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/suitcase2.svg create mode 100644 docs/src/shoelace-assets/assets/icons/threads-fill.svg create mode 100644 docs/src/shoelace-assets/assets/icons/threads.svg create mode 100644 docs/src/shoelace-assets/assets/icons/transparency.svg create mode 100644 docs/src/shoelace-assets/assets/icons/twitter-x.svg create mode 100644 docs/src/shoelace-assets/assets/icons/type-h4.svg create mode 100644 docs/src/shoelace-assets/assets/icons/type-h5.svg create mode 100644 docs/src/shoelace-assets/assets/icons/type-h6.svg create mode 100644 docs/src/shoelace-assets/assets/icons/vignette.svg rename exports/{ => components/light-code}/light-code-register.js (100%) rename exports/{ => components/light-code}/light-code.js (94%) rename exports/{ => components/light-disclosure}/light-disclosure-register.js (100%) rename exports/{ => components/light-disclosure}/light-disclosure.js (97%) rename exports/{ => components/light-editor}/light-editor-register.js (100%) rename exports/{ => components/light-editor}/light-editor.js (96%) rename exports/{ => components/light-editor}/light-editor.styles.js (100%) rename exports/{ => components/light-pen}/light-pen-register.js (100%) rename exports/{ => components/light-pen}/light-pen.js (96%) rename exports/{ => components/light-pen}/light-pen.styles.js (100%) rename exports/{ => components/light-preview}/light-preview-register.js (100%) rename exports/{ => components/light-preview}/light-preview.js (96%) rename exports/{ => components/light-preview}/light-preview.styles.js (100%) rename exports/{ => styles}/base-styles.js (100%) rename exports/{ => styles}/code-styles.js (100%) rename exports/{ => styles}/default-theme.styles.js (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d18e233..5fdcca43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ + +## Next + +- BREAKING_CHANGE: All components are now scoped under `exports/components//.js` + ## v3.1.2 - 07/18/2024 - Bug Fix(light-code): `wrap="none"` properly renamed to `wrap="hard"` [#22](https://github.com/KonnorRogers/light-pen/pull/22) diff --git a/README.md b/README.md index 9fba70c8..ba3f8915 100644 --- a/README.md +++ b/README.md @@ -23,12 +23,12 @@ npm install light-pen import "light-pen" // Registry yourself -import LightPen "light-pen/exports/light-pen.js" +import LightPen "light-pen/exports/components/light-pen/light-pen.js" LightPen.define() // Registers `` // Register under another name -import LightPen "light-pen/exports/light-pen.js" +import LightPen "light-pen/exports/components/light-pen/light-pen.js" LightPen.define("other-name") ``` diff --git a/docs/esbuild.config.js b/docs/esbuild.config.js index 49fc38c3..419fe43f 100644 --- a/docs/esbuild.config.js +++ b/docs/esbuild.config.js @@ -12,7 +12,8 @@ const outputFolder = "src" // You can customize this as you wish, perhaps to add new esbuild plugins. // // ``` -const path = require("path") +const path = require("path"); +const glob = require("glob"); const esbuildCopy = require('esbuild-plugin-copy').default // const esbuildOptions = { // } @@ -25,15 +26,20 @@ const esbuildCopy = require('esbuild-plugin-copy').default // ``` const watch = process.argv.includes("--watch") +const componentNames = glob.sync("../exports/components/*").map((name) => path.parse(name).name) + +const components = {} + +componentNames.forEach((name) => { + components[`light-pen/exports/components/${name}/${name}`] = `../exports/components/${name}/${name}.js` +}) + const esbuildOptions = { target: "es2020", entryPoints: { "javascript/index": "frontend/javascript/index.js", "javascript/defer": "frontend/javascript/defer.js", - "light-pen/exports/light-pen": "../exports/light-pen.js", - "light-pen/exports/light-preview": "../exports/light-preview.js", - "light-pen/exports/light-editor": "../exports/light-editor.js", - "light-pen/exports/light-code": "../exports/light-code.js", + ...components, }, define: { "process.env.BASE_PATH": `"${process.env.BASE_PATH}"` diff --git a/docs/frontend/javascript/src/lazy-loader.js b/docs/frontend/javascript/src/lazy-loader.js index 6aac2feb..5ccaf103 100644 --- a/docs/frontend/javascript/src/lazy-loader.js +++ b/docs/frontend/javascript/src/lazy-loader.js @@ -5,22 +5,22 @@ export default function lazyLoader() { components: { "light-code": { register () { - import("light-pen/exports/light-code-register.js") + import("light-pen/exports/components/light-code/light-code-register.js") } }, "light-editor": { register () { - import("light-pen/exports/light-editor-register.js") + import("light-pen/exports/components/light-editor/light-editor-register.js") } }, "light-pen": { register () { - import("light-pen/exports/light-pen-register.js") + import("light-pen/exports/components/light-pen/light-pen-register.js") } }, "light-preview": { register () { - import("light-pen/exports/light-preview-register.js") + import("light-pen/exports/components/light-preview/light-preview-register.js") } }, "clipboard-copy": { diff --git a/docs/package.json b/docs/package.json index 0e732ff4..67204135 100644 --- a/docs/package.json +++ b/docs/package.json @@ -22,11 +22,11 @@ "read-cache": "^1.0.0" }, "dependencies": { - "@github/clipboard-copy-element": "^1.2.1", + "@github/clipboard-copy-element": "^1.3.0", "@hotwired/stimulus": "^3.2.1", "@hotwired/turbo": "^7.3.0", "@konnorr/bridgetown-quick-search": "^3.10.4", - "@shoelace-style/shoelace": "^2.7.0", + "@shoelace-style/shoelace": "^2.15.1", "bridgetown-quick-search": "2.0.0", "element-internals-polyfill": "^1.3.11", "lit": "^3.1.3", diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index a88d7c01..c69dd53a 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@github/clipboard-copy-element': - specifier: ^1.2.1 - version: 1.2.1 + specifier: ^1.3.0 + version: 1.3.0 '@hotwired/stimulus': specifier: ^3.2.1 version: 3.2.1 @@ -21,8 +21,8 @@ importers: specifier: ^3.10.4 version: 3.10.4 '@shoelace-style/shoelace': - specifier: ^2.7.0 - version: 2.7.0 + specifier: ^2.15.1 + version: 2.15.1(@types/react@18.3.3) bridgetown-quick-search: specifier: 2.0.0 version: 2.0.0 @@ -167,9 +167,9 @@ packages: postcss: ^8.2 postcss-selector-parser: ^6.0.10 - '@ctrl/tinycolor@3.6.0': - resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} - engines: {node: '>=10'} + '@ctrl/tinycolor@4.1.0': + resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} + engines: {node: '>=14'} '@esbuild/aix-ppc64@0.21.4': resolution: {integrity: sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A==} @@ -309,14 +309,17 @@ packages: cpu: [x64] os: [win32] - '@floating-ui/core@1.3.1': - resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} + '@floating-ui/core@1.6.4': + resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} + + '@floating-ui/dom@1.6.7': + resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} - '@floating-ui/dom@1.4.4': - resolution: {integrity: sha512-21hhDEPOiWkGp0Ys4Wi6Neriah7HweToKra626CIK712B5m9qkdz54OP9gVldUg+URnBTpv/j/bi/skmGdstXQ==} + '@floating-ui/utils@0.2.4': + resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} - '@github/clipboard-copy-element@1.2.1': - resolution: {integrity: sha512-PLccyUCnzmOQ6zrRsH66rr67iumJyP5r7ij17ezprFQAK/oA8CXhlC8LTG+xpW3cYAvnp2zCgRNTfXS8wk09Lg==} + '@github/clipboard-copy-element@1.3.0': + resolution: {integrity: sha512-wyntkQkwoLbLo+Hqg2LIVMXDIzcvUb9bSDz+clX6nVJItwzh103rHxdXFRZD+DmxVbuEW5xSznYQXkz1jZT+xg==} '@hotwired/stimulus@3.2.1': resolution: {integrity: sha512-HGlzDcf9vv/EQrMJ5ZG6VWNs8Z/xMN+1o2OhV1gKiSG6CqZt5MCBB1gRg5ILiN3U0jEAxuDTNPRfBcnZBDmupQ==} @@ -328,15 +331,17 @@ packages: '@konnorr/bridgetown-quick-search@3.10.4': resolution: {integrity: sha512-BJih2/72YCR5M5osQr0BwmHAF1bKD+6OORvW9H3KbGzyuzmwEctVRxHtUMjY6gwmjYriejNWkZPkeeixAHoHog==} - '@lit-labs/react@1.2.1': - resolution: {integrity: sha512-DiZdJYFU0tBbdQkfwwRSwYyI/mcWkg3sWesKRsHUd4G+NekTmmeq9fzsurvcKTNVa0comNljwtg4Hvi1ds3V+A==} - '@lit-labs/ssr-dom-shim@1.1.1': resolution: {integrity: sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==} '@lit-labs/ssr-dom-shim@1.2.0': resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + '@lit/react@1.0.5': + resolution: {integrity: sha512-RSHhrcuSMa4vzhqiTenzXvtQ6QDq3hSPsnHHO3jaPmmvVFeoNNm4DHoQ0zLdKAUvY3wP3tTENSUf7xpyVfrDEA==} + peerDependencies: + '@types/react': 17 || 18 + '@lit/reactive-element@1.6.2': resolution: {integrity: sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==} @@ -371,13 +376,19 @@ packages: '@shoelace-style/animations@1.1.0': resolution: {integrity: sha512-Be+cahtZyI2dPKRm8EZSx3YJQ+jLvEcn3xzRP7tM4tqBnvd/eW/64Xh0iOf0t2w5P8iJKfdBbpVNE9naCaOf2g==} - '@shoelace-style/localize@3.1.1': - resolution: {integrity: sha512-NkM/hj3Js6yXCU9WxhsyxRUdyqUUUl/BSvIluUMptQteUWGOJaoyP1iMbOMqO544DYMzBfnoCw66ZHkGuTdKgA==} + '@shoelace-style/localize@3.2.1': + resolution: {integrity: sha512-r4C9C/5kSfMBIr0D9imvpRdCNXtUNgyYThc4YlS6K5Hchv1UyxNQ9mxwj+BTRH2i1Neits260sR3OjKMnplsFA==} - '@shoelace-style/shoelace@2.7.0': - resolution: {integrity: sha512-w7FnHqBoYR6Ne42WZPW+bIJGIAGsUZgxF3WA9LLfqn3+Q4NOQ4r5jl/DEfsQmRUTmY0nUrs4WGO1CeTrhv6taA==} + '@shoelace-style/shoelace@2.15.1': + resolution: {integrity: sha512-3ecUw8gRwOtcZQ8kWWkjk4FTfObYQ/XIl3aRhxprESoOYV1cYhloYPsmQY38UoL3+pwJiZb5+LzX0l3u3Zl0GA==} engines: {node: '>=14.17.0'} + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + '@types/trusted-types@2.0.3': resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==} @@ -480,6 +491,9 @@ packages: engines: {node: '>=4'} hasBin: true + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1037,7 +1051,7 @@ snapshots: postcss: 8.4.19 postcss-selector-parser: 6.0.11 - '@ctrl/tinycolor@3.6.0': {} + '@ctrl/tinycolor@4.1.0': {} '@esbuild/aix-ppc64@0.21.4': optional: true @@ -1108,13 +1122,18 @@ snapshots: '@esbuild/win32-x64@0.21.4': optional: true - '@floating-ui/core@1.3.1': {} + '@floating-ui/core@1.6.4': + dependencies: + '@floating-ui/utils': 0.2.4 - '@floating-ui/dom@1.4.4': + '@floating-ui/dom@1.6.7': dependencies: - '@floating-ui/core': 1.3.1 + '@floating-ui/core': 1.6.4 + '@floating-ui/utils': 0.2.4 + + '@floating-ui/utils@0.2.4': {} - '@github/clipboard-copy-element@1.2.1': {} + '@github/clipboard-copy-element@1.3.0': {} '@hotwired/stimulus@3.2.1': {} @@ -1126,12 +1145,14 @@ snapshots: lit: 3.1.3 lunr: 2.3.9 - '@lit-labs/react@1.2.1': {} - '@lit-labs/ssr-dom-shim@1.1.1': {} '@lit-labs/ssr-dom-shim@1.2.0': {} + '@lit/react@1.0.5(@types/react@18.3.3)': + dependencies: + '@types/react': 18.3.3 + '@lit/reactive-element@1.6.2': dependencies: '@lit-labs/ssr-dom-shim': 1.1.1 @@ -1170,18 +1191,27 @@ snapshots: '@shoelace-style/animations@1.1.0': {} - '@shoelace-style/localize@3.1.1': {} + '@shoelace-style/localize@3.2.1': {} - '@shoelace-style/shoelace@2.7.0': + '@shoelace-style/shoelace@2.15.1(@types/react@18.3.3)': dependencies: - '@ctrl/tinycolor': 3.6.0 - '@floating-ui/dom': 1.4.4 - '@lit-labs/react': 1.2.1 + '@ctrl/tinycolor': 4.1.0 + '@floating-ui/dom': 1.6.7 + '@lit/react': 1.0.5(@types/react@18.3.3) '@shoelace-style/animations': 1.1.0 - '@shoelace-style/localize': 3.1.1 + '@shoelace-style/localize': 3.2.1 composed-offset-position: 0.0.4 - lit: 2.8.0 + lit: 3.1.3 qr-creator: 1.0.0 + transitivePeerDependencies: + - '@types/react' + + '@types/prop-types@15.7.12': {} + + '@types/react@18.3.3': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 '@types/trusted-types@2.0.3': {} @@ -1282,6 +1312,8 @@ snapshots: cssesc@3.0.0: {} + csstype@3.1.3: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 diff --git a/docs/src/_documentation/components/light-pen.md b/docs/src/_documentation/components/light-pen.md index 51e94a26..bf4cab8d 100644 --- a/docs/src/_documentation/components/light-pen.md +++ b/docs/src/_documentation/components/light-pen.md @@ -44,7 +44,7 @@ component: light-pen diff --git a/docs/src/_documentation/components/light-preview.md b/docs/src/_documentation/components/light-preview.md index 0209b686..94d9b968 100644 --- a/docs/src/_documentation/components/light-preview.md +++ b/docs/src/_documentation/components/light-preview.md @@ -24,7 +24,7 @@ component: light-preview @@ -47,7 +47,7 @@ component: light-preview @@ -66,7 +66,7 @@ component: light-preview @@ -98,7 +98,7 @@ For not as strict encapsulation you can use `preview-mode="shadow-dom"` @@ -187,7 +187,7 @@ For not as strict encapsulation you can use `preview-mode="shadow-dom"` diff --git a/docs/src/shoelace-assets/assets/icons/alphabet-uppercase.svg b/docs/src/shoelace-assets/assets/icons/alphabet-uppercase.svg new file mode 100644 index 00000000..1d19206d --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/alphabet-uppercase.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/alphabet.svg b/docs/src/shoelace-assets/assets/icons/alphabet.svg new file mode 100644 index 00000000..03ef6ddc --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/alphabet.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/amazon.svg b/docs/src/shoelace-assets/assets/icons/amazon.svg new file mode 100644 index 00000000..bf26ba6a --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/amazon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/arrows-collapse-vertical.svg b/docs/src/shoelace-assets/assets/icons/arrows-collapse-vertical.svg new file mode 100644 index 00000000..7d11bf91 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/arrows-collapse-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/arrows-expand-vertical.svg b/docs/src/shoelace-assets/assets/icons/arrows-expand-vertical.svg new file mode 100644 index 00000000..7bf13885 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/arrows-expand-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/arrows-vertical.svg b/docs/src/shoelace-assets/assets/icons/arrows-vertical.svg new file mode 100644 index 00000000..8dd6371a --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/arrows-vertical.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/arrows.svg b/docs/src/shoelace-assets/assets/icons/arrows.svg new file mode 100644 index 00000000..003f2d6c --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/arrows.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack-fill.svg b/docs/src/shoelace-assets/assets/icons/backpack-fill.svg new file mode 100644 index 00000000..807f13f0 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack.svg b/docs/src/shoelace-assets/assets/icons/backpack.svg new file mode 100644 index 00000000..7716377a --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack2-fill.svg b/docs/src/shoelace-assets/assets/icons/backpack2-fill.svg new file mode 100644 index 00000000..440326cd --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack2.svg b/docs/src/shoelace-assets/assets/icons/backpack2.svg new file mode 100644 index 00000000..605b47ac --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack2.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack3-fill.svg b/docs/src/shoelace-assets/assets/icons/backpack3-fill.svg new file mode 100644 index 00000000..4ba96189 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack3-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack3.svg b/docs/src/shoelace-assets/assets/icons/backpack3.svg new file mode 100644 index 00000000..c06372d2 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack3.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack4-fill.svg b/docs/src/shoelace-assets/assets/icons/backpack4-fill.svg new file mode 100644 index 00000000..b34434c1 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack4-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/backpack4.svg b/docs/src/shoelace-assets/assets/icons/backpack4.svg new file mode 100644 index 00000000..e4bf93f0 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/backpack4.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/ban-fill.svg b/docs/src/shoelace-assets/assets/icons/ban-fill.svg new file mode 100644 index 00000000..7e4ccbff --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/ban-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/ban.svg b/docs/src/shoelace-assets/assets/icons/ban.svg new file mode 100644 index 00000000..9788534e --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/ban.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/bing.svg b/docs/src/shoelace-assets/assets/icons/bing.svg new file mode 100644 index 00000000..973c36b6 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/bing.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/brilliance.svg b/docs/src/shoelace-assets/assets/icons/brilliance.svg new file mode 100644 index 00000000..722cfdbf --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/brilliance.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/cake-fill.svg b/docs/src/shoelace-assets/assets/icons/cake-fill.svg new file mode 100644 index 00000000..4a8b8372 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/cake-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/cake.svg b/docs/src/shoelace-assets/assets/icons/cake.svg new file mode 100644 index 00000000..2a2f165f --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/cake.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/cake2-fill.svg b/docs/src/shoelace-assets/assets/icons/cake2-fill.svg new file mode 100644 index 00000000..0b2e8ee8 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/cake2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/cake2.svg b/docs/src/shoelace-assets/assets/icons/cake2.svg new file mode 100644 index 00000000..a3b969cd --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/cake2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/cookie.svg b/docs/src/shoelace-assets/assets/icons/cookie.svg new file mode 100644 index 00000000..4b0e6632 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/cookie.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/copy.svg b/docs/src/shoelace-assets/assets/icons/copy.svg new file mode 100644 index 00000000..f53a72fb --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/copy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/crosshair.svg b/docs/src/shoelace-assets/assets/icons/crosshair.svg new file mode 100644 index 00000000..9421cc08 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/crosshair.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/crosshair2.svg b/docs/src/shoelace-assets/assets/icons/crosshair2.svg new file mode 100644 index 00000000..6a86c00d --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/crosshair2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/duffle-fill.svg b/docs/src/shoelace-assets/assets/icons/duffle-fill.svg new file mode 100644 index 00000000..df9e1c76 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/duffle-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/duffle.svg b/docs/src/shoelace-assets/assets/icons/duffle.svg new file mode 100644 index 00000000..3915aa42 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/duffle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-astonished-fill.svg b/docs/src/shoelace-assets/assets/icons/emoji-astonished-fill.svg new file mode 100644 index 00000000..99eb45b7 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-astonished-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-astonished.svg b/docs/src/shoelace-assets/assets/icons/emoji-astonished.svg new file mode 100644 index 00000000..ab603022 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-astonished.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-grimace-fill.svg b/docs/src/shoelace-assets/assets/icons/emoji-grimace-fill.svg new file mode 100644 index 00000000..d4200fe3 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-grimace-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-grimace.svg b/docs/src/shoelace-assets/assets/icons/emoji-grimace.svg new file mode 100644 index 00000000..dbe85917 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-grimace.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-grin-fill.svg b/docs/src/shoelace-assets/assets/icons/emoji-grin-fill.svg new file mode 100644 index 00000000..926f2d8d --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-grin-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-grin.svg b/docs/src/shoelace-assets/assets/icons/emoji-grin.svg new file mode 100644 index 00000000..50b8e425 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-grin.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-surprise-fill.svg b/docs/src/shoelace-assets/assets/icons/emoji-surprise-fill.svg new file mode 100644 index 00000000..5cd3e2e5 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-surprise-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-surprise.svg b/docs/src/shoelace-assets/assets/icons/emoji-surprise.svg new file mode 100644 index 00000000..d74830eb --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-surprise.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-tear-fill.svg b/docs/src/shoelace-assets/assets/icons/emoji-tear-fill.svg new file mode 100644 index 00000000..aec9e3fe --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-tear-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/emoji-tear.svg b/docs/src/shoelace-assets/assets/icons/emoji-tear.svg new file mode 100644 index 00000000..f9abd4b4 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/emoji-tear.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/envelope-arrow-down-fill.svg b/docs/src/shoelace-assets/assets/icons/envelope-arrow-down-fill.svg new file mode 100644 index 00000000..59ad5135 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/envelope-arrow-down-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/envelope-arrow-down.svg b/docs/src/shoelace-assets/assets/icons/envelope-arrow-down.svg new file mode 100644 index 00000000..ed8e9be8 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/envelope-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/envelope-arrow-up-fill.svg b/docs/src/shoelace-assets/assets/icons/envelope-arrow-up-fill.svg new file mode 100644 index 00000000..095a13f9 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/envelope-arrow-up-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/envelope-arrow-up.svg b/docs/src/shoelace-assets/assets/icons/envelope-arrow-up.svg new file mode 100644 index 00000000..f660f36c --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/envelope-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/exposure.svg b/docs/src/shoelace-assets/assets/icons/exposure.svg new file mode 100644 index 00000000..247bf465 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/exposure.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/feather.svg b/docs/src/shoelace-assets/assets/icons/feather.svg new file mode 100644 index 00000000..aafb86d5 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/feather.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/feather2.svg b/docs/src/shoelace-assets/assets/icons/feather2.svg new file mode 100644 index 00000000..2e5234f0 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/feather2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/floppy-fill.svg b/docs/src/shoelace-assets/assets/icons/floppy-fill.svg new file mode 100644 index 00000000..9c01f4c3 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/floppy-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/floppy.svg b/docs/src/shoelace-assets/assets/icons/floppy.svg new file mode 100644 index 00000000..6aaf1c33 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/floppy.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/floppy2-fill.svg b/docs/src/shoelace-assets/assets/icons/floppy2-fill.svg new file mode 100644 index 00000000..de4bb3bc --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/floppy2-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/floppy2.svg b/docs/src/shoelace-assets/assets/icons/floppy2.svg new file mode 100644 index 00000000..ee5fd36e --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/floppy2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/gender-neuter.svg b/docs/src/shoelace-assets/assets/icons/gender-neuter.svg new file mode 100644 index 00000000..8dce8f53 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/gender-neuter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/gitlab.svg b/docs/src/shoelace-assets/assets/icons/gitlab.svg new file mode 100644 index 00000000..7b7df0b3 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/gitlab.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/highlighter.svg b/docs/src/shoelace-assets/assets/icons/highlighter.svg new file mode 100644 index 00000000..5406b619 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/highlighter.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/highlights.svg b/docs/src/shoelace-assets/assets/icons/highlights.svg new file mode 100644 index 00000000..4ce75286 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/highlights.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/luggage-fill.svg b/docs/src/shoelace-assets/assets/icons/luggage-fill.svg new file mode 100644 index 00000000..53851e39 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/luggage-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/luggage.svg b/docs/src/shoelace-assets/assets/icons/luggage.svg new file mode 100644 index 00000000..e36baa01 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/luggage.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/mailbox-flag.svg b/docs/src/shoelace-assets/assets/icons/mailbox-flag.svg new file mode 100644 index 00000000..6d900e49 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/mailbox-flag.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/mailbox2-flag.svg b/docs/src/shoelace-assets/assets/icons/mailbox2-flag.svg new file mode 100644 index 00000000..2a2c74a2 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/mailbox2-flag.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/marker-tip.svg b/docs/src/shoelace-assets/assets/icons/marker-tip.svg new file mode 100644 index 00000000..8db939c1 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/marker-tip.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/noise-reduction.svg b/docs/src/shoelace-assets/assets/icons/noise-reduction.svg new file mode 100644 index 00000000..8c22253c --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/noise-reduction.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/nvme-fill.svg b/docs/src/shoelace-assets/assets/icons/nvme-fill.svg new file mode 100644 index 00000000..2f3b4a18 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/nvme-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/nvme.svg b/docs/src/shoelace-assets/assets/icons/nvme.svg new file mode 100644 index 00000000..792bafea --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/nvme.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/opencollective.svg b/docs/src/shoelace-assets/assets/icons/opencollective.svg new file mode 100644 index 00000000..cbd720fb --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/opencollective.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/passport-fill.svg b/docs/src/shoelace-assets/assets/icons/passport-fill.svg new file mode 100644 index 00000000..f5ab5dd3 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/passport-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/passport.svg b/docs/src/shoelace-assets/assets/icons/passport.svg new file mode 100644 index 00000000..9ecdaa36 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/passport.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/pci-card-network.svg b/docs/src/shoelace-assets/assets/icons/pci-card-network.svg new file mode 100644 index 00000000..183c7301 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/pci-card-network.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/pci-card-sound.svg b/docs/src/shoelace-assets/assets/icons/pci-card-sound.svg new file mode 100644 index 00000000..eaf0aba3 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/pci-card-sound.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/person-arms-up.svg b/docs/src/shoelace-assets/assets/icons/person-arms-up.svg new file mode 100644 index 00000000..36c2b827 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/person-arms-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/person-raised-hand.svg b/docs/src/shoelace-assets/assets/icons/person-raised-hand.svg new file mode 100644 index 00000000..8594c337 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/person-raised-hand.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/person-standing-dress.svg b/docs/src/shoelace-assets/assets/icons/person-standing-dress.svg new file mode 100644 index 00000000..9339d5bc --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/person-standing-dress.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/person-standing.svg b/docs/src/shoelace-assets/assets/icons/person-standing.svg new file mode 100644 index 00000000..f2bea96e --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/person-standing.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/person-walking.svg b/docs/src/shoelace-assets/assets/icons/person-walking.svg new file mode 100644 index 00000000..4c2c118d --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/person-walking.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/person-wheelchair.svg b/docs/src/shoelace-assets/assets/icons/person-wheelchair.svg new file mode 100644 index 00000000..55783d33 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/person-wheelchair.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/radar.svg b/docs/src/shoelace-assets/assets/icons/radar.svg new file mode 100644 index 00000000..0b575fe9 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/radar.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/send-arrow-down-fill.svg b/docs/src/shoelace-assets/assets/icons/send-arrow-down-fill.svg new file mode 100644 index 00000000..b9a437e9 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/send-arrow-down-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/send-arrow-down.svg b/docs/src/shoelace-assets/assets/icons/send-arrow-down.svg new file mode 100644 index 00000000..3bc034ba --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/send-arrow-down.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/send-arrow-up-fill.svg b/docs/src/shoelace-assets/assets/icons/send-arrow-up-fill.svg new file mode 100644 index 00000000..827a5049 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/send-arrow-up-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/send-arrow-up.svg b/docs/src/shoelace-assets/assets/icons/send-arrow-up.svg new file mode 100644 index 00000000..9f2d3401 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/send-arrow-up.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/shadows.svg b/docs/src/shoelace-assets/assets/icons/shadows.svg new file mode 100644 index 00000000..4b2baa1e --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/shadows.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/sign-stop-lights.svg b/docs/src/shoelace-assets/assets/icons/sign-stop-lights.svg index 297320ad..e57c9a7c 100644 --- a/docs/src/shoelace-assets/assets/icons/sign-stop-lights.svg +++ b/docs/src/shoelace-assets/assets/icons/sign-stop-lights.svg @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/sim-slash-fill.svg b/docs/src/shoelace-assets/assets/icons/sim-slash-fill.svg new file mode 100644 index 00000000..e7dd752a --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/sim-slash-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/sim-slash.svg b/docs/src/shoelace-assets/assets/icons/sim-slash.svg new file mode 100644 index 00000000..90b98055 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/sim-slash.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/sourceforge.svg b/docs/src/shoelace-assets/assets/icons/sourceforge.svg new file mode 100644 index 00000000..1a249e8b --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/sourceforge.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/substack.svg b/docs/src/shoelace-assets/assets/icons/substack.svg new file mode 100644 index 00000000..ebdcb0ce --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/substack.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/suitcase-fill.svg b/docs/src/shoelace-assets/assets/icons/suitcase-fill.svg new file mode 100644 index 00000000..e7fc796d --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/suitcase-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/suitcase-lg-fill.svg b/docs/src/shoelace-assets/assets/icons/suitcase-lg-fill.svg new file mode 100644 index 00000000..e5c50ccb --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/suitcase-lg-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/suitcase-lg.svg b/docs/src/shoelace-assets/assets/icons/suitcase-lg.svg new file mode 100644 index 00000000..ca006d54 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/suitcase-lg.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/suitcase.svg b/docs/src/shoelace-assets/assets/icons/suitcase.svg new file mode 100644 index 00000000..ba09ae5f --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/suitcase.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/suitcase2-fill.svg b/docs/src/shoelace-assets/assets/icons/suitcase2-fill.svg new file mode 100644 index 00000000..46a558de --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/suitcase2-fill.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/suitcase2.svg b/docs/src/shoelace-assets/assets/icons/suitcase2.svg new file mode 100644 index 00000000..2b4891e9 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/suitcase2.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/threads-fill.svg b/docs/src/shoelace-assets/assets/icons/threads-fill.svg new file mode 100644 index 00000000..7291cdb9 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/threads-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/threads.svg b/docs/src/shoelace-assets/assets/icons/threads.svg new file mode 100644 index 00000000..e60ff387 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/threads.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/transparency.svg b/docs/src/shoelace-assets/assets/icons/transparency.svg new file mode 100644 index 00000000..f498aa38 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/transparency.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/twitter-x.svg b/docs/src/shoelace-assets/assets/icons/twitter-x.svg new file mode 100644 index 00000000..7097f073 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/twitter-x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/type-h1.svg b/docs/src/shoelace-assets/assets/icons/type-h1.svg index 4c891817..5b412fe7 100644 --- a/docs/src/shoelace-assets/assets/icons/type-h1.svg +++ b/docs/src/shoelace-assets/assets/icons/type-h1.svg @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/type-h2.svg b/docs/src/shoelace-assets/assets/icons/type-h2.svg index b6ab7650..c92dd91e 100644 --- a/docs/src/shoelace-assets/assets/icons/type-h2.svg +++ b/docs/src/shoelace-assets/assets/icons/type-h2.svg @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/type-h3.svg b/docs/src/shoelace-assets/assets/icons/type-h3.svg index 154c293f..71362864 100644 --- a/docs/src/shoelace-assets/assets/icons/type-h3.svg +++ b/docs/src/shoelace-assets/assets/icons/type-h3.svg @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/type-h4.svg b/docs/src/shoelace-assets/assets/icons/type-h4.svg new file mode 100644 index 00000000..f368b9f5 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/type-h4.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/type-h5.svg b/docs/src/shoelace-assets/assets/icons/type-h5.svg new file mode 100644 index 00000000..a8a29b62 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/type-h5.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/type-h6.svg b/docs/src/shoelace-assets/assets/icons/type-h6.svg new file mode 100644 index 00000000..53df6a52 --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/type-h6.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/src/shoelace-assets/assets/icons/vignette.svg b/docs/src/shoelace-assets/assets/icons/vignette.svg new file mode 100644 index 00000000..205b66db --- /dev/null +++ b/docs/src/shoelace-assets/assets/icons/vignette.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/exports/light-code-register.js b/exports/components/light-code/light-code-register.js similarity index 100% rename from exports/light-code-register.js rename to exports/components/light-code/light-code-register.js diff --git a/exports/light-code.js b/exports/components/light-code/light-code.js similarity index 94% rename from exports/light-code.js rename to exports/components/light-code/light-code.js index fcc539cd..f0ceb913 100644 --- a/exports/light-code.js +++ b/exports/components/light-code/light-code.js @@ -1,20 +1,20 @@ // @ts-check import { css, html } from "lit"; -import { baseStyles } from "./base-styles.js"; - -import { theme } from './default-theme.styles.js' -import { PrismHighlight, createPrismInstance } from '../internal/prism-highlight.js'; - import { when } from "lit/directives/when.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; -import { debounce } from "../internal/debounce.js"; -import { BaseElement } from "../internal/base-element.js"; -import { elementsToString } from "../internal/elements-to-strings.js"; -import { dedent } from "../internal/dedent.js"; -import { codeStyles } from "./code-styles.js"; -import { LineNumberPlugin } from "../internal/line-number-plugin.js"; -import { NumberRange } from "../internal/number-range.js"; -import { LineHighlightPlugin, LineHighlightWrapPlugin } from "../internal/line-highlight-plugin.js"; + +import { baseStyles } from "../../styles/base-styles.js"; +import { theme } from '../../styles/default-theme.styles.js' +import { codeStyles } from "../../styles/code-styles.js"; + +import { PrismHighlight, createPrismInstance } from '../../../internal/prism-highlight.js'; +import { debounce } from "../../../internal/debounce.js"; +import { BaseElement } from "../../../internal/base-element.js"; +import { elementsToString } from "../../../internal/elements-to-strings.js"; +import { dedent } from "../../../internal/dedent.js"; +import { LineNumberPlugin } from "../../../internal/line-number-plugin.js"; +import { NumberRange } from "../../../internal/number-range.js"; +import { LineHighlightPlugin, LineHighlightWrapPlugin } from "../../../internal/line-highlight-plugin.js"; /** * LightCode is a minimal wrapper around Prism for displaying code highlighting diff --git a/exports/light-disclosure-register.js b/exports/components/light-disclosure/light-disclosure-register.js similarity index 100% rename from exports/light-disclosure-register.js rename to exports/components/light-disclosure/light-disclosure-register.js diff --git a/exports/light-disclosure.js b/exports/components/light-disclosure/light-disclosure.js similarity index 97% rename from exports/light-disclosure.js rename to exports/components/light-disclosure/light-disclosure.js index 1647252d..42fc1163 100644 --- a/exports/light-disclosure.js +++ b/exports/components/light-disclosure/light-disclosure.js @@ -1,6 +1,6 @@ import { html, css } from "lit" -import { baseStyles } from "./base-styles.js" -import { BaseElement } from "../internal/base-element.js" +import { baseStyles } from "../../styles/base-styles.js" +import { BaseElement } from "../../../internal/base-element.js" function motionReduced () { return /** @type {any} */ (window.matchMedia(`(prefers-reduced-motion: reduce)`)) === true || window.matchMedia(`(prefers-reduced-motion: reduce)`).matches === true; diff --git a/exports/light-editor-register.js b/exports/components/light-editor/light-editor-register.js similarity index 100% rename from exports/light-editor-register.js rename to exports/components/light-editor/light-editor-register.js diff --git a/exports/light-editor.js b/exports/components/light-editor/light-editor.js similarity index 96% rename from exports/light-editor.js rename to exports/components/light-editor/light-editor.js index 8cdd5939..ae140153 100644 --- a/exports/light-editor.js +++ b/exports/components/light-editor/light-editor.js @@ -1,19 +1,20 @@ // @ts-check -import { html } from "lit"; - +import { html, LitElement } from "lit"; import { ref } from "lit/directives/ref.js"; +import { LitTextareaMixin } from "form-associated-helpers/exports/mixins/lit-textarea-mixin.js"; -import { LitElement } from "lit"; -import { BaseElement } from "../internal/base-element.js"; -import { baseStyles } from "./base-styles.js"; +import { baseStyles } from "../../styles/base-styles.js"; +import { theme } from "../../styles/default-theme.styles.js"; import { styles } from "./light-editor.styles.js"; -import { theme } from "./default-theme.styles.js"; -import { dedent } from "../internal/dedent.js"; -import { LightResizeEvent } from "./events/light-resize-event.js"; -import { elementsToString } from "../internal/elements-to-strings.js"; -import { createPrismInstance } from "../internal/prism-highlight.js"; -import { LitTextareaMixin } from "form-associated-helpers/exports/mixins/lit-textarea-mixin.js"; -import LightCode from "./light-code.js"; + +import { LightResizeEvent } from "../../events/light-resize-event.js"; + +import { dedent } from "../../../internal/dedent.js"; +import { BaseElement } from "../../../internal/base-element.js"; +import { elementsToString } from "../../../internal/elements-to-strings.js"; +import { createPrismInstance } from "../../../internal/prism-highlight.js"; + +import LightCode from "../light-code/light-code.js"; const newLineRegex = /\r\n?|\n/g; diff --git a/exports/light-editor.styles.js b/exports/components/light-editor/light-editor.styles.js similarity index 100% rename from exports/light-editor.styles.js rename to exports/components/light-editor/light-editor.styles.js diff --git a/exports/light-pen-register.js b/exports/components/light-pen/light-pen-register.js similarity index 100% rename from exports/light-pen-register.js rename to exports/components/light-pen/light-pen-register.js diff --git a/exports/light-pen.js b/exports/components/light-pen/light-pen.js similarity index 96% rename from exports/light-pen.js rename to exports/components/light-pen/light-pen.js index de6e4749..82bb8a6d 100644 --- a/exports/light-pen.js +++ b/exports/components/light-pen/light-pen.js @@ -3,16 +3,16 @@ import { html } from "lit"; import { styles } from "./light-pen.styles.js"; import { when } from "lit/directives/when.js"; +import { ifDefined } from "lit/directives/if-defined.js"; -import { baseStyles, buttonStyles } from "./base-styles.js"; +import { baseStyles, buttonStyles } from "../../styles/base-styles.js"; -import { clamp } from "../internal/clamp.js"; -import { drag } from "../internal/drag.js"; -import { resizeIcon } from "../internal/resize-icon.js"; -import { BaseElement } from "../internal/base-element.js"; -import LightEditor from "./light-editor.js"; -import LightDisclosure from "./light-disclosure.js"; -import { ifDefined } from "lit/directives/if-defined.js"; +import { clamp } from "../../../internal/clamp.js"; +import { drag } from "../../../internal/drag.js"; +import { resizeIcon } from "../../../internal/resize-icon.js"; +import { BaseElement } from "../../../internal/base-element.js"; +import LightEditor from "../light-editor/light-editor.js"; +import LightDisclosure from "../light-disclosure/light-disclosure.js"; /** * @typedef {"html" | "css" | "js"} SupportedLanguages diff --git a/exports/light-pen.styles.js b/exports/components/light-pen/light-pen.styles.js similarity index 100% rename from exports/light-pen.styles.js rename to exports/components/light-pen/light-pen.styles.js diff --git a/exports/light-preview-register.js b/exports/components/light-preview/light-preview-register.js similarity index 100% rename from exports/light-preview-register.js rename to exports/components/light-preview/light-preview-register.js diff --git a/exports/light-preview.js b/exports/components/light-preview/light-preview.js similarity index 96% rename from exports/light-preview.js rename to exports/components/light-preview/light-preview.js index 8258cbf3..30a049da 100644 --- a/exports/light-preview.js +++ b/exports/components/light-preview/light-preview.js @@ -1,21 +1,24 @@ // @ts-check import { html } from "lit"; -import { buttonStyles, baseStyles } from "./base-styles.js"; -import { when } from "lit/directives/when.js"; +import { buttonStyles, baseStyles } from "../../styles/base-styles.js"; import { previewStyles } from "./light-preview.styles.js"; -import { drag } from "../internal/drag.js"; -import { clamp } from "../internal/clamp.js"; -import { stringMap } from "../internal/string-map.js"; -import { debounce } from "../internal/debounce.js"; -import { resizeIcon } from "../internal/resize-icon.js"; -import { BaseElement } from "../internal/base-element.js"; -import LightDisclosure from "./light-disclosure.js"; -import { elementsToString } from "../internal/elements-to-strings.js"; -import { dedent } from "../internal/dedent.js"; -import LightCode from "./light-code.js"; + import { ifDefined } from "lit/directives/if-defined.js"; -import { createPrismInstance } from "../internal/prism-highlight.js"; +import { when } from "lit/directives/when.js"; + +import LightDisclosure from "../light-disclosure/light-disclosure.js"; +import LightCode from "../light-code/light-code.js"; + +import { drag } from "../../../internal/drag.js"; +import { clamp } from "../../../internal/clamp.js"; +import { stringMap } from "../../../internal/string-map.js"; +import { debounce } from "../../../internal/debounce.js"; +import { resizeIcon } from "../../../internal/resize-icon.js"; +import { BaseElement } from "../../../internal/base-element.js"; +import { elementsToString } from "../../../internal/elements-to-strings.js"; +import { dedent } from "../../../internal/dedent.js"; +import { createPrismInstance } from "../../../internal/prism-highlight.js"; const sourceCodeFallback = "Show source code" diff --git a/exports/light-preview.styles.js b/exports/components/light-preview/light-preview.styles.js similarity index 100% rename from exports/light-preview.styles.js rename to exports/components/light-preview/light-preview.styles.js diff --git a/exports/index.js b/exports/index.js index 454a3068..f6a39f43 100644 --- a/exports/index.js +++ b/exports/index.js @@ -1,5 +1,5 @@ -export { default as LightCode } from "./light-code-register.js"; -export { default as LightDisclosure } from "./light-disclosure-register.js"; -export { default as LightEditor } from "./light-editor-register.js"; -export { default as LightPen } from "./light-pen-register.js"; -export { default as LightPreview } from "./light-preview-register.js"; +export { default as LightCode } from "./components/light-code/light-code-register.js"; +export { default as LightDisclosure } from "./components/light-disclosure/light-disclosure-register.js"; +export { default as LightEditor } from "./components/light-editor/light-editor-register.js"; +export { default as LightPen } from "./components/light-pen/light-pen-register.js"; +export { default as LightPreview } from "./components/light-preview/light-preview-register.js"; diff --git a/exports/base-styles.js b/exports/styles/base-styles.js similarity index 100% rename from exports/base-styles.js rename to exports/styles/base-styles.js diff --git a/exports/code-styles.js b/exports/styles/code-styles.js similarity index 100% rename from exports/code-styles.js rename to exports/styles/code-styles.js diff --git a/exports/default-theme.styles.js b/exports/styles/default-theme.styles.js similarity index 100% rename from exports/default-theme.styles.js rename to exports/styles/default-theme.styles.js diff --git a/scripts/plop/plopfile.js b/scripts/plop/plopfile.js index 1bcd00d4..b40db07a 100644 --- a/scripts/plop/plopfile.js +++ b/scripts/plop/plopfile.js @@ -2,8 +2,6 @@ import { readdirSync } from 'fs' import * as process from "process" import * as path from "path" -const COMPONENT_PREFIX = "light-" - const getDirectories = (source) => readdirSync(source, { withFileTypes: true }) .filter(dirent => dirent.isDirectory()) @@ -11,9 +9,10 @@ const getDirectories = (source) => export default function (plop) { + const componentPrefix = "light-" function tagWithoutPrefix (tag) { - return tag.replace(new RegExp(`^${COMPONENT_PREFIX}`), '') + return tag.replace(new RegExp(`^${componentPrefix}`), '') } function tagToTitle (tag) { @@ -31,10 +30,13 @@ export default function (plop) { { type: 'input', name: 'tag', - message: 'Tag name? (e.g. role-button)', + message: `Tag name? (e.g. ${componentPrefix}-button)`, validate: value => { - // Start with role- and include only a-z + dashes - if (!/^role-[a-z-+]+/.test(value)) { + // Start with light- and include only a-z + dashes + const regex = new RegExp(`^${componentPrefix}[a-z-+]+`) + + if (!(regex.test(value))) { + console.error(`Tag must start with ${componentPrefix}`) return false; } @@ -48,31 +50,36 @@ export default function (plop) { } ], actions: [ - // { - // type: 'add', - // path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}-register.js', - // templateFile: 'templates/component-register.hbs' - // }, - // { - // type: 'add', - // path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.js', - // templateFile: 'templates/component.hbs' - // }, - // { - // type: 'add', - // path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.styles.js', - // templateFile: 'templates/component-styles.hbs' - // }, - // { - // type: 'add', - // path: '../../tests/{{ tagWithoutPrefix tag }}.test.js', - // templateFile: 'templates/component-tests.hbs' - // }, - // { - // type: 'add', - // path: '../../docs/src/_documentation/components/{{ tagWithoutPrefix tag }}.md', - // templateFile: 'templates/component-docs.hbs' - // }, + { + type: 'add', + path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}-register.js', + templateFile: 'templates/component-register.hbs' + }, + { + type: 'add', + path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.js', + templateFile: 'templates/component-globals.hbs' + }, + { + type: 'add', + path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.js', + templateFile: 'templates/component.hbs' + }, + { + type: 'add', + path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.styles.js', + templateFile: 'templates/component-styles.hbs' + }, + { + type: 'add', + path: '../../tests/{{ tagWithoutPrefix tag }}.test.js', + templateFile: 'templates/component-tests.hbs' + }, + { + type: 'add', + path: '../../docs/src/_documentation/components/{{ tagWithoutPrefix tag }}.md', + templateFile: 'templates/component-docs.hbs' + }, { type: "modify", path: "../../exports/index.js", diff --git a/scripts/plop/templates/component-docs.hbs b/scripts/plop/templates/component-docs.hbs index c645771d..ae52787c 100644 --- a/scripts/plop/templates/component-docs.hbs +++ b/scripts/plop/templates/component-docs.hbs @@ -10,7 +10,7 @@ preview-mode="shadow-dom" script-scope="shadow-dom" > - diff --git a/scripts/plop/templates/component-globals.hbs b/scripts/plop/templates/component-globals.hbs index 86ade2e5..0087c1ca 100644 --- a/scripts/plop/templates/component-globals.hbs +++ b/scripts/plop/templates/component-globals.hbs @@ -1,4 +1,4 @@ -import {{ properCase tag }} from "./{{ tagWithoutPrefix tag }}.js" +import type {{ properCase tag }} from "./{{ tagWithoutPrefix tag }}.js" declare global { interface HTMLElementTagNameMap { diff --git a/scripts/plop/templates/component.hbs b/scripts/plop/templates/component.hbs index 652f026e..dc0e84e2 100644 --- a/scripts/plop/templates/component.hbs +++ b/scripts/plop/templates/component.hbs @@ -10,7 +10,7 @@ import { componentStyles } from "./{{ tagWithoutPrefix tag }}.styles.js"; * @summary Short summary of the component's intended use. * @documentation https://role-components.vercel.app/components/{{ tagWithoutPrefix tag }} * @status experimental - * @since 2.0 + * @since 3.0 * * @event role-event-name - Emitted as an example. * diff --git a/tests/light-editor.test.js b/tests/light-editor.test.js index 121fb9b0..54025229 100644 --- a/tests/light-editor.test.js +++ b/tests/light-editor.test.js @@ -1,4 +1,4 @@ -import LightEditor from "light-pen/exports/light-editor.js" +import LightEditor from "light-pen/exports/components/light-editor/light-editor.js" import { assert } from "@esm-bundle/chai" import { aTimeout, elementUpdated, html } from "@open-wc/testing-helpers" import { fixture } from "@open-wc/testing-helpers" diff --git a/tests/light-pen.test.js b/tests/light-pen.test.js index ff5009e8..8437fc4a 100644 --- a/tests/light-pen.test.js +++ b/tests/light-pen.test.js @@ -1,7 +1,6 @@ import { assert } from "@esm-bundle/chai" -import { html, fixture, elementUpdated, aTimeout } from "@open-wc/testing-helpers" -import { sendKeys } from "@web/test-runner-commands" -import "../exports/light-pen-register.js" +import { html, fixture, elementUpdated } from "@open-wc/testing-helpers" +import "../exports/components/light-pen/light-pen-register.js" test("it should reset to initial values", async () => { const lightPen = await fixture(html` From cf3b18dfb0edb5becd23997bfcc6dd333c31283e Mon Sep 17 00:00:00 2001 From: Konnor Rogers Date: Fri, 19 Jul 2024 14:26:56 -0400 Subject: [PATCH 02/14] adding light-diff-viewer --- .../components/light-diff-viewer.md | 18 + .../light-diff-viewer-globals.ts | 9 + .../light-diff-viewer-register.js | 11 + .../light-diff-viewer/light-diff-viewer.js | 52 + .../light-diff-viewer.styles.js | 7 + exports/index.js | 11 +- index.html | 56 ++ package.json | 3 +- pnpm-lock.yaml | 902 +++++++++++++++++- scripts/plop/plopfile.js | 17 +- scripts/plop/templates/component-globals.hbs | 2 +- scripts/plop/templates/component-register.hbs | 6 +- scripts/plop/templates/component-tests.hbs | 2 +- scripts/plop/templates/component.hbs | 25 +- tests/light-diff-viewer.test.js | 10 + 15 files changed, 1104 insertions(+), 27 deletions(-) create mode 100644 docs/src/_documentation/components/light-diff-viewer.md create mode 100644 exports/components/light-diff-viewer/light-diff-viewer-globals.ts create mode 100644 exports/components/light-diff-viewer/light-diff-viewer-register.js create mode 100644 exports/components/light-diff-viewer/light-diff-viewer.js create mode 100644 exports/components/light-diff-viewer/light-diff-viewer.styles.js create mode 100644 index.html create mode 100644 tests/light-diff-viewer.test.js diff --git a/docs/src/_documentation/components/light-diff-viewer.md b/docs/src/_documentation/components/light-diff-viewer.md new file mode 100644 index 00000000..12143f97 --- /dev/null +++ b/docs/src/_documentation/components/light-diff-viewer.md @@ -0,0 +1,18 @@ +--- +--- + + + + +## Examples + + + + + +### First Example diff --git a/exports/components/light-diff-viewer/light-diff-viewer-globals.ts b/exports/components/light-diff-viewer/light-diff-viewer-globals.ts new file mode 100644 index 00000000..e41b4f28 --- /dev/null +++ b/exports/components/light-diff-viewer/light-diff-viewer-globals.ts @@ -0,0 +1,9 @@ +import type LightDiffViewer from "./light-diff-viewer.js" + +declare global { + interface HTMLElementTagNameMap { + 'light-diff-viewer': LightDiffViewer + } +} + +export {} diff --git a/exports/components/light-diff-viewer/light-diff-viewer-register.js b/exports/components/light-diff-viewer/light-diff-viewer-register.js new file mode 100644 index 00000000..d2a88304 --- /dev/null +++ b/exports/components/light-diff-viewer/light-diff-viewer-register.js @@ -0,0 +1,11 @@ +// @ts-check +import LightDiffViewer from './light-diff-viewer.js'; + +LightDiffViewer.define('light-diff-viewer'); + +export default LightDiffViewer; +export * from './light-diff-viewer.js'; + +/** + * @type {import("./light-diff-viewer-globals.js")} + */ diff --git a/exports/components/light-diff-viewer/light-diff-viewer.js b/exports/components/light-diff-viewer/light-diff-viewer.js new file mode 100644 index 00000000..ace97cf8 --- /dev/null +++ b/exports/components/light-diff-viewer/light-diff-viewer.js @@ -0,0 +1,52 @@ +import { html } from "lit" + +import { BaseElement } from "../../../internal/base-element.js"; +import { baseStyles } from "../../styles/base-styles.js"; +import { componentStyles } from "./light-diff-viewer.styles.js"; + +/** + * @customElement + * @tagname light-diff-viewer + * @summary Short summary of the component's intended use. + * @documentation https://konnorrogers.github.io/light-pen/components/light-diff-viewer + * @status experimental + * @since 4.0 + * + * @event light-event-name - Emitted as an example. + * + * @slot - The default slot. + * + * @csspart base - The component's base wrapper. + * + * @cssproperty --example - An example CSS custom property. + */ +export default class LightDiffViewer extends BaseElement { + /** + * @override + */ + static baseName = "light-diff-viewer" + + /** + * @override + */ + static styles = [ + baseStyles, + componentStyles, + ] + + /** + * @override + */ + static properties = /** @type {const} */ ({ + + }) + + /** + * @override + */ + render () { + return html` + + ` + } +} diff --git a/exports/components/light-diff-viewer/light-diff-viewer.styles.js b/exports/components/light-diff-viewer/light-diff-viewer.styles.js new file mode 100644 index 00000000..1a35c053 --- /dev/null +++ b/exports/components/light-diff-viewer/light-diff-viewer.styles.js @@ -0,0 +1,7 @@ +import { css } from "lit" + +export const componentStyles = css` + :host { + display: inline-block; + } +` diff --git a/exports/index.js b/exports/index.js index f6a39f43..e1e124b6 100644 --- a/exports/index.js +++ b/exports/index.js @@ -1,5 +1,6 @@ -export { default as LightCode } from "./components/light-code/light-code-register.js"; -export { default as LightDisclosure } from "./components/light-disclosure/light-disclosure-register.js"; -export { default as LightEditor } from "./components/light-editor/light-editor-register.js"; -export { default as LightPen } from "./components/light-pen/light-pen-register.js"; -export { default as LightPreview } from "./components/light-preview/light-preview-register.js"; +export { default as LightCode } from "./components/light-code/light-code-register.js" +export { default as LightDiffViewer } from "./components/light-diff-viewer/light-diff-viewer-register.js" +export { default as LightDisclosure } from "./components/light-disclosure/light-disclosure-register.js" +export { default as LightEditor } from "./components/light-editor/light-editor-register.js" +export { default as LightPen } from "./components/light-pen/light-pen-register.js" +export { default as LightPreview } from "./components/light-preview/light-preview-register.js" \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..73146ce1 --- /dev/null +++ b/index.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ + +
+ +
Hello World
+ + + diff --git a/package.json b/package.json index ff5dabe5..07849bb7 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "build:docs": "pnpm run build && cd docs && pnpm run build", "build:api": "typedoc --out ./docs/output/references/api/ ./exports/**/*.js", "build:api-json": "typedoc --json ./typedoc-generation.json ./exports/**/*.js", - "clean": "rimraf -g \"./{exports,internal}/**/!(*-globals|*-types).d.ts\"", + "clean": "rimraf -g \"./{exports,internal}/**/*.d.ts\"", "build": "npm run clean && tsc && npm run build:cem", "create:component": "plop --plopfile scripts/plop/plopfile.js", "watch:cem": "custom-elements-manifest analyze --watch", @@ -73,6 +73,7 @@ "glob": "^10.4.1", "light-pen": "link:.", "playwright": "^1.44.1", + "plop": "^4.0.1", "rimraf": "^5.0.7", "typedoc": "^0.26.1", "typescript": "~5.5.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 857aed6f..532184d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,6 +60,9 @@ importers: playwright: specifier: ^1.44.1 version: 1.44.1 + plop: + specifier: ^4.0.1 + version: 4.0.1 rimraf: specifier: ^5.0.7 version: 5.0.7 @@ -113,6 +116,10 @@ packages: '@github/catalyst@1.6.0': resolution: {integrity: sha512-u8A+DameixqpeyHzvnJWTGj+wfiskQOYHzSiJscCWVfMkIT3rxnbHMtGh3lMthaRY21nbUOK71WcsCnCrXhBJQ==} + '@inquirer/figures@1.0.4': + resolution: {integrity: sha512-R7Gsg6elpuqdn55fBH2y9oYzrU/yKrSmIsDX4ROT51vohrECFzTf2zw9BfUbOW8xjfmM2QbVoVYdTwhrtEKWSQ==} + engines: {node: '>=18'} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -357,6 +364,9 @@ packages: '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/fined@1.1.5': + resolution: {integrity: sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==} + '@types/http-assert@1.5.3': resolution: {integrity: sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==} @@ -369,6 +379,9 @@ packages: '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/inquirer@9.0.7': + resolution: {integrity: sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==} + '@types/istanbul-lib-coverage@2.0.4': resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -405,6 +418,9 @@ packages: '@types/koa@2.15.0': resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} + '@types/liftoff@4.0.3': + resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==} + '@types/mime@1.3.2': resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} @@ -456,6 +472,9 @@ packages: '@types/sinonjs__fake-timers@8.1.5': resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + '@types/through@0.0.33': + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} + '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -539,6 +558,10 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} + aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -578,6 +601,14 @@ packages: resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} engines: {node: '>=12.17'} + array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + + array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + array-union@1.0.2: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} @@ -643,6 +674,9 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -678,10 +712,16 @@ packages: call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + cem-plugin-expanded-types@1.3.1: resolution: {integrity: sha512-+9uY/0zkf9v4McTBoaL0K6dOIC/LnJcNdukH9rMJ/cDfsn2YH0HB3fjkZwwVn3uRDF4CybAodWtY/CYuHDfpmw==} @@ -700,6 +740,16 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chokidar@3.5.2: resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} engines: {node: '>= 8.10.0'} @@ -722,14 +772,34 @@ packages: peerDependencies: devtools-protocol: '*' + clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} @@ -780,6 +850,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -854,6 +927,9 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -862,6 +938,10 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} + del@7.1.0: + resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} + engines: {node: '>=14.16'} + delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} @@ -881,6 +961,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + devtools-protocol@0.0.1286932: resolution: {integrity: sha512-wu58HMQll9voDjR4NlPyoDEw1syfzaBNHymMMZ/QOXiHRNluOnDgu9hp1yHOKYoMlxCh4lSSiugLITe6Fvu1eA==} @@ -892,6 +976,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -901,6 +988,9 @@ packages: email-addresses@5.0.0: resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} + emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -945,6 +1035,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} @@ -970,6 +1064,17 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + extract-zip@2.0.1: resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} engines: {node: '>= 10.17.0'} @@ -1020,6 +1125,26 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} + findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + + fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} + + flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} + foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} @@ -1058,6 +1183,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} @@ -1091,6 +1220,14 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + + global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + globby@11.0.4: resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} engines: {node: '>=10'} @@ -1099,6 +1236,10 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@6.1.0: resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} engines: {node: '>=0.10.0'} @@ -1106,6 +1247,11 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -1134,6 +1280,13 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -1176,6 +1329,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + inflation@2.0.0: resolution: {integrity: sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==} engines: {node: '>= 0.8.0'} @@ -1189,6 +1346,17 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inquirer@9.3.5: + resolution: {integrity: sha512-SVRCRovA7KaT6nqWB2mCNpTvU4cuZ0hOXo5KPyiyOcNNUIZwq/JKtvXuDJNaxfuJKabBYRu1ecHze0YEwDYoRQ==} + engines: {node: '>=18'} + + interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -1199,6 +1367,10 @@ packages: ip@2.0.1: resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==} + is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -1231,6 +1403,14 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -1238,10 +1418,46 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-cwd@3.0.0: + resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -1257,6 +1473,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + istanbul-lib-coverage@3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} @@ -1294,6 +1514,10 @@ packages: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + koa-compose@4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} @@ -1320,6 +1544,10 @@ packages: resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + liftoff@4.0.0: + resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==} + engines: {node: '>=10.13.0'} + lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} @@ -1348,13 +1576,27 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} @@ -1382,6 +1624,14 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} + make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} + engines: {node: '>=0.10.0'} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true @@ -1446,6 +1696,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -1455,6 +1710,10 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + nanocolors@0.2.13: resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==} @@ -1472,10 +1731,20 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-plop@0.32.0: + resolution: {integrity: sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -1487,6 +1756,18 @@ packages: object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} + + object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} + engines: {node: '>=0.10.0'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -1505,6 +1786,18 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -1513,6 +1806,10 @@ packages: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} + p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -1525,6 +1822,17 @@ packages: resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} engines: {node: '>= 14'} + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -1532,6 +1840,12 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1547,6 +1861,14 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + + path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -1591,6 +1913,11 @@ packages: engines: {node: '>=16'} hasBin: true + plop@4.0.1: + resolution: {integrity: sha512-5n8QU93kvL/ObOzBcPAB1siVFtAH1TZM6TntJ3JK5kXT0jIgnQV+j+uaOWWFJlg1cNkzLYm8klgASF65K36q9w==} + engines: {node: '>=18'} + hasBin: true + portfinder@1.0.32: resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} @@ -1639,14 +1966,26 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + resolve-path@1.4.0: resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} engines: {node: '>= 0.8'} @@ -1659,10 +1998,19 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + rimraf@5.0.7: resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} engines: {node: '>=14.18'} @@ -1673,9 +2021,16 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -1701,6 +2056,9 @@ packages: engines: {node: '>=10'} hasBin: true + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + setprototypeof@1.1.0: resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} @@ -1732,6 +2090,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -1740,6 +2102,9 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + socks-proxy-agent@8.0.3: resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} @@ -1767,6 +2132,10 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + stream-read-all@3.0.1: resolution: {integrity: sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==} engines: {node: '>=10'} @@ -1782,6 +2151,13 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -1823,6 +2199,13 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -1882,9 +2265,18 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + uglify-js@3.19.0: + resolution: {integrity: sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==} + engines: {node: '>=0.8.0'} + hasBin: true + unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -1896,17 +2288,33 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + v8-to-istanbul@9.2.0: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} + v8flags@4.0.1: + resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} + engines: {node: '>= 10.13.0'} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-component-define@2.0.11: resolution: {integrity: sha512-oMOngNGL5k55NyaQNnPz0UnV5QtPuESvSuxpBgmHHfNjb8sgVm4akAFq7HO4I5bhGHX8Of+0XnUZ3whBo0chgw==} @@ -1918,11 +2326,18 @@ packages: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wordwrapjs@5.1.0: resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==} engines: {node: '>=12.17'} @@ -1993,6 +2408,10 @@ packages: resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} engines: {node: '>= 4.0.0'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -2053,6 +2472,8 @@ snapshots: '@github/catalyst@1.6.0': {} + '@inquirer/figures@1.0.4': {} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -2321,6 +2742,8 @@ snapshots: '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 + '@types/fined@1.1.5': {} + '@types/http-assert@1.5.3': {} '@types/http-assert@1.5.5': {} @@ -2329,6 +2752,11 @@ snapshots: '@types/http-errors@2.0.4': {} + '@types/inquirer@9.0.7': + dependencies: + '@types/through': 0.0.33 + rxjs: 7.8.1 + '@types/istanbul-lib-coverage@2.0.4': {} '@types/istanbul-lib-coverage@2.0.6': {} @@ -2383,6 +2811,11 @@ snapshots: '@types/koa-compose': 3.2.8 '@types/node': 20.14.8 + '@types/liftoff@4.0.3': + dependencies: + '@types/fined': 1.1.5 + '@types/node': 20.14.8 + '@types/mime@1.3.2': {} '@types/mime@1.3.5': {} @@ -2438,6 +2871,10 @@ snapshots: '@types/sinonjs__fake-timers@8.1.5': {} + '@types/through@0.0.33': + dependencies: + '@types/node': 20.14.8 + '@types/trusted-types@2.0.7': {} '@types/ws@7.4.7': @@ -2699,6 +3136,11 @@ snapshots: transitivePeerDependencies: - supports-color + aggregate-error@4.0.1: + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -2728,6 +3170,10 @@ snapshots: array-back@6.2.2: {} + array-each@1.0.1: {} + + array-slice@1.1.0: {} + array-union@1.0.2: dependencies: array-uniq: 1.0.3 @@ -2787,6 +3233,12 @@ snapshots: binary-extensions@2.2.0: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -2825,8 +3277,19 @@ snapshots: function-bind: 1.1.1 get-intrinsic: 1.2.1 + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + camelcase@6.3.0: {} + capital-case@1.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + cem-plugin-expanded-types@1.3.1: {} chai-a11y-axe@1.5.0: @@ -2848,6 +3311,25 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.3.0: {} + + change-case@4.1.2: + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + + chardet@0.7.0: {} + chokidar@3.5.2: dependencies: anymatch: 3.1.3 @@ -2900,16 +3382,30 @@ snapshots: urlpattern-polyfill: 10.0.0 zod: 3.22.4 + clean-stack@4.2.0: + dependencies: + escape-string-regexp: 5.0.0 + cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-spinners@2.9.2: {} + + cli-width@4.1.0: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone@1.0.4: {} + clone@2.1.2: {} co-body@6.1.0: @@ -2962,6 +3458,12 @@ snapshots: concat-map@0.0.1: {} + constant-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 @@ -3012,6 +3514,10 @@ snapshots: deepmerge@4.3.1: {} + defaults@1.0.4: + dependencies: + clone: 1.0.4 + define-lazy-prop@2.0.0: {} degenerator@5.0.1: @@ -3020,6 +3526,17 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 + del@7.1.0: + dependencies: + globby: 13.2.2 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 3.0.0 + is-path-inside: 4.0.0 + p-map: 5.5.0 + rimraf: 3.0.2 + slash: 4.0.0 + delegates@1.0.0: {} depd@1.1.2: {} @@ -3030,6 +3547,8 @@ snapshots: destroy@1.2.0: {} + detect-file@1.0.0: {} + devtools-protocol@0.0.1286932: {} diff@5.2.0: {} @@ -3038,12 +3557,19 @@ snapshots: dependencies: path-type: 4.0.0 + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + eastasianwidth@0.2.0: {} ee-first@1.1.1: {} email-addresses@5.0.0: {} + emoji-regex@10.3.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -3072,6 +3598,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + escodegen@2.1.0: dependencies: esprima: 4.0.1 @@ -3090,6 +3618,18 @@ snapshots: etag@1.8.1: {} + expand-tilde@2.0.2: + dependencies: + homedir-polyfill: 1.0.3 + + extend@3.0.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + extract-zip@2.0.1: dependencies: debug: 4.3.4 @@ -3157,6 +3697,29 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 + findup-sync@5.0.0: + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.7 + resolve-dir: 1.0.1 + + fined@2.0.0: + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 5.0.0 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + + flagged-respawn@2.0.0: {} + + for-in@1.0.2: {} + + for-own@1.0.0: + dependencies: + for-in: 1.0.2 + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 @@ -3186,6 +3749,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.2.0: {} + get-intrinsic@1.2.1: dependencies: function-bind: 1.1.1 @@ -3239,6 +3804,20 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-modules@1.0.0: + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + + global-prefix@1.0.2: + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + globby@11.0.4: dependencies: array-union: 2.1.0 @@ -3257,6 +3836,14 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + globby@6.1.0: dependencies: array-union: 1.0.2 @@ -3267,6 +3854,15 @@ snapshots: graceful-fs@4.2.11: {} + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.0 + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -3287,6 +3883,15 @@ snapshots: dependencies: function-bind: 1.1.2 + header-case@2.0.4: + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + + homedir-polyfill@1.0.3: + dependencies: + parse-passwd: 1.0.0 + html-escaper@2.0.2: {} http-assert@1.5.0: @@ -3341,6 +3946,8 @@ snapshots: ignore@5.3.1: {} + indent-string@5.0.0: {} + inflation@2.0.0: {} inflight@1.0.6: @@ -3352,6 +3959,25 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + + inquirer@9.3.5: + dependencies: + '@inquirer/figures': 1.0.4 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + external-editor: 3.1.0 + mute-stream: 1.0.0 + ora: 5.4.1 + run-async: 3.0.0 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + interpret@3.1.1: {} + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -3361,6 +3987,11 @@ snapshots: ip@2.0.1: {} + is-absolute@1.0.0: + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 @@ -3387,12 +4018,38 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-interactive@1.0.0: {} + + is-interactive@2.0.0: {} + is-module@1.0.0: {} is-number@7.0.0: {} + is-path-cwd@3.0.0: {} + + is-path-inside@4.0.0: {} + + is-plain-object@5.0.0: {} + + is-relative@1.0.0: + dependencies: + is-unc-path: 1.0.0 + is-stream@2.0.1: {} + is-unc-path@1.0.0: + dependencies: + unc-path-regex: 0.1.2 + + is-unicode-supported@0.1.0: {} + + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.0.0: {} + + is-windows@1.0.2: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -3403,6 +4060,8 @@ snapshots: isexe@2.0.0: {} + isobject@3.0.1: {} + istanbul-lib-coverage@3.2.0: {} istanbul-lib-coverage@3.2.2: {} @@ -3443,6 +4102,8 @@ snapshots: dependencies: tsscmp: 1.0.6 + kind-of@6.0.3: {} + koa-compose@4.1.0: {} koa-convert@2.0.0: @@ -3525,6 +4186,17 @@ snapshots: transitivePeerDependencies: - supports-color + liftoff@4.0.0: + dependencies: + extend: 3.0.2 + findup-sync: 5.0.0 + fined: 2.0.0 + flagged-respawn: 2.0.0 + is-plain-object: 5.0.0 + object.map: 1.0.1 + rechoir: 0.8.0 + resolve: 1.22.8 + lighthouse-logger@1.4.2: dependencies: debug: 2.6.9 @@ -3564,8 +4236,20 @@ snapshots: lodash.camelcase@4.3.0: {} + lodash.get@4.4.2: {} + lodash@4.17.21: {} + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + log-update@4.0.0: dependencies: ansi-escapes: 4.3.2 @@ -3573,6 +4257,10 @@ snapshots: slice-ansi: 4.0.0 wrap-ansi: 6.2.0 + lower-case@2.0.2: + dependencies: + tslib: 2.6.2 + lru-cache@10.2.2: {} lru-cache@6.0.0: @@ -3593,6 +4281,12 @@ snapshots: dependencies: semver: 7.5.4 + make-iterator@1.0.1: + dependencies: + kind-of: 6.0.3 + + map-cache@0.2.2: {} + markdown-it@14.1.0: dependencies: argparse: 2.0.1 @@ -3648,12 +4342,16 @@ snapshots: mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + ms@2.0.0: {} ms@2.1.2: {} ms@2.1.3: {} + mute-stream@1.0.0: {} + nanocolors@0.2.13: {} nanoid@3.3.6: {} @@ -3662,14 +4360,53 @@ snapshots: negotiator@0.6.3: {} + neo-async@2.6.2: {} + netmask@2.0.2: {} + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + + node-plop@0.32.0: + dependencies: + '@types/inquirer': 9.0.7 + change-case: 4.1.2 + del: 7.1.0 + globby: 13.2.2 + handlebars: 4.7.8 + inquirer: 9.3.5 + isbinaryfile: 5.0.2 + lodash.get: 4.4.2 + lower-case: 2.0.2 + mkdirp: 3.0.1 + resolve: 1.22.8 + title-case: 3.0.3 + upper-case: 2.0.2 + normalize-path@3.0.0: {} object-assign@4.1.1: {} object-inspect@1.12.3: {} + object.defaults@1.1.0: + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + + object.map@1.0.1: + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -3690,6 +4427,32 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + ora@8.0.1: + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + os-tmpdir@1.0.2: {} + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -3698,6 +4461,10 @@ snapshots: dependencies: p-limit: 2.3.0 + p-map@5.5.0: + dependencies: + aggregate-error: 4.0.1 + p-try@2.2.0: {} pac-proxy-agent@7.0.1: @@ -3718,10 +4485,33 @@ snapshots: degenerator: 5.0.1 netmask: 2.0.2 + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + + parse-filepath@1.0.2: + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + + parse-passwd@1.0.0: {} + parse5@6.0.1: {} parseurl@1.3.3: {} + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + + path-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -3730,6 +4520,12 @@ snapshots: path-parse@1.0.7: {} + path-root-regex@0.1.2: {} + + path-root@0.1.1: + dependencies: + path-root-regex: 0.1.2 + path-scurry@1.11.1: dependencies: lru-cache: 10.2.2 @@ -3763,6 +4559,17 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + plop@4.0.1: + dependencies: + '@types/liftoff': 4.0.3 + chalk: 5.3.0 + interpret: 3.1.1 + liftoff: 4.0.0 + minimist: 1.2.8 + node-plop: 0.32.0 + ora: 8.0.1 + v8flags: 4.0.1 + portfinder@1.0.32: dependencies: async: 2.6.4 @@ -3826,12 +4633,27 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 + rechoir@0.8.0: + dependencies: + resolve: 1.22.8 + require-directory@2.1.1: {} + resolve-dir@1.0.1: + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + resolve-path@1.4.0: dependencies: http-errors: 1.6.3 @@ -3848,8 +4670,17 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + reusify@1.0.4: {} + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + rimraf@5.0.7: dependencies: glob: 10.4.1 @@ -3876,10 +4707,16 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 + run-async@3.0.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.1: + dependencies: + tslib: 2.6.2 + safe-buffer@5.2.1: {} safer-buffer@2.1.2: {} @@ -3896,6 +4733,12 @@ snapshots: semver@7.6.2: {} + sentence-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + setprototypeof@1.1.0: {} setprototypeof@1.2.0: {} @@ -3922,6 +4765,8 @@ snapshots: slash@3.0.0: {} + slash@4.0.0: {} + slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -3930,6 +4775,11 @@ snapshots: smart-buffer@4.2.0: {} + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + socks-proxy-agent@8.0.3: dependencies: agent-base: 7.1.1 @@ -3943,8 +4793,7 @@ snapshots: ip-address: 9.0.5 smart-buffer: 4.2.0 - source-map@0.6.1: - optional: true + source-map@0.6.1: {} source-map@0.7.4: {} @@ -3954,6 +4803,8 @@ snapshots: statuses@2.0.1: {} + stdin-discarder@0.2.2: {} + stream-read-all@3.0.1: {} streamx@2.18.0: @@ -3976,6 +4827,16 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -4028,6 +4889,14 @@ snapshots: through@2.3.8: {} + title-case@3.0.3: + dependencies: + tslib: 2.6.2 + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -4072,27 +4941,48 @@ snapshots: uc.micro@2.1.0: {} + uglify-js@3.19.0: + optional: true + unbzip2-stream@1.4.3: dependencies: buffer: 5.7.1 through: 2.3.8 + unc-path-regex@0.1.2: {} + undici-types@5.26.5: {} universalify@2.0.1: {} unpipe@1.0.0: {} + upper-case-first@2.0.2: + dependencies: + tslib: 2.6.2 + + upper-case@2.0.2: + dependencies: + tslib: 2.6.2 + urlpattern-polyfill@10.0.0: {} + util-deprecate@1.0.2: {} + v8-to-istanbul@9.2.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + v8flags@4.0.1: {} + vary@1.1.2: {} + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + web-component-define@2.0.11: dependencies: '@lit/reactive-element': 1.6.3 @@ -4105,10 +4995,16 @@ snapshots: tr46: 3.0.0 webidl-conversions: 7.0.0 + which@1.3.1: + dependencies: + isexe: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 + wordwrap@1.0.0: {} + wordwrapjs@5.1.0: {} wrap-ansi@6.2.0: @@ -4160,4 +5056,6 @@ snapshots: ylru@1.3.2: {} + yoctocolors-cjs@2.1.2: {} + zod@3.22.4: {} diff --git a/scripts/plop/plopfile.js b/scripts/plop/plopfile.js index b40db07a..f72c2018 100644 --- a/scripts/plop/plopfile.js +++ b/scripts/plop/plopfile.js @@ -30,7 +30,7 @@ export default function (plop) { { type: 'input', name: 'tag', - message: `Tag name? (e.g. ${componentPrefix}-button)`, + message: `Tag name? (e.g. ${componentPrefix}button)`, validate: value => { // Start with light- and include only a-z + dashes const regex = new RegExp(`^${componentPrefix}[a-z-+]+`) @@ -52,32 +52,32 @@ export default function (plop) { actions: [ { type: 'add', - path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}-register.js', + path: '../../exports/components/{{ tag }}/{{ tag }}-register.js', templateFile: 'templates/component-register.hbs' }, { type: 'add', - path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.js', + path: '../../exports/components/{{ tag }}/{{ tag }}-globals.ts', templateFile: 'templates/component-globals.hbs' }, { type: 'add', - path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.js', + path: '../../exports/components/{{ tag }}/{{ tag }}.js', templateFile: 'templates/component.hbs' }, { type: 'add', - path: '../../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}.styles.js', + path: '../../exports/components/{{ tag }}/{{ tag }}.styles.js', templateFile: 'templates/component-styles.hbs' }, { type: 'add', - path: '../../tests/{{ tagWithoutPrefix tag }}.test.js', + path: '../../tests/{{ tag }}.test.js', templateFile: 'templates/component-tests.hbs' }, { type: 'add', - path: '../../docs/src/_documentation/components/{{ tagWithoutPrefix tag }}.md', + path: '../../docs/src/_documentation/components/{{ tag }}.md', templateFile: 'templates/component-docs.hbs' }, { @@ -87,7 +87,8 @@ export default function (plop) { const properCase = plop.getHelper("properCase") const directories = getDirectories(path.resolve(process.cwd(), "exports", "components")) const contents = directories.sort().map((directoryName) => { - const componentPath = tagWithoutPrefix(directoryName) + // const componentPath = tagWithoutPrefix(directoryName) + const componentPath = directoryName return `export { default as ${properCase(directoryName)} } from "./components/${componentPath}/${componentPath}-register.js"` }) return contents.join("\n") diff --git a/scripts/plop/templates/component-globals.hbs b/scripts/plop/templates/component-globals.hbs index 0087c1ca..a4058189 100644 --- a/scripts/plop/templates/component-globals.hbs +++ b/scripts/plop/templates/component-globals.hbs @@ -1,4 +1,4 @@ -import type {{ properCase tag }} from "./{{ tagWithoutPrefix tag }}.js" +import type {{ properCase tag }} from "./{{ tag }}.js" declare global { interface HTMLElementTagNameMap { diff --git a/scripts/plop/templates/component-register.hbs b/scripts/plop/templates/component-register.hbs index d46187d6..96dff9a7 100644 --- a/scripts/plop/templates/component-register.hbs +++ b/scripts/plop/templates/component-register.hbs @@ -1,11 +1,11 @@ // @ts-check -import {{ properCase tag }} from './{{ tagWithoutPrefix tag }}.js'; +import {{ properCase tag }} from './{{ tag }}.js'; {{ properCase tag }}.define('{{ tag }}'); export default {{ properCase tag }}; -export * from './{{ tagWithoutPrefix tag }}.js'; +export * from './{{ tag }}.js'; /** - * @type {import("./{{ tagWithoutPrefix tag }}-globals.js")} + * @type {import("./{{ tag }}-globals.js")} */ diff --git a/scripts/plop/templates/component-tests.hbs b/scripts/plop/templates/component-tests.hbs index ab90865b..0703b556 100644 --- a/scripts/plop/templates/component-tests.hbs +++ b/scripts/plop/templates/component-tests.hbs @@ -1,5 +1,5 @@ import { html, fixture, assert } from "@open-wc/testing" -import "../exports/components/{{ tagWithoutPrefix tag }}/{{ tagWithoutPrefix tag }}-register.js" +import "../exports/components/{{ tag }}/{{ tag }}-register.js" suite('<{{ tag }}>', () => { test("Should render a component", async () => { diff --git a/scripts/plop/templates/component.hbs b/scripts/plop/templates/component.hbs index dc0e84e2..9b1986ea 100644 --- a/scripts/plop/templates/component.hbs +++ b/scripts/plop/templates/component.hbs @@ -1,18 +1,18 @@ import { html } from "lit" import { BaseElement } from "../../../internal/base-element.js"; -import { hostStyles } from "../../styles/host-styles.js"; -import { componentStyles } from "./{{ tagWithoutPrefix tag }}.styles.js"; +import { baseStyles } from "../../styles/base-styles.js"; +import { componentStyles } from "./{{ tag }}.styles.js"; /** * @customElement * @tagname {{ tag }} * @summary Short summary of the component's intended use. - * @documentation https://role-components.vercel.app/components/{{ tagWithoutPrefix tag }} + * @documentation https://konnorrogers.github.io/light-pen/components/{{ tag }} * @status experimental - * @since 3.0 + * @since 4.0 * - * @event role-event-name - Emitted as an example. + * @event light-event-name - Emitted as an example. * * @slot - The default slot. * @@ -21,16 +21,29 @@ import { componentStyles } from "./{{ tagWithoutPrefix tag }}.styles.js"; * @cssproperty --example - An example CSS custom property. */ export default class {{ properCase tag }} extends BaseElement { + /** + * @override + */ static baseName = "{{ tag }}" + + /** + * @override + */ static styles = [ - hostStyles, + baseStyles, componentStyles, ] + /** + * @override + */ static properties = /** @type {const} */ ({ }) + /** + * @override + */ render () { return html` diff --git a/tests/light-diff-viewer.test.js b/tests/light-diff-viewer.test.js new file mode 100644 index 00000000..b4a64dc9 --- /dev/null +++ b/tests/light-diff-viewer.test.js @@ -0,0 +1,10 @@ +import { html, fixture, assert } from "@open-wc/testing" +import "../exports/components/light-diff-viewer/light-diff-viewer-register.js" + +suite('', () => { + test("Should render a component", async () => { + const el = await fixture(html` `); + + assert(el.matches(":defined"), `"${el.tagName.toLowerCase()}" element should be ":defined"`) + }) +}) From 2f1e4d05ed0fad70c922431759ecfe6ba44a3f76 Mon Sep 17 00:00:00 2001 From: Konnor Rogers Date: Tue, 23 Jul 2024 12:06:20 -0400 Subject: [PATCH 03/14] working on diff viewing --- docs/frontend/javascript/src/lazy-loader.js | 5 + .../components/light-diff-viewer.md | 16 +- exports/components/light-code/light-code.js | 3 +- .../light-diff-viewer/compute-line-info.js | 326 +++++++++++ .../light-diff-viewer/light-diff-viewer.js | 517 +++++++++++++++++- .../light-diff-viewer.styles.js | 73 ++- .../components/light-editor/light-editor.js | 2 +- .../components/light-preview/light-preview.js | 182 +++--- exports/styles/code-styles.js | 1 + internal/line-highlight-plugin.js | 6 +- internal/line-number-plugin.js | 29 +- internal/number-range.js | 15 +- internal/prism-highlight.js | 16 +- internal/replace-functions.js | 30 + package.json | 3 + pnpm-lock.yaml | 14 + 16 files changed, 1118 insertions(+), 120 deletions(-) create mode 100644 exports/components/light-diff-viewer/compute-line-info.js create mode 100644 internal/replace-functions.js diff --git a/docs/frontend/javascript/src/lazy-loader.js b/docs/frontend/javascript/src/lazy-loader.js index 5ccaf103..bc6b9135 100644 --- a/docs/frontend/javascript/src/lazy-loader.js +++ b/docs/frontend/javascript/src/lazy-loader.js @@ -23,6 +23,11 @@ export default function lazyLoader() { import("light-pen/exports/components/light-preview/light-preview-register.js") } }, + "light-diff-viewer": { + register () { + import("light-pen/exports/components/light-diff-viewer/light-diff-viewer-register.js") + } + }, "clipboard-copy": { register() { import("@github/clipboard-copy-element"); diff --git a/docs/src/_documentation/components/light-diff-viewer.md b/docs/src/_documentation/components/light-diff-viewer.md index 12143f97..b7f212b2 100644 --- a/docs/src/_documentation/components/light-diff-viewer.md +++ b/docs/src/_documentation/components/light-diff-viewer.md @@ -1,4 +1,5 @@ --- +title: --- @@ -11,7 +12,20 @@ script-scope="shadow-dom" > diff --git a/exports/components/light-code/light-code.js b/exports/components/light-code/light-code.js index f0ceb913..142dca09 100644 --- a/exports/components/light-code/light-code.js +++ b/exports/components/light-code/light-code.js @@ -88,9 +88,8 @@ export default class LightCode extends BaseElement { * @override */ static properties = { - summary: {}, disableHighlight: { type: Boolean, attribute: "disable-highlight" }, - preserveWhitespace: { type: Boolean, attribute: "preserveWhitespace" }, + preserveWhitespace: { type: Boolean, attribute: "preserve-whitespace" }, highlightLines: { attribute: "highlight-lines" }, insertedLines: { attribute: "inserted-lines" }, deletedLines: { attribute: "deleted-lines" }, diff --git a/exports/components/light-diff-viewer/compute-line-info.js b/exports/components/light-diff-viewer/compute-line-info.js new file mode 100644 index 00000000..74a32952 --- /dev/null +++ b/exports/components/light-diff-viewer/compute-line-info.js @@ -0,0 +1,326 @@ +import * as diff from 'diff'; + +export const DiffType = /** @type {const} */ ({ + DEFAULT: "default", + ADDED: "added", + REMOVED: "removed", + /** "empty" is not directly used here, but is used by the diff viewer to denote lines that dont exist. */ + EMPTY: "empty" +}) + +/** + * @typedef {typeof DiffType[keyof typeof DiffType]} DiffTypeValues + */ + +// See https://github.com/kpdecker/jsdiff/tree/v4.0.1#api for more info on the below JsDiff methods +export const DiffMethod = /** @type {const} */({ + CHARS: 'diffChars', + WORDS: 'diffWords', + WORDS_WITH_SPACE: 'diffWordsWithSpace', + LINES: 'diffLines', + TRIMMED_LINES: 'diffTrimmedLines', + SENTENCES: 'diffSentences', + CSS: 'diffCss', +}) + +/** + * @typedef {object} DiffInformation + * @property {string | DiffInformation[]} [value] + * @property {number} [lineNumber] + * @property {typeof DiffType[keyof typeof DiffType]} [type] + */ + + /** + * @typedef {object} LineInformation + * @property {DiffInformation} left + * @property {DiffInformation} right + */ + + + /** + * @typedef {object} ComputedLineInformation + * @property {LineInformation[]} lineInformation + * @property {number[]} diffLines + */ + + /** + * @typedef {object} ComputedDiffInformation + * @property {DiffInformation[]} left + * @property {DiffInformation[]} right + */ + +// See https://github.com/kpdecker/jsdiff/tree/v4.0.1#change-objects for more info on JsDiff +// Change Objects +/** + * @typedef {object} JsDiffChangeObject + * @property {boolean} [added] + * @property {boolean} [removed] + * @property {string} [value] + */ + +/** + * Splits diff text by new line and computes final list of diff lines based on + * conditions. + * + * @param {string} value Diff text from the js diff module. + * @returns {string[]} + */ +const constructLines = (value) => { + const lines = value.split('\n'); + const isAllEmpty = lines.every((val) => !val); + if (isAllEmpty) { + // This is to avoid added an extra new line in the UI. + if (lines.length === 2) { + return []; + } + lines.pop(); + return lines; + } + + const lastLine = lines[lines.length - 1]; + const firstLine = lines[0]; + // Remove the first and last element if they are new line character. This is + // to avoid addition of extra new line in the UI. + if (!lastLine) { + lines.pop(); + } + if (!firstLine) { + lines.shift(); + } + return lines; +}; + +/** + * Computes word diff information in the line. + * [TODO]: Consider adding options argument for JsDiff text block comparison + * + * @param {string} oldValue - Old word in the line. + * @param {string} newValue - New word in the line. + * @param {typeof DiffMethod[keyof typeof DiffMethod]} [compareMethod="diffChars"] - JsDiff text diff method from https://github.com/kpdecker/jsdiff/tree/v4.0.1#api + * @returns {ComputedDiffInformation} + */ +const computeDiff = ( + oldValue, + newValue, + compareMethod = DiffMethod.CHARS, +) => { + /** + * @type {JsDiffChangeObject[]} + */ + const diffArray = diff[compareMethod]( + oldValue, + newValue, + ); + + /** + * @type {ComputedDiffInformation} + */ + const computedDiff = { + left: [], + right: [], + }; + diffArray.forEach( + /** @returns {DiffInformation} */ + ({ added, removed, value }) => { + /** @type {DiffInformation} */ + const diffInformation = {}; + if (added) { + diffInformation.type = DiffType.ADDED; + diffInformation.value = value; + computedDiff.right.push(diffInformation); + } + if (removed) { + diffInformation.type = DiffType.REMOVED; + diffInformation.value = value; + computedDiff.left.push(diffInformation); + } + if (!removed && !added) { + diffInformation.type = DiffType.DEFAULT; + diffInformation.value = value; + computedDiff.right.push(diffInformation); + computedDiff.left.push(diffInformation); + } + return diffInformation; + }, + ); + return computedDiff; +}; + +/** + * [TODO]: Think about moving common left and right value assignment to a + * common place. Better readability? + * + * Computes line wise information based in the js diff information passed. Each + * line contains information about left and right section. Left side denotes + * deletion and right side denotes addition. + * + * @param {string} oldString - Old string to compare. + * @param {string} newString - New string to compare with old string. + * @param {boolean} [disableWordDiff=false] - Flag to enable/disable word diff. + * @param {typeof DiffMethod[keyof typeof DiffMethod]} [compareMethod="diffChars"] - JsDiff text diff method from https://github.com/kpdecker/jsdiff/tree/v4.0.1#api + * @param {number} [linesOffset=0] - line number to start counting from + * @returns {ComputedLineInformation} + */ +const computeLineInformation = ( + oldString, + newString, + disableWordDiff = false, + compareMethod = DiffMethod.CHARS, + linesOffset = 0, +) => { + const diffArray = diff.diffLines( + oldString.trimStart(), + newString.trimStart(), + { + newlineIsToken: true, + ignoreWhitespace: false, + ignoreCase: false, + }, + ); + let rightLineNumber = linesOffset; + let leftLineNumber = linesOffset; + + /** + * @type {LineInformation[]} + */ + let lineInformation = []; + let counter = 0; + + /** + * @type {number[]} + */ + const diffLines = []; + + /** + * @type {string[]} + */ + const ignoreDiffIndexes = []; + + /** + * @param {string} value + * @param {number} diffIndex + * @param {boolean} [added] + * @param {boolean} [removed] + * @param {boolean} [evaluateOnlyFirstLine] + * @returns {LineInformation[]} + */ + const getLineInformation = ( + value, + diffIndex, + added, + removed, + evaluateOnlyFirstLine, + ) => { + const lines = constructLines(value); + + return lines + .map( + /** + * @param {string} line + * @param {number} lineIndex + * @returns {LineInformation} + */ + (line, lineIndex) => { + /** + * @type {DiffInformation} + */ + const left = {}; + + /** + * @type {DiffInformation} + */ + const right = {}; + if ( + ignoreDiffIndexes.includes(`${diffIndex}-${lineIndex}`) || + (evaluateOnlyFirstLine && lineIndex !== 0) + ) { + return undefined; + } + if (added || removed) { + if (!diffLines.includes(counter)) { + diffLines.push(counter); + } + if (removed) { + leftLineNumber += 1; + left.lineNumber = leftLineNumber; + left.type = DiffType.REMOVED; + left.value = line || ' '; + // When the current line is of type REMOVED, check the next item in + // the diff array whether it is of type ADDED. If true, the current + // diff will be marked as both REMOVED and ADDED. Meaning, the + // current line is a modification. + const nextDiff = diffArray[diffIndex + 1]; + if (nextDiff && nextDiff.added) { + const nextDiffLines = constructLines(nextDiff.value)[lineIndex]; + if (nextDiffLines) { + const { + value: rightValue, + lineNumber, + type, + } = getLineInformation( + nextDiff.value, + diffIndex, + true, + false, + true, + )[0].right; + // When identified as modification, push the next diff to ignore + // list as the next value will be added in this line computation as + // right and left values. + ignoreDiffIndexes.push(`${diffIndex + 1}-${lineIndex}`); + right.lineNumber = lineNumber; + right.type = type; + // Do word level diff and assign the corresponding values to the + // left and right diff information object. + if (disableWordDiff) { + right.value = rightValue; + } else { + const computedDiff = computeDiff( + line, + /** @type {string} */ (rightValue), + compareMethod, + ); + right.value = computedDiff.right; + left.value = computedDiff.left; + } + } + } + } else { + rightLineNumber += 1; + right.lineNumber = rightLineNumber; + right.type = DiffType.ADDED; + right.value = line; + } + } else { + leftLineNumber += 1; + rightLineNumber += 1; + + left.lineNumber = leftLineNumber; + left.type = DiffType.DEFAULT; + left.value = line; + right.lineNumber = rightLineNumber; + right.type = DiffType.DEFAULT; + right.value = line; + } + + counter += 1; + return { right, left }; + }, + ) + .filter(Boolean); + }; + + diffArray.forEach((/** @type {import('diff').Change} */ { added, removed, value }, index) => { + lineInformation = [ + ...lineInformation, + ...getLineInformation(value, index, added, removed), + ]; + }); + + return { + lineInformation, + diffLines, + }; +}; + +export { computeLineInformation }; diff --git a/exports/components/light-diff-viewer/light-diff-viewer.js b/exports/components/light-diff-viewer/light-diff-viewer.js index ace97cf8..ff2f7736 100644 --- a/exports/components/light-diff-viewer/light-diff-viewer.js +++ b/exports/components/light-diff-viewer/light-diff-viewer.js @@ -3,6 +3,52 @@ import { html } from "lit" import { BaseElement } from "../../../internal/base-element.js"; import { baseStyles } from "../../styles/base-styles.js"; import { componentStyles } from "./light-diff-viewer.styles.js"; +import LightCode from "../light-code/light-code.js"; + +import { elementsToString } from "../../../internal/elements-to-strings.js"; +import { dedent } from "../../../internal/dedent.js"; +import { createPrismInstance, PrismEnv, PrismHighlight } from "../../../internal/prism-highlight.js"; +import { replaceLast } from "../../../internal/replace-functions.js"; +import { diffChars, diffLines, diffWords, diffWordsWithSpace } from "diff"; +import { computeLineInformation, DiffType } from "./compute-line-info.js"; +import { unsafeHTML } from "lit/directives/unsafe-html.js"; +import { LineNumberPlugin } from "../../../internal/line-number-plugin.js"; +import { LineHighlightPlugin, LineHighlightWrapPlugin } from "../../../internal/line-highlight-plugin.js"; +import { Token } from "prism-esm"; +import { theme } from "../../styles/default-theme.styles.js"; +import { codeStyles } from "../../styles/code-styles.js"; +import { NumberRange } from "../../../internal/number-range.js"; + +// import { +// diffCss, +// diffJson, +// diffChars, +// merge, +// diffLines, + // diffWords, +// applyPatch, +// diffArrays, +// parsePatch, +// applyPatches, +// createPatch, +// canonicalize, +// reversePatch, +// diffSentences, +// structuredPatch, +// createTwoFilesPatch, +// diffWordsWithSpace, +// diffTrimmedLines, +// } from 'diff'; +// import { getDiffableHTML } from '@open-wc/semantic-dom-diff/get-diffable-html.js'; + + +/** + * @typedef {object} LineDiffData + * @property {number} length - length of the diff. + * @property {import("./compute-line-info.js").DiffTypeValues} type - The type of diff + * @property {number} offset - The offset along the X axis where the diff starts. + */ + /** * @customElement @@ -26,11 +72,20 @@ export default class LightDiffViewer extends BaseElement { */ static baseName = "light-diff-viewer" + /** + * @override + */ + static dependencies = { + "light-code": LightCode + } + /** * @override */ static styles = [ baseStyles, + // codeStyles, + theme, componentStyles, ] @@ -38,15 +93,473 @@ export default class LightDiffViewer extends BaseElement { * @override */ static properties = /** @type {const} */ ({ + view: {}, + new: {}, + old: {}, + // properties + disableHighlight: { type: Boolean, attribute: "disable-highlight" }, + preserveWhitespace: { type: Boolean, attribute: "preserve-whitespace" }, + emptyLines: { attribute: "highlight-lines" }, + insertedLines: { attribute: "inserted-lines" }, + deletedLines: { attribute: "deleted-lines" }, + disableLineNumbers: { type: Boolean, reflect: true, attribute: "disable-line-numbers" }, + lineNumberStart: { type: Number, attribute: "line-number-start" }, + wrap: { reflect: true, attribute: "wrap" }, + language: {}, + code: {}, + highlighter: {attribute: false, state: true}, }) + constructor () { + super() + + this.new = ` + const y = "Hello Moto" + console.log(y) + ` + + this.old = ` + const y = "Hello World" + ` + + /** + * Side by side is for a typical GitHub like view. "3-way" will show the "old" on the left, the "merged" diff in the middle, and the "new" on the right. + * @type {"side-by-side" | "3-way"} + */ + this.view = "side-by-side" + + // Light Code properties to forward + + /** + * The language to highlight for. + * Supported languages out of the box are "html", "javascript", "markdown", "css", "js", "ts" + * For more on how to add additional languages, check out the docs. + * @type {string} + */ + this.language = "html" + + /** + * @type {Boolean} + * Whether or not to preserve white spaces from templates and attempt to dedent and chomp new lines. + */ + this.preserveWhitespace = false + + /** + * If disabled, its on you to provide `
` + * @type {boolean} + */ + this.disableHighlight = false + + /** + * @type {string} - A string of possible lines to highlight. Example: "{1-9, 16, 18}" + */ + this.emptyLines = "" + + /** + * @type {string} - A string of lines that are inserted for diffs. Example: "{1-9, 16, 18}" + */ + this.insertedLines = "" + + /** + * @type {string} - A string of lines that are deleted for diffs. Example: "{1-9, 16, 18}" + */ + this.deletedLines = "" + + /** + * @type {boolean} whether or not to disable line numbers + */ + this.disableLineNumbers = false + + /** + * Where to start counting indexes in the gutter. Note, this is purely for display purposes. + * @type {number} + */ + this.lineNumberStart = 1 + + /** + * We will take the code, wrap it in `
` and run it through + * Prism.js. + * If the element has `disableHighlight`, we will not touch their code. Instead they must pass in escapedHTML. + * @type {string} + */ + this.code = "" + + + /** + * Points to an instance of Prism from "prism-esm" for adjusting highlighting, adding plugins, etc. + * @type {ReturnType} + */ + this.highlighter = createPrismInstance() + + /** + * @property + * @type {"soft" | "hard"} + * If `wrap="soft"`, lines will wrap when they reach the edge of their container. If `wrap="none"`, lines will not wrap instead all the user to scroll horizontally to see more code. + */ + this.wrap = "hard" + + /** + * Whether or not to transform `</script>` into ` @@ -149,7 +150,6 @@ Deleted lines can be highlighted via `deleted-lines` attribute. - ### Disable Line Numbers diff --git a/docs/src/_documentation/components/light-diff-viewer.md b/docs/src/_documentation/components/light-diff-viewer.md index b7f212b2..2f760649 100644 --- a/docs/src/_documentation/components/light-diff-viewer.md +++ b/docs/src/_documentation/components/light-diff-viewer.md @@ -2,15 +2,16 @@ title: --- - ## Examples + @@ -130,6 +132,7 @@ We can use a ` + @@ -154,6 +157,7 @@ This is intentional to keep the bundle size low. Supported languages are `html`, } + @@ -247,6 +251,7 @@ Removing line numbers can be done with the boolean attribute `disable-line-numbe </script> + @@ -298,7 +303,6 @@ Here's a preview of soft wrapping vs hard wrapping. - ## Additional Notes ### Caveats to the initial editor value @@ -312,7 +316,7 @@ is to use `value` attribute. Like so: ### Problems with declarative slotting -If you really *want* declarative slotting, it's best to use a `