@clarify-labs/renderer 0.10.3 → 0.11.0

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.
Files changed (80) hide show
  1. package/output/{ClarifyShell-UsefuuLS.cjs → ClarifyShell-BAjq876Z.cjs} +85 -82
  2. package/output/ClarifyShell-BAjq876Z.cjs.map +1 -0
  3. package/output/{ClarifyShell-Cq5Af46F.js → ClarifyShell-GoSXvgMg.js} +85 -82
  4. package/output/ClarifyShell-GoSXvgMg.js.map +1 -0
  5. package/output/{MermaidViewer-Db7qsyVk.cjs → MermaidViewer-BZ8ghcFP.cjs} +2 -2
  6. package/output/{MermaidViewer-Db7qsyVk.cjs.map → MermaidViewer-BZ8ghcFP.cjs.map} +1 -1
  7. package/output/{MermaidViewer-Bc9H25yK.js → MermaidViewer-CkIxyqtf.js} +2 -2
  8. package/output/{MermaidViewer-Bc9H25yK.js.map → MermaidViewer-CkIxyqtf.js.map} +1 -1
  9. package/output/{OpenApiOperation-BZWeCbvy.js → OpenApiOperation-C2vJztWZ.js} +1536 -211
  10. package/output/OpenApiOperation-C2vJztWZ.js.map +1 -0
  11. package/output/{OpenApiOperation-DbZjxIuj.cjs → OpenApiOperation-D-5uE5v7.cjs} +1539 -208
  12. package/output/OpenApiOperation-D-5uE5v7.cjs.map +1 -0
  13. package/output/{PageActions-Dg1l9KB1.cjs → PageActions-DJRXlGhz.cjs} +16 -16
  14. package/output/PageActions-DJRXlGhz.cjs.map +1 -0
  15. package/output/{PageActions-BQeEmXbT.js → PageActions-bugd7GZh.js} +16 -16
  16. package/output/PageActions-bugd7GZh.js.map +1 -0
  17. package/output/{SearchDialog-DjKvqN7p.cjs → SearchDialog-8AdCRp6K.cjs} +3 -3
  18. package/output/{SearchDialog-DjKvqN7p.cjs.map → SearchDialog-8AdCRp6K.cjs.map} +1 -1
  19. package/output/{SearchDialog-B67VA0Ut.js → SearchDialog-CBJjDs_9.js} +3 -3
  20. package/output/{SearchDialog-B67VA0Ut.js.map → SearchDialog-CBJjDs_9.js.map} +1 -1
  21. package/output/app/PageFooter.d.ts +1 -1
  22. package/output/client.cjs +3 -3
  23. package/output/client.js +3 -3
  24. package/output/components/Tooltip.d.ts +1 -0
  25. package/output/core/i18n.d.ts +1 -1
  26. package/output/core/types.d.ts +37 -19
  27. package/output/{i18n-Bqth9d6Q.js → i18n-BPrC45nD.js} +98 -2
  28. package/output/i18n-BPrC45nD.js.map +1 -0
  29. package/output/{i18n-C-fReCj-.cjs → i18n-wXINKKV0.cjs} +98 -2
  30. package/output/i18n-wXINKKV0.cjs.map +1 -0
  31. package/output/index.cjs +26 -5
  32. package/output/index.cjs.map +1 -1
  33. package/output/index.d.ts +3 -3
  34. package/output/index.js +26 -6
  35. package/output/index.js.map +1 -1
  36. package/output/mdx/components.d.ts +2 -1
  37. package/output/openapi/components/EndpointMethodBadge.d.ts +6 -0
  38. package/output/openapi/components/EndpointSections.d.ts +2 -2
  39. package/output/openapi/components/ExamplePanels.d.ts +2 -2
  40. package/output/openapi/components/InlineListbox.d.ts +13 -0
  41. package/output/openapi/components/OpenApiAuthPanel.d.ts +12 -0
  42. package/output/openapi/components/OpenApiOperation.d.ts +1 -9
  43. package/output/openapi/components/OpenApiOperation.state.d.ts +4 -2
  44. package/output/openapi/components/OpenApiRequest.d.ts +18 -0
  45. package/output/openapi/components/OpenApiRequestFields.d.ts +25 -0
  46. package/output/openapi/components/OpenApiResponseViewer.d.ts +8 -0
  47. package/output/openapi/components/SendRequestButton.d.ts +9 -0
  48. package/output/openapi/components/helpers.d.ts +6 -1
  49. package/output/openapi/components/useOpenApiRequestState.d.ts +41 -0
  50. package/output/openapi/entry.d.ts +2 -0
  51. package/output/openapi/index.d.ts +2 -2
  52. package/output/openapi/lib/api-exchange-code.d.ts +8 -0
  53. package/output/openapi/lib/api-exchange.d.ts +30 -0
  54. package/output/openapi/lib/api-request.d.ts +24 -0
  55. package/output/openapi/lib/request-code.d.ts +2 -2
  56. package/output/openapi/lib/request-parameters.d.ts +5 -0
  57. package/output/openapi/store.d.ts +10 -0
  58. package/output/openapi/types.d.ts +4 -0
  59. package/output/preview.cjs +37 -27
  60. package/output/preview.cjs.map +1 -1
  61. package/output/preview.js +37 -27
  62. package/output/preview.js.map +1 -1
  63. package/output/{render-Dc9wxg_r.cjs → render-FICIzeXz.cjs} +2 -2
  64. package/output/{render-Dc9wxg_r.cjs.map → render-FICIzeXz.cjs.map} +1 -1
  65. package/output/{render-aS-w4fK4.js → render-XQiw_48i.js} +2 -2
  66. package/output/{render-aS-w4fK4.js.map → render-XQiw_48i.js.map} +1 -1
  67. package/output/renderer.css +547 -150
  68. package/output/server.cjs +2 -2
  69. package/output/server.js +2 -2
  70. package/output/theme/ThemeEditor.d.ts +8 -4
  71. package/output/theme/variables.d.ts +8 -4
  72. package/package.json +1 -1
  73. package/output/ClarifyShell-Cq5Af46F.js.map +0 -1
  74. package/output/ClarifyShell-UsefuuLS.cjs.map +0 -1
  75. package/output/OpenApiOperation-BZWeCbvy.js.map +0 -1
  76. package/output/OpenApiOperation-DbZjxIuj.cjs.map +0 -1
  77. package/output/PageActions-BQeEmXbT.js.map +0 -1
  78. package/output/PageActions-Dg1l9KB1.cjs.map +0 -1
  79. package/output/i18n-Bqth9d6Q.js.map +0 -1
  80. package/output/i18n-C-fReCj-.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"render-Dc9wxg_r.cjs","names":[],"sources":["../source/runtime/render.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { hydrateRoot, createRoot, type Root } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport type { RenderOptions } from '../types'\n\nimport { ClarifyShell } from './ClarifyShell'\n\nlet root: Root | undefined\n\n/**\n * Clarify 客户端 Hydration 入口。\n * 在文档项目的 main.tsx 中调用:\n * ```ts\n * import { render } from '@clarify-labs/renderer';\n * import { routes } from 'virtual:clarify/routes';\n * import { config } from 'virtual:clarify/config';\n * render({ config, routes });\n * ```\n */\nfunction isHydrationDebugEnabled(): boolean {\n if (typeof window === 'undefined') return false\n\n try {\n const params = new URLSearchParams(window.location.search)\n return params.get('clarifyHydrationDebug') === '1' || window.localStorage.getItem('clarify:hydration-debug') === '1'\n } catch {\n return false\n }\n}\n\nexport function render(options: RenderOptions) {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options\n\n const target = container ?? document.getElementById('root')\n if (!target) {\n throw new Error('[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素')\n }\n\n const app = (\n <StrictMode>\n <BrowserRouter basename={config.routePrefix}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </BrowserRouter>\n </StrictMode>\n )\n\n const hydrationDebug = isHydrationDebugEnabled()\n\n if (root) {\n root.render(app)\n return\n }\n\n try {\n root = hydrateRoot(target as Element, app, {\n onRecoverableError(error, errorInfo) {\n // Phase 1: suppress hydration mismatch noise by default. React 19\n // recovers automatically, but diagnostics can be enabled explicitly.\n if (hydrationDebug) {\n console.warn('[clarify] Recoverable hydration error:', error, errorInfo)\n }\n },\n })\n } catch (err) {\n console.warn('[clarify] Hydration failed, falling back to client render:', err)\n root = createRoot(target as Element)\n root.render(app)\n }\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;;;;;;;;AAYJ,SAAS,0BAAmC;CAC1C,IAAI,OAAO,WAAW,aAAa,OAAO;CAE1C,IAAI;EAEF,OAAO,IADY,gBAAgB,OAAO,SAAS,MAC5C,CAAA,CAAO,IAAI,uBAAuB,MAAM,OAAO,OAAO,aAAa,QAAQ,yBAAyB,MAAM;CACnH,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,OAAO,SAAwB;CAC7C,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,WAAW,cAAc,UAAU;CAExG,MAAM,SAAS,aAAa,SAAS,eAAe,MAAM;CAC1D,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,qDAAmD;CAGrE,MAAM,MACJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAA,YAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,eAAD;EAAe,UAAU,OAAO;YAC9B,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACY,CAAA,EACL,CAAA;CAGd,MAAM,iBAAiB,wBAAwB;CAE/C,IAAI,MAAM;EACR,KAAK,OAAO,GAAG;EACf;CACF;CAEA,IAAI;EACF,QAAA,GAAA,iBAAA,YAAA,CAAmB,QAAmB,KAAK,EACzC,mBAAmB,OAAO,WAAW;GAGnC,IAAI,gBACF,QAAQ,KAAK,0CAA0C,OAAO,SAAS;EAE3E,EACF,CAAC;CACH,SAAS,KAAK;EACZ,QAAQ,KAAK,8DAA8D,GAAG;EAC9E,QAAA,GAAA,iBAAA,WAAA,CAAkB,MAAiB;EACnC,KAAK,OAAO,GAAG;CACjB;AACF"}
