Socket
Socket
Sign inDemoInstall

twind

Package Overview
Dependencies
3
Maintainers
2
Versions
159
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0-next.35 to 1.0.0-next.36

80

CHANGELOG.md
# twind
## 1.0.0-next.36
### Patch Changes
- relax some typings where the actual generic type does not matter ([`28cbaef5`](https://github.com/tw-in-js/twind/commit/28cbaef54f226e7542e9197b0dab69e55f588806))
* fix: ensure colors DEFAULT values override nested objects ([`43d61076`](https://github.com/tw-in-js/twind/commit/43d610769152aef2943383b3a2574b9be01acc49))
- refactor: include full precendence in resume data ([`80ce410a`](https://github.com/tw-in-js/twind/commit/80ce410a60892ba70fa8805a37aa89f0dbc13c7d))
* fix: move styles generated by `animation()` into `components` layer — this allows to override animation properties using utilities ([`39b45125`](https://github.com/tw-in-js/twind/commit/39b451256c10bd6f82f45015effbefb41aee8a76))
- feat: auto dark colors ([`2f8f69d2`](https://github.com/tw-in-js/twind/commit/2f8f69d27531fad4346af57f0fef3f473d2c6ee3))
If enabled, automatic dark colors are generated for each light color (eg no `dark:` variant is present). This feature is opt-in and twind provides a builtin function that works with [tailwind color palettes](https://tailwindcss.com/docs/customizing-colors) (`50`, `100`, `200`, ..., `800`, `900`).
```ts
import { autoDarkColor } from 'twind'
defineConfig({
// for tailwind color palettes: 50 -> 900, 100 -> 800, ..., 800 -> 100, 900 -> 50
darkColor: autoDarkColor,
// other possible implementations
darkColor: (section, key, { theme }) => theme(`${section}.${key}-dark`) as ColorValue,
darkColor: (section, key, { theme }) => theme(`dark.${section}.${key}`) as ColorValue,
darkColor: (section, key, { theme }) => theme(`${section}.dark.${key}`) as ColorValue,
darkColor: (section, key, context, lightColor) => generateDarkColor(lightColor),
})
```
Example css for `text-gray-900`:
```css
.text-gray-900 {
--tw-text-opacity: 1;
color: rgba(15, 23, 42, var(--tw-text-opacity));
}
@media (prefers-color-scheme: dark) {
.text-gray-900 {
--tw-text-opacity: 1;
color: rgba(248, 250, 252, var(--tw-text-opacity));
}
}
```
The auto-generated dark color can be overridden by the usual `dark:...` variant: `text-gray-900 dark:text-gray-100`.
```css
.text-gray-900 {
--tw-text-opacity: 1;
color: rgba(15, 23, 42, var(--tw-text-opacity));
}
@media (prefers-color-scheme: dark) {
.text-gray-900 {
--tw-text-opacity: 1;
color: rgba(248, 250, 252, var(--tw-text-opacity));
}
}
@media (prefers-color-scheme: dark) {
.dark\\:text-gray-100 {
--tw-text-opacity: 1;
color: rgba(241, 245, 249, var(--tw-text-opacity));
}
}
```
* fix: handle color function in replacement for `theme(...)` ([`9fc5baec`](https://github.com/tw-in-js/twind/commit/9fc5baeca6031d27ac81402b0e614d01c3cd20e7))
- fix: always use rgba color ([`aaad7e44`](https://github.com/tw-in-js/twind/commit/aaad7e4426068a55b00e23df2e084cfc8a46b2ca))
* refactor: move hashing of vars (`--tw-<...>`) from preset-tailwind into core — this allows var hashing without the tailwind preset ([`ae979d12`](https://github.com/tw-in-js/twind/commit/ae979d12fe01cfed32c44eea23ef8a9f2d983eae))
- fix: prevent double class name hashing ([`fc9b0c27`](https://github.com/tw-in-js/twind/commit/fc9b0c277f26e0fc1aad693bd13a80d50b27c71c))
* fix: use `text-decoration-line` ([`346efc4e`](https://github.com/tw-in-js/twind/commit/346efc4e84042d043e17bac8d829f0408279448e))
- fix: ensure theme returns all sections ([`8bbc2a42`](https://github.com/tw-in-js/twind/commit/8bbc2a426054cedc705392eb51aebf0029547d67))
* fix: use same color section detection ([`8dfd105b`](https://github.com/tw-in-js/twind/commit/8dfd105bf0b10d82e3d024b6a318a4b7e6064d90))
## 1.0.0-next.35

@@ -4,0 +84,0 @@

6

package.json
{
"name": "twind",
"version": "1.0.0-next.35",
"version": "1.0.0-next.36",
"description": "The core engine without any presets.",
"type": "module",
"homepage": "https://twind.dev",
"homepage": "https://twind.style",
"bugs": {

@@ -41,3 +41,3 @@ "url": "https://github.com/tw-in-js/twind/issues"

"dependencies": {
"@swc/helpers": "^0.3.2",
"@swc/helpers": "^0.3.3",
"csstype": "^3.0.10"

@@ -44,0 +44,0 @@ },

@@ -59,2 +59,8 @@ import * as CSS$1 from 'csstype';

/**
* returns the dark color
*
* @private
*/
d(section: string, key: string, color: ColorValue): ColorValue | Falsey;
/**
* resolves a variant

@@ -64,3 +70,3 @@ *

*/
v(value: string): string;
v: (value: string) => string;
/**

@@ -71,3 +77,3 @@ * resolves a rule

*/
r(value: string): RuleResult;
r: (value: string, isDark?: boolean) => RuleResult;
/**

@@ -78,3 +84,3 @@ * stringifies a CSS property and value to a declaration

*/
s(property: string, value: string): string;
s: (property: string, value: string) => string;
}

@@ -92,2 +98,6 @@ declare type ThemeValue<T> = T extends Record<string, infer V> ? Exclude<V, Record<string, V>> : T;

<Section extends keyof Theme & string>(key: `${Section}.${string}`, defaultValue: ThemeValue<Theme[Section]>): ThemeValue<Theme[Section]>;
(section: string): unknown | undefined;
(section: string, key: string): unknown | string | undefined;
<T>(section: string, key: string, defaultValue: T): T | string;
<T>(key: string, defaultValue: T): T | string;
}

@@ -110,2 +120,4 @@ declare type RuleResult = string | CSSObject | Falsey | Partial<TwindRule>[];

$$: string;
/** Can be used to propagate a value like a theme value */
dark?: boolean;
};

@@ -131,5 +143,35 @@ interface SheetRule {

declare type DarkModeConfig = 'media' | 'class' | string | boolean | undefined;
/**
* Allows to return a dark color for the given light color.
*
* ```js
* {
* // 50 -> 900, 100 -> 800, ..., 800 -> 100, 900 -> 50
* darkColor: autoDarkColor
* // custom resolvers
* darkColor: (section, key, { theme }) => theme(`${section}.${key}-dark`) as ColorValue
* darkColor: (section, key, { theme }) => theme(`dark.${section}.${key}`) as ColorValue
* darkColor: (section, key, { theme }) => theme(`${section}.dark.${key}`) as ColorValue
* darkColor: (section, key, context, lightColor) => generateDarkColor(lightColor),
* }
* ```
*
* Or use the light color to generate a dark color
*
* ```js
* {
* darkColor: (section, key, context, color) => generateDark(color)
* }
* ```
* @param section the theme section
* @param key the theme key within section — maybe an arbitrary value `[...]`
* @param context the context
* @param color the current color
* @returns the dark color to use
*/
declare type DarkColor<Theme extends BaseTheme> = (section: string, key: string, context: Context<Theme>, color: ColorValue) => ColorValue | Falsey;
interface TwindConfig<Theme extends BaseTheme = BaseTheme> {
/** Allows to change how the `dark` variant is used (default: `"media"`) */
darkMode?: DarkModeConfig;
darkColor?: DarkColor<Theme>;
theme: ThemeConfig<Theme>;

@@ -153,2 +195,3 @@ preflight: false | MaybeThunk<Preflight | Falsey, Theme>[];

darkMode?: DarkModeConfig;
darkColor?: DarkColor<Theme & BaseTheme>;
theme?: ThemeConfig<Theme & BaseTheme>;

@@ -166,2 +209,3 @@ preflight?: false | MaybeArray<Preflight | PreflightThunk<Theme & BaseTheme>>;

darkMode?: DarkModeConfig;
darkColor?: DarkColor<BaseTheme & ExtractThemes<Theme, Presets>>;
theme?: Theme | ThemeConfig<BaseTheme & ExtractThemes<Theme, Presets>>;

@@ -256,2 +300,19 @@ preflight?: false | MaybeArray<Preflight | PreflightThunk<BaseTheme & ExtractThemes<Theme, Presets>>>;

declare function toColorValue(color: ColorValue, options?: ColorFunctionOptions): string;
/**
* Looks for a matching dark color within a [tailwind color palette](https://tailwindcss.com/docs/customizing-colors) (`50`, `100`, `200`, ..., `800`, `900`).
*
* ```js
* defineConfig({
* darkColor: autoDarkColor,
* })
* ```
*
* **Note**: Does not work for arbitrary values like `[theme(colors.gray.500)]` or `[theme(colors.gray.500, #ccc)]`.
*
* @param section within theme to use
* @param key of the light color or an arbitrary value
* @param context to use
* @returns the dark color if found
*/
declare function autoDarkColor(section: string, key: string, { theme }: Context<any>): ColorValue | Falsey;

@@ -372,3 +433,3 @@ /**

*/
declare function extract(html: string, tw?: Twind<BaseTheme, unknown>): ExtractResult;
declare function extract(html: string, tw?: Twind<any, any>): ExtractResult;

@@ -389,19 +450,3 @@ interface InjectGlobalFunction {

declare function auto(setup: () => void): () => void;
/**
* A proxy to the currently active Twind instance.
*/
declare const tw: Twind<BaseTheme, unknown>;
/**
* Manages a single Twind instance — works in browser, Node.js, Deno, workers...
*
* @param config
* @param sheet
* @param target
* @returns
*/
declare function setup<Theme extends BaseTheme = BaseTheme, SheetTarget = unknown>(config?: TwindConfig<Theme>, sheet?: Sheet<SheetTarget>, target?: HTMLElement): Twind<Theme, SheetTarget>;
declare function setup<Theme = BaseTheme, Presets extends Preset<any>[] = Preset[], SheetTarget = unknown>(config?: TwindUserConfig<Theme, Presets>, sheet?: Sheet<SheetTarget>, target?: HTMLElement): Twind<BaseTheme & ExtractThemes<Theme, Presets>, SheetTarget>;
/**
* Options for {@link inline}

@@ -413,3 +458,3 @@ */

*/
tw?: typeof tw;
tw?: Twind<any, any>;
/**

@@ -532,2 +577,18 @@ * Allows to minify the resulting CSS.

declare function auto(setup: () => void): () => void;
/**
* A proxy to the currently active Twind instance.
*/
declare const tw: Twind<BaseTheme, unknown>;
/**
* Manages a single Twind instance — works in browser, Node.js, Deno, workers...
*
* @param config
* @param sheet
* @param target
* @returns
*/
declare function setup<Theme extends BaseTheme = BaseTheme, SheetTarget = unknown>(config?: TwindConfig<Theme>, sheet?: Sheet<SheetTarget>, target?: HTMLElement): Twind<Theme, SheetTarget>;
declare function setup<Theme = BaseTheme, Presets extends Preset<any>[] = Preset[], SheetTarget = unknown>(config?: TwindUserConfig<Theme, Presets>, sheet?: Sheet<SheetTarget>, target?: HTMLElement): Twind<BaseTheme & ExtractThemes<Theme, Presets>, SheetTarget>;
declare type StrictMorphVariant<T> = T extends number ? `${T}` | T : T extends 'true' ? true | T : T extends 'false' ? false | T : T;

@@ -727,3 +788,3 @@ declare type MorphVariant<T> = T extends number ? `${T}` | T : T extends 'true' ? boolean | T : T extends 'false' ? boolean | T : T extends `${number}` ? number | T : T;

export { Animation, AnimationFunction, BaseProperties, BaseTheme, CSSBase, CSSFontFace, CSSNested, CSSObject, CSSProperties, CSSValue, Class, ClassObject, ColorFromThemeOptions, ColorFromThemeValue, ColorFunction, ColorFunctionOptions, ColorRecord, ColorValue, Context, CustomProperties, DarkModeConfig, DefaultVariants, ExtractResult, ExtractThemes, Falsey, FilterByThemeValue, HashFunction, InjectGlobalFunction, InlineMinify, InlineOptions, KebabCase, Keyframes, KeyframesFunction, MatchConverter, MatchResult, MaybeArray, MaybeColorValue, MaybeThunk, MorphVariant, Nested, NestedFunction, PartialTheme, Preflight, PreflightThunk, Preset, PresetThunk, PropsOf, Rule, RuleResolver, RuleResult, ScreenValue, Sheet, SheetRule, StrictMorphVariant, StringLike, StringifyDeclaration, Style, StyleConfig, StyleFunction, StyleProps, StyleToken, StyleTokenValue, ThemeConfig, ThemeFunction, ThemeMatchConverter, ThemeMatchResult, ThemeRuleResolver, ThemeSection, ThemeSectionResolver, ThemeSectionResolverContext, ThemeValue, Twind, TwindConfig, TwindPresetConfig, TwindRule, TwindUserConfig, TxFunction, TypedAtRules, Variant, VariantResolver, VariantResult, VariantsProps, When, animation, apply, arbitrary, asArray, auto, colorFromTheme, consume, css, cssom, cx, defineConfig, dom, escape, extract, fromTheme, getSheet, hash, identity, injectGlobal, inline, install, keyframes, mql, noop, observe, setup, shortcut, stringify, style, toColorValue, tw, twind, tx, virtual };
export { Animation, AnimationFunction, BaseProperties, BaseTheme, CSSBase, CSSFontFace, CSSNested, CSSObject, CSSProperties, CSSValue, Class, ClassObject, ColorFromThemeOptions, ColorFromThemeValue, ColorFunction, ColorFunctionOptions, ColorRecord, ColorValue, Context, CustomProperties, DarkColor, DarkModeConfig, DefaultVariants, ExtractResult, ExtractThemes, Falsey, FilterByThemeValue, HashFunction, InjectGlobalFunction, InlineMinify, InlineOptions, KebabCase, Keyframes, KeyframesFunction, MatchConverter, MatchResult, MaybeArray, MaybeColorValue, MaybeThunk, MorphVariant, Nested, NestedFunction, PartialTheme, Preflight, PreflightThunk, Preset, PresetThunk, PropsOf, Rule, RuleResolver, RuleResult, ScreenValue, Sheet, SheetRule, StrictMorphVariant, StringLike, StringifyDeclaration, Style, StyleConfig, StyleFunction, StyleProps, StyleToken, StyleTokenValue, ThemeConfig, ThemeFunction, ThemeMatchConverter, ThemeMatchResult, ThemeRuleResolver, ThemeSection, ThemeSectionResolver, ThemeSectionResolverContext, ThemeValue, Twind, TwindConfig, TwindPresetConfig, TwindRule, TwindUserConfig, TxFunction, TypedAtRules, Variant, VariantResolver, VariantResult, VariantsProps, When, animation, apply, arbitrary, asArray, auto, autoDarkColor, colorFromTheme, consume, css, cssom, cx, defineConfig, dom, escape, extract, fromTheme, getSheet, hash, identity, injectGlobal, inline, install, keyframes, mql, noop, observe, setup, shortcut, stringify, style, toColorValue, tw, twind, tx, virtual };
//# sourceMappingURL=twind.d.ts.map

@@ -1,1 +0,1 @@

const twind=function(a){"use strict";function b(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function c(a){for(var c=1;c<arguments.length;c++){var d=null!=arguments[c]?arguments[c]:{},e=Object.keys(d);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(d).filter(function(a){return Object.getOwnPropertyDescriptor(d,a).enumerable}))),e.forEach(function(c){b(a,c,d[c])})}return a}function d(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c,d,e={},f=Object.keys(a);for(d=0;d<f.length;d++)c=f[d],b.indexOf(c)>=0||(e[c]=a[c]);return e}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],!(b.indexOf(c)>=0)&&Object.prototype.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}const e=new Map();function f(a,b){return e.set(a,b),a}const g="undefined"!=typeof CSS&&CSS.escape||(a=>a.replace(/[!"'`*+.,;:\\/<=>?@#$%&^|~()[\]{}]/g,"\\$&").replace(/^\d/,"\\3$& "));function h(a){for(var b=9,c=a.length;c--;)b=Math.imul(b^a.charCodeAt(c),1597334677);return"#"+((b^b>>>9)>>>0).toString(36)}function i(a,b="@media "){return b+j(a).map(a=>("string"==typeof a&&(a={min:a}),a.raw||Object.keys(a).map(b=>`(${b}-width:${a[b]})`).join(" and "))).join(",")}function j(a=[]){return Array.isArray(a)?a:null==a?[]:[a]}function k(a){return a}function l(){}function m(a){return[...a.v,(a.i?"!":"")+a.n].join(":")}const n={d:0,b:134217728,c:268435456,s:671088640,u:805306368,o:939524096};function o(a,b){return a& ~n.o|b}function p(a){var b;return(null===(b=a.match(/[-=:;]/g))|| void 0===b?void 0:b.length)||0}function q(a){return Math.min(/(?:^|width[^\d]+)(\d+(?:.\d+)?)(p)?/.test(a)?+RegExp.$1/(RegExp.$2?15:1)/10:0,15)<<22|Math.min(p(a),15)<<18}const r=["rst-c","st-ch","h-chi","y-lin","nk","sited","ecked","pty","ad-on","cus-w","ver","cus","cus-v","tive","sable","tiona","quire",];function s(a){return 1<< ~(/:([a-z-]+)/.test(a)&& ~r.indexOf(RegExp.$1.slice(2,7))|| -18)}function t(a){return"-"==a[0]?0:p(a)+(/^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7}$)|([fl].{5}l|g.{8}$|pl))/.test(a)?+!!RegExp.$1||-!!RegExp.$2:0)+1}function u({n:a,i:b,v:c=[]},d,e,f){for(const g of(a&&(a=m({n:a,i:b,v:c})),f=[...j(f)],c)){const h=d.theme("screens",g),k=h&&i(h)||d.v(g);f.push(k),e|=h?67108864|q(k):"dark"==g?1073741824:"@"==k[0]?q(k):s(k)}return{n:a,p:e,r:f,i:b}}function v(a){if(a.d){const b=[],c=w(a.r.reduce((a,c)=>"@"==c[0]?(b.push(c),a):c?y(a,c):a,"&"),b=>x(b,a.n?"."+g(a.n):""));return c&&b.push(c.replace(/:merge\((.+?)\)/g,"$1")),b.reduceRight((a,b)=>b+"{"+a+"}",a.d)}}function w(a,b){return a.replace(/ *((?:\(.+?\)|\[.+?\]|[^,])+) *(,|$)/g,(a,c,d)=>b(c)+d)}function x(a,b){return a.replace(/&/g,b)}function y(a,b){return w(a,a=>w(b,b=>{const c=/(:merge\(.+?\))(:[a-z-]+|\\[.+])/.exec(b);if(c){const d=a.indexOf(c[1]);return~d?a.slice(0,d)+c[0]+a.slice(d+c[1].length):x(a,b)}return x(b,a)}))}function z(a,b,c,d){return f(a,(a,e)=>{const{n:f,p:g,r:h,i:i}=u(a,e,b);return c&&M(f,b,c,e,g,h,i,d)})}function A(a,b=","){return a.map(m).join(b)}function B(a,b){if("("!=a[a.length-1]){const c=[];let d=!1,e=!1,f="";for(let g of a)if(!("("==g||/[~@]$/.test(g))){if("!"==g[0]&&(g=g.slice(1),d=!d),g.endsWith(":")){c["dark:"==g?"unshift":"push"](g.slice(0,-1));continue}"-"==g[0]&&(g=g.slice(1),e=!e),g.endsWith("-")&&(g=g.slice(0,-1)),g&&"&"!=g&&(f+=(f&&"-")+g)}f&&(e&&(f="-"+f),b[0].push({n:f,v:c.filter(C),i:d}))}}function C(a,b,c){return c.indexOf(a)==b}function D(a){return a.replace(/\/\*[^]*?\*\/|\s\s+|\n/gm," ")}const E=new Map();function F(a){let b=E.get(a);if(!b){a=D(a);const c=[],d=[[]];let e=0,f=0,g=0;const i=(b,f=0)=>{e!=g&&(c.push(a.slice(e,g+f)),b&&B(c,d)),e=g+1};for(;g<a.length;g++){const j=a[g];if(f)"\\"!=a[g-1]&&(f+=+("["==j)||-("]"==j));else if("["==j)f+=1;else if("("==j)i(),c.push(j);else if(":"==j)":"!=a[g+1]&&i(!1,1);else if(/[\s,)]/.test(j)){i(!0);let k=c.lastIndexOf("(");if(")"==j){const l=c[k-1];if(/[~@]$/.test(l)){const m=d.shift();c.length=k,B([...c,"#"],d);const{v:o}=d[0].pop();for(const p of m)p.v.splice(+("dark"==p.v[0])- +("dark"==o[0]),o.length);B([...c,z(l.length>1?l.slice(0,-1)+h(JSON.stringify([l,m])):l+"("+A(m)+")",n.s,m,/@$/.test(l)),],d)}k=c.lastIndexOf("(",k-1)}c.length=k+1}else/[~@]/.test(j)&&"("==a[g+1]&&d.unshift([])}i(!0),E.set(a,b=d[0])}return b}const G=new Intl.Collator("en",{numeric:!0});function H(a,b){for(var c=0,d=a.length;c<d;){const e=d+c>>1;0>=I(a[e],b)?c=e+1:d=e}return d}function I(a,b){const c=a.p&n.o;return c==(b.p&n.o)&&(c==n.b||c==n.o)?0:a.p-b.p||a.o-b.o||G.compare(a.n,b.n)}function J(a,b){const d=[];let e;for(const f of a)f.d&&f.n?(null==e?void 0:e.p)==f.p&&""+e.r==""+f.r?(e.c=[e.c,f.c].filter(Boolean).join(" "),e.d=e.d+";"+f.d):d.push(e=c({},f,{n:f.n&&b})):d.push(c({},f,{n:f.n&&b}));return d}function K(a,b,c=n.u,d,e){const f=[];for(const g of a)for(const h of L(g,b,c,d,e))f.splice(H(f,h),0,h);return f}function L(a,b,d,f,g){var h;a=c({},a,{i:a.i||g});const i=function(a,b){const c=e.get(a.n);return c?c(a,b):b.r(a.n)}(a,b);return i?"string"==typeof i?({r:f,p:d}=u(a,b,d,f),J(K(F(i),b,d,f,a.i),a.n)):Array.isArray(i)?i.map(a=>c({o:0},a,{r:[...j(f),...j(a.r)],p:o(d,null!==(h=a.p)&& void 0!==h?h:d)})):N(i,a,b,d,f):[{c:m(a),p:0,o:0,r:[]}]}function M(a,b,d,e,f,g,h,i){return J((i?d.flatMap(a=>K([a],e,f,g,h)):K(d,e,f,g,h)).map(a=>a.p&n.o&&(a.n||b==n.b)?c({},a,{p:o(a.p,b),o:0}):a),a)}function N(a,b,c,d,e=[]){return O(a,u(b,c,d,e),c)}function O(a,{n:b,p:c,r:d=[],i:e},f){const g=[];let k="",l=0,m=0;for(let p in a||{}){const r=a[p];if("@"==p[0]){if(!r)continue;if("a"==p[1]){g.push(...M(b,c,F(""+r),f,c,d,e,!0));continue}if("l"==p[1]){for(const s of j(r))g.push(...O(s,{n:b,p:o(c,n[p[7]]),r:d,i:e},f));continue}if("i"==p[1]){g.push(...j(r).map(a=>({p:-1,o:0,r:[],d:p+" "+a})));continue}if("k"==p[1]){g.push({p:n.d,o:0,r:[p],d:O(r,{p:n.d},f).map(v).join("")});continue}if("f"==p[1]){g.push(...j(r).map(a=>({p:n.d,o:0,r:[p],d:O(a,{p:n.d},f).map(v).join("")})));continue}}if("object"!=typeof r||Array.isArray(r))"label"==p&&r?b=r+h(JSON.stringify([c,e,a])):(r||0===r)&&(m+=1,l=Math.max(l,t(p=p.replace(/[A-Z]/g,a=>"-"+a.toLowerCase()))),k+=(k?";":"")+j(r).map(a=>f.s(p,P(""+a,f)+(e?" !important":""))).join(";"));else if("@"==p[0]||p.includes("&")){let u=c;"@"==p[0]&&(u|=q(p=p.replace(/\bscreen\(([^)]+)\)/g,(a,b)=>{const c=f.theme("screens",b);return c?(u|=67108864,i(c,"")):a}))),g.push(...O(r,{n:b,p:u,r:[...d,p],i:e},f))}else g.push(...O(r,{p:c,r:[p]},f))}return g.unshift({n:b&&f.h(b),p:c,o:Math.max(0,15-m)+1.5*Math.min(l||15,15),r:d,d:k}),g.sort(I)}function P(a,b){return a.replace(/theme\((["'`])?(.+?)\1(?:\s*,\s*(["'`])?(.+?)\3)?\)/g,(a,c,d,e,f)=>b.theme(d,f))}function Q(a,b,c){return b.reduce((b,d,e)=>b+c(d)+a[e+1],a[0])}function R(a,b){return Array.isArray(a)?T(Q(a,b,a=>null!=a&&"boolean"!=typeof a?a:"")):"string"==typeof a?T(a):[a]}const S=/ *(?:(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}))/g;function T(a){a=D(a);const b=[{}],c=[b[0]],d=[];let e;for(;e=S.exec(a);)e[4]&&(b.shift(),d.shift()),e[3]?(d.unshift(e[3]),b.unshift({}),c.push(d.reduce((a,b)=>({[b]:a}),b[0]))):e[4]||(b[0][e[1]]&&(b.unshift({}),c.push(d.reduce((a,b)=>({[b]:a}),b[0]))),b[0][e[1]]=e[2]);return c}function U(a,...b){var c;const d=R(a,b),e=((null===(c=d.find(a=>a.label))|| void 0===c?void 0:c.label)||"css")+h(JSON.stringify(d));return f(e,(a,b)=>J(d.flatMap(c=>N(c,a,b,n.o)),e))}const V=new Proxy(function a(a,b){return W("animation",a,b)},{get(a,b){return b in a?a[b]:function(a,c){return W(b,a,c)}}});function W(a,b,d){return{toString(){return U(c({label:a},"object"==typeof b?b:{animation:b},{animationName:""+d}))}}}function X(a,b){return Math.round(parseInt(a,16)*b)}function Y(a,b={}){if("function"==typeof a)return a(b);const{opacityValue:c="1",opacityVariable:d}=b,e=d?`var(${d})`:c;if("1"==e)return a;if("0"==e)return"#0000";if("#"==a[0]&&(4==a.length||7==a.length)){const f=(a.length-1)/3,g=[17,1,0.062272][f-1];return`rgba(${[X(a.substr(1,f),g),X(a.substr(1+f,f),g),X(a.substr(1+2*f,f),g),e,]})`}return a}function Z(a,b){return a!=b&&""+a.split(" ").sort()!=""+b.split(" ").sort()}function $(a,b=[]){const c={};for(const d in a){const e=a[d],f="DEFAULT"==d?b:[...b,d];"object"==typeof e&&Object.assign(c,$(e,f)),c[f.join("-")]=e,"DEFAULT"==d&&(c[[...b,d].join("-")]=e)}return c}function _(a,b,c,d,e){for(const f of b){let g=c.get(f);g||c.set(f,g=d(f));const h=g(a,e);if(h)return h}}function aa(a){return ca(a[0],a[1])}function ba(a){return Array.isArray(a)?da(a[0],a[1],a[2]):da(a)}function ca(a,b){return fa(a,"function"==typeof b?b:()=>b)}function da(a,b,c){return fa(a,b?"function"==typeof b?b:"string"==typeof b&&/^[\w-]+$/.test(b)?(a,d)=>({[b]:c?c(a,d):ea(a.input,a.slice(1).find(Boolean)||a.$$||a.input)}):()=>b:a=>({[a[1]]:ea(a.input,a.slice(2).find(Boolean)||a.$$||a.input)}))}function ea(a,b){return"-"==a[0]?`calc(${b} * -1)`:b}function fa(a,b){return ga(a,(a,c,d)=>{const e=c.exec(a);if(e)return e.$$=a.slice(e[0].length),b(e,d)})}function ga(a,b){const c=j(a).map(ha);return(a,d)=>{for(const e of c){const f=b(a,e,d);if(f)return f}}}function ha(a){return"string"==typeof a?new RegExp("^"+a+(a.includes("$")||"-"==a.slice(-1)?"":"$")):a}function ia(a){var{presets:b=[]}=a,e=d(a,["presets"]);let f={preflight:!1!==e.preflight&&[],darkMode:void 0,theme:{},variants:j(e.variants),rules:j(e.rules),ignorelist:j(e.ignorelist),hash:e.hash,stringify:e.stringify||ja};for(const g of j([...b,{darkMode:e.darkMode,preflight:!1!==e.preflight&&j(e.preflight),theme:e.theme},])){const{preflight:h,darkMode:i=f.darkMode,theme:k,variants:l,rules:m,hash:n=f.hash,ignorelist:o,stringify:p=f.stringify}="function"==typeof g?g(f):g;f={preflight:!1!==f.preflight&& !1!==h&&[...f.preflight,...j(h)],darkMode:i,theme:c({},f.theme,k,{extend:c({},f.theme.extend,null==k?void 0:k.extend)}),variants:[...f.variants,...j(l)],rules:[...f.rules,...j(m)],ignorelist:[...f.ignorelist,...j(o)],hash:n,stringify:p}}return f}function ja(a,b){return a+":"+b}function ka(a,b){const e=ia(a),f=function({theme:a,darkMode:b,variants:c,rules:e,hash:f,stringify:i,ignorelist:j}){const l=new Map(),m=new Map(),n=new Map(),o=new Map(),p=ga(j,(a,b)=>b.test(a));return c.push(["dark","class"==b?".dark &":"string"==typeof b&&"media"!=b?b:"@media (prefers-color-scheme:dark)",]),{theme:(function(a){var{extend:b={}}=a,c=d(a,["extend"]);const e={},f={colors:g("colors"),theme:g,negative(){return{}},breakpoints(a){const b={};for(const c in a)"string"==typeof a[c]&&(b["screen-"+c]=a[c]);return b}};function g(a,d,f){if(a){var i;if(/[.[]/.test(a)){const j=[];a.replace(/\[([^\]]+)\]|([^.[]+)/g,(a,b,c=b)=>j.push(c)),a=j.shift(),f=d,d=j.join("-")}const k=e[a]||Object.assign(Object.assign(e[a]={},h(c,a)),h(b,a));return null==d?k:null!==(i=k[d||"DEFAULT"])&& void 0!==i?i:f}const l={};for(const m in c)l[m]=g(m);return l}function h(a,b){let c=a[b];return("function"==typeof c&&(c=c(f)),c&&/color/i.test(b))?$(c):c}return g})(a),e:g,h:"function"==typeof f?a=>f(a,h):f?h:k,s(a,b){return i(a,b,this)},v(a){return l.has(a)||l.set(a,_(a,c,m,aa,this)||"&:"+a),l.get(a)},r(a){return n.has(a)||n.set(a,!p(a,this)&&_(a,e,o,ba,this)),n.get(a)}}}(e),i=new Map(),l=[],m=new Set();function o(a){a=c({},a,{n:a.n&&f.h(a.n)});const d=v(a);if(d&&!m.has(d)){m.add(d);const e=H(l,a);b.insert(d,e,a),l.splice(e,0,a)}return a.n}return b.resume(a=>i.set(a,a),(a,c)=>{b.insert(a,l.length,c),l.push(c),m.add(a)}),Object.defineProperties(function(a){if(!i.size)for(let b of j(e.preflight))"function"==typeof b&&(b=b(f)),b&&("string"==typeof b?M("",n.b,F(b),f,n.b,[],!1,!0):N(b,{},f,n.b)).forEach(o);a=""+a;let c=i.get(a);if(!c){const d=new Set();for(const g of K(F(a),f))d.add(g.c).add(o(g));c=[...d].filter(Boolean).join(" "),i.set(a,c).set(c,c)}return c},Object.getOwnPropertyDescriptors({get target(){return b.target},theme:f.theme,config:e,clear(){b.clear(),m.clear(),i.clear(),l.length=0},destroy(){this.clear(),b.destroy()}}))}function la(a=sa,b=document.documentElement){if(!b)return a;const c=new MutationObserver(e);c.observe(b,{attributeFilter:["class"],subtree:!0,childList:!0}),f(b),e([{target:b,type:""}]);const{destroy:d}=a;function e(a){for(const{type:b,target:d}of a)if("a"==b[0])f(d);else for(const e of d.querySelectorAll("[class]"))f(e);c.takeRecords()}function f(b){const c=b.getAttribute("class");let d;c&&Z(c,d=a(c))&&b.setAttribute("class",d)}return a.destroy=()=>{c.disconnect(),d.call(a)},a}function ma(a){let b=a||document.querySelector("style[data-twind]");return b&&"STYLE"==b.tagName||((b=document.createElement("style")).dataset.twind="",document.head.prepend(b)),b}function na(a){var b;const c=(null===(b=a)|| void 0===b?void 0:b.cssRules)?a:ma(a).sheet;return{target:c,clear(){for(let a=c.cssRules.length;a--;)c.deleteRule(a)},destroy(){var a;null===(a=c.ownerNode)|| void 0===a||a.remove()},insert(a,b){try{c.insertRule(a,b)}catch(d){c.insertRule(":root{}",b),/:-[mwo]/.test(a)||console.warn(d,a)}},resume:l}}function oa(a){const b=ma(a);return{target:b,clear(){b.textContent=""},destroy(){b.remove()},insert(a,c){b.insertBefore(document.createTextNode(a),b.childNodes[c]||null)},resume:l}}function pa(a,b){const c=a?oa():na();return b||(c.resume=ra),c}function qa(a){var b;return(null===(b=a.ownerNode||a)|| void 0===b?void 0:b.textContent)||(a.cssRules?Array.from(a.cssRules,a=>a.cssText):j(a)).join("")}function ra(a,b){const c=qa(this.target),d=/\/\*!([\da-z]+),([\da-z]+)(?:,(.+?))?\*\//g;if(d.test(c)){for(const e of(d.lastIndex=0,this.clear(),document.querySelectorAll("[class]")))a(e.getAttribute("class"));let f,g=0;for(var h;h=d.exec(c),f&&b(c.slice(f.index+f[0].length,null==h?void 0:h.index),{p:g+=parseInt(f[1],36),o:parseInt(f[2],36)/2,n:f[3]}),f=h;);}}const sa=Object.defineProperties(function(...a){return ta(...a)},Object.getOwnPropertyDescriptors({get target(){return ta.target},theme(...a){return ta.theme(...a)},get config(){return ta.config},clear(){return ta.clear()},destroy(){return ta.destroy()}}));let ta;function ua(a={},b=pa(),c){var d;const e=!ta;return e||ta.destroy(),ta=la(ka(a,b),c),e&&(document.activeElement||null===(d=document.querySelector("[autofocus]"))|| void 0===d||d.focus()),ta}function va(a,b=sa){let c="",d=0;return wa(a,(e,f,g)=>{const h=a.slice(e,f),i=b(h);Z(h,i)&&(g=g?"":"\"",c+=a.slice(d,e)+g+i+g,d=f)}),c+a.slice(d,a.length)}function wa(a,b){let c=1,d=0,e="",f="";const g=a=>{5==c&&"class"==f&&b(d,a,e)};for(let h=0;h<a.length;h++){const i=a[h];1==c?"<"==i&&(c="!--"==a.substr(h+1,3)?4:3):4==c?">"==i&&"--"==a.slice(h-2,h)&&(c=1):e?i==e&&"\\"!=a[h-1]&&(g(h),c=2,e=""):"\""==i||"'"==i?(e=i,d+=1):">"==i?(g(h),c=1):c&&("="==i?(f=a.slice(d,h),c=5,d=h+1):"/"==i&&(c<5||">"==a[h+1])?(g(h),c=0):/\s/.test(i)&&(g(h),c=2,d=h+1))}}function xa(a,b){return Array.isArray(a)&&Array.isArray(a.raw)?Q(a,b,a=>ya(a).trim()):b.filter(Boolean).reduce((a,b)=>a+ya(b),a?ya(a):"")}function ya(a){let b="",c;if(a&&"object"==typeof a)if(Array.isArray(a))(c=xa(a[0],a.slice(1)))&&(b+=" "+c);else for(const d in a)a[d]&&(b+=" "+d);else null!=a&&"boolean"!=typeof a&&(b+=" "+a);return b}function za(a,b=sa){return b.clear(),{html:va(a,b),css:qa(b.target)}}const Aa=Ba();function Ba(a){return new Proxy(function(b,...c){return Ca(a,"",b,c)},{get(b,c){return"bind"===c?Ba:c in b?b[c]:function(b,...d){return Ca(a,c,b,d)}}})}function Ca(a,b,c,d){return{toString(){const e=R(c,d),f=g(b+h(JSON.stringify([b,e])));return("function"==typeof a?a:sa)(U({[`@keyframes ${f}`]:R(c,d)})),f}}}const Da=Fa("@"),Ea=Fa("~");function Fa(a){function b(b,c,d){return A(F(b+a+"("+xa(c,d)+")"))}return new Proxy(function(a,...c){return b("",a,c)},{get(a,c){return c in a?a[c]:function(a,...d){return b(c,a,d)}}})}function Ga(a,b,c){if("["==a[0]&&"]"==a.slice(-1)){if(a=P(a.slice(1,-1),c),/color|fill|stroke/i.test(b)){if(/^(#|((hsl|rgb)a?|hwb|lab|lch|color)\(|[a-z]+$)/.test(a))return a}else if(!/image/i.test(b))return a.includes("calc(")&&(a=a.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,"$1 $2 ")),a.replace(/(^|[^\\])_+(?![^(]*\))/g,(a,b)=>b+" ".repeat(a.length-1)).replace(/\\_(?![^(]*\))/g,"_");else if(/^[a-z-]+\(/.test(a))return a}}function Ha(a){return a.replace(/-./g,a=>a[1].toUpperCase())}function Ia(a={},b){const{label:d="style",base:e,props:f={},defaults:i,when:j=[]}=a,k=c({},null==b?void 0:b.defaults,i),l=h(JSON.stringify([d,null==b?void 0:b.className,e,f,k,j])),m=o("",e||"",n.c);function o(a,c,e){return z(((b?b.className.replace(/#.+$/,"~"):"")+d+a+l).replace(/[: ,()[\]]/,""),e,c&&F(c))}return Object.defineProperties(function(a){let d;Array.isArray(a)&&(d=!0,a=Object.fromEntries(new URLSearchParams(a[1]).entries()));const e=c({},k,a);let g=d?"":(b?b(e)+" ":"")+m,h;for(const i in f){const l=f[i],n=e[i];if(n===Object(n)){let p="";for(const q in h="",n){const r=l[n[q]];r&&(p+="@"+q+"-"+n[q],h+=(h&&" ")+("_"==q?r:q+":("+r+")"))}h&&(g+=" "+o("--"+i+"-"+p,h,402653184))}else(h=l[n])&&(g+=" "+o("--"+i+"-"+n,h,402653184))}return j.forEach((a,b)=>{let c="";for(const d in a[0]){const f=e[d];if(f!==Object(f)&&""+f==""+a[0][d])c+=(c&&"_")+d+"-"+f;else{c="";break}}c&&(h=a[1])&&(g+=" "+o("-"+b+"--"+c,h,536870912))}),g},Object.getOwnPropertyDescriptors({className:m,defaults:k,selector:"."+g(m)}))}return a.animation=V,a.apply=Da,a.arbitrary=Ga,a.asArray=j,a.auto=function(a){if(document.currentScript){const b=()=>c.disconnect(),c=new MutationObserver(c=>{for(const{target:d}of c)if(d===document.body)return a(),b()});return c.observe(document.documentElement,{childList:!0,subtree:!0}),b}return l},a.colorFromTheme=function(a={},b){return(c,d)=>{const{section:e=Ha(c[0]).replace("-","")+"Color"}=a;if(!/^(\[[^\]]+]|[^/]+?)(?:\/(.+))?$/.test(c.$$))return;const{$1:f,$2:g}=RegExp,h=d.theme(e,f)||Ga(f,e,d);if(!h)return;const{opacityVariable:i=`--tw-${c[0].replace(/-$/,"")}-opacity`,opacitySection:j=e.replace("Color","Opacity"),property:k=e,selector:l}=a,m=d.theme(j,g||"DEFAULT")||g&&Ga(g,j,d),n=Y(h,{opacityVariable:i||void 0,opacityValue:m||void 0});if(b)return c._={value:n,color:a=>Y(h,a)},b(c,d);const o={};return i&&n.includes(i)&&(o[i]=m||"1"),o[k]=n,l?{[l]:o}:o}},a.consume=va,a.css=U,a.cssom=na,a.cx=function(a,...b){return A(F(xa(a,b))," ")},a.defineConfig=ia,a.dom=oa,a.escape=g,a.extract=za,a.fromTheme=function(a,b,c){const d=b?"string"==typeof b?(a,d)=>({[b]:c?c(a,d):a._}):b:({1:a,_:b},c,d)=>({[a||d]:b});return(b,c)=>{var e;const f=Ha(a||b[1]),g=null!==(e=c.theme(f,b.$$))&& void 0!==e?e:Ga(b.$$,f,c);if(null!=g)return b._="-"==b.input[0]?`calc(${g} * -1)`:g,d(b,c,f)}},a.getSheet=pa,a.hash=h,a.identity=k,a.injectGlobal=function(a,...b){("function"==typeof this?this:sa)(U({"@layer base":R(a,b)}))},a.inline=function(a,b={}){const{tw:c=sa,minify:d=k}="function"==typeof b?{tw:b}:b,{html:e,css:f}=za(a,c);return e.replace("</head>",`<style data-twind>${d(f,e)}</style></head>`)},a.install=function(a,b){var d;const e=ia(a);return ua(c({},e,{hash:null!==(d=e.hash)&& void 0!==d?d:b}),pa(!b))},a.keyframes=Aa,a.mql=i,a.noop=l,a.observe=la,a.setup=ua,a.shortcut=Ea,a.stringify=qa,a.style=(a,b)=>"function"==typeof a?Ia(b,a):Ia(a),a.toColorValue=Y,a.tw=sa,a.twind=ka,a.tx=function(a,...b){return("function"==typeof this?this:sa)(xa(a,b))},a.virtual=function(a){const b=[],c=[];return{get target(){return a?b.map((a,b)=>{var d;const e=c[b],f=e.p-((null===(d=c[b-1])|| void 0===d?void 0:d.p)||0);return`/*!${f.toString(36)},${(2*e.o).toString(36)}${e.n?","+e.n:""}*/${a}`}):b},clear(){b.length=0},destroy(){this.clear()},insert(a,d,e){b.splice(d,0,a),c.splice(d,0,e)},resume:l}},a}({})//# sourceMappingURL=twind.global.js.map
const twind=function(a){"use strict";function b(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function c(a){for(var c=1;c<arguments.length;c++){var d=null!=arguments[c]?arguments[c]:{},e=Object.keys(d);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(d).filter(function(a){return Object.getOwnPropertyDescriptor(d,a).enumerable}))),e.forEach(function(c){b(a,c,d[c])})}return a}function d(a,b){if(null==a)return{};var c,d,e=function(a,b){if(null==a)return{};var c,d,e={},f=Object.keys(a);for(d=0;d<f.length;d++)c=f[d],b.indexOf(c)>=0||(e[c]=a[c]);return e}(a,b);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(a);for(d=0;d<f.length;d++)c=f[d],!(b.indexOf(c)>=0)&&Object.prototype.propertyIsEnumerable.call(a,c)&&(e[c]=a[c])}return e}const e=new Map();function f(a,b){return e.set(a,b),a}const g="undefined"!=typeof CSS&&CSS.escape||(a=>a.replace(/[!"'`*+.,;:\\/<=>?@#$%&^|~()[\]{}]/g,"\\$&").replace(/^\d/,"\\3$& "));function h(a){for(var b=9,c=a.length;c--;)b=Math.imul(b^a.charCodeAt(c),1597334677);return"#"+((b^b>>>9)>>>0).toString(36)}function i(a,b="@media "){return b+j(a).map(a=>("string"==typeof a&&(a={min:a}),a.raw||Object.keys(a).map(b=>`(${b}-width:${a[b]})`).join(" and "))).join(",")}function j(a=[]){return Array.isArray(a)?a:null==a?[]:[a]}function k(a){return a}function l(){}function m(a){return[...a.v,(a.i?"!":"")+a.n].join(":")}const n={d:0,b:134217728,c:268435456,s:671088640,u:805306368,o:939524096};function o(a,b){return a& ~n.o|b}function p(a){var b;return(null===(b=a.match(/[-=:;]/g))|| void 0===b?void 0:b.length)||0}function q(a){return Math.min(/(?:^|width[^\d]+)(\d+(?:.\d+)?)(p)?/.test(a)?+RegExp.$1/(RegExp.$2?15:1)/10:0,15)<<22|Math.min(p(a),15)<<18}const r=["rst-c","st-ch","h-chi","y-lin","nk","sited","ecked","pty","ad-on","cus-w","ver","cus","cus-v","tive","sable","tiona","quire",];function s(a){return 1<< ~(/:([a-z-]+)/.test(a)&& ~r.indexOf(RegExp.$1.slice(2,7))|| -18)}function t(a){return"-"==a[0]?0:p(a)+(/^(?:(border-(?!w|c|sty)|[tlbr].{2,4}m?$|c.{7}$)|([fl].{5}l|g.{8}$|pl))/.test(a)?+!!RegExp.$1||-!!RegExp.$2:0)+1}function u({n:a,i:b,v:c=[]},d,e,f){for(const g of(a&&(a=m({n:a,i:b,v:c})),f=[...j(f)],c)){const h=d.theme("screens",g),k=h&&i(h)||d.v(g);f.push(k),e|=h?67108864|q(k):"dark"==g?1073741824:"@"==k[0]?q(k):s(k)}return{n:a,p:e,r:f,i:b}}function v(a){if(a.d){const b=[],c=w(a.r.reduce((a,c)=>"@"==c[0]?(b.push(c),a):c?y(a,c):a,"&"),b=>x(b,a.n?"."+g(a.n):""));return c&&b.push(c.replace(/:merge\((.+?)\)/g,"$1")),b.reduceRight((a,b)=>b+"{"+a+"}",a.d)}}function w(a,b){return a.replace(/ *((?:\(.+?\)|\[.+?\]|[^,])+) *(,|$)/g,(a,c,d)=>b(c)+d)}function x(a,b){return a.replace(/&/g,b)}function y(a,b){return w(a,a=>w(b,b=>{const c=/(:merge\(.+?\))(:[a-z-]+|\\[.+])/.exec(b);if(c){const d=a.indexOf(c[1]);return~d?a.slice(0,d)+c[0]+a.slice(d+c[1].length):x(a,b)}return x(b,a)}))}function z(a,b,c,d){return f(a,(a,e)=>{const{n:f,p:g,r:h,i:i}=u(a,e,b);return c&&M(f,b,c,e,g,h,i,d)})}function A(a,b=","){return a.map(m).join(b)}function B(a,b){if("("!=a[a.length-1]){const c=[];let d=!1,e=!1,f="";for(let g of a)if(!("("==g||/[~@]$/.test(g))){if("!"==g[0]&&(g=g.slice(1),d=!d),g.endsWith(":")){c["dark:"==g?"unshift":"push"](g.slice(0,-1));continue}"-"==g[0]&&(g=g.slice(1),e=!e),g.endsWith("-")&&(g=g.slice(0,-1)),g&&"&"!=g&&(f+=(f&&"-")+g)}f&&(e&&(f="-"+f),b[0].push({n:f,v:c.filter(C),i:d}))}}function C(a,b,c){return c.indexOf(a)==b}function D(a){return a.replace(/\/\*[^]*?\*\/|\s\s+|\n/gm," ")}const E=new Map();function F(a){let b=E.get(a);if(!b){a=D(a);const c=[],d=[[]];let e=0,f=0,g=0;const i=(b,f=0)=>{e!=g&&(c.push(a.slice(e,g+f)),b&&B(c,d)),e=g+1};for(;g<a.length;g++){const j=a[g];if(f)"\\"!=a[g-1]&&(f+=+("["==j)||-("]"==j));else if("["==j)f+=1;else if("("==j)i(),c.push(j);else if(":"==j)":"!=a[g+1]&&i(!1,1);else if(/[\s,)]/.test(j)){i(!0);let k=c.lastIndexOf("(");if(")"==j){const l=c[k-1];if(/[~@]$/.test(l)){const m=d.shift();c.length=k,B([...c,"#"],d);const{v:o}=d[0].pop();for(const p of m)p.v.splice(+("dark"==p.v[0])- +("dark"==o[0]),o.length);B([...c,z(l.length>1?l.slice(0,-1)+h(JSON.stringify([l,m])):l+"("+A(m)+")",n.s,m,/@$/.test(l)),],d)}k=c.lastIndexOf("(",k-1)}c.length=k+1}else/[~@]/.test(j)&&"("==a[g+1]&&d.unshift([])}i(!0),E.set(a,b=d[0])}return b}const G=new Intl.Collator("en",{numeric:!0});function H(a,b){for(var c=0,d=a.length;c<d;){const e=d+c>>1;0>=I(a[e],b)?c=e+1:d=e}return d}function I(a,b){const c=a.p&n.o;return c==(b.p&n.o)&&(c==n.b||c==n.o)?0:a.p-b.p||a.o-b.o||G.compare(a.n,b.n)}function J(a,b){const d=[];let e;for(const f of a)f.d&&f.n?(null==e?void 0:e.p)==f.p&&""+e.r==""+f.r?(e.c=[e.c,f.c].filter(Boolean).join(" "),e.d=e.d+";"+f.d):d.push(e=c({},f,{n:f.n&&b})):d.push(c({},f,{n:f.n&&b}));return d}function K(a,b,c=n.u,d,e){const f=[];for(const g of a)for(const h of L(g,b,c,d,e))f.splice(H(f,h),0,h);return f}function L(a,b,d,f,g){var h;a=c({},a,{i:a.i||g});const i=function(a,b){const c=e.get(a.n);return c?c(a,b):b.r(a.n,"dark"==a.v[0])}(a,b);return i?"string"==typeof i?({r:f,p:d}=u(a,b,d,f),J(K(F(i),b,d,f,a.i),a.n)):Array.isArray(i)?i.map(a=>c({o:0},a,{r:[...j(f),...j(a.r)],p:o(d,null!==(h=a.p)&& void 0!==h?h:d)})):P(i,a,b,d,f):[{c:m(a),p:0,o:0,r:[]}]}function M(a,b,d,e,f,g,h,i){return J((i?d.flatMap(a=>K([a],e,f,g,h)):K(d,e,f,g,h)).map(a=>a.p&n.o&&(a.n||b==n.b)?c({},a,{p:o(a.p,b),o:0}):a),a)}function N(a,b){return Math.round(parseInt(a,16)*b)}function O(a,b={}){if("function"==typeof a)return a(b);const{opacityValue:c="1",opacityVariable:d}=b,e=d?`var(${d})`:c;if("#"==a[0]&&(4==a.length||7==a.length)){const f=(a.length-1)/3,g=[17,1,.062272][f-1];return`rgba(${[N(a.substr(1,f),g),N(a.substr(1+f,f),g),N(a.substr(1+2*f,f),g),e,]})`}return"1"==e?a:"0"==e?"#0000":a}function P(a,b,c,d,e=[]){return Q(a,u(b,c,d,e),c)}function Q(a,{n:b,p:c,r:d=[],i:e},f){const g=[];let k="",l=0,m=0;for(let p in a||{}){const r=a[p];if("@"==p[0]){if(!r)continue;if("a"==p[1]){g.push(...M(b,c,F(""+r),f,c,d,e,!0));continue}if("l"==p[1]){for(const s of j(r))g.push(...Q(s,{n:b,p:o(c,n[p[7]]),r:d,i:e},f));continue}if("i"==p[1]){g.push(...j(r).map(a=>({p:-1,o:0,r:[],d:p+" "+a})));continue}if("k"==p[1]){g.push({p:n.d,o:0,r:[p],d:Q(r,{p:n.d},f).map(v).join("")});continue}if("f"==p[1]){g.push(...j(r).map(a=>({p:n.d,o:0,r:[p],d:Q(a,{p:n.d},f).map(v).join("")})));continue}}if("object"!=typeof r||Array.isArray(r))"label"==p&&r?b=r+h(JSON.stringify([c,e,a])):(r||0===r)&&(m+=1,l=Math.max(l,t(p=p.replace(/[A-Z]/g,a=>"-"+a.toLowerCase()))),k+=(k?";":"")+j(r).map(a=>f.s(p,R(""+a,f)+(e?" !important":""))).join(";"));else if("@"==p[0]||p.includes("&")){let u=c;"@"==p[0]&&(u|=q(p=p.replace(/\bscreen\(([^)]+)\)/g,(a,b)=>{const c=f.theme("screens",b);return c?(u|=67108864,i(c,"")):a}))),g.push(...Q(r,{n:b,p:u,r:[...d,p],i:e},f))}else g.push(...Q(r,{p:c,r:[p]},f))}return g.unshift({n:b,p:c,o:Math.max(0,15-m)+1.5*Math.min(l||15,15),r:d,d:k}),g.sort(I)}function R(a,b){return a.replace(/theme\((["'`])?(.+?)\1(?:\s*,\s*(["'`])?(.+?)\3)?\)/g,(a,c,d,e,f)=>{const g=b.theme(d,f);return"function"==typeof g&&/color|fill|stroke/i.test(d)?O(g):g})}function S(a,b,c){return b.reduce((b,d,e)=>b+c(d)+a[e+1],a[0])}function T(a,b){return Array.isArray(a)?V(S(a,b,a=>null!=a&&"boolean"!=typeof a?a:"")):"string"==typeof a?V(a):[a]}const U=/ *(?:(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}))/g;function V(a){a=D(a);const b=[{}],c=[b[0]],d=[];let e;for(;e=U.exec(a);)e[4]&&(b.shift(),d.shift()),e[3]?(d.unshift(e[3]),b.unshift({}),c.push(d.reduce((a,b)=>({[b]:a}),b[0]))):e[4]||(b[0][e[1]]&&(b.unshift({}),c.push(d.reduce((a,b)=>({[b]:a}),b[0]))),b[0][e[1]]=e[2]);return c}function W(a,...b){var c;const d=T(a,b),e=((null===(c=d.find(a=>a.label))|| void 0===c?void 0:c.label)||"css")+h(JSON.stringify(d));return f(e,(a,b)=>J(d.flatMap(c=>P(c,a,b,n.o)),e))}const X=new Proxy(function a(a,b){return Y("animation",a,b)},{get(a,b){return b in a?a[b]:function(a,c){return Y(b,a,c)}}});function Y(a,b,d){return{toString(){return W({label:a,"@layer components":c({},"object"==typeof b?b:{animation:b},{animationName:""+d})})}}}function Z(a,b){return a!=b&&""+a.split(" ").sort()!=""+b.split(" ").sort()}function $(a,b=[]){const c={};for(const d in a){const e=a[d];let f=[...b,d];c[f.join("-")]=e,"DEFAULT"==d&&(f=b,c[b.join("-")]=e),"object"==typeof e&&Object.assign(c,$(e,f))}return c}function _(a,b,c,d,e,f){for(const g of b){let h=c.get(g);h||c.set(g,h=d(g));const i=h(a,e,f);if(i)return i}}function aa(a){return ca(a[0],a[1])}function ba(a){return Array.isArray(a)?da(a[0],a[1],a[2]):da(a)}function ca(a,b){return fa(a,"function"==typeof b?b:()=>b)}function da(a,b,c){return fa(a,b?"function"==typeof b?b:"string"==typeof b&&/^[\w-]+$/.test(b)?(a,d)=>({[b]:c?c(a,d):ea(a.input,a.slice(1).find(Boolean)||a.$$||a.input)}):()=>b:a=>({[a[1]]:ea(a.input,a.slice(2).find(Boolean)||a.$$||a.input)}))}function ea(a,b){return"-"==a[0]?`calc(${b} * -1)`:b}function fa(a,b){return ga(a,(a,c,d,e)=>{const f=c.exec(a);if(f)return f.$$=a.slice(f[0].length),f.dark=e,b(f,d)})}function ga(a,b){const c=j(a).map(ha);return(a,d,e)=>{for(const f of c){const g=b(a,f,d,e);if(g)return g}}}function ha(a){return"string"==typeof a?new RegExp("^"+a+(a.includes("$")||"-"==a.slice(-1)?"":"$")):a}function ia(a,b){return a.replace(/--(tw-[\w-]+)\b/g,(a,c)=>"--"+b(c).replace("#",""))}function ja(a){var{presets:b=[]}=a,e=d(a,["presets"]);let f={preflight:!1!==e.preflight&&[],darkMode:void 0,darkColor:void 0,theme:{},variants:j(e.variants),rules:j(e.rules),ignorelist:j(e.ignorelist),hash:e.hash,stringify:e.stringify||ka};for(const g of j([...b,{darkMode:e.darkMode,darkColor:e.darkColor,preflight:!1!==e.preflight&&j(e.preflight),theme:e.theme},])){const{preflight:h,darkMode:i=f.darkMode,darkColor:k=f.darkColor,theme:l,variants:m,rules:n,hash:o=f.hash,ignorelist:p,stringify:q=f.stringify}="function"==typeof g?g(f):g;f={preflight:!1!==f.preflight&& !1!==h&&[...f.preflight,...j(h)],darkMode:i,darkColor:k,theme:c({},f.theme,l,{extend:c({},f.theme.extend,null==l?void 0:l.extend)}),variants:[...f.variants,...j(m)],rules:[...f.rules,...j(n)],ignorelist:[...f.ignorelist,...j(p)],hash:o,stringify:q}}return f}function ka(a,b){return a+":"+b}function la(a,b){const e=ja(a),f=function({theme:a,darkMode:b,darkColor:c,variants:e,rules:f,hash:i,stringify:j,ignorelist:l}){const m=new Map(),n=new Map(),o=new Map(),p=new Map(),q=ga(l,(a,b)=>b.test(a));e.push(["dark","class"==b?".dark &":"string"==typeof b&&"media"!=b?b:"@media (prefers-color-scheme:dark)",]);const r="function"==typeof i?a=>i(a,h):i?h:k;return{theme:(function(a){var{extend:b={}}=a,c=d(a,["extend"]);const e={},f={colors:g("colors"),theme:g,negative(){return{}},breakpoints(a){const b={};for(const c in a)"string"==typeof a[c]&&(b["screen-"+c]=a[c]);return b}};function g(a,d,f){if(a){var i;if(/[.[]/.test(a)){const j=[];a.replace(/\[([^\]]+)\]|([^.[]+)/g,(a,b,c=b)=>j.push(c)),a=j.shift(),f=d,d=j.join("-")}const k=e[a]||Object.assign(Object.assign(e[a]={},h(c,a)),h(b,a));return null==d?k:null!==(i=k[d||"DEFAULT"])&& void 0!==i?i:f}const l={};for(const m of[...Object.keys(c),...Object.keys(b)])l[m]=g(m);return l}function h(a,b){let c=a[b];return("function"==typeof c&&(c=c(f)),c&&/color|fill|stroke/i.test(b))?$(c):c}return g})(a),e:g,h:r,s(a,b){return j(ia(a,r),ia(b,r),this)},d(a,b,d){return null==c?void 0:c(a,b,this,d)},v(a){return m.has(a)||m.set(a,_(a,e,n,aa,this)||"&:"+a),m.get(a)},r(a,b){const c=JSON.stringify([a,b]);return o.has(c)||o.set(c,!q(a,this)&&_(a,f,p,ba,this,b)),o.get(c)}}}(e),i=new Map(),l=[],m=new Set();function o(a){const d=a.n&&f.h(a.n),e=v(d?c({},a,{n:d}):a);if(e&&!m.has(e)){m.add(e);const g=H(l,a);b.insert(e,g,a),l.splice(g,0,a)}return d}return b.resume(a=>i.set(a,a),(a,c)=>{b.insert(a,l.length,c),l.push(c),m.add(a)}),Object.defineProperties(function(a){if(!i.size)for(let b of j(e.preflight))"function"==typeof b&&(b=b(f)),b&&("string"==typeof b?M("",n.b,F(b),f,n.b,[],!1,!0):P(b,{},f,n.b)).forEach(o);a=""+a;let c=i.get(a);if(!c){const d=new Set();for(const g of K(F(a),f))d.add(g.c).add(o(g));c=[...d].filter(Boolean).join(" "),i.set(a,c).set(c,c)}return c},Object.getOwnPropertyDescriptors({get target(){return b.target},theme:f.theme,config:e,clear(){b.clear(),m.clear(),i.clear(),l.length=0},destroy(){this.clear(),b.destroy()}}))}function ma(a=ta,b=document.documentElement){if(!b)return a;const c=new MutationObserver(e);c.observe(b,{attributeFilter:["class"],subtree:!0,childList:!0}),f(b),e([{target:b,type:""}]);const{destroy:d}=a;function e(a){for(const{type:b,target:d}of a)if("a"==b[0])f(d);else for(const e of d.querySelectorAll("[class]"))f(e);c.takeRecords()}function f(b){const c=b.getAttribute("class");let d;c&&Z(c,d=a(c))&&b.setAttribute("class",d)}return a.destroy=()=>{c.disconnect(),d.call(a)},a}function na(a){let b=a||document.querySelector("style[data-twind]");return b&&"STYLE"==b.tagName||((b=document.createElement("style")).dataset.twind="",document.head.prepend(b)),b}function oa(a){var b;const c=(null===(b=a)|| void 0===b?void 0:b.cssRules)?a:na(a).sheet;return{target:c,clear(){for(let a=c.cssRules.length;a--;)c.deleteRule(a)},destroy(){var a;null===(a=c.ownerNode)|| void 0===a||a.remove()},insert(a,b){try{c.insertRule(a,b)}catch(d){c.insertRule(":root{}",b),/:-[mwo]/.test(a)||console.warn(d,a)}},resume:l}}function pa(a){const b=na(a);return{target:b,clear(){b.textContent=""},destroy(){b.remove()},insert(a,c){b.insertBefore(document.createTextNode(a),b.childNodes[c]||null)},resume:l}}function qa(a,b){const c=a?pa():oa();return b||(c.resume=sa),c}function ra(a){var b;return(null===(b=a.ownerNode||a)|| void 0===b?void 0:b.textContent)||(a.cssRules?Array.from(a.cssRules,a=>a.cssText):j(a)).join("")}function sa(a,b){const c=ra(this.target),d=/\/\*!([\da-z]+),([\da-z]+)(?:,(.+?))?\*\//g;if(d.test(c)){for(const e of(d.lastIndex=0,this.clear(),document.querySelectorAll("[class]")))a(e.getAttribute("class"));let f;for(var g;g=d.exec(c),f&&b(c.slice(f.index+f[0].length,null==g?void 0:g.index),{p:parseInt(f[1],36),o:parseInt(f[2],36)/2,n:f[3]}),f=g;);}}const ta=Object.defineProperties(function(...a){return ua(...a)},Object.getOwnPropertyDescriptors({get target(){return ua.target},theme(...a){return ua.theme(...a)},get config(){return ua.config},clear(){return ua.clear()},destroy(){return ua.destroy()}}));let ua;function va(a={},b=qa(),c){var d;const e=!ua;return e||ua.destroy(),ua=ma(la(a,b),c),e&&(document.activeElement||null===(d=document.querySelector("[autofocus]"))|| void 0===d||d.focus()),ua}function wa(a,b=ta){let c="",d=0;return xa(a,(e,f,g)=>{const h=a.slice(e,f),i=b(h);Z(h,i)&&(g=g?"":"\"",c+=a.slice(d,e)+g+i+g,d=f)}),c+a.slice(d,a.length)}function xa(a,b){let c=1,d=0,e="",f="";const g=a=>{5==c&&"class"==f&&b(d,a,e)};for(let h=0;h<a.length;h++){const i=a[h];1==c?"<"==i&&(c="!--"==a.substr(h+1,3)?4:3):4==c?">"==i&&"--"==a.slice(h-2,h)&&(c=1):e?i==e&&"\\"!=a[h-1]&&(g(h),c=2,e=""):"\""==i||"'"==i?(e=i,d+=1):">"==i?(g(h),c=1):c&&("="==i?(f=a.slice(d,h),c=5,d=h+1):"/"==i&&(c<5||">"==a[h+1])?(g(h),c=0):/\s/.test(i)&&(g(h),c=2,d=h+1))}}function ya(a,b){return Array.isArray(a)&&Array.isArray(a.raw)?S(a,b,a=>za(a).trim()):b.filter(Boolean).reduce((a,b)=>a+za(b),a?za(a):"")}function za(a){let b="",c;if(a&&"object"==typeof a)if(Array.isArray(a))(c=ya(a[0],a.slice(1)))&&(b+=" "+c);else for(const d in a)a[d]&&(b+=" "+d);else null!=a&&"boolean"!=typeof a&&(b+=" "+a);return b}function Aa(a,b=ta){return b.clear(),{html:wa(a,b),css:ra(b.target)}}const Ba=Ca();function Ca(a){return new Proxy(function(b,...c){return Da(a,"",b,c)},{get(b,c){return"bind"===c?Ca:c in b?b[c]:function(b,...d){return Da(a,c,b,d)}}})}function Da(a,b,c,d){return{toString(){const e=T(c,d),f=g(b+h(JSON.stringify([b,e])));return("function"==typeof a?a:ta)(W({[`@keyframes ${f}`]:T(c,d)})),f}}}const Ea=Ga("@"),Fa=Ga("~");function Ga(a){function b(b,c,d){return A(F(b+a+"("+ya(c,d)+")"))}return new Proxy(function(a,...c){return b("",a,c)},{get(a,c){return c in a?a[c]:function(a,...d){return b(c,a,d)}}})}function Ha(a,b,c){if("["==a[0]&&"]"==a.slice(-1)){if(a=R(a.slice(1,-1),c),/color|fill|stroke/i.test(b)){if(/^(#|((hsl|rgb)a?|hwb|lab|lch|color)\(|[a-z]+$)/.test(a))return a}else if(!/image/i.test(b))return a.includes("calc(")&&(a=a.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g,"$1 $2 ")),a.replace(/(^|[^\\])_+(?![^(]*\))/g,(a,b)=>b+" ".repeat(a.length-1)).replace(/\\_(?![^(]*\))/g,"_");else if(/^[a-z-]+\(/.test(a))return a}}function Ia(a){return a.replace(/-./g,a=>a[1].toUpperCase())}function Ja(a={},b){const{label:d="style",base:e,props:f={},defaults:i,when:j=[]}=a,k=c({},null==b?void 0:b.defaults,i),l=h(JSON.stringify([d,null==b?void 0:b.className,e,f,k,j])),m=o("",e||"",n.c);function o(a,c,e){return z(((b?b.className.replace(/#.+$/,"~"):"")+d+a+l).replace(/[: ,()[\]]/,""),e,c&&F(c))}return Object.defineProperties(function(a){let d;Array.isArray(a)&&(d=!0,a=Object.fromEntries(new URLSearchParams(a[1]).entries()));const e=c({},k,a);let g=d?"":(b?b(e)+" ":"")+m,h;for(const i in f){const l=f[i],n=e[i];if(n===Object(n)){let p="";for(const q in h="",n){const r=l[n[q]];r&&(p+="@"+q+"-"+n[q],h+=(h&&" ")+("_"==q?r:q+":("+r+")"))}h&&(g+=" "+o("--"+i+"-"+p,h,402653184))}else(h=l[n])&&(g+=" "+o("--"+i+"-"+n,h,402653184))}return j.forEach((a,b)=>{let c="";for(const d in a[0]){const f=e[d];if(f!==Object(f)&&""+f==""+a[0][d])c+=(c&&"_")+d+"-"+f;else{c="";break}}c&&(h=a[1])&&(g+=" "+o("-"+b+"--"+c,h,536870912))}),g},Object.getOwnPropertyDescriptors({className:m,defaults:k,selector:"."+g(m)}))}return a.animation=X,a.apply=Ea,a.arbitrary=Ha,a.asArray=j,a.auto=function(a){if(document.currentScript){const b=()=>c.disconnect(),c=new MutationObserver(c=>{for(const{target:d}of c)if(d===document.body)return a(),b()});return c.observe(document.documentElement,{childList:!0,subtree:!0}),b}return l},a.autoDarkColor=function(a,b,{theme:c}){return c(a,b=b.replace(/\d+$/,a=>100*(9- ~~(parseInt(a,10)/100)||.5)))},a.colorFromTheme=function(a={},b){return(c,d)=>{const{section:e=Ia(c[0]).replace("-","")+"Color"}=a;if(!/^(\[[^\]]+]|[^/]+?)(?:\/(.+))?$/.test(c.$$))return;const{$1:f,$2:g}=RegExp,h=d.theme(e,f)||Ha(f,e,d);if(!h)return;const{opacityVariable:i=`--tw-${c[0].replace(/-$/,"")}-opacity`,opacitySection:j=e.replace("Color","Opacity"),property:k=e,selector:l}=a,m=d.theme(j,g||"DEFAULT")||g&&Ha(g,j,d),n=b||(a=>{const b={},c=a._.value;return i&&c.includes(i)&&(b[i]=m||"1"),b[k]=c,l?{[l]:b}:b});c._={value:O(h,{opacityVariable:i||void 0,opacityValue:m||void 0}),color:a=>O(h,a)};let o=n(c,d);if(!c.dark){const p=d.d(e,f,h);p&&p!==h&&(c._={value:O(p,{opacityVariable:i||void 0,opacityValue:m||void 0}),color:a=>O(p,a)},o={"&":o,[d.v("dark")]:n(c,d)})}return o}},a.consume=wa,a.css=W,a.cssom=oa,a.cx=function(a,...b){return A(F(ya(a,b))," ")},a.defineConfig=ja,a.dom=pa,a.escape=g,a.extract=Aa,a.fromTheme=function(a,b,c){const d=b?"string"==typeof b?(a,d)=>({[b]:c?c(a,d):a._}):b:({1:a,_:b},c,d)=>({[a||d]:b});return(b,c)=>{var e;const f=Ia(a||b[1]),g=null!==(e=c.theme(f,b.$$))&& void 0!==e?e:Ha(b.$$,f,c);if(null!=g)return b._="-"==b.input[0]?`calc(${g} * -1)`:g,d(b,c,f)}},a.getSheet=qa,a.hash=h,a.identity=k,a.injectGlobal=function(a,...b){("function"==typeof this?this:ta)(W({"@layer base":T(a,b)}))},a.inline=function(a,b={}){const{tw:c=ta,minify:d=k}="function"==typeof b?{tw:b}:b,{html:e,css:f}=Aa(a,c);return e.replace("</head>",`<style data-twind>${d(f,e)}</style></head>`)},a.install=function(a,b){var d;const e=ja(a);return va(c({},e,{hash:null!==(d=e.hash)&& void 0!==d?d:b}),qa(!b))},a.keyframes=Ba,a.mql=i,a.noop=l,a.observe=ma,a.setup=va,a.shortcut=Fa,a.stringify=ra,a.style=(a,b)=>"function"==typeof a?Ja(b,a):Ja(a),a.toColorValue=O,a.tw=ta,a.twind=la,a.tx=function(a,...b){return("function"==typeof this?this:ta)(ya(a,b))},a.virtual=function(a){const b=[];return{target:b,clear(){b.length=0},destroy(){this.clear()},insert(c,d,e){b.splice(d,0,a?`/*!${e.p.toString(36)},${(2*e.o).toString(36)}${e.n?","+e.n:""}*/${c}`:c)},resume:l}},a}({})//# sourceMappingURL=twind.global.js.map

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc