tailwind-styled-v4 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +398 -0
- package/LICENSE +21 -0
- package/README.md +532 -0
- package/dist/analyzer.d.mts +114 -0
- package/dist/analyzer.d.ts +114 -0
- package/dist/analyzer.js +6808 -0
- package/dist/analyzer.js.map +1 -0
- package/dist/analyzer.mjs +6798 -0
- package/dist/analyzer.mjs.map +1 -0
- package/dist/{animate.d.cts → animate.d.mts} +3 -30
- package/dist/animate.d.ts +3 -30
- package/dist/animate.js +7096 -352
- package/dist/animate.js.map +1 -1
- package/dist/animate.mjs +7482 -0
- package/dist/animate.mjs.map +1 -0
- package/dist/atomic.d.mts +18 -0
- package/dist/atomic.d.ts +18 -0
- package/dist/atomic.js +191 -0
- package/dist/atomic.js.map +1 -0
- package/dist/atomic.mjs +185 -0
- package/dist/atomic.mjs.map +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +45008 -0
- package/dist/cli.js.map +1 -0
- package/dist/cli.mjs +44980 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/compiler.d.mts +1009 -0
- package/dist/compiler.d.ts +1009 -0
- package/dist/compiler.js +4937 -0
- package/dist/compiler.js.map +1 -0
- package/dist/compiler.mjs +4862 -0
- package/dist/compiler.mjs.map +1 -0
- package/dist/dashboard.d.mts +272 -0
- package/dist/dashboard.d.ts +272 -0
- package/dist/dashboard.js +249 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/dashboard.mjs +239 -0
- package/dist/dashboard.mjs.map +1 -0
- package/dist/devtools.js +171 -158
- package/dist/devtools.js.map +1 -1
- package/dist/{devtools.cjs → devtools.mjs} +166 -167
- package/dist/devtools.mjs.map +1 -0
- package/dist/engine.d.mts +398 -0
- package/dist/engine.d.ts +398 -0
- package/dist/engine.js +19264 -0
- package/dist/engine.js.map +1 -0
- package/dist/engine.mjs +19227 -0
- package/dist/engine.mjs.map +1 -0
- package/dist/{index.d.cts → index.d.mts} +12 -5
- package/dist/index.d.ts +12 -5
- package/dist/index.js +7178 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8408 -0
- package/dist/index.mjs.map +1 -0
- package/dist/liveTokenEngine-DYN3Zale.d.mts +34 -0
- package/dist/liveTokenEngine-DYN3Zale.d.ts +34 -0
- package/dist/{next.d.cts → next.d.mts} +2 -1
- package/dist/next.d.ts +2 -1
- package/dist/next.js +24027 -28
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +24232 -0
- package/dist/next.mjs.map +1 -0
- package/dist/plugin.d.mts +90 -0
- package/dist/plugin.d.ts +90 -0
- package/dist/plugin.js +185 -0
- package/dist/plugin.js.map +1 -0
- package/dist/plugin.mjs +174 -0
- package/dist/plugin.mjs.map +1 -0
- package/dist/pluginRegistry.d.mts +83 -0
- package/dist/pluginRegistry.d.ts +83 -0
- package/dist/pluginRegistry.js +303 -0
- package/dist/pluginRegistry.js.map +1 -0
- package/dist/pluginRegistry.mjs +298 -0
- package/dist/pluginRegistry.mjs.map +1 -0
- package/dist/preset.js +9 -4
- package/dist/preset.js.map +1 -1
- package/dist/{preset.cjs → preset.mjs} +5 -14
- package/dist/preset.mjs.map +1 -0
- package/dist/rspack.d.mts +33 -0
- package/dist/rspack.d.ts +33 -0
- package/dist/rspack.js +66 -0
- package/dist/rspack.js.map +1 -0
- package/dist/rspack.mjs +55 -0
- package/dist/rspack.mjs.map +1 -0
- package/dist/runtime.d.mts +62 -0
- package/dist/runtime.d.ts +62 -0
- package/dist/runtime.js +455 -0
- package/dist/runtime.js.map +1 -0
- package/dist/runtime.mjs +436 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/runtimeCss.d.mts +65 -0
- package/dist/runtimeCss.d.ts +65 -0
- package/dist/{css.cjs → runtimeCss.js} +71 -4
- package/dist/runtimeCss.js.map +1 -0
- package/dist/{css.js → runtimeCss.mjs} +66 -5
- package/dist/runtimeCss.mjs.map +1 -0
- package/dist/scanner.d.mts +25 -0
- package/dist/scanner.d.ts +25 -0
- package/dist/scanner.js +5774 -0
- package/dist/scanner.js.map +1 -0
- package/dist/scanner.mjs +5760 -0
- package/dist/scanner.mjs.map +1 -0
- package/dist/shared.d.mts +85 -0
- package/dist/shared.d.ts +85 -0
- package/dist/shared.js +255 -0
- package/dist/shared.js.map +1 -0
- package/dist/shared.mjs +233 -0
- package/dist/shared.mjs.map +1 -0
- package/dist/storybookAddon.d.mts +108 -0
- package/dist/storybookAddon.d.ts +108 -0
- package/dist/storybookAddon.js +95 -0
- package/dist/storybookAddon.js.map +1 -0
- package/dist/storybookAddon.mjs +88 -0
- package/dist/storybookAddon.mjs.map +1 -0
- package/dist/svelte.d.mts +114 -0
- package/dist/svelte.d.ts +114 -0
- package/dist/svelte.js +67 -0
- package/dist/svelte.js.map +1 -0
- package/dist/svelte.mjs +59 -0
- package/dist/svelte.mjs.map +1 -0
- package/dist/testing.d.mts +185 -0
- package/dist/testing.d.ts +185 -0
- package/dist/testing.js +173 -0
- package/dist/testing.js.map +1 -0
- package/dist/testing.mjs +158 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/theme.d.mts +188 -0
- package/dist/theme.d.ts +188 -0
- package/dist/theme.js +334 -0
- package/dist/theme.js.map +1 -0
- package/dist/theme.mjs +311 -0
- package/dist/theme.mjs.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types-DXr2PmGP.d.mts +31 -0
- package/dist/types-DXr2PmGP.d.ts +31 -0
- package/dist/vite.js +29611 -17
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +29712 -0
- package/dist/vite.mjs.map +1 -0
- package/dist/vue.d.mts +89 -0
- package/dist/vue.d.ts +89 -0
- package/dist/vue.js +104 -0
- package/dist/vue.js.map +1 -0
- package/dist/vue.mjs +96 -0
- package/dist/vue.mjs.map +1 -0
- package/package.json +170 -64
- package/dist/animate.cjs +0 -771
- package/dist/animate.cjs.map +0 -1
- package/dist/chunk-VZEJV27B.js +0 -11
- package/dist/chunk-VZEJV27B.js.map +0 -1
- package/dist/chunk-Y5D3E72P.cjs +0 -13
- package/dist/chunk-Y5D3E72P.cjs.map +0 -1
- package/dist/css.cjs.map +0 -1
- package/dist/css.d.cts +0 -30
- package/dist/css.d.ts +0 -30
- package/dist/css.js.map +0 -1
- package/dist/devtools.cjs.map +0 -1
- package/dist/index.cjs +0 -1353
- package/dist/index.cjs.map +0 -1
- package/dist/next.cjs +0 -248
- package/dist/next.cjs.map +0 -1
- package/dist/preset.cjs.map +0 -1
- package/dist/turbopackLoader.cjs +0 -37
- package/dist/turbopackLoader.cjs.map +0 -1
- package/dist/turbopackLoader.d.cts +0 -12
- package/dist/turbopackLoader.d.ts +0 -12
- package/dist/turbopackLoader.js +0 -35
- package/dist/turbopackLoader.js.map +0 -1
- package/dist/vite.cjs +0 -138
- package/dist/vite.cjs.map +0 -1
- package/dist/webpackLoader.cjs +0 -51
- package/dist/webpackLoader.cjs.map +0 -1
- package/dist/webpackLoader.d.cts +0 -17
- package/dist/webpackLoader.d.ts +0 -17
- package/dist/webpackLoader.js +0 -49
- package/dist/webpackLoader.js.map +0 -1
- /package/dist/{devtools.d.cts → devtools.d.mts} +0 -0
- /package/dist/{preset.d.cts → preset.d.mts} +0 -0
- /package/dist/{vite.d.cts → vite.d.mts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../packages/devtools/src/index.tsx"],"names":[],"mappings":";;;AAmDA,SAAS,YAAY,MAAA,EAA4D;AAC/E,EAAA,IAAI,CAAC,QAAQ,OAAO,EAAE,MAAM,SAAA,EAAW,OAAA,EAAS,EAAC,EAAE;AACnD,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA;AACnC,EAAA,IAAI,QAAA,KAAa,IAAI,OAAO,EAAE,MAAM,MAAA,EAAQ,OAAA,EAAS,EAAC,EAAE;AACxD,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAA;AACrC,EAAA,MAAM,OAAA,GAAU,MAAA,CACb,KAAA,CAAM,QAAA,GAAW,CAAC,EAClB,KAAA,CAAM,KAAK,CAAA,CACX,MAAA,CAAO,OAAO,CAAA;AACjB,EAAA,OAAO,EAAE,MAAM,OAAA,EAAQ;AACzB;AAEA,SAAS,iBAAiB,CAAA,EAA0C;AAClE,EAAA,IAAI,CAAC,CAAA,EAAG,OAAO,EAAC;AAChB,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,EACrB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,EAAC;AAAA,EACV;AACF;AAEA,SAAS,qBAAqB,EAAA,EAAqC;AACjE,EAAA,IAAI,GAAA,GAA0B,EAAA;AAC9B,EAAA,OAAO,GAAA,EAAK;AACV,IAAA,IAAI,GAAA,CAAI,OAAA,EAAS,EAAA,EAAI,OAAO,GAAA;AAC5B,IAAA,GAAA,GAAM,GAAA,CAAI,aAAA;AAAA,EACZ;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,aAAa,OAAA,EAA2C;AAC/D,EAAA,MAAM,WAAY,MAAA,CAAe,eAAA;AACjC,EAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAC;AACvB,EAAA,MAAM,MAA8B,EAAC;AACrC,EAAA,KAAA,MAAW,OAAO,OAAA,EAAS;AACzB,IAAA,IAAI,SAAS,GAAG,CAAA,MAAO,GAAG,CAAA,GAAI,SAAS,GAAG,CAAA;AAAA,EAC5C;AACA,EAAA,OAAO,GAAA;AACT;AAEA,SAAS,gBAAgB,EAAA,EAAyC;AAChE,EAAA,MAAM,SAAiC,EAAC;AACxC,EAAA,KAAA,MAAW,IAAA,IAAQ,GAAG,UAAA,EAAY;AAChC,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,OAAO,CAAA,EAAG;AACjC,MAAA,MAAA,CAAO,KAAK,IAAA,CAAK,OAAA,CAAQ,SAAS,EAAE,CAAC,IAAI,IAAA,CAAK,KAAA;AAAA,IAChD;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,cAAc,EAAA,EAA2B;AAChD,EAAA,MAAM,WAAY,MAAA,CAAe,qBAAA;AACjC,EAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAC;AACvB,EAAA,KAAA,MAAW,CAAC,EAAA,EAAI,KAAK,CAAA,IAAK,QAAA,EAAU;AAClC,IAAA,IAAI,GAAG,SAAA,CAAU,QAAA,CAAS,EAAE,CAAA,SAAU,KAAA,CAAM,MAAA;AAAA,EAC9C;AACA,EAAA,OAAO,EAAC;AACV;AAEA,SAAS,gBAAgB,EAAA,EAA2B;AAClD,EAAA,MAAM,WAAY,MAAA,CAAe,yBAAA;AACjC,EAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAC;AACvB,EAAA,KAAA,MAAW,CAAC,EAAA,EAAI,KAAK,CAAA,IAAK,QAAA,EAAU;AAClC,IAAA,IAAI,EAAA,CAAG,SAAA,CAAU,QAAA,CAAS,EAAE,CAAA,EAAG;AAC7B,MAAA,OAAO,MAAM,WAAA,CAAY,GAAA,CAAI,CAAC,EAAA,KAAY,GAAG,QAAQ,CAAA;AAAA,IACvD;AAAA,EACF;AACA,EAAA,OAAO,EAAC;AACV;AAMA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,QAAA,EAAU,SAAA;AAAA,EACV,MAAA,EAAQ;AACV,CAAA,EAIG;AACD,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,MACtB,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,OAAA,EAAS,GAAA,EAAI,EAAE,EAAG,6BAA6B;AAAA,KACxF;AAAA,EACF;AAEA,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,KAAA;AAAA,IACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA;AAAA,IAEtB,OAAO,IAAA,CAAK,SAAA,CAAU,YAAY,CAAA,CAAE,MAAA,GAAS,KAC3C,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,MACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,UAAU,CAAA;AAAA,MAChE,MAAA,CAAO,OAAA,CAAQ,SAAA,CAAU,YAAY,CAAA,CAAE,GAAA;AAAA,QAAI,CAAC,CAAC,CAAA,EAAG,CAAC,MAC/C,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,EAAE,GAAA,EAAI;AAAA,UACvB,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,CAAC,CAAA;AAAA,UAClD,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,QAAA,EAAS,EAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG;AAAA;AAC7D;AACF,KACF;AAAA;AAAA,IAGF,OAAO,IAAA,CAAK,SAAA,CAAU,YAAY,CAAA,CAAE,MAAA,GAAS,KAC3C,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,MACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,mBAAmB,CAAA;AAAA,MACzE,MAAA,CAAO,OAAA,CAAQ,SAAA,CAAU,YAAY,CAAA,CAAE,GAAA;AAAA,QAAI,CAAC,CAAC,CAAA,EAAG,CAAC,MAC/C,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,EAAE,GAAA,EAAI;AAAA,UACvB,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,OAAO,EAAE,GAAG,CAAA,CAAE,MAAA,EAAQ,OAAO,SAAA,EAAU,EAAE,EAAG,CAAA,KAAA,EAAQ,CAAC,CAAA,CAAE,CAAA;AAAA,UACrF,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,OAAO,EAAE,GAAG,CAAA,CAAE,QAAA,EAAU,OAAO,SAAA,EAAU,EAAE,EAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG;AAAA;AACtF;AACF,KACF;AAAA;AAAA,IAGF,SAAA,CAAU,UAAA,CAAW,MAAA,GAAS,CAAA,IAC5B,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,MACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,iBAAiB,CAAA;AAAA,MACvE,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,CAAE,SAAA,EAAU;AAAA,QACrB,UAAU,UAAA,CAAW,GAAA;AAAA,UAAI,CAAC,MACxB,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA;AAAA,cACE,GAAA,EAAK,CAAA;AAAA,cACL,KAAA,EAAO;AAAA,gBACL,GAAG,CAAA,CAAE,SAAA;AAAA,gBACL,YAAY,SAAA,CAAU,YAAA,CAAa,CAAC,CAAA,KAAM,SAAS,SAAA,GAAY,SAAA;AAAA,gBAC/D,aAAa,SAAA,CAAU,YAAA,CAAa,CAAC,CAAA,KAAM,SAAS,SAAA,GAAY;AAAA;AAClE,aACF;AAAA,YACA;AAAA;AACF;AACF;AACF,KACF;AAAA;AAAA,IAGF,SAAA,CAAU,YAAA,CAAa,MAAA,GAAS,CAAA,IAC9B,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,MACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,uBAAuB,CAAA;AAAA,MAC7E,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,CAAE,SAAA,EAAU;AAAA,QACrB,UAAU,YAAA,CAAa,GAAA;AAAA,UAAI,CAAC,OAC1B,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA,EAAE,GAAA,EAAK,EAAA,EAAI,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU,EAAE;AAAA,YACvD;AAAA;AACF;AACF;AACF,KACF;AAAA;AAAA,IAGF,SAAA,CAAU,SAAA,CAAU,MAAA,GAAS,CAAA,IAC3B,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,MACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,SAAS,CAAA;AAAA,MAC/D,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,CAAE,SAAA,EAAU;AAAA,QACrB,UAAU,SAAA,CAAU,GAAA;AAAA,UAAI,CAAC,QACvB,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA,EAAE,GAAA,EAAK,GAAA,EAAK,KAAA,EAAO,CAAA,CAAE,WAAW,KAAA,EAAO,SAAA,CAAU,SAAA,CAAU,GAAG,CAAA,EAAE;AAAA,YAChE;AAAA;AACF;AACF;AACF,KACF;AAAA;AAAA,IAGF,KAAA,CAAM,aAAA;AAAA,MACJ,QAAA;AAAA,MACA;AAAA,QACE,OAAO,CAAA,CAAE,OAAA;AAAA,QACT,SAAS,MAAM;AACb,UAAA,SAAA,CAAU,SAAA,EAAW,SAAA;AAAA,YACnB,IAAA,CAAK,SAAA;AAAA,cACH;AAAA,gBACE,WAAW,SAAA,CAAU,aAAA;AAAA,gBACrB,UAAU,SAAA,CAAU,YAAA;AAAA,gBACpB,QAAQ,SAAA,CAAU,YAAA;AAAA,gBAClB,SAAS,SAAA,CAAU;AAAA,eACrB;AAAA,cACA,IAAA;AAAA,cACA;AAAA;AACF,WACF;AAAA,QACF;AAAA,OACF;AAAA,MACA;AAAA;AACF,GACF;AACF;AAMA,SAAS,UAAA,GAAa;AACpB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAAgB,EAAE,CAAA;AAEhD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,MAAM,MAAO,MAAA,CAAe,qBAAA;AAC5B,MAAA,UAAA,CAAW,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,GAAI,EAAE,CAAA;AAAA,IAChD,CAAA;AACA,IAAA,OAAA,EAAQ;AACR,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,OAAA,EAAS,GAAI,CAAA;AAC1C,IAAA,OAAO,MAAM,cAAc,QAAQ,CAAA;AAAA,EACrC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,MACtB,KAAA,CAAM,aAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,EAAE,OAAA,EAAS,KAAI,EAAE;AAAA,QAC1B;AAAA,OACF;AAAA,MACA,KAAA,CAAM,aAAA,CAAc,IAAA,EAAM,IAAI,CAAA;AAAA,MAC9B,KAAA,CAAM,aAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,EAAE,SAAS,GAAA,EAAK,QAAA,EAAU,QAAO,EAAE;AAAA,QAC5C;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,KAAA;AAAA,IACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,IACtB,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,UACX,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,GAAA,EAAK,KAAA,CAAM,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAQ;AAAA,QAClC,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,YAAA,EAAa;AAAA,UACxB,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAE,EAAG,KAAA,CAAM,GAAA,CAAI,aAAa,CAAA;AAAA,UACpF,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA,EAAE,OAAO,EAAE,UAAA,EAAY,OAAO,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,MAAA,EAAO,EAAE;AAAA,YACnE,KAAA,CAAM;AAAA;AACR,SACF;AAAA,QACA,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,SAAA,EAAU;AAAA,UACrB,MAAM,MAAA,CAAO,GAAA;AAAA,YAAI,CAAC,MAChB,KAAA,CAAM,aAAA;AAAA,cACJ,MAAA;AAAA,cACA,EAAE,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU,EAAE;AAAA,cACtD,QAAQ,CAAC,CAAA;AAAA;AACX;AACF,SACF;AAAA,QACA,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,OAAO,EAAE,GAAG,EAAE,GAAA,EAAK,SAAA,EAAW,OAAM,EAAE;AAAA,UACxC,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA;AAAA,cACE,KAAA,EAAO;AAAA,gBACL,GAAG,CAAA,CAAE,YAAA;AAAA,gBACL,YAAA,EAAc,CAAA;AAAA,gBACd,KAAA,EAAO,KAAA,CAAM,WAAA,GAAc,SAAA,GAAY;AAAA;AACzC,aACF;AAAA,YACA,KAAA,CAAM,cAAc,qBAAA,GAAmB;AAAA;AACzC;AACF;AACF;AACF,GACF;AACF;AAMA,SAAS,cAAA,GAAiB;AACxB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAAgB,EAAE,CAAA;AAEhD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,MAAM,MAAO,MAAA,CAAe,yBAAA;AAC5B,MAAA,UAAA,CAAW,GAAA,GAAM,MAAM,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,GAAI,EAAE,CAAA;AAAA,IAChD,CAAA;AACA,IAAA,OAAA,EAAQ;AACR,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,OAAA,EAAS,GAAI,CAAA;AAC1C,IAAA,OAAO,MAAM,cAAc,QAAQ,CAAA;AAAA,EACrC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,MACtB,KAAA,CAAM,aAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,EAAE,OAAA,EAAS,KAAI,EAAE;AAAA,QAC1B;AAAA,OACF;AAAA,MACA,KAAA,CAAM,aAAA,CAAc,IAAA,EAAM,IAAI,CAAA;AAAA,MAC9B,KAAA,CAAM,aAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,EAAE,SAAS,GAAA,EAAK,QAAA,EAAU,QAAO,EAAE;AAAA,QAC5C;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,KAAA;AAAA,IACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,IACtB,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,UACX,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,GAAA,EAAK,KAAA,CAAM,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAQ;AAAA,QAClC,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,YAAA,EAAa;AAAA,UACxB,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAU,EAAE,EAAG,KAAA,CAAM,GAAA,CAAI,aAAa,CAAA;AAAA,UACpF,KAAA,CAAM,iBACJ,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA,EAAE,KAAA,EAAO,EAAE,YAAY,KAAA,EAAO,KAAA,EAAO,WAAU,EAAE;AAAA,YACjD,CAAA,CAAA,EAAI,MAAM,aAAa,CAAA,CAAA;AAAA,WACzB;AAAA,UACF,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA,EAAE,OAAO,EAAE,UAAA,EAAY,OAAO,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,MAAA,EAAO,EAAE;AAAA,YACnE,KAAA,CAAM;AAAA;AACR,SACF;AAAA,QACA,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,IAAA;AAAA,UACA,MAAM,WAAA,CAAY,GAAA;AAAA,YAAI,CAAC,EAAA,EAAS,CAAA,KAC9B,KAAA,CAAM,aAAA;AAAA,cACJ,KAAA;AAAA,cACA,EAAE,GAAA,EAAK,CAAA,EAAG,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,GAAA,EAAK,YAAA,EAAc,KAAA,EAAM,EAAE;AAAA,cACnD,KAAA,CAAM,aAAA;AAAA,gBACJ,MAAA;AAAA,gBACA,EAAE,KAAA,EAAO,EAAE,OAAO,SAAA,EAAW,QAAA,EAAU,QAAO,EAAE;AAAA,gBAChD,CAAA,OAAA,EAAK,GAAG,QAAQ,CAAA;AAAA,eAClB;AAAA,cACA,KAAA,CAAM,aAAA;AAAA,gBACJ,MAAA;AAAA,gBACA,EAAE,KAAA,EAAO,EAAE,OAAO,SAAA,EAAW,QAAA,EAAU,QAAO,EAAE;AAAA,gBAChD,EAAA,CAAG;AAAA;AACL;AACF;AACF;AACF;AACF;AACF,GACF;AACF;AAMA,SAAS,WAAA,GAAc;AACrB,EAAA,MAAM,CAAC,MAAA,EAAQ,UAAU,CAAA,GAAI,QAAA,CAAiC,EAAE,CAAA;AAEhE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,SAAU,MAAA,CAAe,mBAAA;AAC/B,IAAA,IAAI,CAAC,MAAA,EAAQ;AAEb,IAAA,UAAA,CAAW,MAAA,CAAO,WAAW,CAAA;AAC7B,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,SAAA,CAAU,CAAC,CAAA,KAA8B,WAAW,EAAE,GAAG,CAAA,EAAG,CAAC,CAAA;AAClF,IAAA,OAAO,KAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA;AAErC,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,MACtB,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,OAAA,EAAS,GAAA,EAAI,EAAE,EAAG,4BAA4B,CAAA;AAAA,MACrF,KAAA,CAAM,aAAA,CAAc,IAAA,EAAM,IAAI,CAAA;AAAA,MAC9B,KAAA,CAAM,aAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,EAAE,SAAS,GAAA,EAAK,QAAA,EAAU,QAAO,EAAE;AAAA,QAC5C;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,KAAA;AAAA,IACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,IACtB,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,cAAc,OAAA,EAAS,cAAA,EAAgB,KAAA,EAAO,SAAA,EAAU,EAAE;AAAA,MAC1E;AAAA,KACF;AAAA,IACA,QAAQ,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AAC7B,MAAA,MAAM,OAAA,GAAU,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,IAAK,KAAA,CAAM,UAAA,CAAW,KAAK,CAAA,IAAK,KAAA,CAAM,UAAA,CAAW,KAAK,CAAA;AAC1F,MAAA,OAAO,KAAA,CAAM,aAAA;AAAA,QACX,KAAA;AAAA,QACA,EAAE,GAAA,EAAK,IAAA,EAAM,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,GAAA,EAAK,OAAA,EAAS,UAAA,EAAY,YAAA,EAAc,mBAAA,EAAoB,EAAE;AAAA,QACzF,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,OAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,KAAA,EAAM,EAAE;AAAA,UAC/D,OAAA,IACE,KAAA,CAAM,aAAA,CAAc,KAAA,EAAO;AAAA,YACzB,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,UAAA,EAAY,KAAA;AAAA,cACZ,MAAA,EAAQ,mBAAA;AAAA,cACR,UAAA,EAAY;AAAA;AACd,WACD,CAAA;AAAA,UACH,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,EAAE,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,MAAA,EAAO,EAAE,EAAG,IAAI;AAAA,SACrF;AAAA,QACA,OAAA,GACI,KAAA,CAAM,aAAA,CAAc,OAAA,EAAS;AAAA,UAC3B,IAAA,EAAM,OAAA;AAAA,UACN,YAAA,EAAc,KAAA,CAAM,UAAA,CAAW,GAAG,IAAI,KAAA,GAAQ,SAAA;AAAA,UAC9C,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAQ,MAAA;AAAA,YACR,UAAA,EAAY,MAAA;AAAA,YACZ,MAAA,EAAQ;AAAA,WACV;AAAA,UACA,QAAA,EAAU,CAAC,CAAA,KAA2C;AACpD,YAAA,MAAM,SAAU,MAAA,CAAe,mBAAA;AAC/B,YAAA,IAAI,QAAQ,MAAA,CAAO,QAAA,CAAS,IAAA,EAAM,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UAClD;AAAA,SACD,CAAA,GACD,KAAA,CAAM,aAAA,CAAc,OAAA,EAAS;AAAA,UAC3B,IAAA,EAAM,MAAA;AAAA,UACN,YAAA,EAAc,KAAA;AAAA,UACd,KAAA,EAAO;AAAA,YACL,UAAA,EAAY,SAAA;AAAA,YACZ,MAAA,EAAQ,mBAAA;AAAA,YACR,YAAA,EAAc,KAAA;AAAA,YACd,KAAA,EAAO,SAAA;AAAA,YACP,QAAA,EAAU,MAAA;AAAA,YACV,OAAA,EAAS,SAAA;AAAA,YACT,KAAA,EAAO,OAAA;AAAA,YACP,UAAA,EAAY;AAAA,WACd;AAAA,UACA,MAAA,EAAQ,CAAC,CAAA,KAA0C;AACjD,YAAA,MAAM,SAAU,MAAA,CAAe,mBAAA;AAC/B,YAAA,IAAI,QAAQ,MAAA,CAAO,QAAA,CAAS,IAAA,EAAM,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UAClD;AAAA,SACD;AAAA,OACP;AAAA,IACF,CAAC;AAAA,GACH;AACF;AAMA,SAAS,aAAA,GAAgB;AACvB,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAKpB,IAAI,CAAA;AAEd,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAyC,IAAI,CAAA;AACvF,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,SAAS,KAAK,CAAA;AAC5D,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAwB,IAAI,CAAA;AAEpE,EAAA,MAAM,iBAAA,GAAoB,YAAY,YAAY;AAChD,IAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,IAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAM,KAAA,CAAM,+BAAA,EAAiC;AAAA,QACvD,MAAA,EAAQ,WAAA,CAAY,OAAA,CAAQ,GAAI;AAAA,OACjC,CAAA;AACD,MAAA,IAAI,CAAC,IAAI,EAAA,EAAI,MAAM,IAAI,KAAA,CAAM,CAAA,KAAA,EAAQ,GAAA,CAAI,MAAM,CAAA,CAAE,CAAA;AACjD,MAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,IAAA,EAAK;AAC5B,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB,SAAS,CAAA,EAAY;AACnB,MAAA,MAAM,MAAM,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,OAAA,GAAU,OAAO,CAAC,CAAA;AACrD,MAAA,eAAA;AAAA,QACE,GAAA,CAAI,SAAS,iBAAiB,CAAA,IAAK,IAAI,QAAA,CAAS,cAAc,IAC1D,kDAAA,GACA;AAAA,OACN;AACA,MAAA,gBAAA,CAAiB,IAAI,CAAA;AAAA,IACvB,CAAA,SAAE;AACA,MAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,OAAA,GAAU,YAAY,MAAM;AAChC,IAAA,WAAA,CAAY,IAAI,CAAA;AAEhB,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,gBAAA,CAAiB,WAAW,CAAA;AACnD,MAAA,MAAM,QAAA,uBAAe,GAAA,EAAsB;AAE3C,MAAA,KAAA,MAAW,MAAM,KAAA,EAAO;AACtB,QAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAA,CAAK,MAAM;AAC/B,UAAA,MAAM,GAAA,GAAO,EAAA,CAAmB,OAAA,CAAQ,EAAA,IAAM,IAAA;AAC9C,UAAA,IAAI,CAAC,KAAK,OAAO,EAAE,MAAM,GAAA,EAAK,OAAA,EAAS,EAAC,EAAE;AAC1C,UAAA,MAAM,EAAA,GAAK,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AAC1B,UAAA,OAAO;AAAA,YACL,MAAM,EAAA,IAAM,CAAA,GAAI,IAAI,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,GAAI,GAAA;AAAA,YACnC,OAAA,EACE,EAAA,IAAM,CAAA,GACF,GAAA,CACG,MAAM,EAAA,GAAK,CAAC,CAAA,CACZ,KAAA,CAAM,KAAK,CAAA,CACX,MAAA,CAAO,OAAO,IACjB;AAAC,WACT;AAAA,QACF,CAAA,GAAG;AAEH,QAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,IAAA,EAAK,CAAE,KAAK,GAAG,CAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAA,CAAI,GAAG,GAAG,QAAA,CAAS,GAAA,CAAI,GAAA,EAAK,EAAE,CAAA;AAC5C,QAAA,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA,CAAG,IAAA,CAAK,IAAI,CAAA;AAAA,MAC9B;AAEA,MAAA,MAAM,aAAa,KAAA,CAAM,IAAA,CAAK,SAAS,OAAA,EAAS,EAC7C,MAAA,CAAO,CAAC,GAAG,KAAK,MAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CACtC,GAAA,CAAI,CAAC,CAAC,OAAA,EAAS,KAAK,CAAA,MAAO,EAAE,OAAA,EAAS,KAAA,EAAO,MAAM,MAAA,EAAQ,KAAA,GAAQ,CAAA,CACnE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,EAAE,KAAA,GAAQ,CAAA,CAAE,KAAK,CAAA,CAChC,KAAA,CAAM,GAAG,EAAE,CAAA;AAEd,MAAA,MAAM,WAAY,MAAA,CAAe,qBAAA;AACjC,MAAA,MAAM,eAAgB,MAAA,CAAe,yBAAA;AACrC,MAAA,MAAM,cAAe,MAAA,CAAe,mBAAA;AAEpC,MAAA,UAAA,CAAW;AAAA,QACT,UAAA;AAAA,QACA,UAAA,EAAY,UAAU,IAAA,IAAQ,CAAA;AAAA,QAC9B,cAAA,EAAgB,cAAc,IAAA,IAAQ,CAAA;AAAA,QACtC,UAAA,EAAY,OAAO,IAAA,CAAK,WAAA,EAAa,aAAY,IAAK,EAAE,CAAA,CAAE;AAAA,OAC3D,CAAA;AACD,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA,IACnB,GAAG,GAAG,CAAA;AAAA,EACR,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,KAAA;AAAA,IACA,EAAE,KAAA,EAAO,CAAA,CAAE,UAAA,EAAW;AAAA,IACtB,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,EAAE,OAAA,EAAS,aAAY,EAAE;AAAA;AAAA,MAGlC,KAAA,CAAM,aAAA;AAAA,QACJ,QAAA;AAAA,QACA;AAAA,UACE,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,OAAA,EAAS,WAAW,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,KAAA,EAAM;AAAA,UAC9E,OAAA,EAAS,OAAA;AAAA,UACT,QAAA,EAAU;AAAA,SACZ;AAAA,QACA,WAAW,iBAAA,GAAoB;AAAA,OACjC;AAAA;AAAA,MAGA,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,OAAO,EAAE,GAAG,EAAE,OAAA,EAAS,SAAA,EAAW,OAAM,EAAE;AAAA,QAC5C,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,OAAO,EAAE,GAAG,EAAE,YAAA,EAAc,YAAA,EAAc,OAAM,EAAE;AAAA,UACpD;AAAA,SACF;AAAA,QACA,gBACI,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,OAAO,CAAA;AAAA,YACxD,KAAA,CAAM,aAAA;AAAA,cACJ,MAAA;AAAA,cACA,EAAE,OAAO,EAAE,GAAG,EAAE,QAAA,EAAU,KAAA,EAAO,WAAU,EAAE;AAAA,cAC7C,cAAc,OAAA,KAAY,IAAA,GAAO,CAAA,EAAG,aAAA,CAAc,OAAO,CAAA,EAAA,CAAA,GAAO;AAAA;AAClE,WACF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,SAAS,CAAA;AAAA,YAC1D,KAAA,CAAM,aAAA;AAAA,cACJ,MAAA;AAAA,cACA,EAAE,OAAO,EAAE,GAAG,EAAE,QAAA,EAAU,KAAA,EAAO,WAAU,EAAE;AAAA,cAC7C,MAAA,CAAO,aAAA,CAAc,UAAA,IAAc,QAAG;AAAA;AACxC,WACF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,OAAO,CAAA;AAAA,YACxD,KAAA,CAAM,aAAA;AAAA,cACJ,MAAA;AAAA,cACA,EAAE,OAAO,EAAE,GAAG,EAAE,QAAA,EAAU,KAAA,EAAO,WAAU,EAAE;AAAA,cAC7C,MAAA,CAAO,aAAA,CAAc,SAAA,IAAa,QAAG;AAAA;AACvC,WACF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,MAAM,CAAA;AAAA,YACvD,KAAA,CAAM,aAAA;AAAA,cACJ,MAAA;AAAA,cACA,EAAE,KAAA,EAAO,EAAE,OAAO,SAAA,EAAW,QAAA,EAAU,QAAO,EAAE;AAAA,cAChD,MAAA,CAAO,aAAA,CAAc,IAAA,IAAQ,QAAG;AAAA;AAClC,WACF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,QAAA;AAAA,YACA;AAAA,cACE,KAAA,EAAO;AAAA,gBACL,GAAG,CAAA,CAAE,OAAA;AAAA,gBACL,SAAA,EAAW,MAAA;AAAA,gBACX,KAAA,EAAO,SAAA;AAAA,gBACP,QAAA,EAAU,MAAA;AAAA,gBACV,OAAA,EAAS;AAAA,eACX;AAAA,cACA,OAAA,EAAS,iBAAA;AAAA,cACT,QAAA,EAAU;AAAA,aACZ;AAAA,YACA;AAAA;AACF,SACF,GACA,eACE,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,OAAO,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,MAAA,EAAQ,YAAA,EAAc,KAAA,EAAM,EAAE;AAAA,YACrE;AAAA,WACF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,QAAA;AAAA,YACA;AAAA,cACE,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,OAAA,EAAS,WAAW,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,KAAA,EAAM;AAAA,cAC9E,OAAA,EAAS,iBAAA;AAAA,cACT,QAAA,EAAU;AAAA,aACZ;AAAA,YACA,kBAAkB,eAAA,GAAkB;AAAA;AACtC,YAEF,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA;AAAA,cACE,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO,SAAA;AAAA,gBACP,QAAA,EAAU,MAAA;AAAA,gBACV,UAAA,EAAY,GAAA;AAAA,gBACZ,YAAA,EAAc;AAAA;AAChB,aACF;AAAA,YACA,sDAAA;AAAA,YACA,KAAA,CAAM,aAAA,CAAc,IAAA,EAAM,IAAI,CAAA;AAAA,YAC9B,KAAA,CAAM,aAAA;AAAA,cACJ,MAAA;AAAA,cACA,EAAE,KAAA,EAAO,EAAE,OAAO,SAAA,EAAW,QAAA,EAAU,QAAO,EAAE;AAAA,cAChD;AAAA;AACF,WACF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,QAAA;AAAA,YACA;AAAA,cACE,KAAA,EAAO,EAAE,GAAG,CAAA,CAAE,OAAA,EAAS,WAAW,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,KAAA,EAAM;AAAA,cAC9E,OAAA,EAAS,iBAAA;AAAA,cACT,QAAA,EAAU;AAAA,aACZ;AAAA,YACA,kBAAkB,eAAA,GAAkB;AAAA;AACtC;AACF,OACR;AAAA;AAAA,MAGA,WACE,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,UACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,SAAS,CAAA;AAAA,UAC/D,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,kBAAkB,CAAA;AAAA,YACnE,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,CAAA,CAAE,QAAA,EAAS,EAAG,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAC;AAAA,WAC/E;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,sBAAsB,CAAA;AAAA,YACvE,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,CAAA,CAAE,QAAA,EAAS,EAAG,MAAA,CAAO,OAAA,CAAQ,cAAc,CAAC;AAAA,WACnF;AAAA,UACA,KAAA,CAAM,aAAA;AAAA,YACJ,KAAA;AAAA,YACA,EAAE,KAAA,EAAO,CAAA,CAAE,GAAA,EAAI;AAAA,YACf,KAAA,CAAM,cAAc,MAAA,EAAQ,EAAE,OAAO,CAAA,CAAE,MAAA,IAAU,aAAa,CAAA;AAAA,YAC9D,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,CAAA,CAAE,QAAA,EAAS,EAAG,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAC;AAAA;AAC/E,SACF;AAAA,QAEA,OAAA,CAAQ,UAAA,CAAW,MAAA,GAAS,CAAA,GACxB,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,UACnB,KAAA,CAAM,cAAc,KAAA,EAAO,EAAE,OAAO,CAAA,CAAE,YAAA,IAAgB,sBAAsB,CAAA;AAAA,UAC5E,QAAQ,UAAA,CAAW,GAAA;AAAA,YAAI,CAAC,CAAA,EAAG,CAAA,KACzB,KAAA,CAAM,aAAA;AAAA,cACJ,KAAA;AAAA,cACA,EAAE,GAAA,EAAK,CAAA,EAAG,OAAO,EAAE,YAAA,EAAc,OAAM,EAAE;AAAA,cACzC,KAAA,CAAM,aAAA;AAAA,gBACJ,KAAA;AAAA,gBACA,EAAE,OAAO,EAAE,KAAA,EAAO,WAAW,QAAA,EAAU,MAAA,EAAQ,YAAA,EAAc,KAAA,EAAM,EAAE;AAAA,gBACrE,CAAA,CAAE,KAAA,CAAM,IAAA,CAAK,IAAI;AAAA,eACnB;AAAA,cACA,KAAA,CAAM,aAAA;AAAA,gBACJ,MAAA;AAAA,gBACA;AAAA,kBACE,KAAA,EAAO;AAAA,oBACL,KAAA,EAAO,SAAA;AAAA,oBACP,QAAA,EAAU,MAAA;AAAA,oBACV,SAAA,EAAW;AAAA;AACb,iBACF;AAAA,gBACA,EAAE,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,CAAE,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,KAAK,GAAG,CAAA,IACtC,EAAE,OAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,GAAS,IAAI,KAAA,GAAQ,EAAA;AAAA;AAC/C;AACF;AACF,YAEF,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,OAAA,EAAQ;AAAA,UACnB,KAAA,CAAM,aAAA;AAAA,YACJ,MAAA;AAAA,YACA,EAAE,KAAA,EAAO,EAAE,OAAO,SAAA,EAAW,QAAA,EAAU,QAAO,EAAE;AAAA,YAChD;AAAA;AACF;AACF;AACN;AACJ,GACF;AACF;AAMO,SAAS,UAAA,GAAwC;AACtD,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc,OAAO,IAAA;AAElD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,QAAA,CAAwB;AAAA,IAChD,IAAA,EAAM,KAAA;AAAA,IACN,KAAA,EAAO,WAAA;AAAA,IACP,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,IAAA;AAAA,IACX,QAAA,EAAU,EAAE,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA;AAAE,GACxB,CAAA;AAED,EAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAC9C,EAAA,MAAM,YAAA,GAAe,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,KAAA,KAAU,WAAA;AAGnD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAqB;AAClC,MAAA,IAAI,EAAE,OAAA,IAAW,CAAA,CAAE,QAAA,IAAY,CAAA,CAAE,QAAQ,GAAA,EAAK;AAC5C,QAAA,CAAA,CAAE,cAAA,EAAe;AACjB,QAAA,QAAA,CAAS,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,IAAA,EAAM,CAAC,CAAA,CAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAK,CAAE,CAAA;AAAA,MAC5D;AACA,MAAA,IAAI,EAAE,GAAA,KAAQ,QAAA;AACZ,QAAA,QAAA,CAAS,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,IAAA,EAAK,CAAE,CAAA;AACzE,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,GAAA,EAAK,QAAA,CAAS,CAAC,CAAA,KAAO,CAAA,CAAE,IAAA,GAAO,EAAE,GAAG,CAAA,EAAG,KAAA,EAAO,WAAA,KAAgB,CAAE,CAAA;AAC9E,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,GAAA,EAAK,QAAA,CAAS,CAAC,CAAA,KAAO,CAAA,CAAE,IAAA,GAAO,EAAE,GAAG,CAAA,EAAG,KAAA,EAAO,OAAA,KAAY,CAAE,CAAA;AAC1E,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,GAAA,EAAK,QAAA,CAAS,CAAC,CAAA,KAAO,CAAA,CAAE,IAAA,GAAO,EAAE,GAAG,CAAA,EAAG,KAAA,EAAO,WAAA,KAAgB,CAAE,CAAA;AAC9E,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,GAAA,EAAK,QAAA,CAAS,CAAC,CAAA,KAAO,CAAA,CAAE,IAAA,GAAO,EAAE,GAAG,CAAA,EAAG,KAAA,EAAO,QAAA,KAAa,CAAE,CAAA;AAC3E,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,GAAA,EAAK,QAAA,CAAS,CAAC,CAAA,KAAO,CAAA,CAAE,IAAA,GAAO,EAAE,GAAG,CAAA,EAAG,KAAA,EAAO,UAAA,KAAe,CAAE,CAAA;AAAA,IAC/E,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,KAAK,CAAA;AACxC,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,KAAK,CAAA;AAAA,EAC1D,CAAA,EAAG,EAAE,CAAA;AAGL,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,CAAA,KAAkB;AACjB,MAAA,IAAI,CAAC,YAAA,IAAgB,KAAA,CAAM,MAAA,EAAQ;AACnC,MAAA,MAAM,IAAA,GAAO,oBAAA,CAAqB,CAAA,CAAE,MAAqB,CAAA;AACzD,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,QAAA,CAAS,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,WAAW,IAAA,EAAM,QAAA,EAAU,EAAE,CAAA,EAAG,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA,CAAE,OAAA,IAAU,CAAE,CAAA;AACrF,QAAA;AAAA,MACF;AACA,MAAA,MAAM,EAAE,MAAM,OAAA,EAAQ,GAAI,YAAY,IAAA,CAAK,OAAA,CAAQ,MAAM,IAAI,CAAA;AAC7D,MAAA,QAAA,CAAS,CAAC,CAAA,MAAO;AAAA,QACf,GAAG,CAAA;AAAA,QACH,UAAU,EAAE,CAAA,EAAG,EAAE,OAAA,EAAS,CAAA,EAAG,EAAE,OAAA,EAAQ;AAAA,QACvC,SAAA,EAAW;AAAA,UACT,aAAA,EAAe,IAAA;AAAA,UACf,OAAA,EAAS,IAAA;AAAA,UACT,IAAA,EAAM,KAAK,qBAAA,EAAsB;AAAA,UACjC,SAAA,EAAW,OAAA;AAAA,UACX,YAAA,EAAc,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,cAAc,IAAI,CAAA;AAAA,UAC9D,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,cAAc,IAAA,CAAK,SAAA;AAAA,UACnB,UAAA,EAAY,cAAc,IAAI,CAAA;AAAA,UAC9B,YAAA,EAAc,gBAAgB,IAAI,CAAA;AAAA,UAClC,YAAA,EAAc,gBAAgB,IAAI;AAAA;AACpC,OACF,CAAE,CAAA;AAAA,IACJ,CAAA;AAAA,IACA,CAAC,YAAA,EAAc,KAAA,CAAM,MAAM;AAAA,GAC7B;AAEA,EAAA,MAAM,OAAA,GAAU,WAAA;AAAA,IACd,CAAC,CAAA,KAAkB;AACjB,MAAA,IAAI,CAAC,YAAA,EAAc;AACnB,MAAA,IAAI,UAAA,CAAW,OAAA,EAAS,QAAA,CAAS,CAAA,CAAE,MAAqB,CAAA,EAAG;AAC3D,MAAA,QAAA,CAAS,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,MAAA,EAAQ,CAAC,CAAA,CAAE,MAAA,IAAU,CAAC,CAAC,CAAA,CAAE,WAAU,CAAE,CAAA;AAAA,IAChE,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,YAAA,EAAc;AACnB,IAAA,MAAA,CAAO,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAChD,IAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AACxC,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,aAAa,WAAW,CAAA;AACnD,MAAA,MAAA,CAAO,mBAAA,CAAoB,SAAS,OAAO,CAAA;AAAA,IAC7C,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,WAAA,EAAa,OAAO,CAAC,CAAA;AAGvC,EAAA,IAAI,CAAC,MAAM,IAAA,EAAM;AACf,IAAA,OAAO,KAAA,CAAM,aAAA;AAAA,MACX,QAAA;AAAA,MACA;AAAA,QACE,OAAA,EAAS,MAAM,QAAA,CAAS,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,IAAA,EAAM,IAAA,EAAK,CAAE,CAAA;AAAA,QACrD,OAAO,CAAA,CAAE,SAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,MAAA,GAA4D;AAAA,IAChE,EAAE,EAAA,EAAI,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,MAAM,WAAA,EAAK;AAAA,IAClD,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,MAAM,QAAA,EAAI;AAAA,IACzC,EAAE,EAAA,EAAI,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,MAAM,WAAA,EAAK;AAAA,IAClD,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,MAAM,WAAA,EAAK;AAAA,IAC5C,EAAE,EAAA,EAAI,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,MAAM,WAAA;AAAK,GAClD;AAEA,EAAA,OAAO,KAAA,CAAM,aAAA;AAAA,IACX,KAAA;AAAA,IACA,EAAE,KAAA,EAAO,CAAA,CAAE,IAAA,EAAK;AAAA;AAAA,IAGhB,YAAA,IACE,KAAA,CAAM,SAAA,IACN,KAAA,CAAM,cAAc,KAAA,EAAO;AAAA,MACzB,KAAA,EAAO;AAAA,QACL,GAAG,CAAA,CAAE,SAAA;AAAA,QACL,GAAA,EAAK,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK,MAAM,MAAA,CAAO,OAAA;AAAA,QACvC,IAAA,EAAM,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK,OAAO,MAAA,CAAO,OAAA;AAAA,QACzC,KAAA,EAAO,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK,KAAA;AAAA,QAC5B,MAAA,EAAQ,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK;AAAA;AAC/B,KACD,CAAA;AAAA;AAAA,IAGH,YAAA,IACE,KAAA,CAAM,SAAA,IACN,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA;AAAA,QACE,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,UAAA;AAAA,UACV,KAAK,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK,GAAA,GAAM,OAAO,OAAA,GAAU,EAAA;AAAA,UACjD,IAAA,EAAM,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK,OAAO,MAAA,CAAO,OAAA;AAAA,UACzC,UAAA,EAAY,SAAA;AAAA,UACZ,KAAA,EAAO,SAAA;AAAA,UACP,QAAA,EAAU,MAAA;AAAA,UACV,OAAA,EAAS,SAAA;AAAA,UACT,YAAA,EAAc,aAAA;AAAA,UACd,aAAA,EAAe,MAAA;AAAA,UACf,MAAA,EAAQ,UAAA;AAAA,UACR,UAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAM,SAAA,CAAU;AAAA,KAClB;AAAA;AAAA,IAGF,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA;AAAA,QACE,GAAA,EAAK,UAAA;AAAA,QACL,KAAA,EACE,KAAA,CAAM,KAAA,KAAU,WAAA,IAAe,MAAM,SAAA,GACjC;AAAA,UACE,GAAG,CAAA,CAAE,KAAA;AAAA,UACL,GAAA,EAAK,KAAK,GAAA,CAAI,KAAA,CAAM,SAAS,CAAA,GAAI,EAAA,EAAI,MAAA,CAAO,WAAA,GAAc,GAAG,CAAA;AAAA,UAC7D,IAAA,EAAM,KAAK,GAAA,CAAI,KAAA,CAAM,SAAS,CAAA,GAAI,EAAA,EAAI,MAAA,CAAO,UAAA,GAAa,GAAG;AAAA,SAC/D,GACA;AAAA,UACE,GAAG,CAAA,CAAE,KAAA;AAAA,UACL,GAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAQ,MAAA;AAAA,UACR,KAAA,EAAO,MAAA;AAAA,UACP,IAAA,EAAM;AAAA;AACR,OACR;AAAA;AAAA,MAGA,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO;AAAA,QAClB,KAAA,CAAM,aAAA;AAAA,UACJ,MAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,aAAA,EAAc;AAAA,UACzB,MAAM,SAAA,IAAa,KAAA,CAAM,UAAU,WAAA,GAC/B,KAAA,CAAM,UAAU,aAAA,GAChB;AAAA,SACN;AAAA,QACA,KAAA,CAAM,aAAA;AAAA,UACJ,KAAA;AAAA,UACA,EAAE,KAAA,EAAO,CAAA,CAAE,aAAA,EAAc;AAAA,UACzB,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,CAAA,CAAE,QAAA,EAAS,EAAG,WAAI,CAAA;AAAA,UACvE,KAAA,CAAM,aAAA;AAAA,YACJ,QAAA;AAAA,YACA;AAAA,cACE,OAAO,CAAA,CAAE,QAAA;AAAA,cACT,OAAA,EAAS,MACP,QAAA,CAAS,CAAC,OAAO,EAAE,GAAG,CAAA,EAAG,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAW,MAAK,CAAE;AAAA,aAC3E;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA;AAAA,MAGA,KAAA,CAAM,aAAA;AAAA,QACJ,KAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO;AAAA,QAClB,MAAA,CAAO,GAAA;AAAA,UAAI,CAAC,MACV,KAAA,CAAM,aAAA;AAAA,YACJ,QAAA;AAAA,YACA;AAAA,cACE,KAAK,CAAA,CAAE,EAAA;AAAA,cACP,KAAA,EAAO;AAAA,gBACL,GAAG,CAAA,CAAE,GAAA;AAAA,gBACL,UAAA,EAAY,KAAA,CAAM,KAAA,KAAU,CAAA,CAAE,KAAK,SAAA,GAAY,MAAA;AAAA,gBAC/C,KAAA,EAAO,KAAA,CAAM,KAAA,KAAU,CAAA,CAAE,KAAK,SAAA,GAAY,SAAA;AAAA,gBAC1C,YAAA,EAAc,KAAA,CAAM,KAAA,KAAU,CAAA,CAAE,KAAK,mBAAA,GAAsB;AAAA,eAC7D;AAAA,cACA,OAAA,EAAS,MAAM,QAAA,CAAS,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,EAAG,KAAA,EAAO,CAAA,CAAE,EAAA,EAAG,CAAE,CAAA;AAAA,cACtD,KAAA,EAAO,CAAA,EAAG,CAAA,CAAE,KAAK,KAAK,MAAA,CAAO,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,CAAA,CAAE,EAAE,IAAI,CAAC,CAAA,CAAA;AAAA,aAClE;AAAA,YACA,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAI,EAAE,KAAK,CAAA;AAAA;AACtB;AACF,OACF;AAAA;AAAA,MAGA,KAAA,CAAM,KAAA,KAAU,WAAA,IACd,KAAA,CAAM,cAAc,cAAA,EAAgB;AAAA,QAClC,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,QAAQ,KAAA,CAAM;AAAA,OACf,CAAA;AAAA,MACH,MAAM,KAAA,KAAU,OAAA,IAAW,KAAA,CAAM,aAAA,CAAc,YAAY,IAAI,CAAA;AAAA,MAC/D,MAAM,KAAA,KAAU,WAAA,IAAe,KAAA,CAAM,aAAA,CAAc,gBAAgB,IAAI,CAAA;AAAA,MACvE,MAAM,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,aAAA,CAAc,aAAa,IAAI,CAAA;AAAA,MACjE,MAAM,KAAA,KAAU,UAAA,IAAc,KAAA,CAAM,aAAA,CAAc,eAAe,IAAI;AAAA,KACvE;AAAA;AAAA,IAGA,KAAA,CAAM,aAAA;AAAA,MACJ,KAAA;AAAA,MACA,EAAE,KAAA,EAAO,CAAA,CAAE,SAAA,EAAU;AAAA,MACrB,KAAA,CAAM,aAAA,CAAc,MAAA,EAAQ,IAAA,EAAM,uCAAgC,CAAA;AAAA,MAClE,KAAA,CAAM,aAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,EAAE,SAAS,GAAA,EAAK,QAAA,EAAU,QAAO,EAAE;AAAA,QAC5C,KAAA,CAAM,MAAA,GACF,gBAAA,GACA,YAAA,GACE,yEAAA,GACA;AAAA;AACR;AACF,GACF;AACF;AAMA,IAAM,CAAA,GAAI;AAAA,EACR,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,CAAA;AAAA,IACP,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,2CAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,SAAA,EAAW;AAAA,IACT,QAAA,EAAU,UAAA;AAAA,IACV,YAAA,EAAc,KAAA;AAAA,IACd,OAAA,EAAS,mBAAA;AAAA,IACT,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,uBAAA;AAAA,IACZ,aAAA,EAAe,MAAA;AAAA,IACf,UAAA,EAAY,eAAA;AAAA,IACZ,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,KAAA,EAAO;AAAA,IACL,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,GAAA;AAAA,IACP,SAAA,EAAW,GAAA;AAAA,IACX,UAAA,EAAY,SAAA;AAAA,IACZ,MAAA,EAAQ,mBAAA;AAAA,IACR,YAAA,EAAc,MAAA;AAAA,IACd,SAAA,EAAW,4BAAA;AAAA,IACX,aAAA,EAAe,KAAA;AAAA,IACf,MAAA,EAAQ,UAAA;AAAA,IACR,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,OAAA,EAAS,cAAA;AAAA,IACT,YAAA,EAAc,mBAAA;AAAA,IACd,UAAA,EAAY;AAAA,GACd;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,YAAA,EAAc,mBAAA;AAAA,IACd,UAAA,EAAY,CAAA;AAAA,IACZ,SAAA,EAAW;AAAA,GACb;AAAA,EACA,GAAA,EAAK;AAAA,IACH,UAAA,EAAY,MAAA;AAAA,IACZ,MAAA,EAAQ,MAAA;AAAA,IACR,MAAA,EAAQ,SAAA;AAAA,IACR,QAAA,EAAU,MAAA;AAAA,IACV,OAAA,EAAS,SAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY,SAAA;AAAA,IACZ,UAAA,EAAY,YAAA;AAAA,IACZ,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,UAAA,EAAY;AAAA,IACV,SAAA,EAAW,MAAA;AAAA,IACX,IAAA,EAAM;AAAA,GACR;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,WAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,MAAA;AAAA,IACV,SAAA,EAAW,QAAA;AAAA,IACX,UAAA,EAAY;AAAA,GACd;AAAA,EACA,aAAA,EAAe;AAAA,IACb,KAAA,EAAO,SAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACP;AAAA,EACA,QAAA,EAAU,EAAE,KAAA,EAAO,SAAA,EAAW,UAAU,MAAA,EAAO;AAAA,EAC/C,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,MAAA;AAAA,IACZ,MAAA,EAAQ,MAAA;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,MAAA,EAAQ,SAAA;AAAA,IACR,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,CAAA;AAAA,IACZ,OAAA,EAAS,SAAA;AAAA,IACT,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,UAAA;AAAA,IACT,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe,WAAA;AAAA,IACf,aAAA,EAAe,QAAA;AAAA,IACf,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,GAAA,EAAK;AAAA,IACH,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,YAAA,EAAc;AAAA,GAChB;AAAA,EACA,MAAA,EAAQ,EAAE,KAAA,EAAO,SAAA,EAAU;AAAA,EAC3B,QAAA,EAAU,EAAE,KAAA,EAAO,SAAA,EAAW,YAAY,MAAA,EAAgB;AAAA,EAC1D,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,QAAA,EAAU,MAAA;AAAA,IACV,GAAA,EAAK;AAAA,GACP;AAAA,EACA,SAAA,EAAW;AAAA,IACT,UAAA,EAAY,SAAA;AAAA,IACZ,MAAA,EAAQ,mBAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,MAAA,EAAQ,SAAA;AAAA,IACR,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,OAAA;AAAA,IACT,KAAA,EAAO,MAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,MAAA,EAAQ,MAAA;AAAA,IACR,SAAA,EAAW,mBAAA;AAAA,IACX,KAAA,EAAO,SAAA;AAAA,IACP,MAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAS,UAAA;AAAA,IACT,SAAA,EAAW,MAAA;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY;AAAA,GACd;AAAA,EACA,SAAA,EAAW;AAAA,IACT,QAAA,EAAU,OAAA;AAAA,IACV,MAAA,EAAQ,CAAA;AAAA,IACR,IAAA,EAAM,CAAA;AAAA,IACN,KAAA,EAAO,CAAA;AAAA,IACP,UAAA,EAAY,SAAA;AAAA,IACZ,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,MAAA;AAAA,IACV,OAAA,EAAS,UAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,eAAA;AAAA,IAChB,UAAA,EAAY,QAAA;AAAA,IACZ,aAAA,EAAe,KAAA;AAAA,IACf,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,SAAA,EAAW;AAAA,IACT,QAAA,EAAU,OAAA;AAAA,IACV,MAAA,EAAQ,EAAA;AAAA,IACR,KAAA,EAAO,EAAA;AAAA,IACP,KAAA,EAAO,EAAA;AAAA,IACP,MAAA,EAAQ,EAAA;AAAA,IACR,YAAA,EAAc,KAAA;AAAA,IACd,UAAA,EAAY,SAAA;AAAA,IACZ,MAAA,EAAQ,mBAAA;AAAA,IACR,KAAA,EAAO,OAAA;AAAA,IACP,MAAA,EAAQ,SAAA;AAAA,IACR,QAAA,EAAU,MAAA;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,MAAA,EAAQ,UAAA;AAAA,IACR,SAAA,EAAW,2BAAA;AAAA,IACX,aAAA,EAAe;AAAA;AAEnB,CAAA;AAMO,SAAS,gBAAA,GAA8C;AAC5D,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc,OAAO,IAAA;AAClD,EAAA,OAAO,KAAA,CAAM,cAAc,UAAU,CAAA;AACvC","file":"devtools.mjs","sourcesContent":["/**\n * tailwind-styled-v4 — DevTools v3\n *\n * Panels:\n * 🔍 Inspector — hover element, see classes + variants\n * ⚡ State — list all reactive state components + active states\n * 📦 Container — list container query components + active breakpoints\n * 🎨 Tokens — live token editor with instant preview\n * 📊 Analyzer — duplicate patterns + unused variants (runtime scan)\n *\n * Keyboard shortcuts:\n * Ctrl+Shift+D → toggle devtools\n * Escape → close\n * 1-5 → switch panels\n */\n\n\"use client\"\n\nimport React, { useCallback, useEffect, useRef, useState } from \"react\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\ninterface InspectedElement {\n componentName: string\n element: HTMLElement\n rect: DOMRect\n twClasses: string[]\n variantProps: Record<string, string>\n atomicMap: Record<string, string>\n rawClassName: string\n stateNames: string[]\n activeStates: Record<string, string>\n containerBps: string[]\n}\n\ntype Panel = \"inspector\" | \"state\" | \"container\" | \"tokens\" | \"analyzer\"\n\ninterface DevToolsState {\n open: boolean\n panel: Panel\n pinned: boolean\n inspected: InspectedElement | null\n position: { x: number; y: number }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction parseDataTw(dataTw: string | null): { name: string; classes: string[] } {\n if (!dataTw) return { name: \"Unknown\", classes: [] }\n const colonIdx = dataTw.indexOf(\":\")\n if (colonIdx === -1) return { name: dataTw, classes: [] }\n const name = dataTw.slice(0, colonIdx)\n const classes = dataTw\n .slice(colonIdx + 1)\n .split(/\\s+/)\n .filter(Boolean)\n return { name, classes }\n}\n\nfunction parseVariantAttr(v: string | null): Record<string, string> {\n if (!v) return {}\n try {\n return JSON.parse(v)\n } catch {\n return {}\n }\n}\n\nfunction findNearestTwElement(el: HTMLElement): HTMLElement | null {\n let cur: HTMLElement | null = el\n while (cur) {\n if (cur.dataset?.tw) return cur\n cur = cur.parentElement\n }\n return null\n}\n\nfunction getAtomicMap(classes: string[]): Record<string, string> {\n const registry = (window as any).__TW_REGISTRY__ as Record<string, string> | undefined\n if (!registry) return {}\n const map: Record<string, string> = {}\n for (const cls of classes) {\n if (registry[cls]) map[cls] = registry[cls]\n }\n return map\n}\n\nfunction getActiveStates(el: HTMLElement): Record<string, string> {\n const states: Record<string, string> = {}\n for (const attr of el.attributes) {\n if (attr.name.startsWith(\"data-\")) {\n states[attr.name.replace(\"data-\", \"\")] = attr.value\n }\n }\n return states\n}\n\nfunction getStateNames(el: HTMLElement): string[] {\n const registry = (window as any).__TW_STATE_REGISTRY__ as Map<string, any> | undefined\n if (!registry) return []\n for (const [id, entry] of registry) {\n if (el.classList.contains(id)) return entry.states\n }\n return []\n}\n\nfunction getContainerBps(el: HTMLElement): string[] {\n const registry = (window as any).__TW_CONTAINER_REGISTRY__ as Map<string, any> | undefined\n if (!registry) return []\n for (const [id, entry] of registry) {\n if (el.classList.contains(id)) {\n return entry.breakpoints.map((bp: any) => bp.minWidth)\n }\n }\n return []\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Inspector\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction InspectorPanel({\n inspected,\n position: _position,\n pinned: _pinned,\n}: {\n inspected: InspectedElement | null\n position: { x: number; y: number }\n pinned: boolean\n}) {\n if (!inspected) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\"span\", { style: { opacity: 0.4 } }, \"Hover an element to inspect\")\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n // Variant props\n Object.keys(inspected.variantProps).length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Variants\"),\n Object.entries(inspected.variantProps).map(([k, v]) =>\n React.createElement(\n \"div\",\n { key: k, style: S.row },\n React.createElement(\"span\", { style: S.varKey }, k),\n React.createElement(\"span\", { style: S.varValue }, `\"${v}\"`)\n )\n )\n ),\n\n // Active states\n Object.keys(inspected.activeStates).length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Active Data Attrs\"),\n Object.entries(inspected.activeStates).map(([k, v]) =>\n React.createElement(\n \"div\",\n { key: k, style: S.row },\n React.createElement(\"code\", { style: { ...S.varKey, color: \"#f59e0b\" } }, `data-${k}`),\n React.createElement(\"span\", { style: { ...S.varValue, color: \"#34d399\" } }, `\"${v}\"`)\n )\n )\n ),\n\n // State names\n inspected.stateNames.length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Reactive States\"),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n inspected.stateNames.map((s) =>\n React.createElement(\n \"code\",\n {\n key: s,\n style: {\n ...S.classChip,\n background: inspected.activeStates[s] === \"true\" ? \"#065f46\" : \"#18181b\",\n borderColor: inspected.activeStates[s] === \"true\" ? \"#34d399\" : \"#27272a\",\n },\n },\n s\n )\n )\n )\n ),\n\n // Container breakpoints\n inspected.containerBps.length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Container Breakpoints\"),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n inspected.containerBps.map((bp) =>\n React.createElement(\n \"code\",\n { key: bp, style: { ...S.classChip, color: \"#818cf8\" } },\n bp\n )\n )\n )\n ),\n\n // Tailwind classes\n inspected.twClasses.length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Classes\"),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n inspected.twClasses.map((cls) =>\n React.createElement(\n \"code\",\n { key: cls, style: S.classChip, title: inspected.atomicMap[cls] },\n cls\n )\n )\n )\n ),\n\n // Copy\n React.createElement(\n \"button\",\n {\n style: S.copyBtn,\n onClick: () => {\n navigator.clipboard?.writeText(\n JSON.stringify(\n {\n component: inspected.componentName,\n variants: inspected.variantProps,\n states: inspected.activeStates,\n classes: inspected.twClasses,\n },\n null,\n 2\n )\n )\n },\n },\n \"Copy to clipboard\"\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: State Registry\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction StatePanel() {\n const [entries, setEntries] = useState<any[]>([])\n\n useEffect(() => {\n const refresh = () => {\n const reg = (window as any).__TW_STATE_REGISTRY__ as Map<string, any> | undefined\n setEntries(reg ? Array.from(reg.values()) : [])\n }\n refresh()\n const interval = setInterval(refresh, 1000)\n return () => clearInterval(interval)\n }, [])\n\n if (entries.length === 0) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\n \"span\",\n { style: { opacity: 0.4 } },\n \"No state-enabled components found.\"\n ),\n React.createElement(\"br\", null),\n React.createElement(\n \"span\",\n { style: { opacity: 0.3, fontSize: \"11px\" } },\n 'Use tw.button({ state: { active: \"...\" } }) to register.'\n )\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n entries.map((entry) =>\n React.createElement(\n \"div\",\n { key: entry.id, style: S.section },\n React.createElement(\n \"div\",\n { style: S.sectionTitle },\n React.createElement(\"span\", { style: { color: \"#60a5fa\" } }, entry.tag.toUpperCase()),\n React.createElement(\n \"span\",\n { style: { marginLeft: \"8px\", color: \"#52525b\", fontSize: \"10px\" } },\n entry.id\n )\n ),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n entry.states.map((s: string) =>\n React.createElement(\n \"code\",\n { key: s, style: { ...S.classChip, color: \"#f59e0b\" } },\n `data-${s}`\n )\n )\n ),\n React.createElement(\n \"div\",\n { style: { ...S.row, marginTop: \"4px\" } },\n React.createElement(\n \"span\",\n {\n style: {\n ...S.sectionTitle,\n marginBottom: 0,\n color: entry.cssInjected ? \"#34d399\" : \"#ef4444\",\n },\n },\n entry.cssInjected ? \"● CSS injected\" : \"○ CSS pending\"\n )\n )\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Container Query Registry\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction ContainerPanel() {\n const [entries, setEntries] = useState<any[]>([])\n\n useEffect(() => {\n const refresh = () => {\n const reg = (window as any).__TW_CONTAINER_REGISTRY__ as Map<string, any> | undefined\n setEntries(reg ? Array.from(reg.values()) : [])\n }\n refresh()\n const interval = setInterval(refresh, 1000)\n return () => clearInterval(interval)\n }, [])\n\n if (entries.length === 0) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\n \"span\",\n { style: { opacity: 0.4 } },\n \"No container query components found.\"\n ),\n React.createElement(\"br\", null),\n React.createElement(\n \"span\",\n { style: { opacity: 0.3, fontSize: \"11px\" } },\n 'Use tw.div({ container: { md: \"flex-row\" } }) to register.'\n )\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n entries.map((entry) =>\n React.createElement(\n \"div\",\n { key: entry.id, style: S.section },\n React.createElement(\n \"div\",\n { style: S.sectionTitle },\n React.createElement(\"span\", { style: { color: \"#60a5fa\" } }, entry.tag.toUpperCase()),\n entry.containerName &&\n React.createElement(\n \"span\",\n { style: { marginLeft: \"6px\", color: \"#818cf8\" } },\n `[${entry.containerName}]`\n ),\n React.createElement(\n \"span\",\n { style: { marginLeft: \"8px\", color: \"#52525b\", fontSize: \"10px\" } },\n entry.id\n )\n ),\n React.createElement(\n \"div\",\n null,\n entry.breakpoints.map((bp: any, i: number) =>\n React.createElement(\n \"div\",\n { key: i, style: { ...S.row, marginBottom: \"2px\" } },\n React.createElement(\n \"code\",\n { style: { color: \"#818cf8\", fontSize: \"11px\" } },\n `≥ ${bp.minWidth}`\n ),\n React.createElement(\n \"span\",\n { style: { color: \"#6b7280\", fontSize: \"11px\" } },\n bp.classes\n )\n )\n )\n )\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Live Token Editor\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction TokensPanel() {\n const [tokens, setTokens_] = useState<Record<string, string>>({})\n\n useEffect(() => {\n const engine = (window as any).__TW_TOKEN_ENGINE__\n if (!engine) return\n\n setTokens_(engine.getTokens())\n const unsub = engine.subscribe((t: Record<string, string>) => setTokens_({ ...t }))\n return unsub\n }, [])\n\n const entries = Object.entries(tokens)\n\n if (entries.length === 0) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\"span\", { style: { opacity: 0.4 } }, \"No live tokens registered.\"),\n React.createElement(\"br\", null),\n React.createElement(\n \"span\",\n { style: { opacity: 0.3, fontSize: \"11px\" } },\n 'Use liveToken({ primary: \"#3b82f6\" }) to register tokens.'\n )\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n React.createElement(\n \"div\",\n { style: { ...S.sectionTitle, padding: \"8px 12px 4px\", color: \"#52525b\" } },\n \"Click color to edit · Changes apply instantly\"\n ),\n entries.map(([name, value]) => {\n const isColor = value.startsWith(\"#\") || value.startsWith(\"rgb\") || value.startsWith(\"hsl\")\n return React.createElement(\n \"div\",\n { key: name, style: { ...S.row, padding: \"6px 12px\", borderBottom: \"1px solid #18181b\" } },\n React.createElement(\n \"div\",\n { style: { display: \"flex\", alignItems: \"center\", gap: \"8px\" } },\n isColor &&\n React.createElement(\"div\", {\n style: {\n width: \"16px\",\n height: \"16px\",\n borderRadius: \"3px\",\n background: value,\n border: \"1px solid #27272a\",\n flexShrink: 0,\n },\n }),\n React.createElement(\"span\", { style: { color: \"#a1a1aa\", fontSize: \"12px\" } }, name)\n ),\n isColor\n ? React.createElement(\"input\", {\n type: \"color\",\n defaultValue: value.startsWith(\"#\") ? value : \"#000000\",\n style: {\n width: \"52px\",\n height: \"22px\",\n border: \"none\",\n background: \"none\",\n cursor: \"pointer\",\n },\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n const engine = (window as any).__TW_TOKEN_ENGINE__\n if (engine) engine.setToken(name, e.target.value)\n },\n })\n : React.createElement(\"input\", {\n type: \"text\",\n defaultValue: value,\n style: {\n background: \"#18181b\",\n border: \"1px solid #27272a\",\n borderRadius: \"3px\",\n color: \"#e4e4e7\",\n fontSize: \"11px\",\n padding: \"2px 6px\",\n width: \"100px\",\n fontFamily: \"monospace\",\n },\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => {\n const engine = (window as any).__TW_TOKEN_ENGINE__\n if (engine) engine.setToken(name, e.target.value)\n },\n })\n )\n })\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Runtime Analyzer\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction AnalyzerPanel() {\n const [scanning, setScanning] = useState(false)\n const [results, setResults] = useState<{\n duplicates: Array<{ pattern: string; count: number; names: string[] }>\n stateCount: number\n containerCount: number\n tokenCount: number\n } | null>(null)\n // Engine metrics — fetched dari dashboard server (http://localhost:3000/metrics)\n const [engineMetrics, setEngineMetrics] = useState<Record<string, unknown> | null>(null)\n const [metricsFetching, setMetricsFetching] = useState(false)\n const [metricsError, setMetricsError] = useState<string | null>(null)\n\n const loadEngineMetrics = useCallback(async () => {\n setMetricsFetching(true)\n setMetricsError(null)\n try {\n const res = await fetch(\"http://localhost:3000/metrics\", {\n signal: AbortSignal.timeout(2000),\n })\n if (!res.ok) throw new Error(`HTTP ${res.status}`)\n const data = await res.json()\n setEngineMetrics(data)\n } catch (e: unknown) {\n const msg = e instanceof Error ? e.message : String(e)\n setMetricsError(\n msg.includes(\"Failed to fetch\") || msg.includes(\"NetworkError\")\n ? \"Dashboard tidak berjalan. Jalankan: tw dashboard\"\n : msg\n )\n setEngineMetrics(null)\n } finally {\n setMetricsFetching(false)\n }\n }, [])\n\n const runScan = useCallback(() => {\n setScanning(true)\n\n setTimeout(() => {\n const twEls = document.querySelectorAll(\"[data-tw]\")\n const classMap = new Map<string, string[]>()\n\n for (const el of twEls) {\n const { name, classes } = (() => {\n const dTw = (el as HTMLElement).dataset.tw ?? null\n if (!dTw) return { name: \"?\", classes: [] }\n const ci = dTw.indexOf(\":\")\n return {\n name: ci >= 0 ? dTw.slice(0, ci) : dTw,\n classes:\n ci >= 0\n ? dTw\n .slice(ci + 1)\n .split(/\\s+/)\n .filter(Boolean)\n : [],\n }\n })()\n\n const key = classes.sort().join(\" \")\n if (!classMap.has(key)) classMap.set(key, [])\n classMap.get(key)!.push(name)\n }\n\n const duplicates = Array.from(classMap.entries())\n .filter(([, names]) => names.length > 1)\n .map(([pattern, names]) => ({ pattern, count: names.length, names }))\n .sort((a, b) => b.count - a.count)\n .slice(0, 10)\n\n const stateReg = (window as any).__TW_STATE_REGISTRY__ as Map<string, any> | undefined\n const containerReg = (window as any).__TW_CONTAINER_REGISTRY__ as Map<string, any> | undefined\n const tokenEngine = (window as any).__TW_TOKEN_ENGINE__\n\n setResults({\n duplicates,\n stateCount: stateReg?.size ?? 0,\n containerCount: containerReg?.size ?? 0,\n tokenCount: Object.keys(tokenEngine?.getTokens?.() ?? {}).length,\n })\n setScanning(false)\n }, 100)\n }, [])\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n React.createElement(\n \"div\",\n { style: { padding: \"10px 12px\" } },\n\n // ── DOM Scan ──────────────────────────────────────────────────────────\n React.createElement(\n \"button\",\n {\n style: { ...S.copyBtn, borderTop: \"none\", color: \"#60a5fa\", fontWeight: \"600\" },\n onClick: runScan,\n disabled: scanning,\n },\n scanning ? \"Scanning DOM...\" : \"▶ Run DOM Scan\"\n ),\n\n // ── Engine Metrics (dari dashboard) ───────────────────────────────────\n React.createElement(\n \"div\",\n { style: { ...S.section, marginTop: \"8px\" } },\n React.createElement(\n \"div\",\n { style: { ...S.sectionTitle, marginBottom: \"6px\" } },\n \"⚡ Engine Metrics\"\n ),\n engineMetrics\n ? React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Build\"),\n React.createElement(\n \"span\",\n { style: { ...S.varValue, color: \"#34d399\" } },\n engineMetrics.buildMs !== null ? `${engineMetrics.buildMs}ms` : \"—\"\n )\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Classes\"),\n React.createElement(\n \"span\",\n { style: { ...S.varValue, color: \"#34d399\" } },\n String(engineMetrics.classCount ?? \"—\")\n )\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Files\"),\n React.createElement(\n \"span\",\n { style: { ...S.varValue, color: \"#34d399\" } },\n String(engineMetrics.fileCount ?? \"—\")\n )\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Mode\"),\n React.createElement(\n \"span\",\n { style: { color: \"#a1a1aa\", fontSize: \"11px\" } },\n String(engineMetrics.mode ?? \"—\")\n )\n ),\n React.createElement(\n \"button\",\n {\n style: {\n ...S.copyBtn,\n borderTop: \"none\",\n color: \"#52525b\",\n fontSize: \"10px\",\n padding: \"4px 0\",\n },\n onClick: loadEngineMetrics,\n disabled: metricsFetching,\n },\n \"↻ Refresh\"\n )\n )\n : metricsError\n ? React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n { style: { color: \"#f87171\", fontSize: \"11px\", marginBottom: \"6px\" } },\n metricsError\n ),\n React.createElement(\n \"button\",\n {\n style: { ...S.copyBtn, borderTop: \"none\", color: \"#34d399\", fontWeight: \"600\" },\n onClick: loadEngineMetrics,\n disabled: metricsFetching,\n },\n metricsFetching ? \"Connecting...\" : \"↻ Retry\"\n )\n )\n : React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n {\n style: {\n color: \"#71717a\",\n fontSize: \"11px\",\n lineHeight: 1.6,\n marginBottom: \"6px\",\n },\n },\n \"Rust analyzer hanya tersedia via CLI atau dashboard.\",\n React.createElement(\"br\", null),\n React.createElement(\n \"code\",\n { style: { color: \"#52525b\", fontSize: \"10px\" } },\n \"tw analyze . | tw dashboard\"\n )\n ),\n React.createElement(\n \"button\",\n {\n style: { ...S.copyBtn, borderTop: \"none\", color: \"#34d399\", fontWeight: \"600\" },\n onClick: loadEngineMetrics,\n disabled: metricsFetching,\n },\n metricsFetching ? \"Connecting...\" : \"⚡ Load from Dashboard\"\n )\n )\n ),\n\n // ── DOM Scan Results ──────────────────────────────────────────────────\n results &&\n React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Summary\"),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"State components\"),\n React.createElement(\"span\", { style: S.varValue }, String(results.stateCount))\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Container components\"),\n React.createElement(\"span\", { style: S.varValue }, String(results.containerCount))\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Live tokens\"),\n React.createElement(\"span\", { style: S.varValue }, String(results.tokenCount))\n )\n ),\n\n results.duplicates.length > 0\n ? React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Duplicate Class Sets\"),\n results.duplicates.map((d, i) =>\n React.createElement(\n \"div\",\n { key: i, style: { marginBottom: \"8px\" } },\n React.createElement(\n \"div\",\n { style: { color: \"#f59e0b\", fontSize: \"11px\", marginBottom: \"2px\" } },\n d.names.join(\", \")\n ),\n React.createElement(\n \"code\",\n {\n style: {\n color: \"#52525b\",\n fontSize: \"10px\",\n wordBreak: \"break-all\" as const,\n },\n },\n d.pattern.split(\" \").slice(0, 8).join(\" \") +\n (d.pattern.split(\" \").length > 8 ? \"...\" : \"\")\n )\n )\n )\n )\n : React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\n \"span\",\n { style: { color: \"#34d399\", fontSize: \"12px\" } },\n \"✓ No duplicate class sets in current DOM\"\n )\n )\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Main DevTools component\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function TwDevTools(): React.ReactElement | null {\n if (process.env.NODE_ENV === \"production\") return null\n\n const [state, setState] = useState<DevToolsState>({\n open: false,\n panel: \"inspector\",\n pinned: false,\n inspected: null,\n position: { x: 0, y: 0 },\n })\n\n const overlayRef = useRef<HTMLDivElement>(null)\n const isInspecting = state.open && state.panel === \"inspector\"\n\n // Keyboard shortcuts\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.ctrlKey && e.shiftKey && e.key === \"D\") {\n e.preventDefault()\n setState((s) => ({ ...s, open: !s.open, inspected: null }))\n }\n if (e.key === \"Escape\")\n setState((s) => ({ ...s, open: false, pinned: false, inspected: null }))\n if (e.key === \"1\") setState((s) => (s.open ? { ...s, panel: \"inspector\" } : s))\n if (e.key === \"2\") setState((s) => (s.open ? { ...s, panel: \"state\" } : s))\n if (e.key === \"3\") setState((s) => (s.open ? { ...s, panel: \"container\" } : s))\n if (e.key === \"4\") setState((s) => (s.open ? { ...s, panel: \"tokens\" } : s))\n if (e.key === \"5\") setState((s) => (s.open ? { ...s, panel: \"analyzer\" } : s))\n }\n window.addEventListener(\"keydown\", onKey)\n return () => window.removeEventListener(\"keydown\", onKey)\n }, [])\n\n // Mouse move — only active on inspector panel\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n if (!isInspecting || state.pinned) return\n const twEl = findNearestTwElement(e.target as HTMLElement)\n if (!twEl) {\n setState((s) => ({ ...s, inspected: null, position: { x: e.clientX, y: e.clientY } }))\n return\n }\n const { name, classes } = parseDataTw(twEl.dataset.tw ?? null)\n setState((s) => ({\n ...s,\n position: { x: e.clientX, y: e.clientY },\n inspected: {\n componentName: name,\n element: twEl,\n rect: twEl.getBoundingClientRect(),\n twClasses: classes,\n variantProps: parseVariantAttr(twEl.dataset.twVariants ?? null),\n atomicMap: getAtomicMap(classes),\n rawClassName: twEl.className,\n stateNames: getStateNames(twEl),\n activeStates: getActiveStates(twEl),\n containerBps: getContainerBps(twEl),\n },\n }))\n },\n [isInspecting, state.pinned]\n )\n\n const onClick = useCallback(\n (e: MouseEvent) => {\n if (!isInspecting) return\n if (overlayRef.current?.contains(e.target as HTMLElement)) return\n setState((s) => ({ ...s, pinned: !s.pinned && !!s.inspected }))\n },\n [isInspecting]\n )\n\n useEffect(() => {\n if (!isInspecting) return\n window.addEventListener(\"mousemove\", onMouseMove)\n window.addEventListener(\"click\", onClick)\n return () => {\n window.removeEventListener(\"mousemove\", onMouseMove)\n window.removeEventListener(\"click\", onClick)\n }\n }, [isInspecting, onMouseMove, onClick])\n\n // Toggle button\n if (!state.open) {\n return React.createElement(\n \"button\",\n {\n onClick: () => setState((s) => ({ ...s, open: true })),\n style: S.toggleBtn,\n title: \"tailwind-styled-v4 DevTools (Ctrl+Shift+D)\",\n },\n \"🎨\"\n )\n }\n\n const PANELS: Array<{ id: Panel; label: string; icon: string }> = [\n { id: \"inspector\", label: \"Inspector\", icon: \"🔍\" },\n { id: \"state\", label: \"State\", icon: \"⚡\" },\n { id: \"container\", label: \"Container\", icon: \"📦\" },\n { id: \"tokens\", label: \"Tokens\", icon: \"🎨\" },\n { id: \"analyzer\", label: \"Analyzer\", icon: \"📊\" },\n ]\n\n return React.createElement(\n \"div\",\n { style: S.root },\n\n // ── Element highlight (inspector only) ──────────────────────────────\n isInspecting &&\n state.inspected &&\n React.createElement(\"div\", {\n style: {\n ...S.highlight,\n top: state.inspected.rect.top + window.scrollY,\n left: state.inspected.rect.left + window.scrollX,\n width: state.inspected.rect.width,\n height: state.inspected.rect.height,\n },\n }),\n\n // ── Component name label ────────────────────────────────────────────\n isInspecting &&\n state.inspected &&\n React.createElement(\n \"div\",\n {\n style: {\n position: \"absolute\" as const,\n top: state.inspected.rect.top + window.scrollY - 22,\n left: state.inspected.rect.left + window.scrollX,\n background: \"#1e3a5f\",\n color: \"#93c5fd\",\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"3px 3px 0 0\",\n pointerEvents: \"none\" as const,\n zIndex: 2147483646,\n fontFamily: \"monospace\",\n },\n },\n state.inspected.componentName\n ),\n\n // ── Main DevTools panel ─────────────────────────────────────────────\n React.createElement(\n \"div\",\n {\n ref: overlayRef,\n style:\n state.panel === \"inspector\" && state.inspected\n ? {\n ...S.panel,\n top: Math.min(state.position.y + 16, window.innerHeight - 460),\n left: Math.min(state.position.x + 16, window.innerWidth - 320),\n }\n : {\n ...S.panel,\n top: \"auto\",\n bottom: \"40px\",\n right: \"12px\",\n left: \"auto\",\n },\n },\n\n // Header\n React.createElement(\n \"div\",\n { style: S.header },\n React.createElement(\n \"span\",\n { style: S.componentName },\n state.inspected && state.panel === \"inspector\"\n ? state.inspected.componentName\n : \"tailwind-styled-v4\"\n ),\n React.createElement(\n \"div\",\n { style: S.headerActions },\n state.pinned && React.createElement(\"span\", { style: S.pinBadge }, \"📌\"),\n React.createElement(\n \"button\",\n {\n style: S.closeBtn,\n onClick: () =>\n setState((s) => ({ ...s, open: false, pinned: false, inspected: null })),\n },\n \"✕\"\n )\n )\n ),\n\n // Tab bar\n React.createElement(\n \"div\",\n { style: S.tabBar },\n PANELS.map((p) =>\n React.createElement(\n \"button\",\n {\n key: p.id,\n style: {\n ...S.tab,\n background: state.panel === p.id ? \"#18181b\" : \"none\",\n color: state.panel === p.id ? \"#e4e4e7\" : \"#52525b\",\n borderBottom: state.panel === p.id ? \"2px solid #3b82f6\" : \"2px solid transparent\",\n },\n onClick: () => setState((s) => ({ ...s, panel: p.id })),\n title: `${p.label} (${PANELS.findIndex((x) => x.id === p.id) + 1})`,\n },\n `${p.icon} ${p.label}`\n )\n )\n ),\n\n // Panel content\n state.panel === \"inspector\" &&\n React.createElement(InspectorPanel, {\n inspected: state.inspected,\n position: state.position,\n pinned: state.pinned,\n }),\n state.panel === \"state\" && React.createElement(StatePanel, null),\n state.panel === \"container\" && React.createElement(ContainerPanel, null),\n state.panel === \"tokens\" && React.createElement(TokensPanel, null),\n state.panel === \"analyzer\" && React.createElement(AnalyzerPanel, null)\n ),\n\n // ── Status bar ──────────────────────────────────────────────────────\n React.createElement(\n \"div\",\n { style: S.statusBar },\n React.createElement(\"span\", null, \"🎨 tailwind-styled-v4 DevTools\"),\n React.createElement(\n \"span\",\n { style: { opacity: 0.6, fontSize: \"10px\" } },\n state.pinned\n ? \"Click to unpin\"\n : isInspecting\n ? \"Hover to inspect · Click to pin · 1-5 switch panel · Esc close\"\n : \"Ctrl+Shift+D close · 1-5 switch panel\"\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Styles\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst S = {\n root: {\n position: \"fixed\" as const,\n inset: 0,\n zIndex: 2147483647,\n pointerEvents: \"none\" as const,\n fontFamily: \"ui-monospace, 'JetBrains Mono', monospace\",\n fontSize: \"12px\",\n },\n highlight: {\n position: \"absolute\" as const,\n borderRadius: \"3px\",\n outline: \"2px solid #3b82f6\",\n outlineOffset: \"1px\",\n background: \"rgba(59,130,246,0.08)\",\n pointerEvents: \"none\" as const,\n transition: \"all 0.1s ease\",\n zIndex: 2147483646,\n },\n panel: {\n position: \"fixed\" as const,\n width: 320,\n maxHeight: 480,\n background: \"#0f0f0f\",\n border: \"1px solid #27272a\",\n borderRadius: \"10px\",\n boxShadow: \"0 8px 32px rgba(0,0,0,0.8)\",\n pointerEvents: \"all\" as const,\n zIndex: 2147483647,\n userSelect: \"text\" as const,\n display: \"flex\",\n flexDirection: \"column\" as const,\n },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"8px 12px 6px\",\n borderBottom: \"1px solid #1f1f1f\",\n flexShrink: 0,\n },\n tabBar: {\n display: \"flex\",\n borderBottom: \"1px solid #18181b\",\n flexShrink: 0,\n overflowX: \"auto\" as const,\n },\n tab: {\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n fontSize: \"10px\",\n padding: \"5px 8px\",\n whiteSpace: \"nowrap\" as const,\n fontFamily: \"inherit\",\n transition: \"color 0.1s\",\n pointerEvents: \"all\" as const,\n },\n scrollArea: {\n overflowY: \"auto\" as const,\n flex: 1,\n },\n emptyPanel: {\n padding: \"24px 12px\",\n color: \"#71717a\",\n fontSize: \"12px\",\n textAlign: \"center\" as const,\n lineHeight: 1.6,\n },\n componentName: {\n color: \"#60a5fa\",\n fontWeight: \"bold\" as const,\n fontSize: \"13px\",\n },\n headerActions: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n },\n pinBadge: { color: \"#fbbf24\", fontSize: \"10px\" },\n closeBtn: {\n background: \"none\",\n border: \"none\",\n color: \"#71717a\",\n cursor: \"pointer\",\n fontSize: \"14px\",\n lineHeight: 1,\n padding: \"2px 4px\",\n pointerEvents: \"all\" as const,\n },\n section: {\n padding: \"8px 12px\",\n borderBottom: \"1px solid #18181b\",\n },\n sectionTitle: {\n color: \"#52525b\",\n fontSize: \"10px\",\n textTransform: \"uppercase\" as const,\n letterSpacing: \"0.08em\",\n marginBottom: \"6px\",\n },\n row: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: \"3px\",\n },\n varKey: { color: \"#a1a1aa\" },\n varValue: { color: \"#34d399\", fontWeight: \"bold\" as const },\n classGrid: {\n display: \"flex\",\n flexWrap: \"wrap\" as const,\n gap: \"4px\",\n },\n classChip: {\n background: \"#18181b\",\n border: \"1px solid #27272a\",\n borderRadius: \"4px\",\n padding: \"2px 6px\",\n color: \"#e4e4e7\",\n cursor: \"default\",\n fontSize: \"11px\",\n },\n copyBtn: {\n display: \"block\",\n width: \"100%\",\n background: \"none\",\n border: \"none\",\n borderTop: \"1px solid #18181b\",\n color: \"#52525b\",\n cursor: \"pointer\",\n padding: \"8px 12px\",\n textAlign: \"left\" as const,\n fontSize: \"11px\",\n pointerEvents: \"all\" as const,\n fontFamily: \"inherit\",\n },\n statusBar: {\n position: \"fixed\" as const,\n bottom: 0,\n left: 0,\n right: 0,\n background: \"#1e3a5f\",\n color: \"#93c5fd\",\n fontSize: \"11px\",\n padding: \"4px 12px\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n pointerEvents: \"all\" as const,\n zIndex: 2147483647,\n },\n toggleBtn: {\n position: \"fixed\" as const,\n bottom: 12,\n right: 12,\n width: 36,\n height: 36,\n borderRadius: \"50%\",\n background: \"#1e3a5f\",\n border: \"1px solid #3b82f6\",\n color: \"white\",\n cursor: \"pointer\",\n fontSize: \"16px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 2147483647,\n boxShadow: \"0 2px 8px rgba(0,0,0,0.4)\",\n pointerEvents: \"all\" as const,\n },\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Provider\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function DevToolsProvider(): React.ReactElement | null {\n if (process.env.NODE_ENV === \"production\") return null\n return React.createElement(TwDevTools)\n}\n"]}
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
import { ScanWorkspaceResult, ScanWorkspaceOptions } from './scanner.mjs';
|
|
2
|
+
export { ScanFileResult } from './scanner.mjs';
|
|
3
|
+
|
|
4
|
+
interface EngineMetricsSnapshot {
|
|
5
|
+
eventsReceived: number;
|
|
6
|
+
eventsProcessed: number;
|
|
7
|
+
batchesProcessed: number;
|
|
8
|
+
incrementalUpdates: number;
|
|
9
|
+
fullRescans: number;
|
|
10
|
+
skippedLargeFiles: number;
|
|
11
|
+
queueMaxSize: number;
|
|
12
|
+
lastBuildMs: number;
|
|
13
|
+
avgBuildMs: number;
|
|
14
|
+
}
|
|
15
|
+
declare class EngineMetricsCollector {
|
|
16
|
+
private eventsReceived;
|
|
17
|
+
private eventsProcessed;
|
|
18
|
+
private batchesProcessed;
|
|
19
|
+
private incrementalUpdates;
|
|
20
|
+
private fullRescans;
|
|
21
|
+
private skippedLargeFiles;
|
|
22
|
+
private queueMaxSize;
|
|
23
|
+
private lastBuildMs;
|
|
24
|
+
private totalBuildMs;
|
|
25
|
+
markEventReceived(queueSize: number): void;
|
|
26
|
+
markBatchProcessed(batchSize: number): void;
|
|
27
|
+
markIncremental(): void;
|
|
28
|
+
markFullRescan(): void;
|
|
29
|
+
markSkippedLargeFile(): void;
|
|
30
|
+
markBuildDuration(ms: number): void;
|
|
31
|
+
snapshot(): EngineMetricsSnapshot;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface EnginePluginContext {
|
|
35
|
+
root: string;
|
|
36
|
+
timestamp: number;
|
|
37
|
+
}
|
|
38
|
+
interface EngineWatchContext {
|
|
39
|
+
root: string;
|
|
40
|
+
timestamp: number;
|
|
41
|
+
}
|
|
42
|
+
interface EnginePlugin {
|
|
43
|
+
name: string;
|
|
44
|
+
beforeScan?(context: EnginePluginContext): void | Promise<void>;
|
|
45
|
+
afterScan?(scan: ScanWorkspaceResult, context: EnginePluginContext): ScanWorkspaceResult | void | Promise<ScanWorkspaceResult | void>;
|
|
46
|
+
transformClasses?(classes: string[], context: EnginePluginContext): string[] | void | Promise<string[] | void>;
|
|
47
|
+
beforeBuild?(scan: ScanWorkspaceResult, context: EnginePluginContext): void | Promise<void>;
|
|
48
|
+
afterBuild?(result: BuildResult, context: EnginePluginContext): BuildResult | void | Promise<BuildResult | void>;
|
|
49
|
+
onError?(error: Error, context: EnginePluginContext): void | Promise<void>;
|
|
50
|
+
beforeWatch?(context: EngineWatchContext): void | Promise<void>;
|
|
51
|
+
afterWatch?(context: EngineWatchContext): void | Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
declare function runBeforeScan(plugins: EnginePlugin[], context: EnginePluginContext): Promise<void>;
|
|
54
|
+
declare function runAfterScan(plugins: EnginePlugin[], scan: ScanWorkspaceResult, context: EnginePluginContext): Promise<ScanWorkspaceResult>;
|
|
55
|
+
declare function runTransformClasses(plugins: EnginePlugin[], classes: string[], context: EnginePluginContext): Promise<string[]>;
|
|
56
|
+
declare function runBeforeBuild(plugins: EnginePlugin[], scan: ScanWorkspaceResult, context: EnginePluginContext): Promise<void>;
|
|
57
|
+
declare function runAfterBuild(plugins: EnginePlugin[], result: BuildResult, context: EnginePluginContext): Promise<BuildResult>;
|
|
58
|
+
declare function runOnError(plugins: EnginePlugin[], error: Error, context: EnginePluginContext): Promise<void>;
|
|
59
|
+
declare function runBeforeWatch(plugins: EnginePlugin[], context: EngineWatchContext): Promise<void>;
|
|
60
|
+
declare function runAfterWatch(plugins: EnginePlugin[], context: EngineWatchContext): Promise<void>;
|
|
61
|
+
|
|
62
|
+
declare class RuleId {
|
|
63
|
+
readonly value: number;
|
|
64
|
+
constructor(value: number);
|
|
65
|
+
toString(): string;
|
|
66
|
+
}
|
|
67
|
+
declare class SelectorId {
|
|
68
|
+
readonly value: number;
|
|
69
|
+
constructor(value: number);
|
|
70
|
+
toString(): string;
|
|
71
|
+
}
|
|
72
|
+
declare class VariantChainId {
|
|
73
|
+
readonly value: number;
|
|
74
|
+
constructor(value: number);
|
|
75
|
+
toString(): string;
|
|
76
|
+
}
|
|
77
|
+
declare class PropertyId {
|
|
78
|
+
readonly value: number;
|
|
79
|
+
constructor(value: number);
|
|
80
|
+
toString(): string;
|
|
81
|
+
}
|
|
82
|
+
declare class ValueId {
|
|
83
|
+
readonly value: number;
|
|
84
|
+
constructor(value: number);
|
|
85
|
+
toString(): string;
|
|
86
|
+
}
|
|
87
|
+
declare class LayerId {
|
|
88
|
+
readonly value: number;
|
|
89
|
+
constructor(value: number);
|
|
90
|
+
toString(): string;
|
|
91
|
+
}
|
|
92
|
+
declare class ConditionId {
|
|
93
|
+
readonly value: number;
|
|
94
|
+
constructor(value: number);
|
|
95
|
+
toString(): string;
|
|
96
|
+
}
|
|
97
|
+
declare class CascadeResolutionId {
|
|
98
|
+
readonly value: number;
|
|
99
|
+
constructor(value: number);
|
|
100
|
+
toString(): string;
|
|
101
|
+
}
|
|
102
|
+
declare enum Origin {
|
|
103
|
+
UserAgent = 0,
|
|
104
|
+
UserNormal = 1,
|
|
105
|
+
AuthorNormal = 2,
|
|
106
|
+
AuthorImportant = 3,
|
|
107
|
+
UserImportant = 4
|
|
108
|
+
}
|
|
109
|
+
declare enum Importance {
|
|
110
|
+
Normal = 0,
|
|
111
|
+
Important = 1
|
|
112
|
+
}
|
|
113
|
+
declare enum ConditionResult {
|
|
114
|
+
Active = 0,
|
|
115
|
+
Inactive = 1,
|
|
116
|
+
Unknown = 2
|
|
117
|
+
}
|
|
118
|
+
declare enum CascadeStage {
|
|
119
|
+
Origin = 0,
|
|
120
|
+
Layer = 1,
|
|
121
|
+
Importance = 2,
|
|
122
|
+
Specificity = 3,
|
|
123
|
+
Order = 4
|
|
124
|
+
}
|
|
125
|
+
type ResolutionCause = {
|
|
126
|
+
type: "LowerOrigin";
|
|
127
|
+
winnerOrigin: Origin;
|
|
128
|
+
loserOrigin: Origin;
|
|
129
|
+
} | {
|
|
130
|
+
type: "LowerLayer";
|
|
131
|
+
winnerLayer: string;
|
|
132
|
+
loserLayer: string;
|
|
133
|
+
} | {
|
|
134
|
+
type: "LowerImportance";
|
|
135
|
+
} | {
|
|
136
|
+
type: "LowerSpecificity";
|
|
137
|
+
delta: number;
|
|
138
|
+
} | {
|
|
139
|
+
type: "EarlierOrder";
|
|
140
|
+
delta: number;
|
|
141
|
+
} | {
|
|
142
|
+
type: "InactiveCondition";
|
|
143
|
+
condition: string;
|
|
144
|
+
};
|
|
145
|
+
interface ResolutionReason {
|
|
146
|
+
causes: readonly ResolutionCause[];
|
|
147
|
+
finalDecision: string;
|
|
148
|
+
}
|
|
149
|
+
interface SelectorIR {
|
|
150
|
+
id: SelectorId;
|
|
151
|
+
normalized: string;
|
|
152
|
+
specificity: number;
|
|
153
|
+
parts: readonly string[];
|
|
154
|
+
}
|
|
155
|
+
interface VariantChainIR {
|
|
156
|
+
id: VariantChainId;
|
|
157
|
+
chain: readonly VariantChainId[];
|
|
158
|
+
conditionGraphId: number | null;
|
|
159
|
+
}
|
|
160
|
+
interface ConditionIR {
|
|
161
|
+
id: ConditionId;
|
|
162
|
+
conditionType: string;
|
|
163
|
+
expression: string;
|
|
164
|
+
}
|
|
165
|
+
interface RuleIR {
|
|
166
|
+
id: RuleId;
|
|
167
|
+
selector: SelectorId;
|
|
168
|
+
variantChain: VariantChainId;
|
|
169
|
+
property: PropertyId;
|
|
170
|
+
value: ValueId;
|
|
171
|
+
origin: Origin;
|
|
172
|
+
importance: Importance;
|
|
173
|
+
layer: LayerId | null;
|
|
174
|
+
layerOrder: number;
|
|
175
|
+
specificity: number;
|
|
176
|
+
condition: ConditionId | null;
|
|
177
|
+
conditionResult: ConditionResult;
|
|
178
|
+
insertionOrder: number;
|
|
179
|
+
fingerprint: string;
|
|
180
|
+
source: SourceLocation;
|
|
181
|
+
}
|
|
182
|
+
interface PropertyBucketIR {
|
|
183
|
+
property: PropertyId;
|
|
184
|
+
rules: readonly RuleId[];
|
|
185
|
+
}
|
|
186
|
+
interface CascadeResolutionIR {
|
|
187
|
+
id: CascadeResolutionId;
|
|
188
|
+
property: PropertyId;
|
|
189
|
+
winner: RuleId;
|
|
190
|
+
losers: readonly RuleId[];
|
|
191
|
+
reason: ResolutionReason;
|
|
192
|
+
stage: CascadeStage;
|
|
193
|
+
}
|
|
194
|
+
interface StyleGraphIR {
|
|
195
|
+
ruleConflicts: Map<RuleId, readonly RuleId[]>;
|
|
196
|
+
}
|
|
197
|
+
interface FinalComputedStyleIR {
|
|
198
|
+
className: string;
|
|
199
|
+
resolvedProperties: Map<PropertyId, CascadeResolutionId>;
|
|
200
|
+
}
|
|
201
|
+
interface SourceLocation {
|
|
202
|
+
file: string;
|
|
203
|
+
line: number;
|
|
204
|
+
column: number;
|
|
205
|
+
}
|
|
206
|
+
declare function createFingerprint(parts: string[]): string;
|
|
207
|
+
declare function compareCascadeOrder(a: RuleIR, b: RuleIR): number;
|
|
208
|
+
declare function createResolutionReason(causes: ResolutionCause[], finalDecision: string): ResolutionReason;
|
|
209
|
+
|
|
210
|
+
interface ClassBundleInfo {
|
|
211
|
+
className: string;
|
|
212
|
+
usageCount: number;
|
|
213
|
+
usedInFiles: SourceLocation[];
|
|
214
|
+
bundleSize: number;
|
|
215
|
+
componentsAffected: number;
|
|
216
|
+
variantChain: string[];
|
|
217
|
+
isDeadCode: boolean;
|
|
218
|
+
dependencies: string[];
|
|
219
|
+
}
|
|
220
|
+
interface BundleAnalysisResult {
|
|
221
|
+
className: string;
|
|
222
|
+
totalUsage: number;
|
|
223
|
+
files: SourceLocation[];
|
|
224
|
+
bundleSizeBytes: number;
|
|
225
|
+
variantChains: string[];
|
|
226
|
+
isDeadCode: boolean;
|
|
227
|
+
dependencies: string[];
|
|
228
|
+
}
|
|
229
|
+
declare class BundleAnalyzer {
|
|
230
|
+
private classUsages;
|
|
231
|
+
private classCounts;
|
|
232
|
+
analyzeClass(className: string, scanResult: ScanWorkspaceResult, css: string): BundleAnalysisResult;
|
|
233
|
+
analyzeAll(scanResult: ScanWorkspaceResult, css: string): Map<string, BundleAnalysisResult>;
|
|
234
|
+
calculateBundleContribution(className: string, css: string): number;
|
|
235
|
+
detectDeadCode(scanResult: ScanWorkspaceResult, css: string): string[];
|
|
236
|
+
private countClassUsage;
|
|
237
|
+
private getFilesUsingClass;
|
|
238
|
+
private extractVariantChains;
|
|
239
|
+
private extractDependencies;
|
|
240
|
+
private checkIsDeadCode;
|
|
241
|
+
private extractClassesFromCss;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
interface ImpactReport {
|
|
245
|
+
className: string;
|
|
246
|
+
totalComponents: number;
|
|
247
|
+
directUsage: number;
|
|
248
|
+
indirectUsage: number;
|
|
249
|
+
bundleSizeBytes: number;
|
|
250
|
+
estimatedSavings: number;
|
|
251
|
+
riskLevel: "low" | "medium" | "high";
|
|
252
|
+
suggestions: string[];
|
|
253
|
+
}
|
|
254
|
+
interface ComponentImpact {
|
|
255
|
+
file: string;
|
|
256
|
+
line: number;
|
|
257
|
+
column: number;
|
|
258
|
+
usageType: "direct" | "variant" | "component";
|
|
259
|
+
variant?: string;
|
|
260
|
+
}
|
|
261
|
+
declare class ImpactTracker {
|
|
262
|
+
private bundleAnalyzer;
|
|
263
|
+
private criticalPatterns;
|
|
264
|
+
constructor();
|
|
265
|
+
calculateImpact(className: string, bundleAnalysis: BundleAnalysisResult, scanResult: any): ImpactReport;
|
|
266
|
+
findAffectedComponents(className: string, scanResult: any): ComponentImpact[];
|
|
267
|
+
calculateRisk(className: string, impact: ImpactReport): "low" | "medium" | "high";
|
|
268
|
+
generateSuggestions(className: string, impact: ImpactReport): string[];
|
|
269
|
+
private isCriticalClass;
|
|
270
|
+
private calculateSavings;
|
|
271
|
+
private createEmptyReport;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
interface ClassUsage {
|
|
275
|
+
className: string;
|
|
276
|
+
source: SourceLocation;
|
|
277
|
+
specificity: number;
|
|
278
|
+
isOverride: boolean;
|
|
279
|
+
variants: string[];
|
|
280
|
+
}
|
|
281
|
+
interface ReverseLookupResult {
|
|
282
|
+
property: string;
|
|
283
|
+
value: string;
|
|
284
|
+
usedInClasses: ClassUsage[];
|
|
285
|
+
}
|
|
286
|
+
declare class ReverseLookup {
|
|
287
|
+
private parsedCache;
|
|
288
|
+
private parseCSS;
|
|
289
|
+
private findClosingBrace;
|
|
290
|
+
private calculateSpecificity;
|
|
291
|
+
fromCSS(cssProperty: string, cssValue: string, css: string): ReverseLookupResult[];
|
|
292
|
+
fromBundle(className: string, css: string): RuleIR[];
|
|
293
|
+
findDependents(className: string, css: string): string[];
|
|
294
|
+
findByProperty(property: string, css: string): ReverseLookupResult[];
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Apply an incremental file-change event to an existing scan result.
|
|
299
|
+
*
|
|
300
|
+
* Tries Rust processFileChange first for per-file diffing;
|
|
301
|
+
* falls back to the JS implementation when native is unavailable.
|
|
302
|
+
*/
|
|
303
|
+
declare function applyIncrementalChange(previous: ScanWorkspaceResult, filePath: string, type: "change" | "unlink", scanner?: ScanWorkspaceOptions): ScanWorkspaceResult;
|
|
304
|
+
|
|
305
|
+
interface WatcherOptions {
|
|
306
|
+
ignoreDirectories?: string[];
|
|
307
|
+
/**
|
|
308
|
+
* Delay before emitting change event to reduce noisy bursts.
|
|
309
|
+
*/
|
|
310
|
+
debounceMs?: number;
|
|
311
|
+
onError?: (error: Error, directory: string) => void;
|
|
312
|
+
}
|
|
313
|
+
interface WatcherEvent {
|
|
314
|
+
type: "change" | "unlink";
|
|
315
|
+
filePath: string;
|
|
316
|
+
}
|
|
317
|
+
interface WorkspaceWatcher {
|
|
318
|
+
close(): void;
|
|
319
|
+
}
|
|
320
|
+
declare function watchWorkspace$1(rootDir: string, onEvent: (event: WatcherEvent) => void, options?: WatcherOptions): WorkspaceWatcher;
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* tailwind-styled-v4 - Rust notify watch backend.
|
|
324
|
+
*
|
|
325
|
+
* Uses native notify when available and falls back to Node fs.watch.
|
|
326
|
+
* Keeps the same public API as watch.ts.
|
|
327
|
+
*/
|
|
328
|
+
interface NativeWatchOptions {
|
|
329
|
+
pollIntervalMs?: number;
|
|
330
|
+
extensions?: string[];
|
|
331
|
+
onError?: (error: Error) => void;
|
|
332
|
+
}
|
|
333
|
+
type WatchEventKind = "add" | "change" | "unlink" | "rename";
|
|
334
|
+
interface WatchEvent {
|
|
335
|
+
kind: WatchEventKind;
|
|
336
|
+
path: string;
|
|
337
|
+
}
|
|
338
|
+
type WatchCallback = (events: WatchEvent[]) => void;
|
|
339
|
+
interface WatchHandle {
|
|
340
|
+
stop(): void;
|
|
341
|
+
engine: string;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Start recursive watch.
|
|
345
|
+
* Callback is polled at `pollIntervalMs` (default 500ms) when events exist.
|
|
346
|
+
*/
|
|
347
|
+
declare function watchWorkspace(rootDir: string, callback: WatchCallback, options?: NativeWatchOptions): WatchHandle;
|
|
348
|
+
|
|
349
|
+
interface EngineOptions {
|
|
350
|
+
root?: string;
|
|
351
|
+
scanner?: ScanWorkspaceOptions;
|
|
352
|
+
compileCss?: boolean;
|
|
353
|
+
tailwindConfigPath?: string;
|
|
354
|
+
plugins?: EnginePlugin[];
|
|
355
|
+
/** Enable analyzer integration - provides semantic report (unused classes, conflicts). Default: false */
|
|
356
|
+
analyze?: boolean;
|
|
357
|
+
}
|
|
358
|
+
interface EngineWatchOptions {
|
|
359
|
+
debounceMs?: number;
|
|
360
|
+
maxEventsPerFlush?: number;
|
|
361
|
+
largeFileThreshold?: number;
|
|
362
|
+
}
|
|
363
|
+
interface BuildResult {
|
|
364
|
+
scan: ScanWorkspaceResult;
|
|
365
|
+
mergedClassList: string;
|
|
366
|
+
css: string;
|
|
367
|
+
/** Analyzer semantic report - present when analyze: true in options */
|
|
368
|
+
analysis?: {
|
|
369
|
+
unusedClasses: unknown[];
|
|
370
|
+
classConflicts: Array<{
|
|
371
|
+
className: string;
|
|
372
|
+
files: string[];
|
|
373
|
+
}>;
|
|
374
|
+
classUsage: Record<string, number>;
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
type EngineBuildWatchEventType = "initial" | "change" | "unlink" | "full-rescan";
|
|
378
|
+
type EngineWatchEvent = {
|
|
379
|
+
type: EngineBuildWatchEventType;
|
|
380
|
+
filePath?: string;
|
|
381
|
+
result: BuildResult;
|
|
382
|
+
metrics?: EngineMetricsSnapshot;
|
|
383
|
+
} | {
|
|
384
|
+
type: "error";
|
|
385
|
+
filePath?: string;
|
|
386
|
+
error: string;
|
|
387
|
+
metrics?: EngineMetricsSnapshot;
|
|
388
|
+
};
|
|
389
|
+
interface TailwindStyledEngine {
|
|
390
|
+
scan(): Promise<ScanWorkspaceResult>;
|
|
391
|
+
build(): Promise<BuildResult>;
|
|
392
|
+
watch(onEvent: (event: EngineWatchEvent) => void, options?: EngineWatchOptions): Promise<{
|
|
393
|
+
close(): void;
|
|
394
|
+
}>;
|
|
395
|
+
}
|
|
396
|
+
declare function createEngine(options?: EngineOptions): Promise<TailwindStyledEngine>;
|
|
397
|
+
|
|
398
|
+
export { type BuildResult, type BundleAnalysisResult, BundleAnalyzer, type CascadeResolutionIR, CascadeResolutionId, CascadeStage, type ClassBundleInfo, type ClassUsage, type ComponentImpact, type ConditionIR, ConditionId, ConditionResult, EngineMetricsCollector, type EngineMetricsSnapshot, type EngineOptions, type EnginePlugin, type EnginePluginContext, type EngineWatchContext, type EngineWatchEvent, type EngineWatchOptions, type FinalComputedStyleIR, type ImpactReport, ImpactTracker, Importance, LayerId, Origin, type PropertyBucketIR, PropertyId, type ResolutionCause, type ResolutionReason, ReverseLookup, type ReverseLookupResult, type RuleIR, RuleId, ScanWorkspaceOptions, ScanWorkspaceResult, type SelectorIR, SelectorId, type SourceLocation, type StyleGraphIR, type TailwindStyledEngine, ValueId, type VariantChainIR, VariantChainId, type WatchCallback, type WatchEvent, type WatchEventKind, type WatchHandle, type WorkspaceWatcher, applyIncrementalChange, compareCascadeOrder, createEngine, createFingerprint, createResolutionReason, runAfterBuild, runAfterScan, runAfterWatch, runBeforeBuild, runBeforeScan, runBeforeWatch, runOnError, runTransformClasses, watchWorkspace$1 as watchWorkspaceLegacy, watchWorkspace as watchWorkspaceNative };
|