1
+ {"version":3,"file":"render-FICIzeXz.cjs","names":[],"sources":["../source/runtime/render.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { hydrateRoot, createRoot, type Root } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport type { RenderOptions } from '../types'\n\nimport { ClarifyShell } from './ClarifyShell'\n\nlet root: Root | undefined\n\n/**\n * Clarify 客户端 Hydration 入口。\n * 在文档项目的 main.tsx 中调用:\n * ```ts\n * import { render } from '@clarify-labs/renderer';\n * import { routes } from 'virtual:clarify/routes';\n * import { config } from 'virtual:clarify/config';\n * render({ config, routes });\n * ```\n */\nfunction isHydrationDebugEnabled(): boolean {\n if (typeof window === 'undefined') return false\n\n try {\n const params = new URLSearchParams(window.location.search)\n return params.get('clarifyHydrationDebug') === '1' || window.localStorage.getItem('clarify:hydration-debug') === '1'\n } catch {\n return false\n }\n}\n\nexport function render(options: RenderOptions) {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options\n\n const target = container ?? document.getElementById('root')\n if (!target) {\n throw new Error('[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素')\n }\n\n const app = (\n <StrictMode>\n <BrowserRouter basename={config.routePrefix}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </BrowserRouter>\n </StrictMode>\n )\n\n const hydrationDebug = isHydrationDebugEnabled()\n\n if (root) {\n root.render(app)\n return\n }\n\n try {\n root = hydrateRoot(target as Element, app, {\n onRecoverableError(error, errorInfo) {\n // Phase 1: suppress hydration mismatch noise by default. React 19\n // recovers automatically, but diagnostics can be enabled explicitly.\n if (hydrationDebug) {\n console.warn('[clarify] Recoverable hydration error:', error, errorInfo)\n }\n },\n })\n } catch (err) {\n console.warn('[clarify] Hydration failed, falling back to client render:', err)\n root = createRoot(target as Element)\n root.render(app)\n }\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;;;;;;;;AAYJ,SAAS,0BAAmC;CAC1C,IAAI,OAAO,WAAW,aAAa,OAAO;CAE1C,IAAI;EAEF,OAAO,IADY,gBAAgB,OAAO,SAAS,MAC5C,CAAA,CAAO,IAAI,uBAAuB,MAAM,OAAO,OAAO,aAAa,QAAQ,yBAAyB,MAAM;CACnH,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,OAAO,SAAwB;CAC7C,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,WAAW,cAAc,UAAU;CAExG,MAAM,SAAS,aAAa,SAAS,eAAe,MAAM;CAC1D,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,qDAAmD;CAGrE,MAAM,MACJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAA,YAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,eAAD;EAAe,UAAU,OAAO;YAC9B,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACY,CAAA,EACL,CAAA;CAGd,MAAM,iBAAiB,wBAAwB;CAE/C,IAAI,MAAM;EACR,KAAK,OAAO,GAAG;EACf;CACF;CAEA,IAAI;EACF,QAAA,GAAA,iBAAA,YAAA,CAAmB,QAAmB,KAAK,EACzC,mBAAmB,OAAO,WAAW;GAGnC,IAAI,gBACF,QAAQ,KAAK,0CAA0C,OAAO,SAAS;EAE3E,EACF,CAAC;CACH,SAAS,KAAK;EACZ,QAAQ,KAAK,8DAA8D,GAAG;EAC9E,QAAA,GAAA,iBAAA,WAAA,CAAkB,MAAiB;EACnC,KAAK,OAAO,GAAG;CACjB;AACF"}
@@ -1,4 +1,4 @@
1
- import { t as ClarifyShell } from "./ClarifyShell-Cq5Af46F.js";
1
+ import { t as ClarifyShell } from "./ClarifyShell-GoSXvgMg.js";
2
2
  import { StrictMode } from "react";
3
3
  import { BrowserRouter } from "react-router-dom";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -56,4 +56,4 @@ function render(options) {
56
56
  //#endregion
57
57
  export { render as t };
58
58
 
59
- //# sourceMappingURL=render-aS-w4fK4.js.map
59
+ //# sourceMappingURL=render-XQiw_48i.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-aS-w4fK4.js","names":[],"sources":["../source/runtime/render.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { hydrateRoot, createRoot, type Root } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport type { RenderOptions } from '../types'\n\nimport { ClarifyShell } from './ClarifyShell'\n\nlet root: Root | undefined\n\n/**\n * Clarify 客户端 Hydration 入口。\n * 在文档项目的 main.tsx 中调用:\n * ```ts\n * import { render } from '@clarify-labs/renderer';\n * import { routes } from 'virtual:clarify/routes';\n * import { config } from 'virtual:clarify/config';\n * render({ config, routes });\n * ```\n */\nfunction isHydrationDebugEnabled(): boolean {\n if (typeof window === 'undefined') return false\n\n try {\n const params = new URLSearchParams(window.location.search)\n return params.get('clarifyHydrationDebug') === '1' || window.localStorage.getItem('clarify:hydration-debug') === '1'\n } catch {\n return false\n }\n}\n\nexport function render(options: RenderOptions) {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options\n\n const target = container ?? document.getElementById('root')\n if (!target) {\n throw new Error('[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素')\n }\n\n const app = (\n <StrictMode>\n <BrowserRouter basename={config.routePrefix}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </BrowserRouter>\n </StrictMode>\n )\n\n const hydrationDebug = isHydrationDebugEnabled()\n\n if (root) {\n root.render(app)\n return\n }\n\n try {\n root = hydrateRoot(target as Element, app, {\n onRecoverableError(error, errorInfo) {\n // Phase 1: suppress hydration mismatch noise by default. React 19\n // recovers automatically, but diagnostics can be enabled explicitly.\n if (hydrationDebug) {\n console.warn('[clarify] Recoverable hydration error:', error, errorInfo)\n }\n },\n })\n } catch (err) {\n console.warn('[clarify] Hydration failed, falling back to client render:', err)\n root = createRoot(target as Element)\n root.render(app)\n }\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;;;;;;;;AAYJ,SAAS,0BAAmC;CAC1C,IAAI,OAAO,WAAW,aAAa,OAAO;CAE1C,IAAI;EAEF,OAAO,IADY,gBAAgB,OAAO,SAAS,MAC5C,CAAA,CAAO,IAAI,uBAAuB,MAAM,OAAO,OAAO,aAAa,QAAQ,yBAAyB,MAAM;CACnH,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,OAAO,SAAwB;CAC7C,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,WAAW,cAAc,UAAU;CAExG,MAAM,SAAS,aAAa,SAAS,eAAe,MAAM;CAC1D,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,qDAAmD;CAGrE,MAAM,MACJ,oBAAC,YAAD,EAAA,UACE,oBAAC,eAAD;EAAe,UAAU,OAAO;YAC9B,oBAAC,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACY,CAAA,EACL,CAAA;CAGd,MAAM,iBAAiB,wBAAwB;CAE/C,IAAI,MAAM;EACR,KAAK,OAAO,GAAG;EACf;CACF;CAEA,IAAI;EACF,OAAO,YAAY,QAAmB,KAAK,EACzC,mBAAmB,OAAO,WAAW;GAGnC,IAAI,gBACF,QAAQ,KAAK,0CAA0C,OAAO,SAAS;EAE3E,EACF,CAAC;CACH,SAAS,KAAK;EACZ,QAAQ,KAAK,8DAA8D,GAAG;EAC9E,OAAO,WAAW,MAAiB;EACnC,KAAK,OAAO,GAAG;CACjB;AACF"}
1
+ {"version":3,"file":"render-XQiw_48i.js","names":[],"sources":["../source/runtime/render.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { hydrateRoot, createRoot, type Root } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport type { RenderOptions } from '../types'\n\nimport { ClarifyShell } from './ClarifyShell'\n\nlet root: Root | undefined\n\n/**\n * Clarify 客户端 Hydration 入口。\n * 在文档项目的 main.tsx 中调用:\n * ```ts\n * import { render } from '@clarify-labs/renderer';\n * import { routes } from 'virtual:clarify/routes';\n * import { config } from 'virtual:clarify/config';\n * render({ config, routes });\n * ```\n */\nfunction isHydrationDebugEnabled(): boolean {\n if (typeof window === 'undefined') return false\n\n try {\n const params = new URLSearchParams(window.location.search)\n return params.get('clarifyHydrationDebug') === '1' || window.localStorage.getItem('clarify:hydration-debug') === '1'\n } catch {\n return false\n }\n}\n\nexport function render(options: RenderOptions) {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options\n\n const target = container ?? document.getElementById('root')\n if (!target) {\n throw new Error('[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素')\n }\n\n const app = (\n <StrictMode>\n <BrowserRouter basename={config.routePrefix}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </BrowserRouter>\n </StrictMode>\n )\n\n const hydrationDebug = isHydrationDebugEnabled()\n\n if (root) {\n root.render(app)\n return\n }\n\n try {\n root = hydrateRoot(target as Element, app, {\n onRecoverableError(error, errorInfo) {\n // Phase 1: suppress hydration mismatch noise by default. React 19\n // recovers automatically, but diagnostics can be enabled explicitly.\n if (hydrationDebug) {\n console.warn('[clarify] Recoverable hydration error:', error, errorInfo)\n }\n },\n })\n } catch (err) {\n console.warn('[clarify] Hydration failed, falling back to client render:', err)\n root = createRoot(target as Element)\n root.render(app)\n }\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;;;;;;;;AAYJ,SAAS,0BAAmC;CAC1C,IAAI,OAAO,WAAW,aAAa,OAAO;CAE1C,IAAI;EAEF,OAAO,IADY,gBAAgB,OAAO,SAAS,MAC5C,CAAA,CAAO,IAAI,uBAAuB,MAAM,OAAO,OAAO,aAAa,QAAQ,yBAAyB,MAAM;CACnH,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,OAAO,SAAwB;CAC7C,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,WAAW,cAAc,UAAU;CAExG,MAAM,SAAS,aAAa,SAAS,eAAe,MAAM;CAC1D,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,qDAAmD;CAGrE,MAAM,MACJ,oBAAC,YAAD,EAAA,UACE,oBAAC,eAAD;EAAe,UAAU,OAAO;YAC9B,oBAAC,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACY,CAAA,EACL,CAAA;CAGd,MAAM,iBAAiB,wBAAwB;CAE/C,IAAI,MAAM;EACR,KAAK,OAAO,GAAG;EACf;CACF;CAEA,IAAI;EACF,OAAO,YAAY,QAAmB,KAAK,EACzC,mBAAmB,OAAO,WAAW;GAGnC,IAAI,gBACF,QAAQ,KAAK,0CAA0C,OAAO,SAAS;EAE3E,EACF,CAAC;CACH,SAAS,KAAK;EACZ,QAAQ,KAAK,8DAA8D,GAAG;EAC9E,OAAO,WAAW,MAAiB;EACnC,KAAK,OAAO,GAAG;CACjB;AACF"}