diff --git a/modules/docs/.gitignore b/modules/docs/.gitignore
new file mode 100644
index 0000000..f440599
--- /dev/null
+++ b/modules/docs/.gitignore
@@ -0,0 +1,5 @@
+.DS_Store
+node_modules
+resources
+public
+hugo_stats.json
diff --git a/modules/docs/.hugo_build.lock b/modules/docs/.hugo_build.lock
new file mode 100644
index 0000000..e69de29
diff --git a/modules/docs/.prettierrc b/modules/docs/.prettierrc
new file mode 100644
index 0000000..47dd805
--- /dev/null
+++ b/modules/docs/.prettierrc
@@ -0,0 +1,18 @@
+{
+ "printWidth": 90,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "bracketSpacing": false,
+ "quoteProps": "consistent",
+ "trailingComma": "none",
+ "arrowParens": "always",
+ "plugins": ["prettier-plugin-go-template"],
+ "overrides": [
+ {
+ "files": ["*.html"],
+ "options": {
+ "parser": "go-template"
+ }
+ }
+ ]
+}
diff --git a/modules/docs/README.md b/modules/docs/README.md
new file mode 100644
index 0000000..36ca3c6
--- /dev/null
+++ b/modules/docs/README.md
@@ -0,0 +1,46 @@
+# Hugo Starter Site
+
+This is my favorite way to code static websites. It's a Hugo site with the following front-end technologies built in.
+
+### CUBE CSS
+
+I copied much of the inspiring [cube-boilerplate](https://github.com/Set-Creative-Studio/cube-boilerplate/tree/main) into this Hugo enviroment. I've modified it to use the [utopia-core](https://github.com/trys/utopia-core) functions for font sizes and spacing.
+
+The boilerplate uses a modified tailwindcss config. In order to get tailwindy behavior in Hugo, I followed this [hugo-starter-tailwind-basic](https://github.com/bep/hugo-starter-tailwind-basic) from [bep](https://github.com/bep).
+
+### Hotwired Turbo
+
+I use [@hotwired/turbo](https://github.com/hotwired/turbo) to speed everything up for free.
+
+## Installation
+
+```sh
+
+git clone https://github.com/jameskerr/hugo-starter
+
+mv hugo-starter my-cool-site # rename to something you want
+
+cd my-cool-site
+
+yarn
+
+hugo server
+```
+
+## CSS Instructions
+
+Add your own CSS files anywhere in these directories to have them automatically included.
+
+- `assets/css/blocks/`
+- `assets/css/compositions/`
+- `assets/css/utilities/`
+
+Take a look at `assets/css/main.css` for how it all is stitched together. Also visit the docs for [CUBE CSS](https://cube.fyi/) and [Utopia](https://utopia.fyi/).
+
+## JS Instructions
+
+Add your JavaScript files to `assets/js`, then import then into `assets/js/main.js`. These will get build using Hugo's [js.Build pipe](https://gohugo.io/hugo-pipes/js/).
+
+Enjoy!
+
+Authored by [James Kerr](http://jameskerr.blog)
diff --git a/modules/docs/archetypes/default.md b/modules/docs/archetypes/default.md
new file mode 100644
index 0000000..c6f3fce
--- /dev/null
+++ b/modules/docs/archetypes/default.md
@@ -0,0 +1,5 @@
++++
+title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+date = {{ .Date }}
+draft = true
++++
diff --git a/modules/docs/assets/css-utils/tokens-to-tailwind.js b/modules/docs/assets/css-utils/tokens-to-tailwind.js
new file mode 100644
index 0000000..2e91360
--- /dev/null
+++ b/modules/docs/assets/css-utils/tokens-to-tailwind.js
@@ -0,0 +1,24 @@
+const slugify = require('slugify');
+
+const nameSlug = (text) => {
+ return slugify(text, {lower: true});
+};
+
+/**
+ * Converts human readable tokens into tailwind config friendly ones
+ *
+ * @param {array} tokens {name: string, value: any}
+ * @return {object} {key, value}
+ */
+const tokensToTailwind = (tokens, options = {slugify: true}) => {
+ let response = {};
+
+ tokens.forEach(({name, value}) => {
+ const key = options.slugify ? nameSlug(name) : name;
+ response[key] = value;
+ });
+
+ return response;
+};
+
+module.exports = tokensToTailwind;
diff --git a/modules/docs/assets/css/blocks/code-example.css b/modules/docs/assets/css/blocks/code-example.css
new file mode 100644
index 0000000..e69de29
diff --git a/modules/docs/assets/css/blocks/prose.css b/modules/docs/assets/css/blocks/prose.css
new file mode 100644
index 0000000..2403c79
--- /dev/null
+++ b/modules/docs/assets/css/blocks/prose.css
@@ -0,0 +1,7 @@
+.prose {
+ --flow-space: var(--space-m);
+}
+
+.prose p {
+ max-inline-size: var(--measure);
+}
diff --git a/modules/docs/assets/css/compositions/cluster.css b/modules/docs/assets/css/compositions/cluster.css
new file mode 100644
index 0000000..e516517
--- /dev/null
+++ b/modules/docs/assets/css/compositions/cluster.css
@@ -0,0 +1,24 @@
+/*
+CLUSTER
+More info: https://every-layout.dev/layouts/cluster/
+A layout that lets you distribute items with consitent
+spacing, regardless of their size
+
+CUSTOM PROPERTIES AND CONFIGURATION
+--gutter (var(--space-s-m)): This defines the space
+between each item.
+
+--cluster-horizontal-alignment (flex-start) How items should align
+horizontally. Can be any acceptable flexbox aligmnent value.
+
+--cluster-vertical-alignment How items should align vertically.
+Can be any acceptable flexbox alignment value.
+*/
+
+.cluster {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gutter, var(--space-s-m));
+ justify-content: var(--cluster-horizontal-alignment, flex-start);
+ align-items: var(--cluster-vertical-alignment, center);
+}
diff --git a/modules/docs/assets/css/compositions/flow.css b/modules/docs/assets/css/compositions/flow.css
new file mode 100644
index 0000000..8ab67b8
--- /dev/null
+++ b/modules/docs/assets/css/compositions/flow.css
@@ -0,0 +1,8 @@
+/*
+FLOW COMPOSITION
+Like the Every Layout stack: https://every-layout.dev/layouts/stack/
+Info about this implementation: https://piccalil.li/quick-tip/flow-utility/
+*/
+.flow > * + * {
+ margin-top: var(--flow-space, 1em);
+}
diff --git a/modules/docs/assets/css/compositions/grid.css b/modules/docs/assets/css/compositions/grid.css
new file mode 100644
index 0000000..c728913
--- /dev/null
+++ b/modules/docs/assets/css/compositions/grid.css
@@ -0,0 +1,59 @@
+/* AUTO GRID
+Related Every Layout: https://every-layout.dev/layouts/grid/
+More info on the flexible nature: https://piccalil.li/tutorial/create-a-responsive-grid-layout-with-no-media-queries-using-css-grid/
+A flexible layout that will create an auto-fill grid with
+configurable grid item sizes
+
+CUSTOM PROPERTIES AND CONFIGURATION
+--gutter (var(--space-s-m)): This defines the space
+between each item.
+
+--grid-min-item-size (14rem): How large each item should be
+ideally, as a minimum.
+
+--grid-placement (auto-fill): Set either auto-fit or auto-fill
+to change how empty grid tracks are handled */
+
+.grid {
+ display: grid;
+ grid-template-columns: repeat(
+ var(--grid-placement, auto-fill),
+ minmax(var(--grid-min-item-size, 16rem), 1fr)
+ );
+ gap: var(--gutter, var(--space-s-l));
+}
+
+/* A split 50/50 layout */
+.grid[data-layout='50-50'] {
+ --grid-placement: auto-fit;
+ --grid-min-item-size: clamp(16rem, 50vw, 33rem);
+}
+
+/* Three column grid layout */
+.grid[data-layout='thirds'] {
+ --grid-placement: auto-fit;
+ --grid-min-item-size: clamp(16rem, 33%, 20rem);
+}
+
+/* Twelve column grid layout */
+.grid[data-layout='twelfths'] {
+ display: grid;
+ grid-template-columns: repeat(12, 1fr);
+}
+
+/* Special layout for larger devices. Used on home page intro */
+.grid[data-layout='lg:10/2'] {
+ grid-template-columns: 100%;
+}
+
+@media screen(md) {
+ .grid[data-layout='lg:10/2'] {
+ grid-template-columns: clamp(40rem, 80vw, 60rem);
+ }
+}
+
+@media screen(lg) {
+ .grid[data-layout='lg:10/2'] {
+ grid-template-columns: 10fr 2fr;
+ }
+}
diff --git a/modules/docs/assets/css/compositions/repel.css b/modules/docs/assets/css/compositions/repel.css
new file mode 100644
index 0000000..78179a7
--- /dev/null
+++ b/modules/docs/assets/css/compositions/repel.css
@@ -0,0 +1,23 @@
+/*
+REPEL
+A little layout that pushes items away from each other where
+there is space in the viewport and stacks on small viewports
+
+CUSTOM PROPERTIES AND CONFIGURATION
+--gutter (var(--space-s-m)): This defines the space
+between each item.
+
+--repel-vertical-alignment How items should align vertically.
+Can be any acceptable flexbox alignment value.
+*/
+.repel {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ align-items: var(--repel-vertical-alignment, center);
+ gap: var(--gutter, var(--space-s-m));
+}
+
+.repel[data-nowrap] {
+ flex-wrap: nowrap;
+}
diff --git a/modules/docs/assets/css/compositions/sidebar.css b/modules/docs/assets/css/compositions/sidebar.css
new file mode 100644
index 0000000..e16fde7
--- /dev/null
+++ b/modules/docs/assets/css/compositions/sidebar.css
@@ -0,0 +1,36 @@
+/*
+SIDEBAR
+More info: https://every-layout.dev/layouts/sidebar/
+A layout that allows you to have a flexible main content area
+and a "fixed" width sidebar that sits on the left or right.
+If there is not enough viewport space to fit both the sidebar
+width *and* the main content minimum width, they will stack
+on top of each other
+
+CUSTOM PROPERTIES AND CONFIGURATION
+--gutter (var(--space-size-1)): This defines the space
+between the sidebar and main content.
+
+--sidebar-target-width (20rem): How large the sidebar should be
+
+--sidebar-content-min-width(50%): The minimum size of the main content area
+
+EXCEPTIONS
+.sidebar[data-direction='rtl']: flips the sidebar to be on the right
+*/
+.sidebar {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gutter, var(--space-s-l));
+}
+
+.sidebar > :first-child {
+ flex-basis: var(--sidebar-target-width, 20rem);
+ flex-grow: 1;
+}
+
+.sidebar > :last-child {
+ flex-basis: 0;
+ flex-grow: 999;
+ min-width: var(--sidebar-content-min-width, 50%);
+}
diff --git a/modules/docs/assets/css/compositions/switcher.css b/modules/docs/assets/css/compositions/switcher.css
new file mode 100644
index 0000000..01ec246
--- /dev/null
+++ b/modules/docs/assets/css/compositions/switcher.css
@@ -0,0 +1,33 @@
+/*
+SWITCHER
+More info: https://every-layout.dev/layouts/switcher/
+A layout that allows you to lay **2** items next to each other
+until there is not enough horizontal space to allow that.
+
+CUSTOM PROPERTIES AND CONFIGURATION
+--gutter (var(--space-size-1)): This defines the space
+between each item
+
+--switcher-target-container-width (40rem): How large the container
+needs to be to allow items to sit inline with each other
+
+--switcher-vertical-alignment How items should align vertically.
+Can be any acceptable flexbox alignment value.
+*/
+.switcher {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--gutter, var(--space-s-l));
+ align-items: var(--switcher-vertical-alignment, flex-start);
+}
+
+.switcher > * {
+ flex-grow: 1;
+ flex-basis: calc((var(--switcher-target-container-width, 40rem) - 100%) * 999);
+}
+
+/* Max 2 items,
+so anything greater than 2 is full width */
+.switcher > :nth-child(n + 3) {
+ flex-basis: 100%;
+}
diff --git a/modules/docs/assets/css/compositions/wrapper.css b/modules/docs/assets/css/compositions/wrapper.css
new file mode 100644
index 0000000..777f26d
--- /dev/null
+++ b/modules/docs/assets/css/compositions/wrapper.css
@@ -0,0 +1,11 @@
+/*
+WRAPPER COMPOSITION
+A common wrapper/container
+*/
+.wrapper {
+ margin-inline: auto;
+ max-width: clamp(16rem, var(--wrapper-max-width, 100vw), 80rem);
+ padding-left: var(--gutter);
+ padding-right: var(--gutter);
+ position: relative;
+}
diff --git a/modules/docs/assets/css/global/fonts.css b/modules/docs/assets/css/global/fonts.css
new file mode 100644
index 0000000..ee2768e
--- /dev/null
+++ b/modules/docs/assets/css/global/fonts.css
@@ -0,0 +1 @@
+/* @font-face here */
diff --git a/modules/docs/assets/css/global/global.css b/modules/docs/assets/css/global/global.css
new file mode 100644
index 0000000..7c50b00
--- /dev/null
+++ b/modules/docs/assets/css/global/global.css
@@ -0,0 +1,21 @@
+/*
+ Global styles
+
+ Low-specificity, global styles that apply to the whole
+ project: https://cube.fyi/css.html
+*/
+body {
+ background: var(--color-light);
+ color: var(--color-dark);
+ font-size: var(--size-step-0);
+ font-family: var(--font-base);
+ line-height: var(--leading-standard);
+}
+
+pre {
+ font-size: var(--size-step--1);
+ padding: var(--space-s);
+ border-radius: var(--radius-m);
+ overflow-x: auto;
+ margin: 0;
+}
diff --git a/modules/docs/assets/css/global/reset.css b/modules/docs/assets/css/global/reset.css
new file mode 100644
index 0000000..5bc10d5
--- /dev/null
+++ b/modules/docs/assets/css/global/reset.css
@@ -0,0 +1,91 @@
+/* Modern reset: https://piccalil.li/blog/a-more-modern-css-reset/ */
+
+/* Box sizing rules */
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+/* Prevent font size inflation */
+html {
+ -moz-text-size-adjust: none;
+ -webkit-text-size-adjust: none;
+ text-size-adjust: none;
+}
+
+/* Remove default margin in favour of better control in authored CSS */
+body,
+h1,
+h2,
+h3,
+h4,
+p,
+figure,
+blockquote,
+dl,
+dd {
+ margin-block-end: 0;
+}
+
+/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
+ul[role='list'],
+ol[role='list'] {
+ list-style: none;
+}
+
+/* Set core body defaults */
+body {
+ min-height: 100vh;
+ line-height: 1.5;
+}
+
+/* Set shorter line heights on headings and interactive elements */
+h1,
+h2,
+h3,
+h4,
+button,
+input,
+label {
+ line-height: 1.1;
+}
+
+/* Balance text wrapping on headings */
+h1,
+h2,
+h3,
+h4 {
+ text-wrap: balance;
+}
+
+/* A elements that don't have a class get default styles */
+a:not([class]) {
+ text-decoration-skip-ink: auto;
+ color: currentColor;
+}
+
+/* Make images easier to work with */
+img,
+picture {
+ max-width: 100%;
+ display: block;
+}
+
+/* Inherit fonts for inputs and buttons */
+input,
+button,
+textarea,
+select {
+ font: inherit;
+}
+
+/* Make sure textareas without a rows attribute are not tiny */
+textarea:not([rows]) {
+ min-height: 10em;
+}
+
+/* Anything that has been anchored to should have extra scroll margin */
+:target {
+ scroll-margin-block: 5ex;
+}
diff --git a/modules/docs/assets/css/global/variables.css b/modules/docs/assets/css/global/variables.css
new file mode 100644
index 0000000..ca87412
--- /dev/null
+++ b/modules/docs/assets/css/global/variables.css
@@ -0,0 +1,10 @@
+:root {
+ --gutter: var(--space-s-l);
+ --transition-base: 250ms ease;
+ --transition-movement: 200ms linear;
+ --transition-fade: 300ms ease;
+ --transition-bounce: 500ms cubic-bezier(0.5, 0.05, 0.2, 1.5);
+ --leading-standard: 1.5;
+ --measure: 60ch;
+ --radius-m: 8px;
+}
diff --git a/modules/docs/assets/css/main.css b/modules/docs/assets/css/main.css
new file mode 100644
index 0000000..b2f3fe8
--- /dev/null
+++ b/modules/docs/assets/css/main.css
@@ -0,0 +1,14 @@
+@import 'tailwindcss/base';
+
+@import 'assets/css/global/reset.css';
+@import 'assets/css/global/fonts.css';
+
+@import 'tailwindcss/components';
+@import 'assets/css/global/variables.css';
+@import 'assets/css/global/global.css';
+
+@import-glob 'assets/css/blocks/*.css';
+@import-glob 'assets/css/compositions/*.css';
+@import-glob 'assets/css/utilities/*.css';
+
+@import 'tailwindcss/utilities';
diff --git a/modules/docs/assets/css/utilities/region.css b/modules/docs/assets/css/utilities/region.css
new file mode 100644
index 0000000..23b13c5
--- /dev/null
+++ b/modules/docs/assets/css/utilities/region.css
@@ -0,0 +1,7 @@
+/*
+REGION UTILITY
+Consistent block padding for page sections
+*/
+.region {
+ padding-block: var(--region-space, var(--space-xl-2xl));
+}
diff --git a/modules/docs/assets/css/utilities/visually-hidden.css b/modules/docs/assets/css/utilities/visually-hidden.css
new file mode 100644
index 0000000..670a470
--- /dev/null
+++ b/modules/docs/assets/css/utilities/visually-hidden.css
@@ -0,0 +1,15 @@
+/*
+VISUALLY HIDDEN UTILITY
+Info: https://piccalil.li/quick-tip/visually-hidden/
+*/
+.visually-hidden {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 0;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+ white-space: nowrap;
+}
diff --git a/modules/docs/assets/design-tokens/colors.json b/modules/docs/assets/design-tokens/colors.json
new file mode 100644
index 0000000..87b425a
--- /dev/null
+++ b/modules/docs/assets/design-tokens/colors.json
@@ -0,0 +1,18 @@
+{
+ "title": "Colors",
+ "description": "Hex color codes that can be shared, cross-platform. They can be converted at point of usage, such as HSL for web or CMYK for print.",
+ "items": [
+ {
+ "name": "Dark",
+ "value": "#030303"
+ },
+ {
+ "name": "Light",
+ "value": "#ffffff"
+ },
+ {
+ "name": "Primary",
+ "value": "#02394A"
+ }
+ ]
+}
diff --git a/modules/docs/assets/design-tokens/fonts.json b/modules/docs/assets/design-tokens/fonts.json
new file mode 100644
index 0000000..0195783
--- /dev/null
+++ b/modules/docs/assets/design-tokens/fonts.json
@@ -0,0 +1,11 @@
+{
+ "title": "Fonts",
+ "description": "Each array of fonts creates a priority-based order. The first font in the array should be the ideal font, followed by sensible, web-safe fallbacks",
+ "items": [
+ {
+ "name": "Base",
+ "description": "System fonts for body copy and globally set text.",
+ "value": ["Rooney", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "sans-serif"]
+ }
+ ]
+}
diff --git a/modules/docs/assets/design-tokens/spacing.js b/modules/docs/assets/design-tokens/spacing.js
new file mode 100644
index 0000000..c47c4d7
--- /dev/null
+++ b/modules/docs/assets/design-tokens/spacing.js
@@ -0,0 +1,26 @@
+const {calculateSpaceScale} = require('utopia-core');
+
+module.exports = {
+ title: 'Spacing',
+ description:
+ 'Consistent spacing sizes, based on a ratio, with min and max sizes. This allows you to set spacing based on the context size. For example, min for mobile and max for desktop browsers.',
+ meta: {
+ scaleGenerator:
+ 'https://utopia.fyi/space/calculator/?c=330,18,1.2,1200,24,1.25,6,2,&s=0.75|0.5|0.25,1.5|2|3|4|6|8,s-l|s-xl&g=s,l,xl,12'
+ },
+ items: Object.values(
+ calculateSpaceScale({
+ minWidth: 320,
+ maxWidth: 1240,
+ minSize: 18,
+ maxSize: 20,
+ positiveSteps: [1.5, 2, 3, 4, 6],
+ negativeSteps: [0.75, 0.5, 0.25],
+ customSizes: ['s-l', '2xl-4xl']
+ })
+ )
+ .flatMap(value => value)
+ .map(spacing => {
+ return {name: spacing.label, value: spacing.clamp};
+ })
+};
diff --git a/modules/docs/assets/design-tokens/text-leading.json b/modules/docs/assets/design-tokens/text-leading.json
new file mode 100644
index 0000000..795eebe
--- /dev/null
+++ b/modules/docs/assets/design-tokens/text-leading.json
@@ -0,0 +1,22 @@
+{
+ "title": "Leading",
+ "description": "Ratio-based leading/line-height values",
+ "items": [
+ {
+ "name": "Flat",
+ "value": 1
+ },
+ {
+ "name": "Fine",
+ "value": 1.15
+ },
+ {
+ "name": "Standard",
+ "value": 1.5
+ },
+ {
+ "name": "Loose",
+ "value": 1.7
+ }
+ ]
+}
diff --git a/modules/docs/assets/design-tokens/text-sizes.js b/modules/docs/assets/design-tokens/text-sizes.js
new file mode 100644
index 0000000..0f130a6
--- /dev/null
+++ b/modules/docs/assets/design-tokens/text-sizes.js
@@ -0,0 +1,16 @@
+const {calculateTypeScale} = require('utopia-core');
+
+module.exports = {
+ items: calculateTypeScale({
+ minWidth: 320,
+ maxWidth: 1240,
+ minFontSize: 18,
+ maxFontSize: 20,
+ minTypeScale: 1.2,
+ maxTypeScale: 1.25,
+ positiveSteps: 5,
+ negativeSteps: 2
+ }).map(size => {
+ return {name: 'step-' + size.step, value: size.clamp};
+ })
+};
diff --git a/modules/docs/assets/design-tokens/text-weights.json b/modules/docs/assets/design-tokens/text-weights.json
new file mode 100644
index 0000000..4f94b98
--- /dev/null
+++ b/modules/docs/assets/design-tokens/text-weights.json
@@ -0,0 +1,19 @@
+{
+ "title": "Text Weights",
+ "description": "Helper classes and custom properties for common font weights",
+ "meta": {},
+ "items": [
+ {
+ "name": "Regular",
+ "value": 400
+ },
+ {
+ "name": "Medium",
+ "value": 500
+ },
+ {
+ "name": "Bold",
+ "value": 700
+ }
+ ]
+}
diff --git a/modules/docs/assets/design-tokens/viewports.json b/modules/docs/assets/design-tokens/viewports.json
new file mode 100644
index 0000000..f4ebfdb
--- /dev/null
+++ b/modules/docs/assets/design-tokens/viewports.json
@@ -0,0 +1,7 @@
+{
+ "title": "Viewports",
+ "description": "The min and maximum viewports used to generate fluid type and space scales.",
+ "min": 330,
+ "mid": 760,
+ "max": 1230
+}
diff --git a/modules/docs/assets/js/main.js b/modules/docs/assets/js/main.js
new file mode 100644
index 0000000..cfe86b2
--- /dev/null
+++ b/modules/docs/assets/js/main.js
@@ -0,0 +1,2 @@
+// Fast for Free
+import '@hotwired/turbo';
diff --git a/modules/docs/content/_index.md b/modules/docs/content/_index.md
new file mode 100644
index 0000000..543a222
--- /dev/null
+++ b/modules/docs/content/_index.md
@@ -0,0 +1,332 @@
+---
+title: Home
+---
+
+
+
+
+React Arborist is a library for rendering tree-like data structures. This is a common UI element in many desktop and web applications. The classic example is displaying files on a file system.
+
+React Arborist follows the partially-controlled component pattern. This means that you can opt-in to state control the component as you need to. Otherwise, the state is controlled internally.
+
+Let's get a tree setup.
+
+Suppose we have data that looks like this.
+
+
+
+
+
+```js
+const data = {
+ name: 'code',
+ path: '/users/jk',
+ files: [
+ {
+ name: 'react-arborist',
+ path: '/users/jk/code',
+ files: [
+ {
+ name: 'package.json',
+ path: '/users/jk/code/react-arborist'
+ },
+ {
+ name: '.prettierrc',
+ path: '/users/jk/code/react-arborist'
+ }
+ ]
+ }
+ ]
+};
+```
+
+
+
+
+
+
+
+It's important to note that tree data can come in many shapes and sizes. However, they do all follow a common pattern. The `Tree` component that react-arborist exports needs you to convert your data into an array Nodes.
+
+There is a utility you can use to turn any data into nodes. It works like this.
+
+
+
+
+```jsx
+// #APPROVED
+const [data, setData] = useState(myRandomData);
+const nodes = createNodes(data, {
+ id: (d) => d.path,
+ name: (d) => d.name,
+ children: (d) => d.files,
+ isLeaf: (d) => !('files' in d),
+ sort: (a, b) => a.name - b.name,
+ isVisible: (node) => true // not sure about his yet
+});
+
+ setData(nodes.handleChange(e))
+ }}
+>
+```
+
+```jsx
+// #APPROVED
+const nodes = useNodes(myRandomData, {
+ id: (d) => d.path,
+ name: (d) => d.name,
+ children: (d) => d.files,
+ isLeaf: (d) => !('files' in d),
+ sort: (a, b) => a.name - b.name,
+ isVisible: (node) => true // not sure about his yet
+});
+
+ ;
+```
+
+
+
+
+
+
+You can then pass these nodes to the Tree Component.
+
+
+
+
+
+```jsx
+ setNodes(newValue)
+ }}
+>
+ {Node}
+
+```
+
+
+
+
+
+
+Now let's say you want to persist the expanded and collapsed state of the tree. You will opt-in to control that peice of state by providing the expanded prop.
+
+
+
+```jsx
+// If you keep the open data within your tree data,
+// you can extract it with the useOpens hook.
+
+const [opens, setOpens] = useOpens(data, {
+ id: (d) => d.path
+ isOpen = (d) => d.isOpen
+})
+
+// Otherwise, you can provide your own object
+// to keep track of it.
+const [opens, setOpens] = useState({})
+
+ setOpens(newValue)
+ }}
+/>
+```
+
+
+
+
+Finally, you may also want to keep track and of the selection state, and be able to change the selection from outside the tree. A nice way to do that might be.
+
+```jsx
+
+const id = useSelector(Current.fileId)
+const selection = useMultiSelection(id)
+
+useEffect(() => {
+ selection.only(id)
+}, [id])
+
+
+```
+
+Ok, now maybe you want to sync the tree state with an external data store, like your backend database. Use the the following callbacks to get that done.
+
+```jsx
+const nodes = useNodes(data)
+
+
api.move(args)}
+ onEdit={(args) => api.edit(args)}
+ onCreate={() => api.create(args)}
+ onDelete={() => api.destroy(args)}
+ onOpen={(args) => {
+ nodes.addChild(id, {loading: true})
+ api.fetchChildren(id)
+ }}
+ onSelect={}
+ onFocus={}
+ nodes={{
+ value: nodes.value,
+ onChange: nodes.set
+ }}
+ selection={{
+ value: selection.value,
+ onChange: selection.set
+ }}
+ opens={{
+ value: opens.value,
+ onChange: opens.set
+ }}
+ focus={{
+ value: focus.value,
+ onChange: focus.set
+ }}
+ dnd={{
+ value: dnd.value,
+ onChange: dnd.set
+ }}
+ treeState={{
+ value: state.value,
+ onChange: state.set
+ }}
+/>
+```
+
+## How would you handle changing the selection externally as well as internally.
+
+Well let's think about this. How do we do this in smaller components. We have an input, whenever it changes we handle it in the callback then we change the state. The onChange handler does not fire if we set the state ourselves.
+
+The same should work in our app. The onSelect callback should fire if it changes internally, but it should not if it is changed from the outside.
+
+```jsx
+const [value, setValue] = useState('hello world');
+
+return setValue(e.target.value)} />;
+```
+
+```jsx
+const selection = useMultiSelection();
+
+return (
+ {
+ // Now we will include all the relevant information
+ // to perform side effects in here.
+ // This will run if changed internally,
+ // This will not run if changed externally
+ selection.set(e.target.value);
+ }
+ }}
+ />
+);
+```
+
+That works. Love that.
+
+## Handle Node Manipulation
+
+```jsx
+const nodes = useNodes(/* */);
+
+return (
+ {
+ // e.type === "new" | "create" | "update" | "delete" | "move"
+ // e.payload = {
+ id: //string
+ isLeaf://
+ parentId: // id,
+ index://n
+
+ }
+ nodes.set(e.value);
+ }
+ }}
+ />
+);
+```
+
+Yup, that's going to work great.
+
+## Tree filtering can now happen in the useNodes hook.
+
+```jsx
+const nodes = useNodes({
+ searchTerm: '',
+ searchMatch: leafs | leavesAndInternal | custom
+});
+```
+
+## Changing the selection externally
+
+```jsx
+const chatId = useCurrentChatId();
+const selection = useSelection();
+
+useEffect(() => {
+ selection.selectOne(chatId, {scroll: 'center'});
+}, [chatId]);
+
+return (
+
+);
+```
+
+## Select All
+
+```jsx
+const tree = useTree(data, {
+ nodes: {
+ id: (d) => d.path,
+ children: (d) => d.items,
+ searchTerm: 'hi',
+ searchFilter: leavesOnly
+ },
+ selection: {
+ id: (data) => select(Current.getPath)
+ },
+ opens: {
+ id: (d) => d.path,
+ isOpen: (d) => d.isOpen
+ },
+ keybindings: (defaults) => {
+ return {
+ ...defaults(),
+ "cmd+a": () => tree.thisThat()
+ "up": () => tree.focus.up()
+ }
+ }
+});
+
+return (
+ {}
+ row: () => {}
+ cursor: () => {}
+
+ }}
+ />
+);
+```
diff --git a/modules/docs/content/terms.md b/modules/docs/content/terms.md
new file mode 100644
index 0000000..964148d
--- /dev/null
+++ b/modules/docs/content/terms.md
@@ -0,0 +1,44 @@
+# Terms
+
+This is the list of the common domain models found in react-arborist.
+
+* **Tree View**: The main component that renders the UI.
+* **Source Data**: Any data you bring from the outside world.
+* **Node Object**: An interface that the TreeManager and TreeController expects
+* **Source Data Proxy**: A wrapper around SourceData conforming to the NodeObject with methods to mutating SourceData.
+* **Tree Manager:** Responsible for responding to change events from the TreeView
+* **Tree Controller**: The programming API for developers to interact with the tree.
+* **Node Controller**: The programming API for developers to interact with the node.
+* **Partial Controller**: An object with the properties `value` and `onChange`, used for managing a slice of the component's state.
+
+## Details
+
+When you reach for react-arborist you usually will bring with you some _source data_ that you with to render with the _TreeView_ component.
+
+The _TreeView_ component receives many props, one of which is called "nodes". The "nodes" prop is a _partial controller_ object with `value` and `onChange` properties. The nodes partial controller value must be an array of _node objects_.
+
+
+
+A _node object_ is anything with the following interface:
+
+```ts
+type NodeObject = {
+ id: string;
+ data: T;
+ parent: NodeObject | null;
+ children: NodeObject[] | null;
+ isLeaf: boolean;
+ level: number;
+}
+```
+
+
+You can convert the _source data_ into _node objects_ yourself, or you can use a helper function provided by react-arborist called `createTreeManager(sourceData, options)`. It will return a _TreeManager_ instance. The _tree manager_ will have a property called "nodes" which will return an array of objects that conform to the _node object_ interface. However, they will be instances of the _SourceDataProxy_ class. These objects have all the properties required of _node objects_ along with methods to mutate the _source data_ it contains. The _TreeManager_ also has methods for mutating the _source data_ in response to change events.
+
+### Internals
+
+Now let's see the internals of the _TreeView_ component. All props are given to the _TreeController_ class. The UI components will inquire this _tree controller_ for the data and state they need to render UI.
+
+During a render, the _tree controller_ will flatten the _node objects_ into an array of _node controllers_. This array can be accessed with the `.nodes` property.
+
+To create a _NodeController_ instance, you will need the parent _tree controller_, the relevant _node object_ and the _row index_ where it will be rendered in UI. That class provides a bunch of convince methods for developers to use when rendering the UI.
\ No newline at end of file
diff --git a/modules/docs/hugo.toml b/modules/docs/hugo.toml
new file mode 100644
index 0000000..4d5a3f9
--- /dev/null
+++ b/modules/docs/hugo.toml
@@ -0,0 +1,34 @@
+baseURL = 'https://example.org/'
+languageCode = 'en-us'
+title = 'React Arborist'
+
+[markup.goldmark.renderer]
+ unsafe = true
+
+[module]
+[module.hugoVersion]
+ extended = false
+ min = "0.112.0"
+
+[[module.mounts]]
+ source = "assets"
+ target = "assets"
+
+[[module.mounts]]
+ source = "hugo_stats.json"
+ target = "assets/watching/hugo_stats.json"
+
+[build]
+ writeStats = true
+[[build.cachebusters]]
+ source = "assets/watching/hugo_stats\\.json"
+ target = "main\\.css"
+[[build.cachebusters]]
+ source = "(postcss|tailwind)\\.config\\.js"
+ target = "css"
+[[build.cachebusters]]
+ source = "assets/.*\\.(js|ts|jsx|tsx)"
+ target = "js"
+[[build.cachebusters]]
+ source = "assets/.*\\.(.*)$"
+ target = "$1"
diff --git a/modules/docs/layouts/_default/baseof.html b/modules/docs/layouts/_default/baseof.html
new file mode 100644
index 0000000..721a764
--- /dev/null
+++ b/modules/docs/layouts/_default/baseof.html
@@ -0,0 +1,20 @@
+
+
+
+ {{ partial "head.html" . }}
+
+
+
+ {{ partial "header.html" . }}
+
+
+ {{ block "main" . }}{{ end }}
+
+
+ {{ partial "footer.html" . }}
+
+
+
diff --git a/modules/docs/layouts/_default/home.html b/modules/docs/layouts/_default/home.html
new file mode 100644
index 0000000..52f67d7
--- /dev/null
+++ b/modules/docs/layouts/_default/home.html
@@ -0,0 +1,9 @@
+{{ define "main" }}
+
+ {{ .Content }}
+
+ {{ range site.RegularPages }}
+
+ {{ .Summary }}
+ {{ end }}
+{{ end }}
diff --git a/modules/docs/layouts/_default/list.html b/modules/docs/layouts/_default/list.html
new file mode 100644
index 0000000..50fc92d
--- /dev/null
+++ b/modules/docs/layouts/_default/list.html
@@ -0,0 +1,8 @@
+{{ define "main" }}
+ {{ .Title }}
+ {{ .Content }}
+ {{ range .Pages }}
+
+ {{ .Summary }}
+ {{ end }}
+{{ end }}
diff --git a/modules/docs/layouts/_default/single.html b/modules/docs/layouts/_default/single.html
new file mode 100644
index 0000000..7e286c8
--- /dev/null
+++ b/modules/docs/layouts/_default/single.html
@@ -0,0 +1,10 @@
+{{ define "main" }}
+ {{ .Title }}
+
+ {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
+ {{ $dateHuman := .Date | time.Format ":date_long" }}
+ {{ $dateHuman }}
+
+ {{ .Content }}
+ {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
+{{ end }}
diff --git a/modules/docs/layouts/partials/footer.html b/modules/docs/layouts/partials/footer.html
new file mode 100644
index 0000000..89ae5a1
--- /dev/null
+++ b/modules/docs/layouts/partials/footer.html
@@ -0,0 +1 @@
+
diff --git a/modules/docs/layouts/partials/head.html b/modules/docs/layouts/partials/head.html
new file mode 100644
index 0000000..6415424
--- /dev/null
+++ b/modules/docs/layouts/partials/head.html
@@ -0,0 +1,11 @@
+
+
+
+ {{ if .IsHome }}
+ {{ site.Title }}
+ {{ else }}
+ {{ printf "%s | %s" .Title site.Title }}
+ {{ end }}
+
+{{ partialCached "head/css.html" . }}
+{{ partialCached "head/js.html" . }}
diff --git a/modules/docs/layouts/partials/head/css.html b/modules/docs/layouts/partials/head/css.html
new file mode 100644
index 0000000..0bb64d8
--- /dev/null
+++ b/modules/docs/layouts/partials/head/css.html
@@ -0,0 +1,14 @@
+{{- with resources.Get "css/main.css" | postCSS }}
+ {{- if eq hugo.Environment "development" }}
+
+ {{- else }}
+ {{- with . | minify | fingerprint }}
+
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/modules/docs/layouts/partials/head/js.html b/modules/docs/layouts/partials/head/js.html
new file mode 100644
index 0000000..af00cb3
--- /dev/null
+++ b/modules/docs/layouts/partials/head/js.html
@@ -0,0 +1,18 @@
+{{- with resources.Get "js/main.js" }}
+ {{- if eq hugo.Environment "development" }}
+ {{- $opts := dict "format" "esm" }}
+ {{- with . | js.Build }}
+
+ {{- end }}
+ {{- else }}
+ {{- $opts := dict "minify" true }}
+ {{- with . | js.Build $opts | fingerprint }}
+
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/modules/docs/layouts/partials/header.html b/modules/docs/layouts/partials/header.html
new file mode 100644
index 0000000..4e75e0f
--- /dev/null
+++ b/modules/docs/layouts/partials/header.html
@@ -0,0 +1,4 @@
+
+
{{ site.Title }}
+ {{ partial "menu.html" (dict "menuID" "main" "page" .) }}
+
diff --git a/modules/docs/layouts/partials/menu.html b/modules/docs/layouts/partials/menu.html
new file mode 100644
index 0000000..7183180
--- /dev/null
+++ b/modules/docs/layouts/partials/menu.html
@@ -0,0 +1,51 @@
+{{- /*
+Renders a menu for the given menu ID.
+
+@context {page} page The current page.
+@context {string} menuID The menu ID.
+
+@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }}
+*/}}
+
+{{- $page := .page }}
+{{- $menuID := .menuID }}
+
+{{- with index site.Menus $menuID }}
+
+
+ {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
+
+
+{{- end }}
+
+{{- define "partials/inline/menu/walk.html" }}
+ {{- $page := .page }}
+ {{- range .menuEntries }}
+ {{- $attrs := dict "href" .URL }}
+ {{- if $page.IsMenuCurrent .Menu . }}
+ {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }}
+ {{- else if $page.HasMenuCurrent .Menu .}}
+ {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }}
+ {{- end }}
+ {{- $name := .Name }}
+ {{- with .Identifier }}
+ {{- with T . }}
+ {{- $name = . }}
+ {{- end }}
+ {{- end }}
+
+ {{ $name }}
+ {{- with .Children }}
+
+ {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
+
+ {{- end }}
+
+ {{- end }}
+{{- end }}
diff --git a/modules/docs/layouts/partials/terms.html b/modules/docs/layouts/partials/terms.html
new file mode 100644
index 0000000..47cf6e4
--- /dev/null
+++ b/modules/docs/layouts/partials/terms.html
@@ -0,0 +1,23 @@
+{{- /*
+For a given taxonomy, renders a list of terms assigned to the page.
+
+@context {page} page The current page.
+@context {string} taxonomy The taxonony.
+
+@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
+*/}}
+
+{{- $page := .page }}
+{{- $taxonomy := .taxonomy }}
+
+{{- with $page.GetTerms $taxonomy }}
+ {{- $label := (index . 0).Parent.LinkTitle }}
+
+{{- end }}
diff --git a/modules/docs/package.json b/modules/docs/package.json
new file mode 100644
index 0000000..02ac343
--- /dev/null
+++ b/modules/docs/package.json
@@ -0,0 +1,20 @@
+{
+ "license": "ISC",
+ "dependencies": {
+ "@hotwired/turbo": "^8.0.4",
+ "autoprefixer": "^10.4.18",
+ "clean-css": "^5.3.2",
+ "concurrently": "^8.2.2",
+ "cssnano": "^6.0.1",
+ "postcss": "^8.4.31",
+ "postcss-cli": "^10.1.0",
+ "postcss-import": "^15.1.0",
+ "postcss-import-ext-glob": "^2.1.1",
+ "postcss-js": "^4.0.1",
+ "prettier": "^3.2.5",
+ "prettier-plugin-go-template": "^0.0.15",
+ "slugify": "^1.6.6",
+ "tailwindcss": "^3.3.5",
+ "utopia-core": "^1.3.0"
+ }
+}
diff --git a/modules/docs/postcss.config.js b/modules/docs/postcss.config.js
new file mode 100644
index 0000000..4db7371
--- /dev/null
+++ b/modules/docs/postcss.config.js
@@ -0,0 +1,8 @@
+module.exports = {
+ plugins: [
+ require('postcss-import-ext-glob'),
+ require('postcss-import'),
+ require('tailwindcss'),
+ require('autoprefixer')
+ ]
+};
diff --git a/modules/docs/tailwind.config.js b/modules/docs/tailwind.config.js
new file mode 100644
index 0000000..5f5595e
--- /dev/null
+++ b/modules/docs/tailwind.config.js
@@ -0,0 +1,143 @@
+const plugin = require('tailwindcss/plugin');
+const postcss = require('postcss');
+const postcssJs = require('postcss-js');
+
+const tokensToTailwind = require('./assets/css-utils/tokens-to-tailwind.js');
+
+// Raw design tokens
+const colorTokens = require('./assets/design-tokens/colors.json');
+const fontTokens = require('./assets/design-tokens/fonts.json');
+const spacingTokens = require('./assets/design-tokens/spacing.js');
+const textSizeTokens = require('./assets/design-tokens/text-sizes.js');
+const textLeadingTokens = require('./assets/design-tokens/text-leading.json');
+const textWeightTokens = require('./assets/design-tokens/text-weights.json');
+const viewportTokens = require('./assets/design-tokens/viewports.json');
+
+// Process design tokens
+const colors = tokensToTailwind(colorTokens.items);
+const fontFamily = tokensToTailwind(fontTokens.items);
+const fontWeight = tokensToTailwind(textWeightTokens.items);
+const fontSize = tokensToTailwind(textSizeTokens.items, {slugify: false});
+const lineHeight = tokensToTailwind(textLeadingTokens.items);
+const spacing = tokensToTailwind(spacingTokens.items);
+
+module.exports = {
+ content: ['./hugo_stats.json'],
+ // Add color classes to safe list so they are always generated
+ safelist: [],
+ presets: [],
+ theme: {
+ screens: {
+ sm: `${viewportTokens.min}px`,
+ md: `${viewportTokens.mid}px`,
+ lg: `${viewportTokens.max}px`
+ },
+ colors,
+ spacing,
+ fontSize,
+ lineHeight,
+ fontFamily,
+ fontWeight,
+ backgroundColor: ({theme}) => theme('colors'),
+ textColor: ({theme}) => theme('colors'),
+ margin: ({theme}) => ({
+ auto: 'auto',
+ ...theme('spacing')
+ }),
+ padding: ({theme}) => theme('spacing')
+ },
+ variantOrder: [
+ 'first',
+ 'last',
+ 'odd',
+ 'even',
+ 'visited',
+ 'checked',
+ 'empty',
+ 'read-only',
+ 'group-hover',
+ 'group-focus',
+ 'focus-within',
+ 'hover',
+ 'focus',
+ 'focus-visible',
+ 'active',
+ 'disabled'
+ ],
+
+ // Disables Tailwind's reset and usage of rgb/opacity
+ corePlugins: {
+ preflight: false,
+ textOpacity: false,
+ backgroundOpacity: false,
+ borderOpacity: false
+ },
+
+ // Prevents Tailwind's core components
+ blocklist: ['container'],
+
+ // Prevents Tailwind from generating that wall of empty custom properties
+ experimental: {
+ optimizeUniversalDefaults: true
+ },
+
+ plugins: [
+ // Generates custom property values from tailwind config
+ plugin(function ({addComponents, config}) {
+ let result = '';
+
+ const currentConfig = config();
+ const groups = [
+ {key: 'colors', prefix: 'color'},
+ {key: 'spacing', prefix: 'space'},
+ {key: 'fontSize', prefix: 'size'},
+ {key: 'lineHeight', prefix: 'leading'},
+ {key: 'fontFamily', prefix: 'font'},
+ {key: 'fontWeight', prefix: 'font'}
+ ];
+
+ groups.forEach(({key, prefix}) => {
+ const group = currentConfig.theme[key];
+ if (!group) {
+ return;
+ }
+
+ Object.keys(group).forEach((key) => {
+ result += `--${prefix}-${key}: ${group[key]};`;
+ });
+ });
+ const thing = postcssJs.objectify(postcss.parse(result));
+ addComponents({
+ ':root': postcssJs.objectify(postcss.parse(result))
+ });
+ }),
+
+ // Generates custom utility classes
+ plugin(function ({addUtilities, config}) {
+ const currentConfig = config();
+ const customUtilities = [
+ {key: 'spacing', prefix: 'flow-space', property: '--flow-space'},
+ {key: 'spacing', prefix: 'region-space', property: '--region-space'},
+ {key: 'spacing', prefix: 'gutter', property: '--gutter'},
+ {key: 'fontSize', prefix: 'size', property: 'font-size'}
+ ];
+
+ customUtilities.forEach(({key, prefix, property}) => {
+ const group = currentConfig.theme[key];
+
+ if (!group) {
+ return;
+ }
+
+ Object.keys(group).forEach((key) => {
+ console.log(`.${prefix}-${key}`);
+ addUtilities({
+ [`.${prefix}-${key}`]: postcssJs.objectify(
+ postcss.parse(`${property}: ${group[key]}`)
+ )
+ });
+ });
+ });
+ })
+ ]
+};
diff --git a/modules/docs/yarn.lock b/modules/docs/yarn.lock
new file mode 100644
index 0000000..4efd963
--- /dev/null
+++ b/modules/docs/yarn.lock
@@ -0,0 +1,2621 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10
+
+"@alloc/quick-lru@npm:^5.2.0":
+ version: 5.2.0
+ resolution: "@alloc/quick-lru@npm:5.2.0"
+ checksum: bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.21.0":
+ version: 7.24.0
+ resolution: "@babel/runtime@npm:7.24.0"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 8d32c7e116606ea322b89f9fde8ffae6be9503b549dc0d0abb38bd9dc26e87469b9fb7a66964cc089ee558fd0a97d304fb0a3cfec140694764fb0d71b6a6f5e4
+ languageName: node
+ linkType: hard
+
+"@hotwired/turbo@npm:^8.0.4":
+ version: 8.0.4
+ resolution: "@hotwired/turbo@npm:8.0.4"
+ checksum: df9bc5afbbe556ba51a88eead2e706ce4721a71a597de3097357ea67760acb02ed1c829f760c27e99866d8cd4bb0341066bfbbe8b141d5ed7addc7bea018f314
+ languageName: node
+ linkType: hard
+
+"@isaacs/cliui@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "@isaacs/cliui@npm:8.0.2"
+ dependencies:
+ string-width: "npm:^5.1.2"
+ string-width-cjs: "npm:string-width@^4.2.0"
+ strip-ansi: "npm:^7.0.1"
+ strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
+ wrap-ansi: "npm:^8.1.0"
+ wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
+ checksum: e9ed5fd27c3aec1095e3a16e0c0cf148d1fee55a38665c35f7b3f86a9b5d00d042ddaabc98e8a1cb7463b9378c15f22a94eb35e99469c201453eb8375191f243
+ languageName: node
+ linkType: hard
+
+"@jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.5
+ resolution: "@jridgewell/gen-mapping@npm:0.3.5"
+ dependencies:
+ "@jridgewell/set-array": "npm:^1.2.1"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.10"
+ "@jridgewell/trace-mapping": "npm:^0.3.24"
+ checksum: 81587b3c4dd8e6c60252122937cea0c637486311f4ed208b52b62aae2e7a87598f63ec330e6cd0984af494bfb16d3f0d60d3b21d7e5b4aedd2602ff3fe9d32e2
+ languageName: node
+ linkType: hard
+
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.2
+ resolution: "@jridgewell/resolve-uri@npm:3.1.2"
+ checksum: 97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d
+ languageName: node
+ linkType: hard
+
+"@jridgewell/set-array@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@jridgewell/set-array@npm:1.2.1"
+ checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10
+ languageName: node
+ linkType: hard
+
+"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
+ version: 1.4.15
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
+ checksum: 89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.24":
+ version: 0.3.25
+ resolution: "@jridgewell/trace-mapping@npm:0.3.25"
+ dependencies:
+ "@jridgewell/resolve-uri": "npm:^3.1.0"
+ "@jridgewell/sourcemap-codec": "npm:^1.4.14"
+ checksum: dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.scandir@npm:2.1.5":
+ version: 2.1.5
+ resolution: "@nodelib/fs.scandir@npm:2.1.5"
+ dependencies:
+ "@nodelib/fs.stat": "npm:2.0.5"
+ run-parallel: "npm:^1.1.9"
+ checksum: 6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
+ version: 2.0.5
+ resolution: "@nodelib/fs.stat@npm:2.0.5"
+ checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0
+ languageName: node
+ linkType: hard
+
+"@nodelib/fs.walk@npm:^1.2.3":
+ version: 1.2.8
+ resolution: "@nodelib/fs.walk@npm:1.2.8"
+ dependencies:
+ "@nodelib/fs.scandir": "npm:2.1.5"
+ fastq: "npm:^1.6.0"
+ checksum: 40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^2.0.0":
+ version: 2.2.1
+ resolution: "@npmcli/agent@npm:2.2.1"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^10.0.1"
+ socks-proxy-agent: "npm:^8.0.1"
+ checksum: d4a48128f61e47f2f5c89315a5350e265dc619987e635bd62b52b29c7ed93536e724e721418c0ce352ceece86c13043c67aba1b70c3f5cc72fce6bb746706162
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@npmcli/fs@npm:3.1.0"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: f3a7ab3a31de65e42aeb6ed03ed035ef123d2de7af4deb9d4a003d27acc8618b57d9fb9d259fe6c28ca538032a028f37337264388ba27d26d37fff7dde22476e
+ languageName: node
+ linkType: hard
+
+"@pkgjs/parseargs@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "@pkgjs/parseargs@npm:0.11.0"
+ checksum: 115e8ceeec6bc69dff2048b35c0ab4f8bbee12d8bb6c1f4af758604586d802b6e669dcb02dda61d078de42c2b4ddce41b3d9e726d7daa6b4b850f4adbf7333ff
+ languageName: node
+ linkType: hard
+
+"@trysound/sax@npm:0.2.0":
+ version: 0.2.0
+ resolution: "@trysound/sax@npm:0.2.0"
+ checksum: 7379713eca480ac0d9b6c7b063e06b00a7eac57092354556c81027066eb65b61ea141a69d0cc2e15d32e05b2834d4c9c2184793a5e36bbf5daf05ee5676af18c
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "abbrev@npm:2.0.0"
+ checksum: ca0a54e35bea4ece0ecb68a47b312e1a9a6f772408d5bcb9051230aaa94b0460671c5b5c9cb3240eb5b7bc94c52476550eb221f65a0bbd0145bdc9f3113a6707
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0":
+ version: 7.1.0
+ resolution: "agent-base@npm:7.1.0"
+ dependencies:
+ debug: "npm:^4.3.4"
+ checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: "npm:^2.0.0"
+ indent-string: "npm:^4.0.0"
+ checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "ansi-regex@npm:6.0.1"
+ checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: "npm:^2.0.1"
+ checksum: b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^6.1.0":
+ version: 6.2.1
+ resolution: "ansi-styles@npm:6.2.1"
+ checksum: 70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32
+ languageName: node
+ linkType: hard
+
+"any-promise@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "any-promise@npm:1.3.0"
+ checksum: 6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb
+ languageName: node
+ linkType: hard
+
+"anymatch@npm:~3.1.2":
+ version: 3.1.3
+ resolution: "anymatch@npm:3.1.3"
+ dependencies:
+ normalize-path: "npm:^3.0.0"
+ picomatch: "npm:^2.0.4"
+ checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2
+ languageName: node
+ linkType: hard
+
+"arg@npm:^5.0.2":
+ version: 5.0.2
+ resolution: "arg@npm:5.0.2"
+ checksum: 92fe7de222054a060fd2329e92e867410b3ea260328147ee3fb7855f78efae005f4087e698d4e688a856893c56bb09951588c40f2c901cf6996cd8cd7bcfef2c
+ languageName: node
+ linkType: hard
+
+"autoprefixer@npm:^10.4.18":
+ version: 10.4.18
+ resolution: "autoprefixer@npm:10.4.18"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ caniuse-lite: "npm:^1.0.30001591"
+ fraction.js: "npm:^4.3.7"
+ normalize-range: "npm:^0.1.2"
+ picocolors: "npm:^1.0.0"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.1.0
+ bin:
+ autoprefixer: bin/autoprefixer
+ checksum: c5bc0b539451557ac0b531bd6dad2db50499cf3d5daff9ead57d0d90d8f63ea6aa0e0556cbda3fbd3d081ec1199202f14533d54494ea47f42b239852d6bde16f
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
+ languageName: node
+ linkType: hard
+
+"binary-extensions@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "binary-extensions@npm:2.2.0"
+ checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8
+ languageName: node
+ linkType: hard
+
+"boolbase@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "boolbase@npm:1.0.0"
+ checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "brace-expansion@npm:2.0.1"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.2, braces@npm:~3.0.2":
+ version: 3.0.2
+ resolution: "braces@npm:3.0.2"
+ dependencies:
+ fill-range: "npm:^7.0.1"
+ checksum: 966b1fb48d193b9d155f810e5efd1790962f2c4e0829f8440b8ad236ba009222c501f70185ef732fef17a4c490bb33a03b90dab0631feafbdf447da91e8165b1
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^4.0.0, browserslist@npm:^4.23.0":
+ version: 4.23.0
+ resolution: "browserslist@npm:4.23.0"
+ dependencies:
+ caniuse-lite: "npm:^1.0.30001587"
+ electron-to-chromium: "npm:^1.4.668"
+ node-releases: "npm:^2.0.14"
+ update-browserslist-db: "npm:^1.0.13"
+ bin:
+ browserslist: cli.js
+ checksum: 496c3862df74565dd942b4ae65f502c575cbeba1fa4a3894dad7aa3b16130dc3033bc502d8848147f7b625154a284708253d9598bcdbef5a1e34cf11dc7bad8e
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^18.0.0":
+ version: 18.0.2
+ resolution: "cacache@npm:18.0.2"
+ dependencies:
+ "@npmcli/fs": "npm:^3.1.0"
+ fs-minipass: "npm:^3.0.0"
+ glob: "npm:^10.2.2"
+ lru-cache: "npm:^10.0.1"
+ minipass: "npm:^7.0.3"
+ minipass-collect: "npm:^2.0.1"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ p-map: "npm:^4.0.0"
+ ssri: "npm:^10.0.0"
+ tar: "npm:^6.1.11"
+ unique-filename: "npm:^3.0.0"
+ checksum: 5ca58464f785d4d64ac2019fcad95451c8c89bea25949f63acd8987fcc3493eaef1beccc0fa39e673506d879d3fc1ab420760f8a14f8ddf46ea2d121805a5e96
+ languageName: node
+ linkType: hard
+
+"camelcase-css@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "camelcase-css@npm:2.0.1"
+ checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1
+ languageName: node
+ linkType: hard
+
+"caniuse-api@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "caniuse-api@npm:3.0.0"
+ dependencies:
+ browserslist: "npm:^4.0.0"
+ caniuse-lite: "npm:^1.0.0"
+ lodash.memoize: "npm:^4.1.2"
+ lodash.uniq: "npm:^4.5.0"
+ checksum: db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4
+ languageName: node
+ linkType: hard
+
+"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001591":
+ version: 1.0.30001596
+ resolution: "caniuse-lite@npm:1.0.30001596"
+ checksum: 4124d6e927193ee31bb7237925720263ac837ef0bf6627c67a8217edfe49eefc3a385a4830d4aa92a213576a0aa6006e61c8dd57a644ec65882c15d15f625182
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: "npm:^4.1.0"
+ supports-color: "npm:^7.1.0"
+ checksum: cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139
+ languageName: node
+ linkType: hard
+
+"chokidar@npm:^3.3.0, chokidar@npm:^3.5.3":
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
+ dependencies:
+ anymatch: "npm:~3.1.2"
+ braces: "npm:~3.0.2"
+ fsevents: "npm:~2.3.2"
+ glob-parent: "npm:~5.1.2"
+ is-binary-path: "npm:~2.1.0"
+ is-glob: "npm:~4.0.1"
+ normalize-path: "npm:~3.0.0"
+ readdirp: "npm:~3.6.0"
+ dependenciesMeta:
+ fsevents:
+ optional: true
+ checksum: c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "chownr@npm:2.0.0"
+ checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f
+ languageName: node
+ linkType: hard
+
+"clean-css@npm:^5.3.2":
+ version: 5.3.3
+ resolution: "clean-css@npm:5.3.3"
+ dependencies:
+ source-map: "npm:~0.6.0"
+ checksum: 2db1ae37b384c8ff0a06a12bfa80f56cc02b4abcaaf340db98c0ae88a61dd67c856653fd8135ace6eb0ec13aeab3089c425d2e4238d2a2ad6b6917e6ccc74729
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^8.0.1":
+ version: 8.0.1
+ resolution: "cliui@npm:8.0.1"
+ dependencies:
+ string-width: "npm:^4.2.0"
+ strip-ansi: "npm:^6.0.1"
+ wrap-ansi: "npm:^7.0.0"
+ checksum: eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: "npm:~1.1.4"
+ checksum: fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
+ languageName: node
+ linkType: hard
+
+"colord@npm:^2.9.3":
+ version: 2.9.3
+ resolution: "colord@npm:2.9.3"
+ checksum: 907a4506d7307e2f580b471b581e992181ed75ab0c6925ece9ca46d88161d2fc50ed15891cd0556d0d9321237ca75afc9d462e4c050b939ef88428517f047f30
+ languageName: node
+ linkType: hard
+
+"commander@npm:^4.0.0":
+ version: 4.1.1
+ resolution: "commander@npm:4.1.1"
+ checksum: 3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c
+ languageName: node
+ linkType: hard
+
+"commander@npm:^7.2.0":
+ version: 7.2.0
+ resolution: "commander@npm:7.2.0"
+ checksum: 9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d
+ languageName: node
+ linkType: hard
+
+"concurrently@npm:^8.2.2":
+ version: 8.2.2
+ resolution: "concurrently@npm:8.2.2"
+ dependencies:
+ chalk: "npm:^4.1.2"
+ date-fns: "npm:^2.30.0"
+ lodash: "npm:^4.17.21"
+ rxjs: "npm:^7.8.1"
+ shell-quote: "npm:^1.8.1"
+ spawn-command: "npm:0.0.2"
+ supports-color: "npm:^8.1.1"
+ tree-kill: "npm:^1.2.2"
+ yargs: "npm:^17.7.2"
+ bin:
+ conc: dist/bin/concurrently.js
+ concurrently: dist/bin/concurrently.js
+ checksum: dcb1aa69d9c611a7bda9d4fc0fe1e388f971d1744acec7e0d52dffa2ef55743f1266ec9292f414c5789b9f61734b3fce772bd005d4de9564a949fb121b97bae1
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.0":
+ version: 7.0.3
+ resolution: "cross-spawn@npm:7.0.3"
+ dependencies:
+ path-key: "npm:^3.1.0"
+ shebang-command: "npm:^2.0.0"
+ which: "npm:^2.0.1"
+ checksum: e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce
+ languageName: node
+ linkType: hard
+
+"css-declaration-sorter@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "css-declaration-sorter@npm:7.1.1"
+ peerDependencies:
+ postcss: ^8.0.9
+ checksum: 291289eb5ba515affa88f33326d8c197cb00049ea3ea13947ca3c234bf392faca1a6be6f6d4b5bbe6f65cef6e7ad0003da631d60ae02dd9d6d3b22fd580b4748
+ languageName: node
+ linkType: hard
+
+"css-select@npm:^5.1.0":
+ version: 5.1.0
+ resolution: "css-select@npm:5.1.0"
+ dependencies:
+ boolbase: "npm:^1.0.0"
+ css-what: "npm:^6.1.0"
+ domhandler: "npm:^5.0.2"
+ domutils: "npm:^3.0.1"
+ nth-check: "npm:^2.0.1"
+ checksum: d486b1e7eb140468218a5ab5af53257e01f937d2173ac46981f6b7de9c5283d55427a36715dc8decfc0c079cf89259ac5b41ef58f6e1a422eee44ab8bfdc78da
+ languageName: node
+ linkType: hard
+
+"css-tree@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "css-tree@npm:2.3.1"
+ dependencies:
+ mdn-data: "npm:2.0.30"
+ source-map-js: "npm:^1.0.1"
+ checksum: e5e39b82eb4767c664fa5c2cd9968c8c7e6b7fd2c0079b52680a28466d851e2826d5e64699c449d933c0e8ca0554beca43c41a9fcb09fb6a46139d462dbdf0df
+ languageName: node
+ linkType: hard
+
+"css-tree@npm:~2.2.0":
+ version: 2.2.1
+ resolution: "css-tree@npm:2.2.1"
+ dependencies:
+ mdn-data: "npm:2.0.28"
+ source-map-js: "npm:^1.0.1"
+ checksum: 1959c4b0e268bf8db1b3a1776a5ba9ae3a464ccd1226bfa62799cb0a3d0039006e21fb95cec4dec9d687a9a9b90f692dff2d230b631527ece700f4bfb419aaf3
+ languageName: node
+ linkType: hard
+
+"css-what@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "css-what@npm:6.1.0"
+ checksum: c67a3a2d0d81843af87f8bf0a4d0845b0f952377714abbb2884e48942409d57a2110eabee003609d02ee487b054614bdfcfc59ee265728ff105bd5aa221c1d0e
+ languageName: node
+ linkType: hard
+
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12
+ languageName: node
+ linkType: hard
+
+"cssnano-preset-default@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "cssnano-preset-default@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ css-declaration-sorter: "npm:^7.1.1"
+ cssnano-utils: "npm:^4.0.2"
+ postcss-calc: "npm:^9.0.1"
+ postcss-colormin: "npm:^6.1.0"
+ postcss-convert-values: "npm:^6.1.0"
+ postcss-discard-comments: "npm:^6.0.2"
+ postcss-discard-duplicates: "npm:^6.0.3"
+ postcss-discard-empty: "npm:^6.0.3"
+ postcss-discard-overridden: "npm:^6.0.2"
+ postcss-merge-longhand: "npm:^6.0.4"
+ postcss-merge-rules: "npm:^6.1.0"
+ postcss-minify-font-values: "npm:^6.0.3"
+ postcss-minify-gradients: "npm:^6.0.3"
+ postcss-minify-params: "npm:^6.1.0"
+ postcss-minify-selectors: "npm:^6.0.3"
+ postcss-normalize-charset: "npm:^6.0.2"
+ postcss-normalize-display-values: "npm:^6.0.2"
+ postcss-normalize-positions: "npm:^6.0.2"
+ postcss-normalize-repeat-style: "npm:^6.0.2"
+ postcss-normalize-string: "npm:^6.0.2"
+ postcss-normalize-timing-functions: "npm:^6.0.2"
+ postcss-normalize-unicode: "npm:^6.1.0"
+ postcss-normalize-url: "npm:^6.0.2"
+ postcss-normalize-whitespace: "npm:^6.0.2"
+ postcss-ordered-values: "npm:^6.0.2"
+ postcss-reduce-initial: "npm:^6.1.0"
+ postcss-reduce-transforms: "npm:^6.0.2"
+ postcss-svgo: "npm:^6.0.3"
+ postcss-unique-selectors: "npm:^6.0.3"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: f1b15e64b842ae9e2abd4bb06ace1828d35febea852604f923fd03ff0a310a9bd1bb3f4f195c72644d077fc4d42c598ffedad2dc674d89d36eba4e82b132cc15
+ languageName: node
+ linkType: hard
+
+"cssnano-utils@npm:^4.0.2":
+ version: 4.0.2
+ resolution: "cssnano-utils@npm:4.0.2"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: f04c6854e75d847c7a43aff835e003d5bc7387ddfc476f0ad3a2d63663d0cec41047d46604c1717bf6b5a8e24e54bb519e465ff78d62c7e073c7cbe2279bebaf
+ languageName: node
+ linkType: hard
+
+"cssnano@npm:^6.0.1":
+ version: 6.1.0
+ resolution: "cssnano@npm:6.1.0"
+ dependencies:
+ cssnano-preset-default: "npm:^6.1.0"
+ lilconfig: "npm:^3.1.1"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 5afc00c13e6bd6796b09436004fe2711d73b2c194ee8f895db86235ab4da016d7f07dccda724a12b764f2b54fb4928782c3ae0384e93549b50b6c6572af5bc70
+ languageName: node
+ linkType: hard
+
+"csso@npm:^5.0.5":
+ version: 5.0.5
+ resolution: "csso@npm:5.0.5"
+ dependencies:
+ css-tree: "npm:~2.2.0"
+ checksum: 4036fb2b9f8ed6b948349136b39e0b19ffb5edee934893a37b55e9a116186c4ae2a9d3ba66fbdbc07fa44a853fb478cd2d8733e4743473dcd364e7f21444ff34
+ languageName: node
+ linkType: hard
+
+"date-fns@npm:^2.30.0":
+ version: 2.30.0
+ resolution: "date-fns@npm:2.30.0"
+ dependencies:
+ "@babel/runtime": "npm:^7.21.0"
+ checksum: 70b3e8ea7aaaaeaa2cd80bd889622a4bcb5d8028b4de9162cbcda359db06e16ff6e9309e54eead5341e71031818497f19aaf9839c87d1aba1e27bb4796e758a9
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.3.4":
+ version: 4.3.4
+ resolution: "debug@npm:4.3.4"
+ dependencies:
+ ms: "npm:2.1.2"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 0073c3bcbd9cb7d71dd5f6b55be8701af42df3e56e911186dfa46fac3a5b9eb7ce7f377dd1d3be6db8977221f8eb333d945216f645cf56f6b688cd484837d255
+ languageName: node
+ linkType: hard
+
+"dependency-graph@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "dependency-graph@npm:0.11.0"
+ checksum: 6b5eb540303753037a613e781da4b81534d139cbabc92f342630ed622e3ef4c332fc40cf87823e1ec71a7aeb4b195f8d88d7e625931ce6007bf2bf09a8bfb01e
+ languageName: node
+ linkType: hard
+
+"didyoumean@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "didyoumean@npm:1.2.2"
+ checksum: de7f11b6a0c8c61018629b7f405bb9746d6e994ce87c1a4b7655c3c718442dc69037a3d46d804950604fd9cbe85c074f7b224a119fc1bda851690a74540c6cf8
+ languageName: node
+ linkType: hard
+
+"dir-glob@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "dir-glob@npm:3.0.1"
+ dependencies:
+ path-type: "npm:^4.0.0"
+ checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615
+ languageName: node
+ linkType: hard
+
+"dlv@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "dlv@npm:1.1.3"
+ checksum: 836459ec6b50e43e9ed388a5fc28954be99e3481af3fa4b5d82a600762eb65ef8faacd454097ed7fc2f8a60aea2800d65a4cece5cd0d81ab82b2031f3f759e6e
+ languageName: node
+ linkType: hard
+
+"dom-serializer@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "dom-serializer@npm:2.0.0"
+ dependencies:
+ domelementtype: "npm:^2.3.0"
+ domhandler: "npm:^5.0.2"
+ entities: "npm:^4.2.0"
+ checksum: e3bf9027a64450bca0a72297ecdc1e3abb7a2912268a9f3f5d33a2e29c1e2c3502c6e9f860fc6625940bfe0cfb57a44953262b9e94df76872fdfb8151097eeb3
+ languageName: node
+ linkType: hard
+
+"domelementtype@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "domelementtype@npm:2.3.0"
+ checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6
+ languageName: node
+ linkType: hard
+
+"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3":
+ version: 5.0.3
+ resolution: "domhandler@npm:5.0.3"
+ dependencies:
+ domelementtype: "npm:^2.3.0"
+ checksum: 809b805a50a9c6884a29f38aec0a4e1b4537f40e1c861950ed47d10b049febe6b79ab72adaeeebb3cc8fc1cd33f34e97048a72a9265103426d93efafa78d3e96
+ languageName: node
+ linkType: hard
+
+"domutils@npm:^3.0.1":
+ version: 3.1.0
+ resolution: "domutils@npm:3.1.0"
+ dependencies:
+ dom-serializer: "npm:^2.0.0"
+ domelementtype: "npm:^2.3.0"
+ domhandler: "npm:^5.0.3"
+ checksum: 9a169a6e57ac4c738269a73ab4caf785114ed70e46254139c1bbc8144ac3102aacb28a6149508395ae34aa5d6a40081f4fa5313855dc8319c6d8359866b6dfea
+ languageName: node
+ linkType: hard
+
+"eastasianwidth@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "eastasianwidth@npm:0.2.0"
+ checksum: 9b1d3e1baefeaf7d70799db8774149cef33b97183a6addceeba0cf6b85ba23ee2686f302f14482006df32df75d32b17c509c143a3689627929e4a8efaf483952
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.4.668":
+ version: 1.4.697
+ resolution: "electron-to-chromium@npm:1.4.697"
+ checksum: 78b9db3a9eca7a8d0838dec832f1f9dca1c456a64b33f3562fdc6b974c3e32ae66a6c85f2fc43179fc061b82a53b5732d90258b05b2423f78957cb65d4ac54bb
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^9.2.2":
+ version: 9.2.2
+ resolution: "emoji-regex@npm:9.2.2"
+ checksum: 915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8
+ languageName: node
+ linkType: hard
+
+"encoding@npm:^0.1.13":
+ version: 0.1.13
+ resolution: "encoding@npm:0.1.13"
+ dependencies:
+ iconv-lite: "npm:^0.6.2"
+ checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f
+ languageName: node
+ linkType: hard
+
+"entities@npm:^4.2.0":
+ version: 4.5.0
+ resolution: "entities@npm:4.5.0"
+ checksum: ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e
+ languageName: node
+ linkType: hard
+
+"err-code@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "err-code@npm:2.0.3"
+ checksum: 1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd
+ languageName: node
+ linkType: hard
+
+"escalade@npm:^3.1.1":
+ version: 3.1.2
+ resolution: "escalade@npm:3.1.2"
+ checksum: a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "exponential-backoff@npm:3.1.1"
+ checksum: 2d9bbb6473de7051f96790d5f9a678f32e60ed0aa70741dc7fdc96fec8d631124ec3374ac144387604f05afff9500f31a1d45bd9eee4cdc2e4f9ad2d9b9d5dbd
+ languageName: node
+ linkType: hard
+
+"fast-glob@npm:^3.2.12, fast-glob@npm:^3.3.0":
+ version: 3.3.2
+ resolution: "fast-glob@npm:3.3.2"
+ dependencies:
+ "@nodelib/fs.stat": "npm:^2.0.2"
+ "@nodelib/fs.walk": "npm:^1.2.3"
+ glob-parent: "npm:^5.1.2"
+ merge2: "npm:^1.3.0"
+ micromatch: "npm:^4.0.4"
+ checksum: 222512e9315a0efca1276af9adb2127f02105d7288fa746145bf45e2716383fb79eb983c89601a72a399a56b7c18d38ce70457c5466218c5f13fad957cee16df
+ languageName: node
+ linkType: hard
+
+"fast-sort@npm:^3.2.0":
+ version: 3.4.0
+ resolution: "fast-sort@npm:3.4.0"
+ checksum: 8d8d228108ca02033d7efb65c259a82a4593a9c2c2ae55653d3f766b5e748f2f27e558db32664db4110ab7277446bb1dcba64d8db4010bb0409e5a2baa86b642
+ languageName: node
+ linkType: hard
+
+"fastq@npm:^1.6.0":
+ version: 1.17.1
+ resolution: "fastq@npm:1.17.1"
+ dependencies:
+ reusify: "npm:^1.0.4"
+ checksum: a443180068b527dd7b3a63dc7f2a47ceca2f3e97b9c00a1efe5538757e6cc4056a3526df94308075d7727561baf09ebaa5b67da8dcbddb913a021c5ae69d1f69
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "fill-range@npm:7.0.1"
+ dependencies:
+ to-regex-range: "npm:^5.0.1"
+ checksum: e260f7592fd196b4421504d3597cc76f4a1ca7a9488260d533b611fc3cefd61e9a9be1417cb82d3b01ad9f9c0ff2dbf258e1026d2445e26b0cf5148ff4250429
+ languageName: node
+ linkType: hard
+
+"foreground-child@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "foreground-child@npm:3.1.1"
+ dependencies:
+ cross-spawn: "npm:^7.0.0"
+ signal-exit: "npm:^4.0.1"
+ checksum: 087edd44857d258c4f73ad84cb8df980826569656f2550c341b27adf5335354393eec24ea2fabd43a253233fb27cee177ebe46bd0b7ea129c77e87cb1e9936fb
+ languageName: node
+ linkType: hard
+
+"fraction.js@npm:^4.3.7":
+ version: 4.3.7
+ resolution: "fraction.js@npm:4.3.7"
+ checksum: bb5ebcdeeffcdc37b68ead3bdfc244e68de188e0c64e9702197333c72963b95cc798883ad16adc21588088b942bca5b6a6ff4aeb1362d19f6f3b629035dc15f5
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:^11.0.0":
+ version: 11.2.0
+ resolution: "fs-extra@npm:11.2.0"
+ dependencies:
+ graceful-fs: "npm:^4.2.0"
+ jsonfile: "npm:^6.0.1"
+ universalify: "npm:^2.0.0"
+ checksum: 0579bf6726a4cd054d4aa308f10b483f52478bb16284f32cf60b4ce0542063d551fca1a08a2af365e35db21a3fa5a06cf2a6ed614004b4368982bc754cb816b3
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fs-minipass@npm:2.1.0"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f
+ languageName: node
+ linkType: hard
+
+"fsevents@npm:~2.3.2":
+ version: 2.3.3
+ resolution: "fsevents@npm:2.3.3"
+ dependencies:
+ node-gyp: "npm:latest"
+ checksum: 4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin":
+ version: 2.3.3
+ resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
+ dependencies:
+ node-gyp: "npm:latest"
+ conditions: os=darwin
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454
+ languageName: node
+ linkType: hard
+
+"get-caller-file@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "get-caller-file@npm:2.0.5"
+ checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9
+ languageName: node
+ linkType: hard
+
+"get-stdin@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "get-stdin@npm:9.0.0"
+ checksum: 5972bc34d05932b45512c8e2d67b040f1c1ca8afb95c56cbc480985f2d761b7e37fe90dc8abd22527f062cc5639a6930ff346e9952ae4c11a2d4275869459594
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2":
+ version: 5.1.2
+ resolution: "glob-parent@npm:5.1.2"
+ dependencies:
+ is-glob: "npm:^4.0.1"
+ checksum: 32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247
+ languageName: node
+ linkType: hard
+
+"glob-parent@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "glob-parent@npm:6.0.2"
+ dependencies:
+ is-glob: "npm:^4.0.3"
+ checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8
+ languageName: node
+ linkType: hard
+
+"glob@npm:^10.2.2, glob@npm:^10.3.10":
+ version: 10.3.10
+ resolution: "glob@npm:10.3.10"
+ dependencies:
+ foreground-child: "npm:^3.1.0"
+ jackspeak: "npm:^2.3.5"
+ minimatch: "npm:^9.0.1"
+ minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
+ path-scurry: "npm:^1.10.1"
+ bin:
+ glob: dist/esm/bin.mjs
+ checksum: 38bdb2c9ce75eb5ed168f309d4ed05b0798f640b637034800a6bf306f39d35409bf278b0eaaffaec07591085d3acb7184a201eae791468f0f617771c2486a6a8
+ languageName: node
+ linkType: hard
+
+"globby@npm:^13.0.0":
+ version: 13.2.2
+ resolution: "globby@npm:13.2.2"
+ dependencies:
+ dir-glob: "npm:^3.0.1"
+ fast-glob: "npm:^3.3.0"
+ ignore: "npm:^5.2.4"
+ merge2: "npm:^1.4.1"
+ slash: "npm:^4.0.0"
+ checksum: 4494a9d2162a7e4d327988b26be66d8eab87d7f59a83219e74b065e2c3ced23698f68fb10482bf9337133819281803fb886d6ae06afbb2affa743623eb0b1949
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "hasown@npm:2.0.1"
+ dependencies:
+ function-bind: "npm:^1.1.2"
+ checksum: b7f9107387ee68abed88e965c2b99e868b5e0e9d289db1ddd080706ffafb69533b4f538b0e6362585bae8d6cbd080249f65e79702f74c225990f66d6106be3f6
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "http-cache-semantics@npm:4.1.1"
+ checksum: 362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ debug: "npm:^4.3.4"
+ checksum: d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.4
+ resolution: "https-proxy-agent@npm:7.0.4"
+ dependencies:
+ agent-base: "npm:^7.0.2"
+ debug: "npm:4"
+ checksum: 405fe582bba461bfe5c7e2f8d752b384036854488b828ae6df6a587c654299cbb2c50df38c4b6ab303502c3c5e029a793fbaac965d1e86ee0be03faceb554d63
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.6.2":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f
+ languageName: node
+ linkType: hard
+
+"ignore@npm:^5.2.4":
+ version: 5.3.1
+ resolution: "ignore@npm:5.3.1"
+ checksum: 0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c
+ languageName: node
+ linkType: hard
+
+"is-binary-path@npm:~2.1.0":
+ version: 2.1.0
+ resolution: "is-binary-path@npm:2.1.0"
+ dependencies:
+ binary-extensions: "npm:^2.0.0"
+ checksum: 078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.13.0":
+ version: 2.13.1
+ resolution: "is-core-module@npm:2.13.1"
+ dependencies:
+ hasown: "npm:^2.0.0"
+ checksum: d53bd0cc24b0a0351fb4b206ee3908f71b9bbf1c47e9c9e14e5f06d292af1663704d2abd7e67700d6487b2b7864e0d0f6f10a1edf1892864bdffcb197d1845a2
+ languageName: node
+ linkType: hard
+
+"is-extglob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "is-extglob@npm:2.1.1"
+ checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
+ languageName: node
+ linkType: hard
+
+"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
+ version: 4.0.3
+ resolution: "is-glob@npm:4.0.3"
+ dependencies:
+ is-extglob: "npm:^2.1.1"
+ checksum: 3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11
+ languageName: node
+ linkType: hard
+
+"is-lambda@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "is-lambda@npm:1.0.1"
+ checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "isexe@npm:3.1.1"
+ checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e
+ languageName: node
+ linkType: hard
+
+"jackspeak@npm:^2.3.5":
+ version: 2.3.6
+ resolution: "jackspeak@npm:2.3.6"
+ dependencies:
+ "@isaacs/cliui": "npm:^8.0.2"
+ "@pkgjs/parseargs": "npm:^0.11.0"
+ dependenciesMeta:
+ "@pkgjs/parseargs":
+ optional: true
+ checksum: 6e6490d676af8c94a7b5b29b8fd5629f21346911ebe2e32931c2a54210134408171c24cee1a109df2ec19894ad04a429402a8438cbf5cc2794585d35428ace76
+ languageName: node
+ linkType: hard
+
+"jiti@npm:^1.19.1":
+ version: 1.21.0
+ resolution: "jiti@npm:1.21.0"
+ bin:
+ jiti: bin/jiti.js
+ checksum: 005a0239e50381b5c9919f59dbab86128367bd64872f3376dbbde54b6523f41bd134bf22909e2a509e38fd87e1c22125ca255b9b6b53e7df0fedd23f737334cc
+ languageName: node
+ linkType: hard
+
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef
+ languageName: node
+ linkType: hard
+
+"jsonfile@npm:^6.0.1":
+ version: 6.1.0
+ resolution: "jsonfile@npm:6.1.0"
+ dependencies:
+ graceful-fs: "npm:^4.1.6"
+ universalify: "npm:^2.0.0"
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 03014769e7dc77d4cf05fa0b534907270b60890085dd5e4d60a382ff09328580651da0b8b4cdf44d91e4c8ae64d91791d965f05707beff000ed494a38b6fec85
+ languageName: node
+ linkType: hard
+
+"lilconfig@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "lilconfig@npm:2.1.0"
+ checksum: b1314a2e55319013d5e7d7d08be39015829d2764a1eaee130129545d40388499d81b1c31b0f9b3417d4db12775a88008b72ec33dd06e0184cf7503b32ca7cc0b
+ languageName: node
+ linkType: hard
+
+"lilconfig@npm:^3.0.0, lilconfig@npm:^3.1.1":
+ version: 3.1.1
+ resolution: "lilconfig@npm:3.1.1"
+ checksum: c80fbf98ae7d1daf435e16a83fe3c63743b9d92804cac6dc53ee081c7c265663645c3162d8a0d04ff1874f9c07df145519743317dee67843234c6ed279300f83
+ languageName: node
+ linkType: hard
+
+"lines-and-columns@npm:^1.1.6":
+ version: 1.2.4
+ resolution: "lines-and-columns@npm:1.2.4"
+ checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5
+ languageName: node
+ linkType: hard
+
+"lodash.memoize@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "lodash.memoize@npm:4.1.2"
+ checksum: 192b2168f310c86f303580b53acf81ab029761b9bd9caa9506a019ffea5f3363ea98d7e39e7e11e6b9917066c9d36a09a11f6fe16f812326390d8f3a54a1a6da
+ languageName: node
+ linkType: hard
+
+"lodash.uniq@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.uniq@npm:4.5.0"
+ checksum: 86246ca64ac0755c612e5df6d93cfe92f9ecac2e5ff054b965efbbb1d9a647b6310969e78545006f70f52760554b03233ad0103324121ae31474c20d5f7a2812
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.21":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0":
+ version: 10.2.0
+ resolution: "lru-cache@npm:10.2.0"
+ checksum: 502ec42c3309c0eae1ce41afca471f831c278566d45a5273a0c51102dee31e0e250a62fa9029c3370988df33a14188a38e682c16143b794de78668de3643e302
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: fc1fe2ee205f7c8855fa0f34c1ab0bcf14b6229e35579ec1fd1079f31d6fc8ef8eb6fd17f2f4d99788d7e339f50e047555551ebd5e434dda503696e7c6591825
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^13.0.0":
+ version: 13.0.0
+ resolution: "make-fetch-happen@npm:13.0.0"
+ dependencies:
+ "@npmcli/agent": "npm:^2.0.0"
+ cacache: "npm:^18.0.0"
+ http-cache-semantics: "npm:^4.1.1"
+ is-lambda: "npm:^1.0.1"
+ minipass: "npm:^7.0.2"
+ minipass-fetch: "npm:^3.0.0"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ negotiator: "npm:^0.6.3"
+ promise-retry: "npm:^2.0.1"
+ ssri: "npm:^10.0.0"
+ checksum: ded5a91a02b76381b06a4ec4d5c1d23ebbde15d402b3c3e4533b371dac7e2f7ca071ae71ae6dae72aa261182557b7b1b3fd3a705b39252dc17f74fa509d3e76f
+ languageName: node
+ linkType: hard
+
+"mdn-data@npm:2.0.28":
+ version: 2.0.28
+ resolution: "mdn-data@npm:2.0.28"
+ checksum: aec475e0c078af00498ce2f9434d96a1fdebba9814d14b8f72cd6d5475293f4b3972d0538af2d5c5053d35e1b964af08b7d162b98e9846e9343990b75e4baef1
+ languageName: node
+ linkType: hard
+
+"mdn-data@npm:2.0.30":
+ version: 2.0.30
+ resolution: "mdn-data@npm:2.0.30"
+ checksum: e4944322bf3e0461a2daa2aee7e14e208960a036289531e4ef009e53d32bd41528350c070c4a33be867980443fe4c0523518d99318423cffa7c825fe7b1154e2
+ languageName: node
+ linkType: hard
+
+"merge2@npm:^1.3.0, merge2@npm:^1.4.1":
+ version: 1.4.1
+ resolution: "merge2@npm:1.4.1"
+ checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: "npm:^3.0.2"
+ picomatch: "npm:^2.3.1"
+ checksum: a749888789fc15cac0e03273844dbd749f9f8e8d64e70c564bcf06a033129554c789bb9e30d7566d7ff6596611a08e58ac12cf2a05f6e3c9c47c50c4c7e12fa2
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^9.0.1":
+ version: 9.0.3
+ resolution: "minimatch@npm:9.0.3"
+ dependencies:
+ brace-expansion: "npm:^2.0.1"
+ checksum: c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "minipass-collect@npm:2.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "minipass-fetch@npm:3.0.4"
+ dependencies:
+ encoding: "npm:^0.1.13"
+ minipass: "npm:^7.0.3"
+ minipass-sized: "npm:^1.0.3"
+ minizlib: "npm:^2.1.2"
+ dependenciesMeta:
+ encoding:
+ optional: true
+ checksum: 3edf72b900e30598567eafe96c30374432a8709e61bb06b87198fa3192d466777e2ec21c52985a0999044fa6567bd6f04651585983a1cbb27e2c1770a07ed2a2
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "minipass-sized@npm:1.0.3"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "minipass@npm:5.0.0"
+ checksum: 61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3":
+ version: 7.0.4
+ resolution: "minipass@npm:7.0.4"
+ checksum: e864bd02ceb5e0707696d58f7ce3a0b89233f0d686ef0d447a66db705c0846a8dc6f34865cd85256c1472ff623665f616b90b8ff58058b2ad996c5de747d2d18
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "minizlib@npm:2.1.2"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ yallist: "npm:^4.0.0"
+ checksum: ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "mkdirp@npm:1.0.4"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.2":
+ version: 2.1.2
+ resolution: "ms@npm:2.1.2"
+ checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f
+ languageName: node
+ linkType: hard
+
+"mz@npm:^2.7.0":
+ version: 2.7.0
+ resolution: "mz@npm:2.7.0"
+ dependencies:
+ any-promise: "npm:^1.0.0"
+ object-assign: "npm:^4.0.1"
+ thenify-all: "npm:^1.0.0"
+ checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87
+ languageName: node
+ linkType: hard
+
+"nanoid@npm:^3.3.7":
+ version: 3.3.7
+ resolution: "nanoid@npm:3.3.7"
+ bin:
+ nanoid: bin/nanoid.cjs
+ checksum: ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "negotiator@npm:0.6.3"
+ checksum: 2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 10.0.1
+ resolution: "node-gyp@npm:10.0.1"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ glob: "npm:^10.3.10"
+ graceful-fs: "npm:^4.2.6"
+ make-fetch-happen: "npm:^13.0.0"
+ nopt: "npm:^7.0.0"
+ proc-log: "npm:^3.0.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^6.1.2"
+ which: "npm:^4.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 578cf0c821f258ce4b6ebce4461eca4c991a4df2dee163c0624f2fe09c7d6d37240be4942285a0048d307230248ee0b18382d6623b9a0136ce9533486deddfa8
+ languageName: node
+ linkType: hard
+
+"node-releases@npm:^2.0.14":
+ version: 2.0.14
+ resolution: "node-releases@npm:2.0.14"
+ checksum: 0f7607ec7db5ef1dc616899a5f24ae90c869b6a54c2d4f36ff6d84a282ab9343c7ff3ca3670fe4669171bb1e8a9b3e286e1ef1c131f09a83d70554f855d54f24
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^7.0.0":
+ version: 7.2.0
+ resolution: "nopt@npm:7.2.0"
+ dependencies:
+ abbrev: "npm:^2.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 1e7489f17cbda452c8acaf596a8defb4ae477d2a9953b76eb96f4ec3f62c6b421cd5174eaa742f88279871fde9586d8a1d38fb3f53fa0c405585453be31dff4c
+ languageName: node
+ linkType: hard
+
+"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0":
+ version: 3.0.0
+ resolution: "normalize-path@npm:3.0.0"
+ checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20
+ languageName: node
+ linkType: hard
+
+"normalize-range@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "normalize-range@npm:0.1.2"
+ checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184
+ languageName: node
+ linkType: hard
+
+"nth-check@npm:^2.0.1":
+ version: 2.1.1
+ resolution: "nth-check@npm:2.1.1"
+ dependencies:
+ boolbase: "npm:^1.0.0"
+ checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.0.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
+ languageName: node
+ linkType: hard
+
+"object-hash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "object-hash@npm:3.0.0"
+ checksum: f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: "npm:^3.0.0"
+ checksum: 7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^1.10.1":
+ version: 1.10.1
+ resolution: "path-scurry@npm:1.10.1"
+ dependencies:
+ lru-cache: "npm:^9.1.1 || ^10.0.0"
+ minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
+ checksum: eebfb8304fef1d4f7e1486df987e4fd77413de4fce16508dea69fcf8eb318c09a6b15a7a2f4c22877cec1cb7ecbd3071d18ca9de79eeece0df874a00f1f0bdc8
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "path-type@npm:4.0.0"
+ checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45
+ languageName: node
+ linkType: hard
+
+"picocolors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "picocolors@npm:1.0.0"
+ checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc
+ languageName: node
+ linkType: hard
+
+"pify@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "pify@npm:2.3.0"
+ checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba
+ languageName: node
+ linkType: hard
+
+"pirates@npm:^4.0.1":
+ version: 4.0.6
+ resolution: "pirates@npm:4.0.6"
+ checksum: d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f
+ languageName: node
+ linkType: hard
+
+"postcss-calc@npm:^9.0.1":
+ version: 9.0.1
+ resolution: "postcss-calc@npm:9.0.1"
+ dependencies:
+ postcss-selector-parser: "npm:^6.0.11"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.2.2
+ checksum: a0a3e71a28e7f81f07fb9438362d95df3e3e671b34a38a4070d80a9762040c721b830e0b70f28bbe7fea2a5ba2da43637d7594be5835bbe828c0c493f0c5f052
+ languageName: node
+ linkType: hard
+
+"postcss-cli@npm:^10.1.0":
+ version: 10.1.0
+ resolution: "postcss-cli@npm:10.1.0"
+ dependencies:
+ chokidar: "npm:^3.3.0"
+ dependency-graph: "npm:^0.11.0"
+ fs-extra: "npm:^11.0.0"
+ get-stdin: "npm:^9.0.0"
+ globby: "npm:^13.0.0"
+ picocolors: "npm:^1.0.0"
+ postcss-load-config: "npm:^4.0.0"
+ postcss-reporter: "npm:^7.0.0"
+ pretty-hrtime: "npm:^1.0.3"
+ read-cache: "npm:^1.0.0"
+ slash: "npm:^5.0.0"
+ yargs: "npm:^17.0.0"
+ peerDependencies:
+ postcss: ^8.0.0
+ bin:
+ postcss: index.js
+ checksum: 7c7b50fa3072507a2e1cb7cdab0e8349222193d9759b05a3460caa43c1601f2219fcf4a8e164bfe5d0ae99c16071af642cc6288c76b01de568ffc5fdeb155086
+ languageName: node
+ linkType: hard
+
+"postcss-colormin@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "postcss-colormin@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ caniuse-api: "npm:^3.0.0"
+ colord: "npm:^2.9.3"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 55a1525de345d953bc7f32ecaa5ee6275ef0277c27d1f97ff06a1bd1a2fedf7f254e36dc1500621f1df20c25a6d2485a74a0b527d8ff74eb90726c76efe2ac8e
+ languageName: node
+ linkType: hard
+
+"postcss-convert-values@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "postcss-convert-values@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 43e9f66af9bdec3c76695f9dde36885abc01f662c370c490b45d895459caab2c5792f906f3ddad107129133e41485a65634da7f699eef916a636e47f6a37a299
+ languageName: node
+ linkType: hard
+
+"postcss-discard-comments@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-discard-comments@npm:6.0.2"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: c1731ccc8d1e3d910412a61395988d3033365e6532d9e5432ad7c74add8c9dcb0af0c03d4e901bf0d2b59ea4e7297a0c77a547ff2ed1b1cc065559cc0de43b4e
+ languageName: node
+ linkType: hard
+
+"postcss-discard-duplicates@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-discard-duplicates@npm:6.0.3"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 308e3fb84c35e4703532de1efa5d6e8444cc5f167d0e40f42d7ea3fa3a37d9d636fd10729847d078e0c303eee16f8548d14b6f88a3fce4e38a2b452648465175
+ languageName: node
+ linkType: hard
+
+"postcss-discard-empty@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-discard-empty@npm:6.0.3"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: bad305572faa066026a295faab37e718cee096589ab827b19c990c55620b2b2a1ce9f0145212651737a66086db01b2676c1927bbb8408c5f9cb42686d5959f00
+ languageName: node
+ linkType: hard
+
+"postcss-discard-overridden@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-discard-overridden@npm:6.0.2"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: a38e0fe7a36f83cb9b73c1ba9ee2a48cf93c69ec0ea5753935824ffb71e958e58ae0393171c0f3d0014a397469d09bbb0d56bb5ab80f0280722967e2e273aebb
+ languageName: node
+ linkType: hard
+
+"postcss-import-ext-glob@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "postcss-import-ext-glob@npm:2.1.1"
+ dependencies:
+ fast-glob: "npm:^3.2.12"
+ fast-sort: "npm:^3.2.0"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.2.0
+ checksum: a815591485dfbc700e025ad37052a8bc3f59d56425daca7a397706d979c01b72ee3f965330d8885c12b0a7a5d646dd20e0b7bcaa2fc07760c4f4d0a01b38456d
+ languageName: node
+ linkType: hard
+
+"postcss-import@npm:^15.1.0":
+ version: 15.1.0
+ resolution: "postcss-import@npm:15.1.0"
+ dependencies:
+ postcss-value-parser: "npm:^4.0.0"
+ read-cache: "npm:^1.0.0"
+ resolve: "npm:^1.1.7"
+ peerDependencies:
+ postcss: ^8.0.0
+ checksum: 33c91b7e6b794b5c33d7d7d4730e5f0729c131d2de1ada7fcc116955625a78c3ce613983f019fa9447681795cf3f851e9c38dfbe3f48a2d08a8aef917c70a32a
+ languageName: node
+ linkType: hard
+
+"postcss-js@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "postcss-js@npm:4.0.1"
+ dependencies:
+ camelcase-css: "npm:^2.0.1"
+ peerDependencies:
+ postcss: ^8.4.21
+ checksum: ef2cfe8554daab4166cfcb290f376e7387964c36503f5bd42008778dba735685af8d4f5e0aba67cae999f47c855df40a1cd31ae840e0df320ded36352581045e
+ languageName: node
+ linkType: hard
+
+"postcss-load-config@npm:^4.0.0, postcss-load-config@npm:^4.0.1":
+ version: 4.0.2
+ resolution: "postcss-load-config@npm:4.0.2"
+ dependencies:
+ lilconfig: "npm:^3.0.0"
+ yaml: "npm:^2.3.4"
+ peerDependencies:
+ postcss: ">=8.0.9"
+ ts-node: ">=9.0.0"
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ checksum: e2c2ed9b7998a5b123e1ce0c124daf6504b1454c67dcc1c8fdbcc5ffb2597b7de245e3ac34f63afc928d3fd3260b1e36492ebbdb01a9ff63f16b3c8b7b925d1b
+ languageName: node
+ linkType: hard
+
+"postcss-merge-longhand@npm:^6.0.4":
+ version: 6.0.4
+ resolution: "postcss-merge-longhand@npm:6.0.4"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ stylehacks: "npm:^6.1.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 5f9626e3386e8f46f3cb2585fedfd1600cd281462038e90714a220bfef28f53e6b5019ab2412c8deb36f962086a5eae46b423a20106e24b70014764d8c5311f1
+ languageName: node
+ linkType: hard
+
+"postcss-merge-rules@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "postcss-merge-rules@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ caniuse-api: "npm:^3.0.0"
+ cssnano-utils: "npm:^4.0.2"
+ postcss-selector-parser: "npm:^6.0.15"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 6efdcb2112cb8b9898c53b89b4be5c10bd8b5e4fdd87e900406d20a4d2c4de3ce5c63c99a2913bfd1da659fabafbd86d127ac71286cf0ff715bd1521ab8ac7a5
+ languageName: node
+ linkType: hard
+
+"postcss-minify-font-values@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-minify-font-values@npm:6.0.3"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 472edb0146d108a0fc6f02eaa6437fb7440439c0af5b63eeb364dd11684905a66b4fb1acee544040eba8a3ce5ed5625a1c5b231184df6d9d48611a4ca096577c
+ languageName: node
+ linkType: hard
+
+"postcss-minify-gradients@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-minify-gradients@npm:6.0.3"
+ dependencies:
+ colord: "npm:^2.9.3"
+ cssnano-utils: "npm:^4.0.2"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 696387df1736b951fbc93c10949e7a1bb85bc12564c506c55e704ae483749f52a9ec919dbca461afa91798373041b840976dbdad031b374a4cf4cf96ad8cd4d0
+ languageName: node
+ linkType: hard
+
+"postcss-minify-params@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "postcss-minify-params@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ cssnano-utils: "npm:^4.0.2"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 1e1cc3057d9bcc532c70e40628e96e3aea0081d8072dffe983a270a8cd59c03ac585e57d036b70e43d4ee725f274a05a6a8efac5a715f448284e115c13f82a46
+ languageName: node
+ linkType: hard
+
+"postcss-minify-selectors@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-minify-selectors@npm:6.0.3"
+ dependencies:
+ postcss-selector-parser: "npm:^6.0.15"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 1d7c8da7ce4f2f8452e1c6052d23436fd7d0440600f613a513d8233ee8feda6abba1dc34d62557a39991a59e830c3f925a45a8b40f650f496db801a468b01a37
+ languageName: node
+ linkType: hard
+
+"postcss-nested@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "postcss-nested@npm:6.0.1"
+ dependencies:
+ postcss-selector-parser: "npm:^6.0.11"
+ peerDependencies:
+ postcss: ^8.2.14
+ checksum: 02aaac682f599879fae6aab3210aee59b8b5bde3ba242527f6fd103726955b74ffa05c2b765920be5f403e758045582534d11b1e19add01586c19743ed99e3fe
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-charset@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-charset@npm:6.0.2"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 5b8aeb17d61578a8656571cd5d5eefa8d4ee7126a99a41fdd322078002a06f2ae96f649197b9c01067a5f3e38a2e4b03e0e3fda5a0ec9e3d7ad056211ce86156
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-display-values@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-display-values@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: f7bf1e9684d83274861857a0c039b3c293cf46dbfcc69fa68be17f3b69ea87becf872e46cfe4bd3136e45eada73f36ddbb4fe27b074c522455919e9675c078de
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-positions@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-positions@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 44fb77583fae4d71b76e38226cf770570876bcf5af6940dc9aeac7a7e2252896b361e0249044766cff8dad445f925378f06a005d6541597573c20e599a62b516
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-repeat-style@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-repeat-style@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 7edcea262870315d2c75a5348ea0da24a27f7b34aefaea18cbce8c3419c570b428cfaedd51a32994b0a85a65ef715c219730f8f66d5853769426a3bc09dfff3f
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-string@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-string@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 916b8a3b4115592e4db259467119e71b30feed11437d7d54ee395376e911bd1d13afeb9be4459a0f5d4ac15a4cd8706571b58d67537d3bafbd41dce00cfd77b8
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-timing-functions@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-timing-functions@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 1970f5aad04be11f99d51c59e27debb6fd7b49d0fa4a8879062b42c82113f8e520a284448727add3b54de85deefb8bd5fe554f618406586e9ad8fc9d060609f1
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-unicode@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "postcss-normalize-unicode@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 69ef35d06242061f0c504c128b83752e0f8daa30ebb26734de7d090460910be0b2efd8b17b1d64c3c85b95831a041faad9ad0aaba80e239406a79cfad3d63568
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-url@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-url@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: bef51a18bbfee4fbf0381fec3c91e6c0dace36fca053bbd5f228e653d2732b6df3985525d79c4f7fc89f840ed07eb6d226e9d7503ecdc6f16d6d80cacae9df33
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-whitespace@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-normalize-whitespace@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 6081eb3a4b305749eec02c00a95c2d236336a77ee636bb1d939f18d5dfa5ba82b7cf7fa072e83f9133d0bc984276596af3fe468bdd67c742ce69e9c63dbc218d
+ languageName: node
+ linkType: hard
+
+"postcss-ordered-values@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-ordered-values@npm:6.0.2"
+ dependencies:
+ cssnano-utils: "npm:^4.0.2"
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: c3f0f4a27b7c50ea4be18019bd203a7c62b741eaeca86a592ccfabdb1ab14043dbb407f0ede90c64997d62144daa4159cedd1d13a6249e85de5da7f708d92724
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-initial@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "postcss-reduce-initial@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ caniuse-api: "npm:^3.0.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 41a4c53c76b00a656d3e4c487585f83dd1605cb7c38633042ecbf52b95934b101d6b94d0145f8b5093c3fde699f8e2477206c144af29cd94b1b669d6e387086f
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-transforms@npm:^6.0.2":
+ version: 6.0.2
+ resolution: "postcss-reduce-transforms@npm:6.0.2"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 822730a524159ab7dc91ff5842f6026bcfbcf4ad10d3b3dbca3c26b92a78311b13723550a79bf691f4e6efdf21719e9c263ea25ea13eb3ec0ec830dad4f572c8
+ languageName: node
+ linkType: hard
+
+"postcss-reporter@npm:^7.0.0":
+ version: 7.1.0
+ resolution: "postcss-reporter@npm:7.1.0"
+ dependencies:
+ picocolors: "npm:^1.0.0"
+ thenby: "npm:^1.3.4"
+ peerDependencies:
+ postcss: ^8.1.0
+ checksum: fc5dea0edf689d1cc68e83d761e7cee7b65dc264025e4ce249a817861a840c415a2cb841c3754a8b98966d89025dba10e73657b88827455010250aa7c5ed0bd8
+ languageName: node
+ linkType: hard
+
+"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.15":
+ version: 6.0.15
+ resolution: "postcss-selector-parser@npm:6.0.15"
+ dependencies:
+ cssesc: "npm:^3.0.0"
+ util-deprecate: "npm:^1.0.2"
+ checksum: cea591e1d9bce60eea724428863187228e27ddaebd98e5ecb4ee6d4c9a4b68e8157fd44c916b3fef1691d19ad16aa416bb7279b5eab260c32340ae630a34e200
+ languageName: node
+ linkType: hard
+
+"postcss-svgo@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-svgo@npm:6.0.3"
+ dependencies:
+ postcss-value-parser: "npm:^4.2.0"
+ svgo: "npm:^3.2.0"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 1a7d1c8dea555884a7791e28ec2c22ea92331731067584ff5a23042a0e615f88fefde04e1140f11c262a728ef9fab6851423b40b9c47f9ae05353bd3c0ff051a
+ languageName: node
+ linkType: hard
+
+"postcss-unique-selectors@npm:^6.0.3":
+ version: 6.0.3
+ resolution: "postcss-unique-selectors@npm:6.0.3"
+ dependencies:
+ postcss-selector-parser: "npm:^6.0.15"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: f504670c186cc2a28cc4b80ff1468476f25a87bd840b83714b7786ae109a47c80feeb6b4597b31559bfe7b0113e3f9e9a494589d65e47e7985c1ba368b7c18c3
+ languageName: node
+ linkType: hard
+
+"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "postcss-value-parser@npm:4.2.0"
+ checksum: e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^8.4.23, postcss@npm:^8.4.31":
+ version: 8.4.35
+ resolution: "postcss@npm:8.4.35"
+ dependencies:
+ nanoid: "npm:^3.3.7"
+ picocolors: "npm:^1.0.0"
+ source-map-js: "npm:^1.0.2"
+ checksum: 93a7ce50cd6188f5f486a9ca98950ad27c19dfed996c45c414fa242944497e4d084a8760d3537f078630226f2bd3c6ab84b813b488740f4432e7c7039cd73a20
+ languageName: node
+ linkType: hard
+
+"prettier-plugin-go-template@npm:^0.0.15":
+ version: 0.0.15
+ resolution: "prettier-plugin-go-template@npm:0.0.15"
+ dependencies:
+ ulid: "npm:^2.3.0"
+ peerDependencies:
+ prettier: ^3.0.0
+ checksum: a576f5cda9de98c7ca1f53b26b5118fe92275689e6a65284e255c9d9c33c06cdf1a6313ac012c8694e4d5366b749b30f2c2c7c18219bc08a704dc2ee86e52f15
+ languageName: node
+ linkType: hard
+
+"prettier@npm:^3.2.5":
+ version: 3.2.5
+ resolution: "prettier@npm:3.2.5"
+ bin:
+ prettier: bin/prettier.cjs
+ checksum: d509f9da0b70e8cacc561a1911c0d99ec75117faed27b95cc8534cb2349667dee6351b0ca83fa9d5703f14127faa52b798de40f5705f02d843da133fc3aa416a
+ languageName: node
+ linkType: hard
+
+"pretty-hrtime@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "pretty-hrtime@npm:1.0.3"
+ checksum: 0a462e88a0a3fd3320288fd8307f488974326ae8e13eea8c27f590f8ee767ccb59cf35bcae1cadff241cd8b72f3e373fc76ff1be95243649899bf8c816874af9
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "proc-log@npm:3.0.0"
+ checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02
+ languageName: node
+ linkType: hard
+
+"promise-retry@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "promise-retry@npm:2.0.1"
+ dependencies:
+ err-code: "npm:^2.0.2"
+ retry: "npm:^0.12.0"
+ checksum: 96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4
+ languageName: node
+ linkType: hard
+
+"queue-microtask@npm:^1.2.2":
+ version: 1.2.3
+ resolution: "queue-microtask@npm:1.2.3"
+ checksum: 72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b
+ languageName: node
+ linkType: hard
+
+"read-cache@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "read-cache@npm:1.0.0"
+ dependencies:
+ pify: "npm:^2.3.0"
+ checksum: 83a39149d9dfa38f0c482ea0d77b34773c92fef07fe7599cdd914d255b14d0453e0229ef6379d8d27d6947f42d7581635296d0cfa7708f05a9bd8e789d398b31
+ languageName: node
+ linkType: hard
+
+"readdirp@npm:~3.6.0":
+ version: 3.6.0
+ resolution: "readdirp@npm:3.6.0"
+ dependencies:
+ picomatch: "npm:^2.2.1"
+ checksum: 196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.1
+ resolution: "regenerator-runtime@npm:0.14.1"
+ checksum: 5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471
+ languageName: node
+ linkType: hard
+
+"require-directory@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "require-directory@npm:2.1.1"
+ checksum: a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.1.7, resolve@npm:^1.22.2":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.13.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a
+ languageName: node
+ linkType: hard
+
+"retry@npm:^0.12.0":
+ version: 0.12.0
+ resolution: "retry@npm:0.12.0"
+ checksum: 1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6
+ languageName: node
+ linkType: hard
+
+"reusify@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "reusify@npm:1.0.4"
+ checksum: 14222c9e1d3f9ae01480c50d96057228a8524706db79cdeb5a2ce5bb7070dd9f409a6f84a02cbef8cdc80d39aef86f2dd03d155188a1300c599b05437dcd2ffb
+ languageName: node
+ linkType: hard
+
+"root-workspace-0b6124@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "root-workspace-0b6124@workspace:."
+ dependencies:
+ "@hotwired/turbo": "npm:^8.0.4"
+ autoprefixer: "npm:^10.4.18"
+ clean-css: "npm:^5.3.2"
+ concurrently: "npm:^8.2.2"
+ cssnano: "npm:^6.0.1"
+ postcss: "npm:^8.4.31"
+ postcss-cli: "npm:^10.1.0"
+ postcss-import: "npm:^15.1.0"
+ postcss-import-ext-glob: "npm:^2.1.1"
+ postcss-js: "npm:^4.0.1"
+ prettier: "npm:^3.2.5"
+ prettier-plugin-go-template: "npm:^0.0.15"
+ slugify: "npm:^1.6.6"
+ tailwindcss: "npm:^3.3.5"
+ utopia-core: "npm:^1.3.0"
+ languageName: unknown
+ linkType: soft
+
+"run-parallel@npm:^1.1.9":
+ version: 1.2.0
+ resolution: "run-parallel@npm:1.2.0"
+ dependencies:
+ queue-microtask: "npm:^1.2.2"
+ checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d
+ languageName: node
+ linkType: hard
+
+"rxjs@npm:^7.8.1":
+ version: 7.8.1
+ resolution: "rxjs@npm:7.8.1"
+ dependencies:
+ tslib: "npm:^2.1.0"
+ checksum: b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: 7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5":
+ version: 7.6.0
+ resolution: "semver@npm:7.6.0"
+ dependencies:
+ lru-cache: "npm:^6.0.0"
+ bin:
+ semver: bin/semver.js
+ checksum: 1b41018df2d8aca5a1db4729985e8e20428c650daea60fcd16e926e9383217d00f574fab92d79612771884a98d2ee2a1973f49d630829a8d54d6570defe62535
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: "npm:^3.0.0"
+ checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
+ languageName: node
+ linkType: hard
+
+"shell-quote@npm:^1.8.1":
+ version: 1.8.1
+ resolution: "shell-quote@npm:1.8.1"
+ checksum: af19ab5a1ec30cb4b2f91fd6df49a7442d5c4825a2e269b3712eded10eedd7f9efeaab96d57829880733fc55bcdd8e9b1d8589b4befb06667c731d08145e274d
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^4.0.1":
+ version: 4.1.0
+ resolution: "signal-exit@npm:4.1.0"
+ checksum: c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f
+ languageName: node
+ linkType: hard
+
+"slash@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "slash@npm:4.0.0"
+ checksum: da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d
+ languageName: node
+ linkType: hard
+
+"slash@npm:^5.0.0":
+ version: 5.1.0
+ resolution: "slash@npm:5.1.0"
+ checksum: 2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4
+ languageName: node
+ linkType: hard
+
+"slugify@npm:^1.6.6":
+ version: 1.6.6
+ resolution: "slugify@npm:1.6.6"
+ checksum: d0737cdedc834c50f74227bc1a1cf4f449f3575893f031b0e8c59f501c73526c866a23e47261b262c7acdaaaaf30d6f9e8aaae22772b3f56e858ac84c35efa7b
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: 927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.1":
+ version: 8.0.2
+ resolution: "socks-proxy-agent@npm:8.0.2"
+ dependencies:
+ agent-base: "npm:^7.0.2"
+ debug: "npm:^4.3.4"
+ socks: "npm:^2.7.1"
+ checksum: ea727734bd5b2567597aa0eda14149b3b9674bb44df5937bbb9815280c1586994de734d965e61f1dd45661183d7b41f115fb9e432d631287c9063864cfcc2ecc
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.7.1":
+ version: 2.8.1
+ resolution: "socks@npm:2.8.1"
+ dependencies:
+ ip-address: "npm:^9.0.5"
+ smart-buffer: "npm:^4.2.0"
+ checksum: a3cc38e0716ab53a2db3fa00c703ca682ad54dbbc9ed4c7461624a999be6fa7cdc79fc904c411618e698d5eff55a55aa6d9329169a7db11636d0200814a2b5aa
+ languageName: node
+ linkType: hard
+
+"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "source-map-js@npm:1.0.2"
+ checksum: 38e2d2dd18d2e331522001fc51b54127ef4a5d473f53b1349c5cca2123562400e0986648b52e9407e348eaaed53bce49248b6e2641e6d793ca57cb2c360d6d51
+ languageName: node
+ linkType: hard
+
+"source-map@npm:~0.6.0":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff
+ languageName: node
+ linkType: hard
+
+"spawn-command@npm:0.0.2":
+ version: 0.0.2
+ resolution: "spawn-command@npm:0.0.2"
+ checksum: f13e8c3c63abd4a0b52fb567eba5f7940d480c5ed3ec61781d38a1850f179b1196c39e6efa2bbd301f82c1bf1cd7807abc8fbd8fc8e44bcaa3975a124c0d1657
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^10.0.0":
+ version: 10.0.5
+ resolution: "ssri@npm:10.0.5"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 453f9a1c241c13f5dfceca2ab7b4687bcff354c3ccbc932f35452687b9ef0ccf8983fd13b8a3baa5844c1a4882d6e3ddff48b0e7fd21d743809ef33b80616d79
+ languageName: node
+ linkType: hard
+
+"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: "npm:^8.0.0"
+ is-fullwidth-code-point: "npm:^3.0.0"
+ strip-ansi: "npm:^6.0.1"
+ checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^5.0.1, string-width@npm:^5.1.2":
+ version: 5.1.2
+ resolution: "string-width@npm:5.1.2"
+ dependencies:
+ eastasianwidth: "npm:^0.2.0"
+ emoji-regex: "npm:^9.2.2"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193
+ languageName: node
+ linkType: hard
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: "npm:^5.0.1"
+ checksum: ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^7.0.1":
+ version: 7.1.0
+ resolution: "strip-ansi@npm:7.1.0"
+ dependencies:
+ ansi-regex: "npm:^6.0.1"
+ checksum: 475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2
+ languageName: node
+ linkType: hard
+
+"stylehacks@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "stylehacks@npm:6.1.0"
+ dependencies:
+ browserslist: "npm:^4.23.0"
+ postcss-selector-parser: "npm:^6.0.15"
+ peerDependencies:
+ postcss: ^8.4.31
+ checksum: 89bc870a62463a029cb745932b2a2a168136c53b7686acd6869336d590a02ee00bc8578285add2627f63802eccae8884391dec5a6e835c10cb5b3d6ffe430fc8
+ languageName: node
+ linkType: hard
+
+"sucrase@npm:^3.32.0":
+ version: 3.35.0
+ resolution: "sucrase@npm:3.35.0"
+ dependencies:
+ "@jridgewell/gen-mapping": "npm:^0.3.2"
+ commander: "npm:^4.0.0"
+ glob: "npm:^10.3.10"
+ lines-and-columns: "npm:^1.1.6"
+ mz: "npm:^2.7.0"
+ pirates: "npm:^4.0.1"
+ ts-interface-checker: "npm:^0.1.9"
+ bin:
+ sucrase: bin/sucrase
+ sucrase-node: bin/sucrase-node
+ checksum: bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^8.1.1":
+ version: 8.1.1
+ resolution: "supports-color@npm:8.1.1"
+ dependencies:
+ has-flag: "npm:^4.0.0"
+ checksum: 157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e
+ languageName: node
+ linkType: hard
+
+"svgo@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "svgo@npm:3.2.0"
+ dependencies:
+ "@trysound/sax": "npm:0.2.0"
+ commander: "npm:^7.2.0"
+ css-select: "npm:^5.1.0"
+ css-tree: "npm:^2.3.1"
+ css-what: "npm:^6.1.0"
+ csso: "npm:^5.0.5"
+ picocolors: "npm:^1.0.0"
+ bin:
+ svgo: ./bin/svgo
+ checksum: 2fdf3f2090e17b3c309e60f69c78a2afd5a9771247adb540bae3fce467243f7a601a2a5497ef40998292da41ad828b3eabf3c18b75bf449c2d2cbf6d7f6e96d9
+ languageName: node
+ linkType: hard
+
+"tailwindcss@npm:^3.3.5":
+ version: 3.4.1
+ resolution: "tailwindcss@npm:3.4.1"
+ dependencies:
+ "@alloc/quick-lru": "npm:^5.2.0"
+ arg: "npm:^5.0.2"
+ chokidar: "npm:^3.5.3"
+ didyoumean: "npm:^1.2.2"
+ dlv: "npm:^1.1.3"
+ fast-glob: "npm:^3.3.0"
+ glob-parent: "npm:^6.0.2"
+ is-glob: "npm:^4.0.3"
+ jiti: "npm:^1.19.1"
+ lilconfig: "npm:^2.1.0"
+ micromatch: "npm:^4.0.5"
+ normalize-path: "npm:^3.0.0"
+ object-hash: "npm:^3.0.0"
+ picocolors: "npm:^1.0.0"
+ postcss: "npm:^8.4.23"
+ postcss-import: "npm:^15.1.0"
+ postcss-js: "npm:^4.0.1"
+ postcss-load-config: "npm:^4.0.1"
+ postcss-nested: "npm:^6.0.1"
+ postcss-selector-parser: "npm:^6.0.11"
+ resolve: "npm:^1.22.2"
+ sucrase: "npm:^3.32.0"
+ bin:
+ tailwind: lib/cli.js
+ tailwindcss: lib/cli.js
+ checksum: bf460657c674b1fb22ad7017ab5a9771c2884a3089d7767cee2395e8d9a54d74846170934ee00e285f39622c8e9e54d6f0e54bf38344efdc61544291c4d325c2
+ languageName: node
+ linkType: hard
+
+"tar@npm:^6.1.11, tar@npm:^6.1.2":
+ version: 6.2.0
+ resolution: "tar@npm:6.2.0"
+ dependencies:
+ chownr: "npm:^2.0.0"
+ fs-minipass: "npm:^2.0.0"
+ minipass: "npm:^5.0.0"
+ minizlib: "npm:^2.1.1"
+ mkdirp: "npm:^1.0.3"
+ yallist: "npm:^4.0.0"
+ checksum: 2042bbb14830b5cd0d584007db0eb0a7e933e66d1397e72a4293768d2332449bc3e312c266a0887ec20156dea388d8965e53b4fc5097f42d78593549016da089
+ languageName: node
+ linkType: hard
+
+"thenby@npm:^1.3.4":
+ version: 1.3.4
+ resolution: "thenby@npm:1.3.4"
+ checksum: 4422e71677adb8215a34e2096845f51114dd285faf730915e7171e6d2a778a29c6df75523c731eee3b7feddf57436ef7764ff526dbb1686af390a064ee15a14f
+ languageName: node
+ linkType: hard
+
+"thenify-all@npm:^1.0.0":
+ version: 1.6.0
+ resolution: "thenify-all@npm:1.6.0"
+ dependencies:
+ thenify: "npm:>= 3.1.0 < 4"
+ checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e
+ languageName: node
+ linkType: hard
+
+"thenify@npm:>= 3.1.0 < 4":
+ version: 3.3.1
+ resolution: "thenify@npm:3.3.1"
+ dependencies:
+ any-promise: "npm:^1.0.0"
+ checksum: 486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: "npm:^7.0.0"
+ checksum: 10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a
+ languageName: node
+ linkType: hard
+
+"tree-kill@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "tree-kill@npm:1.2.2"
+ bin:
+ tree-kill: cli.js
+ checksum: 49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7
+ languageName: node
+ linkType: hard
+
+"ts-interface-checker@npm:^0.1.9":
+ version: 0.1.13
+ resolution: "ts-interface-checker@npm:0.1.13"
+ checksum: 9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.1.0":
+ version: 2.6.2
+ resolution: "tslib@npm:2.6.2"
+ checksum: bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca
+ languageName: node
+ linkType: hard
+
+"ulid@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "ulid@npm:2.3.0"
+ bin:
+ ulid: ./bin/cli.js
+ checksum: 11d7dd35072b863effb1249f66fb03070142a625610f00e5afd99af7e909b5de9cc7ebca6ede621a6bb1b7479b2489d6f064db6742b55c14bff6496ac60f290f
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "unique-filename@npm:3.0.0"
+ dependencies:
+ unique-slug: "npm:^4.0.0"
+ checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "unique-slug@npm:4.0.0"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 40912a8963fc02fb8b600cf50197df4a275c602c60de4cac4f75879d3c48558cfac48de08a25cc10df8112161f7180b3bbb4d662aadb711568602f9eddee54f0
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "universalify@npm:2.0.1"
+ checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60
+ languageName: node
+ linkType: hard
+
+"update-browserslist-db@npm:^1.0.13":
+ version: 1.0.13
+ resolution: "update-browserslist-db@npm:1.0.13"
+ dependencies:
+ escalade: "npm:^3.1.1"
+ picocolors: "npm:^1.0.0"
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 9074b4ef34d2ed931f27d390aafdd391ee7c45ad83c508e8fed6aaae1eb68f81999a768ed8525c6f88d4001a4fbf1b8c0268f099d0e8e72088ec5945ac796acf
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2
+ languageName: node
+ linkType: hard
+
+"utopia-core@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "utopia-core@npm:1.3.0"
+ checksum: fa53e2a4734d364888baebc3d0612266ddb3bd361e42c5fa1cf98fda6a198e20931e5ed6bef2659f7fc6e7bf746835d1b9fe84112506dbbfd1eca106f4b5c093
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ node-which: ./bin/node-which
+ checksum: 4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f
+ languageName: node
+ linkType: hard
+
+"which@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "which@npm:4.0.0"
+ dependencies:
+ isexe: "npm:^3.1.1"
+ bin:
+ node-which: bin/which.js
+ checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651
+ languageName: node
+ linkType: hard
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: "npm:^4.0.0"
+ string-width: "npm:^4.1.0"
+ strip-ansi: "npm:^6.0.0"
+ checksum: cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^8.1.0":
+ version: 8.1.0
+ resolution: "wrap-ansi@npm:8.1.0"
+ dependencies:
+ ansi-styles: "npm:^6.1.0"
+ string-width: "npm:^5.0.1"
+ strip-ansi: "npm:^7.0.1"
+ checksum: 7b1e4b35e9bb2312d2ee9ee7dc95b8cb5f8b4b5a89f7dde5543fe66c1e3715663094defa50d75454ac900bd210f702d575f15f3f17fa9ec0291806d2578d1ddf
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^5.0.5":
+ version: 5.0.8
+ resolution: "y18n@npm:5.0.8"
+ checksum: 5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd
+ languageName: node
+ linkType: hard
+
+"yaml@npm:^2.3.4":
+ version: 2.4.1
+ resolution: "yaml@npm:2.4.1"
+ bin:
+ yaml: bin.mjs
+ checksum: 2c54fd69ef59126758ae710f9756405a7d41abcbb61aca894250d0e81e76057c14dc9bb00a9528f72f99b8f24077f694a6f7fd09cdd6711fcec2eebfbb5df409
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^21.1.1":
+ version: 21.1.1
+ resolution: "yargs-parser@npm:21.1.1"
+ checksum: 9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^17.0.0, yargs@npm:^17.7.2":
+ version: 17.7.2
+ resolution: "yargs@npm:17.7.2"
+ dependencies:
+ cliui: "npm:^8.0.1"
+ escalade: "npm:^3.1.1"
+ get-caller-file: "npm:^2.0.5"
+ require-directory: "npm:^2.1.1"
+ string-width: "npm:^4.2.3"
+ y18n: "npm:^5.0.5"
+ yargs-parser: "npm:^21.1.1"
+ checksum: abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576
+ languageName: node
+ linkType: hard