From 8cd00afc0b9b7d6984065fe97c7c5ef3e721c1ad Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 21 Oct 2025 22:44:12 +0000
Subject: [PATCH 1/2] Upgrade major dependencies to latest versions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This commit upgrades all major dependencies to their latest versions,
including several breaking changes that required code modifications:
## Major Updates:
### React 18 → 19
- Updated react and react-dom to v19.2.0
- Updated @types/react and @types/react-dom to v19.2.2
- Fixed JSX namespace references (JSX.Element → React.JSX.Element)
- All tests passing with React 19
### Tailwind CSS 3 → 4
- Updated tailwindcss to v4.1.15
- Migrated from @tailwind directives to @import 'tailwindcss'
- Switched to @tailwindcss/postcss plugin for PostCSS integration
- Updated build scripts to use PostCSS CLI instead of Tailwind CLI
- Added postcss-cli as dev dependency
### Headless UI 1 → 2
- Updated @headlessui/react to v2.2.9
- Migrated RadioGroup component API:
- RadioGroup.Label → RadioGroupLabel
- RadioGroup.Option → Radio
- RadioGroup.Description → RadioGroupDescription
- Removed 'active' property from Radio render props (removed in v2)
### Vitest 2 → 3
- Updated vitest, @vitest/ui, and @vitest/coverage-v8 to v3.2.4
- All 160 tests passing with new version
### Biome 1 → 2
- Updated @biomejs/biome to v2.2.6
- Fixed configuration: 'include' → 'includes'
- Applied linter auto-fixes for import types and unused variables
### Other Updates:
- concurrently: 7.x → 9.2.1
- jsdom: 25.x → 27.0.1
- @testing-library/react: 14.x → 16.3.0
- postcss-import: 14.x → 16.1.1
- postcss-nested: 5.x → 7.0.2
- postcss-preset-env: 7.x → 10.4.0
- publint: 0.2.x → 0.3.15
- @arethetypeswrong/cli: 0.15.x → 0.18.2
## Testing:
✅ All 160 tests passing
✅ TypeScript type checking passing
✅ Biome linting passing (0 errors, 0 warnings)
✅ Build successful
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude
---
biome.json | 2 +-
dist/index.cjs | 22 +-
dist/index.cjs.map | 2 +-
dist/index.d.cts | 6 +-
dist/index.d.ts | 6 +-
dist/index.js | 24 +-
dist/index.js.map | 2 +-
package-lock.json | 11123 +++++++++++++++++-----------------
package.json | 44 +-
postcss.config.cjs | 2 +-
src/Enable.spec.tsx | 1 -
src/Enable.tsx | 2 +-
src/Features.tsx | 7 +-
src/ToggleFeatures.spec.tsx | 1 -
src/ToggleFeatures.tsx | 39 +-
src/in-tailwind.css | 4 +-
src/tailwind.css | 1962 +++---
src/usePersist.tsx | 2 +-
18 files changed, 6603 insertions(+), 6648 deletions(-)
diff --git a/biome.json b/biome.json
index 57b2f2f..ec0c5ae 100644
--- a/biome.json
+++ b/biome.json
@@ -6,7 +6,7 @@
"useIgnoreFile": true
},
"files": {
- "include": ["src/**/*.ts", "src/**/*.tsx"]
+ "includes": ["src/**/*.ts", "src/**/*.tsx"]
},
"formatter": {
"enabled": true,
diff --git a/dist/index.cjs b/dist/index.cjs
index 9960c3c..5b6b57c 100644
--- a/dist/index.cjs
+++ b/dist/index.cjs
@@ -552,12 +552,17 @@ function Features({
}
// src/ToggleFeatures.tsx
+
+
+
+
+
var _react3 = require('@headlessui/react');
var _reactdom = require('react-dom'); var _reactdom2 = _interopRequireDefault(_reactdom);
// src/tailwind.css
-var tailwind_default = "*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::-ms-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n/*\n! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -moz-tab-size: 4;\n /* 3 */\n -o-tab-size: 4;\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted currentColor;\n text-decoration: underline dotted currentColor;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n letter-spacing: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n text-align: inherit;\n}\n\n::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple],[size]:where(select:not([size=\"1\"])) {\n background-image: none;\n background-image: initial;\n background-position: 0 0;\n background-position: initial;\n background-repeat: repeat;\n background-repeat: initial;\n background-size: auto auto;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: inherit;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='radio']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:indeterminate {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;\n background: initial;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.-inset-px {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n\n.inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.mt-6 {\n margin-top: 1.5rem;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-5 {\n height: 1.25rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-7 {\n height: 1.75rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.min-h-6 {\n min-height: 1.5rem;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-5 {\n width: 1.25rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.min-w-4 {\n min-width: 1rem;\n}\n\n.min-w-6 {\n min-width: 1.5rem;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.shrink {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n\n.grow {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n.transform {\n -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.flex-row {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.flex-col {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.items-end {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.justify-center {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.gap-1 {\n gap: 0.25rem;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-9 {\n gap: 2.25rem;\n}\n\n.gap-y-6 {\n row-gap: 1.5rem;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n\n.rounded-sm {\n border-radius: 0.125rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgba(59, 130, 246, 1);\n border-color: rgba(59, 130, 246, var(--tw-border-opacity, 1));\n}\n\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgba(209, 213, 219, 1);\n border-color: rgba(209, 213, 219, var(--tw-border-opacity, 1));\n}\n\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgba(107, 114, 128, 1);\n border-color: rgba(107, 114, 128, var(--tw-border-opacity, 1));\n}\n\n.border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgba(34, 197, 94, 1);\n border-color: rgba(34, 197, 94, var(--tw-border-opacity, 1));\n}\n\n.border-orange-500 {\n --tw-border-opacity: 1;\n border-color: rgba(249, 115, 22, 1);\n border-color: rgba(249, 115, 22, var(--tw-border-opacity, 1));\n}\n\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgba(239, 68, 68, 1);\n border-color: rgba(239, 68, 68, var(--tw-border-opacity, 1));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgba(37, 99, 235, 1);\n background-color: rgba(37, 99, 235, var(--tw-bg-opacity, 1));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, 1);\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity, 1));\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.pb-0 {\n padding-bottom: 0px;\n}\n\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.pb-4 {\n padding-bottom: 1rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-4 {\n padding-right: 1rem;\n}\n\n.pt-0 {\n padding-top: 0px;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.pt-5 {\n padding-top: 1.25rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.align-bottom {\n vertical-align: bottom;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.leading-6 {\n line-height: 1.5rem;\n}\n\n.leading-7 {\n line-height: 1.75rem;\n}\n\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgba(59, 130, 246, 1);\n color: rgba(59, 130, 246, var(--tw-text-opacity, 1));\n}\n\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgba(107, 114, 128, 1);\n color: rgba(107, 114, 128, var(--tw-text-opacity, 1));\n}\n\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgba(17, 24, 39, 1);\n color: rgba(17, 24, 39, var(--tw-text-opacity, 1));\n}\n\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgba(34, 197, 94, 1);\n color: rgba(34, 197, 94, var(--tw-text-opacity, 1));\n}\n\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgba(249, 115, 22, 1);\n color: rgba(249, 115, 22, var(--tw-text-opacity, 1));\n}\n\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgba(239, 68, 68, 1);\n color: rgba(239, 68, 68, var(--tw-text-opacity, 1));\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgba(255, 255, 255, 1);\n color: rgba(255, 255, 255, var(--tw-text-opacity, 1));\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.ring-blue-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(59, 130, 246, var(--tw-ring-opacity, 1));\n}\n\n.ring-gray-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(107, 114, 128, var(--tw-ring-opacity, 1));\n}\n\n.invert {\n --tw-invert: invert(100%);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.filter {\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition-all {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transition-duration: 150ms;\n transition-duration: 150ms;\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.focus\\:ring-blue-600:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(37, 99, 235, var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n@media (min-width: 640px) {\n .sm\\:my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n\n .sm\\:mt-3 {\n margin-top: 0.75rem;\n }\n\n .sm\\:mt-6 {\n margin-top: 1.5rem;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .sm\\:gap-x-4 {\n -moz-column-gap: 1rem;\n -webkit-column-gap: 1rem;\n column-gap: 1rem;\n }\n\n .sm\\:p-0 {\n padding: 0px;\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:align-middle {\n vertical-align: middle;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:max-w-\\[80\\%\\] {\n max-width: 80%;\n }\n\n .lg\\:gap-4 {\n gap: 1rem;\n }\n}\n";
+var tailwind_default = '/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */\n:root:not(#\\#), :host:not(#\\#) {\n --font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji",\n "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n --color-red-500: rgb(251, 44, 54);\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n --color-blue-600: rgb(21, 93, 252);\n --color-gray-300: rgb(209, 213, 220);\n --color-gray-500: rgb(106, 114, 130);\n --color-gray-900: rgb(16, 24, 40);\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --font-weight-medium: 500;\n --font-weight-bold: 700;\n --radius-sm: 0.25rem;\n --radius-lg: 0.5rem;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n}\n@supports (color: color(display-p3 0 0 0%)) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n }\n\n@media (color-gamut: p3) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: color(display-p3 0.94659 0.44979 0.07573);\n --color-green-500: color(display-p3 0.30873 0.77475 0.37431);\n --color-blue-500: color(display-p3 0.26642 0.49122 0.98862);\n }\n}\n}\n:not(#\\#):not(#\\#)::-ms-backdrop {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n*:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::after,\n :not(#\\#):not(#\\#)::before,\n :not(#\\#):not(#\\#)::backdrop,\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\nhtml:not(#\\#):not(#\\#),\n :host:not(#\\#):not(#\\#) {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n font-family: var(--default-font-family, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-font-feature-settings, normal);\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n}\nhr:not(#\\#):not(#\\#) {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]):not(#\\#):not(#\\#) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nh1:not(#\\#):not(#\\#),\n h2:not(#\\#):not(#\\#),\n h3:not(#\\#):not(#\\#),\n h4:not(#\\#):not(#\\#),\n h5:not(#\\#):not(#\\#),\n h6:not(#\\#):not(#\\#) {\n font-size: inherit;\n font-weight: inherit;\n}\na:not(#\\#):not(#\\#) {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\nb:not(#\\#):not(#\\#),\n strong:not(#\\#):not(#\\#) {\n font-weight: bolder;\n}\ncode:not(#\\#):not(#\\#),\n kbd:not(#\\#):not(#\\#),\n samp:not(#\\#):not(#\\#),\n pre:not(#\\#):not(#\\#) {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n}\nsmall:not(#\\#):not(#\\#) {\n font-size: 80%;\n}\nsub:not(#\\#):not(#\\#),\n sup:not(#\\#):not(#\\#) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub:not(#\\#):not(#\\#) {\n bottom: -0.25em;\n}\nsup:not(#\\#):not(#\\#) {\n top: -0.5em;\n}\ntable:not(#\\#):not(#\\#) {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n:-moz-focusring:not(#\\#):not(#\\#) {\n outline: auto;\n}\nprogress:not(#\\#):not(#\\#) {\n vertical-align: baseline;\n}\nsummary:not(#\\#):not(#\\#) {\n display: list-item;\n}\nol:not(#\\#):not(#\\#),\n ul:not(#\\#):not(#\\#),\n menu:not(#\\#):not(#\\#) {\n list-style: none;\n}\nimg:not(#\\#):not(#\\#),\n svg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#),\n canvas:not(#\\#):not(#\\#),\n audio:not(#\\#):not(#\\#),\n iframe:not(#\\#):not(#\\#),\n embed:not(#\\#):not(#\\#),\n object:not(#\\#):not(#\\#) {\n display: block;\n vertical-align: middle;\n}\nimg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#) {\n max-width: 100%;\n height: auto;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\nbutton:not(#\\#):not(#\\#),\n input:not(#\\#):not(#\\#),\n select:not(#\\#):not(#\\#),\n optgroup:not(#\\#):not(#\\#),\n textarea:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::file-selector-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::-webkit-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-moz-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#):-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::placeholder {\n opacity: 1;\n}\n@supports (not (-webkit-appearance: -apple-pay-button)) or\n (contain-intrinsic-size: 1px) {\n :not(#\\#):not(#\\#)::-webkit-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-moz-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#):-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n :not(#\\#):not(#\\#)::-csstools-invalid-placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n}\ntextarea:not(#\\#):not(#\\#) {\n resize: vertical;\n}\n:not(#\\#):not(#\\#)::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n:not(#\\#):not(#\\#)::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-year-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-month-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-day-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-hour-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-minute-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-second-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-millisecond-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-calendar-picker-indicator {\n line-height: 1;\n}\n:-moz-ui-invalid:not(#\\#):not(#\\#) {\n box-shadow: none;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\nbutton:not(#\\#):not(#\\#),\n input:where([type="button"], [type="reset"], [type="submit"]):not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\n:not(#\\#):not(#\\#)::-webkit-inner-spin-button,\n :not(#\\#):not(#\\#)::-webkit-outer-spin-button {\n height: auto;\n}\n[hidden]:where(:not([hidden="until-found"])):not(#\\#):not(#\\#):not(#\\#) {\n display: none !important;\n}\n.pointer-events-none:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n pointer-events: none;\n}\n.invisible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: hidden;\n}\n.visible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: visible;\n}\n.sr-only:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n.absolute:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n}\n.fixed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: fixed;\n}\n.relative:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: relative;\n}\n.-inset-px:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n.inset-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: calc(var(--spacing) * 0);\n right: calc(var(--spacing) * 0);\n bottom: calc(var(--spacing) * 0);\n left: calc(var(--spacing) * 0);\n}\n.bottom-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n bottom: calc(var(--spacing) * 0);\n}\n.left-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n left: calc(var(--spacing) * 0);\n}\n.z-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n z-index: 10;\n}\n.container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: 100%;\n}\n@media (min-width: 40rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 40rem;\n }\n}\n@media (min-width: 48rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 48rem;\n }\n}\n@media (min-width: 64rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 64rem;\n }\n}\n@media (min-width: 80rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80rem;\n }\n}\n@media (min-width: 96rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 96rem;\n }\n}\n.mx-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 4);\n margin-right: calc(var(--spacing) * 4);\n}\n.mx-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 8);\n margin-right: calc(var(--spacing) * 8);\n}\n.my-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.mt-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 1);\n}\n.mt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n}\n.mt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 5);\n}\n.mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n}\n.block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n}\n.contents:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: contents;\n}\n.flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.grid:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: grid;\n}\n.hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: none;\n}\n.inline-block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: inline-block;\n}\n.inline-flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n.table:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: table;\n}\n.h-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 4);\n}\n.h-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 5);\n}\n.h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 6);\n}\n.h-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 7);\n}\n.h-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 8);\n}\n.min-h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: calc(var(--spacing) * 6);\n}\n.min-h-screen:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: 100vh;\n}\n.w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 4);\n}\n.w-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 5);\n}\n.w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 6);\n}\n.w-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 8);\n}\n.max-w-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 100%;\n}\n.min-w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 4);\n}\n.min-w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 6);\n}\n.flex-shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.flex-grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.border-collapse:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-collapse: collapse;\n}\n.transform:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transform: ;\n transform: ;\n -webkit-transform: ;\n -webkit-transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n transform: ;\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n}\n.cursor-not-allowed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: not-allowed;\n}\n.cursor-pointer:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: pointer;\n}\n.resize:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n resize: both;\n}\n.grid-cols-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.flex-col:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.flex-row:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.flex-nowrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.flex-wrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.items-end:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.justify-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.gap-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 1);\n}\n.gap-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 2);\n}\n.gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n}\n.gap-9:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 9);\n}\n.gap-y-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n row-gap: calc(var(--spacing) * 6);\n}\n.overflow-hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow: hidden;\n}\n.overflow-y-auto:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow-y: auto;\n}\n.rounded-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: calc(infinity * 1px);\n}\n.rounded-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-lg);\n}\n.rounded-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-sm);\n}\n.border:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n}\n.border-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 2px;\n}\n.border-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-blue-500);\n}\n.border-gray-300:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-300);\n}\n.border-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-500);\n}\n.border-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-green-500);\n}\n.border-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-orange-500);\n}\n.border-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-red-500);\n}\n.border-transparent:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: transparent;\n}\n.bg-blue-600:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-blue-600);\n}\n.bg-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-white);\n}\n.p-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 1);\n}\n.p-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 3);\n}\n.px-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 2);\n padding-right: calc(var(--spacing) * 2);\n}\n.px-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n}\n.py-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 1);\n padding-bottom: calc(var(--spacing) * 1);\n}\n.pt-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 0);\n}\n.pt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 4);\n}\n.pt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 5);\n}\n.pr-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-right: calc(var(--spacing) * 4);\n}\n.pb-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 0);\n}\n.pb-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 4);\n}\n.pb-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 10);\n}\n.pl-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n}\n.text-left:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-align: left;\n}\n.align-bottom:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: bottom;\n}\n.align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n}\n.text-base:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n}\n.text-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n}\n.text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n}\n.text-xs:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n}\n.leading-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 6);\n line-height: calc(var(--spacing) * 6);\n}\n.leading-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 7);\n line-height: calc(var(--spacing) * 7);\n}\n.font-bold:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n}\n.font-medium:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n}\n.text-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-blue-500);\n}\n.text-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-500);\n}\n.text-gray-900:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-900);\n}\n.text-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-green-500);\n}\n.text-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-orange-500);\n}\n.text-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-red-500);\n}\n.text-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-white);\n}\n.underline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-decoration-line: underline;\n}\n.shadow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-xl:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-500);\n}\n.ring-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-gray-500);\n}\n.outline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n}\n.invert:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-invert: invert(100%);\n -webkit-filter: invert(100%) ;\n filter: invert(100%) ;\n -webkit-filter: invert(100%) ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: invert(100%) ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.filter:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-filter: ;\n filter: ;\n -webkit-filter: ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.transition-all:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n -webkit-transition-duration: var(--tw-duration, var(--default-transition-duration));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.focus\\:ring-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.focus\\:ring-blue-600:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-600);\n}\n.focus\\:ring-offset-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n}\n.focus\\:outline-none:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-outline-style: none;\n outline-style: none;\n}\n@media (min-width: 40rem) {\n .sm\\:my-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 8);\n margin-bottom: calc(var(--spacing) * 8);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 3);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:grid-cols-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 40rem) {\n .sm\\:gap-x-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-column-gap: calc(var(--spacing) * 4);\n -moz-column-gap: calc(var(--spacing) * 4);\n column-gap: calc(var(--spacing) * 4);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 0);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n}\n@media (min-width: 64rem) {\n .lg\\:max-w-\\[80\\%\\]:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80%;\n }\n}\n@media (min-width: 64rem) {\n .lg\\:gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n }\n}\n@property --tw-rotate-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-border-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: "*";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: "";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: "";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-ring-inset {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: "";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: "*";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-outline-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: "*";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: "*";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: "*";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: "*";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-invert {\n syntax: "*";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: "*";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: "";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: "*";\n inherits: false;\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n ::-ms-backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n *, ::before, ::after, ::backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n}\n';
// src/ToggleFeatures.tsx
@@ -603,7 +608,7 @@ function ToggleFeature({
onChange: handleChangeSelection,
value: valueInOverrides,
children: [
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react3.RadioGroup.Label, { children: [
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react3.RadioGroupLabel, { children: [
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h6", { className: "text-gray-900 align-center flex flex-row flex-nowrap items-center gap-2 lg:gap-4 h-7", children: [
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "font-medium", children: [
"Feature: ",
@@ -673,20 +678,19 @@ function ToggleFeature({
description: "Override the feature to be enabled"
}
].map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
- _react3.RadioGroup.Option,
+ _react3.Radio,
{
- className: ({ checked, active, disabled }) => classNames(
+ className: ({ checked, disabled }) => classNames(
checked ? "border-transparent" : "border-gray-300",
- !disabled && active ? "border-blue-500 ring-2 ring-blue-500" : "",
disabled ? "border-transparent ring-gray-500 cursor-not-allowed" : "cursor-pointer",
"relative bg-white border rounded-lg shadow-sm p-3 flex focus:outline-none"
),
disabled: option.disabled,
value: option.id,
- children: ({ checked, active, disabled }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
+ children: ({ checked, disabled }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col grow", children: [
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
- _react3.RadioGroup.Label,
+ _react3.RadioGroupLabel,
{
as: "span",
className: "flex flex-nowrap flex-row gap-1 items-center space-between",
@@ -718,7 +722,7 @@ function ToggleFeature({
}
),
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
- _react3.RadioGroup.Description,
+ _react3.RadioGroupDescription,
{
as: "span",
className: "mt-1 flex items-center text-sm text-gray-500",
@@ -731,7 +735,7 @@ function ToggleFeature({
{
"aria-hidden": "true",
className: classNames(
- !disabled && active ? "border" : "border-2",
+ "border-2",
checked ? disabled ? "border-gray-500" : "border-blue-500" : "border-transparent",
"absolute -inset-px rounded-lg pointer-events-none"
)
diff --git a/dist/index.cjs.map b/dist/index.cjs.map
index cb6863c..504f9b6 100644
--- a/dist/index.cjs.map
+++ b/dist/index.cjs.map
@@ -1 +1 @@
-{"version":3,"sources":["/home/user/react-enable/dist/index.cjs","../src/utils.ts","../src/EnableContext.tsx","../src/useAllDisabled.tsx","../src/useDisabled.tsx","../src/Disable.tsx","../src/useAllEnabled.tsx","../src/useEnabled.tsx","../src/Enable.tsx","../src/Features.tsx","../src/FeatureContext.tsx","../src/FeatureState.tsx","../src/FeaturesState.tsx","../src/useConsoleOverride.tsx","../src/GlobalEnable.tsx","../src/usePersist.tsx","../src/useTestCallback.tsx","../src/rolloutHash.tsx","../src/testFeature.tsx","../src/ToggleFeatures.tsx","../src/tailwind.css"],"names":["jsx","Fragment","createContext","testFeature","useMemo","useEffect","useContext"],"mappings":"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","file":"/home/user/react-enable/dist/index.cjs","sourcesContent":[null,"import { useContext, useMemo } from 'react';\n\nimport { EnableContext, type EnableContextType } from './EnableContext';\n\n// Helper: get rid of some boilerplate.\n// just input mashing and sanitation, removing extra renders, and getting test function\nexport function useTestAndConvert(\n input?: string[] | string | null,\n): [EnableContextType, string[]] {\n const test = useContext(EnableContext);\n\n // We memoize just to prevent re-renders since this could be at the leaf of a tree\n const converted = useMemo(\n () => (input == null ? [] : Array.isArray(input) ? input : [input]),\n [input],\n );\n\n return [test, converted];\n}\n","import { createContext } from 'react';\n\nimport type { FeatureValue } from './FeatureState';\n\nexport type EnableContextType = (feature: string) => FeatureValue;\n\n/**\n * Contained function can check whether a given feature is enabled.\n */\nexport const EnableContext = createContext((_s) => false);\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are disabled\n */\nexport function useAllDisabled(withoutAll: string[] | string): boolean {\n const [test, queryAllWithout] = useTestAndConvert(withoutAll);\n return (\n withoutAll.length > 0 && queryAllWithout.every((x) => !(test(x) ?? false))\n );\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is disabled\n */\nexport function useDisabled(without: string[] | string): boolean {\n const [test, queryAnyWithout] = useTestAndConvert(without);\n return queryAnyWithout.some((x) => !(test(x) ?? false));\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport type { EnableProps } from './Enable';\nimport { useAllDisabled } from './useAllDisabled';\nimport { useDisabled } from './useDisabled';\n\n/**\n * Feature will be disabled if any in the list are enabled\n */\nexport const Disable: React.FC = ({\n feature = [],\n allFeatures = [],\n children,\n}) => {\n const isAny = useDisabled(feature);\n const isAll = useAllDisabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n};\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are enabled\n */\nexport function useAllEnabled(allFeatures: string[] | string): boolean {\n const [test, queryAllPresent] = useTestAndConvert(allFeatures);\n return queryAllPresent.length > 0 && queryAllPresent.every(test);\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is enabled\n */\nexport function useEnabled(feature: string[] | string): boolean {\n const [test, queryAnyPresent] = useTestAndConvert(feature);\n return queryAnyPresent.some(test);\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport { useAllEnabled } from './useAllEnabled';\nimport { useEnabled } from './useEnabled';\n\nexport interface EnableProps {\n readonly feature?: string[] | string;\n readonly allFeatures?: string[];\n children: React.ReactNode;\n}\n\n/**\n * Feature will be enabled if any feature in the list are enabled,\n */\nexport function Enable({\n feature = [],\n allFeatures = [],\n children,\n}: EnableProps): JSX.Element | null {\n const isAny = useEnabled(feature);\n const isAll = useAllEnabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n}\n","import {\n type ReactNode,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\nimport { EnableContext } from './EnableContext';\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { featuresReducer, initialFeaturesState } from './FeaturesState';\nimport useConsoleOverride from './useConsoleOverride';\nimport usePersist, { KEY } from './usePersist';\nimport useTestCallback from './useTestCallback';\n\nconst ROLLOUT_ID_KEY = 'react-enable:rollout-stable-id';\n\ninterface FeatureProps {\n readonly features: readonly FeatureDescription[];\n readonly children?: ReactNode;\n readonly disableConsole?: boolean;\n readonly storage?: Storage;\n\n /// Stable identifier for percentage-based rollouts. If not provided, one will be\n /// auto-generated and persisted to storage. This ensures consistent feature assignment\n /// for the same user/session across page loads.\n readonly rolloutStableId?: string;\n}\n\n/**\n * A more batteries-enabled parent component that keeps track of feature state\n * internally, and creates window.feature.enable(\"f\") and window.feature.disable(\"f\").\n * Keeps track of overrides and defaults, with defaults potentially coming from your props\n * and overrides being persisted to your choice of storage layer.\n */\nexport function Features({\n children,\n features,\n disableConsole = false,\n storage = window.sessionStorage,\n rolloutStableId,\n}: FeatureProps): JSX.Element {\n // Capture only first value; we don't care about future updates\n const featuresRef = useRef(features);\n\n // Generate or retrieve stable ID for rollouts\n const stableId = useMemo(() => {\n if (rolloutStableId != null) {\n return rolloutStableId;\n }\n\n // Try to retrieve existing ID from storage\n if (storage != null) {\n try {\n const existingId = storage.getItem(ROLLOUT_ID_KEY);\n if (existingId != null) {\n return existingId;\n }\n } catch (e) {\n // Can't read from storage; generate new ID\n }\n }\n\n // Generate new stable ID\n const newId = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;\n\n // Persist to storage\n if (storage != null) {\n try {\n storage.setItem(ROLLOUT_ID_KEY, newId);\n } catch (e) {\n // Can't persist; ID will still work for this session\n }\n }\n\n return newId;\n }, [rolloutStableId, storage]);\n const [overridesState, overridesDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n const [defaultsState, defaultsDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n\n useLayoutEffect(() => {\n /// Load defaults\n defaultsDispatch({ type: 'INIT', features });\n return () => {\n defaultsDispatch({ type: 'DE_INIT' });\n };\n }, [features]);\n\n useLayoutEffect(() => {\n let f: Record = {};\n if (storage != null) {\n try {\n const featuresJson = storage.getItem(KEY);\n if (featuresJson != null) {\n const fh = JSON.parse(featuresJson);\n f = fh.overrides;\n }\n } catch (e) {\n // Can't parse or get or otherwise; ignore\n console.error('error in localStorage', e);\n }\n }\n\n overridesDispatch({\n type: 'INIT',\n features: (featuresRef.current ?? [])\n .filter((x) => x.noOverride !== true)\n .map((x) => ({\n name: x.name,\n description: x.description,\n defaultValue: f?.[x.name] ?? undefined,\n })),\n });\n\n return () => {\n overridesDispatch({ type: 'DE_INIT' });\n };\n }, [storage]);\n\n // Handle async operations for features with onChangeDefault\n useEffect(() => {\n if (defaultsState.value !== 'ready') {\n return;\n }\n\n // Check for features in async states and handle them\n Object.entries(defaultsState.context.features).forEach(\n ([name, feature]) => {\n if (\n feature.value === 'asyncEnabled' ||\n feature.value === 'asyncDisabled' ||\n feature.value === 'asyncUnspecified'\n ) {\n const targetValue =\n feature.value === 'asyncEnabled'\n ? true\n : feature.value === 'asyncDisabled'\n ? false\n : undefined;\n\n const onChangeDefault = feature.featureDesc?.onChangeDefault;\n if (onChangeDefault != null && feature.featureDesc != null) {\n onChangeDefault(feature.featureDesc.name, targetValue)\n .then((result) => {\n defaultsDispatch({ type: 'ASYNC_DONE', name, value: result });\n })\n .catch(() => {\n defaultsDispatch({\n type: 'ASYNC_DONE',\n name,\n value: undefined,\n });\n });\n }\n }\n },\n );\n }, [defaultsState]);\n\n usePersist(storage, featuresRef.current, overridesState);\n\n const testCallback = useTestCallback(overridesState, defaultsState, stableId);\n useConsoleOverride(\n !disableConsole,\n featuresRef.current,\n testCallback,\n defaultsDispatch,\n );\n\n const featureValue = useMemo(\n () => ({\n overridesSend: overridesDispatch,\n defaultsSend: defaultsDispatch,\n featuresDescription: featuresRef.current,\n overridesState,\n defaultsState,\n test: testCallback,\n }),\n [overridesState, defaultsState, testCallback],\n );\n\n return (\n \n \n {children}\n \n \n );\n}\n","import { createContext } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch, FeaturesState } from './FeaturesState';\n\nexport const FeatureContext = createContext(null);\n\n/// Give access to the overrides layer\nexport interface FeatureContextType {\n // Make changes to the overrides\n overridesSend: FeaturesDispatch;\n\n // Make changes to defaults\n defaultsSend: FeaturesDispatch;\n\n featuresDescription: readonly FeatureDescription[];\n\n // State is in layers; overrides and defaults\n overridesState: FeaturesState;\n defaultsState: FeaturesState;\n\n /// Test with proper fallback and respecting the user's force preference\n test: (flag: string) => FeatureValue;\n}\n","import type { Dispatch } from 'react';\n\n/**\n * Feature is either on, off, or 'unset',\n * which means it will go to the default value or the less specific value.\n */\nexport type FeatureValue = false | true | undefined;\n\nexport type FeatureStateValue =\n | 'initial'\n | 'enabled'\n | 'disabled'\n | 'unspecified'\n | 'asyncEnabled'\n | 'asyncDisabled'\n | 'asyncUnspecified';\n\nexport interface FeatureState {\n value: FeatureStateValue;\n featureDesc?: FeatureDescription;\n}\n\nexport type FeatureDispatch = Dispatch;\n\n/// Given a featurestate, determine the value (on, off, or unset)\nexport function valueForState(\n featureState: FeatureState,\n): [FeatureValue, boolean] {\n return [\n featureState.value === 'enabled' || featureState.value === 'asyncEnabled'\n ? true\n : featureState.value === 'disabled' ||\n featureState.value === 'asyncDisabled'\n ? false\n : undefined,\n featureState.featureDesc?.force ?? false,\n ];\n}\n\n/**\n * Definition of a feature that can be enabled or disabled.\n * K is the type of the key that is used to identify the feature.\n */\nexport interface FeatureDescription {\n readonly name: K;\n readonly description?: string;\n\n /// If set, will be used to update the feature default state instead of simply overriding.\n /// For example, you might use this to update a feature flag on a backend server.\n /// when set, the feature will be updated on the backend server, and the result of the async\n /// will be used for the final state after the change. while changing, the feature will be\n /// in the 'changing' state. Also note that the feature will be changed at the \"default\" layer.\n readonly onChangeDefault?: (\n name: K,\n newValue: FeatureValue,\n ) => Promise;\n\n /// if set true, will force the field to what it is set here through layers of states.\n /// useful to invert the layers, similar to !important in CSS.\n readonly force?: boolean;\n\n /// If set to true, the feature will not be overridable by the user.\n readonly noOverride?: boolean;\n\n /// can be used to specify what should happen if the feature is not set to a particular value.\n readonly defaultValue?: FeatureValue;\n\n /// Percentage-based rollout (0-1). If set, the feature will be enabled for a percentage of users\n /// based on a stable identifier. For example, 0.3 means 30% of users will see this feature enabled.\n /// Requires a rolloutStableId to be provided to the Features component.\n readonly enableFor?: number;\n}\n\n/**\n * Actions that can be performed on a feature.\n */\nexport type FeatureAction =\n | { type: 'DISABLE' }\n | { type: 'ENABLE' }\n | { type: 'INIT'; feature: FeatureDescription }\n | { type: 'SET'; value: FeatureValue }\n | { type: 'TOGGLE' }\n | { type: 'UNSET' }\n | { type: 'ASYNC_DONE'; value: FeatureValue };\n\nexport const initialFeatureState: FeatureState = {\n value: 'initial',\n};\n\n/**\n * Reducer for managing individual feature state\n */\nexport function featureReducer(\n state: FeatureState,\n action: FeatureAction,\n): FeatureState {\n switch (action.type) {\n case 'INIT': {\n const { feature } = action;\n const value =\n feature.defaultValue === true\n ? 'enabled'\n : feature.defaultValue === false\n ? 'disabled'\n : 'unspecified';\n return {\n value: value as FeatureStateValue,\n featureDesc: feature,\n };\n }\n\n case 'ENABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'DISABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'disabled' };\n }\n\n case 'TOGGLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'UNSET': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncUnspecified' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'SET': {\n const { value } = action;\n if (state.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n return { ...state, value: 'asyncEnabled' };\n }\n if (value === false) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'asyncUnspecified' };\n }\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'ASYNC_DONE': {\n const { value } = action;\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n default:\n return state;\n }\n}\n","import type { Dispatch } from 'react';\n\nimport {\n type FeatureDescription,\n type FeatureState,\n type FeatureValue,\n valueForState,\n} from './FeatureState';\n\nexport interface FeaturesContext {\n // features are layered:\n // - defaults: if nothing else matches, provided a value for feature\n // - browser: browser-local values for features (kept in local storage, etc)\n // - user: values from the user's profile, if any\n // - org: value from the org's profile, if any\n features: { [x: string]: FeatureState };\n}\n\nexport type FeaturesAction =\n | { type: 'DE_INIT' }\n | { type: 'DISABLE'; name: string }\n | { type: 'ENABLE'; name: string }\n | { type: 'INIT'; features: readonly FeatureDescription[] }\n | { type: 'SET_ALL'; features: { [key: string]: FeatureValue } }\n | { type: 'SET'; name: string; value: FeatureValue }\n | { type: 'TOGGLE'; name: string }\n | { type: 'UNSET'; name: string }\n | { type: 'ASYNC_DONE'; name: string; value: FeatureValue };\n\nexport interface FeaturesState {\n value: 'idle' | 'ready';\n context: FeaturesContext;\n}\n\nexport type FeaturesDispatch = Dispatch;\n\nexport function valueOfFeature(\n featuresState: FeaturesState,\n feature: string,\n): [FeatureValue, boolean] {\n if (featuresState.context.features[feature] == null) {\n return [undefined, false];\n }\n const featureState = featuresState.context.features[feature];\n if (featureState != null) {\n return valueForState(featureState);\n }\n return [undefined, false];\n}\n\nexport const initialFeaturesState: FeaturesState = {\n value: 'idle',\n context: {\n features: {},\n },\n};\n\n/**\n * Reducer for managing a collection of features\n */\nexport function featuresReducer(\n state: FeaturesState,\n action: FeaturesAction,\n): FeaturesState {\n switch (action.type) {\n case 'INIT': {\n if (!action.features || action.features.length === 0) {\n return state;\n }\n\n const features: { [x: string]: FeatureState } = {};\n for (const feature of action.features) {\n // Initialize each feature\n const featureState = {\n value:\n feature.defaultValue === true\n ? ('enabled' as const)\n : feature.defaultValue === false\n ? ('disabled' as const)\n : ('unspecified' as const),\n featureDesc: feature,\n };\n features[feature.name] = featureState;\n }\n\n return {\n value: 'ready',\n context: { features },\n };\n }\n\n case 'DE_INIT': {\n return initialFeaturesState;\n }\n\n case 'SET_ALL': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const features = { ...state.context.features };\n Object.keys(features).forEach((name) => {\n const value = action.features[name] ?? undefined;\n const currentFeature = features[name];\n\n if (currentFeature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'asyncEnabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'asyncDisabled' };\n } else {\n features[name] = { ...currentFeature, value: 'asyncUnspecified' };\n }\n } else {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'enabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'disabled' };\n } else {\n features[name] = { ...currentFeature, value: 'unspecified' };\n }\n }\n });\n\n return {\n ...state,\n context: { features },\n };\n }\n\n case 'SET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n let newValue: FeatureState['value'];\n\n if (feature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n newValue = 'asyncEnabled';\n } else if (value === false) {\n newValue = 'asyncDisabled';\n } else {\n newValue = 'asyncUnspecified';\n }\n } else {\n if (value === true) {\n newValue = 'enabled';\n } else if (value === false) {\n newValue = 'disabled';\n } else {\n newValue = 'unspecified';\n }\n }\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'TOGGLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ENABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'DISABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncDisabled'\n : 'disabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'UNSET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncUnspecified'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ASYNC_DONE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n const newValue =\n value === true\n ? 'enabled'\n : value === false\n ? 'disabled'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\nimport { GlobalEnable } from './GlobalEnable';\n\nexport default function useConsoleOverride(\n consoleOverride: boolean,\n features: readonly FeatureDescription[],\n testFeature: (_: string) => FeatureValue,\n dispatch: FeaturesDispatch,\n): void {\n useEffect(() => {\n if (!consoleOverride) {\n // Clean up window.feature immediately if consoleOverride is disabled\n if (window.feature != null) {\n window.feature = undefined;\n }\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }\n window.feature = new GlobalEnable(dispatch, testFeature, features);\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }, [features, dispatch, consoleOverride, testFeature]);\n}\n","import type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\n\nexport class GlobalEnable {\n private readonly featureDesc: readonly FeatureDescription[];\n private readonly dispatch: FeaturesDispatch;\n private readonly testFeature: (value: string) => FeatureValue;\n\n constructor(\n dispatch: FeaturesDispatch,\n testFeature: (_: string) => FeatureValue,\n featureDesc: readonly FeatureDescription[],\n ) {\n this.featureDesc = featureDesc;\n this.dispatch = dispatch;\n this.testFeature = testFeature;\n }\n\n public toggle(feature: string): void {\n this.dispatch({ type: 'TOGGLE', name: feature });\n }\n\n public enable(feature: string): void {\n this.dispatch({ type: 'ENABLE', name: feature });\n }\n\n public unset(feature: string): void {\n this.dispatch({ type: 'UNSET', name: feature });\n }\n\n public disable(feature: string): void {\n this.dispatch({ type: 'DISABLE', name: feature });\n }\n\n public setAll(features: { [key: string]: FeatureValue }): void {\n this.dispatch({ type: 'SET_ALL', features });\n }\n\n public listFeatures(): readonly [string, FeatureValue][] {\n return this.featureDesc.map((f) => [f.name, this.testFeature(f.name)]);\n }\n}\ndeclare global {\n interface Window {\n feature?: GlobalEnable;\n }\n}\n","import { useEffect, useMemo } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\n\nexport const KEY = 'react-enable:feature-values';\n\nexport default function usePersist(\n storage: Storage | undefined,\n features: readonly FeatureDescription[],\n overrideState: FeaturesState,\n): void {\n const overrides = useMemo(() => {\n const newOverrides: { [key: string]: FeatureValue } = {};\n if (overrideState.value === 'ready') {\n for (const feature of features) {\n const [value] = valueOfFeature(overrideState, feature.name);\n if (value != null) {\n newOverrides[feature.name] = value;\n }\n }\n }\n return newOverrides;\n }, [features, overrideState]);\n\n const strState =\n Object.keys(overrides).length === 0 || storage == null\n ? '{}'\n : JSON.stringify({ overrides });\n\n useEffect(() => {\n try {\n if (storage != null && overrideState.value === 'ready') {\n storage.setItem(KEY, strState);\n }\n } catch (e) {\n // Can't set for some reason\n }\n }, [overrideState, storage, strState]);\n}\n","import { useCallback } from 'react';\n\nimport type { FeaturesState } from './FeaturesState';\nimport testFeature from './testFeature';\n\n/// A callback that can be called to test if a feature is enabled or disabled\nexport default function useTestCallback(\n overridesState: FeaturesState,\n defaultsState: FeaturesState,\n rolloutStableId?: string,\n): (feature: string) => boolean | undefined {\n return useCallback(\n (f: string) => testFeature(f, [overridesState, defaultsState], rolloutStableId),\n [overridesState, defaultsState, rolloutStableId],\n );\n}\n","/**\n * Simple hash function to convert a string into a number between 0 and 1.\n * This is used for percentage-based rollouts to ensure consistent feature\n * assignment for the same user/session.\n * Uses a variant of the djb2 hash algorithm.\n *\n * @param str - The string to hash (typically featureName + rolloutStableId)\n * @returns A number between 0 and 1\n */\nexport function hashToPercentage(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) + hash + char) | 0; // hash * 33 + char\n }\n // Convert to unsigned 32-bit integer and normalize to 0-1\n const unsigned = hash >>> 0;\n return unsigned / 4294967296; // 2^32\n}\n\n/**\n * Determines if a feature should be enabled based on percentage rollout.\n *\n * @param featureName - Name of the feature\n * @param rolloutStableId - Stable identifier for consistent hashing\n * @param percentage - Target percentage (0-1)\n * @returns true if the feature should be enabled for this user\n */\nexport function isInRollout(\n featureName: string,\n rolloutStableId: string,\n percentage: number,\n): boolean {\n if (percentage <= 0) return false;\n if (percentage >= 1) return true;\n\n const combinedKey = `${featureName}:${rolloutStableId}`;\n const hash = hashToPercentage(combinedKey);\n return hash < percentage;\n}\n","import type { FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\nimport { isInRollout } from './rolloutHash';\n\n/** Determine if the feature is enabled in one of the state machines, in order\n *\n * @param state The current state of the machine\n * @param feature The feature to check\n * @param rolloutStableId Optional stable identifier for percentage-based rollouts\n */\n\nexport default function testFeature(\n feature: string,\n states: FeaturesState[],\n rolloutStableId?: string,\n): FeatureValue {\n const values = states.map((state) => valueOfFeature(state, feature));\n\n // look for best forced option, in order\n for (const [featureValue, featureForced] of values) {\n if (featureValue != null && featureForced) {\n return featureValue;\n }\n }\n\n // look for best non-forced option, in order\n for (const [featureValue] of values) {\n if (featureValue != null) {\n return featureValue;\n }\n }\n\n // Check for percentage-based rollout if no explicit value is set\n if (rolloutStableId != null) {\n // Look through states to find the feature description with enableFor\n for (const state of states) {\n if (state.value === 'ready' && state.context.features[feature] != null) {\n const featureState = state.context.features[feature];\n const enableFor = featureState.featureDesc?.enableFor;\n\n if (enableFor != null) {\n return isInRollout(feature, rolloutStableId, enableFor);\n }\n }\n }\n }\n\n // unset if nothing hit\n return undefined;\n}\n","import { RadioGroup } from '@headlessui/react';\nimport { type ReactNode, useCallback, useContext, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { valueOfFeature } from './FeaturesState';\n// @ts-expect-error bundler will take care of this\nimport styles from './tailwind.css';\n\nfunction classNames(...classes: string[]): string {\n return classes.filter(Boolean).join(' ');\n}\n\nfunction ToggleFeature({\n feature,\n}: {\n feature: FeatureDescription;\n}): JSX.Element | null {\n const context = useContext(FeatureContext);\n const handleChangeSelection = useCallback(\n (value: 'false' | 'true' | 'unset') => {\n if (context?.overridesSend != null) {\n switch (value) {\n case 'true': {\n context.overridesSend({ type: 'ENABLE', name: feature.name });\n break;\n }\n case 'false': {\n context.overridesSend({ type: 'DISABLE', name: feature.name });\n break;\n }\n case 'unset': {\n context.overridesSend({ type: 'UNSET', name: feature.name });\n break;\n }\n }\n }\n },\n [feature.name, context],\n );\n\n if (context == null) {\n return null;\n }\n\n const { overridesState, test: testFeature, defaultsState } = context;\n\n const valueInDefaults = (\n valueOfFeature(defaultsState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const valueInOverrides = (\n valueOfFeature(overridesState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const actualChecked = testFeature(feature.name);\n\n return (\n \n \n \n \n Feature: {feature.name}\n \n {feature.noOverride === true ? (\n \n
\n \n \n
No Overrides
\n
\n ) : null}\n {actualChecked === true ? (\n \n
\n \n \n
{actualChecked ? 'Enabled' : 'Disabled'}
\n
\n ) : null}\n \n {feature.description == null ? null : (\n \n {feature.description}\n
\n )}\n \n \n {[\n {\n id: 'false',\n title: `Disable ${feature.name}`,\n description: 'Override the feature to be disabled',\n },\n {\n id: 'unset',\n title: 'Default',\n description: 'Inherit enabled state from defaults',\n disabled: (feature.noOverride ?? false) || feature.force,\n defaultValue:\n valueInDefaults === 'true' ? (\n
\n Enabled \n
\n ) : (\n
\n Disabled \n
\n ),\n },\n {\n id: 'true',\n title: `Enable ${feature.name}`,\n description: 'Override the feature to be enabled',\n },\n ].map((option) => (\n
\n classNames(\n checked ? 'border-transparent' : 'border-gray-300',\n !disabled && active\n ? 'border-blue-500 ring-2 ring-blue-500'\n : '',\n disabled\n ? 'border-transparent ring-gray-500 cursor-not-allowed'\n : 'cursor-pointer',\n 'relative bg-white border rounded-lg shadow-sm p-3 flex focus:outline-none',\n )\n }\n disabled={option.disabled}\n key={option.id}\n value={option.id}\n >\n {({ checked, active, disabled }) => (\n <>\n \n
\n \n {option.title}\n \n {option.defaultValue != null ? option.defaultValue : null}\n \n \n \n \n
\n {option.description}\n \n
\n
\n >\n )}\n \n ))}\n
\n \n );\n}\n\nfunction ShadowContent({\n root,\n children,\n}: {\n children: ReactNode;\n root: Element;\n}) {\n return ReactDOM.createPortal(children, root);\n}\n\n/// Permit users to override feature flags via a GUI.\n/// Renders a small floating button in lower left or right, pressing it brings up\n/// a list of features to toggle and their current override state. you can override on or override off,\n/// or unset the override and go back to default value.\n// eslint-disable-next-line no-undef\nexport function ToggleFeatures({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): JSX.Element | null {\n const [root, setCoreRoot] = useState(null);\n\n const setRoot = (host: HTMLDivElement | null) => {\n if (host == null || root != null) {\n return;\n }\n const shadowRoot = host?.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n const renderDiv = document.createElement('div');\n style.textContent = styles;\n shadowRoot.appendChild(style);\n shadowRoot.appendChild(renderDiv);\n setCoreRoot(renderDiv);\n };\n\n if (hidden) {\n return null;\n }\n\n return (\n \n {root != null ? (\n \n \n \n ) : null}\n
\n );\n}\n\n/// Like ToggleFeatures, but does not inject styles into a shadow DOM root node.\n/// useful if you're using tailwind.\nexport function ToggleFeatureUnwrapped({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): JSX.Element | null {\n const [open, setOpen] = useState(defaultOpen);\n const context = useContext(FeatureContext);\n\n if (context == null) {\n return null;\n }\n\n if (hidden) {\n return null;\n }\n\n // We want: Real value after all nestings, value of the override. we toggle override\n const { featuresDescription } = context;\n\n if (featuresDescription.length === 0) {\n return null;\n }\n\n return (\n \n
\n
setOpen(true)}\n title=\"Toggle features\"\n type=\"button\"\n >\n \n \n \n \n
\n {!open ? null : (\n
\n
\n
\n
\n
\n
\n \n Feature Flag Overrides\n
\n \n
\n Features can be enabled or disabled unless they are forced\n upstream. You can also revert to default.\n
\n
\n
\n Feature Flags \n {featuresDescription.map((feature) => (\n \n ))}\n \n \n
\n setOpen(false)}\n type=\"button\"\n >\n Done\n \n
\n
\n
\n
\n
\n
\n )}\n
\n );\n}\n","*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::-ms-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n/*\n! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -moz-tab-size: 4;\n /* 3 */\n -o-tab-size: 4;\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted currentColor;\n text-decoration: underline dotted currentColor;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n letter-spacing: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n text-align: inherit;\n}\n\n::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple],[size]:where(select:not([size=\"1\"])) {\n background-image: none;\n background-image: initial;\n background-position: 0 0;\n background-position: initial;\n background-repeat: repeat;\n background-repeat: initial;\n background-size: auto auto;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: inherit;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='radio']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:indeterminate {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;\n background: initial;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.-inset-px {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n\n.inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.mt-6 {\n margin-top: 1.5rem;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-5 {\n height: 1.25rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-7 {\n height: 1.75rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.min-h-6 {\n min-height: 1.5rem;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-5 {\n width: 1.25rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.min-w-4 {\n min-width: 1rem;\n}\n\n.min-w-6 {\n min-width: 1.5rem;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.shrink {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n\n.grow {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n.transform {\n -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.flex-row {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.flex-col {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.items-end {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.justify-center {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.gap-1 {\n gap: 0.25rem;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-9 {\n gap: 2.25rem;\n}\n\n.gap-y-6 {\n row-gap: 1.5rem;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n\n.rounded-sm {\n border-radius: 0.125rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgba(59, 130, 246, 1);\n border-color: rgba(59, 130, 246, var(--tw-border-opacity, 1));\n}\n\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgba(209, 213, 219, 1);\n border-color: rgba(209, 213, 219, var(--tw-border-opacity, 1));\n}\n\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgba(107, 114, 128, 1);\n border-color: rgba(107, 114, 128, var(--tw-border-opacity, 1));\n}\n\n.border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgba(34, 197, 94, 1);\n border-color: rgba(34, 197, 94, var(--tw-border-opacity, 1));\n}\n\n.border-orange-500 {\n --tw-border-opacity: 1;\n border-color: rgba(249, 115, 22, 1);\n border-color: rgba(249, 115, 22, var(--tw-border-opacity, 1));\n}\n\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgba(239, 68, 68, 1);\n border-color: rgba(239, 68, 68, var(--tw-border-opacity, 1));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgba(37, 99, 235, 1);\n background-color: rgba(37, 99, 235, var(--tw-bg-opacity, 1));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, 1);\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity, 1));\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.pb-0 {\n padding-bottom: 0px;\n}\n\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.pb-4 {\n padding-bottom: 1rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-4 {\n padding-right: 1rem;\n}\n\n.pt-0 {\n padding-top: 0px;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.pt-5 {\n padding-top: 1.25rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.align-bottom {\n vertical-align: bottom;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.leading-6 {\n line-height: 1.5rem;\n}\n\n.leading-7 {\n line-height: 1.75rem;\n}\n\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgba(59, 130, 246, 1);\n color: rgba(59, 130, 246, var(--tw-text-opacity, 1));\n}\n\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgba(107, 114, 128, 1);\n color: rgba(107, 114, 128, var(--tw-text-opacity, 1));\n}\n\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgba(17, 24, 39, 1);\n color: rgba(17, 24, 39, var(--tw-text-opacity, 1));\n}\n\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgba(34, 197, 94, 1);\n color: rgba(34, 197, 94, var(--tw-text-opacity, 1));\n}\n\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgba(249, 115, 22, 1);\n color: rgba(249, 115, 22, var(--tw-text-opacity, 1));\n}\n\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgba(239, 68, 68, 1);\n color: rgba(239, 68, 68, var(--tw-text-opacity, 1));\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgba(255, 255, 255, 1);\n color: rgba(255, 255, 255, var(--tw-text-opacity, 1));\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.ring-blue-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(59, 130, 246, var(--tw-ring-opacity, 1));\n}\n\n.ring-gray-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(107, 114, 128, var(--tw-ring-opacity, 1));\n}\n\n.invert {\n --tw-invert: invert(100%);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.filter {\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition-all {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transition-duration: 150ms;\n transition-duration: 150ms;\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.focus\\:ring-blue-600:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(37, 99, 235, var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n@media (min-width: 640px) {\n .sm\\:my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n\n .sm\\:mt-3 {\n margin-top: 0.75rem;\n }\n\n .sm\\:mt-6 {\n margin-top: 1.5rem;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .sm\\:gap-x-4 {\n -moz-column-gap: 1rem;\n -webkit-column-gap: 1rem;\n column-gap: 1rem;\n }\n\n .sm\\:p-0 {\n padding: 0px;\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:align-middle {\n vertical-align: middle;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:max-w-\\[80\\%\\] {\n max-width: 80%;\n }\n\n .lg\\:gap-4 {\n gap: 1rem;\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["/home/user/react-enable/dist/index.cjs","../src/utils.ts","../src/EnableContext.tsx","../src/useAllDisabled.tsx","../src/useDisabled.tsx","../src/Disable.tsx","../src/useAllEnabled.tsx","../src/useEnabled.tsx","../src/Enable.tsx","../src/Features.tsx","../src/FeatureContext.tsx","../src/FeatureState.tsx","../src/FeaturesState.tsx","../src/useConsoleOverride.tsx","../src/GlobalEnable.tsx","../src/usePersist.tsx","../src/useTestCallback.tsx","../src/rolloutHash.tsx","../src/testFeature.tsx","../src/ToggleFeatures.tsx","../src/tailwind.css"],"names":["jsx","Fragment","createContext","testFeature","useMemo","useEffect","useContext"],"mappings":"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","file":"/home/user/react-enable/dist/index.cjs","sourcesContent":[null,"import { useContext, useMemo } from 'react';\n\nimport { EnableContext, type EnableContextType } from './EnableContext';\n\n// Helper: get rid of some boilerplate.\n// just input mashing and sanitation, removing extra renders, and getting test function\nexport function useTestAndConvert(\n input?: string[] | string | null,\n): [EnableContextType, string[]] {\n const test = useContext(EnableContext);\n\n // We memoize just to prevent re-renders since this could be at the leaf of a tree\n const converted = useMemo(\n () => (input == null ? [] : Array.isArray(input) ? input : [input]),\n [input],\n );\n\n return [test, converted];\n}\n","import { createContext } from 'react';\n\nimport type { FeatureValue } from './FeatureState';\n\nexport type EnableContextType = (feature: string) => FeatureValue;\n\n/**\n * Contained function can check whether a given feature is enabled.\n */\nexport const EnableContext = createContext((_s) => false);\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are disabled\n */\nexport function useAllDisabled(withoutAll: string[] | string): boolean {\n const [test, queryAllWithout] = useTestAndConvert(withoutAll);\n return (\n withoutAll.length > 0 && queryAllWithout.every((x) => !(test(x) ?? false))\n );\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is disabled\n */\nexport function useDisabled(without: string[] | string): boolean {\n const [test, queryAnyWithout] = useTestAndConvert(without);\n return queryAnyWithout.some((x) => !(test(x) ?? false));\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport type { EnableProps } from './Enable';\nimport { useAllDisabled } from './useAllDisabled';\nimport { useDisabled } from './useDisabled';\n\n/**\n * Feature will be disabled if any in the list are enabled\n */\nexport const Disable: React.FC = ({\n feature = [],\n allFeatures = [],\n children,\n}) => {\n const isAny = useDisabled(feature);\n const isAll = useAllDisabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n};\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are enabled\n */\nexport function useAllEnabled(allFeatures: string[] | string): boolean {\n const [test, queryAllPresent] = useTestAndConvert(allFeatures);\n return queryAllPresent.length > 0 && queryAllPresent.every(test);\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is enabled\n */\nexport function useEnabled(feature: string[] | string): boolean {\n const [test, queryAnyPresent] = useTestAndConvert(feature);\n return queryAnyPresent.some(test);\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport { useAllEnabled } from './useAllEnabled';\nimport { useEnabled } from './useEnabled';\n\nexport interface EnableProps {\n readonly feature?: string[] | string;\n readonly allFeatures?: string[];\n children: React.ReactNode;\n}\n\n/**\n * Feature will be enabled if any feature in the list are enabled,\n */\nexport function Enable({\n feature = [],\n allFeatures = [],\n children,\n}: EnableProps): React.JSX.Element | null {\n const isAny = useEnabled(feature);\n const isAll = useAllEnabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n}\n","import * as React from 'react';\nimport {\n type ReactNode,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\nimport { EnableContext } from './EnableContext';\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { featuresReducer, initialFeaturesState } from './FeaturesState';\nimport useConsoleOverride from './useConsoleOverride';\nimport usePersist, { KEY } from './usePersist';\nimport useTestCallback from './useTestCallback';\n\nconst ROLLOUT_ID_KEY = 'react-enable:rollout-stable-id';\n\ninterface FeatureProps {\n readonly features: readonly FeatureDescription[];\n readonly children?: ReactNode;\n readonly disableConsole?: boolean;\n readonly storage?: Storage;\n\n /// Stable identifier for percentage-based rollouts. If not provided, one will be\n /// auto-generated and persisted to storage. This ensures consistent feature assignment\n /// for the same user/session across page loads.\n readonly rolloutStableId?: string;\n}\n\n/**\n * A more batteries-enabled parent component that keeps track of feature state\n * internally, and creates window.feature.enable(\"f\") and window.feature.disable(\"f\").\n * Keeps track of overrides and defaults, with defaults potentially coming from your props\n * and overrides being persisted to your choice of storage layer.\n */\nexport function Features({\n children,\n features,\n disableConsole = false,\n storage = window.sessionStorage,\n rolloutStableId,\n}: FeatureProps): React.JSX.Element {\n // Capture only first value; we don't care about future updates\n const featuresRef = useRef(features);\n\n // Generate or retrieve stable ID for rollouts\n const stableId = useMemo(() => {\n if (rolloutStableId != null) {\n return rolloutStableId;\n }\n\n // Try to retrieve existing ID from storage\n if (storage != null) {\n try {\n const existingId = storage.getItem(ROLLOUT_ID_KEY);\n if (existingId != null) {\n return existingId;\n }\n } catch (e) {\n // Can't read from storage; generate new ID\n }\n }\n\n // Generate new stable ID\n const newId = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;\n\n // Persist to storage\n if (storage != null) {\n try {\n storage.setItem(ROLLOUT_ID_KEY, newId);\n } catch (e) {\n // Can't persist; ID will still work for this session\n }\n }\n\n return newId;\n }, [rolloutStableId, storage]);\n const [overridesState, overridesDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n const [defaultsState, defaultsDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n\n useLayoutEffect(() => {\n /// Load defaults\n defaultsDispatch({ type: 'INIT', features });\n return () => {\n defaultsDispatch({ type: 'DE_INIT' });\n };\n }, [features]);\n\n useLayoutEffect(() => {\n let f: Record = {};\n if (storage != null) {\n try {\n const featuresJson = storage.getItem(KEY);\n if (featuresJson != null) {\n const fh = JSON.parse(featuresJson);\n f = fh.overrides;\n }\n } catch (e) {\n // Can't parse or get or otherwise; ignore\n console.error('error in localStorage', e);\n }\n }\n\n overridesDispatch({\n type: 'INIT',\n features: (featuresRef.current ?? [])\n .filter((x) => x.noOverride !== true)\n .map((x) => ({\n name: x.name,\n description: x.description,\n defaultValue: f?.[x.name] ?? undefined,\n })),\n });\n\n return () => {\n overridesDispatch({ type: 'DE_INIT' });\n };\n }, [storage]);\n\n // Handle async operations for features with onChangeDefault\n useEffect(() => {\n if (defaultsState.value !== 'ready') {\n return;\n }\n\n // Check for features in async states and handle them\n Object.entries(defaultsState.context.features).forEach(\n ([name, feature]) => {\n if (\n feature.value === 'asyncEnabled' ||\n feature.value === 'asyncDisabled' ||\n feature.value === 'asyncUnspecified'\n ) {\n const targetValue =\n feature.value === 'asyncEnabled'\n ? true\n : feature.value === 'asyncDisabled'\n ? false\n : undefined;\n\n const onChangeDefault = feature.featureDesc?.onChangeDefault;\n if (onChangeDefault != null && feature.featureDesc != null) {\n onChangeDefault(feature.featureDesc.name, targetValue)\n .then((result) => {\n defaultsDispatch({ type: 'ASYNC_DONE', name, value: result });\n })\n .catch(() => {\n defaultsDispatch({\n type: 'ASYNC_DONE',\n name,\n value: undefined,\n });\n });\n }\n }\n },\n );\n }, [defaultsState]);\n\n usePersist(storage, featuresRef.current, overridesState);\n\n const testCallback = useTestCallback(overridesState, defaultsState, stableId);\n useConsoleOverride(\n !disableConsole,\n featuresRef.current,\n testCallback,\n defaultsDispatch,\n );\n\n const featureValue = useMemo(\n () => ({\n overridesSend: overridesDispatch,\n defaultsSend: defaultsDispatch,\n featuresDescription: featuresRef.current,\n overridesState,\n defaultsState,\n test: testCallback,\n }),\n [overridesState, defaultsState, testCallback],\n );\n\n return (\n \n \n {children}\n \n \n );\n}\n","import { createContext } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch, FeaturesState } from './FeaturesState';\n\nexport const FeatureContext = createContext(null);\n\n/// Give access to the overrides layer\nexport interface FeatureContextType {\n // Make changes to the overrides\n overridesSend: FeaturesDispatch;\n\n // Make changes to defaults\n defaultsSend: FeaturesDispatch;\n\n featuresDescription: readonly FeatureDescription[];\n\n // State is in layers; overrides and defaults\n overridesState: FeaturesState;\n defaultsState: FeaturesState;\n\n /// Test with proper fallback and respecting the user's force preference\n test: (flag: string) => FeatureValue;\n}\n","import type { Dispatch } from 'react';\n\n/**\n * Feature is either on, off, or 'unset',\n * which means it will go to the default value or the less specific value.\n */\nexport type FeatureValue = false | true | undefined;\n\nexport type FeatureStateValue =\n | 'initial'\n | 'enabled'\n | 'disabled'\n | 'unspecified'\n | 'asyncEnabled'\n | 'asyncDisabled'\n | 'asyncUnspecified';\n\nexport interface FeatureState {\n value: FeatureStateValue;\n featureDesc?: FeatureDescription;\n}\n\nexport type FeatureDispatch = Dispatch;\n\n/// Given a featurestate, determine the value (on, off, or unset)\nexport function valueForState(\n featureState: FeatureState,\n): [FeatureValue, boolean] {\n return [\n featureState.value === 'enabled' || featureState.value === 'asyncEnabled'\n ? true\n : featureState.value === 'disabled' ||\n featureState.value === 'asyncDisabled'\n ? false\n : undefined,\n featureState.featureDesc?.force ?? false,\n ];\n}\n\n/**\n * Definition of a feature that can be enabled or disabled.\n * K is the type of the key that is used to identify the feature.\n */\nexport interface FeatureDescription {\n readonly name: K;\n readonly description?: string;\n\n /// If set, will be used to update the feature default state instead of simply overriding.\n /// For example, you might use this to update a feature flag on a backend server.\n /// when set, the feature will be updated on the backend server, and the result of the async\n /// will be used for the final state after the change. while changing, the feature will be\n /// in the 'changing' state. Also note that the feature will be changed at the \"default\" layer.\n readonly onChangeDefault?: (\n name: K,\n newValue: FeatureValue,\n ) => Promise;\n\n /// if set true, will force the field to what it is set here through layers of states.\n /// useful to invert the layers, similar to !important in CSS.\n readonly force?: boolean;\n\n /// If set to true, the feature will not be overridable by the user.\n readonly noOverride?: boolean;\n\n /// can be used to specify what should happen if the feature is not set to a particular value.\n readonly defaultValue?: FeatureValue;\n\n /// Percentage-based rollout (0-1). If set, the feature will be enabled for a percentage of users\n /// based on a stable identifier. For example, 0.3 means 30% of users will see this feature enabled.\n /// Requires a rolloutStableId to be provided to the Features component.\n readonly enableFor?: number;\n}\n\n/**\n * Actions that can be performed on a feature.\n */\nexport type FeatureAction =\n | { type: 'DISABLE' }\n | { type: 'ENABLE' }\n | { type: 'INIT'; feature: FeatureDescription }\n | { type: 'SET'; value: FeatureValue }\n | { type: 'TOGGLE' }\n | { type: 'UNSET' }\n | { type: 'ASYNC_DONE'; value: FeatureValue };\n\nexport const initialFeatureState: FeatureState = {\n value: 'initial',\n};\n\n/**\n * Reducer for managing individual feature state\n */\nexport function featureReducer(\n state: FeatureState,\n action: FeatureAction,\n): FeatureState {\n switch (action.type) {\n case 'INIT': {\n const { feature } = action;\n const value =\n feature.defaultValue === true\n ? 'enabled'\n : feature.defaultValue === false\n ? 'disabled'\n : 'unspecified';\n return {\n value: value as FeatureStateValue,\n featureDesc: feature,\n };\n }\n\n case 'ENABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'DISABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'disabled' };\n }\n\n case 'TOGGLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'UNSET': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncUnspecified' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'SET': {\n const { value } = action;\n if (state.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n return { ...state, value: 'asyncEnabled' };\n }\n if (value === false) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'asyncUnspecified' };\n }\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'ASYNC_DONE': {\n const { value } = action;\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n default:\n return state;\n }\n}\n","import type { Dispatch } from 'react';\n\nimport {\n type FeatureDescription,\n type FeatureState,\n type FeatureValue,\n valueForState,\n} from './FeatureState';\n\nexport interface FeaturesContext {\n // features are layered:\n // - defaults: if nothing else matches, provided a value for feature\n // - browser: browser-local values for features (kept in local storage, etc)\n // - user: values from the user's profile, if any\n // - org: value from the org's profile, if any\n features: { [x: string]: FeatureState };\n}\n\nexport type FeaturesAction =\n | { type: 'DE_INIT' }\n | { type: 'DISABLE'; name: string }\n | { type: 'ENABLE'; name: string }\n | { type: 'INIT'; features: readonly FeatureDescription[] }\n | { type: 'SET_ALL'; features: { [key: string]: FeatureValue } }\n | { type: 'SET'; name: string; value: FeatureValue }\n | { type: 'TOGGLE'; name: string }\n | { type: 'UNSET'; name: string }\n | { type: 'ASYNC_DONE'; name: string; value: FeatureValue };\n\nexport interface FeaturesState {\n value: 'idle' | 'ready';\n context: FeaturesContext;\n}\n\nexport type FeaturesDispatch = Dispatch;\n\nexport function valueOfFeature(\n featuresState: FeaturesState,\n feature: string,\n): [FeatureValue, boolean] {\n if (featuresState.context.features[feature] == null) {\n return [undefined, false];\n }\n const featureState = featuresState.context.features[feature];\n if (featureState != null) {\n return valueForState(featureState);\n }\n return [undefined, false];\n}\n\nexport const initialFeaturesState: FeaturesState = {\n value: 'idle',\n context: {\n features: {},\n },\n};\n\n/**\n * Reducer for managing a collection of features\n */\nexport function featuresReducer(\n state: FeaturesState,\n action: FeaturesAction,\n): FeaturesState {\n switch (action.type) {\n case 'INIT': {\n if (!action.features || action.features.length === 0) {\n return state;\n }\n\n const features: { [x: string]: FeatureState } = {};\n for (const feature of action.features) {\n // Initialize each feature\n const featureState = {\n value:\n feature.defaultValue === true\n ? ('enabled' as const)\n : feature.defaultValue === false\n ? ('disabled' as const)\n : ('unspecified' as const),\n featureDesc: feature,\n };\n features[feature.name] = featureState;\n }\n\n return {\n value: 'ready',\n context: { features },\n };\n }\n\n case 'DE_INIT': {\n return initialFeaturesState;\n }\n\n case 'SET_ALL': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const features = { ...state.context.features };\n Object.keys(features).forEach((name) => {\n const value = action.features[name] ?? undefined;\n const currentFeature = features[name];\n\n if (currentFeature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'asyncEnabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'asyncDisabled' };\n } else {\n features[name] = { ...currentFeature, value: 'asyncUnspecified' };\n }\n } else {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'enabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'disabled' };\n } else {\n features[name] = { ...currentFeature, value: 'unspecified' };\n }\n }\n });\n\n return {\n ...state,\n context: { features },\n };\n }\n\n case 'SET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n let newValue: FeatureState['value'];\n\n if (feature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n newValue = 'asyncEnabled';\n } else if (value === false) {\n newValue = 'asyncDisabled';\n } else {\n newValue = 'asyncUnspecified';\n }\n } else {\n if (value === true) {\n newValue = 'enabled';\n } else if (value === false) {\n newValue = 'disabled';\n } else {\n newValue = 'unspecified';\n }\n }\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'TOGGLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ENABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'DISABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncDisabled'\n : 'disabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'UNSET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncUnspecified'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ASYNC_DONE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n const newValue =\n value === true\n ? 'enabled'\n : value === false\n ? 'disabled'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\nimport { GlobalEnable } from './GlobalEnable';\n\nexport default function useConsoleOverride(\n consoleOverride: boolean,\n features: readonly FeatureDescription[],\n testFeature: (_: string) => FeatureValue,\n dispatch: FeaturesDispatch,\n): void {\n useEffect(() => {\n if (!consoleOverride) {\n // Clean up window.feature immediately if consoleOverride is disabled\n if (window.feature != null) {\n window.feature = undefined;\n }\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }\n window.feature = new GlobalEnable(dispatch, testFeature, features);\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }, [features, dispatch, consoleOverride, testFeature]);\n}\n","import type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\n\nexport class GlobalEnable {\n private readonly featureDesc: readonly FeatureDescription[];\n private readonly dispatch: FeaturesDispatch;\n private readonly testFeature: (value: string) => FeatureValue;\n\n constructor(\n dispatch: FeaturesDispatch,\n testFeature: (_: string) => FeatureValue,\n featureDesc: readonly FeatureDescription[],\n ) {\n this.featureDesc = featureDesc;\n this.dispatch = dispatch;\n this.testFeature = testFeature;\n }\n\n public toggle(feature: string): void {\n this.dispatch({ type: 'TOGGLE', name: feature });\n }\n\n public enable(feature: string): void {\n this.dispatch({ type: 'ENABLE', name: feature });\n }\n\n public unset(feature: string): void {\n this.dispatch({ type: 'UNSET', name: feature });\n }\n\n public disable(feature: string): void {\n this.dispatch({ type: 'DISABLE', name: feature });\n }\n\n public setAll(features: { [key: string]: FeatureValue }): void {\n this.dispatch({ type: 'SET_ALL', features });\n }\n\n public listFeatures(): readonly [string, FeatureValue][] {\n return this.featureDesc.map((f) => [f.name, this.testFeature(f.name)]);\n }\n}\ndeclare global {\n interface Window {\n feature?: GlobalEnable;\n }\n}\n","import { useEffect, useMemo } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\n\nexport const KEY = 'react-enable:feature-values';\n\nexport default function usePersist(\n storage: Storage | undefined,\n features: readonly FeatureDescription[],\n overrideState: FeaturesState,\n): void {\n const overrides = useMemo(() => {\n const newOverrides: { [key: string]: FeatureValue } = {};\n if (overrideState.value === 'ready') {\n for (const feature of features) {\n const [value] = valueOfFeature(overrideState, feature.name);\n if (value != null) {\n newOverrides[feature.name] = value;\n }\n }\n }\n return newOverrides;\n }, [features, overrideState]);\n\n const strState =\n Object.keys(overrides).length === 0 || storage == null\n ? '{}'\n : JSON.stringify({ overrides });\n\n useEffect(() => {\n try {\n if (storage != null && overrideState.value === 'ready') {\n storage.setItem(KEY, strState);\n }\n } catch (e) {\n // Can't set for some reason\n }\n }, [overrideState, storage, strState]);\n}\n","import { useCallback } from 'react';\n\nimport type { FeaturesState } from './FeaturesState';\nimport testFeature from './testFeature';\n\n/// A callback that can be called to test if a feature is enabled or disabled\nexport default function useTestCallback(\n overridesState: FeaturesState,\n defaultsState: FeaturesState,\n rolloutStableId?: string,\n): (feature: string) => boolean | undefined {\n return useCallback(\n (f: string) =>\n testFeature(f, [overridesState, defaultsState], rolloutStableId),\n [overridesState, defaultsState, rolloutStableId],\n );\n}\n","/**\n * Simple hash function to convert a string into a number between 0 and 1.\n * This is used for percentage-based rollouts to ensure consistent feature\n * assignment for the same user/session.\n * Uses a variant of the djb2 hash algorithm.\n *\n * @param str - The string to hash (typically featureName + rolloutStableId)\n * @returns A number between 0 and 1\n */\nexport function hashToPercentage(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) + hash + char) | 0; // hash * 33 + char\n }\n // Convert to unsigned 32-bit integer and normalize to 0-1\n const unsigned = hash >>> 0;\n return unsigned / 4294967296; // 2^32\n}\n\n/**\n * Determines if a feature should be enabled based on percentage rollout.\n *\n * @param featureName - Name of the feature\n * @param rolloutStableId - Stable identifier for consistent hashing\n * @param percentage - Target percentage (0-1)\n * @returns true if the feature should be enabled for this user\n */\nexport function isInRollout(\n featureName: string,\n rolloutStableId: string,\n percentage: number,\n): boolean {\n if (percentage <= 0) return false;\n if (percentage >= 1) return true;\n\n const combinedKey = `${featureName}:${rolloutStableId}`;\n const hash = hashToPercentage(combinedKey);\n return hash < percentage;\n}\n","import type { FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\nimport { isInRollout } from './rolloutHash';\n\n/** Determine if the feature is enabled in one of the state machines, in order\n *\n * @param state The current state of the machine\n * @param feature The feature to check\n * @param rolloutStableId Optional stable identifier for percentage-based rollouts\n */\n\nexport default function testFeature(\n feature: string,\n states: FeaturesState[],\n rolloutStableId?: string,\n): FeatureValue {\n const values = states.map((state) => valueOfFeature(state, feature));\n\n // look for best forced option, in order\n for (const [featureValue, featureForced] of values) {\n if (featureValue != null && featureForced) {\n return featureValue;\n }\n }\n\n // look for best non-forced option, in order\n for (const [featureValue] of values) {\n if (featureValue != null) {\n return featureValue;\n }\n }\n\n // Check for percentage-based rollout if no explicit value is set\n if (rolloutStableId != null) {\n // Look through states to find the feature description with enableFor\n for (const state of states) {\n if (state.value === 'ready' && state.context.features[feature] != null) {\n const featureState = state.context.features[feature];\n const enableFor = featureState.featureDesc?.enableFor;\n\n if (enableFor != null) {\n return isInRollout(feature, rolloutStableId, enableFor);\n }\n }\n }\n }\n\n // unset if nothing hit\n return undefined;\n}\n","import {\n Radio,\n RadioGroup,\n RadioGroupDescription,\n RadioGroupLabel,\n} from '@headlessui/react';\nimport * as React from 'react';\nimport { type ReactNode, useCallback, useContext, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { valueOfFeature } from './FeaturesState';\n// @ts-expect-error bundler will take care of this\nimport styles from './tailwind.css';\n\nfunction classNames(...classes: string[]): string {\n return classes.filter(Boolean).join(' ');\n}\n\nfunction ToggleFeature({\n feature,\n}: {\n feature: FeatureDescription;\n}): React.JSX.Element | null {\n const context = useContext(FeatureContext);\n const handleChangeSelection = useCallback(\n (value: 'false' | 'true' | 'unset') => {\n if (context?.overridesSend != null) {\n switch (value) {\n case 'true': {\n context.overridesSend({ type: 'ENABLE', name: feature.name });\n break;\n }\n case 'false': {\n context.overridesSend({ type: 'DISABLE', name: feature.name });\n break;\n }\n case 'unset': {\n context.overridesSend({ type: 'UNSET', name: feature.name });\n break;\n }\n }\n }\n },\n [feature.name, context],\n );\n\n if (context == null) {\n return null;\n }\n\n const { overridesState, test: testFeature, defaultsState } = context;\n\n const valueInDefaults = (\n valueOfFeature(defaultsState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const valueInOverrides = (\n valueOfFeature(overridesState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const actualChecked = testFeature(feature.name);\n\n return (\n \n \n \n \n Feature: {feature.name}\n \n {feature.noOverride === true ? (\n \n
\n \n \n
No Overrides
\n
\n ) : null}\n {actualChecked === true ? (\n \n
\n \n \n
{actualChecked ? 'Enabled' : 'Disabled'}
\n
\n ) : null}\n \n {feature.description == null ? null : (\n \n {feature.description}\n
\n )}\n \n \n {[\n {\n id: 'false',\n title: `Disable ${feature.name}`,\n description: 'Override the feature to be disabled',\n },\n {\n id: 'unset',\n title: 'Default',\n description: 'Inherit enabled state from defaults',\n disabled: (feature.noOverride ?? false) || feature.force,\n defaultValue:\n valueInDefaults === 'true' ? (\n
\n Enabled \n
\n ) : (\n
\n Disabled \n
\n ),\n },\n {\n id: 'true',\n title: `Enable ${feature.name}`,\n description: 'Override the feature to be enabled',\n },\n ].map((option) => (\n
\n classNames(\n checked ? 'border-transparent' : 'border-gray-300',\n disabled\n ? 'border-transparent ring-gray-500 cursor-not-allowed'\n : 'cursor-pointer',\n 'relative bg-white border rounded-lg shadow-sm p-3 flex focus:outline-none',\n )\n }\n disabled={option.disabled}\n key={option.id}\n value={option.id}\n >\n {({ checked, disabled }) => (\n <>\n \n
\n \n {option.title}\n \n {option.defaultValue != null ? option.defaultValue : null}\n \n \n \n \n
\n {option.description}\n \n
\n
\n >\n )}\n \n ))}\n
\n \n );\n}\n\nfunction ShadowContent({\n root,\n children,\n}: {\n children: ReactNode;\n root: Element;\n}) {\n return ReactDOM.createPortal(children, root);\n}\n\n/// Permit users to override feature flags via a GUI.\n/// Renders a small floating button in lower left or right, pressing it brings up\n/// a list of features to toggle and their current override state. you can override on or override off,\n/// or unset the override and go back to default value.\n// eslint-disable-next-line no-undef\nexport function ToggleFeatures({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): React.JSX.Element | null {\n const [root, setCoreRoot] = useState(null);\n\n const setRoot = (host: HTMLDivElement | null) => {\n if (host == null || root != null) {\n return;\n }\n const shadowRoot = host?.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n const renderDiv = document.createElement('div');\n style.textContent = styles;\n shadowRoot.appendChild(style);\n shadowRoot.appendChild(renderDiv);\n setCoreRoot(renderDiv);\n };\n\n if (hidden) {\n return null;\n }\n\n return (\n \n {root != null ? (\n \n \n \n ) : null}\n
\n );\n}\n\n/// Like ToggleFeatures, but does not inject styles into a shadow DOM root node.\n/// useful if you're using tailwind.\nexport function ToggleFeatureUnwrapped({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): React.JSX.Element | null {\n const [open, setOpen] = useState(defaultOpen);\n const context = useContext(FeatureContext);\n\n if (context == null) {\n return null;\n }\n\n if (hidden) {\n return null;\n }\n\n // We want: Real value after all nestings, value of the override. we toggle override\n const { featuresDescription } = context;\n\n if (featuresDescription.length === 0) {\n return null;\n }\n\n return (\n \n
\n
setOpen(true)}\n title=\"Toggle features\"\n type=\"button\"\n >\n \n \n \n \n
\n {!open ? null : (\n
\n
\n
\n
\n
\n
\n \n Feature Flag Overrides\n
\n \n
\n Features can be enabled or disabled unless they are forced\n upstream. You can also revert to default.\n
\n
\n
\n Feature Flags \n {featuresDescription.map((feature) => (\n \n ))}\n \n \n
\n setOpen(false)}\n type=\"button\"\n >\n Done\n \n
\n
\n
\n
\n
\n
\n )}\n
\n );\n}\n","/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */\n:root:not(#\\#), :host:not(#\\#) {\n --font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-500: rgb(251, 44, 54);\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n --color-blue-600: rgb(21, 93, 252);\n --color-gray-300: rgb(209, 213, 220);\n --color-gray-500: rgb(106, 114, 130);\n --color-gray-900: rgb(16, 24, 40);\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --font-weight-medium: 500;\n --font-weight-bold: 700;\n --radius-sm: 0.25rem;\n --radius-lg: 0.5rem;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n}\n@supports (color: color(display-p3 0 0 0%)) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n }\n\n@media (color-gamut: p3) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: color(display-p3 0.94659 0.44979 0.07573);\n --color-green-500: color(display-p3 0.30873 0.77475 0.37431);\n --color-blue-500: color(display-p3 0.26642 0.49122 0.98862);\n }\n}\n}\n:not(#\\#):not(#\\#)::-ms-backdrop {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n*:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::after,\n :not(#\\#):not(#\\#)::before,\n :not(#\\#):not(#\\#)::backdrop,\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\nhtml:not(#\\#):not(#\\#),\n :host:not(#\\#):not(#\\#) {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-family: var(--default-font-family, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-font-feature-settings, normal);\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n}\nhr:not(#\\#):not(#\\#) {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]):not(#\\#):not(#\\#) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nh1:not(#\\#):not(#\\#),\n h2:not(#\\#):not(#\\#),\n h3:not(#\\#):not(#\\#),\n h4:not(#\\#):not(#\\#),\n h5:not(#\\#):not(#\\#),\n h6:not(#\\#):not(#\\#) {\n font-size: inherit;\n font-weight: inherit;\n}\na:not(#\\#):not(#\\#) {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\nb:not(#\\#):not(#\\#),\n strong:not(#\\#):not(#\\#) {\n font-weight: bolder;\n}\ncode:not(#\\#):not(#\\#),\n kbd:not(#\\#):not(#\\#),\n samp:not(#\\#):not(#\\#),\n pre:not(#\\#):not(#\\#) {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n}\nsmall:not(#\\#):not(#\\#) {\n font-size: 80%;\n}\nsub:not(#\\#):not(#\\#),\n sup:not(#\\#):not(#\\#) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub:not(#\\#):not(#\\#) {\n bottom: -0.25em;\n}\nsup:not(#\\#):not(#\\#) {\n top: -0.5em;\n}\ntable:not(#\\#):not(#\\#) {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n:-moz-focusring:not(#\\#):not(#\\#) {\n outline: auto;\n}\nprogress:not(#\\#):not(#\\#) {\n vertical-align: baseline;\n}\nsummary:not(#\\#):not(#\\#) {\n display: list-item;\n}\nol:not(#\\#):not(#\\#),\n ul:not(#\\#):not(#\\#),\n menu:not(#\\#):not(#\\#) {\n list-style: none;\n}\nimg:not(#\\#):not(#\\#),\n svg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#),\n canvas:not(#\\#):not(#\\#),\n audio:not(#\\#):not(#\\#),\n iframe:not(#\\#):not(#\\#),\n embed:not(#\\#):not(#\\#),\n object:not(#\\#):not(#\\#) {\n display: block;\n vertical-align: middle;\n}\nimg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#) {\n max-width: 100%;\n height: auto;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\nbutton:not(#\\#):not(#\\#),\n input:not(#\\#):not(#\\#),\n select:not(#\\#):not(#\\#),\n optgroup:not(#\\#):not(#\\#),\n textarea:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::file-selector-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::-webkit-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-moz-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#):-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::placeholder {\n opacity: 1;\n}\n@supports (not (-webkit-appearance: -apple-pay-button)) or\n (contain-intrinsic-size: 1px) {\n :not(#\\#):not(#\\#)::-webkit-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-moz-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#):-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n :not(#\\#):not(#\\#)::-csstools-invalid-placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n}\ntextarea:not(#\\#):not(#\\#) {\n resize: vertical;\n}\n:not(#\\#):not(#\\#)::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n:not(#\\#):not(#\\#)::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-year-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-month-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-day-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-hour-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-minute-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-second-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-millisecond-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-calendar-picker-indicator {\n line-height: 1;\n}\n:-moz-ui-invalid:not(#\\#):not(#\\#) {\n box-shadow: none;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\nbutton:not(#\\#):not(#\\#),\n input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]):not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\n:not(#\\#):not(#\\#)::-webkit-inner-spin-button,\n :not(#\\#):not(#\\#)::-webkit-outer-spin-button {\n height: auto;\n}\n[hidden]:where(:not([hidden=\"until-found\"])):not(#\\#):not(#\\#):not(#\\#) {\n display: none !important;\n}\n.pointer-events-none:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n pointer-events: none;\n}\n.invisible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: hidden;\n}\n.visible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: visible;\n}\n.sr-only:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n.absolute:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n}\n.fixed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: fixed;\n}\n.relative:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: relative;\n}\n.-inset-px:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n.inset-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: calc(var(--spacing) * 0);\n right: calc(var(--spacing) * 0);\n bottom: calc(var(--spacing) * 0);\n left: calc(var(--spacing) * 0);\n}\n.bottom-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n bottom: calc(var(--spacing) * 0);\n}\n.left-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n left: calc(var(--spacing) * 0);\n}\n.z-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n z-index: 10;\n}\n.container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: 100%;\n}\n@media (min-width: 40rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 40rem;\n }\n}\n@media (min-width: 48rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 48rem;\n }\n}\n@media (min-width: 64rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 64rem;\n }\n}\n@media (min-width: 80rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80rem;\n }\n}\n@media (min-width: 96rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 96rem;\n }\n}\n.mx-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 4);\n margin-right: calc(var(--spacing) * 4);\n}\n.mx-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 8);\n margin-right: calc(var(--spacing) * 8);\n}\n.my-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.mt-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 1);\n}\n.mt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n}\n.mt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 5);\n}\n.mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n}\n.block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n}\n.contents:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: contents;\n}\n.flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.grid:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: grid;\n}\n.hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: none;\n}\n.inline-block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: inline-block;\n}\n.inline-flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n.table:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: table;\n}\n.h-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 4);\n}\n.h-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 5);\n}\n.h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 6);\n}\n.h-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 7);\n}\n.h-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 8);\n}\n.min-h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: calc(var(--spacing) * 6);\n}\n.min-h-screen:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: 100vh;\n}\n.w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 4);\n}\n.w-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 5);\n}\n.w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 6);\n}\n.w-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 8);\n}\n.max-w-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 100%;\n}\n.min-w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 4);\n}\n.min-w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 6);\n}\n.flex-shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.flex-grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.border-collapse:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-collapse: collapse;\n}\n.transform:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transform: ;\n transform: ;\n -webkit-transform: ;\n -webkit-transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n transform: ;\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n}\n.cursor-not-allowed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: not-allowed;\n}\n.cursor-pointer:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: pointer;\n}\n.resize:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n resize: both;\n}\n.grid-cols-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.flex-col:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.flex-row:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.flex-nowrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.flex-wrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.items-end:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.justify-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.gap-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 1);\n}\n.gap-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 2);\n}\n.gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n}\n.gap-9:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 9);\n}\n.gap-y-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n row-gap: calc(var(--spacing) * 6);\n}\n.overflow-hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow: hidden;\n}\n.overflow-y-auto:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow-y: auto;\n}\n.rounded-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: calc(infinity * 1px);\n}\n.rounded-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-lg);\n}\n.rounded-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-sm);\n}\n.border:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n}\n.border-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 2px;\n}\n.border-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-blue-500);\n}\n.border-gray-300:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-300);\n}\n.border-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-500);\n}\n.border-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-green-500);\n}\n.border-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-orange-500);\n}\n.border-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-red-500);\n}\n.border-transparent:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: transparent;\n}\n.bg-blue-600:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-blue-600);\n}\n.bg-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-white);\n}\n.p-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 1);\n}\n.p-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 3);\n}\n.px-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 2);\n padding-right: calc(var(--spacing) * 2);\n}\n.px-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n}\n.py-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 1);\n padding-bottom: calc(var(--spacing) * 1);\n}\n.pt-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 0);\n}\n.pt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 4);\n}\n.pt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 5);\n}\n.pr-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-right: calc(var(--spacing) * 4);\n}\n.pb-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 0);\n}\n.pb-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 4);\n}\n.pb-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 10);\n}\n.pl-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n}\n.text-left:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-align: left;\n}\n.align-bottom:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: bottom;\n}\n.align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n}\n.text-base:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n}\n.text-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n}\n.text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n}\n.text-xs:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n}\n.leading-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 6);\n line-height: calc(var(--spacing) * 6);\n}\n.leading-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 7);\n line-height: calc(var(--spacing) * 7);\n}\n.font-bold:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n}\n.font-medium:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n}\n.text-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-blue-500);\n}\n.text-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-500);\n}\n.text-gray-900:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-900);\n}\n.text-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-green-500);\n}\n.text-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-orange-500);\n}\n.text-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-red-500);\n}\n.text-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-white);\n}\n.underline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-decoration-line: underline;\n}\n.shadow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-xl:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-500);\n}\n.ring-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-gray-500);\n}\n.outline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n}\n.invert:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-invert: invert(100%);\n -webkit-filter: invert(100%) ;\n filter: invert(100%) ;\n -webkit-filter: invert(100%) ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: invert(100%) ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.filter:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-filter: ;\n filter: ;\n -webkit-filter: ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.transition-all:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n -webkit-transition-duration: var(--tw-duration, var(--default-transition-duration));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.focus\\:ring-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.focus\\:ring-blue-600:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-600);\n}\n.focus\\:ring-offset-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n}\n.focus\\:outline-none:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-outline-style: none;\n outline-style: none;\n}\n@media (min-width: 40rem) {\n .sm\\:my-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 8);\n margin-bottom: calc(var(--spacing) * 8);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 3);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:grid-cols-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 40rem) {\n .sm\\:gap-x-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-column-gap: calc(var(--spacing) * 4);\n -moz-column-gap: calc(var(--spacing) * 4);\n column-gap: calc(var(--spacing) * 4);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 0);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n}\n@media (min-width: 64rem) {\n .lg\\:max-w-\\[80\\%\\]:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80%;\n }\n}\n@media (min-width: 64rem) {\n .lg\\:gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n }\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n ::-ms-backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n *, ::before, ::after, ::backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n}\n"]}
\ No newline at end of file
diff --git a/dist/index.d.cts b/dist/index.d.cts
index 26d3bc1..9e0b333 100644
--- a/dist/index.d.cts
+++ b/dist/index.d.cts
@@ -9,7 +9,7 @@ interface EnableProps {
/**
* Feature will be enabled if any feature in the list are enabled,
*/
-declare function Enable({ feature, allFeatures, children, }: EnableProps): JSX.Element | null;
+declare function Enable({ feature, allFeatures, children, }: EnableProps): React.JSX.Element | null;
/**
* Feature will be disabled if any in the list are enabled
@@ -132,12 +132,12 @@ interface FeatureProps {
* Keeps track of overrides and defaults, with defaults potentially coming from your props
* and overrides being persisted to your choice of storage layer.
*/
-declare function Features({ children, features, disableConsole, storage, rolloutStableId, }: FeatureProps): JSX.Element;
+declare function Features({ children, features, disableConsole, storage, rolloutStableId, }: FeatureProps): React.JSX.Element;
declare function ToggleFeatures({ defaultOpen, hidden, }: {
defaultOpen?: boolean;
hidden?: boolean;
-}): JSX.Element | null;
+}): React.JSX.Element | null;
/**
* returns true iff all specified features are disabled
diff --git a/dist/index.d.ts b/dist/index.d.ts
index 26d3bc1..9e0b333 100644
--- a/dist/index.d.ts
+++ b/dist/index.d.ts
@@ -9,7 +9,7 @@ interface EnableProps {
/**
* Feature will be enabled if any feature in the list are enabled,
*/
-declare function Enable({ feature, allFeatures, children, }: EnableProps): JSX.Element | null;
+declare function Enable({ feature, allFeatures, children, }: EnableProps): React.JSX.Element | null;
/**
* Feature will be disabled if any in the list are enabled
@@ -132,12 +132,12 @@ interface FeatureProps {
* Keeps track of overrides and defaults, with defaults potentially coming from your props
* and overrides being persisted to your choice of storage layer.
*/
-declare function Features({ children, features, disableConsole, storage, rolloutStableId, }: FeatureProps): JSX.Element;
+declare function Features({ children, features, disableConsole, storage, rolloutStableId, }: FeatureProps): React.JSX.Element;
declare function ToggleFeatures({ defaultOpen, hidden, }: {
defaultOpen?: boolean;
hidden?: boolean;
-}): JSX.Element | null;
+}): React.JSX.Element | null;
/**
* returns true iff all specified features are disabled
diff --git a/dist/index.js b/dist/index.js
index 7e45276..86e6de6 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -552,12 +552,17 @@ function Features({
}
// src/ToggleFeatures.tsx
-import { RadioGroup } from "@headlessui/react";
+import {
+ Radio,
+ RadioGroup,
+ RadioGroupDescription,
+ RadioGroupLabel
+} from "@headlessui/react";
import { useCallback as useCallback2, useContext as useContext2, useState } from "react";
import ReactDOM from "react-dom";
// src/tailwind.css
-var tailwind_default = "*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::-ms-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n/*\n! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -moz-tab-size: 4;\n /* 3 */\n -o-tab-size: 4;\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted currentColor;\n text-decoration: underline dotted currentColor;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n letter-spacing: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n text-align: inherit;\n}\n\n::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple],[size]:where(select:not([size=\"1\"])) {\n background-image: none;\n background-image: initial;\n background-position: 0 0;\n background-position: initial;\n background-repeat: repeat;\n background-repeat: initial;\n background-size: auto auto;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: inherit;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='radio']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:indeterminate {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;\n background: initial;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.-inset-px {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n\n.inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.mt-6 {\n margin-top: 1.5rem;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-5 {\n height: 1.25rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-7 {\n height: 1.75rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.min-h-6 {\n min-height: 1.5rem;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-5 {\n width: 1.25rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.min-w-4 {\n min-width: 1rem;\n}\n\n.min-w-6 {\n min-width: 1.5rem;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.shrink {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n\n.grow {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n.transform {\n -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.flex-row {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.flex-col {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.items-end {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.justify-center {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.gap-1 {\n gap: 0.25rem;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-9 {\n gap: 2.25rem;\n}\n\n.gap-y-6 {\n row-gap: 1.5rem;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n\n.rounded-sm {\n border-radius: 0.125rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgba(59, 130, 246, 1);\n border-color: rgba(59, 130, 246, var(--tw-border-opacity, 1));\n}\n\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgba(209, 213, 219, 1);\n border-color: rgba(209, 213, 219, var(--tw-border-opacity, 1));\n}\n\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgba(107, 114, 128, 1);\n border-color: rgba(107, 114, 128, var(--tw-border-opacity, 1));\n}\n\n.border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgba(34, 197, 94, 1);\n border-color: rgba(34, 197, 94, var(--tw-border-opacity, 1));\n}\n\n.border-orange-500 {\n --tw-border-opacity: 1;\n border-color: rgba(249, 115, 22, 1);\n border-color: rgba(249, 115, 22, var(--tw-border-opacity, 1));\n}\n\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgba(239, 68, 68, 1);\n border-color: rgba(239, 68, 68, var(--tw-border-opacity, 1));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgba(37, 99, 235, 1);\n background-color: rgba(37, 99, 235, var(--tw-bg-opacity, 1));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, 1);\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity, 1));\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.pb-0 {\n padding-bottom: 0px;\n}\n\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.pb-4 {\n padding-bottom: 1rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-4 {\n padding-right: 1rem;\n}\n\n.pt-0 {\n padding-top: 0px;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.pt-5 {\n padding-top: 1.25rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.align-bottom {\n vertical-align: bottom;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.leading-6 {\n line-height: 1.5rem;\n}\n\n.leading-7 {\n line-height: 1.75rem;\n}\n\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgba(59, 130, 246, 1);\n color: rgba(59, 130, 246, var(--tw-text-opacity, 1));\n}\n\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgba(107, 114, 128, 1);\n color: rgba(107, 114, 128, var(--tw-text-opacity, 1));\n}\n\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgba(17, 24, 39, 1);\n color: rgba(17, 24, 39, var(--tw-text-opacity, 1));\n}\n\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgba(34, 197, 94, 1);\n color: rgba(34, 197, 94, var(--tw-text-opacity, 1));\n}\n\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgba(249, 115, 22, 1);\n color: rgba(249, 115, 22, var(--tw-text-opacity, 1));\n}\n\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgba(239, 68, 68, 1);\n color: rgba(239, 68, 68, var(--tw-text-opacity, 1));\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgba(255, 255, 255, 1);\n color: rgba(255, 255, 255, var(--tw-text-opacity, 1));\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.ring-blue-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(59, 130, 246, var(--tw-ring-opacity, 1));\n}\n\n.ring-gray-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(107, 114, 128, var(--tw-ring-opacity, 1));\n}\n\n.invert {\n --tw-invert: invert(100%);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.filter {\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition-all {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transition-duration: 150ms;\n transition-duration: 150ms;\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.focus\\:ring-blue-600:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(37, 99, 235, var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n@media (min-width: 640px) {\n .sm\\:my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n\n .sm\\:mt-3 {\n margin-top: 0.75rem;\n }\n\n .sm\\:mt-6 {\n margin-top: 1.5rem;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .sm\\:gap-x-4 {\n -moz-column-gap: 1rem;\n -webkit-column-gap: 1rem;\n column-gap: 1rem;\n }\n\n .sm\\:p-0 {\n padding: 0px;\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:align-middle {\n vertical-align: middle;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:max-w-\\[80\\%\\] {\n max-width: 80%;\n }\n\n .lg\\:gap-4 {\n gap: 1rem;\n }\n}\n";
+var tailwind_default = '/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */\n:root:not(#\\#), :host:not(#\\#) {\n --font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji",\n "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n --color-red-500: rgb(251, 44, 54);\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n --color-blue-600: rgb(21, 93, 252);\n --color-gray-300: rgb(209, 213, 220);\n --color-gray-500: rgb(106, 114, 130);\n --color-gray-900: rgb(16, 24, 40);\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --font-weight-medium: 500;\n --font-weight-bold: 700;\n --radius-sm: 0.25rem;\n --radius-lg: 0.5rem;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n}\n@supports (color: color(display-p3 0 0 0%)) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n }\n\n@media (color-gamut: p3) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: color(display-p3 0.94659 0.44979 0.07573);\n --color-green-500: color(display-p3 0.30873 0.77475 0.37431);\n --color-blue-500: color(display-p3 0.26642 0.49122 0.98862);\n }\n}\n}\n:not(#\\#):not(#\\#)::-ms-backdrop {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n*:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::after,\n :not(#\\#):not(#\\#)::before,\n :not(#\\#):not(#\\#)::backdrop,\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\nhtml:not(#\\#):not(#\\#),\n :host:not(#\\#):not(#\\#) {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n font-family: var(--default-font-family, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-font-feature-settings, normal);\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n}\nhr:not(#\\#):not(#\\#) {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]):not(#\\#):not(#\\#) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nh1:not(#\\#):not(#\\#),\n h2:not(#\\#):not(#\\#),\n h3:not(#\\#):not(#\\#),\n h4:not(#\\#):not(#\\#),\n h5:not(#\\#):not(#\\#),\n h6:not(#\\#):not(#\\#) {\n font-size: inherit;\n font-weight: inherit;\n}\na:not(#\\#):not(#\\#) {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\nb:not(#\\#):not(#\\#),\n strong:not(#\\#):not(#\\#) {\n font-weight: bolder;\n}\ncode:not(#\\#):not(#\\#),\n kbd:not(#\\#):not(#\\#),\n samp:not(#\\#):not(#\\#),\n pre:not(#\\#):not(#\\#) {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n}\nsmall:not(#\\#):not(#\\#) {\n font-size: 80%;\n}\nsub:not(#\\#):not(#\\#),\n sup:not(#\\#):not(#\\#) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub:not(#\\#):not(#\\#) {\n bottom: -0.25em;\n}\nsup:not(#\\#):not(#\\#) {\n top: -0.5em;\n}\ntable:not(#\\#):not(#\\#) {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n:-moz-focusring:not(#\\#):not(#\\#) {\n outline: auto;\n}\nprogress:not(#\\#):not(#\\#) {\n vertical-align: baseline;\n}\nsummary:not(#\\#):not(#\\#) {\n display: list-item;\n}\nol:not(#\\#):not(#\\#),\n ul:not(#\\#):not(#\\#),\n menu:not(#\\#):not(#\\#) {\n list-style: none;\n}\nimg:not(#\\#):not(#\\#),\n svg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#),\n canvas:not(#\\#):not(#\\#),\n audio:not(#\\#):not(#\\#),\n iframe:not(#\\#):not(#\\#),\n embed:not(#\\#):not(#\\#),\n object:not(#\\#):not(#\\#) {\n display: block;\n vertical-align: middle;\n}\nimg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#) {\n max-width: 100%;\n height: auto;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\nbutton:not(#\\#):not(#\\#),\n input:not(#\\#):not(#\\#),\n select:not(#\\#):not(#\\#),\n optgroup:not(#\\#):not(#\\#),\n textarea:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::file-selector-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::-webkit-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-moz-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#):-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::placeholder {\n opacity: 1;\n}\n@supports (not (-webkit-appearance: -apple-pay-button)) or\n (contain-intrinsic-size: 1px) {\n :not(#\\#):not(#\\#)::-webkit-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-moz-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#):-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n :not(#\\#):not(#\\#)::-csstools-invalid-placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n}\ntextarea:not(#\\#):not(#\\#) {\n resize: vertical;\n}\n:not(#\\#):not(#\\#)::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n:not(#\\#):not(#\\#)::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-year-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-month-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-day-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-hour-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-minute-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-second-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-millisecond-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-calendar-picker-indicator {\n line-height: 1;\n}\n:-moz-ui-invalid:not(#\\#):not(#\\#) {\n box-shadow: none;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\nbutton:not(#\\#):not(#\\#),\n input:where([type="button"], [type="reset"], [type="submit"]):not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\n:not(#\\#):not(#\\#)::-webkit-inner-spin-button,\n :not(#\\#):not(#\\#)::-webkit-outer-spin-button {\n height: auto;\n}\n[hidden]:where(:not([hidden="until-found"])):not(#\\#):not(#\\#):not(#\\#) {\n display: none !important;\n}\n.pointer-events-none:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n pointer-events: none;\n}\n.invisible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: hidden;\n}\n.visible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: visible;\n}\n.sr-only:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n.absolute:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n}\n.fixed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: fixed;\n}\n.relative:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: relative;\n}\n.-inset-px:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n.inset-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: calc(var(--spacing) * 0);\n right: calc(var(--spacing) * 0);\n bottom: calc(var(--spacing) * 0);\n left: calc(var(--spacing) * 0);\n}\n.bottom-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n bottom: calc(var(--spacing) * 0);\n}\n.left-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n left: calc(var(--spacing) * 0);\n}\n.z-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n z-index: 10;\n}\n.container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: 100%;\n}\n@media (min-width: 40rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 40rem;\n }\n}\n@media (min-width: 48rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 48rem;\n }\n}\n@media (min-width: 64rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 64rem;\n }\n}\n@media (min-width: 80rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80rem;\n }\n}\n@media (min-width: 96rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 96rem;\n }\n}\n.mx-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 4);\n margin-right: calc(var(--spacing) * 4);\n}\n.mx-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 8);\n margin-right: calc(var(--spacing) * 8);\n}\n.my-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.mt-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 1);\n}\n.mt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n}\n.mt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 5);\n}\n.mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n}\n.block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n}\n.contents:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: contents;\n}\n.flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.grid:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: grid;\n}\n.hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: none;\n}\n.inline-block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: inline-block;\n}\n.inline-flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n.table:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: table;\n}\n.h-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 4);\n}\n.h-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 5);\n}\n.h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 6);\n}\n.h-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 7);\n}\n.h-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 8);\n}\n.min-h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: calc(var(--spacing) * 6);\n}\n.min-h-screen:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: 100vh;\n}\n.w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 4);\n}\n.w-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 5);\n}\n.w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 6);\n}\n.w-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 8);\n}\n.max-w-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 100%;\n}\n.min-w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 4);\n}\n.min-w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 6);\n}\n.flex-shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.flex-grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.border-collapse:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-collapse: collapse;\n}\n.transform:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transform: ;\n transform: ;\n -webkit-transform: ;\n -webkit-transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n transform: ;\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n}\n.cursor-not-allowed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: not-allowed;\n}\n.cursor-pointer:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: pointer;\n}\n.resize:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n resize: both;\n}\n.grid-cols-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.flex-col:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.flex-row:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.flex-nowrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.flex-wrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.items-end:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.justify-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.gap-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 1);\n}\n.gap-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 2);\n}\n.gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n}\n.gap-9:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 9);\n}\n.gap-y-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n row-gap: calc(var(--spacing) * 6);\n}\n.overflow-hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow: hidden;\n}\n.overflow-y-auto:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow-y: auto;\n}\n.rounded-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: calc(infinity * 1px);\n}\n.rounded-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-lg);\n}\n.rounded-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-sm);\n}\n.border:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n}\n.border-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 2px;\n}\n.border-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-blue-500);\n}\n.border-gray-300:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-300);\n}\n.border-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-500);\n}\n.border-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-green-500);\n}\n.border-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-orange-500);\n}\n.border-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-red-500);\n}\n.border-transparent:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: transparent;\n}\n.bg-blue-600:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-blue-600);\n}\n.bg-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-white);\n}\n.p-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 1);\n}\n.p-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 3);\n}\n.px-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 2);\n padding-right: calc(var(--spacing) * 2);\n}\n.px-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n}\n.py-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 1);\n padding-bottom: calc(var(--spacing) * 1);\n}\n.pt-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 0);\n}\n.pt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 4);\n}\n.pt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 5);\n}\n.pr-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-right: calc(var(--spacing) * 4);\n}\n.pb-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 0);\n}\n.pb-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 4);\n}\n.pb-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 10);\n}\n.pl-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n}\n.text-left:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-align: left;\n}\n.align-bottom:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: bottom;\n}\n.align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n}\n.text-base:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n}\n.text-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n}\n.text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n}\n.text-xs:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n}\n.leading-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 6);\n line-height: calc(var(--spacing) * 6);\n}\n.leading-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 7);\n line-height: calc(var(--spacing) * 7);\n}\n.font-bold:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n}\n.font-medium:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n}\n.text-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-blue-500);\n}\n.text-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-500);\n}\n.text-gray-900:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-900);\n}\n.text-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-green-500);\n}\n.text-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-orange-500);\n}\n.text-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-red-500);\n}\n.text-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-white);\n}\n.underline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-decoration-line: underline;\n}\n.shadow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-xl:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-500);\n}\n.ring-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-gray-500);\n}\n.outline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n}\n.invert:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-invert: invert(100%);\n -webkit-filter: invert(100%) ;\n filter: invert(100%) ;\n -webkit-filter: invert(100%) ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: invert(100%) ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.filter:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-filter: ;\n filter: ;\n -webkit-filter: ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.transition-all:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n -webkit-transition-duration: var(--tw-duration, var(--default-transition-duration));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.focus\\:ring-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.focus\\:ring-blue-600:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-600);\n}\n.focus\\:ring-offset-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n}\n.focus\\:outline-none:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-outline-style: none;\n outline-style: none;\n}\n@media (min-width: 40rem) {\n .sm\\:my-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 8);\n margin-bottom: calc(var(--spacing) * 8);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 3);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:grid-cols-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 40rem) {\n .sm\\:gap-x-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-column-gap: calc(var(--spacing) * 4);\n -moz-column-gap: calc(var(--spacing) * 4);\n column-gap: calc(var(--spacing) * 4);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 0);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n}\n@media (min-width: 64rem) {\n .lg\\:max-w-\\[80\\%\\]:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80%;\n }\n}\n@media (min-width: 64rem) {\n .lg\\:gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n }\n}\n@property --tw-rotate-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: "*";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: "*";\n inherits: false;\n}\n@property --tw-border-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: "*";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: "";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: "";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-ring-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-ring-inset {\n syntax: "*";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: "";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: "*";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: "*";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-outline-style {\n syntax: "*";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: "*";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: "*";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: "*";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: "*";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-invert {\n syntax: "*";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: "*";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: "*";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: "*";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: "";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: "*";\n inherits: false;\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n ::-ms-backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n *, ::before, ::after, ::backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n}\n';
// src/ToggleFeatures.tsx
import { Fragment as Fragment3, jsx as jsx4, jsxs } from "react/jsx-runtime";
@@ -603,7 +608,7 @@ function ToggleFeature({
onChange: handleChangeSelection,
value: valueInOverrides,
children: [
- /* @__PURE__ */ jsxs(RadioGroup.Label, { children: [
+ /* @__PURE__ */ jsxs(RadioGroupLabel, { children: [
/* @__PURE__ */ jsxs("h6", { className: "text-gray-900 align-center flex flex-row flex-nowrap items-center gap-2 lg:gap-4 h-7", children: [
/* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
"Feature: ",
@@ -673,20 +678,19 @@ function ToggleFeature({
description: "Override the feature to be enabled"
}
].map((option) => /* @__PURE__ */ jsx4(
- RadioGroup.Option,
+ Radio,
{
- className: ({ checked, active, disabled }) => classNames(
+ className: ({ checked, disabled }) => classNames(
checked ? "border-transparent" : "border-gray-300",
- !disabled && active ? "border-blue-500 ring-2 ring-blue-500" : "",
disabled ? "border-transparent ring-gray-500 cursor-not-allowed" : "cursor-pointer",
"relative bg-white border rounded-lg shadow-sm p-3 flex focus:outline-none"
),
disabled: option.disabled,
value: option.id,
- children: ({ checked, active, disabled }) => /* @__PURE__ */ jsxs(Fragment3, { children: [
+ children: ({ checked, disabled }) => /* @__PURE__ */ jsxs(Fragment3, { children: [
/* @__PURE__ */ jsxs("div", { className: "flex flex-col grow", children: [
/* @__PURE__ */ jsxs(
- RadioGroup.Label,
+ RadioGroupLabel,
{
as: "span",
className: "flex flex-nowrap flex-row gap-1 items-center space-between",
@@ -718,7 +722,7 @@ function ToggleFeature({
}
),
/* @__PURE__ */ jsx4(
- RadioGroup.Description,
+ RadioGroupDescription,
{
as: "span",
className: "mt-1 flex items-center text-sm text-gray-500",
@@ -731,7 +735,7 @@ function ToggleFeature({
{
"aria-hidden": "true",
className: classNames(
- !disabled && active ? "border" : "border-2",
+ "border-2",
checked ? disabled ? "border-gray-500" : "border-blue-500" : "border-transparent",
"absolute -inset-px rounded-lg pointer-events-none"
)
diff --git a/dist/index.js.map b/dist/index.js.map
index ee625dd..9143a07 100644
--- a/dist/index.js.map
+++ b/dist/index.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/utils.ts","../src/EnableContext.tsx","../src/useAllDisabled.tsx","../src/useDisabled.tsx","../src/Disable.tsx","../src/useAllEnabled.tsx","../src/useEnabled.tsx","../src/Enable.tsx","../src/Features.tsx","../src/FeatureContext.tsx","../src/FeatureState.tsx","../src/FeaturesState.tsx","../src/useConsoleOverride.tsx","../src/GlobalEnable.tsx","../src/usePersist.tsx","../src/useTestCallback.tsx","../src/rolloutHash.tsx","../src/testFeature.tsx","../src/ToggleFeatures.tsx","../src/tailwind.css"],"sourcesContent":["import { useContext, useMemo } from 'react';\n\nimport { EnableContext, type EnableContextType } from './EnableContext';\n\n// Helper: get rid of some boilerplate.\n// just input mashing and sanitation, removing extra renders, and getting test function\nexport function useTestAndConvert(\n input?: string[] | string | null,\n): [EnableContextType, string[]] {\n const test = useContext(EnableContext);\n\n // We memoize just to prevent re-renders since this could be at the leaf of a tree\n const converted = useMemo(\n () => (input == null ? [] : Array.isArray(input) ? input : [input]),\n [input],\n );\n\n return [test, converted];\n}\n","import { createContext } from 'react';\n\nimport type { FeatureValue } from './FeatureState';\n\nexport type EnableContextType = (feature: string) => FeatureValue;\n\n/**\n * Contained function can check whether a given feature is enabled.\n */\nexport const EnableContext = createContext((_s) => false);\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are disabled\n */\nexport function useAllDisabled(withoutAll: string[] | string): boolean {\n const [test, queryAllWithout] = useTestAndConvert(withoutAll);\n return (\n withoutAll.length > 0 && queryAllWithout.every((x) => !(test(x) ?? false))\n );\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is disabled\n */\nexport function useDisabled(without: string[] | string): boolean {\n const [test, queryAnyWithout] = useTestAndConvert(without);\n return queryAnyWithout.some((x) => !(test(x) ?? false));\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport type { EnableProps } from './Enable';\nimport { useAllDisabled } from './useAllDisabled';\nimport { useDisabled } from './useDisabled';\n\n/**\n * Feature will be disabled if any in the list are enabled\n */\nexport const Disable: React.FC = ({\n feature = [],\n allFeatures = [],\n children,\n}) => {\n const isAny = useDisabled(feature);\n const isAll = useAllDisabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n};\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are enabled\n */\nexport function useAllEnabled(allFeatures: string[] | string): boolean {\n const [test, queryAllPresent] = useTestAndConvert(allFeatures);\n return queryAllPresent.length > 0 && queryAllPresent.every(test);\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is enabled\n */\nexport function useEnabled(feature: string[] | string): boolean {\n const [test, queryAnyPresent] = useTestAndConvert(feature);\n return queryAnyPresent.some(test);\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport { useAllEnabled } from './useAllEnabled';\nimport { useEnabled } from './useEnabled';\n\nexport interface EnableProps {\n readonly feature?: string[] | string;\n readonly allFeatures?: string[];\n children: React.ReactNode;\n}\n\n/**\n * Feature will be enabled if any feature in the list are enabled,\n */\nexport function Enable({\n feature = [],\n allFeatures = [],\n children,\n}: EnableProps): JSX.Element | null {\n const isAny = useEnabled(feature);\n const isAll = useAllEnabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n}\n","import {\n type ReactNode,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\nimport { EnableContext } from './EnableContext';\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { featuresReducer, initialFeaturesState } from './FeaturesState';\nimport useConsoleOverride from './useConsoleOverride';\nimport usePersist, { KEY } from './usePersist';\nimport useTestCallback from './useTestCallback';\n\nconst ROLLOUT_ID_KEY = 'react-enable:rollout-stable-id';\n\ninterface FeatureProps {\n readonly features: readonly FeatureDescription[];\n readonly children?: ReactNode;\n readonly disableConsole?: boolean;\n readonly storage?: Storage;\n\n /// Stable identifier for percentage-based rollouts. If not provided, one will be\n /// auto-generated and persisted to storage. This ensures consistent feature assignment\n /// for the same user/session across page loads.\n readonly rolloutStableId?: string;\n}\n\n/**\n * A more batteries-enabled parent component that keeps track of feature state\n * internally, and creates window.feature.enable(\"f\") and window.feature.disable(\"f\").\n * Keeps track of overrides and defaults, with defaults potentially coming from your props\n * and overrides being persisted to your choice of storage layer.\n */\nexport function Features({\n children,\n features,\n disableConsole = false,\n storage = window.sessionStorage,\n rolloutStableId,\n}: FeatureProps): JSX.Element {\n // Capture only first value; we don't care about future updates\n const featuresRef = useRef(features);\n\n // Generate or retrieve stable ID for rollouts\n const stableId = useMemo(() => {\n if (rolloutStableId != null) {\n return rolloutStableId;\n }\n\n // Try to retrieve existing ID from storage\n if (storage != null) {\n try {\n const existingId = storage.getItem(ROLLOUT_ID_KEY);\n if (existingId != null) {\n return existingId;\n }\n } catch (e) {\n // Can't read from storage; generate new ID\n }\n }\n\n // Generate new stable ID\n const newId = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;\n\n // Persist to storage\n if (storage != null) {\n try {\n storage.setItem(ROLLOUT_ID_KEY, newId);\n } catch (e) {\n // Can't persist; ID will still work for this session\n }\n }\n\n return newId;\n }, [rolloutStableId, storage]);\n const [overridesState, overridesDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n const [defaultsState, defaultsDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n\n useLayoutEffect(() => {\n /// Load defaults\n defaultsDispatch({ type: 'INIT', features });\n return () => {\n defaultsDispatch({ type: 'DE_INIT' });\n };\n }, [features]);\n\n useLayoutEffect(() => {\n let f: Record = {};\n if (storage != null) {\n try {\n const featuresJson = storage.getItem(KEY);\n if (featuresJson != null) {\n const fh = JSON.parse(featuresJson);\n f = fh.overrides;\n }\n } catch (e) {\n // Can't parse or get or otherwise; ignore\n console.error('error in localStorage', e);\n }\n }\n\n overridesDispatch({\n type: 'INIT',\n features: (featuresRef.current ?? [])\n .filter((x) => x.noOverride !== true)\n .map((x) => ({\n name: x.name,\n description: x.description,\n defaultValue: f?.[x.name] ?? undefined,\n })),\n });\n\n return () => {\n overridesDispatch({ type: 'DE_INIT' });\n };\n }, [storage]);\n\n // Handle async operations for features with onChangeDefault\n useEffect(() => {\n if (defaultsState.value !== 'ready') {\n return;\n }\n\n // Check for features in async states and handle them\n Object.entries(defaultsState.context.features).forEach(\n ([name, feature]) => {\n if (\n feature.value === 'asyncEnabled' ||\n feature.value === 'asyncDisabled' ||\n feature.value === 'asyncUnspecified'\n ) {\n const targetValue =\n feature.value === 'asyncEnabled'\n ? true\n : feature.value === 'asyncDisabled'\n ? false\n : undefined;\n\n const onChangeDefault = feature.featureDesc?.onChangeDefault;\n if (onChangeDefault != null && feature.featureDesc != null) {\n onChangeDefault(feature.featureDesc.name, targetValue)\n .then((result) => {\n defaultsDispatch({ type: 'ASYNC_DONE', name, value: result });\n })\n .catch(() => {\n defaultsDispatch({\n type: 'ASYNC_DONE',\n name,\n value: undefined,\n });\n });\n }\n }\n },\n );\n }, [defaultsState]);\n\n usePersist(storage, featuresRef.current, overridesState);\n\n const testCallback = useTestCallback(overridesState, defaultsState, stableId);\n useConsoleOverride(\n !disableConsole,\n featuresRef.current,\n testCallback,\n defaultsDispatch,\n );\n\n const featureValue = useMemo(\n () => ({\n overridesSend: overridesDispatch,\n defaultsSend: defaultsDispatch,\n featuresDescription: featuresRef.current,\n overridesState,\n defaultsState,\n test: testCallback,\n }),\n [overridesState, defaultsState, testCallback],\n );\n\n return (\n \n \n {children}\n \n \n );\n}\n","import { createContext } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch, FeaturesState } from './FeaturesState';\n\nexport const FeatureContext = createContext(null);\n\n/// Give access to the overrides layer\nexport interface FeatureContextType {\n // Make changes to the overrides\n overridesSend: FeaturesDispatch;\n\n // Make changes to defaults\n defaultsSend: FeaturesDispatch;\n\n featuresDescription: readonly FeatureDescription[];\n\n // State is in layers; overrides and defaults\n overridesState: FeaturesState;\n defaultsState: FeaturesState;\n\n /// Test with proper fallback and respecting the user's force preference\n test: (flag: string) => FeatureValue;\n}\n","import type { Dispatch } from 'react';\n\n/**\n * Feature is either on, off, or 'unset',\n * which means it will go to the default value or the less specific value.\n */\nexport type FeatureValue = false | true | undefined;\n\nexport type FeatureStateValue =\n | 'initial'\n | 'enabled'\n | 'disabled'\n | 'unspecified'\n | 'asyncEnabled'\n | 'asyncDisabled'\n | 'asyncUnspecified';\n\nexport interface FeatureState {\n value: FeatureStateValue;\n featureDesc?: FeatureDescription;\n}\n\nexport type FeatureDispatch = Dispatch;\n\n/// Given a featurestate, determine the value (on, off, or unset)\nexport function valueForState(\n featureState: FeatureState,\n): [FeatureValue, boolean] {\n return [\n featureState.value === 'enabled' || featureState.value === 'asyncEnabled'\n ? true\n : featureState.value === 'disabled' ||\n featureState.value === 'asyncDisabled'\n ? false\n : undefined,\n featureState.featureDesc?.force ?? false,\n ];\n}\n\n/**\n * Definition of a feature that can be enabled or disabled.\n * K is the type of the key that is used to identify the feature.\n */\nexport interface FeatureDescription {\n readonly name: K;\n readonly description?: string;\n\n /// If set, will be used to update the feature default state instead of simply overriding.\n /// For example, you might use this to update a feature flag on a backend server.\n /// when set, the feature will be updated on the backend server, and the result of the async\n /// will be used for the final state after the change. while changing, the feature will be\n /// in the 'changing' state. Also note that the feature will be changed at the \"default\" layer.\n readonly onChangeDefault?: (\n name: K,\n newValue: FeatureValue,\n ) => Promise;\n\n /// if set true, will force the field to what it is set here through layers of states.\n /// useful to invert the layers, similar to !important in CSS.\n readonly force?: boolean;\n\n /// If set to true, the feature will not be overridable by the user.\n readonly noOverride?: boolean;\n\n /// can be used to specify what should happen if the feature is not set to a particular value.\n readonly defaultValue?: FeatureValue;\n\n /// Percentage-based rollout (0-1). If set, the feature will be enabled for a percentage of users\n /// based on a stable identifier. For example, 0.3 means 30% of users will see this feature enabled.\n /// Requires a rolloutStableId to be provided to the Features component.\n readonly enableFor?: number;\n}\n\n/**\n * Actions that can be performed on a feature.\n */\nexport type FeatureAction =\n | { type: 'DISABLE' }\n | { type: 'ENABLE' }\n | { type: 'INIT'; feature: FeatureDescription }\n | { type: 'SET'; value: FeatureValue }\n | { type: 'TOGGLE' }\n | { type: 'UNSET' }\n | { type: 'ASYNC_DONE'; value: FeatureValue };\n\nexport const initialFeatureState: FeatureState = {\n value: 'initial',\n};\n\n/**\n * Reducer for managing individual feature state\n */\nexport function featureReducer(\n state: FeatureState,\n action: FeatureAction,\n): FeatureState {\n switch (action.type) {\n case 'INIT': {\n const { feature } = action;\n const value =\n feature.defaultValue === true\n ? 'enabled'\n : feature.defaultValue === false\n ? 'disabled'\n : 'unspecified';\n return {\n value: value as FeatureStateValue,\n featureDesc: feature,\n };\n }\n\n case 'ENABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'DISABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'disabled' };\n }\n\n case 'TOGGLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'UNSET': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncUnspecified' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'SET': {\n const { value } = action;\n if (state.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n return { ...state, value: 'asyncEnabled' };\n }\n if (value === false) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'asyncUnspecified' };\n }\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'ASYNC_DONE': {\n const { value } = action;\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n default:\n return state;\n }\n}\n","import type { Dispatch } from 'react';\n\nimport {\n type FeatureDescription,\n type FeatureState,\n type FeatureValue,\n valueForState,\n} from './FeatureState';\n\nexport interface FeaturesContext {\n // features are layered:\n // - defaults: if nothing else matches, provided a value for feature\n // - browser: browser-local values for features (kept in local storage, etc)\n // - user: values from the user's profile, if any\n // - org: value from the org's profile, if any\n features: { [x: string]: FeatureState };\n}\n\nexport type FeaturesAction =\n | { type: 'DE_INIT' }\n | { type: 'DISABLE'; name: string }\n | { type: 'ENABLE'; name: string }\n | { type: 'INIT'; features: readonly FeatureDescription[] }\n | { type: 'SET_ALL'; features: { [key: string]: FeatureValue } }\n | { type: 'SET'; name: string; value: FeatureValue }\n | { type: 'TOGGLE'; name: string }\n | { type: 'UNSET'; name: string }\n | { type: 'ASYNC_DONE'; name: string; value: FeatureValue };\n\nexport interface FeaturesState {\n value: 'idle' | 'ready';\n context: FeaturesContext;\n}\n\nexport type FeaturesDispatch = Dispatch;\n\nexport function valueOfFeature(\n featuresState: FeaturesState,\n feature: string,\n): [FeatureValue, boolean] {\n if (featuresState.context.features[feature] == null) {\n return [undefined, false];\n }\n const featureState = featuresState.context.features[feature];\n if (featureState != null) {\n return valueForState(featureState);\n }\n return [undefined, false];\n}\n\nexport const initialFeaturesState: FeaturesState = {\n value: 'idle',\n context: {\n features: {},\n },\n};\n\n/**\n * Reducer for managing a collection of features\n */\nexport function featuresReducer(\n state: FeaturesState,\n action: FeaturesAction,\n): FeaturesState {\n switch (action.type) {\n case 'INIT': {\n if (!action.features || action.features.length === 0) {\n return state;\n }\n\n const features: { [x: string]: FeatureState } = {};\n for (const feature of action.features) {\n // Initialize each feature\n const featureState = {\n value:\n feature.defaultValue === true\n ? ('enabled' as const)\n : feature.defaultValue === false\n ? ('disabled' as const)\n : ('unspecified' as const),\n featureDesc: feature,\n };\n features[feature.name] = featureState;\n }\n\n return {\n value: 'ready',\n context: { features },\n };\n }\n\n case 'DE_INIT': {\n return initialFeaturesState;\n }\n\n case 'SET_ALL': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const features = { ...state.context.features };\n Object.keys(features).forEach((name) => {\n const value = action.features[name] ?? undefined;\n const currentFeature = features[name];\n\n if (currentFeature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'asyncEnabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'asyncDisabled' };\n } else {\n features[name] = { ...currentFeature, value: 'asyncUnspecified' };\n }\n } else {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'enabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'disabled' };\n } else {\n features[name] = { ...currentFeature, value: 'unspecified' };\n }\n }\n });\n\n return {\n ...state,\n context: { features },\n };\n }\n\n case 'SET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n let newValue: FeatureState['value'];\n\n if (feature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n newValue = 'asyncEnabled';\n } else if (value === false) {\n newValue = 'asyncDisabled';\n } else {\n newValue = 'asyncUnspecified';\n }\n } else {\n if (value === true) {\n newValue = 'enabled';\n } else if (value === false) {\n newValue = 'disabled';\n } else {\n newValue = 'unspecified';\n }\n }\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'TOGGLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ENABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'DISABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncDisabled'\n : 'disabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'UNSET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncUnspecified'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ASYNC_DONE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n const newValue =\n value === true\n ? 'enabled'\n : value === false\n ? 'disabled'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\nimport { GlobalEnable } from './GlobalEnable';\n\nexport default function useConsoleOverride(\n consoleOverride: boolean,\n features: readonly FeatureDescription[],\n testFeature: (_: string) => FeatureValue,\n dispatch: FeaturesDispatch,\n): void {\n useEffect(() => {\n if (!consoleOverride) {\n // Clean up window.feature immediately if consoleOverride is disabled\n if (window.feature != null) {\n window.feature = undefined;\n }\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }\n window.feature = new GlobalEnable(dispatch, testFeature, features);\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }, [features, dispatch, consoleOverride, testFeature]);\n}\n","import type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\n\nexport class GlobalEnable {\n private readonly featureDesc: readonly FeatureDescription[];\n private readonly dispatch: FeaturesDispatch;\n private readonly testFeature: (value: string) => FeatureValue;\n\n constructor(\n dispatch: FeaturesDispatch,\n testFeature: (_: string) => FeatureValue,\n featureDesc: readonly FeatureDescription[],\n ) {\n this.featureDesc = featureDesc;\n this.dispatch = dispatch;\n this.testFeature = testFeature;\n }\n\n public toggle(feature: string): void {\n this.dispatch({ type: 'TOGGLE', name: feature });\n }\n\n public enable(feature: string): void {\n this.dispatch({ type: 'ENABLE', name: feature });\n }\n\n public unset(feature: string): void {\n this.dispatch({ type: 'UNSET', name: feature });\n }\n\n public disable(feature: string): void {\n this.dispatch({ type: 'DISABLE', name: feature });\n }\n\n public setAll(features: { [key: string]: FeatureValue }): void {\n this.dispatch({ type: 'SET_ALL', features });\n }\n\n public listFeatures(): readonly [string, FeatureValue][] {\n return this.featureDesc.map((f) => [f.name, this.testFeature(f.name)]);\n }\n}\ndeclare global {\n interface Window {\n feature?: GlobalEnable;\n }\n}\n","import { useEffect, useMemo } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\n\nexport const KEY = 'react-enable:feature-values';\n\nexport default function usePersist(\n storage: Storage | undefined,\n features: readonly FeatureDescription[],\n overrideState: FeaturesState,\n): void {\n const overrides = useMemo(() => {\n const newOverrides: { [key: string]: FeatureValue } = {};\n if (overrideState.value === 'ready') {\n for (const feature of features) {\n const [value] = valueOfFeature(overrideState, feature.name);\n if (value != null) {\n newOverrides[feature.name] = value;\n }\n }\n }\n return newOverrides;\n }, [features, overrideState]);\n\n const strState =\n Object.keys(overrides).length === 0 || storage == null\n ? '{}'\n : JSON.stringify({ overrides });\n\n useEffect(() => {\n try {\n if (storage != null && overrideState.value === 'ready') {\n storage.setItem(KEY, strState);\n }\n } catch (e) {\n // Can't set for some reason\n }\n }, [overrideState, storage, strState]);\n}\n","import { useCallback } from 'react';\n\nimport type { FeaturesState } from './FeaturesState';\nimport testFeature from './testFeature';\n\n/// A callback that can be called to test if a feature is enabled or disabled\nexport default function useTestCallback(\n overridesState: FeaturesState,\n defaultsState: FeaturesState,\n rolloutStableId?: string,\n): (feature: string) => boolean | undefined {\n return useCallback(\n (f: string) => testFeature(f, [overridesState, defaultsState], rolloutStableId),\n [overridesState, defaultsState, rolloutStableId],\n );\n}\n","/**\n * Simple hash function to convert a string into a number between 0 and 1.\n * This is used for percentage-based rollouts to ensure consistent feature\n * assignment for the same user/session.\n * Uses a variant of the djb2 hash algorithm.\n *\n * @param str - The string to hash (typically featureName + rolloutStableId)\n * @returns A number between 0 and 1\n */\nexport function hashToPercentage(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) + hash + char) | 0; // hash * 33 + char\n }\n // Convert to unsigned 32-bit integer and normalize to 0-1\n const unsigned = hash >>> 0;\n return unsigned / 4294967296; // 2^32\n}\n\n/**\n * Determines if a feature should be enabled based on percentage rollout.\n *\n * @param featureName - Name of the feature\n * @param rolloutStableId - Stable identifier for consistent hashing\n * @param percentage - Target percentage (0-1)\n * @returns true if the feature should be enabled for this user\n */\nexport function isInRollout(\n featureName: string,\n rolloutStableId: string,\n percentage: number,\n): boolean {\n if (percentage <= 0) return false;\n if (percentage >= 1) return true;\n\n const combinedKey = `${featureName}:${rolloutStableId}`;\n const hash = hashToPercentage(combinedKey);\n return hash < percentage;\n}\n","import type { FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\nimport { isInRollout } from './rolloutHash';\n\n/** Determine if the feature is enabled in one of the state machines, in order\n *\n * @param state The current state of the machine\n * @param feature The feature to check\n * @param rolloutStableId Optional stable identifier for percentage-based rollouts\n */\n\nexport default function testFeature(\n feature: string,\n states: FeaturesState[],\n rolloutStableId?: string,\n): FeatureValue {\n const values = states.map((state) => valueOfFeature(state, feature));\n\n // look for best forced option, in order\n for (const [featureValue, featureForced] of values) {\n if (featureValue != null && featureForced) {\n return featureValue;\n }\n }\n\n // look for best non-forced option, in order\n for (const [featureValue] of values) {\n if (featureValue != null) {\n return featureValue;\n }\n }\n\n // Check for percentage-based rollout if no explicit value is set\n if (rolloutStableId != null) {\n // Look through states to find the feature description with enableFor\n for (const state of states) {\n if (state.value === 'ready' && state.context.features[feature] != null) {\n const featureState = state.context.features[feature];\n const enableFor = featureState.featureDesc?.enableFor;\n\n if (enableFor != null) {\n return isInRollout(feature, rolloutStableId, enableFor);\n }\n }\n }\n }\n\n // unset if nothing hit\n return undefined;\n}\n","import { RadioGroup } from '@headlessui/react';\nimport { type ReactNode, useCallback, useContext, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { valueOfFeature } from './FeaturesState';\n// @ts-expect-error bundler will take care of this\nimport styles from './tailwind.css';\n\nfunction classNames(...classes: string[]): string {\n return classes.filter(Boolean).join(' ');\n}\n\nfunction ToggleFeature({\n feature,\n}: {\n feature: FeatureDescription;\n}): JSX.Element | null {\n const context = useContext(FeatureContext);\n const handleChangeSelection = useCallback(\n (value: 'false' | 'true' | 'unset') => {\n if (context?.overridesSend != null) {\n switch (value) {\n case 'true': {\n context.overridesSend({ type: 'ENABLE', name: feature.name });\n break;\n }\n case 'false': {\n context.overridesSend({ type: 'DISABLE', name: feature.name });\n break;\n }\n case 'unset': {\n context.overridesSend({ type: 'UNSET', name: feature.name });\n break;\n }\n }\n }\n },\n [feature.name, context],\n );\n\n if (context == null) {\n return null;\n }\n\n const { overridesState, test: testFeature, defaultsState } = context;\n\n const valueInDefaults = (\n valueOfFeature(defaultsState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const valueInOverrides = (\n valueOfFeature(overridesState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const actualChecked = testFeature(feature.name);\n\n return (\n \n \n \n \n Feature: {feature.name}\n \n {feature.noOverride === true ? (\n \n
\n \n \n
No Overrides
\n
\n ) : null}\n {actualChecked === true ? (\n \n
\n \n \n
{actualChecked ? 'Enabled' : 'Disabled'}
\n
\n ) : null}\n \n {feature.description == null ? null : (\n \n {feature.description}\n
\n )}\n \n \n {[\n {\n id: 'false',\n title: `Disable ${feature.name}`,\n description: 'Override the feature to be disabled',\n },\n {\n id: 'unset',\n title: 'Default',\n description: 'Inherit enabled state from defaults',\n disabled: (feature.noOverride ?? false) || feature.force,\n defaultValue:\n valueInDefaults === 'true' ? (\n
\n Enabled \n
\n ) : (\n
\n Disabled \n
\n ),\n },\n {\n id: 'true',\n title: `Enable ${feature.name}`,\n description: 'Override the feature to be enabled',\n },\n ].map((option) => (\n
\n classNames(\n checked ? 'border-transparent' : 'border-gray-300',\n !disabled && active\n ? 'border-blue-500 ring-2 ring-blue-500'\n : '',\n disabled\n ? 'border-transparent ring-gray-500 cursor-not-allowed'\n : 'cursor-pointer',\n 'relative bg-white border rounded-lg shadow-sm p-3 flex focus:outline-none',\n )\n }\n disabled={option.disabled}\n key={option.id}\n value={option.id}\n >\n {({ checked, active, disabled }) => (\n <>\n \n
\n \n {option.title}\n \n {option.defaultValue != null ? option.defaultValue : null}\n \n \n \n \n
\n {option.description}\n \n
\n
\n >\n )}\n \n ))}\n
\n \n );\n}\n\nfunction ShadowContent({\n root,\n children,\n}: {\n children: ReactNode;\n root: Element;\n}) {\n return ReactDOM.createPortal(children, root);\n}\n\n/// Permit users to override feature flags via a GUI.\n/// Renders a small floating button in lower left or right, pressing it brings up\n/// a list of features to toggle and their current override state. you can override on or override off,\n/// or unset the override and go back to default value.\n// eslint-disable-next-line no-undef\nexport function ToggleFeatures({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): JSX.Element | null {\n const [root, setCoreRoot] = useState(null);\n\n const setRoot = (host: HTMLDivElement | null) => {\n if (host == null || root != null) {\n return;\n }\n const shadowRoot = host?.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n const renderDiv = document.createElement('div');\n style.textContent = styles;\n shadowRoot.appendChild(style);\n shadowRoot.appendChild(renderDiv);\n setCoreRoot(renderDiv);\n };\n\n if (hidden) {\n return null;\n }\n\n return (\n \n {root != null ? (\n \n \n \n ) : null}\n
\n );\n}\n\n/// Like ToggleFeatures, but does not inject styles into a shadow DOM root node.\n/// useful if you're using tailwind.\nexport function ToggleFeatureUnwrapped({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): JSX.Element | null {\n const [open, setOpen] = useState(defaultOpen);\n const context = useContext(FeatureContext);\n\n if (context == null) {\n return null;\n }\n\n if (hidden) {\n return null;\n }\n\n // We want: Real value after all nestings, value of the override. we toggle override\n const { featuresDescription } = context;\n\n if (featuresDescription.length === 0) {\n return null;\n }\n\n return (\n \n
\n
setOpen(true)}\n title=\"Toggle features\"\n type=\"button\"\n >\n \n \n \n \n
\n {!open ? null : (\n
\n
\n
\n
\n
\n
\n \n Feature Flag Overrides\n
\n \n
\n Features can be enabled or disabled unless they are forced\n upstream. You can also revert to default.\n
\n
\n
\n Feature Flags \n {featuresDescription.map((feature) => (\n \n ))}\n \n \n
\n setOpen(false)}\n type=\"button\"\n >\n Done\n \n
\n
\n
\n
\n
\n
\n )}\n
\n );\n}\n","*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::-ms-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgba(59, 130, 246, 0.5);\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-colored: 0 0 rgba(0,0,0,0);\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n/*\n! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com\n*/\n\n/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n /* 1 */\n border-width: 0;\n /* 2 */\n border-style: solid;\n /* 2 */\n border-color: #e5e7eb;\n /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5;\n /* 1 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n -moz-tab-size: 4;\n /* 3 */\n -o-tab-size: 4;\n tab-size: 4;\n /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n /* 4 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 5 */\n font-variation-settings: normal;\n /* 6 */\n -webkit-tap-highlight-color: transparent;\n /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0;\n /* 1 */\n line-height: inherit;\n /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0;\n /* 1 */\n color: inherit;\n /* 2 */\n border-top-width: 1px;\n /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n -webkit-text-decoration: underline dotted currentColor;\n text-decoration: underline dotted currentColor;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n /* 1 */\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n /* 2 */\n font-variation-settings: normal;\n /* 3 */\n font-size: 1em;\n /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0;\n /* 1 */\n border-color: inherit;\n /* 2 */\n border-collapse: collapse;\n /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n /* 1 */\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n /* 1 */\n font-variation-settings: inherit;\n /* 1 */\n font-size: 100%;\n /* 1 */\n font-weight: inherit;\n /* 1 */\n line-height: inherit;\n /* 1 */\n letter-spacing: inherit;\n /* 1 */\n color: inherit;\n /* 1 */\n margin: 0;\n /* 2 */\n padding: 0;\n /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1;\n /* 1 */\n color: #9ca3af;\n /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block;\n /* 1 */\n vertical-align: middle;\n /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n[hidden]:where(:not([hidden=\"until-found\"])) {\n display: none;\n}\n\n[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n border-radius: 0px;\n padding-top: 0.5rem;\n padding-right: 0.75rem;\n padding-bottom: 0.5rem;\n padding-left: 0.75rem;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n border-color: #2563eb;\n}\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::-ms-input-placeholder, textarea::-ms-input-placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\ninput::placeholder,textarea::placeholder {\n color: #6b7280;\n opacity: 1;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n\n::-webkit-date-and-time-value {\n min-height: 1.5em;\n text-align: inherit;\n}\n\n::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n\n::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n\nselect {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n padding-right: 2.5rem;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n[multiple],[size]:where(select:not([size=\"1\"])) {\n background-image: none;\n background-image: initial;\n background-position: 0 0;\n background-position: initial;\n background-repeat: repeat;\n background-repeat: initial;\n background-size: auto auto;\n background-size: initial;\n padding-right: 0.75rem;\n -webkit-print-color-adjust: unset;\n print-color-adjust: inherit;\n}\n\n[type='checkbox'],[type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n padding: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n display: inline-block;\n vertical-align: middle;\n background-origin: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n height: 1rem;\n width: 1rem;\n color: #2563eb;\n background-color: #fff;\n border-color: #6b7280;\n border-width: 1px;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n}\n\n[type='checkbox'] {\n border-radius: 0px;\n}\n\n[type='radio'] {\n border-radius: 100%;\n}\n\n[type='checkbox']:focus,[type='radio']:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: #2563eb;\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n\n[type='checkbox']:checked,[type='radio']:checked {\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n[type='checkbox']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='radio']:checked {\n background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");\n}\n\n@media (forced-colors: active) {\n [type='radio']:checked {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='checkbox']:indeterminate {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e\");\n border-color: transparent;\n background-color: currentColor;\n background-size: 100% 100%;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n@media (forced-colors: active) {\n [type='checkbox']:indeterminate {\n -webkit-appearance: auto;\n -moz-appearance: auto;\n appearance: auto;\n }\n}\n\n[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {\n border-color: transparent;\n background-color: currentColor;\n}\n\n[type='file'] {\n background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;\n background: initial;\n border-color: inherit;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n}\n\n[type='file']:focus {\n outline: 1px solid ButtonText;\n outline: 1px auto -webkit-focus-ring-color;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.-inset-px {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n\n.inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n\n.bottom-0 {\n bottom: 0px;\n}\n\n.left-0 {\n left: 0px;\n}\n\n.z-10 {\n z-index: 10;\n}\n\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.mt-1 {\n margin-top: 0.25rem;\n}\n\n.mt-4 {\n margin-top: 1rem;\n}\n\n.mt-5 {\n margin-top: 1.25rem;\n}\n\n.mt-6 {\n margin-top: 1.5rem;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.flex {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n.inline-flex {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-4 {\n height: 1rem;\n}\n\n.h-5 {\n height: 1.25rem;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-7 {\n height: 1.75rem;\n}\n\n.h-8 {\n height: 2rem;\n}\n\n.min-h-6 {\n min-height: 1.5rem;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-4 {\n width: 1rem;\n}\n\n.w-5 {\n width: 1.25rem;\n}\n\n.w-6 {\n width: 1.5rem;\n}\n\n.w-8 {\n width: 2rem;\n}\n\n.min-w-4 {\n min-width: 1rem;\n}\n\n.min-w-6 {\n min-width: 1.5rem;\n}\n\n.max-w-full {\n max-width: 100%;\n}\n\n.shrink {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n\n.grow {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n\n.transform {\n -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.flex-row {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.flex-col {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.items-end {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.items-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.justify-center {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.gap-1 {\n gap: 0.25rem;\n}\n\n.gap-2 {\n gap: 0.5rem;\n}\n\n.gap-4 {\n gap: 1rem;\n}\n\n.gap-9 {\n gap: 2.25rem;\n}\n\n.gap-y-6 {\n row-gap: 1.5rem;\n}\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n\n.rounded-sm {\n border-radius: 0.125rem;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-2 {\n border-width: 2px;\n}\n\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgba(59, 130, 246, 1);\n border-color: rgba(59, 130, 246, var(--tw-border-opacity, 1));\n}\n\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgba(209, 213, 219, 1);\n border-color: rgba(209, 213, 219, var(--tw-border-opacity, 1));\n}\n\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgba(107, 114, 128, 1);\n border-color: rgba(107, 114, 128, var(--tw-border-opacity, 1));\n}\n\n.border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgba(34, 197, 94, 1);\n border-color: rgba(34, 197, 94, var(--tw-border-opacity, 1));\n}\n\n.border-orange-500 {\n --tw-border-opacity: 1;\n border-color: rgba(249, 115, 22, 1);\n border-color: rgba(249, 115, 22, var(--tw-border-opacity, 1));\n}\n\n.border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgba(239, 68, 68, 1);\n border-color: rgba(239, 68, 68, var(--tw-border-opacity, 1));\n}\n\n.border-transparent {\n border-color: transparent;\n}\n\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgba(37, 99, 235, 1);\n background-color: rgba(37, 99, 235, var(--tw-bg-opacity, 1));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgba(255, 255, 255, 1);\n background-color: rgba(255, 255, 255, var(--tw-bg-opacity, 1));\n}\n\n.p-1 {\n padding: 0.25rem;\n}\n\n.p-3 {\n padding: 0.75rem;\n}\n\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.pb-0 {\n padding-bottom: 0px;\n}\n\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.pb-4 {\n padding-bottom: 1rem;\n}\n\n.pl-4 {\n padding-left: 1rem;\n}\n\n.pr-4 {\n padding-right: 1rem;\n}\n\n.pt-0 {\n padding-top: 0px;\n}\n\n.pt-4 {\n padding-top: 1rem;\n}\n\n.pt-5 {\n padding-top: 1.25rem;\n}\n\n.text-left {\n text-align: left;\n}\n\n.align-middle {\n vertical-align: middle;\n}\n\n.align-bottom {\n vertical-align: bottom;\n}\n\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.leading-6 {\n line-height: 1.5rem;\n}\n\n.leading-7 {\n line-height: 1.75rem;\n}\n\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgba(59, 130, 246, 1);\n color: rgba(59, 130, 246, var(--tw-text-opacity, 1));\n}\n\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgba(107, 114, 128, 1);\n color: rgba(107, 114, 128, var(--tw-text-opacity, 1));\n}\n\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgba(17, 24, 39, 1);\n color: rgba(17, 24, 39, var(--tw-text-opacity, 1));\n}\n\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgba(34, 197, 94, 1);\n color: rgba(34, 197, 94, var(--tw-text-opacity, 1));\n}\n\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgba(249, 115, 22, 1);\n color: rgba(249, 115, 22, var(--tw-text-opacity, 1));\n}\n\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgba(239, 68, 68, 1);\n color: rgba(239, 68, 68, var(--tw-text-opacity, 1));\n}\n\n.text-white {\n --tw-text-opacity: 1;\n color: rgba(255, 255, 255, 1);\n color: rgba(255, 255, 255, var(--tw-text-opacity, 1));\n}\n\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n -webkit-box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n box-shadow: 0 0 rgba(0,0,0,0), 0 0 rgba(0,0,0,0), var(--tw-shadow);\n -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 rgba(0,0,0,0)), var(--tw-ring-shadow, 0 0 rgba(0,0,0,0)), var(--tw-shadow);\n}\n\n.ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.ring-blue-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(59, 130, 246, var(--tw-ring-opacity, 1));\n}\n\n.ring-gray-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(107, 114, 128, var(--tw-ring-opacity, 1));\n}\n\n.invert {\n --tw-invert: invert(100%);\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.filter {\n -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n.transition-all {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n -webkit-transition-duration: 150ms;\n transition-duration: 150ms;\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 rgba(0,0,0,0);\n -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0,0,0,0));\n}\n\n.focus\\:ring-blue-600:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgba(37, 99, 235, var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n@media (min-width: 640px) {\n .sm\\:my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n\n .sm\\:mt-3 {\n margin-top: 0.75rem;\n }\n\n .sm\\:mt-6 {\n margin-top: 1.5rem;\n }\n\n .sm\\:block {\n display: block;\n }\n\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .sm\\:gap-x-4 {\n -moz-column-gap: 1rem;\n -webkit-column-gap: 1rem;\n column-gap: 1rem;\n }\n\n .sm\\:p-0 {\n padding: 0px;\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:align-middle {\n vertical-align: middle;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 1024px) {\n .lg\\:max-w-\\[80\\%\\] {\n max-width: 80%;\n }\n\n .lg\\:gap-4 {\n gap: 1rem;\n }\n}\n"],"mappings":"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","names":["Fragment","jsx","useEffect","useMemo","createContext","testFeature","testFeature","useEffect","useMemo","useMemo","useEffect","jsx","useMemo","useEffect","useCallback","useContext","Fragment","jsx","useContext","useCallback","testFeature"]}
\ No newline at end of file
+{"version":3,"sources":["../src/utils.ts","../src/EnableContext.tsx","../src/useAllDisabled.tsx","../src/useDisabled.tsx","../src/Disable.tsx","../src/useAllEnabled.tsx","../src/useEnabled.tsx","../src/Enable.tsx","../src/Features.tsx","../src/FeatureContext.tsx","../src/FeatureState.tsx","../src/FeaturesState.tsx","../src/useConsoleOverride.tsx","../src/GlobalEnable.tsx","../src/usePersist.tsx","../src/useTestCallback.tsx","../src/rolloutHash.tsx","../src/testFeature.tsx","../src/ToggleFeatures.tsx","../src/tailwind.css"],"sourcesContent":["import { useContext, useMemo } from 'react';\n\nimport { EnableContext, type EnableContextType } from './EnableContext';\n\n// Helper: get rid of some boilerplate.\n// just input mashing and sanitation, removing extra renders, and getting test function\nexport function useTestAndConvert(\n input?: string[] | string | null,\n): [EnableContextType, string[]] {\n const test = useContext(EnableContext);\n\n // We memoize just to prevent re-renders since this could be at the leaf of a tree\n const converted = useMemo(\n () => (input == null ? [] : Array.isArray(input) ? input : [input]),\n [input],\n );\n\n return [test, converted];\n}\n","import { createContext } from 'react';\n\nimport type { FeatureValue } from './FeatureState';\n\nexport type EnableContextType = (feature: string) => FeatureValue;\n\n/**\n * Contained function can check whether a given feature is enabled.\n */\nexport const EnableContext = createContext((_s) => false);\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are disabled\n */\nexport function useAllDisabled(withoutAll: string[] | string): boolean {\n const [test, queryAllWithout] = useTestAndConvert(withoutAll);\n return (\n withoutAll.length > 0 && queryAllWithout.every((x) => !(test(x) ?? false))\n );\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is disabled\n */\nexport function useDisabled(without: string[] | string): boolean {\n const [test, queryAnyWithout] = useTestAndConvert(without);\n return queryAnyWithout.some((x) => !(test(x) ?? false));\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport type { EnableProps } from './Enable';\nimport { useAllDisabled } from './useAllDisabled';\nimport { useDisabled } from './useDisabled';\n\n/**\n * Feature will be disabled if any in the list are enabled\n */\nexport const Disable: React.FC = ({\n feature = [],\n allFeatures = [],\n children,\n}) => {\n const isAny = useDisabled(feature);\n const isAll = useAllDisabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n};\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff all specified features are enabled\n */\nexport function useAllEnabled(allFeatures: string[] | string): boolean {\n const [test, queryAllPresent] = useTestAndConvert(allFeatures);\n return queryAllPresent.length > 0 && queryAllPresent.every(test);\n}\n","import { useTestAndConvert } from './utils';\n\n/**\n * returns true iff any specified feature is enabled\n */\nexport function useEnabled(feature: string[] | string): boolean {\n const [test, queryAnyPresent] = useTestAndConvert(feature);\n return queryAnyPresent.some(test);\n}\n","// biome-ignore lint/style/useImportType: JSX requires React at runtime\nimport * as React from 'react';\n\nimport { useAllEnabled } from './useAllEnabled';\nimport { useEnabled } from './useEnabled';\n\nexport interface EnableProps {\n readonly feature?: string[] | string;\n readonly allFeatures?: string[];\n children: React.ReactNode;\n}\n\n/**\n * Feature will be enabled if any feature in the list are enabled,\n */\nexport function Enable({\n feature = [],\n allFeatures = [],\n children,\n}: EnableProps): React.JSX.Element | null {\n const isAny = useEnabled(feature);\n const isAll = useAllEnabled(allFeatures);\n\n if (isAny || isAll) {\n return <>{children}>;\n }\n\n return null;\n}\n","import * as React from 'react';\nimport {\n type ReactNode,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react';\n\nimport { EnableContext } from './EnableContext';\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { featuresReducer, initialFeaturesState } from './FeaturesState';\nimport useConsoleOverride from './useConsoleOverride';\nimport usePersist, { KEY } from './usePersist';\nimport useTestCallback from './useTestCallback';\n\nconst ROLLOUT_ID_KEY = 'react-enable:rollout-stable-id';\n\ninterface FeatureProps {\n readonly features: readonly FeatureDescription[];\n readonly children?: ReactNode;\n readonly disableConsole?: boolean;\n readonly storage?: Storage;\n\n /// Stable identifier for percentage-based rollouts. If not provided, one will be\n /// auto-generated and persisted to storage. This ensures consistent feature assignment\n /// for the same user/session across page loads.\n readonly rolloutStableId?: string;\n}\n\n/**\n * A more batteries-enabled parent component that keeps track of feature state\n * internally, and creates window.feature.enable(\"f\") and window.feature.disable(\"f\").\n * Keeps track of overrides and defaults, with defaults potentially coming from your props\n * and overrides being persisted to your choice of storage layer.\n */\nexport function Features({\n children,\n features,\n disableConsole = false,\n storage = window.sessionStorage,\n rolloutStableId,\n}: FeatureProps): React.JSX.Element {\n // Capture only first value; we don't care about future updates\n const featuresRef = useRef(features);\n\n // Generate or retrieve stable ID for rollouts\n const stableId = useMemo(() => {\n if (rolloutStableId != null) {\n return rolloutStableId;\n }\n\n // Try to retrieve existing ID from storage\n if (storage != null) {\n try {\n const existingId = storage.getItem(ROLLOUT_ID_KEY);\n if (existingId != null) {\n return existingId;\n }\n } catch (e) {\n // Can't read from storage; generate new ID\n }\n }\n\n // Generate new stable ID\n const newId = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;\n\n // Persist to storage\n if (storage != null) {\n try {\n storage.setItem(ROLLOUT_ID_KEY, newId);\n } catch (e) {\n // Can't persist; ID will still work for this session\n }\n }\n\n return newId;\n }, [rolloutStableId, storage]);\n const [overridesState, overridesDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n const [defaultsState, defaultsDispatch] = useReducer(\n featuresReducer,\n initialFeaturesState,\n );\n\n useLayoutEffect(() => {\n /// Load defaults\n defaultsDispatch({ type: 'INIT', features });\n return () => {\n defaultsDispatch({ type: 'DE_INIT' });\n };\n }, [features]);\n\n useLayoutEffect(() => {\n let f: Record = {};\n if (storage != null) {\n try {\n const featuresJson = storage.getItem(KEY);\n if (featuresJson != null) {\n const fh = JSON.parse(featuresJson);\n f = fh.overrides;\n }\n } catch (e) {\n // Can't parse or get or otherwise; ignore\n console.error('error in localStorage', e);\n }\n }\n\n overridesDispatch({\n type: 'INIT',\n features: (featuresRef.current ?? [])\n .filter((x) => x.noOverride !== true)\n .map((x) => ({\n name: x.name,\n description: x.description,\n defaultValue: f?.[x.name] ?? undefined,\n })),\n });\n\n return () => {\n overridesDispatch({ type: 'DE_INIT' });\n };\n }, [storage]);\n\n // Handle async operations for features with onChangeDefault\n useEffect(() => {\n if (defaultsState.value !== 'ready') {\n return;\n }\n\n // Check for features in async states and handle them\n Object.entries(defaultsState.context.features).forEach(\n ([name, feature]) => {\n if (\n feature.value === 'asyncEnabled' ||\n feature.value === 'asyncDisabled' ||\n feature.value === 'asyncUnspecified'\n ) {\n const targetValue =\n feature.value === 'asyncEnabled'\n ? true\n : feature.value === 'asyncDisabled'\n ? false\n : undefined;\n\n const onChangeDefault = feature.featureDesc?.onChangeDefault;\n if (onChangeDefault != null && feature.featureDesc != null) {\n onChangeDefault(feature.featureDesc.name, targetValue)\n .then((result) => {\n defaultsDispatch({ type: 'ASYNC_DONE', name, value: result });\n })\n .catch(() => {\n defaultsDispatch({\n type: 'ASYNC_DONE',\n name,\n value: undefined,\n });\n });\n }\n }\n },\n );\n }, [defaultsState]);\n\n usePersist(storage, featuresRef.current, overridesState);\n\n const testCallback = useTestCallback(overridesState, defaultsState, stableId);\n useConsoleOverride(\n !disableConsole,\n featuresRef.current,\n testCallback,\n defaultsDispatch,\n );\n\n const featureValue = useMemo(\n () => ({\n overridesSend: overridesDispatch,\n defaultsSend: defaultsDispatch,\n featuresDescription: featuresRef.current,\n overridesState,\n defaultsState,\n test: testCallback,\n }),\n [overridesState, defaultsState, testCallback],\n );\n\n return (\n \n \n {children}\n \n \n );\n}\n","import { createContext } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch, FeaturesState } from './FeaturesState';\n\nexport const FeatureContext = createContext(null);\n\n/// Give access to the overrides layer\nexport interface FeatureContextType {\n // Make changes to the overrides\n overridesSend: FeaturesDispatch;\n\n // Make changes to defaults\n defaultsSend: FeaturesDispatch;\n\n featuresDescription: readonly FeatureDescription[];\n\n // State is in layers; overrides and defaults\n overridesState: FeaturesState;\n defaultsState: FeaturesState;\n\n /// Test with proper fallback and respecting the user's force preference\n test: (flag: string) => FeatureValue;\n}\n","import type { Dispatch } from 'react';\n\n/**\n * Feature is either on, off, or 'unset',\n * which means it will go to the default value or the less specific value.\n */\nexport type FeatureValue = false | true | undefined;\n\nexport type FeatureStateValue =\n | 'initial'\n | 'enabled'\n | 'disabled'\n | 'unspecified'\n | 'asyncEnabled'\n | 'asyncDisabled'\n | 'asyncUnspecified';\n\nexport interface FeatureState {\n value: FeatureStateValue;\n featureDesc?: FeatureDescription;\n}\n\nexport type FeatureDispatch = Dispatch;\n\n/// Given a featurestate, determine the value (on, off, or unset)\nexport function valueForState(\n featureState: FeatureState,\n): [FeatureValue, boolean] {\n return [\n featureState.value === 'enabled' || featureState.value === 'asyncEnabled'\n ? true\n : featureState.value === 'disabled' ||\n featureState.value === 'asyncDisabled'\n ? false\n : undefined,\n featureState.featureDesc?.force ?? false,\n ];\n}\n\n/**\n * Definition of a feature that can be enabled or disabled.\n * K is the type of the key that is used to identify the feature.\n */\nexport interface FeatureDescription {\n readonly name: K;\n readonly description?: string;\n\n /// If set, will be used to update the feature default state instead of simply overriding.\n /// For example, you might use this to update a feature flag on a backend server.\n /// when set, the feature will be updated on the backend server, and the result of the async\n /// will be used for the final state after the change. while changing, the feature will be\n /// in the 'changing' state. Also note that the feature will be changed at the \"default\" layer.\n readonly onChangeDefault?: (\n name: K,\n newValue: FeatureValue,\n ) => Promise;\n\n /// if set true, will force the field to what it is set here through layers of states.\n /// useful to invert the layers, similar to !important in CSS.\n readonly force?: boolean;\n\n /// If set to true, the feature will not be overridable by the user.\n readonly noOverride?: boolean;\n\n /// can be used to specify what should happen if the feature is not set to a particular value.\n readonly defaultValue?: FeatureValue;\n\n /// Percentage-based rollout (0-1). If set, the feature will be enabled for a percentage of users\n /// based on a stable identifier. For example, 0.3 means 30% of users will see this feature enabled.\n /// Requires a rolloutStableId to be provided to the Features component.\n readonly enableFor?: number;\n}\n\n/**\n * Actions that can be performed on a feature.\n */\nexport type FeatureAction =\n | { type: 'DISABLE' }\n | { type: 'ENABLE' }\n | { type: 'INIT'; feature: FeatureDescription }\n | { type: 'SET'; value: FeatureValue }\n | { type: 'TOGGLE' }\n | { type: 'UNSET' }\n | { type: 'ASYNC_DONE'; value: FeatureValue };\n\nexport const initialFeatureState: FeatureState = {\n value: 'initial',\n};\n\n/**\n * Reducer for managing individual feature state\n */\nexport function featureReducer(\n state: FeatureState,\n action: FeatureAction,\n): FeatureState {\n switch (action.type) {\n case 'INIT': {\n const { feature } = action;\n const value =\n feature.defaultValue === true\n ? 'enabled'\n : feature.defaultValue === false\n ? 'disabled'\n : 'unspecified';\n return {\n value: value as FeatureStateValue,\n featureDesc: feature,\n };\n }\n\n case 'ENABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'DISABLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'disabled' };\n }\n\n case 'TOGGLE': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncEnabled' };\n }\n return { ...state, value: 'enabled' };\n }\n\n case 'UNSET': {\n if (state.featureDesc?.onChangeDefault != null) {\n return { ...state, value: 'asyncUnspecified' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'SET': {\n const { value } = action;\n if (state.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n return { ...state, value: 'asyncEnabled' };\n }\n if (value === false) {\n return { ...state, value: 'asyncDisabled' };\n }\n return { ...state, value: 'asyncUnspecified' };\n }\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n case 'ASYNC_DONE': {\n const { value } = action;\n if (value === true) {\n return { ...state, value: 'enabled' };\n }\n if (value === false) {\n return { ...state, value: 'disabled' };\n }\n return { ...state, value: 'unspecified' };\n }\n\n default:\n return state;\n }\n}\n","import type { Dispatch } from 'react';\n\nimport {\n type FeatureDescription,\n type FeatureState,\n type FeatureValue,\n valueForState,\n} from './FeatureState';\n\nexport interface FeaturesContext {\n // features are layered:\n // - defaults: if nothing else matches, provided a value for feature\n // - browser: browser-local values for features (kept in local storage, etc)\n // - user: values from the user's profile, if any\n // - org: value from the org's profile, if any\n features: { [x: string]: FeatureState };\n}\n\nexport type FeaturesAction =\n | { type: 'DE_INIT' }\n | { type: 'DISABLE'; name: string }\n | { type: 'ENABLE'; name: string }\n | { type: 'INIT'; features: readonly FeatureDescription[] }\n | { type: 'SET_ALL'; features: { [key: string]: FeatureValue } }\n | { type: 'SET'; name: string; value: FeatureValue }\n | { type: 'TOGGLE'; name: string }\n | { type: 'UNSET'; name: string }\n | { type: 'ASYNC_DONE'; name: string; value: FeatureValue };\n\nexport interface FeaturesState {\n value: 'idle' | 'ready';\n context: FeaturesContext;\n}\n\nexport type FeaturesDispatch = Dispatch;\n\nexport function valueOfFeature(\n featuresState: FeaturesState,\n feature: string,\n): [FeatureValue, boolean] {\n if (featuresState.context.features[feature] == null) {\n return [undefined, false];\n }\n const featureState = featuresState.context.features[feature];\n if (featureState != null) {\n return valueForState(featureState);\n }\n return [undefined, false];\n}\n\nexport const initialFeaturesState: FeaturesState = {\n value: 'idle',\n context: {\n features: {},\n },\n};\n\n/**\n * Reducer for managing a collection of features\n */\nexport function featuresReducer(\n state: FeaturesState,\n action: FeaturesAction,\n): FeaturesState {\n switch (action.type) {\n case 'INIT': {\n if (!action.features || action.features.length === 0) {\n return state;\n }\n\n const features: { [x: string]: FeatureState } = {};\n for (const feature of action.features) {\n // Initialize each feature\n const featureState = {\n value:\n feature.defaultValue === true\n ? ('enabled' as const)\n : feature.defaultValue === false\n ? ('disabled' as const)\n : ('unspecified' as const),\n featureDesc: feature,\n };\n features[feature.name] = featureState;\n }\n\n return {\n value: 'ready',\n context: { features },\n };\n }\n\n case 'DE_INIT': {\n return initialFeaturesState;\n }\n\n case 'SET_ALL': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const features = { ...state.context.features };\n Object.keys(features).forEach((name) => {\n const value = action.features[name] ?? undefined;\n const currentFeature = features[name];\n\n if (currentFeature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'asyncEnabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'asyncDisabled' };\n } else {\n features[name] = { ...currentFeature, value: 'asyncUnspecified' };\n }\n } else {\n if (value === true) {\n features[name] = { ...currentFeature, value: 'enabled' };\n } else if (value === false) {\n features[name] = { ...currentFeature, value: 'disabled' };\n } else {\n features[name] = { ...currentFeature, value: 'unspecified' };\n }\n }\n });\n\n return {\n ...state,\n context: { features },\n };\n }\n\n case 'SET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n let newValue: FeatureState['value'];\n\n if (feature.featureDesc?.onChangeDefault != null) {\n if (value === true) {\n newValue = 'asyncEnabled';\n } else if (value === false) {\n newValue = 'asyncDisabled';\n } else {\n newValue = 'asyncUnspecified';\n }\n } else {\n if (value === true) {\n newValue = 'enabled';\n } else if (value === false) {\n newValue = 'disabled';\n } else {\n newValue = 'unspecified';\n }\n }\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'TOGGLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ENABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncEnabled'\n : 'enabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'DISABLE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncDisabled'\n : 'disabled';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'UNSET': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const newValue =\n feature.featureDesc?.onChangeDefault != null\n ? 'asyncUnspecified'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n case 'ASYNC_DONE': {\n if (state.value !== 'ready') {\n return state;\n }\n\n const feature = state.context.features[action.name];\n if (feature == null) {\n return state;\n }\n\n const { value } = action;\n const newValue =\n value === true\n ? 'enabled'\n : value === false\n ? 'disabled'\n : 'unspecified';\n\n return {\n ...state,\n context: {\n features: {\n ...state.context.features,\n [action.name]: { ...feature, value: newValue },\n },\n },\n };\n }\n\n default:\n return state;\n }\n}\n","import { useEffect } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\nimport { GlobalEnable } from './GlobalEnable';\n\nexport default function useConsoleOverride(\n consoleOverride: boolean,\n features: readonly FeatureDescription[],\n testFeature: (_: string) => FeatureValue,\n dispatch: FeaturesDispatch,\n): void {\n useEffect(() => {\n if (!consoleOverride) {\n // Clean up window.feature immediately if consoleOverride is disabled\n if (window.feature != null) {\n window.feature = undefined;\n }\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }\n window.feature = new GlobalEnable(dispatch, testFeature, features);\n return () => {\n if (window.feature != null) {\n window.feature = undefined;\n }\n };\n }, [features, dispatch, consoleOverride, testFeature]);\n}\n","import type { FeatureDescription, FeatureValue } from './FeatureState';\nimport type { FeaturesDispatch } from './FeaturesState';\n\nexport class GlobalEnable {\n private readonly featureDesc: readonly FeatureDescription[];\n private readonly dispatch: FeaturesDispatch;\n private readonly testFeature: (value: string) => FeatureValue;\n\n constructor(\n dispatch: FeaturesDispatch,\n testFeature: (_: string) => FeatureValue,\n featureDesc: readonly FeatureDescription[],\n ) {\n this.featureDesc = featureDesc;\n this.dispatch = dispatch;\n this.testFeature = testFeature;\n }\n\n public toggle(feature: string): void {\n this.dispatch({ type: 'TOGGLE', name: feature });\n }\n\n public enable(feature: string): void {\n this.dispatch({ type: 'ENABLE', name: feature });\n }\n\n public unset(feature: string): void {\n this.dispatch({ type: 'UNSET', name: feature });\n }\n\n public disable(feature: string): void {\n this.dispatch({ type: 'DISABLE', name: feature });\n }\n\n public setAll(features: { [key: string]: FeatureValue }): void {\n this.dispatch({ type: 'SET_ALL', features });\n }\n\n public listFeatures(): readonly [string, FeatureValue][] {\n return this.featureDesc.map((f) => [f.name, this.testFeature(f.name)]);\n }\n}\ndeclare global {\n interface Window {\n feature?: GlobalEnable;\n }\n}\n","import { useEffect, useMemo } from 'react';\nimport type { FeatureDescription, FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\n\nexport const KEY = 'react-enable:feature-values';\n\nexport default function usePersist(\n storage: Storage | undefined,\n features: readonly FeatureDescription[],\n overrideState: FeaturesState,\n): void {\n const overrides = useMemo(() => {\n const newOverrides: { [key: string]: FeatureValue } = {};\n if (overrideState.value === 'ready') {\n for (const feature of features) {\n const [value] = valueOfFeature(overrideState, feature.name);\n if (value != null) {\n newOverrides[feature.name] = value;\n }\n }\n }\n return newOverrides;\n }, [features, overrideState]);\n\n const strState =\n Object.keys(overrides).length === 0 || storage == null\n ? '{}'\n : JSON.stringify({ overrides });\n\n useEffect(() => {\n try {\n if (storage != null && overrideState.value === 'ready') {\n storage.setItem(KEY, strState);\n }\n } catch (e) {\n // Can't set for some reason\n }\n }, [overrideState, storage, strState]);\n}\n","import { useCallback } from 'react';\n\nimport type { FeaturesState } from './FeaturesState';\nimport testFeature from './testFeature';\n\n/// A callback that can be called to test if a feature is enabled or disabled\nexport default function useTestCallback(\n overridesState: FeaturesState,\n defaultsState: FeaturesState,\n rolloutStableId?: string,\n): (feature: string) => boolean | undefined {\n return useCallback(\n (f: string) =>\n testFeature(f, [overridesState, defaultsState], rolloutStableId),\n [overridesState, defaultsState, rolloutStableId],\n );\n}\n","/**\n * Simple hash function to convert a string into a number between 0 and 1.\n * This is used for percentage-based rollouts to ensure consistent feature\n * assignment for the same user/session.\n * Uses a variant of the djb2 hash algorithm.\n *\n * @param str - The string to hash (typically featureName + rolloutStableId)\n * @returns A number between 0 and 1\n */\nexport function hashToPercentage(str: string): number {\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) + hash + char) | 0; // hash * 33 + char\n }\n // Convert to unsigned 32-bit integer and normalize to 0-1\n const unsigned = hash >>> 0;\n return unsigned / 4294967296; // 2^32\n}\n\n/**\n * Determines if a feature should be enabled based on percentage rollout.\n *\n * @param featureName - Name of the feature\n * @param rolloutStableId - Stable identifier for consistent hashing\n * @param percentage - Target percentage (0-1)\n * @returns true if the feature should be enabled for this user\n */\nexport function isInRollout(\n featureName: string,\n rolloutStableId: string,\n percentage: number,\n): boolean {\n if (percentage <= 0) return false;\n if (percentage >= 1) return true;\n\n const combinedKey = `${featureName}:${rolloutStableId}`;\n const hash = hashToPercentage(combinedKey);\n return hash < percentage;\n}\n","import type { FeatureValue } from './FeatureState';\nimport { type FeaturesState, valueOfFeature } from './FeaturesState';\nimport { isInRollout } from './rolloutHash';\n\n/** Determine if the feature is enabled in one of the state machines, in order\n *\n * @param state The current state of the machine\n * @param feature The feature to check\n * @param rolloutStableId Optional stable identifier for percentage-based rollouts\n */\n\nexport default function testFeature(\n feature: string,\n states: FeaturesState[],\n rolloutStableId?: string,\n): FeatureValue {\n const values = states.map((state) => valueOfFeature(state, feature));\n\n // look for best forced option, in order\n for (const [featureValue, featureForced] of values) {\n if (featureValue != null && featureForced) {\n return featureValue;\n }\n }\n\n // look for best non-forced option, in order\n for (const [featureValue] of values) {\n if (featureValue != null) {\n return featureValue;\n }\n }\n\n // Check for percentage-based rollout if no explicit value is set\n if (rolloutStableId != null) {\n // Look through states to find the feature description with enableFor\n for (const state of states) {\n if (state.value === 'ready' && state.context.features[feature] != null) {\n const featureState = state.context.features[feature];\n const enableFor = featureState.featureDesc?.enableFor;\n\n if (enableFor != null) {\n return isInRollout(feature, rolloutStableId, enableFor);\n }\n }\n }\n }\n\n // unset if nothing hit\n return undefined;\n}\n","import {\n Radio,\n RadioGroup,\n RadioGroupDescription,\n RadioGroupLabel,\n} from '@headlessui/react';\nimport * as React from 'react';\nimport { type ReactNode, useCallback, useContext, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { FeatureContext } from './FeatureContext';\nimport type { FeatureDescription } from './FeatureState';\nimport { valueOfFeature } from './FeaturesState';\n// @ts-expect-error bundler will take care of this\nimport styles from './tailwind.css';\n\nfunction classNames(...classes: string[]): string {\n return classes.filter(Boolean).join(' ');\n}\n\nfunction ToggleFeature({\n feature,\n}: {\n feature: FeatureDescription;\n}): React.JSX.Element | null {\n const context = useContext(FeatureContext);\n const handleChangeSelection = useCallback(\n (value: 'false' | 'true' | 'unset') => {\n if (context?.overridesSend != null) {\n switch (value) {\n case 'true': {\n context.overridesSend({ type: 'ENABLE', name: feature.name });\n break;\n }\n case 'false': {\n context.overridesSend({ type: 'DISABLE', name: feature.name });\n break;\n }\n case 'unset': {\n context.overridesSend({ type: 'UNSET', name: feature.name });\n break;\n }\n }\n }\n },\n [feature.name, context],\n );\n\n if (context == null) {\n return null;\n }\n\n const { overridesState, test: testFeature, defaultsState } = context;\n\n const valueInDefaults = (\n valueOfFeature(defaultsState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const valueInOverrides = (\n valueOfFeature(overridesState, feature.name)[0] ?? 'unset'\n ).toString() as 'false' | 'true' | 'unset';\n\n const actualChecked = testFeature(feature.name);\n\n return (\n \n \n \n \n Feature: {feature.name}\n \n {feature.noOverride === true ? (\n \n
\n \n \n
No Overrides
\n
\n ) : null}\n {actualChecked === true ? (\n \n
\n \n \n
{actualChecked ? 'Enabled' : 'Disabled'}
\n
\n ) : null}\n \n {feature.description == null ? null : (\n \n {feature.description}\n
\n )}\n \n \n {[\n {\n id: 'false',\n title: `Disable ${feature.name}`,\n description: 'Override the feature to be disabled',\n },\n {\n id: 'unset',\n title: 'Default',\n description: 'Inherit enabled state from defaults',\n disabled: (feature.noOverride ?? false) || feature.force,\n defaultValue:\n valueInDefaults === 'true' ? (\n
\n Enabled \n
\n ) : (\n
\n Disabled \n
\n ),\n },\n {\n id: 'true',\n title: `Enable ${feature.name}`,\n description: 'Override the feature to be enabled',\n },\n ].map((option) => (\n
\n classNames(\n checked ? 'border-transparent' : 'border-gray-300',\n disabled\n ? 'border-transparent ring-gray-500 cursor-not-allowed'\n : 'cursor-pointer',\n 'relative bg-white border rounded-lg shadow-sm p-3 flex focus:outline-none',\n )\n }\n disabled={option.disabled}\n key={option.id}\n value={option.id}\n >\n {({ checked, disabled }) => (\n <>\n \n
\n \n {option.title}\n \n {option.defaultValue != null ? option.defaultValue : null}\n \n \n \n \n
\n {option.description}\n \n
\n
\n >\n )}\n \n ))}\n
\n \n );\n}\n\nfunction ShadowContent({\n root,\n children,\n}: {\n children: ReactNode;\n root: Element;\n}) {\n return ReactDOM.createPortal(children, root);\n}\n\n/// Permit users to override feature flags via a GUI.\n/// Renders a small floating button in lower left or right, pressing it brings up\n/// a list of features to toggle and their current override state. you can override on or override off,\n/// or unset the override and go back to default value.\n// eslint-disable-next-line no-undef\nexport function ToggleFeatures({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): React.JSX.Element | null {\n const [root, setCoreRoot] = useState(null);\n\n const setRoot = (host: HTMLDivElement | null) => {\n if (host == null || root != null) {\n return;\n }\n const shadowRoot = host?.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n const renderDiv = document.createElement('div');\n style.textContent = styles;\n shadowRoot.appendChild(style);\n shadowRoot.appendChild(renderDiv);\n setCoreRoot(renderDiv);\n };\n\n if (hidden) {\n return null;\n }\n\n return (\n \n {root != null ? (\n \n \n \n ) : null}\n
\n );\n}\n\n/// Like ToggleFeatures, but does not inject styles into a shadow DOM root node.\n/// useful if you're using tailwind.\nexport function ToggleFeatureUnwrapped({\n defaultOpen = false,\n hidden = false,\n}: {\n defaultOpen?: boolean;\n hidden?: boolean;\n}): React.JSX.Element | null {\n const [open, setOpen] = useState(defaultOpen);\n const context = useContext(FeatureContext);\n\n if (context == null) {\n return null;\n }\n\n if (hidden) {\n return null;\n }\n\n // We want: Real value after all nestings, value of the override. we toggle override\n const { featuresDescription } = context;\n\n if (featuresDescription.length === 0) {\n return null;\n }\n\n return (\n \n
\n
setOpen(true)}\n title=\"Toggle features\"\n type=\"button\"\n >\n \n \n \n \n
\n {!open ? null : (\n
\n
\n
\n
\n
\n
\n \n Feature Flag Overrides\n
\n \n
\n Features can be enabled or disabled unless they are forced\n upstream. You can also revert to default.\n
\n
\n
\n Feature Flags \n {featuresDescription.map((feature) => (\n \n ))}\n \n \n
\n setOpen(false)}\n type=\"button\"\n >\n Done\n \n
\n
\n
\n
\n
\n
\n )}\n
\n );\n}\n","/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */\n:root:not(#\\#), :host:not(#\\#) {\n --font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-500: rgb(251, 44, 54);\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n --color-blue-600: rgb(21, 93, 252);\n --color-gray-300: rgb(209, 213, 220);\n --color-gray-500: rgb(106, 114, 130);\n --color-gray-900: rgb(16, 24, 40);\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --font-weight-medium: 500;\n --font-weight-bold: 700;\n --radius-sm: 0.25rem;\n --radius-lg: 0.5rem;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n}\n@supports (color: color(display-p3 0 0 0%)) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: rgb(252, 113, 0);\n --color-green-500: rgb(0, 198, 90);\n --color-blue-500: rgb(50, 128, 255);\n }\n\n@media (color-gamut: p3) {\n:root:not(#\\#), :host:not(#\\#) {\n --color-orange-500: color(display-p3 0.94659 0.44979 0.07573);\n --color-green-500: color(display-p3 0.30873 0.77475 0.37431);\n --color-blue-500: color(display-p3 0.26642 0.49122 0.98862);\n }\n}\n}\n:not(#\\#):not(#\\#)::-ms-backdrop {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\n*:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::after,\n :not(#\\#):not(#\\#)::before,\n :not(#\\#):not(#\\#)::backdrop,\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n}\nhtml:not(#\\#):not(#\\#),\n :host:not(#\\#):not(#\\#) {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-family: var(--default-font-family, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-font-feature-settings, normal);\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n}\nhr:not(#\\#):not(#\\#) {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\nabbr:where([title]):not(#\\#):not(#\\#) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nh1:not(#\\#):not(#\\#),\n h2:not(#\\#):not(#\\#),\n h3:not(#\\#):not(#\\#),\n h4:not(#\\#):not(#\\#),\n h5:not(#\\#):not(#\\#),\n h6:not(#\\#):not(#\\#) {\n font-size: inherit;\n font-weight: inherit;\n}\na:not(#\\#):not(#\\#) {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n}\nb:not(#\\#):not(#\\#),\n strong:not(#\\#):not(#\\#) {\n font-weight: bolder;\n}\ncode:not(#\\#):not(#\\#),\n kbd:not(#\\#):not(#\\#),\n samp:not(#\\#):not(#\\#),\n pre:not(#\\#):not(#\\#) {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n -webkit-font-feature-settings: normal;\n font-feature-settings: normal;\n -webkit-font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: normal;\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n}\nsmall:not(#\\#):not(#\\#) {\n font-size: 80%;\n}\nsub:not(#\\#):not(#\\#),\n sup:not(#\\#):not(#\\#) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsub:not(#\\#):not(#\\#) {\n bottom: -0.25em;\n}\nsup:not(#\\#):not(#\\#) {\n top: -0.5em;\n}\ntable:not(#\\#):not(#\\#) {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n:-moz-focusring:not(#\\#):not(#\\#) {\n outline: auto;\n}\nprogress:not(#\\#):not(#\\#) {\n vertical-align: baseline;\n}\nsummary:not(#\\#):not(#\\#) {\n display: list-item;\n}\nol:not(#\\#):not(#\\#),\n ul:not(#\\#):not(#\\#),\n menu:not(#\\#):not(#\\#) {\n list-style: none;\n}\nimg:not(#\\#):not(#\\#),\n svg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#),\n canvas:not(#\\#):not(#\\#),\n audio:not(#\\#):not(#\\#),\n iframe:not(#\\#):not(#\\#),\n embed:not(#\\#):not(#\\#),\n object:not(#\\#):not(#\\#) {\n display: block;\n vertical-align: middle;\n}\nimg:not(#\\#):not(#\\#),\n video:not(#\\#):not(#\\#) {\n max-width: 100%;\n height: auto;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\nbutton:not(#\\#):not(#\\#),\n input:not(#\\#):not(#\\#),\n select:not(#\\#):not(#\\#),\n optgroup:not(#\\#):not(#\\#),\n textarea:not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n font: inherit;\n -webkit-font-feature-settings: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup {\n font-weight: bolder;\n}\n:where(select[multiple]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:where(select[size]):not(#\\#):not(#\\#) optgroup option {\n padding-left: 20px;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::file-selector-button {\n margin-right: 4px;\n}\n:not(#\\#):not(#\\#)::-webkit-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-moz-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#):-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::-ms-input-placeholder {\n opacity: 1;\n}\n:not(#\\#):not(#\\#)::placeholder {\n opacity: 1;\n}\n@supports (not (-webkit-appearance: -apple-pay-button)) or\n (contain-intrinsic-size: 1px) {\n :not(#\\#):not(#\\#)::-webkit-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-moz-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#):-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::-ms-input-placeholder {\n color: currentcolor;\n }\n :not(#\\#):not(#\\#)::placeholder {\n color: currentcolor;\n }\n @supports (color: color-mix(in lab, red, red)) {\n :not(#\\#):not(#\\#)::-csstools-invalid-placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n}\ntextarea:not(#\\#):not(#\\#) {\n resize: vertical;\n}\n:not(#\\#):not(#\\#)::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n:not(#\\#):not(#\\#)::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit {\n display: -webkit-inline-box;\n display: inline-flex;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-datetime-edit,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-year-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-month-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-day-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-hour-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-minute-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-second-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-millisecond-field,\n :not(#\\#):not(#\\#)::-webkit-datetime-edit-meridiem-field {\n padding-top: 0;\n padding-bottom: 0;\n}\n:not(#\\#):not(#\\#)::-webkit-calendar-picker-indicator {\n line-height: 1;\n}\n:-moz-ui-invalid:not(#\\#):not(#\\#) {\n box-shadow: none;\n}\n:not(#\\#):not(#\\#)::-webkit-file-upload-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\nbutton:not(#\\#):not(#\\#),\n input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]):not(#\\#):not(#\\#),\n :not(#\\#):not(#\\#)::file-selector-button {\n -webkit-appearance: button;\n -moz-appearance: button;\n appearance: button;\n}\n:not(#\\#):not(#\\#)::-webkit-inner-spin-button,\n :not(#\\#):not(#\\#)::-webkit-outer-spin-button {\n height: auto;\n}\n[hidden]:where(:not([hidden=\"until-found\"])):not(#\\#):not(#\\#):not(#\\#) {\n display: none !important;\n}\n.pointer-events-none:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n pointer-events: none;\n}\n.invisible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: hidden;\n}\n.visible:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n visibility: visible;\n}\n.sr-only:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n.absolute:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: absolute;\n}\n.fixed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: fixed;\n}\n.relative:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n position: relative;\n}\n.-inset-px:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: -1px;\n right: -1px;\n bottom: -1px;\n left: -1px;\n}\n.inset-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n top: calc(var(--spacing) * 0);\n right: calc(var(--spacing) * 0);\n bottom: calc(var(--spacing) * 0);\n left: calc(var(--spacing) * 0);\n}\n.bottom-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n bottom: calc(var(--spacing) * 0);\n}\n.left-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n left: calc(var(--spacing) * 0);\n}\n.z-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n z-index: 10;\n}\n.container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: 100%;\n}\n@media (min-width: 40rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 40rem;\n }\n}\n@media (min-width: 48rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 48rem;\n }\n}\n@media (min-width: 64rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 64rem;\n }\n}\n@media (min-width: 80rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80rem;\n }\n}\n@media (min-width: 96rem) {\n .container:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 96rem;\n }\n}\n.mx-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 4);\n margin-right: calc(var(--spacing) * 4);\n}\n.mx-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-left: calc(var(--spacing) * 8);\n margin-right: calc(var(--spacing) * 8);\n}\n.my-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.mt-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 1);\n}\n.mt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 4);\n}\n.mt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 5);\n}\n.mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n}\n.block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n}\n.contents:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: contents;\n}\n.flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.grid:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: grid;\n}\n.hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: none;\n}\n.inline-block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: inline-block;\n}\n.inline-flex:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n}\n.table:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: table;\n}\n.h-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 4);\n}\n.h-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 5);\n}\n.h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 6);\n}\n.h-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 7);\n}\n.h-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n height: calc(var(--spacing) * 8);\n}\n.min-h-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: calc(var(--spacing) * 6);\n}\n.min-h-screen:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-height: 100vh;\n}\n.w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 4);\n}\n.w-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 5);\n}\n.w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 6);\n}\n.w-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n width: calc(var(--spacing) * 8);\n}\n.max-w-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 100%;\n}\n.min-w-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 4);\n}\n.min-w-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n min-width: calc(var(--spacing) * 6);\n}\n.flex-shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.shrink:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-negative: 1;\n flex-shrink: 1;\n}\n.flex-grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.grow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.border-collapse:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-collapse: collapse;\n}\n.transform:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transform: ;\n transform: ;\n -webkit-transform: ;\n -webkit-transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n transform: ;\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n}\n.cursor-not-allowed:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: not-allowed;\n}\n.cursor-pointer:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n cursor: pointer;\n}\n.resize:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n resize: both;\n}\n.grid-cols-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.flex-col:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.flex-row:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.flex-nowrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n.flex-wrap:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.items-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.items-end:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n.justify-center:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.gap-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 1);\n}\n.gap-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 2);\n}\n.gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n}\n.gap-9:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 9);\n}\n.gap-y-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n row-gap: calc(var(--spacing) * 6);\n}\n.overflow-hidden:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow: hidden;\n}\n.overflow-y-auto:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n overflow-y: auto;\n}\n.rounded-full:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: calc(infinity * 1px);\n}\n.rounded-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-lg);\n}\n.rounded-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-radius: var(--radius-sm);\n}\n.border:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 1px;\n}\n.border-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-style: var(--tw-border-style);\n border-width: 2px;\n}\n.border-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-blue-500);\n}\n.border-gray-300:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-300);\n}\n.border-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-gray-500);\n}\n.border-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-green-500);\n}\n.border-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-orange-500);\n}\n.border-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: var(--color-red-500);\n}\n.border-transparent:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n border-color: transparent;\n}\n.bg-blue-600:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-blue-600);\n}\n.bg-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n background-color: var(--color-white);\n}\n.p-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 1);\n}\n.p-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 3);\n}\n.px-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 2);\n padding-right: calc(var(--spacing) * 2);\n}\n.px-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n}\n.py-1:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 1);\n padding-bottom: calc(var(--spacing) * 1);\n}\n.pt-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 0);\n}\n.pt-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 4);\n}\n.pt-5:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-top: calc(var(--spacing) * 5);\n}\n.pr-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-right: calc(var(--spacing) * 4);\n}\n.pb-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 0);\n}\n.pb-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 4);\n}\n.pb-10:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-bottom: calc(var(--spacing) * 10);\n}\n.pl-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding-left: calc(var(--spacing) * 4);\n}\n.text-left:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-align: left;\n}\n.align-bottom:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: bottom;\n}\n.align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n}\n.text-base:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n}\n.text-lg:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n}\n.text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n}\n.text-xs:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n}\n.leading-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 6);\n line-height: calc(var(--spacing) * 6);\n}\n.leading-7:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-leading: calc(var(--spacing) * 7);\n line-height: calc(var(--spacing) * 7);\n}\n.font-bold:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n}\n.font-medium:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n}\n.text-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-blue-500);\n}\n.text-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-500);\n}\n.text-gray-900:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-gray-900);\n}\n.text-green-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-green-500);\n}\n.text-orange-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-orange-500);\n}\n.text-red-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-red-500);\n}\n.text-white:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n color: var(--color-white);\n}\n.underline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n text-decoration-line: underline;\n}\n.shadow:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.shadow-xl:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-2:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.ring-blue-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-500);\n}\n.ring-gray-500:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-gray-500);\n}\n.outline:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n}\n.invert:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-invert: invert(100%);\n -webkit-filter: invert(100%) ;\n filter: invert(100%) ;\n -webkit-filter: invert(100%) ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: invert(100%) ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.filter:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-filter: ;\n filter: ;\n -webkit-filter: ;\n -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n filter: ;\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n}\n.transition-all:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-transition-property: all;\n transition-property: all;\n -webkit-transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n -webkit-transition-duration: var(--tw-duration, var(--default-transition-duration));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n}\n.focus\\:ring-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n}\n.focus\\:ring-blue-600:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-color: var(--color-blue-600);\n}\n.focus\\:ring-offset-2:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n}\n.focus\\:outline-none:focus:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n --tw-outline-style: none;\n outline-style: none;\n}\n@media (min-width: 40rem) {\n .sm\\:my-8:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 8);\n margin-bottom: calc(var(--spacing) * 8);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 3);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:mt-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n margin-top: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:block:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n display: block;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:grid-cols-3:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 40rem) {\n .sm\\:gap-x-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n -webkit-column-gap: calc(var(--spacing) * 4);\n -moz-column-gap: calc(var(--spacing) * 4);\n column-gap: calc(var(--spacing) * 4);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-0:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 0);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:p-6:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n padding: calc(var(--spacing) * 6);\n }\n}\n@media (min-width: 40rem) {\n .sm\\:align-middle:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n vertical-align: middle;\n }\n}\n@media (min-width: 40rem) {\n .sm\\:text-sm:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n}\n@media (min-width: 64rem) {\n .lg\\:max-w-\\[80\\%\\]:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n max-width: 80%;\n }\n}\n@media (min-width: 64rem) {\n .lg\\:gap-4:not(#\\#):not(#\\#):not(#\\#):not(#\\#) {\n gap: calc(var(--spacing) * 4);\n }\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 rgba(0,0,0,0);\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n ::-ms-backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n *, ::before, ::after, ::backdrop {\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 rgba(0,0,0,0);\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n}\n"],"mappings":";AAAA,SAAS,YAAY,eAAe;;;ACApC,SAAS,qBAAqB;AASvB,IAAM,gBAAgB,cAAiC,CAAC,OAAO,KAAK;;;ADHpE,SAAS,kBACd,OAC+B;AAC/B,QAAM,OAAO,WAAW,aAAa;AAGrC,QAAM,YAAY;AAAA,IAChB,MAAO,SAAS,OAAO,CAAC,IAAI,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAAA,IACjE,CAAC,KAAK;AAAA,EACR;AAEA,SAAO,CAAC,MAAM,SAAS;AACzB;;;AEbO,SAAS,eAAe,YAAwC;AACrE,QAAM,CAAC,MAAM,eAAe,IAAI,kBAAkB,UAAU;AAC5D,SACE,WAAW,SAAS,KAAK,gBAAgB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,MAAM;AAE7E;;;ACLO,SAAS,YAAY,SAAqC;AAC/D,QAAM,CAAC,MAAM,eAAe,IAAI,kBAAkB,OAAO;AACzD,SAAO,gBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,MAAM;AACxD;;;ACWW;AATJ,IAAM,UAAiC,CAAC;AAAA,EAC7C,UAAU,CAAC;AAAA,EACX,cAAc,CAAC;AAAA,EACf;AACF,MAAM;AACJ,QAAM,QAAQ,YAAY,OAAO;AACjC,QAAM,QAAQ,eAAe,WAAW;AAExC,MAAI,SAAS,OAAO;AAClB,WAAO,gCAAG,UAAS;AAAA,EACrB;AAEA,SAAO;AACT;;;AClBO,SAAS,cAAc,aAAyC;AACrE,QAAM,CAAC,MAAM,eAAe,IAAI,kBAAkB,WAAW;AAC7D,SAAO,gBAAgB,SAAS,KAAK,gBAAgB,MAAM,IAAI;AACjE;;;ACHO,SAAS,WAAW,SAAqC;AAC9D,QAAM,CAAC,MAAM,eAAe,IAAI,kBAAkB,OAAO;AACzD,SAAO,gBAAgB,KAAK,IAAI;AAClC;;;ACgBW,qBAAAA,WAAA,OAAAC,YAAA;AATJ,SAAS,OAAO;AAAA,EACrB,UAAU,CAAC;AAAA,EACX,cAAc,CAAC;AAAA,EACf;AACF,GAA0C;AACxC,QAAM,QAAQ,WAAW,OAAO;AAChC,QAAM,QAAQ,cAAc,WAAW;AAEvC,MAAI,SAAS,OAAO;AAClB,WAAO,gBAAAA,KAAAD,WAAA,EAAG,UAAS;AAAA,EACrB;AAEA,SAAO;AACT;;;AC3BA;AAAA,EAEE,aAAAE;AAAA,EACA;AAAA,EACA,WAAAC;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACRP,SAAS,iBAAAC,sBAAqB;AAIvB,IAAM,iBAAiBA,eAAyC,IAAI;;;ACqBpE,SAAS,cACd,cACyB;AACzB,SAAO;AAAA,IACL,aAAa,UAAU,aAAa,aAAa,UAAU,iBACvD,OACA,aAAa,UAAU,cACrB,aAAa,UAAU,kBACvB,QACA;AAAA,IACN,aAAa,aAAa,SAAS;AAAA,EACrC;AACF;;;ACDO,SAAS,eACd,eACA,SACyB;AACzB,MAAI,cAAc,QAAQ,SAAS,OAAO,KAAK,MAAM;AACnD,WAAO,CAAC,QAAW,KAAK;AAAA,EAC1B;AACA,QAAM,eAAe,cAAc,QAAQ,SAAS,OAAO;AAC3D,MAAI,gBAAgB,MAAM;AACxB,WAAO,cAAc,YAAY;AAAA,EACnC;AACA,SAAO,CAAC,QAAW,KAAK;AAC1B;AAEO,IAAM,uBAAsC;AAAA,EACjD,OAAO;AAAA,EACP,SAAS;AAAA,IACP,UAAU,CAAC;AAAA,EACb;AACF;AAKO,SAAS,gBACd,OACA,QACe;AACf,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK,QAAQ;AACX,UAAI,CAAC,OAAO,YAAY,OAAO,SAAS,WAAW,GAAG;AACpD,eAAO;AAAA,MACT;AAEA,YAAM,WAA0C,CAAC;AACjD,iBAAW,WAAW,OAAO,UAAU;AAErC,cAAM,eAAe;AAAA,UACnB,OACE,QAAQ,iBAAiB,OACpB,YACD,QAAQ,iBAAiB,QACtB,aACA;AAAA,UACT,aAAa;AAAA,QACf;AACA,iBAAS,QAAQ,IAAI,IAAI;AAAA,MAC3B;AAEA,aAAO;AAAA,QACL,OAAO;AAAA,QACP,SAAS,EAAE,SAAS;AAAA,MACtB;AAAA,IACF;AAAA,IAEA,KAAK,WAAW;AACd,aAAO;AAAA,IACT;AAAA,IAEA,KAAK,WAAW;AACd,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,WAAW,EAAE,GAAG,MAAM,QAAQ,SAAS;AAC7C,aAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,SAAS;AACtC,cAAM,QAAQ,OAAO,SAAS,IAAI,KAAK;AACvC,cAAM,iBAAiB,SAAS,IAAI;AAEpC,YAAI,eAAe,aAAa,mBAAmB,MAAM;AACvD,cAAI,UAAU,MAAM;AAClB,qBAAS,IAAI,IAAI,EAAE,GAAG,gBAAgB,OAAO,eAAe;AAAA,UAC9D,WAAW,UAAU,OAAO;AAC1B,qBAAS,IAAI,IAAI,EAAE,GAAG,gBAAgB,OAAO,gBAAgB;AAAA,UAC/D,OAAO;AACL,qBAAS,IAAI,IAAI,EAAE,GAAG,gBAAgB,OAAO,mBAAmB;AAAA,UAClE;AAAA,QACF,OAAO;AACL,cAAI,UAAU,MAAM;AAClB,qBAAS,IAAI,IAAI,EAAE,GAAG,gBAAgB,OAAO,UAAU;AAAA,UACzD,WAAW,UAAU,OAAO;AAC1B,qBAAS,IAAI,IAAI,EAAE,GAAG,gBAAgB,OAAO,WAAW;AAAA,UAC1D,OAAO;AACL,qBAAS,IAAI,IAAI,EAAE,GAAG,gBAAgB,OAAO,cAAc;AAAA,UAC7D;AAAA,QACF;AAAA,MACF,CAAC;AAED,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,EAAE,SAAS;AAAA,MACtB;AAAA,IACF;AAAA,IAEA,KAAK,OAAO;AACV,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI;AAClD,UAAI,WAAW,MAAM;AACnB,eAAO;AAAA,MACT;AAEA,YAAM,EAAE,MAAM,IAAI;AAClB,UAAI;AAEJ,UAAI,QAAQ,aAAa,mBAAmB,MAAM;AAChD,YAAI,UAAU,MAAM;AAClB,qBAAW;AAAA,QACb,WAAW,UAAU,OAAO;AAC1B,qBAAW;AAAA,QACb,OAAO;AACL,qBAAW;AAAA,QACb;AAAA,MACF,OAAO;AACL,YAAI,UAAU,MAAM;AAClB,qBAAW;AAAA,QACb,WAAW,UAAU,OAAO;AAC1B,qBAAW;AAAA,QACb,OAAO;AACL,qBAAW;AAAA,QACb;AAAA,MACF;AAEA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,UAAU;AAAA,YACR,GAAG,MAAM,QAAQ;AAAA,YACjB,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,SAAS;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,UAAU;AACb,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI;AAClD,UAAI,WAAW,MAAM;AACnB,eAAO;AAAA,MACT;AAEA,YAAM,WACJ,QAAQ,aAAa,mBAAmB,OACpC,iBACA;AAEN,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,UAAU;AAAA,YACR,GAAG,MAAM,QAAQ;AAAA,YACjB,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,SAAS;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,UAAU;AACb,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI;AAClD,UAAI,WAAW,MAAM;AACnB,eAAO;AAAA,MACT;AAEA,YAAM,WACJ,QAAQ,aAAa,mBAAmB,OACpC,iBACA;AAEN,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,UAAU;AAAA,YACR,GAAG,MAAM,QAAQ;AAAA,YACjB,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,SAAS;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,WAAW;AACd,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI;AAClD,UAAI,WAAW,MAAM;AACnB,eAAO;AAAA,MACT;AAEA,YAAM,WACJ,QAAQ,aAAa,mBAAmB,OACpC,kBACA;AAEN,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,UAAU;AAAA,YACR,GAAG,MAAM,QAAQ;AAAA,YACjB,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,SAAS;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,SAAS;AACZ,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI;AAClD,UAAI,WAAW,MAAM;AACnB,eAAO;AAAA,MACT;AAEA,YAAM,WACJ,QAAQ,aAAa,mBAAmB,OACpC,qBACA;AAEN,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,UAAU;AAAA,YACR,GAAG,MAAM,QAAQ;AAAA,YACjB,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,SAAS;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA,KAAK,cAAc;AACjB,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS,OAAO,IAAI;AAClD,UAAI,WAAW,MAAM;AACnB,eAAO;AAAA,MACT;AAEA,YAAM,EAAE,MAAM,IAAI;AAClB,YAAM,WACJ,UAAU,OACN,YACA,UAAU,QACR,aACA;AAER,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,UAAU;AAAA,YACR,GAAG,MAAM,QAAQ;AAAA,YACjB,CAAC,OAAO,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,SAAS;AAAA,UAC/C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IAEA;AACE,aAAO;AAAA,EACX;AACF;;;ACpTA,SAAS,iBAAiB;;;ACGnB,IAAM,eAAN,MAAmB;AAAA,EAKxB,YACE,UACAC,cACA,aACA;AACA,SAAK,cAAc;AACnB,SAAK,WAAW;AAChB,SAAK,cAAcA;AAAA,EACrB;AAAA,EAEO,OAAO,SAAuB;AACnC,SAAK,SAAS,EAAE,MAAM,UAAU,MAAM,QAAQ,CAAC;AAAA,EACjD;AAAA,EAEO,OAAO,SAAuB;AACnC,SAAK,SAAS,EAAE,MAAM,UAAU,MAAM,QAAQ,CAAC;AAAA,EACjD;AAAA,EAEO,MAAM,SAAuB;AAClC,SAAK,SAAS,EAAE,MAAM,SAAS,MAAM,QAAQ,CAAC;AAAA,EAChD;AAAA,EAEO,QAAQ,SAAuB;AACpC,SAAK,SAAS,EAAE,MAAM,WAAW,MAAM,QAAQ,CAAC;AAAA,EAClD;AAAA,EAEO,OAAO,UAAiD;AAC7D,SAAK,SAAS,EAAE,MAAM,WAAW,SAAS,CAAC;AAAA,EAC7C;AAAA,EAEO,eAAkD;AACvD,WAAO,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,EAAE,IAAI,CAAC,CAAC;AAAA,EACvE;AACF;;;ADpCe,SAAR,mBACL,iBACA,UACAC,cACA,UACM;AACN,YAAU,MAAM;AACd,QAAI,CAAC,iBAAiB;AAEpB,UAAI,OAAO,WAAW,MAAM;AAC1B,eAAO,UAAU;AAAA,MACnB;AACA,aAAO,MAAM;AACX,YAAI,OAAO,WAAW,MAAM;AAC1B,iBAAO,UAAU;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AACA,WAAO,UAAU,IAAI,aAAa,UAAUA,cAAa,QAAQ;AACjE,WAAO,MAAM;AACX,UAAI,OAAO,WAAW,MAAM;AAC1B,eAAO,UAAU;AAAA,MACnB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,UAAU,UAAU,iBAAiBA,YAAW,CAAC;AACvD;;;AE9BA,SAAS,aAAAC,YAAW,WAAAC,gBAAe;AAI5B,IAAM,MAAM;AAEJ,SAAR,WACL,SACA,UACA,eACM;AACN,QAAM,YAAYC,SAAQ,MAAM;AAC9B,UAAM,eAAgD,CAAC;AACvD,QAAI,cAAc,UAAU,SAAS;AACnC,iBAAW,WAAW,UAAU;AAC9B,cAAM,CAAC,KAAK,IAAI,eAAe,eAAe,QAAQ,IAAI;AAC1D,YAAI,SAAS,MAAM;AACjB,uBAAa,QAAQ,IAAI,IAAI;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC,UAAU,aAAa,CAAC;AAE5B,QAAM,WACJ,OAAO,KAAK,SAAS,EAAE,WAAW,KAAK,WAAW,OAC9C,OACA,KAAK,UAAU,EAAE,UAAU,CAAC;AAElC,EAAAC,WAAU,MAAM;AACd,QAAI;AACF,UAAI,WAAW,QAAQ,cAAc,UAAU,SAAS;AACtD,gBAAQ,QAAQ,KAAK,QAAQ;AAAA,MAC/B;AAAA,IACF,SAAS,GAAG;AAAA,IAEZ;AAAA,EACF,GAAG,CAAC,eAAe,SAAS,QAAQ,CAAC;AACvC;;;ACtCA,SAAS,mBAAmB;;;ACSrB,SAAS,iBAAiB,KAAqB;AACpD,MAAI,OAAO;AACX,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,UAAM,OAAO,IAAI,WAAW,CAAC;AAC7B,YAAS,QAAQ,KAAK,OAAO,OAAQ;AAAA,EACvC;AAEA,QAAM,WAAW,SAAS;AAC1B,SAAO,WAAW;AACpB;AAUO,SAAS,YACd,aACA,iBACA,YACS;AACT,MAAI,cAAc,EAAG,QAAO;AAC5B,MAAI,cAAc,EAAG,QAAO;AAE5B,QAAM,cAAc,GAAG,WAAW,IAAI,eAAe;AACrD,QAAM,OAAO,iBAAiB,WAAW;AACzC,SAAO,OAAO;AAChB;;;AC5Be,SAAR,YACL,SACA,QACA,iBACc;AACd,QAAM,SAAS,OAAO,IAAI,CAAC,UAAU,eAAe,OAAO,OAAO,CAAC;AAGnE,aAAW,CAAC,cAAc,aAAa,KAAK,QAAQ;AAClD,QAAI,gBAAgB,QAAQ,eAAe;AACzC,aAAO;AAAA,IACT;AAAA,EACF;AAGA,aAAW,CAAC,YAAY,KAAK,QAAQ;AACnC,QAAI,gBAAgB,MAAM;AACxB,aAAO;AAAA,IACT;AAAA,EACF;AAGA,MAAI,mBAAmB,MAAM;AAE3B,eAAW,SAAS,QAAQ;AAC1B,UAAI,MAAM,UAAU,WAAW,MAAM,QAAQ,SAAS,OAAO,KAAK,MAAM;AACtE,cAAM,eAAe,MAAM,QAAQ,SAAS,OAAO;AACnD,cAAM,YAAY,aAAa,aAAa;AAE5C,YAAI,aAAa,MAAM;AACrB,iBAAO,YAAY,SAAS,iBAAiB,SAAS;AAAA,QACxD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,SAAO;AACT;;;AF3Ce,SAAR,gBACL,gBACA,eACA,iBAC0C;AAC1C,SAAO;AAAA,IACL,CAAC,MACC,YAAY,GAAG,CAAC,gBAAgB,aAAa,GAAG,eAAe;AAAA,IACjE,CAAC,gBAAgB,eAAe,eAAe;AAAA,EACjD;AACF;;;APgLM,gBAAAC,YAAA;AA9KN,IAAM,iBAAiB;AAoBhB,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,UAAU,OAAO;AAAA,EACjB;AACF,GAAoC;AAElC,QAAM,cAAc,OAAO,QAAQ;AAGnC,QAAM,WAAWC,SAAQ,MAAM;AAC7B,QAAI,mBAAmB,MAAM;AAC3B,aAAO;AAAA,IACT;AAGA,QAAI,WAAW,MAAM;AACnB,UAAI;AACF,cAAM,aAAa,QAAQ,QAAQ,cAAc;AACjD,YAAI,cAAc,MAAM;AACtB,iBAAO;AAAA,QACT;AAAA,MACF,SAAS,GAAG;AAAA,MAEZ;AAAA,IACF;AAGA,UAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE,CAAC;AAG1E,QAAI,WAAW,MAAM;AACnB,UAAI;AACF,gBAAQ,QAAQ,gBAAgB,KAAK;AAAA,MACvC,SAAS,GAAG;AAAA,MAEZ;AAAA,IACF;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,iBAAiB,OAAO,CAAC;AAC7B,QAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAC1C;AAAA,IACA;AAAA,EACF;AACA,QAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,IACxC;AAAA,IACA;AAAA,EACF;AAEA,kBAAgB,MAAM;AAEpB,qBAAiB,EAAE,MAAM,QAAQ,SAAS,CAAC;AAC3C,WAAO,MAAM;AACX,uBAAiB,EAAE,MAAM,UAAU,CAAC;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,kBAAgB,MAAM;AACpB,QAAI,IAAyC,CAAC;AAC9C,QAAI,WAAW,MAAM;AACnB,UAAI;AACF,cAAM,eAAe,QAAQ,QAAQ,GAAG;AACxC,YAAI,gBAAgB,MAAM;AACxB,gBAAM,KAAK,KAAK,MAAM,YAAY;AAClC,cAAI,GAAG;AAAA,QACT;AAAA,MACF,SAAS,GAAG;AAEV,gBAAQ,MAAM,yBAAyB,CAAC;AAAA,MAC1C;AAAA,IACF;AAEA,sBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW,YAAY,WAAW,CAAC,GAChC,OAAO,CAAC,MAAM,EAAE,eAAe,IAAI,EACnC,IAAI,CAAC,OAAO;AAAA,QACX,MAAM,EAAE;AAAA,QACR,aAAa,EAAE;AAAA,QACf,cAAc,IAAI,EAAE,IAAI,KAAK;AAAA,MAC/B,EAAE;AAAA,IACN,CAAC;AAED,WAAO,MAAM;AACX,wBAAkB,EAAE,MAAM,UAAU,CAAC;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAGZ,EAAAC,WAAU,MAAM;AACd,QAAI,cAAc,UAAU,SAAS;AACnC;AAAA,IACF;AAGA,WAAO,QAAQ,cAAc,QAAQ,QAAQ,EAAE;AAAA,MAC7C,CAAC,CAAC,MAAM,OAAO,MAAM;AACnB,YACE,QAAQ,UAAU,kBAClB,QAAQ,UAAU,mBAClB,QAAQ,UAAU,oBAClB;AACA,gBAAM,cACJ,QAAQ,UAAU,iBACd,OACA,QAAQ,UAAU,kBAChB,QACA;AAER,gBAAM,kBAAkB,QAAQ,aAAa;AAC7C,cAAI,mBAAmB,QAAQ,QAAQ,eAAe,MAAM;AAC1D,4BAAgB,QAAQ,YAAY,MAAM,WAAW,EAClD,KAAK,CAAC,WAAW;AAChB,+BAAiB,EAAE,MAAM,cAAc,MAAM,OAAO,OAAO,CAAC;AAAA,YAC9D,CAAC,EACA,MAAM,MAAM;AACX,+BAAiB;AAAA,gBACf,MAAM;AAAA,gBACN;AAAA,gBACA,OAAO;AAAA,cACT,CAAC;AAAA,YACH,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,aAAa,CAAC;AAElB,aAAW,SAAS,YAAY,SAAS,cAAc;AAEvD,QAAM,eAAe,gBAAgB,gBAAgB,eAAe,QAAQ;AAC5E;AAAA,IACE,CAAC;AAAA,IACD,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACF;AAEA,QAAM,eAAeD;AAAA,IACnB,OAAO;AAAA,MACL,eAAe;AAAA,MACf,cAAc;AAAA,MACd,qBAAqB,YAAY;AAAA,MACjC;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,CAAC,gBAAgB,eAAe,YAAY;AAAA,EAC9C;AAEA,SACE,gBAAAD,KAAC,eAAe,UAAf,EAAwB,OAAO,cAC9B,0BAAAA,KAAC,cAAc,UAAd,EAAuB,OAAO,cAC5B,UACH,GACF;AAEJ;;;AUrMA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAyB,eAAAG,cAAa,cAAAC,aAAY,gBAAgB;AAClE,OAAO,cAAc;;;ACRrB;;;ADwEU,SA0FI,YAAAC,WAzFO,OAAAC,MADX;AAxDV,SAAS,cAAc,SAA2B;AAChD,SAAO,QAAQ,OAAO,OAAO,EAAE,KAAK,GAAG;AACzC;AAEA,SAAS,cAAc;AAAA,EACrB;AACF,GAE6B;AAC3B,QAAM,UAAUC,YAAW,cAAc;AACzC,QAAM,wBAAwBC;AAAA,IAC5B,CAAC,UAAsC;AACrC,UAAI,SAAS,iBAAiB,MAAM;AAClC,gBAAQ,OAAO;AAAA,UACb,KAAK,QAAQ;AACX,oBAAQ,cAAc,EAAE,MAAM,UAAU,MAAM,QAAQ,KAAK,CAAC;AAC5D;AAAA,UACF;AAAA,UACA,KAAK,SAAS;AACZ,oBAAQ,cAAc,EAAE,MAAM,WAAW,MAAM,QAAQ,KAAK,CAAC;AAC7D;AAAA,UACF;AAAA,UACA,KAAK,SAAS;AACZ,oBAAQ,cAAc,EAAE,MAAM,SAAS,MAAM,QAAQ,KAAK,CAAC;AAC3D;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,QAAQ,MAAM,OAAO;AAAA,EACxB;AAEA,MAAI,WAAW,MAAM;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,gBAAgB,MAAMC,cAAa,cAAc,IAAI;AAE7D,QAAM,mBACJ,eAAe,eAAe,QAAQ,IAAI,EAAE,CAAC,KAAK,SAClD,SAAS;AAEX,QAAM,oBACJ,eAAe,gBAAgB,QAAQ,IAAI,EAAE,CAAC,KAAK,SACnD,SAAS;AAEX,QAAM,gBAAgBA,aAAY,QAAQ,IAAI;AAE9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,QAAQ;AAAA,MAClB,UAAU;AAAA,MACV,OAAO;AAAA,MAEP;AAAA,6BAAC,mBACC;AAAA,+BAAC,QAAG,WAAU,wFACZ;AAAA,iCAAC,UAAK,WAAU,eAAc;AAAA;AAAA,cACnB,gBAAAH,KAAC,UAAM,kBAAQ,MAAK;AAAA,eAC/B;AAAA,YACC,QAAQ,eAAe,OACtB,qBAAC,SAAI,WAAU,qIACb;AAAA,8BAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,eAAY;AAAA,kBACZ,WAAU;AAAA,kBACV,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,OAAM;AAAA,kBAEN,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACC,UAAS;AAAA,sBACT,GAAE;AAAA,sBACF,UAAS;AAAA;AAAA,kBACX;AAAA;AAAA,cACF;AAAA,cACA,gBAAAA,KAAC,SAAI,0BAAY;AAAA,eACnB,IACE;AAAA,YACH,kBAAkB,OACjB,qBAAC,SAAI,WAAU,mIACb;AAAA,8BAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,eAAY;AAAA,kBACZ,WAAU;AAAA,kBACV,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,OAAM;AAAA,kBAEN,0BAAAA;AAAA,oBAAC;AAAA;AAAA,sBACC,UAAS;AAAA,sBACT,GAAE;AAAA,sBACF,UAAS;AAAA;AAAA,kBACX;AAAA;AAAA,cACF;AAAA,cACA,gBAAAA,KAAC,SAAK,0BAAgB,YAAY,YAAW;AAAA,eAC/C,IACE;AAAA,aACN;AAAA,UACC,QAAQ,eAAe,OAAO,OAC7B,gBAAAA,KAAC,OAAE,WAAU,mCACV,kBAAQ,aACX;AAAA,WAEJ;AAAA,QACA,gBAAAA,KAAC,SAAI,WAAU,2DACZ;AAAA,UACC;AAAA,YACE,IAAI;AAAA,YACJ,OAAO,WAAW,QAAQ,IAAI;AAAA,YAC9B,aAAa;AAAA,UACf;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,YACb,WAAW,QAAQ,cAAc,UAAU,QAAQ;AAAA,YACnD,cACE,oBAAoB,SAClB,gBAAAA,KAAC,SAAI,WAAU,mIACb,0BAAAA,KAAC,UAAK,qBAAO,GACf,IAEA,gBAAAA,KAAC,SAAI,WAAU,+HACb,0BAAAA,KAAC,UAAK,sBAAQ,GAChB;AAAA,UAEN;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO,UAAU,QAAQ,IAAI;AAAA,YAC7B,aAAa;AAAA,UACf;AAAA,QACF,EAAE,IAAI,CAAC,WACL,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,CAAC,EAAE,SAAS,SAAS,MAC9B;AAAA,cACE,UAAU,uBAAuB;AAAA,cACjC,WACI,wDACA;AAAA,cACJ;AAAA,YACF;AAAA,YAEF,UAAU,OAAO;AAAA,YAEjB,OAAO,OAAO;AAAA,YAEb,WAAC,EAAE,SAAS,SAAS,MACpB,qBAAAD,WAAA,EACE;AAAA,mCAAC,SAAI,WAAU,sBACb;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,IAAG;AAAA,oBACH,WAAU;AAAA,oBAEV;AAAA,sCAAAC,KAAC,UAAK,WAAU,iDACb,iBAAO,OACV;AAAA,sBACC,OAAO,gBAAgB,OAAO,OAAO,eAAe;AAAA,sBACrD,gBAAAA;AAAA,wBAAC;AAAA;AAAA,0BACC,eAAY;AAAA,0BACZ,WAAW;AAAA,4BACT,CAAC,UAAU,cAAc;AAAA,4BACzB;AAAA,0BACF;AAAA,0BACA,MAAK;AAAA,0BACL,SAAQ;AAAA,0BACR,OAAM;AAAA,0BAEN,0BAAAA;AAAA,4BAAC;AAAA;AAAA,8BACC,UAAS;AAAA,8BACT,GAAE;AAAA,8BACF,UAAS;AAAA;AAAA,0BACX;AAAA;AAAA,sBACF;AAAA;AAAA;AAAA,gBACF;AAAA,gBACA,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,IAAG;AAAA,oBACH,WAAU;AAAA,oBAET,iBAAO;AAAA;AAAA,gBACV;AAAA,iBACF;AAAA,cACA,gBAAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,eAAY;AAAA,kBACZ,WAAW;AAAA,oBACT;AAAA,oBACA,UACI,WACE,oBACA,oBACF;AAAA,oBACJ;AAAA,kBACF;AAAA;AAAA,cACF;AAAA,eACF;AAAA;AAAA,UAlDG,OAAO;AAAA,QAoDd,CACD,GACH;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AACF,GAGG;AACD,SAAO,SAAS,aAAa,UAAU,IAAI;AAC7C;AAOO,SAAS,eAAe;AAAA,EAC7B,cAAc;AAAA,EACd,SAAS;AACX,GAG6B;AAC3B,QAAM,CAAC,MAAM,WAAW,IAAI,SAAgC,IAAI;AAEhE,QAAM,UAAU,CAAC,SAAgC;AAC/C,QAAI,QAAQ,QAAQ,QAAQ,MAAM;AAChC;AAAA,IACF;AACA,UAAM,aAAa,MAAM,aAAa,EAAE,MAAM,OAAO,CAAC;AACtD,UAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,UAAM,YAAY,SAAS,cAAc,KAAK;AAC9C,UAAM,cAAc;AACpB,eAAW,YAAY,KAAK;AAC5B,eAAW,YAAY,SAAS;AAChC,gBAAY,SAAS;AAAA,EACvB;AAEA,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MAEC,kBAAQ,OACP,gBAAAA,KAAC,iBAAc,MACb,0BAAAA,KAAC,0BAAuB,aAA0B,GACpD,IACE;AAAA;AAAA,EACN;AAEJ;AAIO,SAAS,uBAAuB;AAAA,EACrC,cAAc;AAAA,EACd,SAAS;AACX,GAG6B;AAC3B,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,WAAW;AAC5C,QAAM,UAAUC,YAAW,cAAc;AAEzC,MAAI,WAAW,MAAM;AACnB,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAGA,QAAM,EAAE,oBAAoB,IAAI;AAEhC,MAAI,oBAAoB,WAAW,GAAG;AACpC,WAAO;AAAA,EACT;AAEA,SACE,qBAAC,SAAI,WAAU,YACb;AAAA,oBAAAD,KAAC,SAAI,WAAU,sCACb,0BAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MAAM,QAAQ,IAAI;AAAA,QAC3B,OAAM;AAAA,QACN,MAAK;AAAA,QAEL,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,OAAM;AAAA,YAEN,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,UAAS;AAAA,gBACT,GAAE;AAAA,gBACF,UAAS;AAAA;AAAA,YACX;AAAA;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,IACC,CAAC,OAAO,OACP,gBAAAA,KAAC,SAAI,WAAU,sCACb,0BAAAA,KAAC,SAAI,WAAU,4FACb,0BAAAA,KAAC,SAAI,WAAU,+LACb,0BAAAA,KAAC,SACC,+BAAC,SAAI,WAAU,gBACb;AAAA,sBAAAA,KAAC,QAAG,WAAU,8DACZ,0BAAAA,KAAC,SAAI,WAAU,oDAAmD,oCAElE,GACF;AAAA,MACA,gBAAAA,KAAC,OAAE,WAAU,yBAAwB,kHAGrC;AAAA,MACA,gBAAAA,KAAC,SAAI,WAAU,QACb,+BAAC,cAAS,WAAU,uBAClB;AAAA,wBAAAA,KAAC,YAAO,WAAU,WAAU,2BAAa;AAAA,QACxC,oBAAoB,IAAI,CAAC,YACxB,gBAAAA,KAAC,iBAAc,WAAuB,QAAQ,IAAM,CACrD;AAAA,SACH,GACF;AAAA,MACA,gBAAAA,KAAC,SAAI,WAAU,iDACb,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,SAAS,MAAM,QAAQ,KAAK;AAAA,UAC5B,MAAK;AAAA,UACN;AAAA;AAAA,MAED,GACF;AAAA,OACF,GACF,GACF,GACF,GACF;AAAA,KAEJ;AAEJ;","names":["Fragment","jsx","useEffect","useMemo","createContext","testFeature","testFeature","useEffect","useMemo","useMemo","useEffect","jsx","useMemo","useEffect","useCallback","useContext","Fragment","jsx","useContext","useCallback","testFeature"]}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 017bdef..c25e106 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,38 +9,40 @@
"version": "3.1.1",
"license": "ISC",
"dependencies": {
- "@headlessui/react": "^1.5.0",
+ "@headlessui/react": "^2.2.9",
"tslib": "^2.8.1"
},
"devDependencies": {
- "@arethetypeswrong/cli": "^0.15.0",
- "@biomejs/biome": "^1.9.4",
- "@tailwindcss/forms": "^0.5.0",
+ "@arethetypeswrong/cli": "^0.18.2",
+ "@biomejs/biome": "^2.2.6",
+ "@tailwindcss/forms": "^0.5.10",
+ "@tailwindcss/postcss": "^4.1.15",
"@testing-library/jest-dom": "^6.1.5",
- "@testing-library/react": "^14.1.2",
- "@types/react": "^18.3.12",
- "@types/react-dom": "^18.3.1",
+ "@testing-library/react": "^16.3.0",
+ "@types/react": "^19.2.2",
+ "@types/react-dom": "^19.2.2",
"@types/tailwindcss": "^3.0.10",
"@vitejs/plugin-react": "^5.0.4",
- "@vitest/coverage-v8": "^2.1.9",
- "@vitest/ui": "^2.1.8",
- "concurrently": "^7.1.0",
+ "@vitest/coverage-v8": "^3.2.4",
+ "@vitest/ui": "^3.2.4",
+ "concurrently": "^9.2.1",
"identity-obj-proxy": "^3.0.0",
- "jsdom": "^25.0.1",
+ "jsdom": "^27.0.1",
"postcss": "^8.4.12",
- "postcss-import": "^14.1.0",
- "postcss-nested": "^5.0.6",
- "postcss-preset-env": "^7.4.3",
+ "postcss-cli": "^11.0.1",
+ "postcss-import": "^16.1.1",
+ "postcss-nested": "^7.0.2",
+ "postcss-preset-env": "^10.4.0",
"postcss-reporter": "^7.0.5",
"postcss-url": "^10.1.3",
- "publint": "^0.2.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
+ "publint": "^0.3.15",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
"react-hooks": "^1.0.1",
- "tailwindcss": "^3.0.24",
+ "tailwindcss": "^4.1.15",
"tsup": "^8.3.5",
"typescript": "^5.6.3",
- "vitest": "^2.1.8"
+ "vitest": "^3.2.4"
},
"engines": {
"node": ">=18.0.0"
@@ -91,13 +93,13 @@
"dev": true
},
"node_modules/@arethetypeswrong/cli": {
- "version": "0.15.4",
- "resolved": "https://registry.npmjs.org/@arethetypeswrong/cli/-/cli-0.15.4.tgz",
- "integrity": "sha512-YDbImAi1MGkouT7f2yAECpUMFhhA1J0EaXzIqoC5GGtK0xDgauLtcsZezm8tNq7d3wOFXH7OnY+IORYcG212rw==",
+ "version": "0.18.2",
+ "resolved": "https://registry.npmjs.org/@arethetypeswrong/cli/-/cli-0.18.2.tgz",
+ "integrity": "sha512-PcFM20JNlevEDKBg4Re29Rtv2xvjvQZzg7ENnrWFSS0PHgdP2njibVFw+dRUhNkPgNfac9iUqO0ohAXqQL4hbw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@arethetypeswrong/core": "0.15.1",
+ "@arethetypeswrong/core": "0.18.2",
"chalk": "^4.1.2",
"cli-table3": "^0.6.3",
"commander": "^10.0.1",
@@ -109,31 +111,33 @@
"attw": "dist/index.js"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
}
},
"node_modules/@arethetypeswrong/core": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/@arethetypeswrong/core/-/core-0.15.1.tgz",
- "integrity": "sha512-FYp6GBAgsNz81BkfItRz8RLZO03w5+BaeiPma1uCfmxTnxbtuMrI/dbzGiOk8VghO108uFI0oJo0OkewdSHw7g==",
+ "version": "0.18.2",
+ "resolved": "https://registry.npmjs.org/@arethetypeswrong/core/-/core-0.18.2.tgz",
+ "integrity": "sha512-GiwTmBFOU1/+UVNqqCGzFJYfBXEytUkiI+iRZ6Qx7KmUVtLm00sYySkfe203C9QtPG11yOz1ZaMek8dT/xnlgg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@andrewbranch/untar.js": "^1.0.3",
+ "@loaderkit/resolve": "^1.0.2",
+ "cjs-module-lexer": "^1.2.3",
"fflate": "^0.8.2",
+ "lru-cache": "^11.0.1",
"semver": "^7.5.4",
- "ts-expose-internals-conditionally": "1.0.0-empty.0",
- "typescript": "5.3.3",
+ "typescript": "5.6.1-rc",
"validate-npm-package-name": "^5.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
}
},
"node_modules/@arethetypeswrong/core/node_modules/typescript": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
- "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "version": "5.6.1-rc",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.1-rc.tgz",
+ "integrity": "sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -145,25 +149,39 @@
}
},
"node_modules/@asamuzakjp/css-color": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
- "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz",
+ "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@csstools/css-calc": "^2.1.3",
- "@csstools/css-color-parser": "^3.0.9",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "lru-cache": "^10.4.3"
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "lru-cache": "^11.2.1"
}
},
- "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "node_modules/@asamuzakjp/dom-selector": {
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.2.tgz",
+ "integrity": "sha512-ccKogJI+0aiDhOahdjANIc9SDixSud1gbwdVrhn7kMopAtLXqsz9MKmQQtIl6Y5aC2IYq+j4dz/oedL2AVMmVQ==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/nwsapi": "^2.3.9",
+ "bidi-js": "^1.0.3",
+ "css-tree": "^3.1.0",
+ "is-potential-custom-element-name": "^1.0.1",
+ "lru-cache": "^11.2.2"
+ }
+ },
+ "node_modules/@asamuzakjp/nwsapi": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
+ "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@babel/code-frame": {
"version": "7.27.1",
@@ -265,6 +283,16 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
@@ -478,18 +506,20 @@
}
},
"node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
},
"node_modules/@biomejs/biome": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz",
- "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.2.6.tgz",
+ "integrity": "sha512-yKTCNGhek0rL5OEW1jbLeZX8LHaM8yk7+3JRGv08my+gkpmtb5dDE+54r2ZjZx0ediFEn1pYBOJSmOdDP9xtFw==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT OR Apache-2.0",
"bin": {
"biome": "bin/biome"
@@ -502,20 +532,20 @@
"url": "https://opencollective.com/biome"
},
"optionalDependencies": {
- "@biomejs/cli-darwin-arm64": "1.9.4",
- "@biomejs/cli-darwin-x64": "1.9.4",
- "@biomejs/cli-linux-arm64": "1.9.4",
- "@biomejs/cli-linux-arm64-musl": "1.9.4",
- "@biomejs/cli-linux-x64": "1.9.4",
- "@biomejs/cli-linux-x64-musl": "1.9.4",
- "@biomejs/cli-win32-arm64": "1.9.4",
- "@biomejs/cli-win32-x64": "1.9.4"
+ "@biomejs/cli-darwin-arm64": "2.2.6",
+ "@biomejs/cli-darwin-x64": "2.2.6",
+ "@biomejs/cli-linux-arm64": "2.2.6",
+ "@biomejs/cli-linux-arm64-musl": "2.2.6",
+ "@biomejs/cli-linux-x64": "2.2.6",
+ "@biomejs/cli-linux-x64-musl": "2.2.6",
+ "@biomejs/cli-win32-arm64": "2.2.6",
+ "@biomejs/cli-win32-x64": "2.2.6"
}
},
"node_modules/@biomejs/cli-darwin-arm64": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz",
- "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.2.6.tgz",
+ "integrity": "sha512-UZPmn3M45CjTYulgcrFJFZv7YmK3pTxTJDrFYlNElT2FNnkkX4fsxjExTSMeWKQYoZjvekpH5cvrYZZlWu3yfA==",
"cpu": [
"arm64"
],
@@ -530,9 +560,9 @@
}
},
"node_modules/@biomejs/cli-darwin-x64": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz",
- "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.2.6.tgz",
+ "integrity": "sha512-HOUIquhHVgh/jvxyClpwlpl/oeMqntlteL89YqjuFDiZ091P0vhHccwz+8muu3nTyHWM5FQslt+4Jdcd67+xWQ==",
"cpu": [
"x64"
],
@@ -547,9 +577,9 @@
}
},
"node_modules/@biomejs/cli-linux-arm64": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz",
- "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.2.6.tgz",
+ "integrity": "sha512-BpGtuMJGN+o8pQjvYsUKZ+4JEErxdSmcRD/JG3mXoWc6zrcA7OkuyGFN1mDggO0Q1n7qXxo/PcupHk8gzijt5g==",
"cpu": [
"arm64"
],
@@ -564,9 +594,9 @@
}
},
"node_modules/@biomejs/cli-linux-arm64-musl": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz",
- "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.2.6.tgz",
+ "integrity": "sha512-TjCenQq3N6g1C+5UT3jE1bIiJb5MWQvulpUngTIpFsL4StVAUXucWD0SL9MCW89Tm6awWfeXBbZBAhJwjyFbRQ==",
"cpu": [
"arm64"
],
@@ -581,9 +611,9 @@
}
},
"node_modules/@biomejs/cli-linux-x64": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz",
- "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.2.6.tgz",
+ "integrity": "sha512-1HaM/dpI/1Z68zp8ZdT6EiBq+/O/z97a2AiHMl+VAdv5/ELckFt9EvRb8hDHpk8hUMoz03gXkC7VPXOVtU7faA==",
"cpu": [
"x64"
],
@@ -598,9 +628,9 @@
}
},
"node_modules/@biomejs/cli-linux-x64-musl": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz",
- "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.2.6.tgz",
+ "integrity": "sha512-1ZcBux8zVM3JhWN2ZCPaYf0+ogxXG316uaoXJdgoPZcdK/rmRcRY7PqHdAos2ExzvjIdvhQp72UcveI98hgOog==",
"cpu": [
"x64"
],
@@ -615,9 +645,9 @@
}
},
"node_modules/@biomejs/cli-win32-arm64": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz",
- "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.2.6.tgz",
+ "integrity": "sha512-h3A88G8PGM1ryTeZyLlSdfC/gz3e95EJw9BZmA6Po412DRqwqPBa2Y9U+4ZSGUAXCsnSQE00jLV8Pyrh0d+jQw==",
"cpu": [
"arm64"
],
@@ -632,9 +662,9 @@
}
},
"node_modules/@biomejs/cli-win32-x64": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz",
- "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==",
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.2.6.tgz",
+ "integrity": "sha512-yx0CqeOhPjYQ5ZXgPfu8QYkgBhVJyvWe36as7jRuPrKPO5ylVDfwVtPQ+K/mooNTADW0IhxOZm3aPu16dP8yNQ==",
"cpu": [
"x64"
],
@@ -648,6 +678,13 @@
"node": ">=14.21.3"
}
},
+ "node_modules/@braidai/lang": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@braidai/lang/-/lang-1.1.2.tgz",
+ "integrity": "sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@colors/colors": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
@@ -659,6 +696,30 @@
"node": ">=0.1.90"
}
},
+ "node_modules/@csstools/cascade-layer-name-parser": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz",
+ "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
"node_modules/@csstools/color-helpers": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
@@ -754,6 +815,29 @@
"@csstools/css-tokenizer": "^3.0.4"
}
},
+ "node_modules/@csstools/css-syntax-patches-for-csstree": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.14.tgz",
+ "integrity": "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
@@ -774,1005 +858,1418 @@
"node": ">=18"
}
},
- "node_modules/@csstools/postcss-cascade-layers": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
- "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
+ "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
- "postcss-selector-parser": "^6.0.10"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@csstools/postcss-color-function": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
- "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
+ "node_modules/@csstools/postcss-alpha-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz",
+ "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-font-format-keywords": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
- "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
+ "node_modules/@csstools/postcss-cascade-layers": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz",
+ "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-hwb-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
- "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
+ "node_modules/@csstools/postcss-color-function": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz",
+ "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-ic-unit": {
+ "node_modules/@csstools/postcss-color-function-display-p3-linear": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
- "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz",
+ "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-is-pseudo-class": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
- "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
+ "node_modules/@csstools/postcss-color-mix-function": {
+ "version": "3.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz",
+ "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "@csstools/selector-specificity": "^2.0.0",
- "postcss-selector-parser": "^6.0.10"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-nested-calc": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
- "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
+ "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz",
+ "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-normalize-display-values": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
- "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
+ "node_modules/@csstools/postcss-content-alt-text": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz",
+ "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-oklab-function": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
- "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
+ "node_modules/@csstools/postcss-contrast-color-function": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz",
+ "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-progressive-custom-properties": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
- "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
+ "node_modules/@csstools/postcss-exponential-functions": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz",
+ "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
},
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.3"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-stepped-value-functions": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
- "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
+ "node_modules/@csstools/postcss-font-format-keywords": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz",
+ "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
+ "@csstools/utilities": "^2.0.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-text-decoration-shorthand": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
- "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
+ "node_modules/@csstools/postcss-gamut-mapping": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz",
+ "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-trigonometric-functions": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
- "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
+ "node_modules/@csstools/postcss-gradients-interpolation-method": {
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz",
+ "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==",
"dev": true,
- "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": "^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/postcss-unset-value": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
- "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
+ "node_modules/@csstools/postcss-hwb-function": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz",
+ "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==",
"dev": true,
- "license": "CC0-1.0",
- "engines": {
- "node": "^12 || ^14 || >=16"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "engines": {
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
+ "postcss": "^8.4"
}
},
- "node_modules/@csstools/selector-specificity": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
- "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
+ "node_modules/@csstools/postcss-ic-unit": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz",
+ "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==",
"dev": true,
- "license": "CC0-1.0",
- "engines": {
- "node": "^14 || ^16 || >=18"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "engines": {
+ "node": ">=18"
},
"peerDependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz",
- "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/@csstools/postcss-initial": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz",
+ "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/android-arm": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz",
- "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@csstools/postcss-is-pseudo-class": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz",
+ "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/android-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz",
- "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-light-dark-function": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz",
+ "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/android-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz",
- "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/postcss-logical-float-and-clear": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz",
+ "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz",
- "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-logical-overflow": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz",
+ "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz",
- "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/postcss-logical-overscroll-behavior": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz",
+ "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz",
- "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-logical-resize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz",
+ "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz",
- "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/postcss-logical-viewport-units": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz",
+ "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/utilities": "^2.0.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-arm": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz",
- "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@csstools/postcss-media-minmax": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz",
+ "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz",
- "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz",
+ "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz",
- "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/@csstools/postcss-nested-calc": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz",
+ "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz",
- "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==",
- "cpu": [
- "loong64"
- ],
+ "node_modules/@csstools/postcss-normalize-display-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz",
+ "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz",
- "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==",
- "cpu": [
- "mips64el"
- ],
+ "node_modules/@csstools/postcss-oklab-function": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz",
+ "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz",
- "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/@csstools/postcss-progressive-custom-properties": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz",
+ "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz",
- "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==",
- "cpu": [
- "riscv64"
- ],
+ "node_modules/@csstools/postcss-random-function": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz",
+ "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz",
- "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/@csstools/postcss-relative-color-syntax": {
+ "version": "3.0.12",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz",
+ "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/linux-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz",
- "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/postcss-scope-pseudo-class": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz",
+ "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz",
- "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-sign-functions": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz",
+ "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz",
- "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/postcss-stepped-value-functions": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz",
+ "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz",
- "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-text-decoration-shorthand": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz",
+ "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.1.0",
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz",
- "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/postcss-trigonometric-functions": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz",
+ "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.4",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ },
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/openharmony-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz",
- "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/postcss-unset-value": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz",
+ "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz",
- "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@csstools/selector-resolve-nested": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz",
+ "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
}
},
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz",
- "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
],
+ "license": "MIT-0",
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
}
},
- "node_modules/@esbuild/win32-ia32": {
+ "node_modules/@csstools/utilities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz",
+ "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
"version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz",
- "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz",
+ "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==",
"cpu": [
- "ia32"
+ "ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "win32"
+ "aix"
],
"engines": {
"node": ">=18"
}
},
- "node_modules/@esbuild/win32-x64": {
+ "node_modules/@esbuild/android-arm": {
"version": "0.25.11",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz",
- "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz",
+ "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==",
"cpu": [
- "x64"
+ "arm"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "win32"
+ "android"
],
"engines": {
"node": ">=18"
}
},
- "node_modules/@headlessui/react": {
- "version": "1.7.19",
- "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.19.tgz",
- "integrity": "sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==",
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz",
+ "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "@tanstack/react-virtual": "^3.0.0-beta.60",
- "client-only": "^0.0.1"
- },
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "react": "^16 || ^17 || ^18",
- "react-dom": "^16 || ^17 || ^18"
+ "node": ">=18"
}
},
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz",
+ "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
- "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz",
+ "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=18"
}
},
- "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz",
+ "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=18"
}
},
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz",
+ "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "node": ">=18"
}
},
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz",
+ "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "node": ">=18"
}
},
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz",
+ "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.13",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
- "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz",
+ "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@jridgewell/remapping": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
- "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz",
+ "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==",
+ "cpu": [
+ "ia32"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz",
+ "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==",
+ "cpu": [
+ "loong64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.0.0"
+ "node": ">=18"
}
},
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
- "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.31",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
- "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz",
+ "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==",
+ "cpu": [
+ "mips64el"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz",
+ "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==",
+ "cpu": [
+ "ppc64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">= 8"
+ "node": ">=18"
}
},
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz",
+ "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==",
+ "cpu": [
+ "riscv64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">= 8"
+ "node": ">=18"
}
},
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz",
+ "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==",
+ "cpu": [
+ "s390x"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">= 8"
+ "node": ">=18"
}
},
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz",
+ "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
"optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
- "node_modules/@polka/url": {
- "version": "1.0.0-next.29",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
- "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@rolldown/pluginutils": {
- "version": "1.0.0-beta.38",
- "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz",
- "integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz",
- "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==",
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz",
+ "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==",
"cpu": [
- "arm"
+ "arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "android"
- ]
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz",
- "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==",
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz",
+ "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==",
"cpu": [
- "arm64"
+ "x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "android"
- ]
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz",
- "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==",
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz",
+ "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==",
"cpu": [
"arm64"
],
@@ -1780,13 +2277,16 @@
"license": "MIT",
"optional": true,
"os": [
- "darwin"
- ]
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz",
- "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==",
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz",
+ "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==",
"cpu": [
"x64"
],
@@ -1794,13 +2294,16 @@
"license": "MIT",
"optional": true,
"os": [
- "darwin"
- ]
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz",
- "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==",
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz",
+ "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==",
"cpu": [
"arm64"
],
@@ -1808,13 +2311,16 @@
"license": "MIT",
"optional": true,
"os": [
- "freebsd"
- ]
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz",
- "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==",
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz",
+ "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==",
"cpu": [
"x64"
],
@@ -1822,3235 +2328,2652 @@
"license": "MIT",
"optional": true,
"os": [
- "freebsd"
- ]
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz",
- "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==",
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz",
+ "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==",
"cpu": [
- "arm"
+ "arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "linux"
- ]
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz",
- "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==",
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz",
+ "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==",
"cpu": [
- "arm"
+ "ia32"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "linux"
- ]
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
},
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz",
- "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==",
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz",
+ "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==",
"cpu": [
- "arm64"
+ "x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz",
- "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==",
- "cpu": [
- "arm64"
+ "win32"
],
- "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz",
+ "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.10"
+ }
},
- "node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz",
- "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz",
+ "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "@floating-ui/core": "^1.7.3",
+ "@floating-ui/utils": "^0.2.10"
+ }
},
- "node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz",
- "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
+ "node_modules/@floating-ui/react": {
+ "version": "0.26.28",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz",
+ "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.1.2",
+ "@floating-ui/utils": "^0.2.8",
+ "tabbable": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
},
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz",
- "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz",
+ "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "@floating-ui/dom": "^1.7.4"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
},
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz",
- "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "license": "MIT"
+ },
+ "node_modules/@headlessui/react": {
+ "version": "2.2.9",
+ "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.9.tgz",
+ "integrity": "sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==",
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "@floating-ui/react": "^0.26.16",
+ "@react-aria/focus": "^3.20.2",
+ "@react-aria/interactions": "^3.25.0",
+ "@tanstack/react-virtual": "^3.13.9",
+ "use-sync-external-store": "^1.5.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ }
},
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz",
- "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
},
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz",
- "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "license": "MIT"
},
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz",
- "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz",
- "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ]
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
},
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz",
- "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz",
- "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
},
- "node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz",
- "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
},
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz",
- "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
- "node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
+ "license": "MIT"
},
- "node_modules/@tailwindcss/forms": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz",
- "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==",
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "mini-svg-data-uri": "^1.2.3"
- },
- "peerDependencies": {
- "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@tanstack/react-virtual": {
- "version": "3.13.12",
- "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz",
- "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==",
- "license": "MIT",
+ "node_modules/@loaderkit/resolve": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@loaderkit/resolve/-/resolve-1.0.4.tgz",
+ "integrity": "sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "@tanstack/virtual-core": "3.13.12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ "@braidai/lang": "^1.0.0"
}
},
- "node_modules/@tanstack/virtual-core": {
- "version": "3.13.12",
- "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz",
- "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==",
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
"license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
+ "optional": true,
+ "engines": {
+ "node": ">=14"
}
},
- "node_modules/@testing-library/dom": {
- "version": "9.3.4",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz",
- "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==",
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.29",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
+ "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@publint/pack": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@publint/pack/-/pack-0.1.2.tgz",
+ "integrity": "sha512-S+9ANAvUmjutrshV4jZjaiG8XQyuJIZ8a4utWmN/vW1sgQ9IfBnPndwkmQYw53QmouOIytT874u65HEmu6H5jw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^5.0.1",
- "aria-query": "5.1.3",
- "chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.5.0",
- "pretty-format": "^27.0.2"
- },
"engines": {
- "node": ">=14"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://bjornlu.com/sponsor"
}
},
- "node_modules/@testing-library/dom/node_modules/aria-query": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
- "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
- "dev": true,
+ "node_modules/@react-aria/focus": {
+ "version": "3.21.2",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.2.tgz",
+ "integrity": "sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==",
"license": "Apache-2.0",
"dependencies": {
- "deep-equal": "^2.0.5"
+ "@react-aria/interactions": "^3.25.6",
+ "@react-aria/utils": "^3.31.0",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
- "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@testing-library/jest-dom": {
- "version": "6.9.1",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
- "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
- "dev": true,
- "license": "MIT",
+ "node_modules/@react-aria/interactions": {
+ "version": "3.25.6",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.6.tgz",
+ "integrity": "sha512-5UgwZmohpixwNMVkMvn9K1ceJe6TzlRlAfuYoQDUuOkk62/JVJNDLAPKIf5YMRc7d2B0rmfgaZLMtbREb0Zvkw==",
+ "license": "Apache-2.0",
"dependencies": {
- "@adobe/css-tools": "^4.4.0",
- "aria-query": "^5.0.0",
- "css.escape": "^1.5.1",
- "dom-accessibility-api": "^0.6.3",
- "picocolors": "^1.1.1",
- "redent": "^3.0.0"
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/utils": "^3.31.0",
+ "@react-stately/flags": "^3.1.2",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0"
},
- "engines": {
- "node": ">=14",
- "npm": ">=6",
- "yarn": ">=1"
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@testing-library/react": {
- "version": "14.3.1",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz",
- "integrity": "sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==",
- "dev": true,
- "license": "MIT",
+ "node_modules/@react-aria/ssr": {
+ "version": "3.9.10",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz",
+ "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==",
+ "license": "Apache-2.0",
"dependencies": {
- "@babel/runtime": "^7.12.5",
- "@testing-library/dom": "^9.0.0",
- "@types/react-dom": "^18.0.0"
+ "@swc/helpers": "^0.5.0"
},
"engines": {
- "node": ">=14"
+ "node": ">= 12"
},
"peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@types/aria-query": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
- "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.5",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
- "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
- "dev": true,
- "license": "MIT",
+ "node_modules/@react-aria/utils": {
+ "version": "3.31.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.31.0.tgz",
+ "integrity": "sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==",
+ "license": "Apache-2.0",
"dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
+ "@react-aria/ssr": "^3.9.10",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@types/babel__generator": {
- "version": "7.27.0",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
- "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
- "dev": true,
- "license": "MIT",
+ "node_modules/@react-stately/flags": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz",
+ "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==",
+ "license": "Apache-2.0",
"dependencies": {
- "@babel/types": "^7.0.0"
+ "@swc/helpers": "^0.5.0"
}
},
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "dev": true,
- "license": "MIT",
+ "node_modules/@react-stately/utils": {
+ "version": "3.10.8",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.8.tgz",
+ "integrity": "sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==",
+ "license": "Apache-2.0",
"dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@types/babel__traverse": {
- "version": "7.28.0",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
- "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.28.2"
+ "node_modules/@react-types/shared": {
+ "version": "3.32.1",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.32.1.tgz",
+ "integrity": "sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
}
},
- "node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-beta.38",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz",
+ "integrity": "sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==",
"dev": true,
"license": "MIT"
},
- "node_modules/@types/node": {
- "version": "24.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz",
- "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==",
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz",
+ "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
"license": "MIT",
"optional": true,
- "peer": true,
- "dependencies": {
- "undici-types": "~7.16.0"
- }
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.15",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
- "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
- "dev": true,
- "license": "MIT"
+ "os": [
+ "android"
+ ]
},
- "node_modules/@types/react": {
- "version": "18.3.26",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz",
- "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==",
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz",
+ "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
- }
+ "optional": true,
+ "os": [
+ "android"
+ ]
},
- "node_modules/@types/react-dom": {
- "version": "18.3.7",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
- "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz",
+ "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "@types/react": "^18.0.0"
- }
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
},
- "node_modules/@types/tailwindcss": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@types/tailwindcss/-/tailwindcss-3.0.11.tgz",
- "integrity": "sha512-PR+BOIrI+rxteHwFvkfIOty+PDJwTG4ute3alxSSXpF/xKpryO1room265m46Auyae0VwqUYs3PuVEOF9Oil3w==",
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz",
+ "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
},
- "node_modules/@vitejs/plugin-react": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.4.tgz",
- "integrity": "sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==",
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz",
+ "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/core": "^7.28.4",
- "@babel/plugin-transform-react-jsx-self": "^7.27.1",
- "@babel/plugin-transform-react-jsx-source": "^7.27.1",
- "@rolldown/pluginutils": "1.0.0-beta.38",
- "@types/babel__core": "^7.20.5",
- "react-refresh": "^0.17.0"
- },
- "engines": {
- "node": "^20.19.0 || >=22.12.0"
- },
- "peerDependencies": {
- "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
- }
- },
- "node_modules/@vitest/coverage-v8": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.9.tgz",
- "integrity": "sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.3.0",
- "@bcoe/v8-coverage": "^0.2.3",
- "debug": "^4.3.7",
- "istanbul-lib-coverage": "^3.2.2",
- "istanbul-lib-report": "^3.0.1",
- "istanbul-lib-source-maps": "^5.0.6",
- "istanbul-reports": "^3.1.7",
- "magic-string": "^0.30.12",
- "magicast": "^0.3.5",
- "std-env": "^3.8.0",
- "test-exclude": "^7.0.1",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "@vitest/browser": "2.1.9",
- "vitest": "2.1.9"
- },
- "peerDependenciesMeta": {
- "@vitest/browser": {
- "optional": true
- }
- }
- },
- "node_modules/@vitest/expect": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz",
- "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/spy": "2.1.9",
- "@vitest/utils": "2.1.9",
- "chai": "^5.1.2",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
},
- "node_modules/@vitest/mocker": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz",
- "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==",
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz",
+ "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@vitest/spy": "2.1.9",
- "estree-walker": "^3.0.3",
- "magic-string": "^0.30.12"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "msw": "^2.4.9",
- "vite": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "msw": {
- "optional": true
- },
- "vite": {
- "optional": true
- }
- }
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
},
- "node_modules/@vitest/pretty-format": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz",
- "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==",
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz",
+ "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@vitest/runner": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz",
- "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==",
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz",
+ "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@vitest/utils": "2.1.9",
- "pathe": "^1.1.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/runner/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@vitest/snapshot": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz",
- "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==",
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz",
+ "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "2.1.9",
- "magic-string": "^0.30.12",
- "pathe": "^1.1.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
- },
- "node_modules/@vitest/snapshot/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@vitest/spy": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz",
- "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==",
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz",
+ "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "tinyspy": "^3.0.2"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@vitest/ui": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-2.1.9.tgz",
- "integrity": "sha512-izzd2zmnk8Nl5ECYkW27328RbQ1nKvkm6Bb5DAaz1Gk59EbLkiCMa6OLT0NoaAYTjOFS6N+SMYW1nh4/9ljPiw==",
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz",
+ "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==",
+ "cpu": [
+ "loong64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@vitest/utils": "2.1.9",
- "fflate": "^0.8.2",
- "flatted": "^3.3.1",
- "pathe": "^1.1.2",
- "sirv": "^3.0.0",
- "tinyglobby": "^0.2.10",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- },
- "peerDependencies": {
- "vitest": "2.1.9"
- }
- },
- "node_modules/@vitest/ui/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@vitest/utils": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz",
- "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==",
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz",
+ "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==",
+ "cpu": [
+ "ppc64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@vitest/pretty-format": "2.1.9",
- "loupe": "^3.1.2",
- "tinyrainbow": "^1.2.0"
- },
- "funding": {
- "url": "https://opencollective.com/vitest"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz",
+ "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==",
+ "cpu": [
+ "riscv64"
+ ],
"dev": true,
"license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz",
+ "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==",
+ "cpu": [
+ "riscv64"
+ ],
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">= 14"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/ansi-regex": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
- "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz",
+ "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==",
+ "cpu": [
+ "s390x"
+ ],
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/aria-query": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
- "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
- "dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
- "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "is-array-buffer": "^3.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/assertion-error": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/autoprefixer": {
- "version": "10.4.21",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
- "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.24.4",
- "caniuse-lite": "^1.0.30001702",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.1.1",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/baseline-browser-mapping": {
- "version": "2.8.18",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.18.tgz",
- "integrity": "sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w==",
- "dev": true,
- "license": "Apache-2.0",
- "bin": {
- "baseline-browser-mapping": "dist/cli.js"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.26.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
- "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "baseline-browser-mapping": "^2.8.9",
- "caniuse-lite": "^1.0.30001746",
- "electron-to-chromium": "^1.5.227",
- "node-releases": "^2.0.21",
- "update-browserslist-db": "^1.1.3"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bundle-require": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz",
- "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "load-tsconfig": "^0.2.3"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "peerDependencies": {
- "esbuild": ">=0.18"
- }
- },
- "node_modules/cac": {
- "version": "6.7.14",
- "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
- "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.0",
- "es-define-property": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
- "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "get-intrinsic": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/camelcase-css": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001751",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz",
- "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/chai": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
- "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "assertion-error": "^2.0.1",
- "check-error": "^2.1.1",
- "deep-eql": "^5.0.1",
- "loupe": "^3.1.0",
- "pathval": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/check-error": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 16"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/cli-highlight": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
- "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "chalk": "^4.0.0",
- "highlight.js": "^10.7.1",
- "mz": "^2.4.0",
- "parse5": "^5.1.1",
- "parse5-htmlparser2-tree-adapter": "^6.0.0",
- "yargs": "^16.0.0"
- },
- "bin": {
- "highlight": "bin/highlight"
- },
- "engines": {
- "node": ">=8.0.0",
- "npm": ">=5.0.0"
- }
- },
- "node_modules/cli-highlight/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/cli-highlight/node_modules/parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cli-highlight/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/cli-highlight/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/cli-table3": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
- "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
- "license": "MIT"
- },
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/concurrently": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.6.0.tgz",
- "integrity": "sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.1.0",
- "date-fns": "^2.29.1",
- "lodash": "^4.17.21",
- "rxjs": "^7.0.0",
- "shell-quote": "^1.7.3",
- "spawn-command": "^0.0.2-1",
- "supports-color": "^8.1.0",
- "tree-kill": "^1.2.2",
- "yargs": "^17.3.1"
- },
- "bin": {
- "conc": "dist/bin/concurrently.js",
- "concurrently": "dist/bin/concurrently.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
- }
- },
- "node_modules/concurrently/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/confbox": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
- "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/consola": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
- "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.18.0 || >=16.10.0"
- }
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/css-blank-pseudo": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz",
- "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==",
- "dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
- "bin": {
- "css-blank-pseudo": "dist/cli.cjs"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-has-pseudo": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz",
- "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==",
- "dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
- "bin": {
- "css-has-pseudo": "dist/cli.cjs"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-prefers-color-scheme": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
- "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==",
- "dev": true,
- "license": "CC0-1.0",
- "bin": {
- "css-prefers-color-scheme": "dist/cli.cjs"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css.escape": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
- "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz",
+ "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/cssdb": {
- "version": "7.11.2",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz",
- "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- }
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz",
+ "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==",
+ "cpu": [
+ "x64"
],
- "license": "CC0-1.0"
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
"dev": true,
"license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/cssstyle": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
- "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz",
+ "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "@asamuzakjp/css-color": "^3.2.0",
- "rrweb-cssom": "^0.8.0"
- },
- "engines": {
- "node": ">=18"
- }
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
},
- "node_modules/cssstyle/node_modules/rrweb-cssom": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
- "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz",
+ "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz",
+ "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==",
+ "cpu": [
+ "ia32"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/cuint": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
- "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==",
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz",
+ "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/data-urls": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
- "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz",
+ "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^14.0.0"
- },
- "engines": {
- "node": ">=18"
- }
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/date-fns": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
- "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "node_modules/@sindresorhus/is": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.21.0"
- },
"engines": {
- "node": ">=0.11"
+ "node": ">=10"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/date-fns"
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
}
},
- "node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "node_modules/@swc/helpers": {
+ "version": "0.5.17",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
+ "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@tailwindcss/forms": {
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz",
+ "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
+ "mini-svg-data-uri": "^1.2.3"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "peerDependencies": {
+ "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1"
}
},
- "node_modules/decimal.js": {
- "version": "10.6.0",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
- "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
+ "node_modules/@tailwindcss/node": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.15.tgz",
+ "integrity": "sha512-HF4+7QxATZWY3Jr8OlZrBSXmwT3Watj0OogeDvdUY/ByXJHQ+LBtqA2brDb3sBxYslIFx6UP94BJ4X6a4L9Bmw==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.4",
+ "enhanced-resolve": "^5.18.3",
+ "jiti": "^2.6.0",
+ "lightningcss": "1.30.2",
+ "magic-string": "^0.30.19",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.1.15"
+ }
},
- "node_modules/deep-eql": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
- "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.15.tgz",
+ "integrity": "sha512-krhX+UOOgnsUuks2SR7hFafXmLQrKxB4YyRTERuCE59JlYL+FawgaAlSkOYmDRJdf1Q+IFNDMl9iRnBW7QBDfQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/deep-equal": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz",
- "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.5",
- "es-get-iterator": "^1.1.3",
- "get-intrinsic": "^1.2.2",
- "is-arguments": "^1.1.1",
- "is-array-buffer": "^3.0.2",
- "is-date-object": "^1.0.5",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "isarray": "^2.0.5",
- "object-is": "^1.1.5",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "side-channel": "^1.0.4",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.13"
+ "node": ">= 10"
},
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.1.15",
+ "@tailwindcss/oxide-darwin-arm64": "4.1.15",
+ "@tailwindcss/oxide-darwin-x64": "4.1.15",
+ "@tailwindcss/oxide-freebsd-x64": "4.1.15",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.15",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.1.15",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.1.15",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.1.15",
+ "@tailwindcss/oxide-linux-x64-musl": "4.1.15",
+ "@tailwindcss/oxide-wasm32-wasi": "4.1.15",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.1.15",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.1.15"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.15.tgz",
+ "integrity": "sha512-TkUkUgAw8At4cBjCeVCRMc/guVLKOU1D+sBPrHt5uVcGhlbVKxrCaCW9OKUIBv1oWkjh4GbunD/u/Mf0ql6kEA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 10"
}
},
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.15.tgz",
+ "integrity": "sha512-xt5XEJpn2piMSfvd1UFN6jrWXyaKCwikP4Pidcf+yfHTSzSpYhG3dcMktjNkQO3JiLCp+0bG0HoWGvz97K162w==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 10"
}
},
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.15.tgz",
+ "integrity": "sha512-TnWaxP6Bx2CojZEXAV2M01Yl13nYPpp0EtGpUrY+LMciKfIXiLL2r/SiSRpagE5Fp2gX+rflp/Os1VJDAyqymg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 10"
}
},
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.15.tgz",
+ "integrity": "sha512-quISQDWqiB6Cqhjc3iWptXVZHNVENsWoI77L1qgGEHNIdLDLFnw3/AfY7DidAiiCIkGX/MjIdB3bbBZR/G2aJg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=0.4.0"
+ "node": ">= 10"
}
},
- "node_modules/didyoumean": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
- "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/dlv": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
- "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.15.tgz",
+ "integrity": "sha512-ObG76+vPlab65xzVUQbExmDU9FIeYLQ5k2LrQdR2Ud6hboR+ZobXpDoKEYXf/uOezOfIYmy2Ta3w0ejkTg9yxg==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
},
- "node_modules/dom-accessibility-api": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
- "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.15.tgz",
+ "integrity": "sha512-4WbBacRmk43pkb8/xts3wnOZMDKsPFyEH/oisCm2q3aLZND25ufvJKcDUpAu0cS+CBOL05dYa8D4U5OWECuH/Q==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
},
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.15.tgz",
+ "integrity": "sha512-AbvmEiteEj1nf42nE8skdHv73NoR+EwXVSgPY6l39X12Ex8pzOwwfi3Kc8GAmjsnsaDEbk+aj9NyL3UeyHcTLg==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10"
}
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.237",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz",
- "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/emojilib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz",
- "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.15.tgz",
+ "integrity": "sha512-+rzMVlvVgrXtFiS+ES78yWgKqpThgV19ISKD58Ck+YO5pO5KjyxLt7AWKsWMbY0R9yBDC82w6QVGz837AKQcHg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
},
- "node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.15.tgz",
+ "integrity": "sha512-fPdEy7a8eQN9qOIK3Em9D3TO1z41JScJn8yxl/76mp4sAXFDfV4YXxsiptJcOwy6bGR+70ZSwFIZhTXzQeqwQg==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "BSD-2-Clause",
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
+ "node": ">= 10"
}
},
- "node_modules/environment": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
- "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.15.tgz",
+ "integrity": "sha512-sJ4yd6iXXdlgIMfIBXuVGp/NvmviEoMVWMOAGxtxhzLPp9LOj5k0pMEMZdjeMCl4C6Up+RM8T3Zgk+BMQ0bGcQ==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=18"
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.5.0",
+ "@emnapi/runtime": "^1.5.0",
+ "@emnapi/wasi-threads": "^1.1.0",
+ "@napi-rs/wasm-runtime": "^1.0.7",
+ "@tybys/wasm-util": "^0.10.1",
+ "tslib": "^2.4.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=14.0.0"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.15.tgz",
+ "integrity": "sha512-sJGE5faXnNQ1iXeqmRin7Ds/ru2fgCiaQZQQz3ZGIDtvbkeV85rAZ0QJFMDg0FrqsffZG96H1U9AQlNBRLsHVg==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10"
}
},
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.15.tgz",
+ "integrity": "sha512-NLeHE7jUV6HcFKS504bpOohyi01zPXi2PXmjFfkzTph8xRxDdxkRsXm/xDO5uV5K3brrE1cCwbUYmFUSHR3u1w==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">= 0.4"
+ "node": ">= 10"
}
},
- "node_modules/es-get-iterator": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
- "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "node_modules/@tailwindcss/postcss": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.15.tgz",
+ "integrity": "sha512-IZh8IT76KujRz6d15wZw4eoeViT4TqmzVWNNfpuNCTKiaZUwgr5vtPqO4HjuYDyx3MgGR5qgPt1HMzTeLJyA3g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "has-symbols": "^1.0.3",
- "is-arguments": "^1.1.1",
- "is-map": "^2.0.2",
- "is-set": "^2.0.2",
- "is-string": "^1.0.7",
- "isarray": "^2.0.5",
- "stop-iteration-iterator": "^1.0.0"
+ "@alloc/quick-lru": "^5.2.0",
+ "@tailwindcss/node": "4.1.15",
+ "@tailwindcss/oxide": "4.1.15",
+ "postcss": "^8.4.41",
+ "tailwindcss": "4.1.15"
+ }
+ },
+ "node_modules/@tanstack/react-virtual": {
+ "version": "3.13.12",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz",
+ "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/virtual-core": "3.13.12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/es-module-lexer": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
- "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
- "dev": true,
- "license": "MIT"
+ "node_modules/@tanstack/virtual-core": {
+ "version": "3.13.12",
+ "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz",
+ "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
},
- "node_modules/es-object-atoms": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "node_modules/@testing-library/dom": {
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz",
+ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "es-errors": "^1.3.0"
+ "@babel/code-frame": "^7.10.4",
+ "@babel/runtime": "^7.12.5",
+ "@types/aria-query": "^5.0.1",
+ "aria-query": "5.3.0",
+ "dom-accessibility-api": "^0.5.9",
+ "lz-string": "^1.5.0",
+ "picocolors": "1.1.1",
+ "pretty-format": "^27.0.2"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
}
},
- "node_modules/es-set-tostringtag": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "node_modules/@testing-library/jest-dom": {
+ "version": "6.9.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz",
+ "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
+ "@adobe/css-tools": "^4.4.0",
+ "aria-query": "^5.0.0",
+ "css.escape": "^1.5.1",
+ "dom-accessibility-api": "^0.6.3",
+ "picocolors": "^1.1.1",
+ "redent": "^3.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=14",
+ "npm": ">=6",
+ "yarn": ">=1"
}
},
- "node_modules/esbuild": {
- "version": "0.25.11",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz",
- "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==",
+ "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
+ "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@testing-library/react": {
+ "version": "16.3.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz",
+ "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
+ "dependencies": {
+ "@babel/runtime": "^7.12.5"
},
"engines": {
"node": ">=18"
},
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.11",
- "@esbuild/android-arm": "0.25.11",
- "@esbuild/android-arm64": "0.25.11",
- "@esbuild/android-x64": "0.25.11",
- "@esbuild/darwin-arm64": "0.25.11",
- "@esbuild/darwin-x64": "0.25.11",
- "@esbuild/freebsd-arm64": "0.25.11",
- "@esbuild/freebsd-x64": "0.25.11",
- "@esbuild/linux-arm": "0.25.11",
- "@esbuild/linux-arm64": "0.25.11",
- "@esbuild/linux-ia32": "0.25.11",
- "@esbuild/linux-loong64": "0.25.11",
- "@esbuild/linux-mips64el": "0.25.11",
- "@esbuild/linux-ppc64": "0.25.11",
- "@esbuild/linux-riscv64": "0.25.11",
- "@esbuild/linux-s390x": "0.25.11",
- "@esbuild/linux-x64": "0.25.11",
- "@esbuild/netbsd-arm64": "0.25.11",
- "@esbuild/netbsd-x64": "0.25.11",
- "@esbuild/openbsd-arm64": "0.25.11",
- "@esbuild/openbsd-x64": "0.25.11",
- "@esbuild/openharmony-arm64": "0.25.11",
- "@esbuild/sunos-x64": "0.25.11",
- "@esbuild/win32-arm64": "0.25.11",
- "@esbuild/win32-ia32": "0.25.11",
- "@esbuild/win32-x64": "0.25.11"
+ "peerDependencies": {
+ "@testing-library/dom": "^10.0.0",
+ "@types/react": "^18.0.0 || ^19.0.0",
+ "@types/react-dom": "^18.0.0 || ^19.0.0",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "node_modules/@types/aria-query": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
+ "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "peer": true
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
}
},
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/estree": "^1.0.0"
+ "@babel/types": "^7.0.0"
}
},
- "node_modules/expect-type": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz",
- "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==",
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
"dev": true,
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
}
},
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
+ "@babel/types": "^7.28.2"
}
},
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "node_modules/@types/chai": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
+ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "@types/deep-eql": "*",
+ "assertion-error": "^2.0.1"
}
},
- "node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "node_modules/@types/deep-eql": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
+ "license": "MIT"
},
- "node_modules/fflate": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
- "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==",
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"license": "MIT"
},
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "node_modules/@types/react": {
+ "version": "19.2.2",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz",
+ "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
+ "csstype": "^3.0.2"
}
},
- "node_modules/fix-dts-default-cjs-exports": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz",
- "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==",
+ "node_modules/@types/react-dom": {
+ "version": "19.2.2",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.2.tgz",
+ "integrity": "sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "magic-string": "^0.30.17",
- "mlly": "^1.7.4",
- "rollup": "^4.34.8"
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
}
},
- "node_modules/flatted": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
- "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "node_modules/@types/tailwindcss": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/tailwindcss/-/tailwindcss-3.0.11.tgz",
+ "integrity": "sha512-PR+BOIrI+rxteHwFvkfIOty+PDJwTG4ute3alxSSXpF/xKpryO1room265m46Auyae0VwqUYs3PuVEOF9Oil3w==",
"dev": true,
- "license": "ISC"
+ "license": "MIT"
},
- "node_modules/for-each": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
- "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+ "node_modules/@vitejs/plugin-react": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.4.tgz",
+ "integrity": "sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-callable": "^1.2.7"
+ "@babel/core": "^7.28.4",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-beta.38",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.17.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^20.19.0 || >=22.12.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
}
},
- "node_modules/foreground-child": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
- "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "node_modules/@vitest/coverage-v8": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz",
+ "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "cross-spawn": "^7.0.6",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
+ "@ampproject/remapping": "^2.3.0",
+ "@bcoe/v8-coverage": "^1.0.2",
+ "ast-v8-to-istanbul": "^0.3.3",
+ "debug": "^4.4.1",
+ "istanbul-lib-coverage": "^3.2.2",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-lib-source-maps": "^5.0.6",
+ "istanbul-reports": "^3.1.7",
+ "magic-string": "^0.30.17",
+ "magicast": "^0.3.5",
+ "std-env": "^3.9.0",
+ "test-exclude": "^7.0.1",
+ "tinyrainbow": "^2.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/foreground-child/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
+ "url": "https://opencollective.com/vitest"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "peerDependencies": {
+ "@vitest/browser": "3.2.4",
+ "vitest": "3.2.4"
+ },
+ "peerDependenciesMeta": {
+ "@vitest/browser": {
+ "optional": true
+ }
}
},
- "node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "node_modules/@vitest/expect": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
+ "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "es-set-tostringtag": "^2.1.0",
- "hasown": "^2.0.2",
- "mime-types": "^2.1.12"
+ "@types/chai": "^5.2.2",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "tinyrainbow": "^2.0.0"
},
- "engines": {
- "node": ">= 6"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "node_modules/@vitest/mocker": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
+ "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": "*"
+ "dependencies": {
+ "@vitest/spy": "3.2.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.17"
},
"funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
}
},
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "node_modules/@vitest/pretty-format": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
+ "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "tinyrainbow": "^2.0.0"
+ },
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "node_modules/@vitest/runner": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
+ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "3.2.4",
+ "pathe": "^2.0.3",
+ "strip-literal": "^3.0.0"
+ },
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "node_modules/@vitest/snapshot": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
+ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind-apply-helpers": "^1.0.2",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "@vitest/pretty-format": "3.2.4",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "node_modules/@vitest/spy": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
+ "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
+ "tinyspy": "^4.0.3"
},
- "engines": {
- "node": ">= 0.4"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "node_modules/@vitest/ui": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-3.2.4.tgz",
+ "integrity": "sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
+ "@vitest/utils": "3.2.4",
+ "fflate": "^0.8.2",
+ "flatted": "^3.3.3",
+ "pathe": "^2.0.3",
+ "sirv": "^3.0.1",
+ "tinyglobby": "^0.2.14",
+ "tinyrainbow": "^2.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
+ "url": "https://opencollective.com/vitest"
},
- "engines": {
- "node": ">=10.13.0"
+ "peerDependencies": {
+ "vitest": "3.2.4"
}
},
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "node_modules/@vitest/utils": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
+ "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "@vitest/pretty-format": "3.2.4",
+ "loupe": "^3.1.4",
+ "tinyrainbow": "^2.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/vitest"
}
},
- "node_modules/harmony-reflect": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
- "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==",
- "dev": true,
- "license": "(Apache-2.0 OR MPL-1.1)"
- },
- "node_modules/has-bigints": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
- "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "acorn": "bin/acorn"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 14"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "node_modules/ansi-escapes": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.1.1.tgz",
+ "integrity": "sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "es-define-property": "^1.0.0"
+ "environment": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.3"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
"dev": true,
- "license": "MIT",
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "function-bind": "^1.1.2"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 8"
}
},
- "node_modules/highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
- "license": "BSD-3-Clause",
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/html-encoding-sniffer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
- "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
+ "node_modules/aria-query": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
+ "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "whatwg-encoding": "^3.1.1"
- },
- "engines": {
- "node": ">=18"
+ "dequal": "^2.0.3"
}
},
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "node_modules/assertion-error": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
"engines": {
- "node": ">= 14"
+ "node": ">=12"
}
},
- "node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "node_modules/ast-v8-to-istanbul": {
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.7.tgz",
+ "integrity": "sha512-kr1Hy6YRZBkGQSb6puP+D6FQ59Cx4m0siYhAxygMCAgadiWQ6oxAxQXHOMvJx67SJ63jRoVIIg5eXzUbbct1ww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
+ "@jridgewell/trace-mapping": "^0.3.31",
+ "estree-walker": "^3.0.3",
+ "js-tokens": "^9.0.1"
}
},
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "license": "MIT"
},
- "node_modules/identity-obj-proxy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
- "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==",
+ "node_modules/autoprefixer": {
+ "version": "10.4.21",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
+ "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "harmony-reflect": "^1.4.6"
+ "browserslist": "^4.24.4",
+ "caniuse-lite": "^1.0.30001702",
+ "fraction.js": "^4.3.7",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
},
"engines": {
- "node": ">=4"
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/ignore-walk": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz",
- "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true,
- "license": "ISC",
- "dependencies": {
- "minimatch": "^5.0.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
+ "license": "MIT"
},
- "node_modules/ignore-walk/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.8.19",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.19.tgz",
+ "integrity": "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
}
},
- "node_modules/ignore-walk/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "node_modules/bidi-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
+ "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
+ "require-from-string": "^2.0.2"
}
},
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/internal-slot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
- "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
+ "node_modules/browserslist": {
+ "version": "4.26.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
+ "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "hasown": "^2.0.2",
- "side-channel": "^1.1.0"
+ "baseline-browser-mapping": "^2.8.9",
+ "caniuse-lite": "^1.0.30001746",
+ "electron-to-chromium": "^1.5.227",
+ "node-releases": "^2.0.21",
+ "update-browserslist-db": "^1.1.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/is-arguments": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
- "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
+ "node_modules/bundle-require": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz",
+ "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
+ "load-tsconfig": "^0.2.3"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "esbuild": ">=0.18"
}
},
- "node_modules/is-array-buffer": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
- "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
- },
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8"
}
},
- "node_modules/is-bigint": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
- "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001751",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz",
+ "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "has-bigints": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
},
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "node_modules/chai": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
+ "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "binary-extensions": "^2.0.0"
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/is-boolean-object": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
- "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=10"
}
},
- "node_modules/is-core-module": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
- "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "node_modules/check-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 16"
}
},
- "node_modules/is-date-object": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
- "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
+ "readdirp": "^4.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 14.16.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "node_modules/cjs-module-lexer": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
+ "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
"dev": true,
- "license": "MIT",
+ "license": "MIT"
+ },
+ "node_modules/cli-highlight": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
+ "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "highlight.js": "^10.7.1",
+ "mz": "^2.4.0",
+ "parse5": "^5.1.1",
+ "parse5-htmlparser2-tree-adapter": "^6.0.0",
+ "yargs": "^16.0.0"
+ },
+ "bin": {
+ "highlight": "bin/highlight"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0",
+ "npm": ">=5.0.0"
}
},
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "node_modules/cli-highlight/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "node_modules/cli-highlight/node_modules/parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cli-highlight/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-extglob": "^2.1.1"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/is-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
- "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "node_modules/cli-highlight/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "node_modules/cli-highlight/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"engines": {
- "node": ">=0.12.0"
+ "node": ">=10"
}
},
- "node_modules/is-number-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
- "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
+ "node_modules/cli-table3": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
+ "string-width": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": "10.* || >= 12.*"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
}
},
- "node_modules/is-potential-custom-element-name": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
- "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
- "license": "MIT"
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
},
- "node_modules/is-regex": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
- "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2",
- "hasown": "^2.0.2"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/is-set": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
- "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
- "dev": true,
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
"license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6"
}
},
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
- "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=7.0.0"
}
},
- "node_modules/is-string": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
- "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.3",
- "has-tostringtag": "^1.0.2"
- },
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=14"
}
},
- "node_modules/is-symbol": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
- "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concurrently": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz",
+ "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.2",
- "has-symbols": "^1.1.0",
- "safe-regex-test": "^1.1.0"
+ "chalk": "4.1.2",
+ "rxjs": "7.8.2",
+ "shell-quote": "1.8.3",
+ "supports-color": "8.1.1",
+ "tree-kill": "1.2.2",
+ "yargs": "17.7.2"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "conc": "dist/bin/concurrently.js",
+ "concurrently": "dist/bin/concurrently.js"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
- "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
- "dev": true,
- "license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
}
},
- "node_modules/is-weakset": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
- "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
+ "node_modules/concurrently/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bound": "^1.0.3",
- "get-intrinsic": "^1.2.6"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
"dev": true,
"license": "MIT"
},
- "node_modules/isexe": {
+ "node_modules/consola": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
+ "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/convert-source-map": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true,
- "license": "ISC"
+ "license": "MIT"
},
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
- "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
- "license": "BSD-3-Clause",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 8"
}
},
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "node_modules/css-blank-pseudo": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz",
+ "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==",
"dev": true,
- "license": "BSD-3-Clause",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/istanbul-lib-source-maps": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
- "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
+ "node_modules/css-has-pseudo": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz",
+ "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==",
"dev": true,
- "license": "BSD-3-Clause",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.23",
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0"
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/istanbul-reports": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
- "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
+ "node_modules/css-prefers-color-scheme": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz",
+ "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==",
"dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
"dev": true,
- "license": "BlueOak-1.0.0",
+ "license": "MIT",
"dependencies": {
- "@isaacs/cliui": "^8.0.2"
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
- "node_modules/jiti": {
- "version": "1.21.7",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
- "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+ "node_modules/css.escape": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
+ "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cssdb": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.4.2.tgz",
+ "integrity": "sha512-PzjkRkRUS+IHDJohtxkIczlxPPZqRo0nXplsYXOMBRPjcVRjj1W4DfvRgshUYTVuUigU7ptVYkFJQ7abUB0nyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ }
+ ],
+ "license": "MIT-0"
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
"dev": true,
"license": "MIT",
"bin": {
- "jiti": "bin/jiti.js"
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/joycon": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
- "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
+ "node_modules/cssstyle": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.1.tgz",
+ "integrity": "sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "@asamuzakjp/css-color": "^4.0.3",
+ "@csstools/css-syntax-patches-for-csstree": "^1.0.14",
+ "css-tree": "^3.1.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=20"
}
},
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "dev": true,
"license": "MIT"
},
- "node_modules/jsdom": {
- "version": "25.0.1",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz",
- "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==",
+ "node_modules/cuint": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
+ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/data-urls": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz",
+ "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "cssstyle": "^4.1.0",
- "data-urls": "^5.0.0",
- "decimal.js": "^10.4.3",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^4.0.0",
- "http-proxy-agent": "^7.0.2",
- "https-proxy-agent": "^7.0.5",
- "is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.12",
- "parse5": "^7.1.2",
- "rrweb-cssom": "^0.7.1",
- "saxes": "^6.0.0",
- "symbol-tree": "^3.2.4",
- "tough-cookie": "^5.0.0",
- "w3c-xmlserializer": "^5.0.0",
- "webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^3.1.1",
"whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^14.0.0",
- "ws": "^8.18.0",
- "xml-name-validator": "^5.0.0"
+ "whatwg-url": "^15.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
},
- "peerDependencies": {
- "canvas": "^2.11.2"
+ "engines": {
+ "node": ">=6.0"
},
"peerDependenciesMeta": {
- "canvas": {
+ "supports-color": {
"optional": true
}
}
},
- "node_modules/jsesc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
- "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "node_modules/decimal.js": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deep-eql": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
"dev": true,
"license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
"engines": {
"node": ">=6"
}
},
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "node_modules/dependency-graph": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz",
+ "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==",
"dev": true,
"license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
+ "node": ">=6"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
"dev": true,
- "license": "MIT"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/load-tsconfig": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
- "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
+ "node_modules/dom-accessibility-api": {
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
+ "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
+ "peer": true
},
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true,
"license": "MIT"
},
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.237",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.237.tgz",
+ "integrity": "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==",
"dev": true,
- "license": "MIT"
+ "license": "ISC"
},
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/loupe": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
- "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
+ "node_modules/emojilib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz",
+ "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
"dev": true,
"license": "MIT"
},
- "node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.3",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz",
+ "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "yallist": "^3.0.2"
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
}
},
- "node_modules/lz-string": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
- "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
+ "node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"dev": true,
- "license": "MIT",
- "bin": {
- "lz-string": "bin/bin.js"
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/magic-string": {
- "version": "0.30.19",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
- "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
+ "node_modules/environment": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
+ "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/magicast": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
- "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.25.4",
- "@babel/types": "^7.25.4",
- "source-map-js": "^1.2.0"
- }
+ "license": "MIT"
},
- "node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "node_modules/esbuild": {
+ "version": "0.25.11",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz",
+ "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==",
"dev": true,
+ "hasInstallScript": true,
"license": "MIT",
- "dependencies": {
- "semver": "^7.5.3"
+ "bin": {
+ "esbuild": "bin/esbuild"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.11",
+ "@esbuild/android-arm": "0.25.11",
+ "@esbuild/android-arm64": "0.25.11",
+ "@esbuild/android-x64": "0.25.11",
+ "@esbuild/darwin-arm64": "0.25.11",
+ "@esbuild/darwin-x64": "0.25.11",
+ "@esbuild/freebsd-arm64": "0.25.11",
+ "@esbuild/freebsd-x64": "0.25.11",
+ "@esbuild/linux-arm": "0.25.11",
+ "@esbuild/linux-arm64": "0.25.11",
+ "@esbuild/linux-ia32": "0.25.11",
+ "@esbuild/linux-loong64": "0.25.11",
+ "@esbuild/linux-mips64el": "0.25.11",
+ "@esbuild/linux-ppc64": "0.25.11",
+ "@esbuild/linux-riscv64": "0.25.11",
+ "@esbuild/linux-s390x": "0.25.11",
+ "@esbuild/linux-x64": "0.25.11",
+ "@esbuild/netbsd-arm64": "0.25.11",
+ "@esbuild/netbsd-x64": "0.25.11",
+ "@esbuild/openbsd-arm64": "0.25.11",
+ "@esbuild/openbsd-x64": "0.25.11",
+ "@esbuild/openharmony-arm64": "0.25.11",
+ "@esbuild/sunos-x64": "0.25.11",
+ "@esbuild/win32-arm64": "0.25.11",
+ "@esbuild/win32-ia32": "0.25.11",
+ "@esbuild/win32-x64": "0.25.11"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
}
},
- "node_modules/marked": {
- "version": "9.1.6",
- "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz",
- "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==",
+ "node_modules/expect-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz",
+ "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==",
"dev": true,
- "license": "MIT",
- "bin": {
- "marked": "bin/marked.js"
- },
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 16"
+ "node": ">=12.0.0"
}
},
- "node_modules/marked-terminal": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz",
- "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==",
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "ansi-escapes": "^7.0.0",
- "ansi-regex": "^6.1.0",
- "chalk": "^5.4.1",
- "cli-highlight": "^2.1.11",
- "cli-table3": "^0.6.5",
- "node-emoji": "^2.2.0",
- "supports-hyperlinks": "^3.1.0"
- },
"engines": {
- "node": ">=16.0.0"
+ "node": ">=12.0.0"
},
"peerDependencies": {
- "marked": ">=1 <16"
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
}
},
- "node_modules/marked-terminal/node_modules/ansi-escapes": {
+ "node_modules/fflate": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fill-range": {
"version": "7.1.1",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.1.1.tgz",
- "integrity": "sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "environment": "^1.0.0"
+ "to-regex-range": "^5.0.1"
},
"engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/marked-terminal/node_modules/chalk": {
- "version": "5.6.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
- "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+ "node_modules/fix-dts-default-cjs-exports": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz",
+ "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "dependencies": {
+ "magic-string": "^0.30.17",
+ "mlly": "^1.7.4",
+ "rollup": "^4.34.8"
}
},
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
"dev": true,
- "license": "MIT",
+ "license": "ISC"
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
}
},
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "node_modules/fs-extra": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
+ "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
- "node": ">=8.6"
+ "node": ">=14.14"
}
},
- "node_modules/mime": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
- "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
+ "hasInstallScript": true,
"license": "MIT",
- "bin": {
- "mime": "cli.js"
- },
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=4.0.0"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">= 0.6"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
"engines": {
- "node": ">= 0.6"
+ "node": ">=6.9.0"
}
},
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
"engines": {
- "node": ">=4"
+ "node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/mini-svg-data-uri": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
- "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
+ "node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
- "license": "MIT",
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
"bin": {
- "mini-svg-data-uri": "cli.js"
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"license": "ISC",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "is-glob": "^4.0.1"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">= 6"
}
},
- "node_modules/minimatch/node_modules/brace-expansion": {
+ "node_modules/glob/node_modules/brace-expansion": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
@@ -5060,1158 +4983,1182 @@
"balanced-match": "^1.0.0"
}
},
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
"license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
"engines": {
"node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/mlly": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz",
- "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==",
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.15.0",
- "pathe": "^2.0.3",
- "pkg-types": "^1.3.1",
- "ufo": "^1.6.1"
- }
+ "license": "ISC"
},
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "node_modules/harmony-reflect": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
+ "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
+ "license": "(Apache-2.0 OR MPL-1.1)"
},
- "node_modules/mrmime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
- "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "node_modules/highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
"dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
+ "license": "BSD-3-Clause",
"engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ "node": "*"
}
},
- "node_modules/node-emoji": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz",
- "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==",
+ "node_modules/html-encoding-sniffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@sindresorhus/is": "^4.6.0",
- "char-regex": "^1.0.2",
- "emojilib": "^2.4.0",
- "skin-tone": "^2.0.0"
+ "whatwg-encoding": "^3.1.1"
},
"engines": {
"node": ">=18"
}
},
- "node_modules/node-releases": {
- "version": "2.0.25",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.25.tgz",
- "integrity": "sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==",
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true,
"license": "MIT"
},
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 14"
}
},
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-bundled": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz",
- "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
- "dev": true,
- "license": "ISC",
"dependencies": {
- "npm-normalize-package-bin": "^2.0.0"
+ "agent-base": "^7.1.2",
+ "debug": "4"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">= 14"
}
},
- "node_modules/npm-normalize-package-bin": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz",
- "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/npm-packlist": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz",
- "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
+ "node_modules/identity-obj-proxy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
+ "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "glob": "^8.0.1",
- "ignore-walk": "^5.0.1",
- "npm-bundled": "^2.0.0",
- "npm-normalize-package-bin": "^2.0.0"
- },
- "bin": {
- "npm-packlist": "bin/index.js"
+ "harmony-reflect": "^1.4.6"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": ">=4"
}
},
- "node_modules/npm-packlist/node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/npm-packlist/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
+ "binary-extensions": "^2.0.0"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=8"
}
},
- "node_modules/npm-packlist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "hasown": "^2.0.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/nwsapi": {
- "version": "2.2.22",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
- "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/object-hash": {
+ "node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=8"
}
},
- "node_modules/object-inspect": {
- "version": "1.13.4",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
- "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">= 0.4"
+ "dependencies": {
+ "is-extglob": "^2.1.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/object-is": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
- "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1"
- },
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=0.12.0"
}
},
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
"dev": true,
- "license": "MIT",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
}
},
- "node_modules/object.assign": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
- "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
- "license": "MIT",
+ "license": "BSD-3-Clause",
"dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.3",
- "define-properties": "^1.2.1",
- "es-object-atoms": "^1.0.0",
- "has-symbols": "^1.1.0",
- "object-keys": "^1.1.1"
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=10"
}
},
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
+ "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
"dev": true,
- "license": "ISC",
+ "license": "BSD-3-Clause",
"dependencies": {
- "wrappy": "1"
+ "@jridgewell/trace-mapping": "^0.3.23",
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "node_modules/istanbul-reports": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
"dev": true,
- "license": "BlueOak-1.0.0"
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/parse5": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
- "license": "MIT",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "entities": "^6.0.0"
+ "@isaacs/cliui": "^8.0.2"
},
"funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
+ "node_modules/jiti": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
+ "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "parse5": "^6.0.1"
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
}
},
- "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/path-key": {
+ "node_modules/joycon": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
+ "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true,
"license": "MIT"
},
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "node_modules/jsdom": {
+ "version": "27.0.1",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.1.tgz",
+ "integrity": "sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==",
"dev": true,
- "license": "BlueOak-1.0.0",
+ "license": "MIT",
"dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ "@asamuzakjp/dom-selector": "^6.7.2",
+ "cssstyle": "^5.3.1",
+ "data-urls": "^6.0.0",
+ "decimal.js": "^10.6.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
+ "is-potential-custom-element-name": "^1.0.1",
+ "parse5": "^8.0.0",
+ "rrweb-cssom": "^0.8.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^6.0.0",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^8.0.0",
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^15.1.0",
+ "ws": "^8.18.3",
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.18"
+ "node": ">=20"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "peerDependencies": {
+ "canvas": "^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
}
},
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/pathval": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
- "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
"engines": {
- "node": ">= 14.16"
+ "node": ">=6"
}
},
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "node_modules/jsonfile": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
+ "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
},
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "node_modules/lightningcss": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",
+ "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
"dev": true,
- "license": "MIT",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
"engines": {
- "node": ">=8.6"
+ "node": ">= 12.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.30.2",
+ "lightningcss-darwin-arm64": "1.30.2",
+ "lightningcss-darwin-x64": "1.30.2",
+ "lightningcss-freebsd-x64": "1.30.2",
+ "lightningcss-linux-arm-gnueabihf": "1.30.2",
+ "lightningcss-linux-arm64-gnu": "1.30.2",
+ "lightningcss-linux-arm64-musl": "1.30.2",
+ "lightningcss-linux-x64-gnu": "1.30.2",
+ "lightningcss-linux-x64-musl": "1.30.2",
+ "lightningcss-win32-arm64-msvc": "1.30.2",
+ "lightningcss-win32-x64-msvc": "1.30.2"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
+ "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
+ "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT",
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/pirates": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
- "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
+ "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">= 6"
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/pkg-types": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
- "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
+ "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.1.8",
- "mlly": "^1.7.4",
- "pathe": "^2.0.1"
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/possible-typed-array-names": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
- "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
+ "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
- "license": "MIT",
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">= 0.4"
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
+ "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.11",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
"engines": {
- "node": "^10 || ^12 || >=14"
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/postcss-attribute-case-insensitive": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz",
- "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==",
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
+ "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz",
+ "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/postcss-clamp": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
- "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
+ "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=7.6.0"
+ "node": ">= 12.0.0"
},
- "peerDependencies": {
- "postcss": "^8.4.6"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/postcss-color-functional-notation": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz",
- "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==",
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
+ "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/postcss-color-hex-alpha": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
- "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.30.2",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
+ "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">= 12.0.0"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.4"
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/postcss-color-rebeccapurple": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz",
- "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==",
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">=14"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "url": "https://github.com/sponsors/antonk52"
}
},
- "node_modules/postcss-custom-media": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
- "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/load-tsconfig": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
+ "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.3"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}
},
- "node_modules/postcss-custom-properties": {
- "version": "12.1.11",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz",
- "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==",
+ "node_modules/lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/loupe": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
+ "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/lz-string": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
+ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "lz-string": "bin/bin.js"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.19",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
+ "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
- "node_modules/postcss-custom-selectors": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
- "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
+ "node_modules/magicast": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
+ "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.0.4"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.3"
+ "@babel/parser": "^7.25.4",
+ "@babel/types": "^7.25.4",
+ "source-map-js": "^1.2.0"
}
},
- "node_modules/postcss-dir-pseudo-class": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz",
- "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==",
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "semver": "^7.5.3"
},
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">=10"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/postcss-double-position-gradients": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz",
- "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==",
+ "node_modules/marked": {
+ "version": "9.1.6",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.6.tgz",
+ "integrity": "sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">= 16"
}
},
- "node_modules/postcss-env-function": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz",
- "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==",
+ "node_modules/marked-terminal": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.3.0.tgz",
+ "integrity": "sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "MIT",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "ansi-escapes": "^7.0.0",
+ "ansi-regex": "^6.1.0",
+ "chalk": "^5.4.1",
+ "cli-highlight": "^2.1.11",
+ "cli-table3": "^0.6.5",
+ "node-emoji": "^2.2.0",
+ "supports-hyperlinks": "^3.1.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">=16.0.0"
},
"peerDependencies": {
- "postcss": "^8.4"
+ "marked": ">=1 <16"
}
},
- "node_modules/postcss-focus-visible": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz",
- "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==",
+ "node_modules/marked-terminal/node_modules/chalk": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
- },
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
},
- "peerDependencies": {
- "postcss": "^8.4"
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/postcss-focus-within": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz",
- "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==",
+ "node_modules/mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-selector-parser": "^6.0.9"
+ "license": "CC0-1.0"
+ },
+ "node_modules/mime": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
+ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
+ "node": ">=4.0.0"
}
},
- "node_modules/postcss-font-variant": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
- "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mini-svg-data-uri": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
+ "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mini-svg-data-uri": "cli.js"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+ "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "node_modules/postcss-gap-properties": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz",
- "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==",
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "ISC",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">=16 || 14 >=14.17"
}
},
- "node_modules/postcss-image-set-function": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz",
- "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==",
+ "node_modules/mlly": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz",
+ "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "MIT",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
+ "acorn": "^8.15.0",
+ "pathe": "^2.0.3",
+ "pkg-types": "^1.3.1",
+ "ufo": "^1.6.1"
+ }
+ },
+ "node_modules/mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">=4"
}
},
- "node_modules/postcss-import": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
- "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "node_modules/mrmime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
+ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
"engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
+ "node": ">=10"
}
},
- "node_modules/postcss-initial": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
- "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==",
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "postcss": "^8.0.0"
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
}
},
- "node_modules/postcss-js": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz",
- "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
"funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
- "dependencies": {
- "camelcase-css": "^2.0.1"
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
},
"engines": {
- "node": "^12 || ^14 || >= 16"
- },
- "peerDependencies": {
- "postcss": "^8.4.21"
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/postcss-lab-function": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz",
- "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==",
+ "node_modules/node-emoji": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz",
+ "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "MIT",
"dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^1.1.0",
- "postcss-value-parser": "^4.2.0"
+ "@sindresorhus/is": "^4.6.0",
+ "char-regex": "^1.0.2",
+ "emojilib": "^2.4.0",
+ "skin-tone": "^2.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">=18"
}
},
- "node_modules/postcss-load-config": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
- "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
+ "node_modules/node-releases": {
+ "version": "2.0.26",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz",
+ "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
"license": "MIT",
- "dependencies": {
- "lilconfig": "^3.1.1"
- },
"engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
+ "node": ">=0.10.0"
}
},
- "node_modules/postcss-logical": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
- "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==",
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/postcss-media-minmax": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz",
- "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==",
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/postcss-nested": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
- "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/package-manager-detector": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.5.0.tgz",
+ "integrity": "sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parse5": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
+ "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.0.6"
- },
- "engines": {
- "node": ">=12.0"
+ "entities": "^6.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/postcss-nesting": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz",
- "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==",
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "MIT",
"dependencies": {
- "@csstools/selector-specificity": "^2.0.0",
- "postcss-selector-parser": "^6.0.10"
- },
- "engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "parse5": "^6.0.1"
}
},
- "node_modules/postcss-opacity-percentage": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz",
- "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==",
+ "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
- "funding": [
- {
- "type": "kofi",
- "url": "https://ko-fi.com/mrcgrtz"
- },
- {
- "type": "liberapay",
- "url": "https://liberapay.com/mrcgrtz"
- }
- ],
"license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">=8"
}
},
- "node_modules/postcss-overflow-shorthand": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz",
- "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==",
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
- "license": "CC0-1.0",
+ "license": "BlueOak-1.0.0",
"dependencies": {
- "postcss-value-parser": "^4.2.0"
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">=16 || 14 >=14.18"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/postcss-page-break": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
- "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pathval": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
+ "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "postcss": "^8"
+ "engines": {
+ "node": ">= 14.16"
}
},
- "node_modules/postcss-place": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz",
- "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==",
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
+ "node": ">=12"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/postcss-preset-env": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz",
- "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==",
- "dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "@csstools/postcss-cascade-layers": "^1.1.1",
- "@csstools/postcss-color-function": "^1.1.1",
- "@csstools/postcss-font-format-keywords": "^1.0.1",
- "@csstools/postcss-hwb-function": "^1.0.2",
- "@csstools/postcss-ic-unit": "^1.0.1",
- "@csstools/postcss-is-pseudo-class": "^2.0.7",
- "@csstools/postcss-nested-calc": "^1.0.0",
- "@csstools/postcss-normalize-display-values": "^1.0.1",
- "@csstools/postcss-oklab-function": "^1.1.1",
- "@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "@csstools/postcss-stepped-value-functions": "^1.0.1",
- "@csstools/postcss-text-decoration-shorthand": "^1.0.0",
- "@csstools/postcss-trigonometric-functions": "^1.0.2",
- "@csstools/postcss-unset-value": "^1.0.2",
- "autoprefixer": "^10.4.13",
- "browserslist": "^4.21.4",
- "css-blank-pseudo": "^3.0.3",
- "css-has-pseudo": "^3.0.4",
- "css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^7.1.0",
- "postcss-attribute-case-insensitive": "^5.0.2",
- "postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^4.2.4",
- "postcss-color-hex-alpha": "^8.0.4",
- "postcss-color-rebeccapurple": "^7.1.1",
- "postcss-custom-media": "^8.0.2",
- "postcss-custom-properties": "^12.1.10",
- "postcss-custom-selectors": "^6.0.3",
- "postcss-dir-pseudo-class": "^6.0.5",
- "postcss-double-position-gradients": "^3.1.2",
- "postcss-env-function": "^4.0.6",
- "postcss-focus-visible": "^6.0.4",
- "postcss-focus-within": "^5.0.4",
- "postcss-font-variant": "^5.0.0",
- "postcss-gap-properties": "^3.0.5",
- "postcss-image-set-function": "^4.0.7",
- "postcss-initial": "^4.0.1",
- "postcss-lab-function": "^4.2.1",
- "postcss-logical": "^5.0.4",
- "postcss-media-minmax": "^5.0.0",
- "postcss-nesting": "^10.2.0",
- "postcss-opacity-percentage": "^1.1.2",
- "postcss-overflow-shorthand": "^3.0.4",
- "postcss-page-break": "^3.0.4",
- "postcss-place": "^7.0.5",
- "postcss-pseudo-class-any-link": "^7.1.6",
- "postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^6.0.1",
- "postcss-value-parser": "^4.2.0"
- },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">=0.10.0"
}
},
- "node_modules/postcss-pseudo-class-any-link": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz",
- "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==",
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
"dev": true,
- "license": "CC0-1.0",
- "dependencies": {
- "postcss-selector-parser": "^6.0.10"
- },
+ "license": "MIT",
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- "peerDependencies": {
- "postcss": "^8.2"
+ "node": ">= 6"
}
},
- "node_modules/postcss-replace-overflow-wrap": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
- "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
+ "node_modules/pkg-types": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
"dev": true,
"license": "MIT",
- "peerDependencies": {
- "postcss": "^8.0.3"
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.4",
+ "pathe": "^2.0.1"
}
},
- "node_modules/postcss-reporter": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz",
- "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==",
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
{
"type": "github",
"url": "https://github.com/sponsors/ai"
@@ -6219,265 +6166,164 @@
],
"license": "MIT",
"dependencies": {
- "picocolors": "^1.0.0",
- "thenby": "^1.3.4"
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "node": "^10 || ^12 || >=14"
}
},
- "node_modules/postcss-selector-not": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz",
- "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==",
+ "node_modules/postcss-attribute-case-insensitive": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz",
+ "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": "^12 || ^14 || >=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "node": ">=18"
},
"peerDependencies": {
- "postcss": "^8.2"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
+ "postcss": "^8.4"
}
},
- "node_modules/postcss-url": {
- "version": "10.1.3",
- "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz",
- "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==",
+ "node_modules/postcss-clamp": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
+ "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
"dev": true,
"license": "MIT",
"dependencies": {
- "make-dir": "~3.1.0",
- "mime": "~2.5.2",
- "minimatch": "~3.0.4",
- "xxhashjs": "~0.2.2"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=7.6.0"
},
"peerDependencies": {
- "postcss": "^8.0.0"
+ "postcss": "^8.4.6"
}
},
- "node_modules/postcss-url/node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "node_modules/postcss-cli": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz",
+ "integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/postcss-url/node_modules/minimatch": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
- "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
+ "chokidar": "^3.3.0",
+ "dependency-graph": "^1.0.0",
+ "fs-extra": "^11.0.0",
+ "picocolors": "^1.0.0",
+ "postcss-load-config": "^5.0.0",
+ "postcss-reporter": "^7.0.0",
+ "pretty-hrtime": "^1.0.3",
+ "read-cache": "^1.0.0",
+ "slash": "^5.0.0",
+ "tinyglobby": "^0.2.12",
+ "yargs": "^17.0.0"
},
- "engines": {
- "node": "*"
- }
- },
- "node_modules/postcss-url/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "license": "ISC",
"bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/pretty-format": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
+ "postcss": "index.js"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "postcss": "^8.0.0"
}
},
- "node_modules/publint": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/publint/-/publint-0.2.12.tgz",
- "integrity": "sha512-YNeUtCVeM4j9nDiTT2OPczmlyzOkIXNtdDZnSuajAxS/nZ6j3t7Vs9SUB4euQNddiltIwu7Tdd3s+hr08fAsMw==",
+ "node_modules/postcss-cli/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "npm-packlist": "^5.1.3",
- "picocolors": "^1.1.1",
- "sade": "^1.8.1"
- },
- "bin": {
- "publint": "lib/cli.js"
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
},
"engines": {
- "node": ">=16"
+ "node": ">= 8.10.0"
},
"funding": {
- "url": "https://bjornlu.com/sponsor"
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
}
},
- "node_modules/punycode": {
+ "node_modules/postcss-cli/node_modules/picomatch": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "node_modules/postcss-cli/node_modules/postcss-load-config": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz",
+ "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==",
"dev": true,
"funding": [
{
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
},
{
- "type": "consulting",
- "url": "https://feross.org/support"
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
- "license": "MIT"
- },
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"license": "MIT",
"dependencies": {
- "loose-envify": "^1.1.0"
+ "lilconfig": "^3.1.1",
+ "yaml": "^2.4.2"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
+ "node": ">= 18"
},
"peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-hooks": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/react-hooks/-/react-hooks-1.0.1.tgz",
- "integrity": "sha512-PXU08tw4SvKwkW99qgnyV98x939RCmBC6aXqALPQXPjKq6+6EoH79Rz4KdUozzlpSyWmn2IiEm0vh3p+79aP5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/react-refresh": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
- "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/read-cache": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
- "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "pify": "^2.3.0"
+ "jiti": ">=1.21.0",
+ "postcss": ">=8.0.9",
+ "tsx": "^4.8.1"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ }
}
},
- "node_modules/readdirp": {
+ "node_modules/postcss-cli/node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
@@ -6490,1050 +6336,1274 @@
"node": ">=8.10.0"
}
},
- "node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "node_modules/postcss-color-functional-notation": {
+ "version": "7.0.12",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz",
+ "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
- "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
+ "node_modules/postcss-color-hex-alpha": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz",
+ "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-errors": "^1.3.0",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "set-function-name": "^2.0.2"
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/resolve": {
- "version": "1.22.11",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
- "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "node_modules/postcss-color-rebeccapurple": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz",
+ "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "is-core-module": "^2.16.1",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "node_modules/postcss-custom-media": {
+ "version": "11.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz",
+ "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
+ "dependencies": {
+ "@csstools/cascade-layer-name-parser": "^2.0.5",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3"
+ },
"engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/rollup": {
- "version": "4.52.5",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz",
- "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==",
+ "node_modules/postcss-custom-properties": {
+ "version": "14.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz",
+ "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "@types/estree": "1.0.8"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.52.5",
- "@rollup/rollup-android-arm64": "4.52.5",
- "@rollup/rollup-darwin-arm64": "4.52.5",
- "@rollup/rollup-darwin-x64": "4.52.5",
- "@rollup/rollup-freebsd-arm64": "4.52.5",
- "@rollup/rollup-freebsd-x64": "4.52.5",
- "@rollup/rollup-linux-arm-gnueabihf": "4.52.5",
- "@rollup/rollup-linux-arm-musleabihf": "4.52.5",
- "@rollup/rollup-linux-arm64-gnu": "4.52.5",
- "@rollup/rollup-linux-arm64-musl": "4.52.5",
- "@rollup/rollup-linux-loong64-gnu": "4.52.5",
- "@rollup/rollup-linux-ppc64-gnu": "4.52.5",
- "@rollup/rollup-linux-riscv64-gnu": "4.52.5",
- "@rollup/rollup-linux-riscv64-musl": "4.52.5",
- "@rollup/rollup-linux-s390x-gnu": "4.52.5",
- "@rollup/rollup-linux-x64-gnu": "4.52.5",
- "@rollup/rollup-linux-x64-musl": "4.52.5",
- "@rollup/rollup-openharmony-arm64": "4.52.5",
- "@rollup/rollup-win32-arm64-msvc": "4.52.5",
- "@rollup/rollup-win32-ia32-msvc": "4.52.5",
- "@rollup/rollup-win32-x64-gnu": "4.52.5",
- "@rollup/rollup-win32-x64-msvc": "4.52.5",
- "fsevents": "~2.3.2"
+ "@csstools/cascade-layer-name-parser": "^2.0.5",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/rrweb-cssom": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
- "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "node_modules/postcss-custom-selectors": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz",
+ "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==",
"dev": true,
"funding": [
{
"type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
+ "url": "https://github.com/sponsors/csstools"
},
{
- "type": "consulting",
- "url": "https://feross.org/support"
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
}
],
"license": "MIT",
"dependencies": {
- "queue-microtask": "^1.2.2"
+ "@csstools/cascade-layer-name-parser": "^2.0.5",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/rxjs": {
- "version": "7.8.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
- "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "node_modules/postcss-dir-pseudo-class": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz",
+ "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==",
"dev": true,
- "license": "Apache-2.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "tslib": "^2.1.0"
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/sade": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
- "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "node_modules/postcss-double-position-gradients": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz",
+ "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "mri": "^1.1.0"
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/safe-regex-test": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
- "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+ "node_modules/postcss-focus-visible": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz",
+ "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "is-regex": "^1.2.1"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/saxes": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
- "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
+ "node_modules/postcss-focus-within": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz",
+ "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==",
"dev": true,
- "license": "ISC",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "xmlchars": "^2.2.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">=v12.22.7"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "node_modules/postcss-font-variant": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
+ "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
+ "dev": true,
"license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/semver": {
- "version": "7.7.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
- "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "node_modules/postcss-gap-properties": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz",
+ "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"engines": {
- "node": ">=10"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "node_modules/postcss-image-set-function": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz",
+ "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/set-function-name": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
- "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "node_modules/postcss-import": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.1.tgz",
+ "integrity": "sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.2"
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
}
},
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/postcss-lab-function": {
+ "version": "7.0.12",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz",
+ "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "@csstools/css-color-parser": "^3.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/utilities": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/postcss-load-config": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
+ "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.1.1"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "jiti": ">=1.21.0",
+ "postcss": ">=8.0.9",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
}
},
- "node_modules/shell-quote": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
- "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+ "node_modules/postcss-logical": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz",
+ "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "node_modules/postcss-nested": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-7.0.2.tgz",
+ "integrity": "sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.2.14"
}
},
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "node_modules/postcss-nesting": {
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz",
+ "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
+ "@csstools/selector-resolve-nested": "^3.1.0",
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "node_modules/postcss-opacity-percentage": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz",
+ "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==",
"dev": true,
+ "funding": [
+ {
+ "type": "kofi",
+ "url": "https://ko-fi.com/mrcgrtz"
+ },
+ {
+ "type": "liberapay",
+ "url": "https://liberapay.com/mrcgrtz"
+ }
+ ],
"license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- },
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "node_modules/postcss-overflow-shorthand": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz",
+ "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/siginfo": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "node_modules/postcss-page-break": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
+ "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "peerDependencies": {
+ "postcss": "^8"
+ }
},
- "node_modules/sirv": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz",
- "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==",
+ "node_modules/postcss-place": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz",
+ "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "@polka/url": "^1.0.0-next.24",
- "mrmime": "^2.0.0",
- "totalist": "^3.0.0"
+ "postcss-value-parser": "^4.2.0"
},
"engines": {
"node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/skin-tone": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz",
- "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
+ "node_modules/postcss-preset-env": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.4.0.tgz",
+ "integrity": "sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "unicode-emoji-modifier-base": "^1.0.0"
+ "@csstools/postcss-alpha-function": "^1.0.1",
+ "@csstools/postcss-cascade-layers": "^5.0.2",
+ "@csstools/postcss-color-function": "^4.0.12",
+ "@csstools/postcss-color-function-display-p3-linear": "^1.0.1",
+ "@csstools/postcss-color-mix-function": "^3.0.12",
+ "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2",
+ "@csstools/postcss-content-alt-text": "^2.0.8",
+ "@csstools/postcss-contrast-color-function": "^2.0.12",
+ "@csstools/postcss-exponential-functions": "^2.0.9",
+ "@csstools/postcss-font-format-keywords": "^4.0.0",
+ "@csstools/postcss-gamut-mapping": "^2.0.11",
+ "@csstools/postcss-gradients-interpolation-method": "^5.0.12",
+ "@csstools/postcss-hwb-function": "^4.0.12",
+ "@csstools/postcss-ic-unit": "^4.0.4",
+ "@csstools/postcss-initial": "^2.0.1",
+ "@csstools/postcss-is-pseudo-class": "^5.0.3",
+ "@csstools/postcss-light-dark-function": "^2.0.11",
+ "@csstools/postcss-logical-float-and-clear": "^3.0.0",
+ "@csstools/postcss-logical-overflow": "^2.0.0",
+ "@csstools/postcss-logical-overscroll-behavior": "^2.0.0",
+ "@csstools/postcss-logical-resize": "^3.0.0",
+ "@csstools/postcss-logical-viewport-units": "^3.0.4",
+ "@csstools/postcss-media-minmax": "^2.0.9",
+ "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5",
+ "@csstools/postcss-nested-calc": "^4.0.0",
+ "@csstools/postcss-normalize-display-values": "^4.0.0",
+ "@csstools/postcss-oklab-function": "^4.0.12",
+ "@csstools/postcss-progressive-custom-properties": "^4.2.1",
+ "@csstools/postcss-random-function": "^2.0.1",
+ "@csstools/postcss-relative-color-syntax": "^3.0.12",
+ "@csstools/postcss-scope-pseudo-class": "^4.0.1",
+ "@csstools/postcss-sign-functions": "^1.1.4",
+ "@csstools/postcss-stepped-value-functions": "^4.0.9",
+ "@csstools/postcss-text-decoration-shorthand": "^4.0.3",
+ "@csstools/postcss-trigonometric-functions": "^4.0.9",
+ "@csstools/postcss-unset-value": "^4.0.0",
+ "autoprefixer": "^10.4.21",
+ "browserslist": "^4.26.0",
+ "css-blank-pseudo": "^7.0.1",
+ "css-has-pseudo": "^7.0.3",
+ "css-prefers-color-scheme": "^10.0.0",
+ "cssdb": "^8.4.2",
+ "postcss-attribute-case-insensitive": "^7.0.1",
+ "postcss-clamp": "^4.1.0",
+ "postcss-color-functional-notation": "^7.0.12",
+ "postcss-color-hex-alpha": "^10.0.0",
+ "postcss-color-rebeccapurple": "^10.0.0",
+ "postcss-custom-media": "^11.0.6",
+ "postcss-custom-properties": "^14.0.6",
+ "postcss-custom-selectors": "^8.0.5",
+ "postcss-dir-pseudo-class": "^9.0.1",
+ "postcss-double-position-gradients": "^6.0.4",
+ "postcss-focus-visible": "^10.0.1",
+ "postcss-focus-within": "^9.0.1",
+ "postcss-font-variant": "^5.0.0",
+ "postcss-gap-properties": "^6.0.0",
+ "postcss-image-set-function": "^7.0.0",
+ "postcss-lab-function": "^7.0.12",
+ "postcss-logical": "^8.1.0",
+ "postcss-nesting": "^13.0.2",
+ "postcss-opacity-percentage": "^3.0.0",
+ "postcss-overflow-shorthand": "^6.0.0",
+ "postcss-page-break": "^3.0.4",
+ "postcss-place": "^10.0.0",
+ "postcss-pseudo-class-any-link": "^10.0.1",
+ "postcss-replace-overflow-wrap": "^4.0.0",
+ "postcss-selector-not": "^8.0.1"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/spawn-command": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz",
- "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==",
- "dev": true
- },
- "node_modules/stackback": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/std-env": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
- "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/stop-iteration-iterator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
- "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
+ "node_modules/postcss-pseudo-class-any-link": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz",
+ "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
"dependencies": {
- "es-errors": "^1.3.0",
- "internal-slot": "^1.1.0"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "node_modules/postcss-replace-overflow-wrap": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
+ "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "postcss": "^8.0.3"
}
},
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "node_modules/postcss-reporter": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz",
+ "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "picocolors": "^1.0.0",
+ "thenby": "^1.3.4"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/postcss-selector-not": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz",
+ "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/postcss-selector-parser": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
+ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "node_modules/strip-ansi/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "node_modules/postcss-url": {
+ "version": "10.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz",
+ "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "make-dir": "~3.1.0",
+ "mime": "~2.5.2",
+ "minimatch": "~3.0.4",
+ "xxhashjs": "~0.2.2"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
}
},
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "node_modules/postcss-url/node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "min-indent": "^1.0.0"
+ "semver": "^6.0.0"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "node_modules/postcss-url/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
+ "license": "ISC",
"bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
+ "semver": "bin/semver.js"
}
},
- "node_modules/sucrase/node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
+ "license": "MIT"
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/pretty-format": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
- "has-flag": "^4.0.0"
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^17.0.1"
},
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/supports-hyperlinks": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz",
- "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==",
+ "node_modules/pretty-format/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
+ "peer": true,
"engines": {
- "node": ">=14.18"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
+ "node": ">=8"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/symbol-tree": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "node_modules/pretty-hrtime": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
+ "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "node_modules/tailwindcss": {
- "version": "3.4.18",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz",
- "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==",
+ "node_modules/publint": {
+ "version": "0.3.15",
+ "resolved": "https://registry.npmjs.org/publint/-/publint-0.3.15.tgz",
+ "integrity": "sha512-xPbRAPW+vqdiaKy5sVVY0uFAu3LaviaPO3pZ9FaRx59l9+U/RKR1OEbLhkug87cwiVKxPXyB4txsv5cad67u+A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@alloc/quick-lru": "^5.2.0",
- "arg": "^5.0.2",
- "chokidar": "^3.6.0",
- "didyoumean": "^1.2.2",
- "dlv": "^1.1.3",
- "fast-glob": "^3.3.2",
- "glob-parent": "^6.0.2",
- "is-glob": "^4.0.3",
- "jiti": "^1.21.7",
- "lilconfig": "^3.1.3",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "object-hash": "^3.0.0",
+ "@publint/pack": "^0.1.2",
+ "package-manager-detector": "^1.3.0",
"picocolors": "^1.1.1",
- "postcss": "^8.4.47",
- "postcss-import": "^15.1.0",
- "postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
- "postcss-nested": "^6.2.0",
- "postcss-selector-parser": "^6.1.2",
- "resolve": "^1.22.8",
- "sucrase": "^3.35.0"
+ "sade": "^1.8.1"
},
"bin": {
- "tailwind": "lib/cli.js",
- "tailwindcss": "lib/cli.js"
+ "publint": "src/cli.js"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://bjornlu.com/sponsor"
}
},
- "node_modules/tailwindcss/node_modules/postcss-import": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
- "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.0.0",
- "read-cache": "^1.0.0",
- "resolve": "^1.1.7"
- },
"engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.0.0"
+ "node": ">=6"
}
},
- "node_modules/tailwindcss/node_modules/postcss-nested": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
- "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "node_modules/react": {
+ "version": "19.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz",
+ "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
"license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.1.1"
- },
"engines": {
- "node": ">=12.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.14"
+ "node": ">=0.10.0"
}
},
- "node_modules/test-exclude": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
- "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
- "dev": true,
- "license": "ISC",
+ "node_modules/react-dom": {
+ "version": "19.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz",
+ "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
+ "license": "MIT",
"dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^10.4.1",
- "minimatch": "^9.0.4"
+ "scheduler": "^0.27.0"
},
- "engines": {
- "node": ">=18"
+ "peerDependencies": {
+ "react": "^19.2.0"
}
},
- "node_modules/thenby": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz",
- "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==",
+ "node_modules/react-hooks": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/react-hooks/-/react-hooks-1.0.1.tgz",
+ "integrity": "sha512-PXU08tw4SvKwkW99qgnyV98x939RCmBC6aXqALPQXPjKq6+6EoH79Rz4KdUozzlpSyWmn2IiEm0vh3p+79aP5w==",
"dev": true,
- "license": "Apache-2.0"
+ "license": "MIT"
},
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
+ "peer": true
},
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "node_modules/react-refresh": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
+ "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
"engines": {
- "node": ">=0.8"
+ "node": ">=0.10.0"
}
},
- "node_modules/tinybench": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
- "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyexec": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
- "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
},
- "node_modules/tinyglobby": {
- "version": "0.2.15",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
- "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "fdir": "^6.5.0",
- "picomatch": "^4.0.3"
- },
"engines": {
- "node": ">=12.0.0"
+ "node": ">= 14.18.0"
},
"funding": {
- "url": "https://github.com/sponsors/SuperchupuDev"
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/tinyglobby/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
},
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tinyglobby/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "node": ">=0.10.0"
}
},
- "node_modules/tinypool": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
- "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
"license": "MIT",
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/tinyrainbow": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
"engines": {
- "node": ">=14.0.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tinyspy": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
- "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=14.0.0"
+ "node": ">=8"
}
},
- "node_modules/tldts": {
- "version": "6.1.86",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
- "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
+ "node_modules/rollup": {
+ "version": "4.52.5",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz",
+ "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tldts-core": "^6.1.86"
+ "@types/estree": "1.0.8"
},
"bin": {
- "tldts": "bin/cli.js"
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.52.5",
+ "@rollup/rollup-android-arm64": "4.52.5",
+ "@rollup/rollup-darwin-arm64": "4.52.5",
+ "@rollup/rollup-darwin-x64": "4.52.5",
+ "@rollup/rollup-freebsd-arm64": "4.52.5",
+ "@rollup/rollup-freebsd-x64": "4.52.5",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.5",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.5",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.5",
+ "@rollup/rollup-linux-arm64-musl": "4.52.5",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.5",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.5",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.5",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.5",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.5",
+ "@rollup/rollup-linux-x64-gnu": "4.52.5",
+ "@rollup/rollup-linux-x64-musl": "4.52.5",
+ "@rollup/rollup-openharmony-arm64": "4.52.5",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.5",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.5",
+ "@rollup/rollup-win32-x64-gnu": "4.52.5",
+ "@rollup/rollup-win32-x64-msvc": "4.52.5",
+ "fsevents": "~2.3.2"
}
},
- "node_modules/tldts-core": {
- "version": "6.1.86",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
- "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
+ "node_modules/rrweb-cssom": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
"dev": true,
"license": "MIT"
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
"dev": true,
- "license": "MIT",
+ "license": "Apache-2.0",
"dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
+ "tslib": "^2.1.0"
}
},
- "node_modules/totalist": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
- "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "node_modules/sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "mri": "^1.1.0"
+ },
"engines": {
"node": ">=6"
}
},
- "node_modules/tough-cookie": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
- "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true,
- "license": "BSD-3-Clause",
+ "license": "MIT"
+ },
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "tldts": "^6.1.32"
+ "xmlchars": "^2.2.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=v12.22.7"
}
},
- "node_modules/tr46": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
- "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
+ "node_modules/scheduler": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "punycode": "^2.3.1"
+ "shebang-regex": "^3.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=8"
}
},
- "node_modules/tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
"license": "MIT",
- "bin": {
- "tree-kill": "cli.js"
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
+ "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ts-expose-internals-conditionally": {
- "version": "1.0.0-empty.0",
- "resolved": "https://registry.npmjs.org/ts-expose-internals-conditionally/-/ts-expose-internals-conditionally-1.0.0-empty.0.tgz",
- "integrity": "sha512-F8m9NOF6ZhdOClDVdlM8gj3fDCav4ZIFSs/EI3ksQbAAXVSCN/Jh5OCJDDZWBuBy9psFc6jULGDlPwjMYMhJDw==",
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
"dev": true,
- "license": "MIT"
+ "license": "ISC"
},
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "node_modules/tsup": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.0.tgz",
- "integrity": "sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==",
+ "node_modules/sirv": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz",
+ "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "bundle-require": "^5.1.0",
- "cac": "^6.7.14",
- "chokidar": "^4.0.3",
- "consola": "^3.4.0",
- "debug": "^4.4.0",
- "esbuild": "^0.25.0",
- "fix-dts-default-cjs-exports": "^1.0.0",
- "joycon": "^3.1.1",
- "picocolors": "^1.1.1",
- "postcss-load-config": "^6.0.1",
- "resolve-from": "^5.0.0",
- "rollup": "^4.34.8",
- "source-map": "0.8.0-beta.0",
- "sucrase": "^3.35.0",
- "tinyexec": "^0.3.2",
- "tinyglobby": "^0.2.11",
- "tree-kill": "^1.2.2"
- },
- "bin": {
- "tsup": "dist/cli-default.js",
- "tsup-node": "dist/cli-node.js"
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
},
"engines": {
"node": ">=18"
- },
- "peerDependencies": {
- "@microsoft/api-extractor": "^7.36.0",
- "@swc/core": "^1",
- "postcss": "^8.4.12",
- "typescript": ">=4.5.0"
- },
- "peerDependenciesMeta": {
- "@microsoft/api-extractor": {
- "optional": true
- },
- "@swc/core": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/tsup/node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "node_modules/skin-tone": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz",
+ "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "readdirp": "^4.0.1"
+ "unicode-emoji-modifier-base": "^1.0.0"
},
"engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
+ "node": ">=8"
}
},
- "node_modules/tsup/node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 14.18.0"
+ "node": ">=14.16"
},
"funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tsup/node_modules/source-map": {
+ "node_modules/source-map": {
"version": "0.8.0-beta.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
"integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
@@ -7547,7 +7617,17 @@
"node": ">= 8"
}
},
- "node_modules/tsup/node_modules/tr46": {
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map/node_modules/tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
"integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
@@ -7557,14 +7637,14 @@
"punycode": "^2.1.0"
}
},
- "node_modules/tsup/node_modules/webidl-conversions": {
+ "node_modules/source-map/node_modules/webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true,
"license": "BSD-2-Clause"
},
- "node_modules/tsup/node_modules/whatwg-url": {
+ "node_modules/source-map/node_modules/whatwg-url": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
"integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
@@ -7576,656 +7656,760 @@
"webidl-conversions": "^4.0.2"
}
},
- "node_modules/typescript": {
- "version": "5.9.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
- "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
"dev": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
+ "license": "MIT"
+ },
+ "node_modules/std-env": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz",
+ "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=14.17"
+ "node": ">=8"
}
},
- "node_modules/ufo": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
- "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
- "optional": true,
- "peer": true
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/unicode-emoji-modifier-base": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz",
- "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
- "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz",
+ "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^9.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
+ "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
"license": "MIT",
"dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.1"
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "^10.3.10",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
},
"bin": {
- "update-browserslist-db": "cli.js"
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
},
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "node_modules/sucrase/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
},
- "node_modules/validate-npm-package-name": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
- "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
- "license": "ISC",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ "node": ">=8"
}
},
- "node_modules/vite": {
- "version": "5.4.21",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
- "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
+ "node_modules/supports-hyperlinks": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz",
+ "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
- },
- "bin": {
- "vite": "bin/vite.js"
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": ">=14.18"
},
"funding": {
- "url": "https://github.com/vitejs/vite?sponsor=1"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
- },
- "peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "less": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "stylus": {
- "optional": true
- },
- "sugarss": {
- "optional": true
- },
- "terser": {
- "optional": true
- }
+ "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
}
},
- "node_modules/vite-node": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz",
- "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==",
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "cac": "^6.7.14",
- "debug": "^4.3.7",
- "es-module-lexer": "^1.5.4",
- "pathe": "^1.1.2",
- "vite": "^5.0.0"
- },
- "bin": {
- "vite-node": "vite-node.mjs"
- },
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://opencollective.com/vitest"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/vite-node/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true,
"license": "MIT"
},
- "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/tabbable": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
+ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
+ "license": "MIT"
+ },
+ "node_modules/tailwindcss": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.15.tgz",
+ "integrity": "sha512-k2WLnWkYFkdpRv+Oby3EBXIyQC8/s1HOFMBUViwtAh6Z5uAozeUSMQlIsn/c6Q2iJzqG6aJT3wdPaRNj70iYxQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tapable": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
+ "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/vite/node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/test-exclude": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
+ "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^9.0.4"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
- "node_modules/vite/node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/test-exclude/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/test-exclude/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/vite/node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/thenby": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz",
+ "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "any-promise": "^1.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=0.8"
}
},
- "node_modules/vite/node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
+ "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinypool": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
+ "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
"engines": {
- "node": ">=12"
+ "node": "^18.0.0 || >=20.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/tinyrainbow": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
+ "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=14.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/tinyspy": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz",
+ "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=14.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
+ "node_modules/tldts": {
+ "version": "7.0.17",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz",
+ "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "tldts-core": "^7.0.17"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/tldts-core": {
+ "version": "7.0.17",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz",
+ "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8.0"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=6"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
+ "node_modules/tough-cookie": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
+ "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tldts": "^7.0.5"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=16"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
+ "node_modules/tr46": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
+ "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=20"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
+ "bin": {
+ "tree-kill": "cli.js"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/tsup": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.0.tgz",
+ "integrity": "sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "dependencies": {
+ "bundle-require": "^5.1.0",
+ "cac": "^6.7.14",
+ "chokidar": "^4.0.3",
+ "consola": "^3.4.0",
+ "debug": "^4.4.0",
+ "esbuild": "^0.25.0",
+ "fix-dts-default-cjs-exports": "^1.0.0",
+ "joycon": "^3.1.1",
+ "picocolors": "^1.1.1",
+ "postcss-load-config": "^6.0.1",
+ "resolve-from": "^5.0.0",
+ "rollup": "^4.34.8",
+ "source-map": "0.8.0-beta.0",
+ "sucrase": "^3.35.0",
+ "tinyexec": "^0.3.2",
+ "tinyglobby": "^0.2.11",
+ "tree-kill": "^1.2.2"
+ },
+ "bin": {
+ "tsup": "dist/cli-default.js",
+ "tsup-node": "dist/cli-node.js"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@microsoft/api-extractor": "^7.36.0",
+ "@swc/core": "^1",
+ "postcss": "^8.4.12",
+ "typescript": ">=4.5.0"
+ },
+ "peerDependenciesMeta": {
+ "@microsoft/api-extractor": {
+ "optional": true
+ },
+ "@swc/core": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/vite/node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=14.17"
}
},
- "node_modules/vite/node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/ufo": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
+ "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unicode-emoji-modifier-base": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz",
+ "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
"engines": {
- "node": ">=12"
+ "node": ">=4"
}
},
- "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
"engines": {
- "node": ">=12"
+ "node": ">= 10.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
],
- "engines": {
- "node": ">=12"
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "node_modules/vite/node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
"license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
+ "license": "MIT"
},
- "node_modules/vite/node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
+ "node_modules/validate-npm-package-name": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+ "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
+ "license": "ISC",
"engines": {
- "node": ">=12"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "node_modules/vite/node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/vite": {
+ "version": "7.1.11",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
+ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
"engines": {
- "node": ">=12"
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "lightningcss": "^1.21.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
}
},
- "node_modules/vite/node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "node_modules/vite-node": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
+ "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
- "hasInstallScript": true,
"license": "MIT",
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.4.1",
+ "es-module-lexer": "^1.7.0",
+ "pathe": "^2.0.3",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
+ },
"bin": {
- "esbuild": "bin/esbuild"
+ "vite-node": "vite-node.mjs"
},
"engines": {
- "node": ">=12"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "funding": {
+ "url": "https://opencollective.com/vitest"
}
},
"node_modules/vitest": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz",
- "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@vitest/expect": "2.1.9",
- "@vitest/mocker": "2.1.9",
- "@vitest/pretty-format": "^2.1.9",
- "@vitest/runner": "2.1.9",
- "@vitest/snapshot": "2.1.9",
- "@vitest/spy": "2.1.9",
- "@vitest/utils": "2.1.9",
- "chai": "^5.1.2",
- "debug": "^4.3.7",
- "expect-type": "^1.1.0",
- "magic-string": "^0.30.12",
- "pathe": "^1.1.2",
- "std-env": "^3.8.0",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
+ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/chai": "^5.2.2",
+ "@vitest/expect": "3.2.4",
+ "@vitest/mocker": "3.2.4",
+ "@vitest/pretty-format": "^3.2.4",
+ "@vitest/runner": "3.2.4",
+ "@vitest/snapshot": "3.2.4",
+ "@vitest/spy": "3.2.4",
+ "@vitest/utils": "3.2.4",
+ "chai": "^5.2.0",
+ "debug": "^4.4.1",
+ "expect-type": "^1.2.1",
+ "magic-string": "^0.30.17",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.2",
+ "std-env": "^3.9.0",
"tinybench": "^2.9.0",
- "tinyexec": "^0.3.1",
- "tinypool": "^1.0.1",
- "tinyrainbow": "^1.2.0",
- "vite": "^5.0.0",
- "vite-node": "2.1.9",
+ "tinyexec": "^0.3.2",
+ "tinyglobby": "^0.2.14",
+ "tinypool": "^1.1.1",
+ "tinyrainbow": "^2.0.0",
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
+ "vite-node": "3.2.4",
"why-is-node-running": "^2.3.0"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
- "@types/node": "^18.0.0 || >=20.0.0",
- "@vitest/browser": "2.1.9",
- "@vitest/ui": "2.1.9",
+ "@types/debug": "^4.1.12",
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "@vitest/browser": "3.2.4",
+ "@vitest/ui": "3.2.4",
"happy-dom": "*",
"jsdom": "*"
},
@@ -8233,6 +8417,9 @@
"@edge-runtime/vm": {
"optional": true
},
+ "@types/debug": {
+ "optional": true
+ },
"@types/node": {
"optional": true
},
@@ -8250,13 +8437,6 @@
}
}
},
- "node_modules/vitest/node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/w3c-xmlserializer": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
@@ -8271,13 +8451,13 @@
}
},
"node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz",
+ "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
- "node": ">=12"
+ "node": ">=20"
}
},
"node_modules/whatwg-encoding": {
@@ -8304,17 +8484,17 @@
}
},
"node_modules/whatwg-url": {
- "version": "14.2.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
- "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz",
+ "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tr46": "^5.1.0",
- "webidl-conversions": "^7.0.0"
+ "tr46": "^6.0.0",
+ "webidl-conversions": "^8.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
}
},
"node_modules/which": {
@@ -8333,67 +8513,6 @@
"node": ">= 8"
}
},
- "node_modules/which-boxed-primitive": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
- "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-bigint": "^1.1.0",
- "is-boolean-object": "^1.2.1",
- "is-number-object": "^1.1.1",
- "is-string": "^1.1.1",
- "is-symbol": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-collection": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
- "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-map": "^2.0.3",
- "is-set": "^2.0.3",
- "is-weakmap": "^2.0.2",
- "is-weakset": "^2.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.19",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
- "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "for-each": "^0.3.5",
- "get-proto": "^1.0.1",
- "gopd": "^1.2.0",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/why-is-node-running": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
@@ -8412,18 +8531,18 @@
}
},
"node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
@@ -8448,12 +8567,59 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
- "license": "ISC"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
},
"node_modules/ws": {
"version": "8.18.3",
@@ -8521,6 +8687,19 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/yaml": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ }
+ },
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
diff --git a/package.json b/package.json
index 6bc3c70..f62cd08 100644
--- a/package.json
+++ b/package.json
@@ -23,10 +23,10 @@
],
"sideEffects": false,
"scripts": {
- "build-css": "tailwindcss -i ./src/in-tailwind.css -o ./src/tailwind.css",
+ "build-css": "postcss ./src/in-tailwind.css -o ./src/tailwind.css",
"build": "npm run build-css && tsup",
"dev": "npm run build-css && tsup --watch",
- "watch-css": "tailwindcss -i ./src/in-tailwind.css -o ./src/tailwind.css --watch",
+ "watch-css": "postcss ./src/in-tailwind.css -o ./src/tailwind.css --watch",
"watch": "concurrently 'npm:dev' 'npm:watch-css'",
"test": "vitest",
"test:ci": "vitest run",
@@ -55,41 +55,43 @@
},
"homepage": "https://github.com/pliosoft/react-enable#readme",
"devDependencies": {
- "@arethetypeswrong/cli": "^0.15.0",
- "@biomejs/biome": "^1.9.4",
- "@tailwindcss/forms": "^0.5.0",
+ "@arethetypeswrong/cli": "^0.18.2",
+ "@biomejs/biome": "^2.2.6",
+ "@tailwindcss/forms": "^0.5.10",
+ "@tailwindcss/postcss": "^4.1.15",
"@testing-library/jest-dom": "^6.1.5",
- "@testing-library/react": "^14.1.2",
- "@types/react": "^18.3.12",
- "@types/react-dom": "^18.3.1",
+ "@testing-library/react": "^16.3.0",
+ "@types/react": "^19.2.2",
+ "@types/react-dom": "^19.2.2",
"@types/tailwindcss": "^3.0.10",
"@vitejs/plugin-react": "^5.0.4",
- "@vitest/coverage-v8": "^2.1.9",
- "@vitest/ui": "^2.1.8",
- "concurrently": "^7.1.0",
+ "@vitest/coverage-v8": "^3.2.4",
+ "@vitest/ui": "^3.2.4",
+ "concurrently": "^9.2.1",
"identity-obj-proxy": "^3.0.0",
- "jsdom": "^25.0.1",
+ "jsdom": "^27.0.1",
"postcss": "^8.4.12",
- "postcss-import": "^14.1.0",
- "postcss-nested": "^5.0.6",
- "postcss-preset-env": "^7.4.3",
+ "postcss-cli": "^11.0.1",
+ "postcss-import": "^16.1.1",
+ "postcss-nested": "^7.0.2",
+ "postcss-preset-env": "^10.4.0",
"postcss-reporter": "^7.0.5",
"postcss-url": "^10.1.3",
- "publint": "^0.2.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
+ "publint": "^0.3.15",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
"react-hooks": "^1.0.1",
- "tailwindcss": "^3.0.24",
+ "tailwindcss": "^4.1.15",
"tsup": "^8.3.5",
"typescript": "^5.6.3",
- "vitest": "^2.1.8"
+ "vitest": "^3.2.4"
},
"peerDependencies": {
"react": "^17 || ^18 || ^19",
"react-dom": "^17 || ^18 || ^19"
},
"dependencies": {
- "@headlessui/react": "^1.5.0",
+ "@headlessui/react": "^2.2.9",
"tslib": "^2.8.1"
},
"engines": {
diff --git a/postcss.config.cjs b/postcss.config.cjs
index 381d76c..a6dd4e7 100644
--- a/postcss.config.cjs
+++ b/postcss.config.cjs
@@ -5,7 +5,7 @@ module.exports = {
require('postcss-preset-env')({
browsers: ['last 2 versions', '> 5%'],
}),
- require('tailwindcss')('./tailwind.config.cjs'),
+ require('@tailwindcss/postcss'),
require('postcss-reporter')({ clearReportedMessages: true }),
process.env.NODE_ENV === 'production' ? require('autoprefixer')() : null,
process.env.NODE_ENV === 'production' ? require('cssnano')({ preset: 'default' }) : null,
diff --git a/src/Enable.spec.tsx b/src/Enable.spec.tsx
index 70b62f3..ad1c60f 100644
--- a/src/Enable.spec.tsx
+++ b/src/Enable.spec.tsx
@@ -1,5 +1,4 @@
import { render } from '@testing-library/react';
-import * as React from 'react';
import { Disable } from './Disable';
import { Enable } from './Enable';
diff --git a/src/Enable.tsx b/src/Enable.tsx
index 160d64d..ee2c751 100644
--- a/src/Enable.tsx
+++ b/src/Enable.tsx
@@ -17,7 +17,7 @@ export function Enable({
feature = [],
allFeatures = [],
children,
-}: EnableProps): JSX.Element | null {
+}: EnableProps): React.JSX.Element | null {
const isAny = useEnabled(feature);
const isAll = useAllEnabled(allFeatures);
diff --git a/src/Features.tsx b/src/Features.tsx
index 3e86684..7a651a4 100644
--- a/src/Features.tsx
+++ b/src/Features.tsx
@@ -1,3 +1,4 @@
+import type * as React from 'react';
import {
type ReactNode,
useEffect,
@@ -41,7 +42,7 @@ export function Features({
disableConsole = false,
storage = window.sessionStorage,
rolloutStableId,
-}: FeatureProps): JSX.Element {
+}: FeatureProps): React.JSX.Element {
// Capture only first value; we don't care about future updates
const featuresRef = useRef(features);
@@ -58,7 +59,7 @@ export function Features({
if (existingId != null) {
return existingId;
}
- } catch (e) {
+ } catch (_e) {
// Can't read from storage; generate new ID
}
}
@@ -70,7 +71,7 @@ export function Features({
if (storage != null) {
try {
storage.setItem(ROLLOUT_ID_KEY, newId);
- } catch (e) {
+ } catch (_e) {
// Can't persist; ID will still work for this session
}
}
diff --git a/src/ToggleFeatures.spec.tsx b/src/ToggleFeatures.spec.tsx
index 78a4ad2..5a8346b 100644
--- a/src/ToggleFeatures.spec.tsx
+++ b/src/ToggleFeatures.spec.tsx
@@ -1,5 +1,4 @@
import { fireEvent, render, screen } from '@testing-library/react';
-import * as React from 'react';
import type { FeatureDescription } from './FeatureState';
import { Features } from './Features';
import { ToggleFeatureUnwrapped } from './ToggleFeatures';
diff --git a/src/ToggleFeatures.tsx b/src/ToggleFeatures.tsx
index 8eedfff..e0d0fa6 100644
--- a/src/ToggleFeatures.tsx
+++ b/src/ToggleFeatures.tsx
@@ -1,4 +1,10 @@
-import { RadioGroup } from '@headlessui/react';
+import {
+ Radio,
+ RadioGroup,
+ RadioGroupDescription,
+ RadioGroupLabel,
+} from '@headlessui/react';
+import type * as React from 'react';
import { type ReactNode, useCallback, useContext, useState } from 'react';
import ReactDOM from 'react-dom';
@@ -16,7 +22,7 @@ function ToggleFeature({
feature,
}: {
feature: FeatureDescription;
-}): JSX.Element | null {
+}): React.JSX.Element | null {
const context = useContext(FeatureContext);
const handleChangeSelection = useCallback(
(value: 'false' | 'true' | 'unset') => {
@@ -62,7 +68,7 @@ function ToggleFeature({
onChange={handleChangeSelection}
value={valueInOverrides}
>
-
+
Feature: {feature.name}
@@ -109,7 +115,7 @@ function ToggleFeature({
{feature.description}
)}
-
+
{[
{
@@ -139,13 +145,10 @@ function ToggleFeature({
description: 'Override the feature to be enabled',
},
].map((option) => (
-
+
classNames(
checked ? 'border-transparent' : 'border-gray-300',
- !disabled && active
- ? 'border-blue-500 ring-2 ring-blue-500'
- : '',
disabled
? 'border-transparent ring-gray-500 cursor-not-allowed'
: 'cursor-pointer',
@@ -156,10 +159,10 @@ function ToggleFeature({
key={option.id}
value={option.id}
>
- {({ checked, active, disabled }) => (
+ {({ checked, disabled }) => (
<>
-
@@ -183,18 +186,18 @@ function ToggleFeature({
fillRule="evenodd"
/>
-
-
+
{option.description}
-
+
>
)}
-
+
))}
@@ -233,7 +236,7 @@ export function ToggleFeatures({
}: {
defaultOpen?: boolean;
hidden?: boolean;
-}): JSX.Element | null {
+}): React.JSX.Element | null {
const [root, setCoreRoot] = useState(null);
const setRoot = (host: HTMLDivElement | null) => {
@@ -281,7 +284,7 @@ export function ToggleFeatureUnwrapped({
}: {
defaultOpen?: boolean;
hidden?: boolean;
-}): JSX.Element | null {
+}): React.JSX.Element | null {
const [open, setOpen] = useState(defaultOpen);
const context = useContext(FeatureContext);
diff --git a/src/in-tailwind.css b/src/in-tailwind.css
index b5c61c9..d4b5078 100644
--- a/src/in-tailwind.css
+++ b/src/in-tailwind.css
@@ -1,3 +1 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+@import 'tailwindcss';
diff --git a/src/tailwind.css b/src/tailwind.css
index 559f2c0..30788fa 100644
--- a/src/tailwind.css
+++ b/src/tailwind.css
@@ -1,1341 +1,1107 @@
-*, ::before, ::after {
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-gradient-from-position: ;
- --tw-gradient-via-position: ;
- --tw-gradient-to-position: ;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
- --tw-contain-size: ;
- --tw-contain-layout: ;
- --tw-contain-paint: ;
- --tw-contain-style: ;
-}
+/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */
+:root:not(#\#), :host:not(#\#) {
+ --font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji",
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
+ "Courier New", monospace;
+ --color-red-500: rgb(251, 44, 54);
+ --color-orange-500: rgb(252, 113, 0);
+ --color-green-500: rgb(0, 198, 90);
+ --color-blue-500: rgb(50, 128, 255);
+ --color-blue-600: rgb(21, 93, 252);
+ --color-gray-300: rgb(209, 213, 220);
+ --color-gray-500: rgb(106, 114, 130);
+ --color-gray-900: rgb(16, 24, 40);
+ --color-white: #fff;
+ --spacing: 0.25rem;
+ --text-xs: 0.75rem;
+ --text-xs--line-height: calc(1 / 0.75);
+ --text-sm: 0.875rem;
+ --text-sm--line-height: calc(1.25 / 0.875);
+ --text-base: 1rem;
+ --text-base--line-height: calc(1.5 / 1);
+ --text-lg: 1.125rem;
+ --text-lg--line-height: calc(1.75 / 1.125);
+ --font-weight-medium: 500;
+ --font-weight-bold: 700;
+ --radius-sm: 0.25rem;
+ --radius-lg: 0.5rem;
+ --default-transition-duration: 150ms;
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ --default-font-family: var(--font-sans);
+ --default-mono-font-family: var(--font-mono);
+}
+@supports (color: color(display-p3 0 0 0%)) {
+:root:not(#\#), :host:not(#\#) {
+ --color-orange-500: rgb(252, 113, 0);
+ --color-green-500: rgb(0, 198, 90);
+ --color-blue-500: rgb(50, 128, 255);
+ }
-::backdrop {
- --tw-border-spacing-x: 0;
- --tw-border-spacing-y: 0;
- --tw-translate-x: 0;
- --tw-translate-y: 0;
- --tw-rotate: 0;
- --tw-skew-x: 0;
- --tw-skew-y: 0;
- --tw-scale-x: 1;
- --tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
- --tw-scroll-snap-strictness: proximity;
- --tw-gradient-from-position: ;
- --tw-gradient-via-position: ;
- --tw-gradient-to-position: ;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: rgb(59 130 246 / 0.5);
- --tw-ring-offset-shadow: 0 0 #0000;
- --tw-ring-shadow: 0 0 #0000;
- --tw-shadow: 0 0 #0000;
- --tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
- --tw-contain-size: ;
- --tw-contain-layout: ;
- --tw-contain-paint: ;
- --tw-contain-style: ;
+@media (color-gamut: p3) {
+:root:not(#\#), :host:not(#\#) {
+ --color-orange-500: color(display-p3 0.94659 0.44979 0.07573);
+ --color-green-500: color(display-p3 0.30873 0.77475 0.37431);
+ --color-blue-500: color(display-p3 0.26642 0.49122 0.98862);
+ }
}
-
-/*
-! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
-*/
-
-/*
-1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
-2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
-*/
-
-*,
-::before,
-::after {
+}
+:not(#\#):not(#\#)::-ms-backdrop {
box-sizing: border-box;
- /* 1 */
- border-width: 0;
- /* 2 */
- border-style: solid;
- /* 2 */
- border-color: #e5e7eb;
- /* 2 */
+ margin: 0;
+ padding: 0;
+ border: 0 solid;
}
-
-::before,
-::after {
- --tw-content: '';
+:not(#\#):not(#\#)::-webkit-file-upload-button {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ border: 0 solid;
+}
+*:not(#\#):not(#\#),
+ :not(#\#):not(#\#)::after,
+ :not(#\#):not(#\#)::before,
+ :not(#\#):not(#\#)::backdrop,
+ :not(#\#):not(#\#)::file-selector-button {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ border: 0 solid;
}
-
-/*
-1. Use a consistent sensible line-height in all browsers.
-2. Prevent adjustments of font size after orientation changes in iOS.
-3. Use a more readable tab size.
-4. Use the user's configured `sans` font-family by default.
-5. Use the user's configured `sans` font-feature-settings by default.
-6. Use the user's configured `sans` font-variation-settings by default.
-7. Disable tap highlights on iOS
-*/
-
-html,
-:host {
+html:not(#\#):not(#\#),
+ :host:not(#\#):not(#\#) {
line-height: 1.5;
- /* 1 */
-webkit-text-size-adjust: 100%;
- /* 2 */
-moz-tab-size: 4;
- /* 3 */
- -o-tab-size: 4;
- tab-size: 4;
- /* 3 */
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
- /* 4 */
- font-feature-settings: normal;
- /* 5 */
+ -o-tab-size: 4;
+ tab-size: 4;
+ font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
+ -webkit-font-feature-settings: normal;
+ font-feature-settings: normal;
+ -webkit-font-feature-settings: var(--default-font-feature-settings, normal);
+ font-feature-settings: var(--default-font-feature-settings, normal);
font-variation-settings: normal;
- /* 6 */
+ font-variation-settings: var(--default-font-variation-settings, normal);
-webkit-tap-highlight-color: transparent;
- /* 7 */
-}
-
-/*
-1. Remove the margin in all browsers.
-2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
-*/
-
-body {
- margin: 0;
- /* 1 */
- line-height: inherit;
- /* 2 */
}
-
-/*
-1. Add the correct height in Firefox.
-2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
-3. Ensure horizontal rules are visible by default.
-*/
-
-hr {
+hr:not(#\#):not(#\#) {
height: 0;
- /* 1 */
color: inherit;
- /* 2 */
border-top-width: 1px;
- /* 3 */
}
-
-/*
-Add the correct text decoration in Chrome, Edge, and Safari.
-*/
-
-abbr:where([title]) {
+abbr:where([title]):not(#\#):not(#\#) {
-webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
-}
-
-/*
-Remove the default font size and weight for headings.
-*/
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
+ text-decoration: underline;
+ text-decoration: underline dotted;
+}
+h1:not(#\#):not(#\#),
+ h2:not(#\#):not(#\#),
+ h3:not(#\#):not(#\#),
+ h4:not(#\#):not(#\#),
+ h5:not(#\#):not(#\#),
+ h6:not(#\#):not(#\#) {
font-size: inherit;
font-weight: inherit;
}
-
-/*
-Reset links to optimize for opt-in styling instead of opt-out.
-*/
-
-a {
+a:not(#\#):not(#\#) {
color: inherit;
+ -webkit-text-decoration: inherit;
text-decoration: inherit;
}
-
-/*
-Add the correct font weight in Edge and Safari.
-*/
-
-b,
-strong {
+b:not(#\#):not(#\#),
+ strong:not(#\#):not(#\#) {
font-weight: bolder;
}
-
-/*
-1. Use the user's configured `mono` font-family by default.
-2. Use the user's configured `mono` font-feature-settings by default.
-3. Use the user's configured `mono` font-variation-settings by default.
-4. Correct the odd `em` font sizing in all browsers.
-*/
-
-code,
-kbd,
-samp,
-pre {
+code:not(#\#):not(#\#),
+ kbd:not(#\#):not(#\#),
+ samp:not(#\#):not(#\#),
+ pre:not(#\#):not(#\#) {
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
- /* 1 */
- font-feature-settings: normal;
- /* 2 */
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
+ -webkit-font-feature-settings: normal;
+ font-feature-settings: normal;
+ -webkit-font-feature-settings: var(--default-mono-font-feature-settings, normal);
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
font-variation-settings: normal;
- /* 3 */
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
font-size: 1em;
- /* 4 */
}
-
-/*
-Add the correct font size in all browsers.
-*/
-
-small {
+small:not(#\#):not(#\#) {
font-size: 80%;
}
-
-/*
-Prevent `sub` and `sup` elements from affecting the line height in all browsers.
-*/
-
-sub,
-sup {
+sub:not(#\#):not(#\#),
+ sup:not(#\#):not(#\#) {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
-
-sub {
+sub:not(#\#):not(#\#) {
bottom: -0.25em;
}
-
-sup {
+sup:not(#\#):not(#\#) {
top: -0.5em;
}
-
-/*
-1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
-2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
-3. Remove gaps between table borders by default.
-*/
-
-table {
+table:not(#\#):not(#\#) {
text-indent: 0;
- /* 1 */
border-color: inherit;
- /* 2 */
border-collapse: collapse;
- /* 3 */
-}
-
-/*
-1. Change the font styles in all browsers.
-2. Remove the margin in Firefox and Safari.
-3. Remove default padding in all browsers.
-*/
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- /* 1 */
- font-feature-settings: inherit;
- /* 1 */
- font-variation-settings: inherit;
- /* 1 */
- font-size: 100%;
- /* 1 */
- font-weight: inherit;
- /* 1 */
- line-height: inherit;
- /* 1 */
- letter-spacing: inherit;
- /* 1 */
- color: inherit;
- /* 1 */
- margin: 0;
- /* 2 */
- padding: 0;
- /* 3 */
-}
-
-/*
-Remove the inheritance of text transform in Edge and Firefox.
-*/
-
-button,
-select {
- text-transform: none;
-}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Remove default button styles.
-*/
-
-button,
-input:where([type='button']),
-input:where([type='reset']),
-input:where([type='submit']) {
- -webkit-appearance: button;
- /* 1 */
- background-color: transparent;
- /* 2 */
- background-image: none;
- /* 2 */
}
-
-/*
-Use the modern Firefox focus style for all focusable elements.
-*/
-
-:-moz-focusring {
+:-moz-focusring:not(#\#):not(#\#) {
outline: auto;
}
-
-/*
-Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
-*/
-
-:-moz-ui-invalid {
- box-shadow: none;
-}
-
-/*
-Add the correct vertical alignment in Chrome and Firefox.
-*/
-
-progress {
+progress:not(#\#):not(#\#) {
vertical-align: baseline;
}
-
-/*
-Correct the cursor style of increment and decrement buttons in Safari.
-*/
-
-::-webkit-inner-spin-button,
-::-webkit-outer-spin-button {
- height: auto;
+summary:not(#\#):not(#\#) {
+ display: list-item;
}
-
-/*
-1. Correct the odd appearance in Chrome and Safari.
-2. Correct the outline style in Safari.
-*/
-
-[type='search'] {
- -webkit-appearance: textfield;
- /* 1 */
- outline-offset: -2px;
- /* 2 */
+ol:not(#\#):not(#\#),
+ ul:not(#\#):not(#\#),
+ menu:not(#\#):not(#\#) {
+ list-style: none;
}
-
-/*
-Remove the inner padding in Chrome and Safari on macOS.
-*/
-
-::-webkit-search-decoration {
- -webkit-appearance: none;
+img:not(#\#):not(#\#),
+ svg:not(#\#):not(#\#),
+ video:not(#\#):not(#\#),
+ canvas:not(#\#):not(#\#),
+ audio:not(#\#):not(#\#),
+ iframe:not(#\#):not(#\#),
+ embed:not(#\#):not(#\#),
+ object:not(#\#):not(#\#) {
+ display: block;
+ vertical-align: middle;
}
-
-/*
-1. Correct the inability to style clickable types in iOS and Safari.
-2. Change font properties to `inherit` in Safari.
-*/
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- /* 1 */
+img:not(#\#):not(#\#),
+ video:not(#\#):not(#\#) {
+ max-width: 100%;
+ height: auto;
+}
+:not(#\#):not(#\#)::-webkit-file-upload-button {
font: inherit;
- /* 2 */
+ -webkit-font-feature-settings: inherit;
+ font-feature-settings: inherit;
+ font-variation-settings: inherit;
+ letter-spacing: inherit;
+ color: inherit;
+ border-radius: 0;
+ background-color: transparent;
+ opacity: 1;
}
-
-/*
-Add the correct display in Chrome and Safari.
-*/
-
-summary {
- display: list-item;
+button:not(#\#):not(#\#),
+ input:not(#\#):not(#\#),
+ select:not(#\#):not(#\#),
+ optgroup:not(#\#):not(#\#),
+ textarea:not(#\#):not(#\#),
+ :not(#\#):not(#\#)::file-selector-button {
+ font: inherit;
+ -webkit-font-feature-settings: inherit;
+ font-feature-settings: inherit;
+ font-variation-settings: inherit;
+ letter-spacing: inherit;
+ color: inherit;
+ border-radius: 0;
+ background-color: transparent;
+ opacity: 1;
}
-
-/*
-Removes the default spacing and border for appropriate elements.
-*/
-
-blockquote,
-dl,
-dd,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-hr,
-figure,
-p,
-pre {
- margin: 0;
+:where(select[multiple]):not(#\#):not(#\#) optgroup {
+ font-weight: bolder;
}
-
-fieldset {
- margin: 0;
- padding: 0;
+:where(select[size]):not(#\#):not(#\#) optgroup {
+ font-weight: bolder;
}
-
-legend {
- padding: 0;
+:where(select[multiple]):not(#\#):not(#\#) optgroup option {
+ padding-left: 20px;
}
-
-ol,
-ul,
-menu {
- list-style: none;
- margin: 0;
- padding: 0;
+:where(select[size]):not(#\#):not(#\#) optgroup option {
+ padding-left: 20px;
}
-
-/*
-Reset default styling for dialogs.
-*/
-
-dialog {
- padding: 0;
+:not(#\#):not(#\#)::-webkit-file-upload-button {
+ margin-right: 4px;
}
-
-/*
-Prevent resizing textareas horizontally by default.
-*/
-
-textarea {
- resize: vertical;
+:not(#\#):not(#\#)::file-selector-button {
+ margin-right: 4px;
}
-
-/*
-1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
-2. Set the default placeholder color to the user's configured gray 400 color.
-*/
-
-input::-moz-placeholder, textarea::-moz-placeholder {
+:not(#\#):not(#\#)::-webkit-input-placeholder {
opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
}
-
-input::placeholder,
-textarea::placeholder {
+:not(#\#):not(#\#)::-moz-placeholder {
opacity: 1;
- /* 1 */
- color: #9ca3af;
- /* 2 */
}
-
-/*
-Set the default cursor for buttons.
-*/
-
-button,
-[role="button"] {
- cursor: pointer;
+:not(#\#):not(#\#):-ms-input-placeholder {
+ opacity: 1;
}
-
-/*
-Make sure disabled buttons don't get the pointer cursor.
-*/
-
-:disabled {
- cursor: default;
+:not(#\#):not(#\#)::-ms-input-placeholder {
+ opacity: 1;
}
-
-/*
-1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
-2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
- This can trigger a poorly considered lint error in some tools but is included by design.
-*/
-
-img,
-svg,
-video,
-canvas,
-audio,
-iframe,
-embed,
-object {
- display: block;
- /* 1 */
- vertical-align: middle;
- /* 2 */
+:not(#\#):not(#\#)::placeholder {
+ opacity: 1;
}
-
-/*
-Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
-*/
-
-img,
-video {
- max-width: 100%;
- height: auto;
+@supports (not (-webkit-appearance: -apple-pay-button)) or
+ (contain-intrinsic-size: 1px) {
+ :not(#\#):not(#\#)::-webkit-input-placeholder {
+ color: currentcolor;
+ }
+ :not(#\#):not(#\#)::-moz-placeholder {
+ color: currentcolor;
+ }
+ :not(#\#):not(#\#):-ms-input-placeholder {
+ color: currentcolor;
+ }
+ :not(#\#):not(#\#)::-ms-input-placeholder {
+ color: currentcolor;
+ }
+ :not(#\#):not(#\#)::placeholder {
+ color: currentcolor;
+ }
+ @supports (color: color-mix(in lab, red, red)) {
+ :not(#\#):not(#\#)::-csstools-invalid-placeholder {
+ color: color-mix(in oklab, currentcolor 50%, transparent);
+ }
+ }
}
-
-/* Make elements with the HTML hidden attribute stay hidden by default */
-
-[hidden]:where(:not([hidden="until-found"])) {
- display: none;
+textarea:not(#\#):not(#\#) {
+ resize: vertical;
}
-
-[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
+:not(#\#):not(#\#)::-webkit-search-decoration {
-webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- background-color: #fff;
- border-color: #6b7280;
- border-width: 1px;
- border-radius: 0px;
- padding-top: 0.5rem;
- padding-right: 0.75rem;
- padding-bottom: 0.5rem;
- padding-left: 0.75rem;
- font-size: 1rem;
- line-height: 1.5rem;
- --tw-shadow: 0 0 #0000;
-}
-
-[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus {
- outline: 2px solid transparent;
- outline-offset: 2px;
- --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
- --tw-ring-offset-width: 0px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: #2563eb;
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
- border-color: #2563eb;
}
-
-input::-moz-placeholder, textarea::-moz-placeholder {
- color: #6b7280;
- opacity: 1;
-}
-
-input::placeholder,textarea::placeholder {
- color: #6b7280;
- opacity: 1;
-}
-
-::-webkit-datetime-edit-fields-wrapper {
- padding: 0;
-}
-
-::-webkit-date-and-time-value {
- min-height: 1.5em;
+:not(#\#):not(#\#)::-webkit-date-and-time-value {
+ min-height: 1lh;
text-align: inherit;
}
-
-::-webkit-datetime-edit {
+:not(#\#):not(#\#)::-webkit-datetime-edit {
+ display: -webkit-inline-box;
display: inline-flex;
}
-
-::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field {
+:not(#\#):not(#\#)::-webkit-datetime-edit-fields-wrapper {
+ padding: 0;
+}
+:not(#\#):not(#\#)::-webkit-datetime-edit,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-year-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-month-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-day-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-hour-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-minute-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-second-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-millisecond-field,
+ :not(#\#):not(#\#)::-webkit-datetime-edit-meridiem-field {
padding-top: 0;
padding-bottom: 0;
}
-
-select {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
- background-position: right 0.5rem center;
- background-repeat: no-repeat;
- background-size: 1.5em 1.5em;
- padding-right: 2.5rem;
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
+:not(#\#):not(#\#)::-webkit-calendar-picker-indicator {
+ line-height: 1;
}
-
-[multiple],[size]:where(select:not([size="1"])) {
- background-image: initial;
- background-position: initial;
- background-repeat: unset;
- background-size: initial;
- padding-right: 0.75rem;
- -webkit-print-color-adjust: unset;
- print-color-adjust: unset;
+:-moz-ui-invalid:not(#\#):not(#\#) {
+ box-shadow: none;
}
-
-[type='checkbox'],[type='radio'] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- padding: 0;
- -webkit-print-color-adjust: exact;
- print-color-adjust: exact;
- display: inline-block;
- vertical-align: middle;
- background-origin: border-box;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- flex-shrink: 0;
- height: 1rem;
- width: 1rem;
- color: #2563eb;
- background-color: #fff;
- border-color: #6b7280;
- border-width: 1px;
- --tw-shadow: 0 0 #0000;
+:not(#\#):not(#\#)::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ appearance: button;
}
-
-[type='checkbox'] {
- border-radius: 0px;
+button:not(#\#):not(#\#),
+ input:where([type="button"], [type="reset"], [type="submit"]):not(#\#):not(#\#),
+ :not(#\#):not(#\#)::file-selector-button {
+ -webkit-appearance: button;
+ -moz-appearance: button;
+ appearance: button;
}
-
-[type='radio'] {
- border-radius: 100%;
+:not(#\#):not(#\#)::-webkit-inner-spin-button,
+ :not(#\#):not(#\#)::-webkit-outer-spin-button {
+ height: auto;
}
-
-[type='checkbox']:focus,[type='radio']:focus {
- outline: 2px solid transparent;
- outline-offset: 2px;
- --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
- --tw-ring-offset-width: 2px;
- --tw-ring-offset-color: #fff;
- --tw-ring-color: #2563eb;
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+[hidden]:where(:not([hidden="until-found"])):not(#\#):not(#\#):not(#\#) {
+ display: none !important;
}
-
-[type='checkbox']:checked,[type='radio']:checked {
- border-color: transparent;
- background-color: currentColor;
- background-size: 100% 100%;
- background-position: center;
- background-repeat: no-repeat;
+.pointer-events-none:not(#\#):not(#\#):not(#\#):not(#\#) {
+ pointer-events: none;
}
-
-[type='checkbox']:checked {
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
+.invisible:not(#\#):not(#\#):not(#\#):not(#\#) {
+ visibility: hidden;
}
-
-@media (forced-colors: active) {
- [type='checkbox']:checked {
- -webkit-appearance: auto;
- -moz-appearance: auto;
- appearance: auto;
- }
+.visible:not(#\#):not(#\#):not(#\#):not(#\#) {
+ visibility: visible;
}
-
-[type='radio']:checked {
- background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
+.sr-only:not(#\#):not(#\#):not(#\#):not(#\#) {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip-path: inset(50%);
+ white-space: nowrap;
+ border-width: 0;
}
-
-@media (forced-colors: active) {
- [type='radio']:checked {
- -webkit-appearance: auto;
- -moz-appearance: auto;
- appearance: auto;
- }
+.absolute:not(#\#):not(#\#):not(#\#):not(#\#) {
+ position: absolute;
}
-
-[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus {
- border-color: transparent;
- background-color: currentColor;
+.fixed:not(#\#):not(#\#):not(#\#):not(#\#) {
+ position: fixed;
}
-
-[type='checkbox']:indeterminate {
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");
- border-color: transparent;
- background-color: currentColor;
- background-size: 100% 100%;
- background-position: center;
- background-repeat: no-repeat;
+.relative:not(#\#):not(#\#):not(#\#):not(#\#) {
+ position: relative;
}
-
-@media (forced-colors: active) {
- [type='checkbox']:indeterminate {
- -webkit-appearance: auto;
- -moz-appearance: auto;
- appearance: auto;
- }
+.-inset-px:not(#\#):not(#\#):not(#\#):not(#\#) {
+ top: -1px;
+ right: -1px;
+ bottom: -1px;
+ left: -1px;
}
-
-[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus {
- border-color: transparent;
- background-color: currentColor;
+.inset-0:not(#\#):not(#\#):not(#\#):not(#\#) {
+ top: calc(var(--spacing) * 0);
+ right: calc(var(--spacing) * 0);
+ bottom: calc(var(--spacing) * 0);
+ left: calc(var(--spacing) * 0);
}
-
-[type='file'] {
- background: unset;
- border-color: inherit;
- border-width: 0;
- border-radius: 0;
- padding: 0;
- font-size: unset;
- line-height: inherit;
+.bottom-0:not(#\#):not(#\#):not(#\#):not(#\#) {
+ bottom: calc(var(--spacing) * 0);
}
-
-[type='file']:focus {
- outline: 1px solid ButtonText;
- outline: 1px auto -webkit-focus-ring-color;
+.left-0:not(#\#):not(#\#):not(#\#):not(#\#) {
+ left: calc(var(--spacing) * 0);
}
-
-.container {
+.z-10:not(#\#):not(#\#):not(#\#):not(#\#) {
+ z-index: 10;
+}
+.container:not(#\#):not(#\#):not(#\#):not(#\#) {
width: 100%;
}
-
-@media (min-width: 640px) {
- .container {
- max-width: 640px;
+@media (min-width: 40rem) {
+ .container:not(#\#):not(#\#):not(#\#):not(#\#) {
+ max-width: 40rem;
}
}
-
-@media (min-width: 768px) {
- .container {
- max-width: 768px;
+@media (min-width: 48rem) {
+ .container:not(#\#):not(#\#):not(#\#):not(#\#) {
+ max-width: 48rem;
}
}
-
-@media (min-width: 1024px) {
- .container {
- max-width: 1024px;
+@media (min-width: 64rem) {
+ .container:not(#\#):not(#\#):not(#\#):not(#\#) {
+ max-width: 64rem;
}
}
-
-@media (min-width: 1280px) {
- .container {
- max-width: 1280px;
+@media (min-width: 80rem) {
+ .container:not(#\#):not(#\#):not(#\#):not(#\#) {
+ max-width: 80rem;
}
}
-
-@media (min-width: 1536px) {
- .container {
- max-width: 1536px;
+@media (min-width: 96rem) {
+ .container:not(#\#):not(#\#):not(#\#):not(#\#) {
+ max-width: 96rem;
}
}
-
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- white-space: nowrap;
- border-width: 0;
+.mx-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-left: calc(var(--spacing) * 4);
+ margin-right: calc(var(--spacing) * 4);
}
-
-.pointer-events-none {
- pointer-events: none;
+.mx-8:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-left: calc(var(--spacing) * 8);
+ margin-right: calc(var(--spacing) * 8);
}
-
-.invisible {
- visibility: hidden;
-}
-
-.fixed {
- position: fixed;
+.my-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 4);
+ margin-bottom: calc(var(--spacing) * 4);
}
-
-.absolute {
- position: absolute;
-}
-
-.relative {
- position: relative;
-}
-
-.-inset-px {
- inset: -1px;
-}
-
-.inset-0 {
- inset: 0px;
-}
-
-.bottom-0 {
- bottom: 0px;
-}
-
-.left-0 {
- left: 0px;
+.mt-1:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 1);
}
-
-.z-10 {
- z-index: 10;
+.mt-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 4);
}
-
-.mx-4 {
- margin-left: 1rem;
- margin-right: 1rem;
+.mt-5:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 5);
}
-
-.mx-8 {
- margin-left: 2rem;
- margin-right: 2rem;
+.mt-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 6);
}
-
-.my-4 {
- margin-top: 1rem;
- margin-bottom: 1rem;
+.block:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: block;
}
-
-.mt-1 {
- margin-top: 0.25rem;
+.contents:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: contents;
}
-
-.mt-4 {
- margin-top: 1rem;
+.flex:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
}
-
-.mt-5 {
- margin-top: 1.25rem;
+.grid:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: grid;
}
-
-.mt-6 {
- margin-top: 1.5rem;
+.hidden:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: none;
}
-
-.inline-block {
+.inline-block:not(#\#):not(#\#):not(#\#):not(#\#) {
display: inline-block;
}
-
-.flex {
- display: flex;
-}
-
-.inline-flex {
+.inline-flex:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
display: inline-flex;
}
-
-.grid {
- display: grid;
+.table:not(#\#):not(#\#):not(#\#):not(#\#) {
+ display: table;
}
-
-.hidden {
- display: none;
+.h-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ height: calc(var(--spacing) * 4);
}
-
-.h-4 {
- height: 1rem;
+.h-5:not(#\#):not(#\#):not(#\#):not(#\#) {
+ height: calc(var(--spacing) * 5);
}
-
-.h-5 {
- height: 1.25rem;
+.h-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ height: calc(var(--spacing) * 6);
}
-
-.h-6 {
- height: 1.5rem;
+.h-7:not(#\#):not(#\#):not(#\#):not(#\#) {
+ height: calc(var(--spacing) * 7);
}
-
-.h-7 {
- height: 1.75rem;
+.h-8:not(#\#):not(#\#):not(#\#):not(#\#) {
+ height: calc(var(--spacing) * 8);
}
-
-.h-8 {
- height: 2rem;
-}
-
-.min-h-6 {
- min-height: 1.5rem;
+.min-h-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ min-height: calc(var(--spacing) * 6);
}
-
-.min-h-screen {
+.min-h-screen:not(#\#):not(#\#):not(#\#):not(#\#) {
min-height: 100vh;
}
-
-.w-4 {
- width: 1rem;
+.w-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ width: calc(var(--spacing) * 4);
}
-
-.w-5 {
- width: 1.25rem;
+.w-5:not(#\#):not(#\#):not(#\#):not(#\#) {
+ width: calc(var(--spacing) * 5);
}
-
-.w-6 {
- width: 1.5rem;
+.w-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ width: calc(var(--spacing) * 6);
}
-
-.w-8 {
- width: 2rem;
+.w-8:not(#\#):not(#\#):not(#\#):not(#\#) {
+ width: calc(var(--spacing) * 8);
}
-
-.min-w-4 {
- min-width: 1rem;
+.max-w-full:not(#\#):not(#\#):not(#\#):not(#\#) {
+ max-width: 100%;
}
-
-.min-w-6 {
- min-width: 1.5rem;
+.min-w-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ min-width: calc(var(--spacing) * 4);
}
-
-.max-w-full {
- max-width: 100%;
+.min-w-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ min-width: calc(var(--spacing) * 6);
}
-
-.shrink {
- flex-shrink: 1;
+.flex-shrink:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
}
-
-.grow {
- flex-grow: 1;
+.shrink:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -ms-flex-negative: 1;
+ flex-shrink: 1;
}
-
-.transform {
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+.flex-grow:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
}
-
-.cursor-not-allowed {
+.grow:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+}
+.border-collapse:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-collapse: collapse;
+}
+.transform:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-transform: ;
+ transform: ;
+ -webkit-transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
+}
+.cursor-not-allowed:not(#\#):not(#\#):not(#\#):not(#\#) {
cursor: not-allowed;
}
-
-.cursor-pointer {
+.cursor-pointer:not(#\#):not(#\#):not(#\#):not(#\#) {
cursor: pointer;
}
-
-.grid-cols-1 {
+.resize:not(#\#):not(#\#):not(#\#):not(#\#) {
+ resize: both;
+}
+.grid-cols-1:not(#\#):not(#\#):not(#\#):not(#\#) {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
-
-.flex-row {
- flex-direction: row;
+.flex-col:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
}
-
-.flex-col {
- flex-direction: column;
+.flex-row:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
}
-
-.flex-nowrap {
- flex-wrap: nowrap;
+.flex-nowrap:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
}
-
-.items-end {
- align-items: flex-end;
+.flex-wrap:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
}
-
-.items-center {
- align-items: center;
+.items-center:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
}
-
-.justify-center {
- justify-content: center;
+.items-end:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-align: end;
+ -ms-flex-align: end;
+ align-items: flex-end;
}
-
-.gap-1 {
- gap: 0.25rem;
+.justify-center:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
}
-
-.gap-2 {
- gap: 0.5rem;
+.gap-1:not(#\#):not(#\#):not(#\#):not(#\#) {
+ gap: calc(var(--spacing) * 1);
}
-
-.gap-4 {
- gap: 1rem;
+.gap-2:not(#\#):not(#\#):not(#\#):not(#\#) {
+ gap: calc(var(--spacing) * 2);
}
-
-.gap-9 {
- gap: 2.25rem;
+.gap-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ gap: calc(var(--spacing) * 4);
}
-
-.gap-y-6 {
- row-gap: 1.5rem;
+.gap-9:not(#\#):not(#\#):not(#\#):not(#\#) {
+ gap: calc(var(--spacing) * 9);
}
-
-.overflow-hidden {
+.gap-y-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ row-gap: calc(var(--spacing) * 6);
+}
+.overflow-hidden:not(#\#):not(#\#):not(#\#):not(#\#) {
overflow: hidden;
}
-
-.overflow-y-auto {
+.overflow-y-auto:not(#\#):not(#\#):not(#\#):not(#\#) {
overflow-y: auto;
}
-
-.rounded-full {
- border-radius: 9999px;
+.rounded-full:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-radius: calc(infinity * 1px);
}
-
-.rounded-lg {
- border-radius: 0.5rem;
+.rounded-lg:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-radius: var(--radius-lg);
}
-
-.rounded-sm {
- border-radius: 0.125rem;
+.rounded-sm:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-radius: var(--radius-sm);
}
-
-.border {
+.border:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-style: var(--tw-border-style);
border-width: 1px;
}
-
-.border-2 {
+.border-2:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-style: var(--tw-border-style);
border-width: 2px;
}
-
-.border-blue-500 {
- --tw-border-opacity: 1;
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
+.border-blue-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-color: var(--color-blue-500);
}
-
-.border-gray-300 {
- --tw-border-opacity: 1;
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
+.border-gray-300:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-color: var(--color-gray-300);
}
-
-.border-gray-500 {
- --tw-border-opacity: 1;
- border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));
+.border-gray-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-color: var(--color-gray-500);
}
-
-.border-green-500 {
- --tw-border-opacity: 1;
- border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
+.border-green-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-color: var(--color-green-500);
}
-
-.border-orange-500 {
- --tw-border-opacity: 1;
- border-color: rgb(249 115 22 / var(--tw-border-opacity, 1));
+.border-orange-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-color: var(--color-orange-500);
}
-
-.border-red-500 {
- --tw-border-opacity: 1;
- border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
+.border-red-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ border-color: var(--color-red-500);
}
-
-.border-transparent {
+.border-transparent:not(#\#):not(#\#):not(#\#):not(#\#) {
border-color: transparent;
}
-
-.bg-blue-600 {
- --tw-bg-opacity: 1;
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
+.bg-blue-600:not(#\#):not(#\#):not(#\#):not(#\#) {
+ background-color: var(--color-blue-600);
}
-
-.bg-white {
- --tw-bg-opacity: 1;
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
+.bg-white:not(#\#):not(#\#):not(#\#):not(#\#) {
+ background-color: var(--color-white);
}
-
-.p-1 {
- padding: 0.25rem;
+.p-1:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding: calc(var(--spacing) * 1);
}
-
-.p-3 {
- padding: 0.75rem;
+.p-3:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding: calc(var(--spacing) * 3);
}
-
-.px-2 {
- padding-left: 0.5rem;
- padding-right: 0.5rem;
+.px-2:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-left: calc(var(--spacing) * 2);
+ padding-right: calc(var(--spacing) * 2);
}
-
-.px-4 {
- padding-left: 1rem;
- padding-right: 1rem;
+.px-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-left: calc(var(--spacing) * 4);
+ padding-right: calc(var(--spacing) * 4);
}
-
-.py-1 {
- padding-top: 0.25rem;
- padding-bottom: 0.25rem;
+.py-1:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-top: calc(var(--spacing) * 1);
+ padding-bottom: calc(var(--spacing) * 1);
}
-
-.pb-0 {
- padding-bottom: 0px;
+.pt-0:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-top: calc(var(--spacing) * 0);
}
-
-.pb-10 {
- padding-bottom: 2.5rem;
+.pt-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-top: calc(var(--spacing) * 4);
}
-
-.pb-4 {
- padding-bottom: 1rem;
+.pt-5:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-top: calc(var(--spacing) * 5);
}
-
-.pl-4 {
- padding-left: 1rem;
+.pr-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-right: calc(var(--spacing) * 4);
}
-
-.pr-4 {
- padding-right: 1rem;
+.pb-0:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-bottom: calc(var(--spacing) * 0);
}
-
-.pt-0 {
- padding-top: 0px;
+.pb-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-bottom: calc(var(--spacing) * 4);
}
-
-.pt-4 {
- padding-top: 1rem;
+.pb-10:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-bottom: calc(var(--spacing) * 10);
}
-
-.pt-5 {
- padding-top: 1.25rem;
+.pl-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding-left: calc(var(--spacing) * 4);
}
-
-.text-left {
+.text-left:not(#\#):not(#\#):not(#\#):not(#\#) {
text-align: left;
}
-
-.align-middle {
+.align-bottom:not(#\#):not(#\#):not(#\#):not(#\#) {
+ vertical-align: bottom;
+}
+.align-middle:not(#\#):not(#\#):not(#\#):not(#\#) {
vertical-align: middle;
}
-
-.align-bottom {
- vertical-align: bottom;
+.text-base:not(#\#):not(#\#):not(#\#):not(#\#) {
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
}
-
-.text-base {
- font-size: 1rem;
- line-height: 1.5rem;
+.text-lg:not(#\#):not(#\#):not(#\#):not(#\#) {
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
}
-
-.text-lg {
- font-size: 1.125rem;
- line-height: 1.75rem;
+.text-sm:not(#\#):not(#\#):not(#\#):not(#\#) {
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
}
-
-.text-sm {
- font-size: 0.875rem;
- line-height: 1.25rem;
+.text-xs:not(#\#):not(#\#):not(#\#):not(#\#) {
+ font-size: var(--text-xs);
+ line-height: var(--tw-leading, var(--text-xs--line-height));
}
-
-.text-xs {
- font-size: 0.75rem;
- line-height: 1rem;
+.leading-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-leading: calc(var(--spacing) * 6);
+ line-height: calc(var(--spacing) * 6);
}
-
-.font-medium {
- font-weight: 500;
+.leading-7:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-leading: calc(var(--spacing) * 7);
+ line-height: calc(var(--spacing) * 7);
}
-
-.leading-6 {
- line-height: 1.5rem;
+.font-bold:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-font-weight: var(--font-weight-bold);
+ font-weight: var(--font-weight-bold);
}
-
-.leading-7 {
- line-height: 1.75rem;
+.font-medium:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-font-weight: var(--font-weight-medium);
+ font-weight: var(--font-weight-medium);
}
-
-.text-blue-500 {
- --tw-text-opacity: 1;
- color: rgb(59 130 246 / var(--tw-text-opacity, 1));
+.text-blue-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-blue-500);
}
-
-.text-gray-500 {
- --tw-text-opacity: 1;
- color: rgb(107 114 128 / var(--tw-text-opacity, 1));
+.text-gray-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-gray-500);
}
-
-.text-gray-900 {
- --tw-text-opacity: 1;
- color: rgb(17 24 39 / var(--tw-text-opacity, 1));
+.text-gray-900:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-gray-900);
}
-
-.text-green-500 {
- --tw-text-opacity: 1;
- color: rgb(34 197 94 / var(--tw-text-opacity, 1));
+.text-green-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-green-500);
}
-
-.text-orange-500 {
- --tw-text-opacity: 1;
- color: rgb(249 115 22 / var(--tw-text-opacity, 1));
+.text-orange-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-orange-500);
}
-
-.text-red-500 {
- --tw-text-opacity: 1;
- color: rgb(239 68 68 / var(--tw-text-opacity, 1));
+.text-red-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-red-500);
}
-
-.text-white {
- --tw-text-opacity: 1;
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
+.text-white:not(#\#):not(#\#):not(#\#):not(#\#) {
+ color: var(--color-white);
}
-
-.shadow {
- --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+.underline:not(#\#):not(#\#):not(#\#):not(#\#) {
+ text-decoration-line: underline;
}
-
-.shadow-sm {
- --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
- --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+.shadow:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
-
-.shadow-xl {
- --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
- --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
+.shadow-sm:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
-
-.ring-2 {
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+.shadow-xl:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgba(0, 0, 0, 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgba(0, 0, 0, 0.1));
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
-
-.ring-blue-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
+.ring-2:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
-
-.ring-gray-500 {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1));
+.ring-blue-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-ring-color: var(--color-blue-500);
}
-
-.invert {
- --tw-invert: invert(100%);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+.ring-gray-500:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-ring-color: var(--color-gray-500);
}
-
-.filter {
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+.outline:not(#\#):not(#\#):not(#\#):not(#\#) {
+ outline-style: var(--tw-outline-style);
+ outline-width: 1px;
}
-
-.transition-all {
+.invert:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-invert: invert(100%);
+ -webkit-filter: invert(100%) ;
+ filter: invert(100%) ;
+ -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+}
+.filter:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-filter: ;
+ filter: ;
+ -webkit-filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+}
+.transition-all:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-transition-property: all;
transition-property: all;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-duration: 150ms;
+ -webkit-transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ -webkit-transition-duration: var(--tw-duration, var(--default-transition-duration));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
}
-
-.focus\:outline-none:focus {
- outline: 2px solid transparent;
- outline-offset: 2px;
-}
-
-.focus\:ring-2:focus {
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
+.focus\:ring-2:focus:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ -webkit-box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
-
-.focus\:ring-blue-600:focus {
- --tw-ring-opacity: 1;
- --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity, 1));
+.focus\:ring-blue-600:focus:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-ring-color: var(--color-blue-600);
}
-
-.focus\:ring-offset-2:focus {
+.focus\:ring-offset-2:focus:not(#\#):not(#\#):not(#\#):not(#\#) {
--tw-ring-offset-width: 2px;
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
}
-
-@media (min-width: 640px) {
- .sm\:my-8 {
- margin-top: 2rem;
- margin-bottom: 2rem;
+.focus\:outline-none:focus:not(#\#):not(#\#):not(#\#):not(#\#) {
+ --tw-outline-style: none;
+ outline-style: none;
+}
+@media (min-width: 40rem) {
+ .sm\:my-8:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 8);
+ margin-bottom: calc(var(--spacing) * 8);
}
-
- .sm\:mt-3 {
- margin-top: 0.75rem;
+}
+@media (min-width: 40rem) {
+ .sm\:mt-3:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 3);
}
-
- .sm\:mt-6 {
- margin-top: 1.5rem;
+}
+@media (min-width: 40rem) {
+ .sm\:mt-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ margin-top: calc(var(--spacing) * 6);
}
-
- .sm\:block {
+}
+@media (min-width: 40rem) {
+ .sm\:block:not(#\#):not(#\#):not(#\#):not(#\#) {
display: block;
}
-
- .sm\:grid-cols-3 {
+}
+@media (min-width: 40rem) {
+ .sm\:grid-cols-3:not(#\#):not(#\#):not(#\#):not(#\#) {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
-
- .sm\:gap-x-4 {
- -moz-column-gap: 1rem;
- column-gap: 1rem;
+}
+@media (min-width: 40rem) {
+ .sm\:gap-x-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ -webkit-column-gap: calc(var(--spacing) * 4);
+ -moz-column-gap: calc(var(--spacing) * 4);
+ column-gap: calc(var(--spacing) * 4);
}
-
- .sm\:p-0 {
- padding: 0px;
+}
+@media (min-width: 40rem) {
+ .sm\:p-0:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding: calc(var(--spacing) * 0);
}
-
- .sm\:p-6 {
- padding: 1.5rem;
+}
+@media (min-width: 40rem) {
+ .sm\:p-6:not(#\#):not(#\#):not(#\#):not(#\#) {
+ padding: calc(var(--spacing) * 6);
}
-
- .sm\:align-middle {
+}
+@media (min-width: 40rem) {
+ .sm\:align-middle:not(#\#):not(#\#):not(#\#):not(#\#) {
vertical-align: middle;
}
-
- .sm\:text-sm {
- font-size: 0.875rem;
- line-height: 1.25rem;
+}
+@media (min-width: 40rem) {
+ .sm\:text-sm:not(#\#):not(#\#):not(#\#):not(#\#) {
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
}
}
-
-@media (min-width: 1024px) {
- .lg\:max-w-\[80\%\] {
+@media (min-width: 64rem) {
+ .lg\:max-w-\[80\%\]:not(#\#):not(#\#):not(#\#):not(#\#) {
max-width: 80%;
}
-
- .lg\:gap-4 {
- gap: 1rem;
+}
+@media (min-width: 64rem) {
+ .lg\:gap-4:not(#\#):not(#\#):not(#\#):not(#\#) {
+ gap: calc(var(--spacing) * 4);
+ }
+}
+@property --tw-rotate-x {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-rotate-y {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-rotate-z {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-skew-x {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-skew-y {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-border-style {
+ syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}
+@property --tw-leading {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-font-weight {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 rgba(0,0,0,0);
+}
+@property --tw-shadow-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-shadow-alpha {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-inset-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 rgba(0,0,0,0);
+}
+@property --tw-inset-shadow-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-inset-shadow-alpha {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-ring-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-ring-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 rgba(0,0,0,0);
+}
+@property --tw-inset-ring-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-inset-ring-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 rgba(0,0,0,0);
+}
+@property --tw-ring-inset {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-ring-offset-width {
+ syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}
+@property --tw-ring-offset-color {
+ syntax: "*";
+ inherits: false;
+ initial-value: #fff;
+}
+@property --tw-ring-offset-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 rgba(0,0,0,0);
+}
+@property --tw-outline-style {
+ syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}
+@property --tw-blur {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-brightness {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-contrast {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-grayscale {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-hue-rotate {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-invert {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-opacity {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-saturate {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-sepia {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-drop-shadow {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-drop-shadow-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-drop-shadow-alpha {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-drop-shadow-size {
+ syntax: "*";
+ inherits: false;
+}
+@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
+ ::-ms-backdrop {
+ --tw-rotate-x: initial;
+ --tw-rotate-y: initial;
+ --tw-rotate-z: initial;
+ --tw-skew-x: initial;
+ --tw-skew-y: initial;
+ --tw-border-style: solid;
+ --tw-leading: initial;
+ --tw-font-weight: initial;
+ --tw-shadow: 0 0 rgba(0,0,0,0);
+ --tw-shadow-color: initial;
+ --tw-shadow-alpha: 100%;
+ --tw-inset-shadow: 0 0 rgba(0,0,0,0);
+ --tw-inset-shadow-color: initial;
+ --tw-inset-shadow-alpha: 100%;
+ --tw-ring-color: initial;
+ --tw-ring-shadow: 0 0 rgba(0,0,0,0);
+ --tw-inset-ring-color: initial;
+ --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);
+ --tw-ring-inset: initial;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);
+ --tw-outline-style: solid;
+ --tw-blur: initial;
+ --tw-brightness: initial;
+ --tw-contrast: initial;
+ --tw-grayscale: initial;
+ --tw-hue-rotate: initial;
+ --tw-invert: initial;
+ --tw-opacity: initial;
+ --tw-saturate: initial;
+ --tw-sepia: initial;
+ --tw-drop-shadow: initial;
+ --tw-drop-shadow-color: initial;
+ --tw-drop-shadow-alpha: 100%;
+ --tw-drop-shadow-size: initial;
+ }
+ *, ::before, ::after, ::backdrop {
+ --tw-rotate-x: initial;
+ --tw-rotate-y: initial;
+ --tw-rotate-z: initial;
+ --tw-skew-x: initial;
+ --tw-skew-y: initial;
+ --tw-border-style: solid;
+ --tw-leading: initial;
+ --tw-font-weight: initial;
+ --tw-shadow: 0 0 rgba(0,0,0,0);
+ --tw-shadow-color: initial;
+ --tw-shadow-alpha: 100%;
+ --tw-inset-shadow: 0 0 rgba(0,0,0,0);
+ --tw-inset-shadow-color: initial;
+ --tw-inset-shadow-alpha: 100%;
+ --tw-ring-color: initial;
+ --tw-ring-shadow: 0 0 rgba(0,0,0,0);
+ --tw-inset-ring-color: initial;
+ --tw-inset-ring-shadow: 0 0 rgba(0,0,0,0);
+ --tw-ring-inset: initial;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-offset-shadow: 0 0 rgba(0,0,0,0);
+ --tw-outline-style: solid;
+ --tw-blur: initial;
+ --tw-brightness: initial;
+ --tw-contrast: initial;
+ --tw-grayscale: initial;
+ --tw-hue-rotate: initial;
+ --tw-invert: initial;
+ --tw-opacity: initial;
+ --tw-saturate: initial;
+ --tw-sepia: initial;
+ --tw-drop-shadow: initial;
+ --tw-drop-shadow-color: initial;
+ --tw-drop-shadow-alpha: 100%;
+ --tw-drop-shadow-size: initial;
}
}
diff --git a/src/usePersist.tsx b/src/usePersist.tsx
index 4985968..3da195f 100644
--- a/src/usePersist.tsx
+++ b/src/usePersist.tsx
@@ -32,7 +32,7 @@ export default function usePersist(
if (storage != null && overrideState.value === 'ready') {
storage.setItem(KEY, strState);
}
- } catch (e) {
+ } catch (_e) {
// Can't set for some reason
}
}, [overrideState, storage, strState]);
From c519bdb35b6365b3d17d43b2b00d9c51839bd6bb Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 21 Oct 2025 22:49:40 +0000
Subject: [PATCH 2/2] Fix jsdom v27 compatibility issue with Vitest v3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Downgrade jsdom from v27.0.1 to v26.1.0 to resolve webidl-conversions
compatibility issue that was causing test failures in CI.
The error was:
TypeError: Cannot read properties of undefined (reading 'get')
at Object. node_modules/webidl-conversions/lib/index.js:325:94
This is a known compatibility issue with jsdom v27 and certain test
environments. jsdom v26.1.0 is stable and fully compatible with Vitest 3.
Testing:
✅ All 160 tests passing
✅ Coverage report generating successfully
✅ No unhandled errors
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude
---
package-lock.json | 218 ++++++++++++++++------------------------------
package.json | 2 +-
2 files changed, 74 insertions(+), 146 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index c25e106..53e6da8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -27,7 +27,7 @@
"@vitest/ui": "^3.2.4",
"concurrently": "^9.2.1",
"identity-obj-proxy": "^3.0.0",
- "jsdom": "^27.0.1",
+ "jsdom": "^26.1.0",
"postcss": "^8.4.12",
"postcss-cli": "^11.0.1",
"postcss-import": "^16.1.1",
@@ -149,39 +149,25 @@
}
},
"node_modules/@asamuzakjp/css-color": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz",
- "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@csstools/css-calc": "^2.1.4",
- "@csstools/css-color-parser": "^3.1.0",
- "@csstools/css-parser-algorithms": "^3.0.5",
- "@csstools/css-tokenizer": "^3.0.4",
- "lru-cache": "^11.2.1"
- }
- },
- "node_modules/@asamuzakjp/dom-selector": {
- "version": "6.7.2",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.2.tgz",
- "integrity": "sha512-ccKogJI+0aiDhOahdjANIc9SDixSud1gbwdVrhn7kMopAtLXqsz9MKmQQtIl6Y5aC2IYq+j4dz/oedL2AVMmVQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@asamuzakjp/nwsapi": "^2.3.9",
- "bidi-js": "^1.0.3",
- "css-tree": "^3.1.0",
- "is-potential-custom-element-name": "^1.0.1",
- "lru-cache": "^11.2.2"
+ "@csstools/css-calc": "^2.1.3",
+ "@csstools/css-color-parser": "^3.0.9",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "lru-cache": "^10.4.3"
}
},
- "node_modules/@asamuzakjp/nwsapi": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz",
- "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==",
+ "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true,
- "license": "MIT"
+ "license": "ISC"
},
"node_modules/@babel/code-frame": {
"version": "7.27.1",
@@ -815,29 +801,6 @@
"@csstools/css-tokenizer": "^3.0.4"
}
},
- "node_modules/@csstools/css-syntax-patches-for-csstree": {
- "version": "1.0.14",
- "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.14.tgz",
- "integrity": "sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
"node_modules/@csstools/css-tokenizer": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
@@ -3932,16 +3895,6 @@
"baseline-browser-mapping": "dist/cli.js"
}
},
- "node_modules/bidi-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
- "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "require-from-string": "^2.0.2"
- }
- },
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -4477,20 +4430,6 @@
"postcss": "^8.4"
}
},
- "node_modules/css-tree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.12.2",
- "source-map-js": "^1.0.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
"node_modules/css.escape": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
@@ -4529,18 +4468,17 @@
}
},
"node_modules/cssstyle": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.1.tgz",
- "integrity": "sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
+ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@asamuzakjp/css-color": "^4.0.3",
- "@csstools/css-syntax-patches-for-csstree": "^1.0.14",
- "css-tree": "^3.1.0"
+ "@asamuzakjp/css-color": "^3.2.0",
+ "rrweb-cssom": "^0.8.0"
},
"engines": {
- "node": ">=20"
+ "node": ">=18"
}
},
"node_modules/csstype": {
@@ -4558,17 +4496,17 @@
"license": "MIT"
},
"node_modules/data-urls": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz",
- "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
"license": "MIT",
"dependencies": {
"whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^15.0.0"
+ "whatwg-url": "^14.0.0"
},
"engines": {
- "node": ">=20"
+ "node": ">=18"
}
},
"node_modules/debug": {
@@ -5314,35 +5252,35 @@
"license": "MIT"
},
"node_modules/jsdom": {
- "version": "27.0.1",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.0.1.tgz",
- "integrity": "sha512-SNSQteBL1IlV2zqhwwolaG9CwhIhTvVHWg3kTss/cLE7H/X4644mtPQqYvCfsSrGQWt9hSZcgOXX8bOZaMN+kA==",
+ "version": "26.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
+ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@asamuzakjp/dom-selector": "^6.7.2",
- "cssstyle": "^5.3.1",
- "data-urls": "^6.0.0",
- "decimal.js": "^10.6.0",
+ "cssstyle": "^4.2.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.5.0",
"html-encoding-sniffer": "^4.0.0",
"http-proxy-agent": "^7.0.2",
"https-proxy-agent": "^7.0.6",
"is-potential-custom-element-name": "^1.0.1",
- "parse5": "^8.0.0",
+ "nwsapi": "^2.2.16",
+ "parse5": "^7.2.1",
"rrweb-cssom": "^0.8.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^6.0.0",
+ "tough-cookie": "^5.1.1",
"w3c-xmlserializer": "^5.0.0",
- "webidl-conversions": "^8.0.0",
+ "webidl-conversions": "^7.0.0",
"whatwg-encoding": "^3.1.1",
"whatwg-mimetype": "^4.0.0",
- "whatwg-url": "^15.1.0",
- "ws": "^8.18.3",
+ "whatwg-url": "^14.1.1",
+ "ws": "^8.18.0",
"xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=20"
+ "node": ">=18"
},
"peerDependencies": {
"canvas": "^3.0.0"
@@ -5804,13 +5742,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/mdn-data": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
- "dev": true,
- "license": "CC0-1.0"
- },
"node_modules/mime": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
@@ -5981,6 +5912,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/nwsapi": {
+ "version": "2.2.22",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
+ "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -6006,9 +5944,9 @@
"license": "MIT"
},
"node_modules/parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz",
- "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==",
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7354,16 +7292,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/resolve": {
"version": "1.22.11",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
@@ -8024,22 +7952,22 @@
}
},
"node_modules/tldts": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz",
- "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==",
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tldts-core": "^7.0.17"
+ "tldts-core": "^6.1.86"
},
"bin": {
"tldts": "bin/cli.js"
}
},
"node_modules/tldts-core": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz",
- "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==",
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
"dev": true,
"license": "MIT"
},
@@ -8067,29 +7995,29 @@
}
},
"node_modules/tough-cookie": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz",
- "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
- "tldts": "^7.0.5"
+ "tldts": "^6.1.32"
},
"engines": {
"node": ">=16"
}
},
"node_modules/tr46": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz",
- "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
"license": "MIT",
"dependencies": {
"punycode": "^2.3.1"
},
"engines": {
- "node": ">=20"
+ "node": ">=18"
}
},
"node_modules/tree-kill": {
@@ -8451,13 +8379,13 @@
}
},
"node_modules/webidl-conversions": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz",
- "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
- "node": ">=20"
+ "node": ">=12"
}
},
"node_modules/whatwg-encoding": {
@@ -8484,17 +8412,17 @@
}
},
"node_modules/whatwg-url": {
- "version": "15.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz",
- "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "tr46": "^6.0.0",
- "webidl-conversions": "^8.0.0"
+ "tr46": "^5.1.0",
+ "webidl-conversions": "^7.0.0"
},
"engines": {
- "node": ">=20"
+ "node": ">=18"
}
},
"node_modules/which": {
diff --git a/package.json b/package.json
index f62cd08..2b13da6 100644
--- a/package.json
+++ b/package.json
@@ -69,7 +69,7 @@
"@vitest/ui": "^3.2.4",
"concurrently": "^9.2.1",
"identity-obj-proxy": "^3.0.0",
- "jsdom": "^27.0.1",
+ "jsdom": "^26.1.0",
"postcss": "^8.4.12",
"postcss-cli": "^11.0.1",
"postcss-import": "^16.1.1",