@launchsecure/launch-kit 0.0.41 → 0.0.43
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/dist/chart-client/assets/index-DOKsFe5i.css +1 -0
- package/dist/chart-client/index.html +2 -2
- package/dist/client/assets/index-BqiDfvZi.js +294 -0
- package/dist/client/assets/index-Mewz-s77.css +32 -0
- package/dist/client/index.html +2 -2
- package/dist/council-client/assets/index-o_3y7Z0J.css +1 -0
- package/dist/council-client/index.html +2 -2
- package/dist/deck-client/assets/{_baseUniq-mvYvzeEJ.js → _baseUniq-C6w7kg8x.js} +1 -1
- package/dist/deck-client/assets/{arc-CX4ylnp2.js → arc-Cx9pT3Nn.js} +1 -1
- package/dist/deck-client/assets/{architectureDiagram-Q4EWVU46-BkR-5IRK.js → architectureDiagram-Q4EWVU46-BITSj3vA.js} +1 -1
- package/dist/deck-client/assets/{blockDiagram-DXYQGD6D-DVNQht7c.js → blockDiagram-DXYQGD6D-BehOFuwh.js} +1 -1
- package/dist/deck-client/assets/{c4Diagram-AHTNJAMY-Cbq1rlG8.js → c4Diagram-AHTNJAMY-BZTYM4na.js} +1 -1
- package/dist/deck-client/assets/channel-Cw2WDt9a.js +1 -0
- package/dist/deck-client/assets/{chunk-4BX2VUAB-D58Co4lU.js → chunk-4BX2VUAB-CCUx5CTd.js} +1 -1
- package/dist/deck-client/assets/{chunk-4TB4RGXK-BYvhTm3d.js → chunk-4TB4RGXK-UDZXXga6.js} +1 -1
- package/dist/deck-client/assets/{chunk-55IACEB6-oWukUhYg.js → chunk-55IACEB6-CfcU6PIW.js} +1 -1
- package/dist/deck-client/assets/{chunk-EDXVE4YY-Cm58kVnZ.js → chunk-EDXVE4YY-BK6F5Fof.js} +1 -1
- package/dist/deck-client/assets/{chunk-FMBD7UC4-Dg-i7kzi.js → chunk-FMBD7UC4-C-2idlFB.js} +1 -1
- package/dist/deck-client/assets/{chunk-OYMX7WX6-C72wigPl.js → chunk-OYMX7WX6-D6hBkYLP.js} +1 -1
- package/dist/deck-client/assets/{chunk-QZHKN3VN-CLgeuAKw.js → chunk-QZHKN3VN-DixNpysA.js} +1 -1
- package/dist/deck-client/assets/{chunk-YZCP3GAM-HDDlJ5oI.js → chunk-YZCP3GAM-Cd3pNBtQ.js} +1 -1
- package/dist/deck-client/assets/classDiagram-6PBFFD2Q-JLUXVCUr.js +1 -0
- package/dist/deck-client/assets/classDiagram-v2-HSJHXN6E-JLUXVCUr.js +1 -0
- package/dist/deck-client/assets/clone-H0XCnSb6.js +1 -0
- package/dist/deck-client/assets/{cose-bilkent-S5V4N54A-CUXQKg2M.js → cose-bilkent-S5V4N54A-OF3JWdEt.js} +1 -1
- package/dist/deck-client/assets/{dagre-KV5264BT-C5M-fVDc.js → dagre-KV5264BT-Bqu-qcv4.js} +1 -1
- package/dist/deck-client/assets/{diagram-5BDNPKRD-CcVsQ0S8.js → diagram-5BDNPKRD--0eHmUBS.js} +1 -1
- package/dist/deck-client/assets/{diagram-G4DWMVQ6-DJswXyep.js → diagram-G4DWMVQ6-nss6oL20.js} +1 -1
- package/dist/deck-client/assets/{diagram-MMDJMWI5-CGT76fm1.js → diagram-MMDJMWI5-D_gSGnLR.js} +1 -1
- package/dist/deck-client/assets/{diagram-TYMM5635-BBsYUNN6.js → diagram-TYMM5635-BIt-P6Pk.js} +1 -1
- package/dist/deck-client/assets/{erDiagram-SMLLAGMA-DKWYEHQS.js → erDiagram-SMLLAGMA-Bi-E4KQm.js} +1 -1
- package/dist/deck-client/assets/{flowDiagram-DWJPFMVM-DLuDYIKT.js → flowDiagram-DWJPFMVM-DMJCvLMA.js} +1 -1
- package/dist/deck-client/assets/{ganttDiagram-T4ZO3ILL-B19b6Qtj.js → ganttDiagram-T4ZO3ILL-C3xgEoPD.js} +1 -1
- package/dist/deck-client/assets/{gitGraphDiagram-UUTBAWPF-BYLAfYVS.js → gitGraphDiagram-UUTBAWPF-CD0BEGAW.js} +1 -1
- package/dist/deck-client/assets/{graph-CfzQUfPh.js → graph-Dtsd9Jwe.js} +1 -1
- package/dist/deck-client/assets/index-C6YxyZay.css +1 -0
- package/dist/deck-client/assets/{index-DlwdTgE_.js → index-TFX8vtTG.js} +2 -2
- package/dist/deck-client/assets/{infoDiagram-42DDH7IO-Dp3mUA9c.js → infoDiagram-42DDH7IO-7IcQYqe_.js} +1 -1
- package/dist/deck-client/assets/{ishikawaDiagram-UXIWVN3A-BhrNX_jI.js → ishikawaDiagram-UXIWVN3A-DsCEbx3u.js} +1 -1
- package/dist/deck-client/assets/{journeyDiagram-VCZTEJTY-B5lJI492.js → journeyDiagram-VCZTEJTY-1mP2JwCk.js} +1 -1
- package/dist/deck-client/assets/{kanban-definition-6JOO6SKY-D9-lmhQf.js → kanban-definition-6JOO6SKY-vT0Xrqh9.js} +1 -1
- package/dist/deck-client/assets/{layout-CfIe_Su8.js → layout-Cw4rS2pn.js} +1 -1
- package/dist/deck-client/assets/{linear-09ZFRoh_.js → linear-CzOjL-Ih.js} +1 -1
- package/dist/deck-client/assets/{mermaid.core-BaQyIOvj.js → mermaid.core-DYi3A-qK.js} +4 -4
- package/dist/deck-client/assets/{min-CYwCzYaL.js → min-DstloRoL.js} +1 -1
- package/dist/deck-client/assets/{mindmap-definition-QFDTVHPH-CouFxf6C.js → mindmap-definition-QFDTVHPH-D-cCX2d2.js} +1 -1
- package/dist/deck-client/assets/{pieDiagram-DEJITSTG-DMB1ufC0.js → pieDiagram-DEJITSTG-BqW2NTmy.js} +1 -1
- package/dist/deck-client/assets/{quadrantDiagram-34T5L4WZ-CBiOKudN.js → quadrantDiagram-34T5L4WZ-DbJoWA8f.js} +1 -1
- package/dist/deck-client/assets/{requirementDiagram-MS252O5E-BMc3GJkx.js → requirementDiagram-MS252O5E-DQrUiz_d.js} +1 -1
- package/dist/deck-client/assets/{sankeyDiagram-XADWPNL6-CxACUncm.js → sankeyDiagram-XADWPNL6-kB7PZc3g.js} +1 -1
- package/dist/deck-client/assets/{sequenceDiagram-FGHM5R23-Ch-P3Mzc.js → sequenceDiagram-FGHM5R23-CpyVu1TN.js} +1 -1
- package/dist/deck-client/assets/{stateDiagram-FHFEXIEX-Cy8n7Yzk.js → stateDiagram-FHFEXIEX-CjqQcnty.js} +1 -1
- package/dist/deck-client/assets/stateDiagram-v2-QKLJ7IA2-tfMSn8xx.js +1 -0
- package/dist/deck-client/assets/{timeline-definition-GMOUNBTQ-C2V4sSkm.js → timeline-definition-GMOUNBTQ-B2PAO9bk.js} +1 -1
- package/dist/deck-client/assets/{vennDiagram-DHZGUBPP-YOqt4VbE.js → vennDiagram-DHZGUBPP-C0G3ItCr.js} +1 -1
- package/dist/deck-client/assets/{wardley-RL74JXVD-Bxo5x40D.js → wardley-RL74JXVD-B0TVaOmp.js} +1 -1
- package/dist/deck-client/assets/{wardleyDiagram-NUSXRM2D-DW9SOqbx.js → wardleyDiagram-NUSXRM2D-B-qtbNZe.js} +1 -1
- package/dist/deck-client/assets/{xychartDiagram-5P7HB3ND-D-rZvZOL.js → xychartDiagram-5P7HB3ND-41kcBoBE.js} +1 -1
- package/dist/deck-client/index.html +2 -2
- package/dist/server/cli.js +484 -77
- package/dist/server/deck-mcp-entry.js +137 -2
- package/dist/server/deck-serve.js +93 -1
- package/dist/server/init-entry.js +47 -21
- package/dist/server/launch-bot-entry.js +38 -4
- package/dist/server/radar-docker-init-entry.js +46 -20
- package/dist/server/rover-entry.js +6047 -5155
- package/package.json +1 -1
- package/dist/chart-client/assets/index-Dd6IotOZ.css +0 -1
- package/dist/client/assets/index-BoIjawzY.js +0 -294
- package/dist/client/assets/index-DE0uje6k.css +0 -32
- package/dist/council-client/assets/index-CGYusOCK.css +0 -1
- package/dist/deck-client/assets/channel-B9GC-CLn.js +0 -1
- package/dist/deck-client/assets/classDiagram-6PBFFD2Q-CFBvYQ9j.js +0 -1
- package/dist/deck-client/assets/classDiagram-v2-HSJHXN6E-CFBvYQ9j.js +0 -1
- package/dist/deck-client/assets/clone-n-WQlAGe.js +0 -1
- package/dist/deck-client/assets/index-evAPhGvM.css +0 -1
- package/dist/deck-client/assets/stateDiagram-v2-QKLJ7IA2-C14VKCzi.js +0 -1
- /package/dist/chart-client/assets/{index-CrYM1-ac.js → index-DJQYgFcp.js} +0 -0
- /package/dist/council-client/assets/{index-DkTFX53U.js → index-Wn06apTg.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap";:root{--background: 0 0% 100%;--foreground: 259 10% 4%;--card: 0 0% 100%;--card-foreground: 259 10% 4%;--popover: 0 0% 100%;--popover-foreground: 259 10% 4%;--primary: 259 67% 59%;--primary-foreground: 0 0% 100%;--secondary: 257 47% 96%;--secondary-foreground: 259 67% 30%;--muted: 259 8% 96%;--muted-foreground: 259 6% 46%;--accent: 257 47% 94%;--accent-foreground: 259 67% 30%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 259 12% 87%;--input: 259 18% 82%;--ring: 259 67% 59%;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--radius: .5rem;--sidebar-background: 259 45% 18%;--sidebar-foreground: 0 0% 95%;--sidebar-primary: 259 67% 70%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 259 40% 25%;--sidebar-accent-foreground: 0 0% 95%;--sidebar-border: 259 30% 25%;--sidebar-muted-foreground: 259 15% 65%;--sidebar-width: 16rem;--sidebar-width-collapsed: 4rem;--sidebar-height: 3.5rem;--header-height: 4rem;--error: #ef4444;--success: #22c55e;--surface-1: 240 5% 97%;--surface-2: 0 0% 100%;--surface-2-hover: 0 0% 100%;--surface-1-border: 259 12% 87%;--surface-2-border: 259 12% 82%}.dark{--background: 259 10% 4%;--foreground: 0 0% 98%;--card: 259 10% 11%;--card-foreground: 0 0% 98%;--popover: 259 10% 11%;--popover-foreground: 0 0% 98%;--primary: 259 67% 67%;--primary-foreground: 0 0% 100%;--secondary: 259 30% 14%;--secondary-foreground: 0 0% 98%;--muted: 259 8% 14%;--muted-foreground: 259 6% 65%;--accent: 259 30% 16%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 259 10% 20%;--input: 259 15% 22%;--ring: 259 67% 67%;--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%;--sidebar-background: 240 15% 8%;--sidebar-foreground: 0 0% 95%;--sidebar-primary: 259 67% 70%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 259 30% 16%;--sidebar-accent-foreground: 0 0% 95%;--sidebar-border: 240 10% 20%;--sidebar-muted-foreground: 240 5% 55%;--surface-1: 259 12% 13%;--surface-2: 259 12% 20%;--surface-2-hover: 259 12% 24%;--surface-1-border: 259 12% 23%;--surface-2-border: 259 12% 30%}html{background-color:hsl(var(--background))}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:DM Sans,sans-serif}h1{font-weight:700;letter-spacing:-.025em}h2{font-weight:600;letter-spacing:-.02em}h3{font-weight:600;letter-spacing:-.015em}h4,h5,h6{font-weight:500}strong,b{font-weight:600}label{font-weight:500}small,.text-muted{font-weight:400}.auth-gradient{background:linear-gradient(135deg,#f2eefc,#e8effc,#e9e1f9)}.dark .auth-gradient{background:linear-gradient(135deg,#0d0d12,#171221,#0d0d12)}.auth-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;pointer-events:none}.dark .auth-blob{opacity:.15}.sidebar-gradient{background:linear-gradient(180deg,#261943,#3c2965,#63479e);border-right:1px solid hsl(var(--sidebar-border))}.dark .sidebar-gradient{background:linear-gradient(180deg,#261943,#1f1730,#18141f)}.sidebar-gradient[data-position=right]{border-right:none;border-left:1px solid hsl(var(--sidebar-border))}.sidebar-gradient[data-position=bottom]{border-right:none;border-top:1px solid hsl(var(--sidebar-border));background:hsl(var(--sidebar-background))}.dark .sidebar-gradient[data-position=bottom]{background:hsl(var(--sidebar-background))}.content-gradient{position:relative;background:#ececef}.dark .content-gradient{background:#111113}.sidebar-nav-item{position:relative}.sidebar-nav-item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(to right,rgba(255,255,255,.1) 0%,transparent 80%);clip-path:inset(0 100% 0 0);transition:clip-path .3s ease;pointer-events:none}.sidebar-nav-item:not(.active):hover:after{clip-path:inset(0 0% 0 0)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:active{-webkit-text-fill-color:hsl(var(--foreground));-webkit-box-shadow:0 0 0 1000px hsl(var(--input)) inset;caret-color:hsl(var(--foreground));font:inherit;-webkit-transition:background-color 9999s ease-in-out 0s;transition:background-color 9999s ease-in-out 0s}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{border-color:hsl(var(--border))}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-right-0\.5{right:-.125rem}.-top-0\.5{top:-.125rem}.bottom-0{bottom:0}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.bottom-full{bottom:100%}.left-0{left:0}.left-0\.5{left:.125rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-4{left:1rem}.left-\[22px\]{left:22px}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-0\.5{margin-left:-.125rem}.-ml-1{margin-left:-.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-px{margin-top:1px}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[2\.5px\]{height:2.5px}.h-\[5px\]{height:5px}.h-\[80vh\]{height:80vh}.h-\[9px\]{height:9px}.h-\[var\(--header-height\)\]{height:var(--header-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[70vh\]{max-height:70vh}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0px}.min-h-8{min-height:2rem}.min-h-\[120px\]{min-height:120px}.min-h-\[200px\]{min-height:200px}.min-h-\[34px\]{min-height:34px}.min-h-\[60px\]{min-height:60px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[\.\.\]{width:..}.w-\[1px\]{width:1px}.w-\[3px\]{width:3px}.w-\[400px\]{width:400px}.w-\[420px\]{width:420px}.w-\[480px\]{width:480px}.w-\[50vw\]{width:50vw}.w-\[5px\]{width:5px}.w-\[84px\]{width:84px}.w-\[9px\]{width:9px}.w-\[var\(--radix-popover-trigger-width\)\]{width:var(--radix-popover-trigger-width)}.w-\[var\(--sidebar-width\)\]{width:var(--sidebar-width)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[400px\]{min-width:400px}.min-w-\[60px\]{min-width:60px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[180px\]{max-width:180px}.max-w-\[18rem\]{max-width:18rem}.max-w-\[200px\]{max-width:200px}.max-w-\[320px\]{max-width:320px}.max-w-\[80vw\]{max-width:80vw}.max-w-\[85vw\]{max-width:85vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[15px\]{--tw-translate-x: 15px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[2px\]{--tw-translate-x: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-\[2px\]{gap:2px}.-space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.375rem * var(--tw-space-x-reverse));margin-left:calc(-.375rem * calc(1 - var(--tw-space-x-reverse)))}.-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.75rem * var(--tw-space-x-reverse));margin-left:calc(-.75rem * calc(1 - var(--tw-space-x-reverse)))}.-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-1rem * var(--tw-space-x-reverse));margin-left:calc(-1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border\/20>:not([hidden])~:not([hidden]){border-color:hsl(var(--border) / .2)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[1px\]{border-radius:1px}.rounded-\[2px\]{border-radius:2px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-amber-500\/30{border-color:#f59e0b4d}.border-amber-500\/60{border-color:#f59e0b99}.border-blue-500\/30{border-color:#3b82f64d}.border-border{border-color:hsl(var(--border))}.border-border\/30{border-color:hsl(var(--border) / .3)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-border\/70{border-color:hsl(var(--border) / .7)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-destructive\/40{border-color:hsl(var(--destructive) / .4)}.border-emerald-500\/30{border-color:#10b9814d}.border-foreground\/25{border-color:hsl(var(--foreground) / .25)}.border-green-500\/30{border-color:#22c55e4d}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground) / .3)}.border-primary{border-color:hsl(var(--primary))}.border-red-500\/30{border-color:#ef44444d}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-sidebar-border\/50{border-color:hsl(var(--sidebar-border) / .5)}.border-sky-500\/40{border-color:#0ea5e966}.border-slate-700\/50{border-color:#33415580}.border-slate-800\/50{border-color:#1e293b80}.border-transparent{border-color:transparent}.border-violet-500\/20{border-color:#8b5cf633}.border-violet-500\/40{border-color:#8b5cf666}.border-yellow-500\/30{border-color:#eab3084d}.border-zinc-700\/40{border-color:#3f3f4666}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-amber-500\/15{background-color:#f59e0b26}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-500\/5{background-color:#f59e0b0d}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/40{background-color:hsl(var(--background) / .4)}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-background\/90{background-color:hsl(var(--background) / .9)}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/80{background-color:#000c}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-border\/70{background-color:hsl(var(--border) / .7)}.bg-card{background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-500\/20{background-color:#10b98133}.bg-emerald-500\/25{background-color:#10b98140}.bg-emerald-500\/5{background-color:#10b9810d}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/5{background-color:#22c55e0d}.bg-indigo-500\/20{background-color:#6366f133}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-500\/20{background-color:#f9731633}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/15{background-color:hsl(var(--primary) / .15)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/\[0\.08\]{background-color:hsl(var(--primary) / .08)}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/15{background-color:#a855f726}.bg-purple-500\/20{background-color:#a855f733}.bg-purple-600{--tw-bg-opacity: 1;background-color:rgb(147 51 234 / var(--tw-bg-opacity, 1))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/15{background-color:#ef444426}.bg-red-500\/20{background-color:#ef444433}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar-accent{background-color:hsl(var(--sidebar-accent))}.bg-sidebar-primary{background-color:hsl(var(--sidebar-primary))}.bg-sidebar-primary\/15{background-color:hsl(var(--sidebar-primary) / .15)}.bg-sidebar-primary\/60{background-color:hsl(var(--sidebar-primary) / .6)}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-sky-500\/15{background-color:#0ea5e926}.bg-sky-500\/20{background-color:#0ea5e933}.bg-slate-500\/20{background-color:#64748b33}.bg-slate-700\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-800\/50{background-color:#1e293b80}.bg-slate-900\/80{background-color:#0f172acc}.bg-slate-900\/95{background-color:#0f172af2}.bg-teal-500\/20{background-color:#14b8a633}.bg-transparent{background-color:transparent}.bg-violet-500\/15{background-color:#8b5cf626}.bg-violet-500\/20{background-color:#8b5cf633}.bg-violet-500\/5{background-color:#8b5cf60d}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-zinc-400{--tw-bg-opacity: 1;background-color:rgb(161 161 170 / var(--tw-bg-opacity, 1))}.bg-zinc-500{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity, 1))}.bg-zinc-500\/15{background-color:#71717a26}.bg-zinc-500\/20{background-color:#71717a33}.bg-zinc-500\/5{background-color:#71717a0d}.bg-zinc-600{--tw-bg-opacity: 1;background-color:rgb(82 82 91 / var(--tw-bg-opacity, 1))}.bg-zinc-700{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity, 1))}.bg-zinc-700\/40{background-color:#3f3f4666}.bg-zinc-900\/30{background-color:#18181b4d}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\[hsl\(259\,67\%\,59\%\)\]{--tw-gradient-from: hsl(259,67%,59%) var(--tw-gradient-from-position);--tw-gradient-to: hsl(259 67% 59% / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sidebar-primary\/20{--tw-gradient-from: hsl(var(--sidebar-primary) / .2) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--sidebar-primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-80\%{--tw-gradient-via-position: 80%}.to-\[hsl\(220\,80\%\,55\%\)\]{--tw-gradient-to: hsl(220,80%,55%) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[6px\]{padding:6px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pl-\[108px\]{padding-left:108px}.pl-\[52px\]{padding-left:52px}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-7{padding-right:1.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-\[1\.6\]{line-height:1.6}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[hsl\(var\(--primary\)\)\]{color:hsl(var(--primary))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-400\/80{color:#fbbf24cc}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-400\/70{color:#34d399b3}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/80{color:hsl(var(--foreground) / .8)}.text-foreground\/90{color:hsl(var(--foreground) / .9)}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/20{color:hsl(var(--muted-foreground) / .2)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/70{color:hsl(var(--primary) / .7)}.text-purple-300{--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/90{color:#f87171e6}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-muted-foreground{color:hsl(var(--sidebar-muted-foreground))}.text-sidebar-primary{color:hsl(var(--sidebar-primary))}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-teal-300{--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.text-violet-300{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.text-violet-300\/70{color:#c4b5fdb3}.text-violet-300\/80{color:#c4b5fdcc}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500\/70{color:#eab308b3}.text-zinc-100{--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity, 1))}.text-zinc-200{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.accent-purple-600{accent-color:#9333ea}.accent-violet-400{accent-color:#a78bfa}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary\/40{--tw-ring-color: hsl(var(--primary) / .4)}.ring-violet-400\/40{--tw-ring-color: rgb(167 139 250 / .4)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in,.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.slide-in-from-bottom-4{--tw-enter-translate-y: 1rem}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.\[will-change\:opacity\]{will-change:opacity}.\[will-change\:transform\,opacity\]{will-change:transform,opacity}.\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:hsl(var(--background));color:hsl(var(--foreground));min-height:100vh;font-family:DM Sans,system-ui,sans-serif}.deck-canvas{position:relative;background:#ececef}.dark .deck-canvas{background:#111113}@keyframes deck-dot-bounce{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.deck-preparing{display:flex;justify-content:center;gap:6px}.deck-preparing span{width:8px;height:8px;border-radius:50%;background:hsl(var(--muted-foreground));animation:deck-dot-bounce 1.4s ease-in-out infinite}.deck-preparing span:nth-child(2){animation-delay:.16s}.deck-preparing span:nth-child(3){animation-delay:.32s}@media (prefers-reduced-motion: reduce){.deck-preparing span{animation:none}}.deck-hidden-tab .deck-preparing span{animation-play-state:paused}.deck-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.deck-status-dot.connected{background:#22c35d;box-shadow:0 0 6px #22c35d66}.deck-status-dot.disconnected{background:#d92626;box-shadow:0 0 6px #d9262666}.deck-status-dot.feedback{background:#ff8000;box-shadow:0 0 6px #ff800066;animation:deck-dot-bounce 1.4s ease-in-out infinite}.deck-tab{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;cursor:pointer;transition:color .15s ease;border:none;border-bottom:2px solid transparent;color:hsl(var(--muted-foreground));background:transparent}.deck-tab:hover{color:hsl(var(--foreground))}.deck-tab.active{color:hsl(var(--primary));border-bottom-color:hsl(var(--primary))}.deck-option-card{padding:1rem;border-radius:.5rem;border:2px solid hsl(var(--border));cursor:pointer;transition:border-color .15s ease,background .15s ease}.deck-option-card:hover{border-color:hsl(var(--primary) / .5);background:hsl(var(--accent))}.deck-option-card.selected{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08)}.mermaid-container svg{max-width:100%;height:auto}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground\/50::-moz-placeholder{color:hsl(var(--muted-foreground) / .5)}.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground) / .5)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:left-0:before{content:var(--tw-content);left:0}.before\:top-0:before{content:var(--tw-content);top:0}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-\[3px\]:before{content:var(--tw-content);width:3px}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-sidebar-primary:before{content:var(--tw-content);background-color:hsl(var(--sidebar-primary))}.last\:border-0:last-child{border-width:0px}.focus-within\:border-primary\/60:focus-within{border-color:hsl(var(--primary) / .6)}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-primary\/20:focus-within{--tw-ring-color: hsl(var(--primary) / .2)}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-amber-500:hover{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:border-destructive:hover{border-color:hsl(var(--destructive))}.hover\:border-primary:hover{border-color:hsl(var(--primary))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:border-sidebar-primary\/50:hover{border-color:hsl(var(--sidebar-primary) / .5)}.hover\:border-zinc-600:hover{--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity, 1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-500:hover{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-500\/35:hover{background-color:#f59e0b59}.hover\:bg-background\/70:hover{background-color:hsl(var(--background) / .7)}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/40:hover{background-color:#10b98166}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/30:hover{background-color:hsl(var(--primary) / .3)}.hover\:bg-primary\/5:hover{background-color:hsl(var(--primary) / .05)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-purple-500:hover{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/15:hover{background-color:#ef444426}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-sidebar-accent\/50:hover{background-color:hsl(var(--sidebar-accent) / .5)}.hover\:bg-sidebar-primary\/90:hover{background-color:hsl(var(--sidebar-primary) / .9)}.hover\:bg-slate-700\/50:hover{background-color:#33415580}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:bg-zinc-500\/25:hover{background-color:#71717a40}.hover\:bg-zinc-600:hover{--tw-bg-opacity: 1;background-color:rgb(82 82 91 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-800:hover{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-500:hover{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.hover\:text-emerald-300:hover{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-foreground:hover{color:hsl(var(--sidebar-foreground))}.hover\:text-slate-100:hover{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.hover\:text-slate-200:hover{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.hover\:text-violet-200:hover{--tw-text-opacity: 1;color:rgb(221 214 254 / var(--tw-text-opacity, 1))}.hover\:text-violet-300:hover{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.hover\:text-zinc-200:hover{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity, 1))}.hover\:text-zinc-300:hover{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-125:hover{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-emerald-500\/50:focus{border-color:#10b98180}.focus\:border-primary:focus{border-color:hsl(var(--primary))}.focus\:border-primary\/60:focus{border-color:hsl(var(--primary) / .6)}.focus\:border-ring:focus{border-color:hsl(var(--ring))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-background:focus{background-color:hsl(var(--background))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-color: hsl(var(--primary))}.focus\:ring-primary\/20:focus{--tw-ring-color: hsl(var(--primary) / .2)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:hover\:bg-amber-500\/20:hover:disabled{background-color:#f59e0b33}.disabled\:hover\:bg-emerald-500\/25:hover:disabled{background-color:#10b98140}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:border-primary\/50{border-color:hsl(var(--primary) / .5)}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:opacity-100{opacity:1}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-3[data-state=checked]{--tw-translate-x: .75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-primary\/10[data-state=active]{background-color:hsl(var(--primary) / .1)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:font-light[data-placeholder]{font-weight:300}.data-\[placeholder\]\:text-muted-foreground\/50[data-placeholder]{color:hsl(var(--muted-foreground) / .5)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-primary[data-state=active]{color:hsl(var(--primary))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.dark\:-rotate-90:is(.dark *){--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-0:is(.dark *){--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-0:is(.dark *){--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:text-amber-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-sky-300:is(.dark *){--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:inline{display:inline}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:inline{display:inline}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1024px){.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-col{flex-direction:column}}@media (min-width: 1280px){.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-left>span{text-align:left}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
|
|
@@ -56,7 +56,7 @@ ${u.map((k,_)=>`${_+1}. ${k}`).join(`
|
|
|
56
56
|
</head>
|
|
57
57
|
<body>${e}</body>
|
|
58
58
|
</html>
|
|
59
|
-
`),o.close()},[e,t]),d.jsx("iframe",{ref:n,sandbox:"allow-same-origin",className:"w-full h-full border-0",title:"HTML Preview"})}const Hh="modulepreload",Vh=function(e){return"/"+e},Za={},Md=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),s=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));o=Promise.allSettled(n.map(a=>{if(a=Vh(a),a in Za)return;Za[a]=!0;const u=a.endsWith(".css"),p=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${p}`))return;const v=document.createElement("link");if(v.rel=u?"stylesheet":Hh,u||(v.as="script"),v.crossOrigin="",v.href=a,s&&v.setAttribute("nonce",s),document.head.appendChild(v),u)return new Promise((h,x)=>{v.addEventListener("load",h),v.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${a}`)))})}))}function l(i){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i}return o.then(i=>{for(const s of i||[])s.status==="rejected"&&l(s.reason);return t().catch(l)})},Ja=.1,eu=8,tu=32,Qh="'DM Sans', system-ui, sans-serif";function nu(e,t,n){return Math.min(n,Math.max(t,e))}let Pi=null,Rl=null;async function qh(){Rl||(Rl=Md(()=>import("./mermaid.core-BaQyIOvj.js").then(r=>r.bD),[]).then(r=>r.default));const e=await Rl,n=document.documentElement.classList.contains("dark")?"dark":"default";return Pi!==n&&(e.initialize({startOnLoad:!1,theme:n,securityLevel:"loose",fontFamily:Qh,suppressErrorRendering:!0}),Pi=n),e}function Kh({content:e,renderedSvg:t,onError:n,theme:r,version:o}){const l=C.useRef(null),i=C.useRef(null),s=C.useRef(null),[a,u]=C.useState(null),p=C.useRef({scale:1,tx:0,ty:0}),v=C.useRef({w:0,h:0}),h=C.useCallback(()=>{const f=s.current;if(!f)return;const{scale:c,tx:m,ty:g}=p.current;f.style.transform=`translate(${m}px, ${g}px) scale(${c})`},[]),x=C.useCallback(()=>{const f=i.current,{w:c,h:m}=v.current;if(!f||!c||!m)return;const g=nu(Math.min((f.clientWidth-tu)/c,(f.clientHeight-tu)/m,1),Ja,eu);p.current={scale:g,tx:(f.clientWidth-c*g)/2,ty:(f.clientHeight-m*g)/2},h()},[h]),y=C.useCallback((f,c,m)=>{const g=nu(f,Ja,eu),{scale:w,tx:S,ty:b}=p.current,N=(c-S)/w,L=(m-b)/w;p.current={scale:g,tx:c-N*g,ty:m-L*g},h()},[h]),k=C.useCallback(f=>{const c=i.current;c&&y(p.current.scale*f,c.clientWidth/2,c.clientHeight/2)},[y]);C.useEffect(()=>{u(null)},[e,t,o]),C.useEffect(()=>{Pi=null},[r]);const _=C.useCallback(()=>{const f=l.current;if(!f)return;const c=f.querySelector("svg");if(!c)return;const m=(c.getAttribute("viewBox")||"").split(/[\s,]+/).map(Number);let g=m[2],w=m[3];if(!g||!w){const S=c.getBoundingClientRect();g=S.width,w=S.height}v.current={w:g,h:w},c.style.maxWidth="none",c.style.width=`${g}px`,c.style.height=`${w}px`,x()},[x]);return C.useEffect(()=>{const f=l.current;if(!f)return;if(t&&t.trim()){f.innerHTML=t,_();return}if(!e.trim())return;let c=!1;const m=`mermaid-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return qh().then(g=>g.parse(e.trim()).then(()=>g.render(m,e.trim()))).then(({svg:g})=>{if(c)return;const w=l.current;w&&(w.innerHTML=g,_())}).catch(g=>{var S;if(c)return;const w=String(g);u(w),l.current&&(l.current.innerHTML=""),(S=document.getElementById(m))==null||S.remove(),n==null||n(w,e.trim())}),()=>{c=!0}},[e,t,r,o,_,n]),C.useEffect(()=>{const f=i.current;if(!f)return;const c=R=>{R.preventDefault();const K=f.getBoundingClientRect(),me=R.deltaY<0?1.1:1/1.1;y(p.current.scale*me,R.clientX-K.left,R.clientY-K.top)};let m=!1,g=-1,w=0,S=0;const b=R=>{m=!0,g=R.pointerId,w=R.clientX,S=R.clientY;try{f.setPointerCapture(R.pointerId)}catch{}f.style.cursor="grabbing"},N=R=>{!m||R.pointerId!==g||(p.current.tx+=R.clientX-w,p.current.ty+=R.clientY-S,w=R.clientX,S=R.clientY,h())},L=R=>{if(!(R.pointerId!==g&&g!==-1)){m=!1,g=-1,f.style.cursor="grab";try{f.releasePointerCapture(R.pointerId)}catch{}}};return f.addEventListener("wheel",c,{passive:!1}),f.addEventListener("pointerdown",b),f.addEventListener("pointermove",N),f.addEventListener("pointerup",L),f.addEventListener("pointerleave",L),()=>{f.removeEventListener("wheel",c),f.removeEventListener("pointerdown",b),f.removeEventListener("pointermove",N),f.removeEventListener("pointerup",L),f.removeEventListener("pointerleave",L)}},[y,h]),C.useEffect(()=>{const f=i.current;if(!f||typeof ResizeObserver>"u")return;const c=new ResizeObserver(()=>x());return c.observe(f),()=>c.disconnect()},[x]),d.jsxs("div",{className:"relative h-full w-full min-h-0 flex-1",children:[d.jsx("div",{ref:i,className:`mermaid-viewport absolute inset-0 overflow-hidden ${a?"hidden":""}`,style:{cursor:"grab",touchAction:"none"},children:d.jsx("div",{ref:s,className:"mermaid-pan",style:{transformOrigin:"0 0",willChange:"transform"},children:d.jsx("div",{ref:l,className:"mermaid-container"})})}),!a&&d.jsx(Yh,{onIn:()=>k(1.2),onOut:()=>k(1/1.2),onReset:x}),a&&d.jsx("div",{className:"flex h-full items-center justify-center",children:d.jsxs("div",{className:"text-center text-muted-foreground",children:[d.jsx("p",{className:"text-sm font-medium",children:"Diagram syntax error"}),d.jsx("p",{className:"mt-1 text-xs",children:a})]})})]})}function Yh({onIn:e,onOut:t,onReset:n}){const r="flex h-9 w-9 items-center justify-center border border-border bg-background/80 text-muted-foreground shadow-sm backdrop-blur transition-colors hover:border-primary hover:text-foreground";return d.jsxs("div",{className:"absolute right-3 top-3 z-10 flex flex-col overflow-hidden rounded-lg shadow-lg",children:[d.jsx("button",{onClick:e,className:`${r} rounded-t-lg border-b-0`,"aria-label":"Zoom in",title:"Zoom in",children:d.jsxs("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",children:[d.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),d.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}),d.jsx("button",{onClick:t,className:r,"aria-label":"Zoom out",title:"Zoom out",children:d.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",children:d.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}),d.jsx("button",{onClick:n,className:`${r} rounded-b-lg border-t-0`,"aria-label":"Reset zoom (fit)",title:"Fit to screen",children:d.jsxs("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[d.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3"}),d.jsx("path",{d:"M21 8V5a2 2 0 0 0-2-2h-3"}),d.jsx("path",{d:"M3 16v3a2 2 0 0 0 2 2h3"}),d.jsx("path",{d:"M16 21h3a2 2 0 0 0 2-2v-3"})]})})]})}function Rs(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var on=Rs();function $d(e){on=e}var ir={exec:()=>null};function W(e,t=""){let n=typeof e=="string"?e:e.source;const r={replace:(o,l)=>{let i=typeof l=="string"?l:l.source;return i=i.replace(ke.caret,"$1"),n=n.replace(o,i),r},getRegex:()=>new RegExp(n,t)};return r}var ke={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},Gh=/^(?:[ \t]*(?:\n|$))+/,Xh=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Zh=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Rr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Jh=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ps=/(?:[*+-]|\d{1,9}[.)])/,Id=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Dd=W(Id).replace(/bull/g,Ps).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),em=W(Id).replace(/bull/g,Ps).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),zs=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,tm=/^[^\n]+/,As=/(?!\s*\])(?:\\.|[^\[\]\\])+/,nm=W(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",As).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),rm=W(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ps).getRegex(),rl="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ms=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,om=W("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ms).replace("tag",rl).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Od=W(zs).replace("hr",Rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",rl).getRegex(),lm=W(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Od).getRegex(),$s={blockquote:lm,code:Xh,def:nm,fences:Zh,heading:Jh,hr:Rr,html:om,lheading:Dd,list:rm,newline:Gh,paragraph:Od,table:ir,text:tm},ru=W("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",rl).getRegex(),im={...$s,lheading:em,table:ru,paragraph:W(zs).replace("hr",Rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ru).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",rl).getRegex()},sm={...$s,html:W(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ms).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ir,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:W(zs).replace("hr",Rr).replace("heading",` *#{1,6} *[^
|
|
59
|
+
`),o.close()},[e,t]),d.jsx("iframe",{ref:n,sandbox:"allow-same-origin",className:"w-full h-full border-0",title:"HTML Preview"})}const Hh="modulepreload",Vh=function(e){return"/"+e},Za={},Md=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),s=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));o=Promise.allSettled(n.map(a=>{if(a=Vh(a),a in Za)return;Za[a]=!0;const u=a.endsWith(".css"),p=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${p}`))return;const v=document.createElement("link");if(v.rel=u?"stylesheet":Hh,u||(v.as="script"),v.crossOrigin="",v.href=a,s&&v.setAttribute("nonce",s),document.head.appendChild(v),u)return new Promise((h,x)=>{v.addEventListener("load",h),v.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${a}`)))})}))}function l(i){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i}return o.then(i=>{for(const s of i||[])s.status==="rejected"&&l(s.reason);return t().catch(l)})},Ja=.1,eu=8,tu=32,Qh="'DM Sans', system-ui, sans-serif";function nu(e,t,n){return Math.min(n,Math.max(t,e))}let Pi=null,Rl=null;async function qh(){Rl||(Rl=Md(()=>import("./mermaid.core-DYi3A-qK.js").then(r=>r.bD),[]).then(r=>r.default));const e=await Rl,n=document.documentElement.classList.contains("dark")?"dark":"default";return Pi!==n&&(e.initialize({startOnLoad:!1,theme:n,securityLevel:"loose",fontFamily:Qh,suppressErrorRendering:!0}),Pi=n),e}function Kh({content:e,renderedSvg:t,onError:n,theme:r,version:o}){const l=C.useRef(null),i=C.useRef(null),s=C.useRef(null),[a,u]=C.useState(null),p=C.useRef({scale:1,tx:0,ty:0}),v=C.useRef({w:0,h:0}),h=C.useCallback(()=>{const f=s.current;if(!f)return;const{scale:c,tx:m,ty:g}=p.current;f.style.transform=`translate(${m}px, ${g}px) scale(${c})`},[]),x=C.useCallback(()=>{const f=i.current,{w:c,h:m}=v.current;if(!f||!c||!m)return;const g=nu(Math.min((f.clientWidth-tu)/c,(f.clientHeight-tu)/m,1),Ja,eu);p.current={scale:g,tx:(f.clientWidth-c*g)/2,ty:(f.clientHeight-m*g)/2},h()},[h]),y=C.useCallback((f,c,m)=>{const g=nu(f,Ja,eu),{scale:w,tx:S,ty:b}=p.current,N=(c-S)/w,L=(m-b)/w;p.current={scale:g,tx:c-N*g,ty:m-L*g},h()},[h]),k=C.useCallback(f=>{const c=i.current;c&&y(p.current.scale*f,c.clientWidth/2,c.clientHeight/2)},[y]);C.useEffect(()=>{u(null)},[e,t,o]),C.useEffect(()=>{Pi=null},[r]);const _=C.useCallback(()=>{const f=l.current;if(!f)return;const c=f.querySelector("svg");if(!c)return;const m=(c.getAttribute("viewBox")||"").split(/[\s,]+/).map(Number);let g=m[2],w=m[3];if(!g||!w){const S=c.getBoundingClientRect();g=S.width,w=S.height}v.current={w:g,h:w},c.style.maxWidth="none",c.style.width=`${g}px`,c.style.height=`${w}px`,x()},[x]);return C.useEffect(()=>{const f=l.current;if(!f)return;if(t&&t.trim()){f.innerHTML=t,_();return}if(!e.trim())return;let c=!1;const m=`mermaid-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;return qh().then(g=>g.parse(e.trim()).then(()=>g.render(m,e.trim()))).then(({svg:g})=>{if(c)return;const w=l.current;w&&(w.innerHTML=g,_())}).catch(g=>{var S;if(c)return;const w=String(g);u(w),l.current&&(l.current.innerHTML=""),(S=document.getElementById(m))==null||S.remove(),n==null||n(w,e.trim())}),()=>{c=!0}},[e,t,r,o,_,n]),C.useEffect(()=>{const f=i.current;if(!f)return;const c=R=>{R.preventDefault();const K=f.getBoundingClientRect(),me=R.deltaY<0?1.1:1/1.1;y(p.current.scale*me,R.clientX-K.left,R.clientY-K.top)};let m=!1,g=-1,w=0,S=0;const b=R=>{m=!0,g=R.pointerId,w=R.clientX,S=R.clientY;try{f.setPointerCapture(R.pointerId)}catch{}f.style.cursor="grabbing"},N=R=>{!m||R.pointerId!==g||(p.current.tx+=R.clientX-w,p.current.ty+=R.clientY-S,w=R.clientX,S=R.clientY,h())},L=R=>{if(!(R.pointerId!==g&&g!==-1)){m=!1,g=-1,f.style.cursor="grab";try{f.releasePointerCapture(R.pointerId)}catch{}}};return f.addEventListener("wheel",c,{passive:!1}),f.addEventListener("pointerdown",b),f.addEventListener("pointermove",N),f.addEventListener("pointerup",L),f.addEventListener("pointerleave",L),()=>{f.removeEventListener("wheel",c),f.removeEventListener("pointerdown",b),f.removeEventListener("pointermove",N),f.removeEventListener("pointerup",L),f.removeEventListener("pointerleave",L)}},[y,h]),C.useEffect(()=>{const f=i.current;if(!f||typeof ResizeObserver>"u")return;const c=new ResizeObserver(()=>x());return c.observe(f),()=>c.disconnect()},[x]),d.jsxs("div",{className:"relative h-full w-full min-h-0 flex-1",children:[d.jsx("div",{ref:i,className:`mermaid-viewport absolute inset-0 overflow-hidden ${a?"hidden":""}`,style:{cursor:"grab",touchAction:"none"},children:d.jsx("div",{ref:s,className:"mermaid-pan",style:{transformOrigin:"0 0",willChange:"transform"},children:d.jsx("div",{ref:l,className:"mermaid-container"})})}),!a&&d.jsx(Yh,{onIn:()=>k(1.2),onOut:()=>k(1/1.2),onReset:x}),a&&d.jsx("div",{className:"flex h-full items-center justify-center",children:d.jsxs("div",{className:"text-center text-muted-foreground",children:[d.jsx("p",{className:"text-sm font-medium",children:"Diagram syntax error"}),d.jsx("p",{className:"mt-1 text-xs",children:a})]})})]})}function Yh({onIn:e,onOut:t,onReset:n}){const r="flex h-9 w-9 items-center justify-center border border-border bg-background/80 text-muted-foreground shadow-sm backdrop-blur transition-colors hover:border-primary hover:text-foreground";return d.jsxs("div",{className:"absolute right-3 top-3 z-10 flex flex-col overflow-hidden rounded-lg shadow-lg",children:[d.jsx("button",{onClick:e,className:`${r} rounded-t-lg border-b-0`,"aria-label":"Zoom in",title:"Zoom in",children:d.jsxs("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",children:[d.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),d.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}),d.jsx("button",{onClick:t,className:r,"aria-label":"Zoom out",title:"Zoom out",children:d.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",children:d.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}),d.jsx("button",{onClick:n,className:`${r} rounded-b-lg border-t-0`,"aria-label":"Reset zoom (fit)",title:"Fit to screen",children:d.jsxs("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[d.jsx("path",{d:"M8 3H5a2 2 0 0 0-2 2v3"}),d.jsx("path",{d:"M21 8V5a2 2 0 0 0-2-2h-3"}),d.jsx("path",{d:"M3 16v3a2 2 0 0 0 2 2h3"}),d.jsx("path",{d:"M16 21h3a2 2 0 0 0 2-2v-3"})]})})]})}function Rs(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var on=Rs();function $d(e){on=e}var ir={exec:()=>null};function W(e,t=""){let n=typeof e=="string"?e:e.source;const r={replace:(o,l)=>{let i=typeof l=="string"?l:l.source;return i=i.replace(ke.caret,"$1"),n=n.replace(o,i),r},getRegex:()=>new RegExp(n,t)};return r}var ke={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},Gh=/^(?:[ \t]*(?:\n|$))+/,Xh=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Zh=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Rr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Jh=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ps=/(?:[*+-]|\d{1,9}[.)])/,Id=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Dd=W(Id).replace(/bull/g,Ps).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),em=W(Id).replace(/bull/g,Ps).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),zs=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,tm=/^[^\n]+/,As=/(?!\s*\])(?:\\.|[^\[\]\\])+/,nm=W(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",As).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),rm=W(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ps).getRegex(),rl="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ms=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,om=W("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ms).replace("tag",rl).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Od=W(zs).replace("hr",Rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",rl).getRegex(),lm=W(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Od).getRegex(),$s={blockquote:lm,code:Xh,def:nm,fences:Zh,heading:Jh,hr:Rr,html:om,lheading:Dd,list:rm,newline:Gh,paragraph:Od,table:ir,text:tm},ru=W("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",rl).getRegex(),im={...$s,lheading:em,table:ru,paragraph:W(zs).replace("hr",Rr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",ru).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",rl).getRegex()},sm={...$s,html:W(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ms).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ir,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:W(zs).replace("hr",Rr).replace("heading",` *#{1,6} *[^
|
|
60
60
|
]`).replace("lheading",Dd).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},am=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,um=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Bd=/^( {2,}|\\)\n(?!\s*$)/,cm=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,ol=/[\p{P}\p{S}]/u,Is=/[\s\p{P}\p{S}]/u,Fd=/[^\s\p{P}\p{S}]/u,dm=W(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Is).getRegex(),Ud=/(?!~)[\p{P}\p{S}]/u,fm=/(?!~)[\s\p{P}\p{S}]/u,pm=/(?:[^\s\p{P}\p{S}]|~)/u,hm=/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,Wd=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,mm=W(Wd,"u").replace(/punct/g,ol).getRegex(),gm=W(Wd,"u").replace(/punct/g,Ud).getRegex(),Hd="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",vm=W(Hd,"gu").replace(/notPunctSpace/g,Fd).replace(/punctSpace/g,Is).replace(/punct/g,ol).getRegex(),ym=W(Hd,"gu").replace(/notPunctSpace/g,pm).replace(/punctSpace/g,fm).replace(/punct/g,Ud).getRegex(),xm=W("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Fd).replace(/punctSpace/g,Is).replace(/punct/g,ol).getRegex(),wm=W(/\\(punct)/,"gu").replace(/punct/g,ol).getRegex(),km=W(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),bm=W(Ms).replace("(?:-->|$)","-->").getRegex(),Sm=W("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",bm).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Io=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Em=W(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Io).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Vd=W(/^!?\[(label)\]\[(ref)\]/).replace("label",Io).replace("ref",As).getRegex(),Qd=W(/^!?\[(ref)\](?:\[\])?/).replace("ref",As).getRegex(),Cm=W("reflink|nolink(?!\\()","g").replace("reflink",Vd).replace("nolink",Qd).getRegex(),Ds={_backpedal:ir,anyPunctuation:wm,autolink:km,blockSkip:hm,br:Bd,code:um,del:ir,emStrongLDelim:mm,emStrongRDelimAst:vm,emStrongRDelimUnd:xm,escape:am,link:Em,nolink:Qd,punctuation:dm,reflink:Vd,reflinkSearch:Cm,tag:Sm,text:cm,url:ir},Nm={...Ds,link:W(/^!?\[(label)\]\((.*?)\)/).replace("label",Io).getRegex(),reflink:W(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Io).getRegex()},zi={...Ds,emStrongRDelimAst:ym,emStrongLDelim:gm,url:W(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},jm={...zi,br:W(Bd).replace("{2,}","*").getRegex(),text:W(zi.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Yr={normal:$s,gfm:im,pedantic:sm},Hn={normal:Ds,gfm:zi,breaks:jm,pedantic:Nm},Lm={"&":"&","<":"<",">":">",'"':""","'":"'"},ou=e=>Lm[e];function lt(e,t){if(t){if(ke.escapeTest.test(e))return e.replace(ke.escapeReplace,ou)}else if(ke.escapeTestNoEncode.test(e))return e.replace(ke.escapeReplaceNoEncode,ou);return e}function lu(e){try{e=encodeURI(e).replace(ke.percentDecode,"%")}catch{return null}return e}function iu(e,t){var l;const n=e.replace(ke.findPipe,(i,s,a)=>{let u=!1,p=s;for(;--p>=0&&a[p]==="\\";)u=!u;return u?"|":" |"}),r=n.split(ke.splitPipe);let o=0;if(r[0].trim()||r.shift(),r.length>0&&!((l=r.at(-1))!=null&&l.trim())&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;o<r.length;o++)r[o]=r[o].trim().replace(ke.slashPipe,"|");return r}function Vn(e,t,n){const r=e.length;if(r===0)return"";let o=0;for(;o<r&&e.charAt(r-o-1)===t;)o++;return e.slice(0,r-o)}function _m(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function su(e,t,n,r,o){const l=t.href,i=t.title||null,s=e[1].replace(o.other.outputLinkReplace,"$1");r.state.inLink=!0;const a={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:l,title:i,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,a}function Tm(e,t,n){const r=e.match(n.other.indentCodeCompensation);if(r===null)return t;const o=r[1];return t.split(`
|
|
61
61
|
`).map(l=>{const i=l.match(n.other.beginningSpace);if(i===null)return l;const[s]=i;return s.length>=o.length?l.slice(o.length):l}).join(`
|
|
62
62
|
`)}var Do=class{constructor(e){Q(this,"options");Q(this,"rules");Q(this,"lexer");this.options=e||on}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Vn(n,`
|
|
@@ -889,4 +889,4 @@ dialog.beacon-dialog::backdrop {
|
|
|
889
889
|
<div class="beacon-pin-popover-actions">
|
|
890
890
|
<button type="button" class="beacon-btn primary" data-action="save">${Xg} Save</button>
|
|
891
891
|
</div>
|
|
892
|
-
`;const r=240,o=160,l=Math.min(Math.max(8,e.anchor.x),window.innerWidth-r-8),i=Math.min(Math.max(8,e.anchor.y+12),window.innerHeight-o-8);n.style.left=`${l}px`,n.style.top=`${i}px`,document.body.appendChild(n);const s=n.querySelector("textarea");s.focus();function a(p){document.removeEventListener("keydown",u,!0),n.remove(),t(p)}function u(p){p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),a({cancelled:"all"}))}document.addEventListener("keydown",u,!0),n.addEventListener("click",p=>{var x;const h=(x=p.target.closest("[data-action]"))==null?void 0:x.getAttribute("data-action");if(h&&(p.stopPropagation(),h==="cancel"&&a({cancelled:"pin"}),h==="save")){const y=s.value.trim();a({...y?{note:y}:{},cancelled:!1})}}),s.addEventListener("keydown",p=>{if(p.key==="Enter"&&(p.metaKey||p.ctrlKey)){p.preventDefault();const v=s.value.trim();a({...v?{note:v}:{},cancelled:!1})}})})}const Jg="#0ea5e9";function ev(e,t){return/^#[0-9a-fA-F]{6}$/.test(e)?`${e}${t}`:e}function tv(e){const{shadowRoot:t,onHover:n}=e,r=e.accent??Jg,o=ev(r,"14"),l=document.createElement("div");l.style.cssText=["position: fixed","pointer-events: none","z-index: 2147483646",`border: 2px solid ${r}`,`background: ${o}`,"transition: all 60ms ease-out","box-sizing: border-box","border-radius: 2px"].join("; "),document.body.appendChild(l);const i=document.createElement("div");i.style.cssText=["position: fixed","pointer-events: none","z-index: 2147483647","background: #0f172a","color: #fff","font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace","padding: 3px 6px","border-radius: 3px","max-width: 280px","overflow: hidden","text-overflow: ellipsis","white-space: nowrap"].join("; "),document.body.appendChild(i);const s=document.body.style.cursor;document.body.style.cursor="crosshair";let a=!1,u=()=>{};const p=new Promise(g=>{u=g});function v(g){if(!g||!(g instanceof Node))return!1;let w=g;for(;w;){if(w===t||w===t.host)return!0;w=w.parentNode??w.host??null}return!1}function h(g){return g.tagName.includes("-")}function x(g,w){var b,N;l.style.display="none",i.style.display="none";const S=document.elementsFromPoint(g,w);l.style.display="block",i.style.display="block";for(const L of S){if(v(L))continue;let R=L,K=16;for(;R.shadowRoot&&!h(R)&&K-- >0;){const ae=(((N=(b=R.shadowRoot).elementsFromPoint)==null?void 0:N.call(b,g,w))??[]).find(Fe=>!v(Fe)&&Fe!==R);if(!ae)break;R=ae}return R}return null}function y(g){const w=g.getBoundingClientRect();l.style.left=`${w.left}px`,l.style.top=`${w.top}px`,l.style.width=`${w.width}px`,l.style.height=`${w.height}px`;const S=g.tagName.toLowerCase(),b=g.classList.length>0?"."+Array.from(g.classList).slice(0,2).join("."):"";i.textContent=S+b;const N=w.top-22;i.style.left=`${w.left}px`,i.style.top=`${N>=0?N:w.bottom+4}px`}function k(g){const w=x(g.clientX,g.clientY);w?(y(w),n==null||n(w)):(l.style.display="none",i.style.display="none",n==null||n(null))}function _(g){if(g.button!==0)return;g.preventDefault(),g.stopPropagation();const w=x(g.clientX,g.clientY);w&&m(w)}function f(g){g.preventDefault(),g.stopPropagation()}function c(g){g.key==="Escape"&&(g.preventDefault(),m(null))}function m(g){a||(a=!0,document.removeEventListener("mousemove",k,!0),document.removeEventListener("pointerdown",_,!0),document.removeEventListener("click",f,!0),document.removeEventListener("mouseup",f,!0),document.removeEventListener("keydown",c,!0),l.remove(),i.remove(),document.body.style.cursor=s,u(g))}return document.addEventListener("mousemove",k,!0),document.addEventListener("pointerdown",_,!0),document.addEventListener("click",f,!0),document.addEventListener("mouseup",f,!0),document.addEventListener("keydown",c,!0),{cancel:()=>m(null),promise:p}}let Il=null;async function nv(){return Il||(Il=await Md(()=>import("./index-6sdqbm2o.js"),[])),Il}const co="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII=";function yu(e,t){if(!e||e.startsWith("data:")||e.startsWith("blob:")||e.startsWith("/")||e.startsWith("#"))return!0;try{if(new URL(e,window.location.href).origin===window.location.origin)return!0}catch{return!1}return t==="anonymous"||t==="use-credentials"}function rv(){const e=[],t=[];return document.querySelectorAll("img").forEach(n=>{yu(n.src,n.crossOrigin)||(e.push({el:n,src:n.src}),n.src=co)}),document.querySelectorAll("image").forEach(n=>{const r=n,o=r.getAttribute("href"),l=r.getAttributeNS("http://www.w3.org/1999/xlink","href"),i=o||l||"";i&&!yu(i)&&(t.push({el:r,href:o,xlink:l}),o!==null&&r.setAttribute("href",co),l!==null&&r.setAttributeNS("http://www.w3.org/1999/xlink","href",co))}),()=>{for(const{el:n,src:r}of e)n.src=r;for(const{el:n,href:r,xlink:o}of t)r!==null&&n.setAttribute("href",r),o!==null&&n.setAttributeNS("http://www.w3.org/1999/xlink","href",o)}}function ov(){const e=[];document.querySelectorAll("*").forEach(l=>{const i=getComputedStyle(l),s=(i.overflowY==="auto"||i.overflowY==="scroll")&&l.scrollHeight>l.clientHeight,a=(i.overflowX==="auto"||i.overflowX==="scroll")&&l.scrollWidth>l.clientWidth;(s||a)&&e.push(l)});const t=window.scrollX,n=window.scrollY,r=e.map(l=>({el:l,scrollLeft:l.scrollLeft,scrollTop:l.scrollTop})),o=new Map;for(const l of e){let i=l;for(;i&&i!==document.documentElement.parentElement;)o.has(i)||o.set(i,i.style.cssText),i=i.parentElement}for(const l of o.keys())l.style.setProperty("overflow","visible","important"),l.style.setProperty("overflow-x","visible","important"),l.style.setProperty("overflow-y","visible","important"),l.style.setProperty("max-height","none","important"),l.style.setProperty("height","auto","important"),l.style.setProperty("min-height","0","important");return()=>{for(const[l,i]of o)l.style.cssText=i;for(const{el:l,scrollLeft:i,scrollTop:s}of r)l.scrollLeft=i,l.scrollTop=s;window.scrollTo(t,n)}}function lv(){const e=document.createElement("style");return e.setAttribute("data-beacon-capture",""),e.textContent="*,*::before,*::after{animation:none !important;transition:none !important;}",(document.head??document.documentElement).appendChild(e),()=>{e.remove()}}let xu=Promise.resolve();async function Zd(e={}){const t=xu;let n;xu=new Promise(r=>{n=r});try{return await t,await iv(e,n)}catch(r){throw n(),r}}async function iv(e,t){const{quality:n=.7,pixelRatio:r=Math.min(window.devicePixelRatio||1,2),excludeShadowRoot:o,excludeHosts:l,fullPage:i=!0}=e,s=await nv(),a=o||l!=null&&l.length?y=>{let k=y;for(;k;){if(o&&k===o.host||l&&k instanceof Element&&l.includes(k)||k instanceof Element&&k.classList.contains("beacon-no-capture"))return!1;k=k.parentNode}return!0}:void 0,u=rv(),p=i?ov():()=>{},v=lv();let h=!1;const x=()=>{if(!h){h=!0;try{v()}finally{try{p()}finally{try{u()}finally{t()}}}}};try{i&&await new Promise(c=>requestAnimationFrame(()=>c()));const y=document.documentElement,k=i?Math.max(y.scrollWidth,window.innerWidth):window.innerWidth,_=i?Math.max(y.scrollHeight,window.innerHeight):window.innerHeight;return{dataUrl:await s.toJpeg(y,{quality:n,pixelRatio:r,cacheBust:!0,...a?{filter:a}:{},imagePlaceholder:co,width:k,height:_,style:{transform:"none"}}),width:k,height:_,pixelRatio:r,dispose:x}}catch(y){throw x(),y}}let Bs=null;function sv(e){Bs=e}function av(){return Bs}function sn(){Bs=null}const wu="http://www.w3.org/2000/svg";function uv(){const e=document.createElementNS(wu,"svg");e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("fill","none"),e.setAttribute("stroke","currentColor"),e.setAttribute("stroke-width","2"),e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("aria-hidden","true");const t=["M3 6h18","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6","M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"];for(const n of t){const r=document.createElementNS(wu,"path");r.setAttribute("d",n),e.appendChild(r)}return e}function cv(e={}){const t=e.maxPins??20;let n=[],r=new WeakMap,o=null,l=0,i=null,s=null,a=null,u=null;function p(){n=[],r=new WeakMap,o=null,l+=1,sn(),_(),f()}function v(){const c=document.querySelector("launch-kit-beacon");return(c==null?void 0:c.shadowRoot)??null}function h(){if(typeof window>"u")return e.accent??"#0ea5e9";if(e.accent)return e.accent;const c=document.querySelector("launch-kit-beacon");return c&&getComputedStyle(c).getPropertyValue("--beacon-accent").trim()||"#0ea5e9"}async function x(c){const m=v();if(!m)return;const g=h(),w=await c.requestMode("pickElement"),S=Yg({accent:g});for(const b of n){const N=r.get(b);N&&S.addPin(b.number,{target:N,selector:b.selector,fallbackRect:b.boundingRect})}try{let b=!0;for(;b&&!(n.length>=t);){const L=await tv({shadowRoot:m,accent:g}).promise;if(!L)break;const R=L.getBoundingClientRect(),K=await Zg({anchor:{x:R.left,y:R.bottom},pinNumber:n.length+1});if(K.cancelled==="all"){b=!1;break}if(K.cancelled==="pin")continue;const me=Bg(L),ae={number:n.length+1,...me,...K.note?{note:K.note}:{}};n.push(ae),r.set(ae,L),S.addPin(ae.number,{target:L,selector:me.selector,fallbackRect:me.boundingRect})}n.length>0?(S.setLoading("Capturing screenshot…"),await new Promise(N=>requestAnimationFrame(()=>N())),await y()):(o=null,sn())}finally{S.destroy(),w()}_(),f()}async function y(){const c=++l;if(n.length===0){o=null,sn(),f();return}const m=h();try{const g=Array.from(document.querySelectorAll("launch-kit-beacon")),w=await Zd({excludeHosts:g});try{if(c!==l)return;const S=n.map(L=>({number:L.number,selector:L.selector,boundingRect:L.boundingRect,...r.get(L)?{liveElement:r.get(L)}:{}})),b={w:w.width,h:w.height,dpr:w.pixelRatio},N=await Xd(w.dataUrl,S,b,m);if(c!==l)return;o=N,sv({dataUrl:N,mime:"image/jpeg"})}finally{w.dispose()}}catch{if(c!==l)return;o=null,sn()}c===l&&f()}function k(c){const m=n.findIndex(g=>g.number===c);m!==-1&&(n.splice(m,1),n.forEach((g,w)=>{g.number=w+1}),o=null,sn(),_(),f(),y())}function _(){if(i&&(i.textContent=`Pins (${n.length})`,i.style.display=n.length===0?"none":""),u&&(u.textContent=n.length===0?"Annotate elements":"Add another pin"),!!s){s.innerHTML="",s.style.display=n.length===0?"none":"";for(const c of n){const m=document.createElement("div");m.className="beacon-pin-item",m.dataset.pin=String(c.number);const g=document.createElement("span");g.className="beacon-pin-num",g.textContent=String(c.number);const w=document.createElement("div");w.className="beacon-pin-meta";const S=document.createElement("div");S.className="beacon-pin-selector",S.title=c.selector,S.textContent=c.selector||c.tagName;const b=document.createElement("input");b.type="text",b.className="beacon-pin-note-input",b.placeholder="Add a note (optional)",b.value=c.note??"",b.addEventListener("input",()=>{b.value.trim()?c.note=b.value:delete c.note}),w.appendChild(S),w.appendChild(b);const N=document.createElement("button");N.type="button",N.className="beacon-icon-btn",N.setAttribute("aria-label",`Remove pin ${c.number}`),N.appendChild(uv()),N.addEventListener("click",()=>k(c.number)),m.appendChild(g),m.appendChild(w),m.appendChild(N),s.appendChild(m)}}}function f(){a&&(o?(a.src=o,a.style.display="block"):(a.removeAttribute("src"),a.style.display="none"))}return{name:"domEle",setupOnce(c){return c.on("close",()=>p())},form(c){return{render:m=>(i=document.createElement("div"),i.className="beacon-pin-list-header",m.appendChild(i),s=document.createElement("div"),s.className="beacon-pin-list",m.appendChild(s),u=document.createElement("button"),u.type="button",u.className="beacon-btn secondary beacon-pin-annotate",u.addEventListener("click",()=>{x(c)}),m.appendChild(u),a=document.createElement("img"),a.className="beacon-thumb",a.alt="Annotated screenshot preview",a.style.display="none",m.appendChild(a),_(),f(),()=>{i=null,s=null,a=null,u=null})}},capture(){return n.length===0?null:{pins:n}}}}function dv(e){return!!e&&typeof e=="object"&&!("v"in e)&&"error"in e}function fv(e={}){return{name:"domSS",async capture(t){const n=av();if(n)return{dataUrl:n.dataUrl,mime:n.mime};const r=await t.requestMode("hide");try{await new Promise(i=>requestAnimationFrame(()=>i()));const o=Array.from(document.querySelectorAll("launch-kit-beacon")),l=await Zd({quality:e.quality,pixelRatio:e.pixelRatio,excludeHosts:o});try{const i=t.captured("domEle"),s=pv(i),a={w:l.width,h:l.height,dpr:l.pixelRatio},u=e.accent??hv();return{dataUrl:s.length>0?await Xd(l.dataUrl,s,a,u):l.dataUrl,mime:"image/jpeg"}}finally{l.dispose()}}finally{r()}}}}function pv(e){if(!e||dv(e))return[];const t=e.pins;return Array.isArray(t)?t.filter(n=>!!n&&typeof n=="object").map(n=>({number:Number(n.number)||0,selector:typeof n.selector=="string"?n.selector:void 0,boundingRect:n.boundingRect??{x:0,y:0,w:0,h:0}})):[]}function hv(){if(typeof window>"u")return"#0ea5e9";const e=document.querySelector("launch-kit-beacon");return e&&getComputedStyle(e).getPropertyValue("--beacon-accent").trim()||"#0ea5e9"}let Ie=null;const Fs={"plugin:error":new Set,"submit:success":new Set,"submit:error":new Set,ready:new Set};function mv(e){if(typeof window>"u")return;if(!e.endpoint)throw new Error("init: endpoint is required");Gd(),ef();const t={...yg(),...e.labels??{}},n=new AbortController,r=xv(e),o=e.position??"bottom-right",l=e.theme??"auto";rg(),yv(e,o,l);const i=document.querySelector(Cr);if(!i)throw new Error("init: failed to acquire <launch-kit-beacon> host");if(!i.shadow)throw new Error("init: host element shadow root not initialized");const s=xg(i.shadow),a=new vg(t,["bug","idea","ux","a11y"],{onSubmit:()=>{kv()},onClose:v=>{Bo("close",{}),v==="user"&&nf()}});i.shadow.appendChild(a.root),i.classList.add("beacon-no-capture");const u=ug(r),p={endpoint:e.endpoint,headers:e.headers,context:e.context,credentials:e.credentials??"omit",plugins:r,registry:u,dialog:a,overlayHost:s,hostElement:i,initAbort:n,labels:t,debug:!!e.debug||wv(),healthIndicator:e.healthIndicator??"never",position:o,theme:l,currentSubmit:null,capturedEntries:{},formValues:{},lifecycleHandlers:{open:new Set,close:new Set,beforeSubmit:new Set,afterSubmit:new Set},panelSources:[]};Ie=p,i.onTriggerClick=()=>Jd(),u.install(v=>tf(v),v=>Us(v)),sr("ready",{ready:!0}),p.debug&&console.info("[beacon] ready",p.endpoint)}function Jd(){const e=Ie;e&&(e.currentSubmit||(e.panelSources=e.plugins.map(t=>{if(!t.form)return null;const n=tf(t.name);let r;try{r=t.form(n)}catch(o){return Us({plugin:t.name,error:o instanceof Error?o:new Error(String(o)),at:"form"}),null}return{name:t.name,form:r,ctx:n}}).filter(t=>t!==null),e.dialog.installPluginPanels(e.panelSources,{get:(t,n)=>{var r;return(r=e.formValues[t])==null?void 0:r[n]},set:(t,n,r)=>{var l;const o=(l=e.formValues)[t]??(l[t]={});o[n]=r}}),e.dialog.open(),Bo("open",{})))}function ef(){var t;const e=Ie;if(e){e.initAbort.abort(),(t=e.currentSubmit)==null||t.abort(),e.registry.destroy(),sn();try{e.dialog.root.remove(),e.overlayHost.layer.remove()}catch{}e.hostElement.onTriggerClick=null,Ie=null}}function gv(e,t){return Fs[e].add(t),()=>vv(e,t)}function vv(e,t){Fs[e].delete(t)}function yv(e,t,n){let r=document.querySelector(Cr);if(!r){r=document.createElement(Cr),r.setAttribute("position",t),r.setAttribute("theme",n),t==="hidden"&&(r.style.position="absolute",r.style.left="-9999px"),(document.body??document.documentElement).appendChild(r);return}e.position!==void 0&&r.setAttribute("position",t),e.theme!==void 0&&r.setAttribute("theme",n)}function xv(e){return e.plugins?e.plugins:[]}function wv(){if(typeof window>"u")return!1;try{return new URLSearchParams(window.location.search).has("lsbeacon-debug")}catch{return!1}}function tf(e){const t=Ie;return sg(e,{getCaptured:r=>t==null?void 0:t.capturedEntries[r],getFormValues:r=>{var o;return t?(o=t.formValues)[r]??(o[r]={}):{}},getCaptureSignal:()=>{var r;return(r=t==null?void 0:t.currentSubmit)==null?void 0:r.signal},getInitSignal:()=>t.initAbort.signal,requestMode:async r=>t?t.dialog.requestMode(r):()=>{},overlay:r=>t?wg(t.overlayHost,r.render):()=>{},onLifecycle:(r,o)=>{if(!t)return()=>{};const l=t.lifecycleHandlers[r];return l.add(o),()=>l.delete(o)}})}function Bo(e,t){const n=Ie;if(n)for(const r of n.lifecycleHandlers[e])try{r(t)}catch(o){n.debug&&console.error("[beacon] lifecycle handler threw:",o)}}function sr(e,t){for(const n of Fs[e])try{n(t)}catch(r){Ie!=null&&Ie.debug&&console.error("[beacon] system handler threw:",r)}}function Us(e){sr("plugin:error",{plugin:e.plugin,error:e.error,at:e.at});const t=Ie;t&&((t.healthIndicator==="always"||t.healthIndicator==="dev"&&t.debug)&&t.hostElement.setHealthIndicator(!0),t.debug&&console.warn(`[beacon] plugin "${e.plugin}" ${e.at} failed:`,e.error))}function nf(){const e=Ie;e&&(e.dialog.resetState(),e.dialog.clearPluginPanels(),e.formValues={})}async function kv(){const e=Ie;if(!e||e.currentSubmit)return;const t=e.dialog.getDescription().trim();if(!t){e.dialog.setStatus("Description is required","error");return}e.currentSubmit=new AbortController,e.capturedEntries={},e.dialog.setSubmitting(!0),e.dialog.setStatus("Capturing…");let n=null;try{const r=await e.registry.capture(s=>e.capturedEntries[s],s=>Us(s));e.capturedEntries=r,n=bv(e,t,r);let o=null;if(Bo("beforeSubmit",{payload:n,cancel:s=>{o===null&&(o=s)}}),o!==null){e.dialog.setSubmitting(!1),e.dialog.setStatus(`Cancelled: ${o}`,"error");return}e.dialog.setStatus("Sending…");const i=await fg(e.endpoint,n,e.headers,e.currentSubmit.signal,e.credentials);Bo("afterSubmit",{payload:n,response:i}),e.dialog.setSubmitting(!1),i.ok?(sr("submit:success",{payload:n,response:i}),e.dialog.setSubmitSucceeded(!0),e.dialog.setStatus(e.labels.sentSuccess,"success"),window.setTimeout(()=>{Ie===e&&e.dialog.close("submitted"),nf()},1500)):(sr("submit:error",{payload:n,error:new Error(`HTTP ${i.status}`)}),e.dialog.setStatus(`Failed (${i.status})`,"error"))}catch(r){e.dialog.setSubmitting(!1);const o=r instanceof Error?r:new Error(String(r));n&&sr("submit:error",{payload:n,error:o}),e.dialog.setStatus(`Failed: ${o.message}`,"error")}finally{e.currentSubmit=null}}function bv(e,t,n){var l;const r=Sv(),o=(l=e.context)==null?void 0:l.call(e);return{description:t,severity:e.dialog.getSeverity(),metadata:r,...o?{context:o}:{},plugins:n}}function Sv(){const e=window.location.href,t=document.referrer,n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";return{url:e,...t?{referrer:t}:{},userAgent:navigator.userAgent,viewport:{w:window.innerWidth,h:window.innerHeight,dpr:window.devicePixelRatio||1},screen:{w:window.screen.width,h:window.screen.height},timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,locale:navigator.language,theme:n,capturedAt:new Date().toISOString()}}Gd();const rf="LaunchDeck";let fo=null;function Ev(){"Notification"in window&&Notification.permission==="default"&&Notification.requestPermission()}function Cv(e,t){if("Notification"in window&&Notification.permission==="granted"&&document.hidden){const n=e==="feedback"?t||"Claude is waiting for your feedback":"Claude sent new content";new Notification("LaunchDeck",{body:n,icon:"/favicon.ico"})}document.hidden&&Nv(e==="feedback")}function Nv(e){$i();let t=!0;const n=e?"● LaunchDeck — Feedback needed":"● LaunchDeck — New content";fo=setInterval(()=>{document.title=t?n:rf,t=!t},1e3)}function $i(){fo&&(clearInterval(fo),fo=null),document.title=rf}function jv({theme:e,setTheme:t}){const[n,r]=C.useState(!1),[o,l]=C.useState([]),[i,s]=C.useState(0),[a,u]=C.useState([]),[p,v]=C.useState(!1),[h,x]=C.useState([]),[y,k]=C.useState(null),[_,f]=C.useState([]),c=C.useRef(null),m=C.useRef(),g=C.useRef(e);g.current=e;const w=C.useCallback(async()=>{try{const T=await(await fetch("/api/sessions")).json();u(T.sessions)}catch{}},[]),S=C.useCallback(async()=>{try{const T=await(await fetch("/api/deck/courses")).json();x(T.courses),k($=>{var O;return $??((O=T.courses.find(ne=>ne.active))==null?void 0:O.name)??null})}catch{}},[]),b=C.useCallback(async P=>{l(T=>{const $=T.findIndex(O=>O.id===P);return $>=0&&s($),T});try{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}`);if(!T.ok)return;const $=await T.json();l(O=>{var je;const ne=O.findIndex(Le=>Le.id===$.id),Ne={id:$.id,mode:$.mode,blocks:$.blocks,prompt:$.prompt,selections:((je=O[ne])==null?void 0:je.selections)??{},version:$.version};if(ne>=0){const Le=[...O];return Le[ne]=Ne,s(ne),Le}return s(O.length),[...O,Ne]})}catch{}},[]),N=C.useCallback(async P=>{try{await fetch(`/api/sessions/${encodeURIComponent(P)}`,{method:"DELETE"}),await w()}catch{}},[w]),L=C.useCallback(async(P,T)=>{const $={};document.querySelectorAll("[data-block-index]").forEach(Ne=>{const je=Number(Ne.getAttribute("data-block-index"));if(!Number.isFinite(je))return;const Le=Ne.querySelector(".mermaid-container svg");Le&&($[je]=Le.outerHTML)});const O=await fetch(`/api/sessions/${encodeURIComponent(P)}/share`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...y?{course:y}:{},...Object.keys($).length?{svgByIndex:$}:{},...T!=null&&T.publicLink?{publicLink:!0}:{}})}),ne=await O.json().catch(()=>({}));if(!O.ok||!ne.ok)throw new Error(ne.error||`Share failed (${O.status})`);return await w(),{shareUrl:ne.shareUrl??void 0,linkWarning:ne.linkWarning}},[w,y]),R=C.useCallback(async P=>{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}/public-link`,{method:"POST"}),$=await T.json().catch(()=>({}));if(!T.ok||!$.ok||!$.shareUrl)throw new Error($.error||`Couldn't create public link (${T.status})`);return await w(),$.shareUrl},[w]),K=C.useCallback(async P=>{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}/public-link`,{method:"DELETE"}),$=await T.json().catch(()=>({}));if(!T.ok||!$.ok)throw new Error($.error||`Couldn't revoke public link (${T.status})`);await w()},[w]),me=C.useCallback(async P=>{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}/remote`,{method:"DELETE"}),$=await T.json().catch(()=>({}));if(!T.ok||!$.ok)throw new Error($.error||`Cloud delete failed (${T.status})`);await w()},[w]);C.useEffect(()=>{Ev()},[]);const ae=C.useRef(null),Fe=C.useRef(null);C.useEffect(()=>{mv({endpoint:"/api/feedback",position:"hidden",plugins:[bg(),cv(),fv()],context:()=>{const T=Fe.current;return T?{sessionId:T.id,...Object.keys(T.selections).length>0?{selections:T.selections}:{}}:{}},labels:{triggerButton:"Respond",drawerTitle:"Your response",send:"Submit",sending:"Submitting…",sentSuccess:"Sent",descriptionLabel:"Comment",descriptionPlaceholder:"Type your response, or use the picker to annotate…",severityLabel:"Verdict",severityBug:"Blocker",severityIdea:"Iterate",severityUx:"Note",severityA11y:"Approve"}});const P=gv("submit:success",()=>{var $;const T=($=Fe.current)==null?void 0:$.id;T&&(l(O=>O.map(ne=>ne.id===T?{...ne,mode:"show"}:ne)),$i())});return()=>{P(),ef()}},[]),C.useEffect(()=>{w(),S();const P=window.location.hash.replace(/^#/,"");P&&b(decodeURIComponent(P))},[w,S,b]),C.useEffect(()=>{const P=()=>{const T=window.location.hash.replace(/^#/,"");if(!T)return;const $=decodeURIComponent(T);ae.current!==$&&b($)};return window.addEventListener("hashchange",P),()=>window.removeEventListener("hashchange",P)},[b]);const I=C.useCallback(()=>{const P=c.current;!P||P.readyState!==WebSocket.OPEN||P.send(JSON.stringify({type:"active_session",session:ae.current,focused:!document.hidden}))},[]);C.useEffect(()=>{const P=o[i]??null;Fe.current=P,ae.current=(P==null?void 0:P.id)??null;const T=P?`#${encodeURIComponent(P.id)}`:"";if(window.location.hash!==T){const $=`${window.location.pathname}${window.location.search}${T}`;window.history.replaceState(null,"",$)}I()},[i,o,I]),C.useEffect(()=>{document.querySelectorAll("iframe").forEach(P=>{var T;try{(T=P.contentWindow)==null||T.postMessage({type:"deck-theme",theme:e},"*")}catch{}})},[e]),C.useEffect(()=>{const P=T=>{var $;if((($=T.data)==null?void 0:$.type)==="deck-iframe-ready"&&T.source)try{T.source.postMessage({type:"deck-theme",theme:g.current},"*")}catch{}};return window.addEventListener("message",P),()=>window.removeEventListener("message",P)},[]),C.useEffect(()=>{const P=()=>{$i(),I()},T=()=>I(),$=()=>{document.documentElement.classList.toggle("deck-hidden-tab",document.hidden),I()};return window.addEventListener("focus",P),window.addEventListener("blur",T),document.addEventListener("visibilitychange",$),()=>{window.removeEventListener("focus",P),window.removeEventListener("blur",T),document.removeEventListener("visibilitychange",$)}},[I]);const U=C.useCallback(()=>{const P=window.location.protocol==="https:"?"wss:":"ws:",T=new WebSocket(`${P}//${window.location.host}`);T.onopen=()=>{r(!0),I(),fetch("/api/active-session").then($=>$.json()).then($=>f($.discuss??[])).catch(()=>{})},T.onclose=()=>{r(!1),c.current=null,m.current=setTimeout(U,2e3)},T.onerror=()=>T.close(),T.onmessage=$=>{try{const O=JSON.parse($.data);if(O.type==="session"&&O.session){const ne={id:O.session,mode:O.mode??"show",blocks:O.blocks??[],prompt:O.prompt,selections:{},version:O.version??1};l(Ne=>{const je=Ne.findIndex(Le=>Le.id===O.session);if(je>=0){const Le=[...Ne];return Le[je]={...ne,version:O.version??Ne[je].version+1},Le}return[...Ne,ne]}),l(Ne=>{const je=Ne.findIndex(Le=>Le.id===O.session);return je>=0&&s(je),Ne}),Cv(O.mode??"show",O.prompt),w()}O.type==="clear_session"&&O.session&&(l(ne=>ne.filter(je=>je.id!==O.session)),s(ne=>Math.min(ne,Math.max(0,o.length-2))),w()),O.type==="clear_all"&&(l([]),s(0),w()),O.type==="discuss_session"&&f(O.sessions??[])}catch{}},c.current=T},[w,I]),de=C.useCallback(P=>{const T=c.current;!T||T.readyState!==WebSocket.OPEN||T.send(JSON.stringify({type:"discuss_session",session:P}))},[]),j=C.useCallback(()=>{const P=c.current;!P||P.readyState!==WebSocket.OPEN||P.send(JSON.stringify({type:"discuss_clear_all"}))},[]),A=C.useCallback(()=>{_.forEach(P=>b(P))},[_,b]);C.useEffect(()=>(U(),()=>{var P;clearTimeout(m.current),(P=c.current)==null||P.close()}),[U]);const M=o[i]??null,D=M?a.find(P=>P.id===M.id):void 0,Z=((D==null?void 0:D.shared)??!1)&&((D==null?void 0:D.course)==null||D.course===y),Ke=Z,Ce=Z&&((D==null?void 0:D.stale)??!1),bt=Z?D==null?void 0:D.shareUrl:void 0,Ye=C.useCallback(P=>{M&&l(T=>T.map($=>$.id===M.id?{...$,selections:{...$.selections,[P]:!$.selections[P]}}:$))},[M]),rt=C.useCallback(P=>{c.current&&c.current.send(JSON.stringify({type:"session_closed",session:P})),l(T=>T.filter(O=>O.id!==P)),s(T=>Math.min(T,Math.max(0,o.length-2)))},[o.length]),of=C.useCallback((P,T)=>{c.current&&c.current.send(JSON.stringify({type:"render_error",error:P,source:T}))},[]),lf=M?M.mode==="feedback"?"feedback":"delivered":"idle",sf=!p||!M;return d.jsxs("div",{className:"flex h-screen flex-col overflow-hidden bg-background text-foreground",children:[sf&&d.jsx(Uh,{connected:n,theme:e,setTheme:t,status:lf,availableSessions:a,onOpenSession:b,courses:h,selectedCourse:y,onSelectCourse:k,pinnedSessionIds:_,onOpenAllPinned:A,onClearPins:j}),d.jsx("div",{className:"flex flex-1 min-h-0 flex-col",children:d.jsx(Vm,{sessions:o,activeSessionIndex:i,onSessionChange:s,onCloseSession:rt,onToggleSelection:Ye,onMermaidError:of,theme:e,onRespond:Jd,onShareSession:L,isActiveSessionShared:Ke,isActiveSessionStale:Ce,activeSessionShareUrl:bt,onMintPublicLink:R,onRevokePublicLink:K,onDeleteSession:N,onDeleteRemote:me,immersive:p,onToggleImmersive:()=>v(P=>!P),discussSessionIds:_,onToggleDiscuss:de})})]})}function Lv({children:e}){const[t,n]=Zr.useState(()=>localStorage.getItem("launchdeck-theme")||"dark"),r=Zr.useCallback(o=>{n(o),localStorage.setItem("launchdeck-theme",o);const l=o==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o;document.documentElement.classList.toggle("dark",l==="dark")},[]);return Zr.useEffect(()=>{const o=t==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t;document.documentElement.classList.toggle("dark",o==="dark")},[t]),d.jsx(jv,{theme:t,setTheme:r})}Ol.createRoot(document.getElementById("root")).render(d.jsx(Zr.StrictMode,{children:d.jsx(Lv,{})}));export{Md as _,Rv as a,Tv as c,cf as g};
|
|
892
|
+
`;const r=240,o=160,l=Math.min(Math.max(8,e.anchor.x),window.innerWidth-r-8),i=Math.min(Math.max(8,e.anchor.y+12),window.innerHeight-o-8);n.style.left=`${l}px`,n.style.top=`${i}px`,document.body.appendChild(n);const s=n.querySelector("textarea");s.focus();function a(p){document.removeEventListener("keydown",u,!0),n.remove(),t(p)}function u(p){p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),a({cancelled:"all"}))}document.addEventListener("keydown",u,!0),n.addEventListener("click",p=>{var x;const h=(x=p.target.closest("[data-action]"))==null?void 0:x.getAttribute("data-action");if(h&&(p.stopPropagation(),h==="cancel"&&a({cancelled:"pin"}),h==="save")){const y=s.value.trim();a({...y?{note:y}:{},cancelled:!1})}}),s.addEventListener("keydown",p=>{if(p.key==="Enter"&&(p.metaKey||p.ctrlKey)){p.preventDefault();const v=s.value.trim();a({...v?{note:v}:{},cancelled:!1})}})})}const Jg="#0ea5e9";function ev(e,t){return/^#[0-9a-fA-F]{6}$/.test(e)?`${e}${t}`:e}function tv(e){const{shadowRoot:t,onHover:n}=e,r=e.accent??Jg,o=ev(r,"14"),l=document.createElement("div");l.style.cssText=["position: fixed","pointer-events: none","z-index: 2147483646",`border: 2px solid ${r}`,`background: ${o}`,"transition: all 60ms ease-out","box-sizing: border-box","border-radius: 2px"].join("; "),document.body.appendChild(l);const i=document.createElement("div");i.style.cssText=["position: fixed","pointer-events: none","z-index: 2147483647","background: #0f172a","color: #fff","font: 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace","padding: 3px 6px","border-radius: 3px","max-width: 280px","overflow: hidden","text-overflow: ellipsis","white-space: nowrap"].join("; "),document.body.appendChild(i);const s=document.body.style.cursor;document.body.style.cursor="crosshair";let a=!1,u=()=>{};const p=new Promise(g=>{u=g});function v(g){if(!g||!(g instanceof Node))return!1;let w=g;for(;w;){if(w===t||w===t.host)return!0;w=w.parentNode??w.host??null}return!1}function h(g){return g.tagName.includes("-")}function x(g,w){var b,N;l.style.display="none",i.style.display="none";const S=document.elementsFromPoint(g,w);l.style.display="block",i.style.display="block";for(const L of S){if(v(L))continue;let R=L,K=16;for(;R.shadowRoot&&!h(R)&&K-- >0;){const ae=(((N=(b=R.shadowRoot).elementsFromPoint)==null?void 0:N.call(b,g,w))??[]).find(Fe=>!v(Fe)&&Fe!==R);if(!ae)break;R=ae}return R}return null}function y(g){const w=g.getBoundingClientRect();l.style.left=`${w.left}px`,l.style.top=`${w.top}px`,l.style.width=`${w.width}px`,l.style.height=`${w.height}px`;const S=g.tagName.toLowerCase(),b=g.classList.length>0?"."+Array.from(g.classList).slice(0,2).join("."):"";i.textContent=S+b;const N=w.top-22;i.style.left=`${w.left}px`,i.style.top=`${N>=0?N:w.bottom+4}px`}function k(g){const w=x(g.clientX,g.clientY);w?(y(w),n==null||n(w)):(l.style.display="none",i.style.display="none",n==null||n(null))}function _(g){if(g.button!==0)return;g.preventDefault(),g.stopPropagation();const w=x(g.clientX,g.clientY);w&&m(w)}function f(g){g.preventDefault(),g.stopPropagation()}function c(g){g.key==="Escape"&&(g.preventDefault(),m(null))}function m(g){a||(a=!0,document.removeEventListener("mousemove",k,!0),document.removeEventListener("pointerdown",_,!0),document.removeEventListener("click",f,!0),document.removeEventListener("mouseup",f,!0),document.removeEventListener("keydown",c,!0),l.remove(),i.remove(),document.body.style.cursor=s,u(g))}return document.addEventListener("mousemove",k,!0),document.addEventListener("pointerdown",_,!0),document.addEventListener("click",f,!0),document.addEventListener("mouseup",f,!0),document.addEventListener("keydown",c,!0),{cancel:()=>m(null),promise:p}}let Il=null;async function nv(){return Il||(Il=await Md(()=>import("./index-6sdqbm2o.js"),[])),Il}const co="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkAAIAAAoAAv/lxKUAAAAASUVORK5CYII=";function yu(e,t){if(!e||e.startsWith("data:")||e.startsWith("blob:")||e.startsWith("/")||e.startsWith("#"))return!0;try{if(new URL(e,window.location.href).origin===window.location.origin)return!0}catch{return!1}return t==="anonymous"||t==="use-credentials"}function rv(){const e=[],t=[];return document.querySelectorAll("img").forEach(n=>{yu(n.src,n.crossOrigin)||(e.push({el:n,src:n.src}),n.src=co)}),document.querySelectorAll("image").forEach(n=>{const r=n,o=r.getAttribute("href"),l=r.getAttributeNS("http://www.w3.org/1999/xlink","href"),i=o||l||"";i&&!yu(i)&&(t.push({el:r,href:o,xlink:l}),o!==null&&r.setAttribute("href",co),l!==null&&r.setAttributeNS("http://www.w3.org/1999/xlink","href",co))}),()=>{for(const{el:n,src:r}of e)n.src=r;for(const{el:n,href:r,xlink:o}of t)r!==null&&n.setAttribute("href",r),o!==null&&n.setAttributeNS("http://www.w3.org/1999/xlink","href",o)}}function ov(){const e=[];document.querySelectorAll("*").forEach(l=>{const i=getComputedStyle(l),s=(i.overflowY==="auto"||i.overflowY==="scroll")&&l.scrollHeight>l.clientHeight,a=(i.overflowX==="auto"||i.overflowX==="scroll")&&l.scrollWidth>l.clientWidth;(s||a)&&e.push(l)});const t=window.scrollX,n=window.scrollY,r=e.map(l=>({el:l,scrollLeft:l.scrollLeft,scrollTop:l.scrollTop})),o=new Map;for(const l of e){let i=l;for(;i&&i!==document.documentElement.parentElement;)o.has(i)||o.set(i,i.style.cssText),i=i.parentElement}for(const l of o.keys())l.style.setProperty("overflow","visible","important"),l.style.setProperty("overflow-x","visible","important"),l.style.setProperty("overflow-y","visible","important"),l.style.setProperty("max-height","none","important"),l.style.setProperty("height","auto","important"),l.style.setProperty("min-height","0","important");return()=>{for(const[l,i]of o)l.style.cssText=i;for(const{el:l,scrollLeft:i,scrollTop:s}of r)l.scrollLeft=i,l.scrollTop=s;window.scrollTo(t,n)}}function lv(){const e=document.createElement("style");return e.setAttribute("data-beacon-capture",""),e.textContent="*,*::before,*::after{animation:none !important;transition:none !important;}",(document.head??document.documentElement).appendChild(e),()=>{e.remove()}}let xu=Promise.resolve();async function Zd(e={}){const t=xu;let n;xu=new Promise(r=>{n=r});try{return await t,await iv(e,n)}catch(r){throw n(),r}}async function iv(e,t){const{quality:n=.7,pixelRatio:r=Math.min(window.devicePixelRatio||1,2),excludeShadowRoot:o,excludeHosts:l,fullPage:i=!0}=e,s=await nv(),a=o||l!=null&&l.length?y=>{let k=y;for(;k;){if(o&&k===o.host||l&&k instanceof Element&&l.includes(k)||k instanceof Element&&k.classList.contains("beacon-no-capture"))return!1;k=k.parentNode}return!0}:void 0,u=rv(),p=i?ov():()=>{},v=lv();let h=!1;const x=()=>{if(!h){h=!0;try{v()}finally{try{p()}finally{try{u()}finally{t()}}}}};try{i&&await new Promise(c=>requestAnimationFrame(()=>c()));const y=document.documentElement,k=i?Math.max(y.scrollWidth,window.innerWidth):window.innerWidth,_=i?Math.max(y.scrollHeight,window.innerHeight):window.innerHeight;return{dataUrl:await s.toJpeg(y,{quality:n,pixelRatio:r,cacheBust:!0,...a?{filter:a}:{},imagePlaceholder:co,width:k,height:_,style:{transform:"none"}}),width:k,height:_,pixelRatio:r,dispose:x}}catch(y){throw x(),y}}let Bs=null;function sv(e){Bs=e}function av(){return Bs}function sn(){Bs=null}const wu="http://www.w3.org/2000/svg";function uv(){const e=document.createElementNS(wu,"svg");e.setAttribute("viewBox","0 0 24 24"),e.setAttribute("fill","none"),e.setAttribute("stroke","currentColor"),e.setAttribute("stroke-width","2"),e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("aria-hidden","true");const t=["M3 6h18","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6","M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"];for(const n of t){const r=document.createElementNS(wu,"path");r.setAttribute("d",n),e.appendChild(r)}return e}function cv(e={}){const t=e.maxPins??20;let n=[],r=new WeakMap,o=null,l=0,i=null,s=null,a=null,u=null;function p(){n=[],r=new WeakMap,o=null,l+=1,sn(),_(),f()}function v(){const c=document.querySelector("launch-kit-beacon");return(c==null?void 0:c.shadowRoot)??null}function h(){if(typeof window>"u")return e.accent??"#0ea5e9";if(e.accent)return e.accent;const c=document.querySelector("launch-kit-beacon");return c&&getComputedStyle(c).getPropertyValue("--beacon-accent").trim()||"#0ea5e9"}async function x(c){const m=v();if(!m)return;const g=h(),w=await c.requestMode("pickElement"),S=Yg({accent:g});for(const b of n){const N=r.get(b);N&&S.addPin(b.number,{target:N,selector:b.selector,fallbackRect:b.boundingRect})}try{let b=!0;for(;b&&!(n.length>=t);){const L=await tv({shadowRoot:m,accent:g}).promise;if(!L)break;const R=L.getBoundingClientRect(),K=await Zg({anchor:{x:R.left,y:R.bottom},pinNumber:n.length+1});if(K.cancelled==="all"){b=!1;break}if(K.cancelled==="pin")continue;const me=Bg(L),ae={number:n.length+1,...me,...K.note?{note:K.note}:{}};n.push(ae),r.set(ae,L),S.addPin(ae.number,{target:L,selector:me.selector,fallbackRect:me.boundingRect})}n.length>0?(S.setLoading("Capturing screenshot…"),await new Promise(N=>requestAnimationFrame(()=>N())),await y()):(o=null,sn())}finally{S.destroy(),w()}_(),f()}async function y(){const c=++l;if(n.length===0){o=null,sn(),f();return}const m=h();try{const g=Array.from(document.querySelectorAll("launch-kit-beacon")),w=await Zd({excludeHosts:g});try{if(c!==l)return;const S=n.map(L=>({number:L.number,selector:L.selector,boundingRect:L.boundingRect,...r.get(L)?{liveElement:r.get(L)}:{}})),b={w:w.width,h:w.height,dpr:w.pixelRatio},N=await Xd(w.dataUrl,S,b,m);if(c!==l)return;o=N,sv({dataUrl:N,mime:"image/jpeg"})}finally{w.dispose()}}catch{if(c!==l)return;o=null,sn()}c===l&&f()}function k(c){const m=n.findIndex(g=>g.number===c);m!==-1&&(n.splice(m,1),n.forEach((g,w)=>{g.number=w+1}),o=null,sn(),_(),f(),y())}function _(){if(i&&(i.textContent=`Pins (${n.length})`,i.style.display=n.length===0?"none":""),u&&(u.textContent=n.length===0?"Annotate elements":"Add another pin"),!!s){s.innerHTML="",s.style.display=n.length===0?"none":"";for(const c of n){const m=document.createElement("div");m.className="beacon-pin-item",m.dataset.pin=String(c.number);const g=document.createElement("span");g.className="beacon-pin-num",g.textContent=String(c.number);const w=document.createElement("div");w.className="beacon-pin-meta";const S=document.createElement("div");S.className="beacon-pin-selector",S.title=c.selector,S.textContent=c.selector||c.tagName;const b=document.createElement("input");b.type="text",b.className="beacon-pin-note-input",b.placeholder="Add a note (optional)",b.value=c.note??"",b.addEventListener("input",()=>{b.value.trim()?c.note=b.value:delete c.note}),w.appendChild(S),w.appendChild(b);const N=document.createElement("button");N.type="button",N.className="beacon-icon-btn",N.setAttribute("aria-label",`Remove pin ${c.number}`),N.appendChild(uv()),N.addEventListener("click",()=>k(c.number)),m.appendChild(g),m.appendChild(w),m.appendChild(N),s.appendChild(m)}}}function f(){a&&(o?(a.src=o,a.style.display="block"):(a.removeAttribute("src"),a.style.display="none"))}return{name:"domEle",setupOnce(c){return c.on("close",()=>p())},form(c){return{render:m=>(i=document.createElement("div"),i.className="beacon-pin-list-header",m.appendChild(i),s=document.createElement("div"),s.className="beacon-pin-list",m.appendChild(s),u=document.createElement("button"),u.type="button",u.className="beacon-btn secondary beacon-pin-annotate",u.addEventListener("click",()=>{x(c)}),m.appendChild(u),a=document.createElement("img"),a.className="beacon-thumb",a.alt="Annotated screenshot preview",a.style.display="none",m.appendChild(a),_(),f(),()=>{i=null,s=null,a=null,u=null})}},capture(){return n.length===0?null:{pins:n}}}}function dv(e){return!!e&&typeof e=="object"&&!("v"in e)&&"error"in e}function fv(e={}){return{name:"domSS",async capture(t){const n=av();if(n)return{dataUrl:n.dataUrl,mime:n.mime};const r=await t.requestMode("hide");try{await new Promise(i=>requestAnimationFrame(()=>i()));const o=Array.from(document.querySelectorAll("launch-kit-beacon")),l=await Zd({quality:e.quality,pixelRatio:e.pixelRatio,excludeHosts:o});try{const i=t.captured("domEle"),s=pv(i),a={w:l.width,h:l.height,dpr:l.pixelRatio},u=e.accent??hv();return{dataUrl:s.length>0?await Xd(l.dataUrl,s,a,u):l.dataUrl,mime:"image/jpeg"}}finally{l.dispose()}}finally{r()}}}}function pv(e){if(!e||dv(e))return[];const t=e.pins;return Array.isArray(t)?t.filter(n=>!!n&&typeof n=="object").map(n=>({number:Number(n.number)||0,selector:typeof n.selector=="string"?n.selector:void 0,boundingRect:n.boundingRect??{x:0,y:0,w:0,h:0}})):[]}function hv(){if(typeof window>"u")return"#0ea5e9";const e=document.querySelector("launch-kit-beacon");return e&&getComputedStyle(e).getPropertyValue("--beacon-accent").trim()||"#0ea5e9"}let Ie=null;const Fs={"plugin:error":new Set,"submit:success":new Set,"submit:error":new Set,ready:new Set};function mv(e){if(typeof window>"u")return;if(!e.endpoint)throw new Error("init: endpoint is required");Gd(),ef();const t={...yg(),...e.labels??{}},n=new AbortController,r=xv(e),o=e.position??"bottom-right",l=e.theme??"auto";rg(),yv(e,o,l);const i=document.querySelector(Cr);if(!i)throw new Error("init: failed to acquire <launch-kit-beacon> host");if(!i.shadow)throw new Error("init: host element shadow root not initialized");const s=xg(i.shadow),a=new vg(t,["bug","idea","ux","a11y"],{onSubmit:()=>{kv()},onClose:v=>{Bo("close",{}),v==="user"&&nf()}});i.shadow.appendChild(a.root),i.classList.add("beacon-no-capture");const u=ug(r),p={endpoint:e.endpoint,headers:e.headers,context:e.context,credentials:e.credentials??"omit",plugins:r,registry:u,dialog:a,overlayHost:s,hostElement:i,initAbort:n,labels:t,debug:!!e.debug||wv(),healthIndicator:e.healthIndicator??"never",position:o,theme:l,currentSubmit:null,capturedEntries:{},formValues:{},lifecycleHandlers:{open:new Set,close:new Set,beforeSubmit:new Set,afterSubmit:new Set},panelSources:[]};Ie=p,i.onTriggerClick=()=>Jd(),u.install(v=>tf(v),v=>Us(v)),sr("ready",{ready:!0}),p.debug&&console.info("[beacon] ready",p.endpoint)}function Jd(){const e=Ie;e&&(e.currentSubmit||(e.panelSources=e.plugins.map(t=>{if(!t.form)return null;const n=tf(t.name);let r;try{r=t.form(n)}catch(o){return Us({plugin:t.name,error:o instanceof Error?o:new Error(String(o)),at:"form"}),null}return{name:t.name,form:r,ctx:n}}).filter(t=>t!==null),e.dialog.installPluginPanels(e.panelSources,{get:(t,n)=>{var r;return(r=e.formValues[t])==null?void 0:r[n]},set:(t,n,r)=>{var l;const o=(l=e.formValues)[t]??(l[t]={});o[n]=r}}),e.dialog.open(),Bo("open",{})))}function ef(){var t;const e=Ie;if(e){e.initAbort.abort(),(t=e.currentSubmit)==null||t.abort(),e.registry.destroy(),sn();try{e.dialog.root.remove(),e.overlayHost.layer.remove()}catch{}e.hostElement.onTriggerClick=null,Ie=null}}function gv(e,t){return Fs[e].add(t),()=>vv(e,t)}function vv(e,t){Fs[e].delete(t)}function yv(e,t,n){let r=document.querySelector(Cr);if(!r){r=document.createElement(Cr),r.setAttribute("position",t),r.setAttribute("theme",n),t==="hidden"&&(r.style.position="absolute",r.style.left="-9999px"),(document.body??document.documentElement).appendChild(r);return}e.position!==void 0&&r.setAttribute("position",t),e.theme!==void 0&&r.setAttribute("theme",n)}function xv(e){return e.plugins?e.plugins:[]}function wv(){if(typeof window>"u")return!1;try{return new URLSearchParams(window.location.search).has("lsbeacon-debug")}catch{return!1}}function tf(e){const t=Ie;return sg(e,{getCaptured:r=>t==null?void 0:t.capturedEntries[r],getFormValues:r=>{var o;return t?(o=t.formValues)[r]??(o[r]={}):{}},getCaptureSignal:()=>{var r;return(r=t==null?void 0:t.currentSubmit)==null?void 0:r.signal},getInitSignal:()=>t.initAbort.signal,requestMode:async r=>t?t.dialog.requestMode(r):()=>{},overlay:r=>t?wg(t.overlayHost,r.render):()=>{},onLifecycle:(r,o)=>{if(!t)return()=>{};const l=t.lifecycleHandlers[r];return l.add(o),()=>l.delete(o)}})}function Bo(e,t){const n=Ie;if(n)for(const r of n.lifecycleHandlers[e])try{r(t)}catch(o){n.debug&&console.error("[beacon] lifecycle handler threw:",o)}}function sr(e,t){for(const n of Fs[e])try{n(t)}catch(r){Ie!=null&&Ie.debug&&console.error("[beacon] system handler threw:",r)}}function Us(e){sr("plugin:error",{plugin:e.plugin,error:e.error,at:e.at});const t=Ie;t&&((t.healthIndicator==="always"||t.healthIndicator==="dev"&&t.debug)&&t.hostElement.setHealthIndicator(!0),t.debug&&console.warn(`[beacon] plugin "${e.plugin}" ${e.at} failed:`,e.error))}function nf(){const e=Ie;e&&(e.dialog.resetState(),e.dialog.clearPluginPanels(),e.formValues={})}async function kv(){const e=Ie;if(!e||e.currentSubmit)return;const t=e.dialog.getDescription().trim();if(!t){e.dialog.setStatus("Description is required","error");return}e.currentSubmit=new AbortController,e.capturedEntries={},e.dialog.setSubmitting(!0),e.dialog.setStatus("Capturing…");let n=null;try{const r=await e.registry.capture(s=>e.capturedEntries[s],s=>Us(s));e.capturedEntries=r,n=bv(e,t,r);let o=null;if(Bo("beforeSubmit",{payload:n,cancel:s=>{o===null&&(o=s)}}),o!==null){e.dialog.setSubmitting(!1),e.dialog.setStatus(`Cancelled: ${o}`,"error");return}e.dialog.setStatus("Sending…");const i=await fg(e.endpoint,n,e.headers,e.currentSubmit.signal,e.credentials);Bo("afterSubmit",{payload:n,response:i}),e.dialog.setSubmitting(!1),i.ok?(sr("submit:success",{payload:n,response:i}),e.dialog.setSubmitSucceeded(!0),e.dialog.setStatus(e.labels.sentSuccess,"success"),window.setTimeout(()=>{Ie===e&&e.dialog.close("submitted"),nf()},1500)):(sr("submit:error",{payload:n,error:new Error(`HTTP ${i.status}`)}),e.dialog.setStatus(`Failed (${i.status})`,"error"))}catch(r){e.dialog.setSubmitting(!1);const o=r instanceof Error?r:new Error(String(r));n&&sr("submit:error",{payload:n,error:o}),e.dialog.setStatus(`Failed: ${o.message}`,"error")}finally{e.currentSubmit=null}}function bv(e,t,n){var l;const r=Sv(),o=(l=e.context)==null?void 0:l.call(e);return{description:t,severity:e.dialog.getSeverity(),metadata:r,...o?{context:o}:{},plugins:n}}function Sv(){const e=window.location.href,t=document.referrer,n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";return{url:e,...t?{referrer:t}:{},userAgent:navigator.userAgent,viewport:{w:window.innerWidth,h:window.innerHeight,dpr:window.devicePixelRatio||1},screen:{w:window.screen.width,h:window.screen.height},timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,locale:navigator.language,theme:n,capturedAt:new Date().toISOString()}}Gd();const rf="LaunchDeck";let fo=null;function Ev(){"Notification"in window&&Notification.permission==="default"&&Notification.requestPermission()}function Cv(e,t){if("Notification"in window&&Notification.permission==="granted"&&document.hidden){const n=e==="feedback"?t||"Claude is waiting for your feedback":"Claude sent new content";new Notification("LaunchDeck",{body:n,icon:"/favicon.ico"})}document.hidden&&Nv(e==="feedback")}function Nv(e){$i();let t=!0;const n=e?"● LaunchDeck — Feedback needed":"● LaunchDeck — New content";fo=setInterval(()=>{document.title=t?n:rf,t=!t},1e3)}function $i(){fo&&(clearInterval(fo),fo=null),document.title=rf}function jv({theme:e,setTheme:t}){const[n,r]=C.useState(!1),[o,l]=C.useState([]),[i,s]=C.useState(0),[a,u]=C.useState([]),[p,v]=C.useState(!1),[h,x]=C.useState([]),[y,k]=C.useState(null),[_,f]=C.useState([]),c=C.useRef(null),m=C.useRef(),g=C.useRef(e);g.current=e;const w=C.useCallback(async()=>{try{const T=await(await fetch("/api/sessions")).json();u(T.sessions)}catch{}},[]),S=C.useCallback(async()=>{try{const T=await(await fetch("/api/deck/courses")).json();x(T.courses),k($=>{var O;return $??((O=T.courses.find(ne=>ne.active))==null?void 0:O.name)??null})}catch{}},[]),b=C.useCallback(async P=>{l(T=>{const $=T.findIndex(O=>O.id===P);return $>=0&&s($),T});try{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}`);if(!T.ok)return;const $=await T.json();l(O=>{var je;const ne=O.findIndex(Le=>Le.id===$.id),Ne={id:$.id,mode:$.mode,blocks:$.blocks,prompt:$.prompt,selections:((je=O[ne])==null?void 0:je.selections)??{},version:$.version};if(ne>=0){const Le=[...O];return Le[ne]=Ne,s(ne),Le}return s(O.length),[...O,Ne]})}catch{}},[]),N=C.useCallback(async P=>{try{await fetch(`/api/sessions/${encodeURIComponent(P)}`,{method:"DELETE"}),await w()}catch{}},[w]),L=C.useCallback(async(P,T)=>{const $={};document.querySelectorAll("[data-block-index]").forEach(Ne=>{const je=Number(Ne.getAttribute("data-block-index"));if(!Number.isFinite(je))return;const Le=Ne.querySelector(".mermaid-container svg");Le&&($[je]=Le.outerHTML)});const O=await fetch(`/api/sessions/${encodeURIComponent(P)}/share`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...y?{course:y}:{},...Object.keys($).length?{svgByIndex:$}:{},...T!=null&&T.publicLink?{publicLink:!0}:{}})}),ne=await O.json().catch(()=>({}));if(!O.ok||!ne.ok)throw new Error(ne.error||`Share failed (${O.status})`);return await w(),{shareUrl:ne.shareUrl??void 0,linkWarning:ne.linkWarning}},[w,y]),R=C.useCallback(async P=>{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}/public-link`,{method:"POST"}),$=await T.json().catch(()=>({}));if(!T.ok||!$.ok||!$.shareUrl)throw new Error($.error||`Couldn't create public link (${T.status})`);return await w(),$.shareUrl},[w]),K=C.useCallback(async P=>{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}/public-link`,{method:"DELETE"}),$=await T.json().catch(()=>({}));if(!T.ok||!$.ok)throw new Error($.error||`Couldn't revoke public link (${T.status})`);await w()},[w]),me=C.useCallback(async P=>{const T=await fetch(`/api/sessions/${encodeURIComponent(P)}/remote`,{method:"DELETE"}),$=await T.json().catch(()=>({}));if(!T.ok||!$.ok)throw new Error($.error||`Cloud delete failed (${T.status})`);await w()},[w]);C.useEffect(()=>{Ev()},[]);const ae=C.useRef(null),Fe=C.useRef(null);C.useEffect(()=>{mv({endpoint:"/api/feedback",credentials:"same-origin",position:"hidden",plugins:[bg(),cv(),fv()],context:()=>{const T=Fe.current;return T?{sessionId:T.id,...Object.keys(T.selections).length>0?{selections:T.selections}:{}}:{}},labels:{triggerButton:"Respond",drawerTitle:"Your response",send:"Submit",sending:"Submitting…",sentSuccess:"Sent",descriptionLabel:"Comment",descriptionPlaceholder:"Type your response, or use the picker to annotate…",severityLabel:"Verdict",severityBug:"Blocker",severityIdea:"Iterate",severityUx:"Note",severityA11y:"Approve"}});const P=gv("submit:success",()=>{var $;const T=($=Fe.current)==null?void 0:$.id;T&&(l(O=>O.map(ne=>ne.id===T?{...ne,mode:"show"}:ne)),$i())});return()=>{P(),ef()}},[]),C.useEffect(()=>{w(),S();const P=window.location.hash.replace(/^#/,"");P&&b(decodeURIComponent(P))},[w,S,b]),C.useEffect(()=>{const P=()=>{const T=window.location.hash.replace(/^#/,"");if(!T)return;const $=decodeURIComponent(T);ae.current!==$&&b($)};return window.addEventListener("hashchange",P),()=>window.removeEventListener("hashchange",P)},[b]);const I=C.useCallback(()=>{const P=c.current;!P||P.readyState!==WebSocket.OPEN||P.send(JSON.stringify({type:"active_session",session:ae.current,focused:!document.hidden}))},[]);C.useEffect(()=>{const P=o[i]??null;Fe.current=P,ae.current=(P==null?void 0:P.id)??null;const T=P?`#${encodeURIComponent(P.id)}`:"";if(window.location.hash!==T){const $=`${window.location.pathname}${window.location.search}${T}`;window.history.replaceState(null,"",$)}I()},[i,o,I]),C.useEffect(()=>{document.querySelectorAll("iframe").forEach(P=>{var T;try{(T=P.contentWindow)==null||T.postMessage({type:"deck-theme",theme:e},"*")}catch{}})},[e]),C.useEffect(()=>{const P=T=>{var $;if((($=T.data)==null?void 0:$.type)==="deck-iframe-ready"&&T.source)try{T.source.postMessage({type:"deck-theme",theme:g.current},"*")}catch{}};return window.addEventListener("message",P),()=>window.removeEventListener("message",P)},[]),C.useEffect(()=>{const P=()=>{$i(),I()},T=()=>I(),$=()=>{document.documentElement.classList.toggle("deck-hidden-tab",document.hidden),I()};return window.addEventListener("focus",P),window.addEventListener("blur",T),document.addEventListener("visibilitychange",$),()=>{window.removeEventListener("focus",P),window.removeEventListener("blur",T),document.removeEventListener("visibilitychange",$)}},[I]);const U=C.useCallback(()=>{const P=window.location.protocol==="https:"?"wss:":"ws:",T=new WebSocket(`${P}//${window.location.host}`);T.onopen=()=>{r(!0),I(),fetch("/api/active-session").then($=>$.json()).then($=>f($.discuss??[])).catch(()=>{})},T.onclose=()=>{r(!1),c.current=null,m.current=setTimeout(U,2e3)},T.onerror=()=>T.close(),T.onmessage=$=>{try{const O=JSON.parse($.data);if(O.type==="session"&&O.session){const ne={id:O.session,mode:O.mode??"show",blocks:O.blocks??[],prompt:O.prompt,selections:{},version:O.version??1};l(Ne=>{const je=Ne.findIndex(Le=>Le.id===O.session);if(je>=0){const Le=[...Ne];return Le[je]={...ne,version:O.version??Ne[je].version+1},Le}return[...Ne,ne]}),l(Ne=>{const je=Ne.findIndex(Le=>Le.id===O.session);return je>=0&&s(je),Ne}),Cv(O.mode??"show",O.prompt),w()}O.type==="clear_session"&&O.session&&(l(ne=>ne.filter(je=>je.id!==O.session)),s(ne=>Math.min(ne,Math.max(0,o.length-2))),w()),O.type==="clear_all"&&(l([]),s(0),w()),O.type==="discuss_session"&&f(O.sessions??[])}catch{}},c.current=T},[w,I]),de=C.useCallback(P=>{const T=c.current;!T||T.readyState!==WebSocket.OPEN||T.send(JSON.stringify({type:"discuss_session",session:P}))},[]),j=C.useCallback(()=>{const P=c.current;!P||P.readyState!==WebSocket.OPEN||P.send(JSON.stringify({type:"discuss_clear_all"}))},[]),A=C.useCallback(()=>{_.forEach(P=>b(P))},[_,b]);C.useEffect(()=>(U(),()=>{var P;clearTimeout(m.current),(P=c.current)==null||P.close()}),[U]);const M=o[i]??null,D=M?a.find(P=>P.id===M.id):void 0,Z=((D==null?void 0:D.shared)??!1)&&((D==null?void 0:D.course)==null||D.course===y),Ke=Z,Ce=Z&&((D==null?void 0:D.stale)??!1),bt=Z?D==null?void 0:D.shareUrl:void 0,Ye=C.useCallback(P=>{M&&l(T=>T.map($=>$.id===M.id?{...$,selections:{...$.selections,[P]:!$.selections[P]}}:$))},[M]),rt=C.useCallback(P=>{c.current&&c.current.send(JSON.stringify({type:"session_closed",session:P})),l(T=>T.filter(O=>O.id!==P)),s(T=>Math.min(T,Math.max(0,o.length-2)))},[o.length]),of=C.useCallback((P,T)=>{c.current&&c.current.send(JSON.stringify({type:"render_error",error:P,source:T}))},[]),lf=M?M.mode==="feedback"?"feedback":"delivered":"idle",sf=!p||!M;return d.jsxs("div",{className:"flex h-screen flex-col overflow-hidden bg-background text-foreground",children:[sf&&d.jsx(Uh,{connected:n,theme:e,setTheme:t,status:lf,availableSessions:a,onOpenSession:b,courses:h,selectedCourse:y,onSelectCourse:k,pinnedSessionIds:_,onOpenAllPinned:A,onClearPins:j}),d.jsx("div",{className:"flex flex-1 min-h-0 flex-col",children:d.jsx(Vm,{sessions:o,activeSessionIndex:i,onSessionChange:s,onCloseSession:rt,onToggleSelection:Ye,onMermaidError:of,theme:e,onRespond:Jd,onShareSession:L,isActiveSessionShared:Ke,isActiveSessionStale:Ce,activeSessionShareUrl:bt,onMintPublicLink:R,onRevokePublicLink:K,onDeleteSession:N,onDeleteRemote:me,immersive:p,onToggleImmersive:()=>v(P=>!P),discussSessionIds:_,onToggleDiscuss:de})})]})}function Lv({children:e}){const[t,n]=Zr.useState(()=>localStorage.getItem("launchdeck-theme")||"dark"),r=Zr.useCallback(o=>{n(o),localStorage.setItem("launchdeck-theme",o);const l=o==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":o;document.documentElement.classList.toggle("dark",l==="dark")},[]);return Zr.useEffect(()=>{const o=t==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":t;document.documentElement.classList.toggle("dark",o==="dark")},[t]),d.jsx(jv,{theme:t,setTheme:r})}Ol.createRoot(document.getElementById("root")).render(d.jsx(Zr.StrictMode,{children:d.jsx(Lv,{})}));export{Md as _,Rv as a,Tv as c,cf as g};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as a,l as s,I as n,e as i}from"./mermaid.core-
|
|
1
|
+
import{_ as a,l as s,I as n,e as i}from"./mermaid.core-DYi3A-qK.js";import{p}from"./wardley-RL74JXVD-B0TVaOmp.js";import"./index-TFX8vtTG.js";import"./min-DstloRoL.js";import"./_baseUniq-C6w7kg8x.js";var g={parse:a(async r=>{const e=await p("info",r);s.debug(e)},"parse")},v={version:"11.14.0"},d=a(()=>v.version,"getVersion"),m={getVersion:d},c=a((r,e,o)=>{s.debug(`rendering info diagram
|
|
2
2
|
`+r);const t=n(e);i(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${o}`)},"draw"),l={draw:c},y={parser:g,db:m,renderer:l};export{y as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as o,c as ot,N as ut,I as dt,as as yt,z as ft,k as pt,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./mermaid.core-
|
|
1
|
+
import{_ as o,c as ot,N as ut,I as dt,as as yt,z as ft,k as pt,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./mermaid.core-DYi3A-qK.js";import"./index-TFX8vtTG.js";var tt=function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],B={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,p,n,v){var w=n.length-1;switch(p){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:f,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],p=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(C.yy[z]=this.yy[z]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function F(N){i.length=i.length-2*N,p.length=p.length-N,n.length=n.length-N}o(F,"popStack");function j(){var N;return N=u.pop()||b.lex()||E,typeof N!="number"&&(N instanceof Array&&(u=N,N=u.pop()),N=s.symbols_[N]||N),N}o(j,"lex");for(var A,W,P,K,H={},X,V,et,Y;;){if(W=i[i.length-1],this.defaultActions[W]?P=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=j()),P=v[W]&&v[W][A]),typeof P>"u"||!P.length||!P[0]){var Q="";Y=[];for(X in v[W])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
|
|
2
2
|
`+b.showPosition()+`
|
|
3
3
|
Expecting `+Y.join(", ")+", got '"+(this.terminals_[A]||A)+"'":Q="Parse error on line "+(I+1)+": Unexpected "+(A==E?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(Q,{text:b.match,token:this.terminals_[A]||A,line:b.yylineno,loc:T,expected:Y})}if(P[0]instanceof Array&&P.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+A);switch(P[0]){case 1:i.push(A),p.push(b.yytext),n.push(b.yylloc),i.push(P[1]),A=null,S=b.yyleng,w=b.yytext,I=b.yylineno,T=b.yylloc;break;case 2:if(V=this.productions_[P[1]][1],H.$=p[p.length-V],H._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},D&&(H._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),K=this.performAction.apply(H,[w,S,I,C.yy,P[1],p,n].concat(R)),typeof K<"u")return K;V&&(i=i.slice(0,-1*V*2),p=p.slice(0,-1*V),n=n.slice(0,-1*V)),i.push(this.productions_[P[1]][0]),p.push(H.$),n.push(H._$),et=v[i[i.length-2]][i[i.length-1]],i.push(et);break;case 3:return!0}}return!0},"parse")},O=function(){var M={EOF:1,parseError:o(function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},"parseError"),setInput:o(function(t,s){return this.yy=s||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:o(function(t){var s=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(t){this.unput(this.match.slice(t))},"less"),pastInput:o(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as gt}from"./chunk-FMBD7UC4-
|
|
1
|
+
import{g as gt}from"./chunk-FMBD7UC4-C-2idlFB.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-YZCP3GAM-Cd3pNBtQ.js";import{g as _t,s as vt,a as bt,b as wt,q as Tt,p as St,_ as s,c as R,d as G,e as $t,z as Mt}from"./mermaid.core-DYi3A-qK.js";import{d as it}from"./arc-Cx9pT3Nn.js";import"./index-TFX8vtTG.js";var U=function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var ft=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(pt,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var X="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?X="Parse error on line "+(C+1)+`:
|
|
2
2
|
`+_.showPosition()+`
|
|
3
3
|
Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":X="Parse error on line "+(C+1)+": Unexpected "+(b==D?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(X,{text:_.match,token:this.terminals_[b]||b,line:_.yylineno,loc:Y,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(T[0]){case 1:l.push(b),d.push(_.yytext),c.push(_.yylloc),l.push(T[1]),b=null,Q=_.yyleng,k=_.yytext,C=_.yylineno,Y=_.yylloc;break;case 2:if(M=this.productions_[T[1]][1],F.$=d[d.length-M],F._$={first_line:c[c.length-(M||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(M||1)].first_column,last_column:c[c.length-1].last_column},ft&&(F._$.range=[c[c.length-(M||1)].range[0],c[c.length-1].range[1]]),q=this.performAction.apply(F,[k,Q,C,I.yy,T[1],d,c].concat(dt)),typeof q<"u")return q;M&&(l=l.slice(0,-1*M*2),d=d.slice(0,-1*M),c=c.slice(0,-1*M)),l.push(this.productions_[T[1]][0]),d.push(F.$),c.push(F._$),et=v[l[l.length-2]][l[l.length-1]],l.push(et);break;case 3:return!0}}return!0},"parse")},m=function(){var h={EOF:1,parseError:s(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:s(function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:s(function(r){var n=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as c,l as te,c as W,I as fe,af as ye,ag as be,ah as me,Y as _e,G as K,i as F,t as ke,J as Ee,V as Se,W as le,X as ce}from"./mermaid.core-
|
|
1
|
+
import{_ as c,l as te,c as W,I as fe,af as ye,ag as be,ah as me,Y as _e,G as K,i as F,t as ke,J as Ee,V as Se,W as le,X as ce}from"./mermaid.core-DYi3A-qK.js";import{g as Ne}from"./chunk-FMBD7UC4-C-2idlFB.js";import"./index-TFX8vtTG.js";var $=function(){var t=c(function(_,s,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=s);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],i=[6,7,11],M=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],U=[1,35],j=[1,36],A=[1,6,7,11,13,16,17,20,23],H=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(s,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(i,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(i,[2,19]),t(i,[2,21],{15:30,24:M}),t(i,[2,22]),t(i,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:U,11:j}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(i,[2,16],{15:37,24:M}),t(i,[2,17]),t(i,[2,18]),t(i,[2,20],{24:H}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:U,11:j}),t(A,[2,11]),t(A,[2,12]),t(i,[2,15],{24:H}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(s,n){if(n.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=n,a}},"parseError"),parse:c(function(s){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,ie=0,ue=2,re=1,ge=e.slice.call(arguments,1),m=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);m.setInput(s,T.yy),T.yy.lexer=m,T.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var q=m.yylloc;e.push(q);var de=m.options&&m.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||m.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,Q,G={},X,I,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Z="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");m.showPosition?Z="Parse error on line "+(z+1)+`:
|
|
2
2
|
`+m.showPosition()+`
|
|
3
3
|
Expecting `+Y.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(E==re?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(Z,{text:m.match,token:this.terminals_[E]||E,line:m.yylineno,loc:q,expected:Y})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+E);switch(v[0]){case 1:a.push(E),u.push(m.yytext),e.push(m.yylloc),a.push(v[1]),E=null,ie=m.yyleng,l=m.yytext,z=m.yylineno,q=m.yylloc;break;case 2:if(I=this.productions_[v[1]][1],G.$=u[u.length-I],G._$={first_line:e[e.length-(I||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(I||1)].first_column,last_column:e[e.length-1].last_column},de&&(G._$.range=[e[e.length-(I||1)].range[0],e[e.length-1].range[1]]),Q=this.performAction.apply(G,[l,ie,z,T.yy,v[1],u,e].concat(ge)),typeof Q<"u")return Q;I&&(a=a.slice(0,-1*I*2),u=u.slice(0,-1*I),e=e.slice(0,-1*I)),a.push(this.productions_[v[1]][0]),u.push(G.$),e.push(G._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},y=function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(function(s,n){return this.yy=n||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:c(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var n=s.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:c(function(s){var n=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:c(function(s){this.unput(this.match.slice(s))},"less"),pastInput:c(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:c(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:c(function(){var s=this.pastInput(),n=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
|