mainflow 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.overlay[data-v-8755e91b]{z-index:50;background:#00000040;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette[data-v-8755e91b]{background:var(--popover);width:min(560px,92vw);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.search[data-v-8755e91b]{border:0;border-bottom:1px solid var(--border);background:0 0;outline:none;width:100%;padding:14px 16px;font-size:15px}.search[data-v-8755e91b]::placeholder{color:var(--muted-foreground)}ul[data-v-8755e91b]{max-height:50vh;margin:0;padding:6px;list-style:none;overflow:auto}li[data-v-8755e91b]{border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;gap:12px;padding:7px 10px;display:flex}li.active[data-v-8755e91b]{background:var(--accent)}.hint[data-v-8755e91b]{color:var(--muted-foreground);white-space:nowrap;font-size:12px}.label[data-v-8755e91b]{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.none[data-v-8755e91b]{color:var(--muted-foreground);cursor:default}.layout[data-v-e11778c9]{grid-template-columns:232px minmax(0,1fr);height:100vh;display:grid}.layout.collapsed[data-v-e11778c9]{grid-template-columns:56px minmax(0,1fr)}.sidebar[data-v-e11778c9]{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 8px;display:flex;overflow:auto}.brand[data-v-e11778c9]{justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 10px 8px;font-weight:600;display:flex}.collapsed .brand[data-v-e11778c9]{justify-content:center;padding-left:4px}.icon-toggle[data-v-e11778c9]{border-radius:var(--radius-md);width:28px;height:28px;color:var(--muted-foreground);background:0 0;border:0;place-items:center;display:grid}.icon-toggle[data-v-e11778c9]:hover{background:var(--accent);color:var(--foreground)}.search[data-v-e11778c9]{border:1px solid var(--input);background:var(--background);border-radius:var(--radius-md);height:32px;color:var(--muted-foreground);box-shadow:var(--shadow-xs,0 1px 2px 0 #0000000d);align-items:center;gap:8px;margin:0 0 10px;padding:0 8px;display:flex}.collapsed .search[data-v-e11778c9]{justify-content:center;padding:0}kbd[data-v-e11778c9]{font:11px var(--font-mono);color:var(--muted-foreground)}.nav[data-v-e11778c9]{border-radius:var(--radius-md);height:32px;color:var(--foreground);align-items:center;gap:8px;padding:0 8px;display:flex}.collapsed .nav[data-v-e11778c9]{justify-content:center;padding:0}.nav[data-v-e11778c9]:hover{background:var(--accent)}.nav.current[data-v-e11778c9]{background:var(--accent);font-weight:500}.nav.sub[data-v-e11778c9]{color:var(--muted-foreground);font-size:12px}.nav.sub.current[data-v-e11778c9]{color:var(--foreground)}.nav .count[data-v-e11778c9]{color:var(--muted-foreground);margin-left:auto;font-size:12px}.nav-label[data-v-e11778c9]{color:var(--muted-foreground);padding:14px 8px 4px;font-size:12px;font-weight:500}.main[data-v-e11778c9]{min-width:0;min-height:0;overflow:auto}.error[data-v-e11778c9]{border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:8px;margin:12px 16px;padding:8px 12px;display:flex}.menu-toggle[data-v-e11778c9]{display:none}@media (width<=720px){.layout[data-v-e11778c9],.layout.collapsed[data-v-e11778c9]{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.sidebar[data-v-e11778c9]{border-right:0;border-bottom:1px solid var(--border);padding:8px 12px;position:relative;overflow:visible}.brand[data-v-e11778c9]{padding:0}.collapse-toggle[data-v-e11778c9]{display:none}.menu-toggle[data-v-e11778c9]{display:grid}.sidebar[data-v-e11778c9]>:not(.brand){display:none}.sidebar.menu-open[data-v-e11778c9]>:not(.brand){display:flex}.sidebar.menu-open[data-v-e11778c9]{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}}.peek-panel[data-v-36a42a88]{width:var(--panel-width);max-width:calc(100% - 360px);animation:.2s ease-out peek-in-36a42a88;position:relative}.peek-panel.flex-1[data-v-36a42a88]{width:auto;max-width:none}@keyframes peek-in-36a42a88{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.peek-panel[data-v-36a42a88]{animation:none}}@media (width<=1100px){.peek-panel[data-v-36a42a88]{inset-block:0;z-index:20;width:min(var(--panel-width), 100%);max-width:none;position:absolute;right:0}}@media (width<=720px){.peek-panel[data-v-36a42a88]{width:100%}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:calc(var(--radius) * .6);--radius-md:calc(var(--radius) * .8);--radius-lg:var(--radius);--shadow-xs:0 1px 2px 0 #0000000d;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", sans-serif;--default-mono-font-family:ui-monospace, "SF Mono", Menlo, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Noto Sans TC,sans-serif;font-size:13px;line-height:var(--tw-leading,20px);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components{[data-peek]{cursor:pointer}[data-peek][aria-current=true]{background:var(--muted)}[data-peek].is-cursor{outline:2px solid var(--ring)}@supports (color:color-mix(in lab, red, red)){[data-peek].is-cursor{outline:2px solid color-mix(in srgb, var(--ring) 50%, transparent)}}[data-peek].is-cursor{outline-offset:-2px}.prose{overflow-wrap:anywhere;font-size:14px;line-height:1.7}.prose>*+*{margin-top:.75em}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:600;line-height:1.4}.prose h1{font-size:18px}.prose h2{margin-top:1.4em;font-size:15px}.prose h3,.prose h4{margin-top:1.2em;font-size:14px}.prose ul{padding-left:1.4em;list-style:outside}.prose ol{padding-left:1.4em;list-style:decimal}.prose li:has(>input[type=checkbox]){margin-left:-1.4em;list-style:none}.prose li>input[type=checkbox]{vertical-align:-2px;width:14px;height:14px;accent-color:var(--primary);margin:0 .5em 0 0}.prose a{text-decoration:underline;-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:4px}.prose a:hover{-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}.prose code{font-family:var(--font-mono);background:var(--muted);border-radius:var(--radius-sm);padding:1px 4px;font-size:12px}.prose pre{font-family:var(--font-mono);background:var(--muted);font-size:12px}@supports (color:color-mix(in lab, red, red)){.prose pre{background:color-mix(in srgb, var(--muted) 50%, transparent)}}.prose pre{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;overflow:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;font-size:13px}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:6px 12px 6px 0}.prose th{color:var(--muted-foreground);font-size:12px;font-weight:500}.prose blockquote{color:var(--muted-foreground);padding-left:1em}}@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-9{top:calc(var(--spacing) * 9)}.top-\[50\%\]{top:50%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[5\]{z-index:5}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-8{margin-block:calc(var(--spacing) * 8)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-12{margin-left:calc(var(--spacing) * 12)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[22px\]{height:22px}.h-\[60vh\]{height:60vh}.h-\[480px\]{height:480px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\(--reka-dropdown-menu-content-available-height\){max-height:var(--reka-dropdown-menu-content-available-height)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[calc\(100\%-1\.5rem\)\]{max-height:calc(100% - 1.5rem)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.w-2{width:calc(var(--spacing) * 2)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\(--reka-dropdown-menu-content-available-width\){max-width:var(--reka-dropdown-menu-content-available-width)}.max-w-0{max-width:0}.max-w-5xl{max-width:var(--container-5xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:0}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-\[8rem\]{min-width:8rem}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.origin-\(--reka-dropdown-menu-content-transform-origin\){transform-origin:var(--reka-dropdown-menu-content-transform-origin)}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-auto{cursor:auto}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[16px_96px_minmax\(0\,1fr\)\]{grid-template-columns:16px 96px minmax(0,1fr)}.grid-cols-\[72px_1fr\]{grid-template-columns:72px 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) * .6)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-background{border-color:var(--background)}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-ring{border-color:var(--ring)}.border-transparent{border-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-status-done{background-color:var(--status-done)}.bg-status-todo{background-color:var(--status-todo)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-0\.75{padding:calc(var(--spacing) * .75)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-body{font-size:13px;line-height:var(--tw-leading,20px)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-title{font-size:22px;line-height:var(--tw-leading,30px)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-priority-p0{color:var(--priority-p0)}.text-priority-p1{color:var(--priority-p1)}.text-priority-p3{color:var(--priority-p3)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-status-doing{color:var(--status-doing)}.text-status-done{color:var(--status-done)}.text-status-off{color:var(--status-off)}.text-status-todo{color:var(--status-todo)}.text-status-waiting{color:var(--status-waiting)}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.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,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-border{-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\]{transition-property:background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-\[120ms\]{--tw-duration:.12s;transition-duration:.12s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.paused{animation-play-state:paused}.running{animation-play-state:running}@media (hover:hover){.group-hover\/copy\:opacity-100:is(:where(.group\/copy):hover *),.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *),.group-hover\/sort\:opacity-100:is(:where(.group\/sort):hover *){opacity:1}}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:text-foreground\/60:is(:where(.group\/tabs-list)[data-variant=line] *){color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.group-data-\[variant\=line\]\/tabs-list\:text-foreground\/60:is(:where(.group\/tabs-list)[data-variant=line] *){color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.after\:-bottom-px:after{content:var(--tw-content);bottom:-1px}.after\:h-0\.5:after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-3:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklab\,var\(--accent\)_50\%\,var\(--card\)\)\]:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--accent\)_50\%\,var\(--card\)\)\]:hover{background-color:color-mix(in oklab,var(--accent) 50%,var(--card))}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary:hover,.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-foreground:hover{-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}.hover\:opacity-100:hover{opacity:1}.group-data-\[variant\=line\]\/tabs-list\:hover\:text-foreground:is(:where(.group\/tabs-list)[data-variant=line] *):hover{color:var(--foreground)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:text-foreground:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{color:var(--foreground)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.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-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\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.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-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\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media not all and (width>=1100px){.max-\[1100px\]\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (width>=900px){.min-\[900px\]\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1100px){.min-\[1100px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:w-full{width:100%}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=80rem){.xl\:inline{display:inline}}@container not (width>=48rem){.\@max-3xl\:hidden{display:none}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--input)}.dark\:bg-destructive\/60{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:text-muted-foreground{color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_tr\:last-child\]\:border-b tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing) * 4)}.\[\.border-t\]\:pt-4.border-t{padding-top:calc(var(--spacing) * 4)}:is(.\*\:\[\[role\=checkbox\]\]\:translate-y-0\.5>*)[role=checkbox]{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-warning>svg{color:var(--warning)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--mf-p-white:#fff;--mf-p-grey-50:#fcfcfc;--mf-p-grey-100:#f9f9f9;--mf-p-grey-200:#f0f0f0;--mf-p-grey-300:#e8e8e8;--mf-p-grey-700:#bbb;--mf-p-grey-800:#8d8d8d;--mf-p-grey-1000:#646464;--mf-p-grey-1100:#202020;--mf-p-brand:#d9a100;--mf-p-blue-700:#5eb0ef;--mf-p-blue-900:#0880ea;--mf-p-green-700:#5bb98c;--mf-p-green-900:#299764;--mf-p-orange-700:#ed8a5c;--mf-p-orange-900:#ed5f00;--mf-p-yellow-1000:#915930;--mf-p-red-800:#e5484d;--mf-p-red-1000:#c62a2f}@media (prefers-color-scheme:dark){:root{--mf-p-grey-50:#111;--mf-p-grey-100:#191919;--mf-p-grey-200:#222;--mf-p-grey-300:#2a2a2a;--mf-p-grey-700:#606060;--mf-p-grey-800:#6e6e6e;--mf-p-grey-1000:#b4b4b4;--mf-p-grey-1100:#eee;--mf-p-blue-700:#1276e2;--mf-p-blue-900:#3cabff;--mf-p-green-700:#2c8c5e;--mf-p-green-900:#35b979;--mf-p-orange-700:#c36522;--mf-p-orange-900:#ff802b;--mf-p-yellow-1000:#ffcc4d;--mf-p-red-1000:#ff8589}}:root{--radius:.625rem;--background:var(--mf-p-white);--foreground:var(--mf-p-grey-1100);--card:var(--mf-p-white);--card-foreground:var(--foreground);--popover:var(--mf-p-white);--popover-foreground:var(--foreground);--primary:var(--mf-p-grey-1100);--primary-foreground:var(--mf-p-white);--secondary:var(--mf-p-grey-200);--secondary-foreground:var(--foreground);--muted:var(--mf-p-grey-200);--muted-foreground:var(--mf-p-grey-1000);--accent:var(--mf-p-grey-200);--accent-foreground:var(--foreground);--destructive:var(--mf-p-red-1000);--border:var(--mf-p-grey-300);--input:var(--mf-p-grey-300);--ring:var(--mf-p-grey-800);--sidebar:var(--mf-p-grey-100);--brand:var(--mf-p-brand);--warning:var(--mf-p-yellow-1000);--status-todo:var(--mf-p-grey-800);--status-doing:var(--mf-p-blue-900);--status-waiting:var(--mf-p-orange-900);--status-done:var(--mf-p-green-900);--status-off:var(--mf-p-grey-700);--priority-p0:var(--mf-p-red-800);--priority-p1:var(--mf-p-orange-900);--priority-p2:var(--mf-p-blue-900);--priority-p3:var(--mf-p-grey-800)}@media (prefers-color-scheme:dark){:root{--background:var(--mf-p-grey-50);--card:var(--mf-p-grey-100);--popover:var(--mf-p-grey-100);--primary-foreground:var(--mf-p-grey-50);--status-doing:var(--mf-p-blue-700);--status-waiting:var(--mf-p-orange-700);--status-done:var(--mf-p-green-700)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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));filter:blur(var(--tw-enter-blur,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));filter:blur(var(--tw-exit-blur,0))}}
|
|
@@ -75,6 +75,6 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
75
75
|
`),class:`-mx-2 flex h-8 min-w-0 items-center gap-2 rounded-md px-2 transition-colors duration-[120ms] hover:bg-accent/50`},[e.label?(B(),V(`span`,Bk,j(e.label),1)):K(``,!0),W(qC,{type:N(NC)(e.id),status:e.status},null,8,[`type`,`status`]),U(`span`,Vk,j(e.id),1),e.title?(B(),V(`span`,Hk,j(e.title),1)):(B(),V(`span`,Uk,j(e.context),1)),U(`span`,Wk,[R(t.$slots,`default`),W(N(od),{class:`size-3.5`})])],8,zk))}}),Kk={class:`flex items-center gap-2`},qk=[`title`],Jk=I({__name:`LinksSection`,props:{self:{},links:{},mainline:{type:Boolean}},setup(e){let t=e,n={"depends-on":{out:`依賴`,in:`被依賴`},relates:{out:`相關`,in:`相關`},"split-from":{out:`拆自`,in:`拆出`}},r=e=>e.map(e=>`${e.from} → ${e.to}`).join(`
|
|
76
76
|
`),i=J(()=>{let e=Q.relations,n=t.mainline?e.mainlineDeps.map(e=>({from:e.from,to:e.to,state:e.state,note:r(e.edges)})):e.deps.filter(e=>e.from===t.self||e.to===t.self).map(e=>({from:e.from,to:e.to,state:e.state,note:e.note}));return[...n.filter(e=>e.from===t.self).map((e,t)=>({key:`dep-out-${t}`,ref:e.to,label:`依賴`,note:e.note,dep:e.state,...OC(e.to)})),...n.filter(e=>e.to===t.self).map((e,t)=>({key:`dep-in-${t}`,ref:e.from,label:`被依賴`,note:e.note,dep:e.state,...OC(e.from)}))]}),a=J(()=>[...i.value,...(t.links??[]).filter(e=>e.rel!==`depends-on`).map((e,t)=>({key:`out-${t}`,ref:e.to,label:n[e.rel]?.out??e.rel,note:e.note,...OC(e.to)})),...(Q.relations.backlinks[t.self]??[]).filter(e=>e.rel!==`depends-on`).map((e,t)=>{let r=$S(e.from)?OC(e.from):{...OC(e.from),...e.title?{title:e.title,status:e.status}:{}};return{key:`in-${t}`,ref:e.from,label:n[e.rel]?.in??e.rel,note:e.note,...r}})]);return Er(()=>AC(a.value.map(e=>e.ref))),(e,t)=>a.value.length?(B(),H(Nk,{key:0,title:`關聯`,count:a.value.length},{default:P(()=>[(B(!0),V(z,null,L(a.value,e=>(B(),V(z,{key:e.key},[N($S)(e.ref)?(B(),H(Gk,{key:0,id:e.ref,title:e.title,status:e.status,label:e.label,context:e.context,note:e.note},{default:P(()=>[e.dep?(B(),V(`span`,{key:0,class:k(N(GC)[e.dep].tone)},j(N(GC)[e.dep].label),3)):K(``,!0)]),_:2},1032,[`id`,`title`,`status`,`label`,`context`,`note`])):(B(),H(Rk,{key:1,peek:e.ref.split(`#`)[0],id:e.ref,title:e.title,status:e.status,label:e.label},{default:P(()=>[U(`span`,Kk,[e.note?(B(),V(`span`,{key:0,class:`block max-w-48 truncate`,title:e.note},j(e.note.split(`
|
|
77
77
|
`)[0]),9,qk)):K(``,!0),e.dep?(B(),V(`span`,{key:1,class:k(N(GC)[e.dep].tone)},j(N(GC)[e.dep].label),3)):K(``,!0)])]),_:2},1032,[`peek`,`id`,`title`,`status`,`label`]))],64))),128))]),_:1},8,[`count`])):K(``,!0)}}),Yk={class:`flex flex-col`},Xk=[`href`,`title`],Zk={key:3,class:`truncate`},Qk={key:5,class:`ml-auto shrink-0 text-xs text-muted-foreground`},$k=I({__name:`RefSources`,props:{refs:{}},setup(e){return(t,n)=>(B(),V(`ul`,Yk,[(B(!0),V(z,null,L(e.refs,e=>(B(),V(`li`,{key:e.title+(e.url??e.path),class:`-mx-2 flex min-h-8 min-w-0 items-center gap-2 rounded-md px-2 transition-colors hover:bg-accent/50`},[e.url?(B(),H(N(od),{key:0,class:`size-3.5 shrink-0 text-muted-foreground`})):(B(),H(N(ld),{key:1,class:`size-3.5 shrink-0 text-muted-foreground`})),e.url?(B(),V(`a`,{key:2,href:e.url,target:`_blank`,rel:`noreferrer`,class:`truncate underline decoration-border underline-offset-4 hover:decoration-foreground`,title:e.url},j(e.title),9,Xk)):(B(),V(`span`,Zk,j(e.title),1)),e.path?(B(),H(wk,{key:4,text:e.path,class:`min-w-0`},null,8,[`text`])):K(``,!0),e.date?(B(),V(`span`,Qk,j(e.date),1)):K(``,!0)]))),128))]))}}),eA=[`title`],tA=I({__name:`PriorityFlag`,props:{priority:{}},setup(e){let t={P0:`text-priority-p0`,P1:`text-priority-p1`,P3:`text-priority-p3`};return(n,r)=>e.priority&&e.priority!==`P2`?(B(),V(`span`,{key:0,class:`inline-flex items-center gap-1 text-xs text-muted-foreground`,title:`優先度 ${e.priority}`},[W(N(ud),{class:k([`size-3.5`,t[e.priority]]),fill:`currentColor`},null,8,[`class`]),G(j(e.priority),1)],8,eA)):K(``,!0)}}),nA=I({__name:`HoverCard`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},openDelay:{},closeDelay:{},enableTouch:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=Jh(e,t);return(e,t)=>(B(),H(N(ox),q({"data-slot":`hover-card`},N(n)),{default:P(t=>[R(e.$slots,`default`,A(Cs(t)))]),_:3},16))}}),rA=I({inheritAttrs:!1,__name:`HoverCardContent`,props:{forceMount:{type:Boolean},memoDependencies:{},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},dir:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(dx),null,{default:P(()=>[W(N(ux),q({"data-slot":`hover-card-content`},{...e.$attrs,...N(n)},{class:N(KS)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),iA=I({__name:`HoverCardTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(B(),H(N(fx),q({"data-slot":`hover-card-trigger`},t),{default:P(()=>[R(e.$slots,`default`)]),_:3},16))}}),aA={class:`shrink-0 font-mono text-[11px] text-muted-foreground`},oA={key:0,class:`truncate`},sA={class:`font-mono text-xs text-muted-foreground`},cA={key:0,class:`mt-1 font-semibold`},lA={class:`mt-2 flex items-center gap-2`},uA={key:1,class:`text-xs text-muted-foreground`},dA=I({__name:`RefLabel`,props:{id:{},title:{},status:{},context:{}},emits:[`open`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),H(N(nA),{"open-delay":300,"close-delay":100},{default:P(()=>[W(N(iA),{"as-child":``},{default:P(()=>[U(`button`,{type:`button`,class:`inline-flex h-6 max-w-full min-w-0 items-center gap-1.5 overflow-hidden rounded-md border bg-background px-2 text-xs transition-colors hover:bg-accent`,onClick:r[0]||=au(t=>n(`open`,e.id),[`stop`])},[W(qC,{type:N(NC)(e.id),status:e.status},null,8,[`type`,`status`]),U(`span`,aA,j(e.id),1),e.title?(B(),V(`span`,oA,j(e.title),1)):K(``,!0)])]),_:1}),W(N(rA),{class:`w-64`},{default:P(()=>[U(`p`,sA,j(e.id),1),e.title?(B(),V(`p`,cA,j(e.title),1)):K(``,!0),U(`div`,lA,[e.status?(B(),H(Hw,{key:0,status:e.status},null,8,[`status`])):K(``,!0),e.context?(B(),V(`span`,uA,j(e.context),1)):K(``,!0)])]),_:1})]),_:1}))}});function fA(e){let t=Gf(),n=J(()=>e?.()??String(t.params.m??``));return F(n,e=>{e&&gC(e).catch(e=>Q.error=e.message)},{immediate:!0}),{id:n,mainline:J(()=>Q.mainlines[n.value])}}var pA={key:0,class:`pb-8`},mA={key:0},hA={key:1,class:`tabular-nums`},gA={key:0,class:`text-xs`},_A={class:`text-xs`},vA={class:`text-xs`},yA={key:1,class:`text-sm text-muted-foreground`},bA={key:1,class:`px-5 text-muted-foreground`},xA=I({__name:`DecisionPeek`,props:{m:{},d:{}},setup(e){let t=e,{open:n}=oC(),{mainline:r}=fA(()=>t.m),i=J(()=>r.value?.decisions.find(e=>e.id===t.d)),a=J(()=>r.value?.decisions.find(e=>e.id===i.value?.supersededBy)),o=J(()=>r.value?.decisions.filter(e=>e.supersededBy===t.d)??[]),s=e=>n(e,{chain:!0}),c=e=>OC(e.split(`#`)[0]);return(n,l)=>i.value&&N(r)?(B(),V(`div`,pA,[W(kk,{id:`${e.m}/${i.value.id}`,title:i.value.title,type:`decision`,status:i.value.status},{notice:P(()=>[i.value.status===`proposed`?(B(),H(N(GT),{key:0,variant:`warning`},{default:P(()=>[W(N(Yu)),W(N(qT),null,{default:P(()=>[...l[0]||=[G(`還沒裁決`,-1)]]),_:1}),i.value.affects?.length?(B(),H(N(KT),{key:0,class:`text-xs text-muted-foreground`},{default:P(()=>[...l[1]||=[G(`在等它的項目列在「影響的項目」。`,-1)]]),_:1})):K(``,!0)]),_:1})):K(``,!0),a.value?(B(),H(N(GT),{key:1},{default:P(()=>[W(N(zd)),W(N(qT),null,{default:P(()=>[G(`已被 `+j(a.value.id)+` 取代`,1)]),_:1}),W(N(KT),{class:`text-xs text-muted-foreground`},{default:P(()=>[...l[2]||=[G(`以下保留當時的理由。新的決定見「取代關係」。`,-1)]]),_:1})]),_:1})):K(``,!0)]),default:P(()=>[W(Hw,{status:i.value.status},null,8,[`status`]),i.value.by?(B(),V(`span`,mA,j(N(UC)[i.value.by])+`決定`,1)):K(``,!0),i.value.decidedAt?(B(),V(`span`,hA,j(i.value.decidedAt.replace(`T`,` `)),1)):K(``,!0)]),_:1},8,[`id`,`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[i.value.reversible===void 0?K(``,!0):(B(),H($,{key:0,label:`能否改回`,icon:N(Xd)},{default:P(()=>[G(j(i.value.reversible?`可以低成本改回`:`不易改回`),1)]),_:1},8,[`icon`])),i.value.priority?(B(),H($,{key:1,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:i.value.priority},null,8,[`priority`]),i.value.priority===`P2`?(B(),V(`span`,gA,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),i.value.category?(B(),H($,{key:2,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(i.value.category),1)]),_:1},8,[`icon`])):K(``,!0),i.value.labels?.length?(B(),H($,{key:3,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(i.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,_A,j(i.value.created),1)]),_:1},8,[`icon`]),i.value.closedAt?(B(),H($,{key:4,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,vA,j(i.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),i.value.resolution?(B(),H($,{key:5,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(i.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),i.value.origin?(B(),H($,{key:6,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(i.value.origin),{onOpen:s}),null,16)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),i.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:i.value.body},null,8,[`source`])]),_:1})):K(``,!0),i.value.affects?.length?(B(),H(Nk,{key:1,title:`影響的項目`,count:i.value.affects.length},{default:P(()=>[(B(!0),V(z,null,L(i.value.affects,e=>(B(),H(Rk,q({key:e,peek:e.split(`#`)[0]},{ref_for:!0},c(e),{id:e}),{default:P(()=>[G(j(e.includes(`#`)?`checklist 項目`:``),1)]),_:2},1040,[`peek`,`id`]))),128))]),_:1},8,[`count`])):K(``,!0),W(Jk,{self:N(XS)(t.m,t.d),links:i.value.links},null,8,[`self`,`links`]),i.value.refs?.length?(B(),H(Nk,{key:2,title:`參考來源`,count:i.value.refs.length},{default:P(()=>[W($k,{refs:i.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`取代關係`},{default:P(()=>[a.value?(B(),H(Rk,{key:0,peek:N(XS)(e.m,a.value.id),label:`被取代為`,id:a.value.id,title:a.value.title,status:a.value.status},null,8,[`peek`,`id`,`title`,`status`])):K(``,!0),(B(!0),V(z,null,L(o.value,t=>(B(),H(Rk,{key:t.id,peek:N(XS)(e.m,t.id),label:`取代了`,id:t.id,title:t.title,status:t.status},null,8,[`peek`,`id`,`title`,`status`]))),128)),!a.value&&o.value.length===0?(B(),V(`p`,yA,`沒有取代關係。`)):K(``,!0)]),_:1})])):(B(),V(`p`,bA,`載入 `+j(e.m)+`/`+j(e.d)+`…`,1))}}),SA=`modulepreload`,CA=function(e){return`/`+e},wA={},TA=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=CA(t,n),t=s(t),t in wA)return;wA[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:SA,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},EA=`__mainflowVue`;function DA(e){return e.replace(/import\s*\{([^}]*)\}\s*from\s*['"]vue['"];?/g,(e,t)=>`const { ${t.split(`,`).map(e=>e.trim()).filter(Boolean).map(e=>e.replace(/\s+as\s+/,`: `)).join(`, `)} } = globalThis.${EA};`)}async function OA(e){let t=URL.createObjectURL(new Blob([DA(e)],{type:`text/javascript`}));try{return await TA(()=>import(t),[])}finally{URL.revokeObjectURL(t)}}async function kA(e,t){globalThis[EA]=xu;let{parse:n,compileScript:r,compileTemplate:i}=await TA(async()=>{let{parse:e,compileScript:t,compileTemplate:n}=await import(`./index.browser-C_4gp6WJ.js`);return{parse:e,compileScript:t,compileTemplate:n}},[]),{descriptor:a,errors:o}=n(e,{filename:t});if(o.length)throw Error(o.map(e=>e.message).join(`; `));for(let e of[a.script,a.scriptSetup])if(e?.lang&&e.lang!==`js`)throw Error(`<script lang="${e.lang}"> is not supported here; write the view in plain JavaScript`);if(a.styles.some(e=>e.scoped))throw Error(`<style scoped> is not supported here; use an unscoped <style> with a class prefix`);let s=`mf-${Math.abs([...t].reduce((e,t)=>e*31+t.charCodeAt(0)|0,7)).toString(36)}`,c={};if((a.script||a.scriptSetup)&&(c={...(await OA(r(a,{id:s,inlineTemplate:!0}).content)).default}),!a.scriptSetup&&a.template){let e=i({source:a.template.content,filename:t,id:s});if(e.errors.length)throw Error(e.errors.map(String).join(`; `));c.render=(await OA(e.code)).render}let l=a.styles.map(e=>e.content).join(`
|
|
78
|
-
`);if(l){let e=document.querySelector(`style[data-mainflow-view="${s}"]`);e||(e=document.createElement(`style`),e.dataset.mainflowView=s,document.head.append(e)),e.textContent=l}return c}var AA={key:0,class:`mb-2 text-sm`},jA=[`src`,`title`],MA=[`src`,`alt`],NA={key:6,class:`overflow-auto rounded-lg border bg-muted/50 p-3 font-mono text-xs leading-relaxed`},PA=I({__name:`CustomContent`,props:{path:{},ctx:{}},setup(e){let t=e,n=[`png`,`jpg`,`jpeg`,`gif`,`svg`,`webp`],r=e=>e.slice(e.lastIndexOf(`.`)+1).toLowerCase(),i=M(``),a=M(``),o=M(null),s=pn(null),c;async function l(){a.value=``,c?.(),c=void 0,s.value=null;let e=r(t.path);try{if(e===`vue`)s.value=await kA(await(await fetch(dC(t.path))).text(),t.path);else if(e===`js`||e===`mjs`){let e=await TA(()=>import(dC(t.path)),[]);if(!e.mount)throw Error(`the module must export mount(el, ctx)`);o.value&&(c=e.mount(o.value,t.ctx)??void 0)}else e!==`html`&&!n.includes(e)&&(i.value=await(await fetch(dC(t.path))).text())}catch(e){a.value=e.message}}return F(()=>[t.path,t.ctx],()=>void l(),{immediate:!0,flush:`post`}),na(()=>c?.()),(t,c)=>(B(),V(`div`,null,[a.value?(B(),V(`p`,AA,`無法渲染 `+j(e.path)+`:`+j(a.value),1)):K(``,!0),r(e.path)===`md`?(B(),H(bk,{key:1,source:i.value},null,8,[`source`])):r(e.path)===`html`?(B(),V(`iframe`,{key:2,src:N(dC)(e.path),sandbox:`allow-scripts allow-same-origin`,class:`h-[480px] w-full rounded-lg border bg-white`,title:e.path},null,8,jA)):n.includes(r(e.path))?(B(),V(`img`,{key:3,src:N(dC)(e.path),alt:e.path,class:`max-w-full rounded-lg border`},null,8,MA)):r(e.path)===`js`||r(e.path)===`mjs`?(B(),V(`div`,{key:4,ref_key:`mountPoint`,ref:o},null,512)):r(e.path)===`vue`&&s.value?(B(),H(fa(s.value),{key:5,ctx:e.ctx},null,8,[`ctx`])):r(e.path)===`vue`?K(``,!0):(B(),V(`pre`,NA,j(i.value),1))]))}}),FA=[`主脈絡文件`,`任務文件`,`產物`,`決策`,`自訂視圖`,`參考來源`],IA=e=>e.slice(e.lastIndexOf(`/`)+1),LA=e=>IA(e).includes(`.`)?IA(e).slice(IA(e).lastIndexOf(`.`)+1).toLowerCase():``;function RA(e){let t=t=>t.slice(e.dir.length+1),n=(e,n,r,i)=>({key:e,name:IA(e),kind:n,ext:LA(e),source:r,inMainline:t(e),updated:i}),r=(t,n)=>(t??[]).map(t=>({key:`${n??e.id}:${t.url??t.path}`,name:t.title,kind:`參考來源`,ext:t.url?``:LA(t.path??``),source:n,url:t.url,path:t.path,updated:t.date}));return[n(e.file,`主脈絡文件`,void 0,e.updated),...e.tasks.flatMap(e=>[n(e.file,`任務文件`,e.id,e.updated),...e.artifacts.map(t=>n(t,`產物`,e.id))]),...e.decisions.map(e=>n(e.file,`決策`,e.id,e.updated)),...e.views.map(e=>n(e,`自訂視圖`)),...r(e.refs),...e.tasks.flatMap(e=>r(e.refs,e.id))]}function zA(e,t){return RA(e).find(e=>e.key===t)?.kind??``}var BA={key:0,class:`pb-8`},VA=[`title`],HA=[`href`],UA={key:1,class:`px-5 text-muted-foreground`},WA=I({__name:`FilePeek`,props:{m:{},path:{}},setup(e){let t=e,{mainline:n}=fA(()=>t.m),r=J(()=>n.value?`${n.value.dir}/${t.path}`:``),i=J(()=>n.value?.tasks.find(e=>r.value.startsWith(`${e.dir}/`))),a=J(()=>n.value?.decisions.find(e=>e.file===r.value)),o=J(()=>n.value?zA(n.value,r.value):``),s=J(()=>({mainline:n.value,task:i.value})),c=J(()=>t.path.slice(t.path.lastIndexOf(`/`)+1));return(t,l)=>N(n)?(B(),V(`div`,BA,[W(kk,{title:c.value,mono:``,type:N(FC)(e.path,o.value||void 0)},{default:P(()=>[U(`span`,null,j(o.value),1),U(`span`,{class:`truncate font-mono`,title:e.path},j(e.path),9,VA),W(N(qS),{variant:`ghost`,size:`xs`,class:`ml-auto text-muted-foreground`,"as-child":``},{default:P(()=>[U(`a`,{href:N(dC)(r.value),target:`_blank`},[W(N(Gd)),l[0]||=G(`原始檔`,-1)],8,HA)]),_:1})]),_:1},8,[`title`,`type`]),W(Nk,null,{default:P(()=>[W(PA,{path:r.value,ctx:s.value},null,8,[`path`,`ctx`])]),_:1}),W(Nk,{title:`所屬`},{default:P(()=>[a.value?(B(),H(Rk,{key:0,peek:N(XS)(e.m,a.value.id),id:a.value.id,title:a.value.title,status:a.value.status},null,8,[`peek`,`id`,`title`,`status`])):i.value?(B(),H(Rk,{key:1,peek:N(YS)(e.m,i.value.id),id:i.value.id,title:i.value.title,status:i.value.status},null,8,[`peek`,`id`,`title`,`status`])):K(``,!0),W(Rk,{peek:e.m,id:e.m,title:N(n).title,status:N(n).status},null,8,[`peek`,`id`,`title`,`status`])]),_:1})])):(B(),V(`p`,UA,`載入 `+j(e.m)+`…`,1))}}),GA={key:0,class:`pb-8`},KA={class:`text-xs`},qA={class:`text-xs`},JA={class:`text-xs`},YA={key:1,class:`px-5 text-muted-foreground`},XA=I({__name:`FindingPeek`,props:{id:{}},setup(e){let t=e,{open:n}=oC(),r=J(()=>Q.findings.find(e=>e.id===t.id)),i=()=>r.value&&vC(()=>uC.archiveFinding(r.value.id,!r.value.archivedAt,r.value.version));return AC([r.value?.origin]),(a,o)=>r.value?(B(),V(`div`,GA,[W(kk,{id:r.value.id,title:r.value.title,type:`finding`,status:r.value.status},{default:P(()=>[W(Hw,{status:r.value.status},null,8,[`status`]),W(Dw,{archived:!!r.value.archivedAt,onToggle:i},null,8,[`archived`])]),_:1},8,[`id`,`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[r.value.appliesTo?.length?(B(),H($,{key:0,label:`適用範圍`,icon:N(pd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.appliesTo,e=>(B(),H(wk,{key:e,text:e},null,8,[`text`]))),128))]),_:1},8,[`icon`])):K(``,!0),r.value.reviewAfter?(B(),H($,{key:1,label:`重新確認`,icon:N(zd)},{default:P(()=>[W(Mw,{day:r.value.reviewAfter,ended:r.value.status===`obsolete`},null,8,[`day`,`ended`])]),_:1},8,[`icon`])):K(``,!0),r.value.origin?(B(),H($,{key:2,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(r.value.origin),{onOpen:o[0]||=e=>N(n)(e,{chain:!0})}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.category?(B(),H($,{key:3,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(r.value.category),1)]),_:1},8,[`icon`])):K(``,!0),r.value.labels?.length?(B(),H($,{key:4,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,KA,j(r.value.created),1)]),_:1},8,[`icon`]),r.value.closedAt?(B(),H($,{key:5,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,qA,j(r.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),r.value.resolution?(B(),H($,{key:6,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(r.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),r.value.archivedAt?(B(),H($,{key:7,label:`封存`,icon:N(Pu)},{default:P(()=>[U(`span`,JA,j(r.value.archivedAt),1)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),r.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:r.value.body},null,8,[`source`])]),_:1})):K(``,!0),W(Jk,{self:t.id,links:r.value.links},null,8,[`self`,`links`]),r.value.refs?.length?(B(),H(Nk,{key:1,title:`參考來源`,count:r.value.refs.length},{default:P(()=>[W($k,{refs:r.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0)])):(B(),V(`p`,YA,`找不到發現 `+j(e.id)+`。`,1))}}),ZA={key:0,class:`pb-8`},QA={key:0,class:`text-xs`},$A={class:`text-xs`},ej={class:`text-xs`},tj={class:`text-xs`},nj={key:1,class:`px-5 text-muted-foreground`},rj=I({__name:`IssuePeek`,props:{id:{}},setup(e){let t=e,{open:n}=oC(),r=J(()=>Q.issues.find(e=>e.id===t.id)),i=e=>n(e,{chain:!0}),a=()=>r.value&&vC(()=>uC.archiveIssue(r.value.id,!r.value.archivedAt,r.value.version));return AC([r.value?.origin,r.value?.plannedIn]),(n,o)=>r.value?(B(),V(`div`,ZA,[W(kk,{id:r.value.id,title:r.value.title,type:`issue`,status:r.value.status},{default:P(()=>[W(Hw,{status:r.value.status},null,8,[`status`]),W(Dw,{archived:!!r.value.archivedAt,onToggle:a},null,8,[`archived`])]),_:1},8,[`id`,`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[r.value.priority?(B(),H($,{key:0,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:r.value.priority},null,8,[`priority`]),r.value.priority===`P2`?(B(),V(`span`,QA,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),r.value.due?(B(),H($,{key:1,label:`到期`,icon:N(Hu)},{default:P(()=>[W(Mw,{day:r.value.due,ended:r.value.status===`closed`},null,8,[`day`,`ended`])]),_:1},8,[`icon`])):K(``,!0),r.value.plannedIn?(B(),H($,{key:2,label:`排入`,icon:N(Wu)},{default:P(()=>[W(dA,q(N(OC)(r.value.plannedIn),{onOpen:i}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.origin?(B(),H($,{key:3,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(r.value.origin),{onOpen:i}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.category?(B(),H($,{key:4,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(r.value.category),1)]),_:1},8,[`icon`])):K(``,!0),r.value.labels?.length?(B(),H($,{key:5,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,$A,j(r.value.created),1)]),_:1},8,[`icon`]),r.value.closedAt?(B(),H($,{key:6,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,ej,j(r.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),r.value.resolution?(B(),H($,{key:7,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(r.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),r.value.archivedAt?(B(),H($,{key:8,label:`封存`,icon:N(Pu)},{default:P(()=>[U(`span`,tj,j(r.value.archivedAt),1)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),r.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:r.value.body},null,8,[`source`])]),_:1})):K(``,!0),W(Jk,{self:t.id,links:r.value.links},null,8,[`self`,`links`]),r.value.refs?.length?(B(),H(Nk,{key:1,title:`參考來源`,count:r.value.refs.length},{default:P(()=>[W($k,{refs:r.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0)])):(B(),V(`p`,nj,`找不到待辦 `+j(e.id)+`。`,1))}}),ij=I({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean},unmountOnHide:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=Jh(e,t);return(e,t)=>(B(),H(N(kg),q({"data-slot":`dialog`},N(n)),{default:P(t=>[R(e.$slots,`default`,A(Cs(t)))]),_:3},16))}}),aj=I({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=ff(t,`class`);return(e,r)=>(B(),H(N(__),q({"data-slot":`dialog-overlay`},N(n),{class:N(KS)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),oj=I({inheritAttrs:!1,__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Jh(ff(n,`class`),r);return(t,r)=>(B(),H(N(y_),null,{default:P(()=>[W(aj),W(N(m_),q({"data-slot":`dialog-content`},{...t.$attrs,...N(i)},{class:N(KS)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,n.class)}),{default:P(()=>[R(t.$slots,`default`),e.showCloseButton?(B(),H(N(Ag),{key:0,"data-slot":`dialog-close`,class:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`},{default:P(()=>[W(N($d)),r[0]||=U(`span`,{class:`sr-only`},`Close`,-1)]),_:1})):K(``,!0)]),_:3},16,[`class`])]),_:3}))}}),sj=I({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(h_),q({"data-slot":`dialog-description`},N(n),{class:N(KS)(`text-muted-foreground text-sm`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),cj=I({__name:`DialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!1}},setup(e){let t=e;return(n,r)=>(B(),V(`div`,{"data-slot":`dialog-footer`,class:k(N(KS)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,t.class))},[R(n.$slots,`default`),e.showCloseButton?(B(),H(N(Ag),{key:0,"as-child":``},{default:P(()=>[W(N(qS),{variant:`outline`},{default:P(()=>[...r[0]||=[G(` Close `,-1)]]),_:1})]),_:1})):K(``,!0)],2))}}),lj=I({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(B(),V(`div`,{"data-slot":`dialog-header`,class:k(N(KS)(`flex flex-col gap-2 text-center sm:text-left`,t.class))},[R(e.$slots,`default`)],2))}}),uj=I({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(b_),q({"data-slot":`dialog-title`},N(n),{class:N(KS)(`text-lg leading-none font-semibold`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),dj={class:`break-words`},fj={key:2,class:`font-mono`},pj=I({__name:`EvidenceText`,props:{text:{}},setup(e){let t=e,{to:n}=oC(),r=/(\.mainflow\/mainlines\/(m\d{3})-[^/\s]+\/([^\s,、;))]+))|(\bm\d{3}\/[td]\d{3}(?:#c\d{3})?\b|\b[if]\d{3}\b)|(\b[0-9a-f]{7,40}\b)|([\w./-]+\.\w+:\d+(?:-\d+)?)/g,i=J(()=>{let e=[],n=0;for(let i of t.text.matchAll(r)){let r=i.index??0;r>n&&e.push({kind:`text`,value:t.text.slice(n,r)});let[a,o,s,c,l,u]=i;o&&!/[{}*]/.test(c)?e.push({kind:`file`,value:a,peek:QS(s,c)}):l?e.push({kind:`ref`,value:a,peek:l.split(`#`)[0]}):u&&/\d/.test(u)&&/[a-f]/.test(u)?e.push({kind:`commit`,value:a}):!o&&!u?e.push({kind:`code`,value:a}):e.push({kind:`text`,value:a}),n=r+a.length}return n<t.text.length&&e.push({kind:`text`,value:t.text.slice(n)}),e}),a=e=>e.slice(e.lastIndexOf(`/`)+1);return(e,t)=>(B(),V(`span`,dj,[(B(!0),V(z,null,L(i.value,(e,r)=>(B(),V(z,{key:r},[e.kind===`ref`||e.kind===`file`?(B(),H(N(bm),{key:0,to:N(n)(e.peek,{chain:!0}),class:`font-mono text-foreground underline decoration-border underline-offset-4 hover:decoration-foreground`,title:e.value,onClick:t[0]||=au(()=>{},[`stop`])},{default:P(()=>[G(j(e.kind===`file`?a(e.value):e.value),1)]),_:2},1032,[`to`,`title`])):e.kind===`commit`?(B(),H(wk,{key:1,text:e.value,class:`align-baseline`},null,8,[`text`])):e.kind===`code`?(B(),V(`code`,fj,j(e.value),1)):(B(),V(z,{key:3},[G(j(e.value),1)],64))],64))),128))]))}}),mj={class:`flex flex-col`},hj={key:1,class:`mt-0.5 grid size-4 shrink-0 place-items-center rounded-[4px] border border-dashed text-[10px] text-muted-foreground`,"aria-label":`已不需要`},gj={class:`flex min-w-0 flex-1 flex-col gap-0.5`},_j={class:`flex min-w-0 items-start gap-2`},vj=[`title`],yj={key:0,class:`text-xs text-muted-foreground`},bj={key:1,class:`text-xs text-muted-foreground`},xj={key:0},Sj={key:2,class:`text-xs text-muted-foreground`},Cj={key:3,class:`text-xs text-muted-foreground`},wj={key:1,class:`text-sm text-muted-foreground`},Tj={key:0,class:`text-xs text-muted-foreground`},Ej=I({__name:`Checklist`,props:{items:{},refPrefix:{},version:{}},setup(e){let t=e,n=J(()=>t.items.filter(e=>!e.done&&!e.dropped)),r=J(()=>t.items.filter(e=>e.done||e.dropped)),i=M(!1),a=J(()=>[...n.value,...i.value?r.value:[]]),o=M(null),s=M(``);async function c(e){if(e.done){await vC(()=>uC.check(`${t.refPrefix}${e.id}`,!1,void 0,t.version));return}o.value=e,s.value=``}async function l(){let e=o.value;e&&s.value.trim()&&await vC(()=>uC.check(`${t.refPrefix}${e.id}`,!0,s.value.trim(),t.version))&&(o.value=null)}return(t,n)=>(B(),V(z,null,[U(`ul`,mj,[(B(!0),V(z,null,L(a.value,e=>(B(),V(`li`,{key:e.id,class:`-mx-2 flex gap-3 rounded-md px-2 py-1.5 transition-colors duration-[120ms] hover:bg-accent/50`},[e.dropped?(B(),V(`span`,hj,`–`)):(B(),H(N(Nw),{key:0,"model-value":e.done||o.value?.id===e.id,class:`mt-0.5`,"aria-label":e.done?`取消勾選 ${e.id}`:`勾選 ${e.id}`,"onUpdate:modelValue":t=>c(e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])),U(`div`,gj,[U(`div`,_j,[W(wk,{text:e.id,class:`mt-px shrink-0`},null,8,[`text`]),U(`span`,{class:k([`min-w-0 flex-1`,{"text-muted-foreground":e.done,"text-muted-foreground line-through":e.dropped}])},j(e.text),3),(B(!0),V(z,null,L(e.serves??[],e=>(B(),V(`span`,{key:e,class:`shrink-0 rounded-sm bg-secondary px-1.5 font-mono text-[11px] text-muted-foreground`,title:`推進解決條件 ${e}`},j(e),9,vj))),128))]),e.doneWhen&&!e.done&&!e.dropped?(B(),V(`p`,yj,`完成定義:`+j(e.doneWhen),1)):K(``,!0),e.done&&e.evidence?(B(),V(`p`,bj,[W(pj,{text:e.evidence},null,8,[`text`]),e.doneAt?(B(),V(`span`,xj,` · `+j(e.doneAt),1)):K(``,!0)])):K(``,!0),e.dropped?(B(),V(`p`,Sj,[n[6]||=G(` 不需要了`,-1),e.supersededBy?(B(),V(z,{key:0},[n[4]||=G(`,由 `,-1),W(pj,{text:e.supersededBy},null,8,[`text`]),n[5]||=G(` 取代`,-1)],64)):K(``,!0),e.note?(B(),V(z,{key:1},[G(`:`+j(e.note),1)],64)):K(``,!0)])):e.note?(B(),V(`p`,Cj,j(e.note),1)):K(``,!0)])]))),128))]),r.value.length?(B(),H(N(qS),{key:0,variant:`ghost`,size:`xs`,class:`-ml-2 text-muted-foreground`,"aria-expanded":i.value,onClick:n[0]||=e=>i.value=!i.value},{default:P(()=>[i.value?(B(),H(N(Ku),{key:0})):(B(),H(N(Ju),{key:1})),G(j(i.value?`收起已完成`:`已完成 ${r.value.length} 個`),1)]),_:1},8,[`aria-expanded`])):K(``,!0),e.items.length===0?(B(),V(`p`,wj,`沒有項目`)):K(``,!0),W(N(ij),{open:o.value!==null,"onUpdate:open":n[3]||=e=>!e&&(o.value=null)},{default:P(()=>[W(N(oj),{class:`sm:max-w-lg`},{default:P(()=>[W(N(lj),null,{default:P(()=>[W(N(uj),null,{default:P(()=>[G(`勾選 `+j(o.value?.id),1)]),_:1}),W(N(sj),null,{default:P(()=>[G(j(o.value?.text),1)]),_:1})]),_:1}),U(`form`,{class:`flex flex-col gap-3`,onSubmit:au(l,[`prevent`])},[o.value?.doneWhen?(B(),V(`p`,Tj,`完成定義:`+j(o.value.doneWhen),1)):K(``,!0),W(N(ST),{modelValue:s.value,"onUpdate:modelValue":n[1]||=e=>s.value=e,autofocus:``,placeholder:`證據:commit、檔案:行號或指令輸出`,"aria-label":`證據`},null,8,[`modelValue`]),W(N(cj),null,{default:P(()=>[W(N(qS),{type:`button`,variant:`ghost`,onClick:n[2]||=e=>o.value=null},{default:P(()=>[...n[7]||=[G(`取消`,-1)]]),_:1}),W(N(qS),{type:`submit`,disabled:!s.value.trim()},{default:P(()=>[...n[8]||=[G(`勾選`,-1)]]),_:1},8,[`disabled`])]),_:1})],32)]),_:1})]),_:1},8,[`open`])],64))}}),Dj=[`title`],Oj={class:`h-1.5 w-14 overflow-hidden rounded-full bg-primary/20`},kj={class:`min-w-7 tabular-nums`},Aj=I({__name:`ProgressBar`,props:{done:{},total:{}},setup(e){let t=e,n=J(()=>t.total===0?0:Math.round(t.done/t.total*100));return(t,r)=>(B(),V(`span`,{class:`inline-flex items-center gap-2 text-xs text-muted-foreground`,title:`${e.done}/${e.total}`},[U(`span`,Oj,[U(`span`,{class:`block h-full rounded-full bg-primary`,style:he({width:`${n.value}%`})},null,4)]),U(`span`,kj,j(e.done)+`/`+j(e.total),1)],8,Dj))}}),jj={key:0,class:`text-xs`},Mj={class:`text-xs`},Nj={class:`text-xs`},Pj={class:`text-xs tabular-nums`},Fj={class:`text-xs`},Ij={class:`flex flex-col gap-2`},Lj={class:`mr-2 font-mono text-xs text-muted-foreground`},Rj={class:`w-full text-xs`},zj={class:`py-1.5 tabular-nums`},Bj={class:`text-right tabular-nums`},Vj={class:`text-right tabular-nums`},Hj={class:`pl-3 text-muted-foreground`},Uj={key:0,class:`text-sm text-muted-foreground`},Wj=I({__name:`MainlineBody`,props:{mainline:{},columns:{default:1}},setup(e){let t=e,{open:n}=oC(),r=J(()=>t.mainline),i=J(()=>r.value.tasks.flatMap(e=>e.checklist).filter(e=>!e.dropped)),a=J(()=>r.value.criteria.filter(e=>!e.dropped)),o=J(()=>r.value.decisions.filter(e=>e.status===`proposed`)),s=J(()=>Math.round((r.value.costs??[]).reduce((e,t)=>e+(t.actual??0),0)*100)/100),c=J(()=>r.value.budget?.unit??r.value.costs?.[0]?.unit??``),l=J(()=>Q.issues.filter(e=>!e.archivedAt&&(e.origin?.startsWith(`${r.value.id}/`)||e.plannedIn?.startsWith(`${r.value.id}/`)))),u=J(()=>DC(r.value.id)),d=[`done`,`dropped`];return(t,f)=>(B(),V(z,null,[W(Nk,null,{default:P(()=>[W(YT,{columns:e.columns},{default:P(()=>[W($,{label:`解決條件`,icon:N(Yd)},{default:P(()=>[W(Aj,{done:a.value.filter(e=>e.done).length,total:a.value.length},null,8,[`done`,`total`])]),_:1},8,[`icon`]),W($,{label:`checklist`,icon:N(Dd)},{default:P(()=>[W(Aj,{done:i.value.filter(e=>e.done).length,total:i.value.length},null,8,[`done`,`total`])]),_:1},8,[`icon`]),r.value.priority?(B(),H($,{key:0,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:r.value.priority},null,8,[`priority`]),r.value.priority===`P2`?(B(),V(`span`,jj,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),r.value.due?(B(),H($,{key:1,label:`到期`,icon:N(Hu)},{default:P(()=>[W(Mw,{day:r.value.due,ended:d.includes(r.value.status)},null,8,[`day`,`ended`])]),_:1},8,[`icon`])):K(``,!0),r.value.category?(B(),H($,{key:2,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(r.value.category),1)]),_:1},8,[`icon`])):K(``,!0),r.value.labels?.length?(B(),H($,{key:3,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,Mj,j(r.value.created),1)]),_:1},8,[`icon`]),r.value.closedAt?(B(),H($,{key:4,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,Nj,j(r.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),r.value.resolution?(B(),H($,{key:5,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(r.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),r.value.origin?(B(),H($,{key:6,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(r.value.origin),{onOpen:f[0]||=e=>N(n)(e,{chain:!0})}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.budget||r.value.costs?.length?(B(),H($,{key:7,label:`花費`,icon:N(Zd)},{default:P(()=>[U(`span`,Pj,[G(j(s.value),1),r.value.budget?(B(),V(z,{key:0},[G(` / `+j(r.value.budget.amount),1)],64)):K(``,!0),G(` `+j(c.value),1)])]),_:1},8,[`icon`])):K(``,!0),r.value.archivedAt?(B(),H($,{key:8,label:`封存`,icon:N(Pu)},{default:P(()=>[U(`span`,Fj,j(r.value.archivedAt),1)]),_:1},8,[`icon`])):K(``,!0)]),_:1},8,[`columns`])]),_:1}),o.value.length?(B(),H(Nk,{key:0,title:`待裁決的決策`,count:o.value.length},{default:P(()=>[U(`div`,Ij,[(B(!0),V(z,null,L(o.value,e=>(B(),H(N(GT),{key:e.id,variant:`warning`,class:`cursor-pointer transition-colors hover:bg-accent/50`,onClick:t=>N(n)(N(XS)(r.value.id,e.id),{chain:!0})},{default:P(()=>[W(N(Yu)),W(N(qT),null,{default:P(()=>[U(`span`,Lj,j(e.id),1),G(j(e.title),1)]),_:2},1024),e.affects?.length?(B(),H(N(KT),{key:0,class:`text-xs text-muted-foreground`},{default:P(()=>[G(`在等它的有 `+j(e.affects.join(`、`)),1)]),_:2},1024)):K(``,!0)]),_:2},1032,[`onClick`]))),128))])]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`解決條件`,count:r.value.criteria.length},{default:P(()=>[W(Ej,{items:r.value.criteria,"ref-prefix":`${r.value.id}#`,version:r.value.version},null,8,[`items`,`ref-prefix`,`version`])]),_:1},8,[`count`]),r.value.body.trim()?(B(),H(Nk,{key:1,title:`內文`},{default:P(()=>[W(bk,{source:r.value.body},null,8,[`source`])]),_:1})):K(``,!0),W(Jk,{self:r.value.id,links:r.value.links,mainline:``},null,8,[`self`,`links`]),r.value.refs?.length?(B(),H(Nk,{key:2,title:`參考來源`,count:r.value.refs.length},{default:P(()=>[W($k,{refs:r.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0),r.value.costs?.length?(B(),H(Nk,{key:3,title:`花費明細`,count:r.value.costs.length},{default:P(()=>[U(`table`,Rj,[f[1]||=U(`thead`,{class:`text-muted-foreground`},[U(`tr`,{class:`border-b`},[U(`th`,{class:`py-1.5 text-left font-medium`},`日期`),U(`th`,{class:`text-left font-medium`},`項目`),U(`th`,{class:`text-right font-medium`},`預估`),U(`th`,{class:`text-right font-medium`},`實際`),U(`th`,{class:`pl-3 text-left font-medium`},`備註`)])],-1),U(`tbody`,null,[(B(!0),V(z,null,L(r.value.costs,(e,t)=>(B(),V(`tr`,{key:t,class:`border-b`},[U(`td`,zj,j(e.date),1),U(`td`,null,j(e.item),1),U(`td`,Bj,j(e.estimate??``),1),U(`td`,Vj,j(e.actual??``),1),U(`td`,Hj,j(e.note??``),1)]))),128))])])]),_:1},8,[`count`])):K(``,!0),l.value.length?(B(),H(Nk,{key:4,title:`相關的待辦`,count:l.value.length},{default:P(()=>[(B(!0),V(z,null,L(l.value,e=>(B(),H(Rk,{key:e.id,peek:e.id,id:e.id,title:e.title,status:e.status},null,8,[`peek`,`id`,`title`,`status`]))),128))]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`推進過它的會話`,count:u.value.length},{default:P(()=>[(B(!0),V(z,null,L(u.value,({session:e,actions:t})=>(B(),H(Rk,{key:e.id,peek:N(ZS)(e.id),title:N(CC)(e),status:e.status},{default:P(()=>[G(j(t.length)+` 個行動`,1)]),_:2},1032,[`peek`,`title`,`status`]))),128)),u.value.length===0?(B(),V(`p`,Uj,`這台電腦上沒有推進它的會話。會話只記在本機。`)):K(``,!0)]),_:1},8,[`count`])],64))}}),Gj={class:`inline-flex h-7 items-center gap-1.5 rounded-full border bg-background px-2.5 text-xs font-medium transition-colors hover:bg-accent focus-within:ring-3 focus-within:ring-ring/50`},Kj=[`value`],qj=[`value`],Jj=I({__name:`StatusSelect`,props:{status:{},options:{}},emits:[`change`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`label`,Gj,[W(Vw,{status:e.status},null,8,[`status`]),U(`select`,{class:`cursor-pointer bg-transparent outline-none`,value:e.status,onChange:r[0]||=e=>n(`change`,e.target.value)},[(B(!0),V(z,null,L(e.options,e=>(B(),V(`option`,{key:e,value:e},j(N(VC)[e]??e),9,qj))),128))],40,Kj)]))}}),Yj={key:0,class:`pb-8`},Xj={key:1,class:`px-5 text-muted-foreground`},Zj=I({__name:`MainlinePeek`,props:{m:{}},setup(e){let t=e,{mainline:n}=fA(()=>t.m),r=e=>n.value&&vC(()=>uC.mainlineStatus(t.m,e,n.value.version)),i=e=>n.value&&vC(()=>uC.mainlineTitle(t.m,e,n.value.version)),a=()=>n.value&&vC(()=>uC.archive(t.m,!n.value.archivedAt,n.value.version));return(t,o)=>N(n)?(B(),V(`div`,Yj,[W(kk,{id:N(n).id,title:N(n).title,type:`mainline`,status:N(n).status,editable:``,onRename:i},{default:P(()=>[W(Jj,{status:N(n).status,options:N(IC),onChange:r},null,8,[`status`,`options`]),W(Dw,{archived:!!N(n).archivedAt,onToggle:a},null,8,[`archived`]),W(N(qS),{variant:`ghost`,size:`xs`,class:`ml-auto text-muted-foreground`,"as-child":``},{default:P(()=>[W(N(bm),{to:`/mainlines/${N(n).id}`},{default:P(()=>[W(N(Gd)),o[0]||=G(`開啟工作區`,-1)]),_:1},8,[`to`])]),_:1})]),_:1},8,[`id`,`title`,`status`]),W(Wj,{mainline:N(n)},null,8,[`mainline`])])):(B(),V(`p`,Xj,`載入 `+j(e.m)+`…`,1))}}),Qj=[`datetime`,`title`],$j=I({__name:`RelativeTime`,props:{at:{}},setup(e){let t=e,n=Ef({scheduler:e=>pf(e,6e4)}),r=new Intl.RelativeTimeFormat(`zh-TW`,{numeric:`auto`}),i=J(()=>new Date(t.at.length===10?`${t.at}T00:00`:t.at)),a=J(()=>{let e=Math.round((n.value.getTime()-i.value.getTime())/6e4);if(t.at.length===10){let n=Math.round(e/1440);return n>=0&&n<7?r.format(-n,`day`):t.at}return e<1?`剛剛`:e<60?r.format(-e,`minute`):e<1440?r.format(-Math.round(e/60),`hour`):e<10080?r.format(-Math.round(e/1440),`day`):t.at.slice(0,10)});return(t,n)=>(B(),V(`time`,{datetime:e.at,title:e.at.replace(`T`,` `)},j(a.value),9,Qj))}}),eM={key:0,class:`pb-8`},tM={key:0,class:`flex flex-col gap-1 text-sm`},nM={key:0},rM={key:0,class:`text-xs text-muted-foreground`},iM={key:1,class:`text-xs text-muted-foreground`},aM={class:`font-mono text-xs`},oM={class:`flex flex-col`},sM=[`aria-expanded`,`onClick`],cM={class:`mt-px shrink-0 font-mono text-xs text-muted-foreground`},lM={class:`min-w-0 flex-1`},uM={key:2,class:`shrink-0 text-xs text-muted-foreground tabular-nums`},dM={class:`flex flex-wrap gap-1 pb-1 pl-12`},fM={key:0,class:`pb-1 pl-12 text-xs text-muted-foreground`},pM={key:1,class:`mb-2 ml-12 flex flex-col gap-1.5 rounded-md border p-3 text-xs`},mM={key:0,class:`text-muted-foreground`},hM={key:1,class:`text-muted-foreground`},gM={key:2,class:`text-muted-foreground`},_M={class:`w-20 shrink-0 text-muted-foreground`},vM={key:0,class:`text-muted-foreground`},yM={key:1,class:`text-destructive`},bM={key:0,class:`text-sm text-muted-foreground`},xM={key:0,class:`text-sm text-muted-foreground`},SM={class:`w-20 text-muted-foreground`},CM={class:`tabular-nums`},wM={key:1,class:`px-5 text-muted-foreground`},TM=I({__name:`SessionPeek`,props:{id:{}},setup(e){let t=e,{open:n}=oC(),r=J(()=>Q.sessions.find(e=>e.id===t.id)),i=M(null),a=M(null),o=e=>Q.sessions.find(t=>t.id===e),s=J(()=>{let e=r.value;return e?[...e.delegatedFrom?[{label:`委派自`,id:e.delegatedFrom}]:[],...e.handoffFrom?[{label:`接手自`,id:e.handoffFrom}]:[],...Q.sessions.filter(t=>t.delegatedFrom===e.id).map(e=>({label:`委派給`,id:e.id})),...Q.sessions.filter(t=>t.handoffFrom===e.id).map(e=>({label:`交接給`,id:e.id}))]:[]});F(()=>[r.value?.id,r.value?.actions.length,r.value?.actions.map(e=>e.status).join()],async()=>{let e=r.value;if(e){for(let t of new Set(e.actions.flatMap(e=>e.serves.map(e=>fC(e).m))))gC(t).catch(e=>Q.error=e.message);i.value=await uC.trace(e.id).catch(()=>null)}},{immediate:!0});function c(e){let{m:t,t:n,item:r}=fC(e),i=Q.mainlines[t]?.tasks.find(e=>e.id===n);return{ref:e,task:`${t}/${n}`,text:i?.checklist.find(e=>e.id===r)?.text,done:i?.checklist.find(e=>e.id===r)?.done??!1}}let l=J(()=>[...new Set((r.value?.actions??[]).flatMap(e=>e.serves))].map(c));function u(e){return Object.keys(HC).map(t=>({kind:t,items:e.filter(e=>e.kind===t)})).filter(e=>e.items.length>0)}let d=e=>u(i.value?.byAction[e]??[]),f=e=>(i.value?.byAction[e]??[]).length,p=()=>r.value&&vC(()=>uC.archiveSession(r.value.id,!r.value.archivedAt));return(t,c)=>r.value?(B(),V(`div`,eM,[W(kk,{title:N(CC)(r.value),type:`session`,status:r.value.status},{notice:P(()=>[r.value.description||r.value.summary?(B(),V(`div`,tM,[r.value.description?(B(),V(`p`,nM,[G(j(r.value.description),1),r.value.depth===void 0?K(``,!0):(B(),V(`span`,rM,` · 深度 `+j(r.value.depth),1))])):K(``,!0),r.value.summary?(B(),V(`p`,iM,j(r.value.summary),1)):K(``,!0)])):K(``,!0)]),default:P(()=>[W(Hw,{status:r.value.status},null,8,[`status`]),W(wk,{text:r.value.id,label:r.value.id.slice(-8)},null,8,[`text`,`label`]),W(Dw,{archived:!!r.value.archivedAt,onToggle:p},null,8,[`archived`])]),_:1},8,[`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[W($,{label:`ID`,icon:N(xd)},{default:P(()=>[W(wk,{text:r.value.id},null,8,[`text`])]),_:1},8,[`icon`]),W($,{label:`agent`,icon:N(Bu)},{default:P(()=>[W(N(Tw),{variant:`secondary`},{default:P(()=>[G(j(r.value.agent),1)]),_:1})]),_:1},8,[`icon`]),i.value?.model??r.value.model?(B(),H($,{key:0,label:`模型`,icon:N(ad)},{default:P(()=>[U(`span`,aM,j(i.value?.model??r.value.model),1)]),_:1},8,[`icon`])):K(``,!0),r.value.effort?(B(),H($,{key:1,label:`effort`,icon:N(_d)},{default:P(()=>[G(j(r.value.effort),1)]),_:1},8,[`icon`])):K(``,!0),W($,{label:`開始`,icon:N(ed)},{default:P(()=>[W($j,{at:r.value.started,class:`text-xs`},null,8,[`at`])]),_:1},8,[`icon`]),r.value.branch?(B(),H($,{key:2,label:`分支`,icon:N(vd)},{default:P(()=>[W(wk,{text:r.value.branch},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),r.value.worktree?(B(),H($,{key:3,label:`worktree`,icon:N(md)},{default:P(()=>[W(wk,{text:r.value.worktree},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),W($,{label:`工作目錄`,icon:N(hd)},{default:P(()=>[W(wk,{text:r.value.cwd},null,8,[`text`])]),_:1},8,[`icon`]),r.value.transcript?(B(),H($,{key:4,label:`對話紀錄`,icon:N(Hd)},{default:P(()=>[W(wk,{text:r.value.transcript,class:`min-w-0`},null,8,[`text`]),W(N(qS),{variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground`,title:`在 Finder 顯示`,"aria-label":`在 Finder 顯示`,onClick:c[0]||=e=>N(vC)(()=>N(uC).reveal(r.value.transcript))},{default:P(()=>[W(N(fd))]),_:1})]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),W(Nk,{title:`行動佇列`,count:r.value.actions.length},{default:P(()=>[U(`ul`,oM,[(B(!0),V(z,null,L(r.value.actions,e=>(B(),V(`li`,{key:e.id,class:`flex flex-col`},[U(`button`,{type:`button`,class:`-mx-2 flex min-h-8 items-start gap-2 rounded-md px-2 py-1.5 text-left transition-colors duration-[120ms] hover:bg-accent/50`,"aria-expanded":a.value===e.id,onClick:t=>a.value=a.value===e.id?null:e.id},[a.value===e.id?(B(),H(N(Ku),{key:0,class:`mt-0.5 size-3.5 shrink-0 text-muted-foreground`})):(B(),H(N(Ju),{key:1,class:`mt-0.5 size-3.5 shrink-0 text-muted-foreground`})),W(Vw,{status:e.status,class:`mt-0.5 shrink-0`},null,8,[`status`]),U(`span`,cM,j(e.id),1),U(`span`,lM,j(e.do),1),e.startedAt?(B(),V(`span`,uM,j(e.startedAt.slice(11))+j(e.doneAt?`–${e.doneAt.slice(11)}`:``),1)):K(``,!0)],8,sM),U(`div`,dM,[(B(!0),V(z,null,L(e.serves,e=>(B(),H(dA,q({key:e},{ref_for:!0},N(OC)(e.split(`#`)[0]),{id:e,onOpen:()=>N(n)(e.split(`#`)[0],{chain:!0})}),null,16,[`id`,`onOpen`]))),128))]),e.note?(B(),V(`p`,fM,j(e.note),1)):K(``,!0),a.value===e.id?(B(),V(`div`,pM,[i.value?.available?e.startedAt?f(e.id)===0?(B(),V(`p`,gM,`這段時間沒有用到 skill、agent,也沒有載入 rule 或用 Read 讀檔。用 Bash 讀的檔不會出現在這裡。`)):K(``,!0):(B(),V(`p`,hM,`這個行動沒有開始時間,追溯不到它的時間窗。`)):(B(),V(`p`,mM,`沒有對話紀錄,無法追溯。`)),(B(!0),V(z,null,L(d(e.id),e=>(B(),V(`div`,{key:e.kind,class:`flex flex-wrap items-baseline gap-1.5`},[U(`span`,_M,j(N(HC)[e.kind]),1),(B(!0),V(z,null,L(e.items,e=>(B(),H(N(Tw),{key:e.path??e.name,variant:`secondary`,class:`font-mono font-normal`,title:e.path??e.name},{default:P(()=>[G(j(e.name),1),e.count>1?(B(),V(`span`,vM,`×`+j(e.count),1)):K(``,!0),e.detail?.startsWith(`blocked`)?(B(),V(`span`,yM,`擋下`)):K(``,!0)]),_:2},1032,[`title`]))),128))]))),128))])):K(``,!0)]))),128))]),r.value.actions.length===0?(B(),V(`p`,bM,`這個會話沒有行動。`)):K(``,!0)]),_:1},8,[`count`]),W(Nk,{title:`委派與接手`,count:s.value.length},{default:P(()=>[(B(!0),V(z,null,L(s.value,e=>(B(),H(Rk,{key:e.label+e.id,peek:N(ZS)(e.id),label:e.label,title:o(e.id)?N(CC)(o(e.id)):e.id,status:o(e.id)?.status},null,8,[`peek`,`label`,`title`,`status`]))),128)),s.value.length===0?(B(),V(`p`,xM,`沒有委派或交接關係。`)):K(``,!0)]),_:1},8,[`count`]),W(Nk,{title:`服務的 checklist 項目`,count:l.value.length},{default:P(()=>[(B(!0),V(z,null,L(l.value,e=>(B(),H(Rk,{key:e.ref,peek:e.task,id:e.ref,title:e.text},{default:P(()=>[W(N(Nw),{"model-value":e.done,disabled:``,class:`pointer-events-none`,"aria-label":e.done?`已完成`:`未完成`},null,8,[`model-value`,`aria-label`])]),_:2},1032,[`peek`,`id`,`title`]))),128))]),_:1},8,[`count`]),i.value?.unattributed.length?(B(),H(Nk,{key:0,title:`沒有對應行動的使用`,count:i.value.unattributed.length},{default:P(()=>[(B(!0),V(z,null,L(u(i.value.unattributed),e=>(B(),V(`div`,{key:e.kind,class:`flex min-h-7 items-center gap-2 text-xs`},[U(`span`,SM,j(N(HC)[e.kind]),1),U(`span`,CM,j(e.items.length),1)]))),128))]),_:1},8,[`count`])):K(``,!0)])):(B(),V(`p`,wM,`這台電腦上沒有會話 `+j(e.id)+`。`,1))}}),EM={key:0,class:`pb-8`},DM={class:`truncate`},OM={key:0,class:`flex items-center gap-1.5`},kM={key:1},AM={key:2},jM={key:0,class:`text-xs`},MM={class:`text-xs`},NM={class:`text-xs`},PM={class:`text-xs`},FM={class:`shrink-0 font-mono`},IM={class:`truncate`},LM={key:0,class:`text-sm text-muted-foreground`},RM={key:1,class:`px-5 text-muted-foreground`},zM=I({__name:`TaskPeek`,props:{m:{},t:{}},setup(e){let t=e,{open:n}=oC(),{mainline:r}=fA(()=>t.m),i=J(()=>r.value?.tasks.find(e=>e.id===t.t)),a=J(()=>r.value?.tasks.filter(e=>e.parent===t.t)??[]),o=J(()=>(i.value?.checklist??[]).filter(e=>!e.dropped)),s=J(()=>DC(t.m,t.t)),c=e=>n(e,{chain:!0}),l=J(()=>{let e=i.value?.blockedBy?.waitingFor,t=e?NC(e):void 0;return t&&t!==`session`&&!e.startsWith(`file:`)?e:void 0});Er(()=>AC([l.value]));let u=e=>e.slice((r.value?.dir.length??0)+1),d=e=>e.slice(e.lastIndexOf(`/`)+1),f=e=>i.value&&vC(()=>uC.taskStatus(t.m,t.t,e,i.value.version));return(n,p)=>i.value&&N(r)?(B(),V(`div`,EM,[W(kk,{id:`${e.m}/${i.value.id}`,title:i.value.title,type:N(MC)(i.value),status:i.value.status},{notice:P(()=>[i.value.blockedBy?(B(),H(N(GT),{key:0,variant:`warning`},{default:P(()=>[W(N(Zu)),W(N(qT),null,{default:P(()=>[G(`卡住:`+j(i.value.blockedBy.reason),1)]),_:1}),W(N(KT),{class:`text-xs text-muted-foreground`},{default:P(()=>[l.value?(B(),V(`p`,OM,[p[0]||=G(`等待 `,-1),W(dA,q(N(OC)(l.value),{onOpen:c}),null,16)])):i.value.blockedBy.waitingFor?(B(),V(`p`,kM,`等待 `+j(i.value.blockedBy.waitingFor),1)):K(``,!0),i.value.blockedBy.signal?(B(),V(`p`,AM,`看到「`+j(i.value.blockedBy.signal)+`」就可以繼續`,1)):K(``,!0)]),_:1})]),_:1})):K(``,!0)]),default:P(()=>[W(Jj,{status:i.value.status,options:N(LC),onChange:f},null,8,[`status`,`options`]),U(`span`,DM,j(N(r).title),1)]),_:1},8,[`id`,`title`,`type`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[W($,{label:`checklist`,icon:N(Dd)},{default:P(()=>[W(Aj,{done:o.value.filter(e=>e.done).length,total:o.value.length},null,8,[`done`,`total`])]),_:1},8,[`icon`]),i.value.priority?(B(),H($,{key:0,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:i.value.priority},null,8,[`priority`]),i.value.priority===`P2`?(B(),V(`span`,jM,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),W($,{label:`種類`,icon:N(Cd)},{default:P(()=>[G(j(i.value.kind===`branch`?`分支`:`階段`),1)]),_:1},8,[`icon`]),i.value.parent?(B(),H($,{key:1,label:`上層任務`,icon:N(id)},{default:P(()=>[W(dA,q(N(OC)(N(YS)(e.m,i.value.parent)),{onOpen:c}),null,16)]),_:1},8,[`icon`])):K(``,!0),i.value.repo?(B(),H($,{key:2,label:`倉庫`,icon:N(dd)},{default:P(()=>[G(j(i.value.repo),1)]),_:1},8,[`icon`])):K(``,!0),i.value.branch?(B(),H($,{key:3,label:`分支`,icon:N(vd)},{default:P(()=>[W(wk,{text:i.value.branch},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),i.value.base?(B(),H($,{key:4,label:`基底`,icon:N(yd)},{default:P(()=>[W(wk,{text:i.value.base},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),i.value.worktree?(B(),H($,{key:5,label:`worktree`,icon:N(md)},{default:P(()=>[W(wk,{text:i.value.worktree},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),i.value.merge?(B(),H($,{key:6,label:`合併狀態`,icon:N(bd)},{default:P(()=>[G(j(N(WC)[i.value.merge]),1)]),_:1},8,[`icon`])):K(``,!0),i.value.category?(B(),H($,{key:7,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(i.value.category),1)]),_:1},8,[`icon`])):K(``,!0),i.value.labels?.length?(B(),H($,{key:8,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(i.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,MM,j(i.value.created),1)]),_:1},8,[`icon`]),i.value.startedAt?(B(),H($,{key:9,label:`開始`,icon:N(Ld)},{default:P(()=>[U(`span`,NM,j(i.value.startedAt),1)]),_:1},8,[`icon`])):K(``,!0),i.value.closedAt?(B(),H($,{key:10,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,PM,j(i.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),i.value.resolution?(B(),H($,{key:11,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(i.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),i.value.origin?(B(),H($,{key:12,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(i.value.origin),{onOpen:c}),null,16)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),W(Nk,{title:`checklist`,count:i.value.checklist.length},{default:P(()=>[W(Ej,{items:i.value.checklist,"ref-prefix":`${e.m}/${i.value.id}#`,version:i.value.version},null,8,[`items`,`ref-prefix`,`version`])]),_:1},8,[`count`]),i.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:i.value.body},null,8,[`source`])]),_:1})):K(``,!0),i.value.artifacts.length?(B(),H(Nk,{key:1,title:`產物`,count:i.value.artifacts.length},{default:P(()=>[(B(!0),V(z,null,L(i.value.artifacts,t=>(B(),H(Rk,{key:t,peek:N(QS)(e.m,u(t)),title:d(t)},null,8,[`peek`,`title`]))),128))]),_:1},8,[`count`])):K(``,!0),a.value.length?(B(),H(Nk,{key:2,title:`子任務`,count:a.value.length},{default:P(()=>[(B(!0),V(z,null,L(a.value,t=>(B(),H(Rk,{key:t.id,peek:N(YS)(e.m,t.id),id:t.id,title:t.title,status:t.status},null,8,[`peek`,`id`,`title`,`status`]))),128))]),_:1},8,[`count`])):K(``,!0),W(Jk,{self:N(YS)(t.m,t.t),links:i.value.links},null,8,[`self`,`links`]),i.value.refs?.length?(B(),H(Nk,{key:3,title:`參考來源`,count:i.value.refs.length},{default:P(()=>[W($k,{refs:i.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`服務它的行動`,count:s.value.reduce((e,t)=>e+t.actions.length,0)},{default:P(()=>[(B(!0),V(z,null,L(s.value,({session:e,actions:t})=>(B(),V(z,{key:e.id},[W(Rk,{peek:N(ZS)(e.id),title:N(CC)(e),status:e.status},null,8,[`peek`,`title`,`status`]),(B(!0),V(z,null,L(t,e=>(B(),V(`div`,{key:e.id,class:`flex min-h-7 items-center gap-2 pl-6 text-xs text-muted-foreground`},[W(Vw,{status:e.status,class:`shrink-0`},null,8,[`status`]),U(`span`,FM,j(e.id),1),U(`span`,IM,j(e.do),1)]))),128))],64))),128)),s.value.length===0?(B(),V(`p`,LM,`這台電腦上沒有服務這個任務的行動。`)):K(``,!0)]),_:1},8,[`count`])])):(B(),V(`p`,RM,`載入 `+j(e.m)+`/`+j(e.t)+`…`,1))}}),BM={class:`flex h-11 shrink-0 items-center gap-1 px-2`},VM={key:0,class:`truncate text-xs text-muted-foreground`},HM={key:1,class:`ml-2 text-xs text-status-done`,role:`status`},UM={class:`min-h-0 flex-1 overflow-auto`},WM=`mainflow.panelWidth`,GM=360,KM=1200,qM=ew(I({__name:`PeekPanel`,setup(e){let{current:t,trail:n,full:r,back:i,close:a,toggleFull:o}=oC(),s=Number(cw(WM,880)),c=M(s>=GM&&s<=KM?s:880);function l(e){let t=e.clientX,n=c.value,r=e=>c.value=Math.min(KM,Math.max(GM,n+t-e.clientX)),i=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),lw(WM,c.value)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)}let u=J(()=>{let e=tC(n.value.at(-1));return e?e.kind===`session`?`會話`:e.kind===`file`?e.path.split(`/`).at(-1):e.ref:``});return(e,s)=>N(t)?(B(),V(`aside`,{key:0,class:k([`peek-panel flex min-h-0 flex-col border-l bg-background max-[1100px]:shadow-lg`,N(r)?`flex-1`:`shrink-0`]),style:he({"--panel-width":`${c.value}px`}),"aria-label":`預覽面板`},[N(r)?K(``,!0):(B(),V(`div`,{key:0,class:`absolute inset-y-0 -left-1 w-2 cursor-col-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`拖曳調整面板寬度`,onPointerdown:au(l,[`prevent`])},null,32)),U(`div`,BM,[W(N(qS),{variant:`ghost`,size:`icon-sm`,disabled:!N(n).length,"aria-label":`上一步`,title:`上一步`,onClick:N(i)},{default:P(()=>[W(N(qu))]),_:1},8,[`disabled`,`onClick`]),u.value?(B(),V(`span`,VM,`回到 `+j(u.value),1)):K(``,!0),N(nC)?(B(),V(`span`,HM,j(N(nC)),1)):K(``,!0),s[0]||=U(`span`,{class:`ml-auto`},null,-1),W(N(qS),{variant:`ghost`,size:`icon-sm`,"aria-label":N(r)?`回到並排`:`開成整頁`,title:N(r)?`回到並排`:`開成整頁`,onClick:N(o)},{default:P(()=>[N(r)?(B(),H(N(Nd),{key:0})):(B(),H(N(jd),{key:1}))]),_:1},8,[`aria-label`,`title`,`onClick`]),W(N(qS),{variant:`ghost`,size:`icon-sm`,"aria-label":`關閉(Esc)`,title:`關閉(Esc)`,onClick:N(a)},{default:P(()=>[W(N($d))]),_:1},8,[`onClick`])]),U(`div`,UM,[N(t).kind===`task`?(B(),H(zM,{key:N(t).ref,m:N(t).m,t:N(t).t},null,8,[`m`,`t`])):N(t).kind===`decision`?(B(),H(xA,{key:N(t).ref,m:N(t).m,d:N(t).d},null,8,[`m`,`d`])):N(t).kind===`file`?(B(),H(WA,{key:N(t).ref,m:N(t).m,path:N(t).path},null,8,[`m`,`path`])):N(t).kind===`session`?(B(),H(TM,{key:N(t).ref,id:N(t).id},null,8,[`id`])):N(t).kind===`mainline`?(B(),H(Zj,{key:N(t).ref,m:N(t).m},null,8,[`m`])):N(t).kind===`issue`?(B(),H(rj,{key:N(t).ref,id:N(t).id},null,8,[`id`])):(B(),H(XA,{key:N(t).ref,id:N(t).id},null,8,[`id`]))])],6)):K(``,!0)}}),[[`__scopeId`,`data-v-36a42a88`]]),JM={class:`flex h-full min-h-0 flex-col`},YM={class:`relative flex min-h-0 flex-1`},XM={class:`@container min-w-0 flex-1 overflow-auto`,"data-peek-list":``},ZM=I({__name:`PageLayout`,setup(e){let{current:t,full:n}=oC();return(e,r)=>(B(),V(`div`,JM,[R(e.$slots,`header`),U(`div`,YM,[yr(U(`div`,XM,[R(e.$slots,`default`)],512),[[Vc,!(N(t)&&N(n))]]),W(qM)])]))}}),QM=[`P0`,`P1`,`P2`,`P3`].map(e=>({value:e,label:e})),$M=e=>e??`P2`,eN=e=>e.map(e=>({value:e,label:VC[e]??e,status:e})),tN=e=>BC.has(e),nN=e=>({key:`status`,label:`狀態`,value:e=>e.status,order:e,groupLabel:e=>VC[e]??e,status:e=>e}),rN=`f.`,iN=e=>(Array.isArray(e)?e[0]:e)??void 0,aN=(e,t=``)=>{if(!e.startsWith(t))return!1;let n=e.slice(t.length);return n===`q`||n===`sort`||n===`archived`||n.startsWith(rN)},oN=e=>cw(e,{}),sN=(e,t)=>lw(e,{...oN(e),...t});function cN(e,t){let n=Gf(),r=Wf(),i=`mainflow.list.${e.key}`,a=e.queryPrefix??``,o=oN(i),s=e=>Object.fromEntries(Object.entries(e).filter(([e])=>aN(e,a)));function c(e){let t={...n.query};for(let[n,r]of Object.entries(e))r?t[n]=r:delete t[n];r.replace({query:t})}let l=o.query??{},u=Object.keys(l).length>0&&Object.keys(s(n.query)).length===0;$i(()=>u&&void r.replace({query:{...n.query,...l}}));let d=()=>`${n.path}?${iN(n.query.view)??``}`,f=d();F(()=>s(n.query),(e,t)=>{d()!==f||u&&t===void 0||sN(i,{query:e})},{deep:!0,immediate:!0});let p=J({get:()=>iN(n.query[`${a}q`])??``,set:e=>c({[`${a}q`]:e.trim()?e:void 0})}),m=J(()=>{let t=iN(n.query[`${a}sort`])??``,r=t.replace(/^-/,``),i=e.sorts.find(e=>e.key===r),o=i??e.sorts.find(t=>t.key===e.defaultSort);return{field:o,dir:i?t.startsWith(`-`)?`desc`:`asc`:o.dir,chosen:!!i}});function h(t,n){let r=e.sorts.find(e=>e.key===t);c({[`${a}sort`]:`${(n??r.dir)===`desc`?`-`:``}${t}`})}let g=()=>c({[`${a}sort`]:void 0});function _(e){let{field:t,dir:n,chosen:r}=m.value;!r||t.key!==e?h(e,`desc`):n===`desc`?h(e,`asc`):g()}let v=J(()=>Object.fromEntries(e.filters.map(e=>[e.key,(iN(n.query[`${a}${rN}${e.key}`])??``).split(`,`).filter(Boolean)])));function y(e,t){let n=v.value[e]??[],r=n.includes(t)?n.filter(e=>e!==t):[...n,t];c({[`${a}${rN}${e}`]:r.join(`,`)||void 0})}let b=e=>c({[`${a}${rN}${e}`]:void 0}),x=()=>c({[`${a}q`]:void 0,[`${a}archived`]:void 0,...Object.fromEntries(e.filters.map(e=>[`${a}${rN}${e.key}`,void 0]))}),S=J(()=>{let e=iN(n.query[`${a}archived`]);return e===`with`||e===`only`?e:`without`}),C=e=>c({[`${a}archived`]:e===`without`?void 0:e}),w=M(o.group!==void 0&&(o.group===``||e.groups.some(e=>e.key===o.group))?o.group:e.defaultGroup);function T(e){w.value=e,sN(i,{group:e})}function ee(e){if(e.options)return e.options;let n=new Set(t().flatMap(e.values));for(let t of v.value[e.key]??[])n.add(t);return[...n].sort().map(t=>({value:t,label:e.optionLabel?.(t)??t}))}let E=J(()=>{let n=p.value.toLowerCase().split(/\s+/).filter(Boolean);return t().filter(t=>{if(e.archived){let n=e.archived(t);if(S.value===`without`&&n||S.value===`only`&&!n)return!1}for(let n of e.filters){let e=v.value[n.key]??[];if(e.length>0&&!n.values(t).some(t=>e.includes(t)))return!1}let r=`${e.id(t)} ${e.text(t)}`.toLowerCase();return n.every(e=>r.includes(e))})}),te=J(()=>{let{field:t,dir:n}=m.value,r=n===`asc`?1:-1;return[...E.value].sort((n,i)=>{let a=t.value(n),o=t.value(i),s=Number(a==null||a===``)-Number(o==null||o===``);return s===0?((typeof a==`number`&&typeof o==`number`?a-o:String(a).localeCompare(String(o)))||e.id(n).localeCompare(e.id(i)))*r:s})}),ne=J(()=>{let t=e.groups.find(e=>e.key===w.value),n=S.value!==`only`&&!v.value.status?.length,r=t=>n?{items:t.filter(t=>!e.ended?.(t)),ended:t.filter(t=>e.ended?.(t))}:{items:t,ended:[]};if(!t)return te.value.length?[{key:``,label:``,...r(te.value)}]:[];let i=new Map;for(let e of te.value)i.set(t.value(e),[...i.get(t.value(e))??[],e]);let a=e=>t.order?.includes(e)?t.order.indexOf(e):1/0;return[...i.keys()].sort((e,n)=>a(e)-a(n)||e.localeCompare(n)*(t.latestFirst?-1:1)).map(e=>{let n=t.leader?.(e),a=i.get(e).filter(e=>e!==n);return{key:e,label:t.groupLabel?.(e)??e,status:t.status?.(e),leader:n,...r(a)}})}),re=Qt(new Set(o.collapsed??[])),D=Qt(new Set(o.endedFolded??[])),ie=(e,t,n)=>{e.has(t)?e.delete(t):e.add(t),sN(i,{[n]:[...e]})};return{spec:e,search:p,sort:m,setSort:h,clearSort:g,cycleSort:_,filters:v,toggleFilter:y,clearFilter:b,clearAll:x,activeFilters:J(()=>e.filters.flatMap(e=>(v.value[e.key]??[]).map(t=>({field:e,value:t,label:ee(e).find(e=>e.value===t)?.label??t})))),optionsOf:ee,archived:S,setArchived:C,group:w,setGroup:T,total:J(()=>t().length),shown:J(()=>E.value.length),sorted:te,groups:ne,collapsed:re,endedFolded:D,toggleCollapsed:e=>ie(re,e,`collapsed`),toggleEnded:e=>ie(D,e,`endedFolded`)}}function lN(e,t){let n=Qt(new Set),r=e.spec.id,i=t=>[...t.leader?[t.leader]:[],...t.items,...t.ended].flatMap(t=>[t,...(e.spec.nested?.(t)??[]).map(e=>e.item)]),a=J(()=>e.groups.value.flatMap(i));F(a,e=>{let t=new Set(e.map(r));for(let e of n)t.has(e)||n.delete(e)});let o=J(()=>a.value.filter(e=>n.has(r(e)))),s=e=>{let t=e.filter(e=>n.has(r(e))).length;return t===0?!1:t===e.length||`indeterminate`},c=(e,t)=>e.forEach(e=>t?n.add(r(e)):n.delete(r(e)));async function l(e){let i=o.value.filter(n=>t.archived(n)!==e).map(r);i.length&&await vC(async()=>{let n=await uC.archiveMany(t.kind,i,e);if(n.failed.length)throw Error(`${n.failed.length} 個沒有${e?`封存`:`取消封存`}:${n.failed.map(e=>`${e.id}(${e.error})`).join(`、`)}`)})&&n.clear()}return{selected:o,active:J(()=>o.value.length>0),all:J(()=>s(a.value)),groupChecked:e=>s(i(e)),has:e=>n.has(r(e)),toggle:(e,t)=>c([e],t),setAll:e=>c(a.value,e),setGroup:(e,t)=>c(i(e),t),clear:()=>n.clear(),archivable:J(()=>o.value.filter(e=>!t.archived(e)).length),restorable:J(()=>o.value.filter(e=>t.archived(e)).length),setArchived:l}}var uN={key:0,class:`shrink-0 text-xs text-muted-foreground`},dN=[`title`],fN=I({__name:`FindingList`,setup(e){let t=[`valid`,`obsolete`],n=cN({key:`findings`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(t)},{key:`category`,label:`分類`,values:e=>e.category?[e.category]:[]},{key:`label`,label:`標籤`,values:e=>e.labels??[]},{key:`applies`,label:`適用範圍`,values:e=>e.appliesTo??[]}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`applies`,label:`適用範圍`,value:e=>e.appliesTo?.join(`、`),dir:`asc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`},{key:`review`,label:`重新確認日`,value:e=>e.reviewAfter,dir:`asc`}],groups:[nN(t),{key:`category`,label:`分類`,value:e=>e.category??`未分類`}],defaultSort:`created`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt},()=>Q.findings),r=lN(n,{kind:`finding`,archived:e=>!!e.archivedAt}),i=[{key:`name`,label:`名稱`,sort:`name`},{key:`applies`,label:`適用範圍`,class:`max-w-72 truncate font-mono text-xs text-muted-foreground`,sort:`applies`,value:e=>e.appliesTo,optional:!0},{key:`review`,label:`重新確認`,sort:`review`,value:e=>e.reviewAfter}],a=e=>vC(()=>uC.archiveFinding(e.id,!e.archivedAt,e.version));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`發現`,description:`踩過的坑與經驗。下一個任務動手前先看這裡。`}),W(jT,{view:N(n)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(n),selection:N(r),columns:i,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:!!e.archivedAt},{default:P(()=>[(B(!0),V(z,null,L(e.labels??[],e=>(B(),H(N(Tw),{key:e,variant:`secondary`,class:`shrink-0`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128)),e.archivedAt?(B(),V(`span`,uN,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),applies:P(({item:e})=>[U(`span`,{title:e.appliesTo?.join(`
|
|
79
|
-
`)},j(e.appliesTo?.join(`、`)),9,dN)]),review:P(({item:e})=>[W(Mw,{day:e.reviewAfter,ended:e.status===`obsolete`},null,8,[`day`,`ended`])]),actions:P(({item:e})=>[W(Dw,{archived:!!e.archivedAt,onToggle:t=>a(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[0]||=[G(`還沒有發現。用 `,-1),U(`code`,null,`mainflow new finding <slug> --title <title>`,-1),G(` 記下來。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(r)},null,8,[`selection`])]),_:1}))}}),pN={key:0,class:`shrink-0 text-xs text-muted-foreground`},mN=I({__name:`IssueList`,setup(e){let t=[`open`,`planned`,`closed`],n=e=>(e.plannedIn??e.origin??``).match(/^m\d{3}/)?.[0]??``,r=e=>e?`${e} ${Q.summary?.mainlines.find(t=>t.id===e)?.title??``}`.trim():`不屬於主脈絡`,i=cN({key:`issues`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(t)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM},{key:`category`,label:`分類`,values:e=>e.category?[e.category]:[]},{key:`label`,label:`標籤`,values:e=>e.labels??[]},{key:`mainline`,label:`來源主脈絡`,values:e=>[n(e)].filter(Boolean),optionLabel:r}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`planned`,label:`排入`,value:e=>e.plannedIn,dir:`asc`},{key:`origin`,label:`來源`,value:e=>e.origin,dir:`asc`},{key:`order`,label:`手動順序`,value:e=>e.order,dir:`asc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`due`,label:`到期`,value:e=>e.due,dir:`asc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`}],groups:[nN(t),{key:`priority`,label:`優先度`,value:e=>$M(e.priority),order:[`P0`,`P1`,`P2`,`P3`]},{key:`mainline`,label:`主脈絡`,value:n,groupLabel:r}],defaultSort:`order`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt},()=>Q.issues),a=lN(i,{kind:`issue`,archived:e=>!!e.archivedAt}),o=[{key:`name`,label:`名稱`,sort:`name`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`due`,label:`到期`,sort:`due`,value:e=>e.due},{key:`planned`,label:`排入`,class:`max-w-56`,sort:`planned`,value:e=>e.plannedIn},{key:`origin`,label:`來源`,class:`max-w-56`,sort:`origin`,value:e=>e.origin,optional:!0}],{open:s}=oC();Er(()=>AC(Q.issues.flatMap(e=>[e.plannedIn,e.origin])));let c=e=>vC(()=>uC.archiveIssue(e.id,!e.archivedAt,e.version));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`待辦事項`,description:`跨主脈絡的後續事項。主脈絡結束或封存後仍留在這裡。`}),W(jT,{view:N(i)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(i),selection:N(a),columns:o,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:!!e.archivedAt},{default:P(()=>[e.archivedAt?(B(),V(`span`,pN,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),due:P(({item:e})=>[W(Mw,{day:e.due,ended:e.status===`closed`},null,8,[`day`,`ended`])]),planned:P(({item:e})=>[e.plannedIn?(B(),H(dA,q({key:0},N(OC)(e.plannedIn),{onOpen:N(s)}),null,16,[`onOpen`])):K(``,!0)]),origin:P(({item:e})=>[e.origin?(B(),H(dA,q({key:0},N(OC)(e.origin),{onOpen:N(s)}),null,16,[`onOpen`])):K(``,!0)]),actions:P(({item:e})=>[W(Dw,{archived:!!e.archivedAt,onToggle:t=>c(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[0]||=[G(`沒有待辦事項。用 `,-1),U(`code`,null,`mainflow new issue <slug> --title <title>`,-1),G(` 記下主脈絡結束後還要處理的事。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(a)},null,8,[`selection`])]),_:1}))}}),hN=I({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Jh(ff(n,`class`),r);return(e,t)=>(B(),H(N(hx),q({"data-slot":`tabs`},N(i),{class:N(KS)(`flex flex-col gap-2`,n.class)}),{default:P(t=>[R(e.$slots,`default`,A(Cs(t)))]),_:3},16,[`class`]))}}),gN=I({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(e){let t=e,n=ff(t,`class`,`variant`);return(r,i)=>(B(),H(N(vx),q({"data-slot":`tabs-list`,"data-variant":e.variant},N(n),{class:N(KS)(`group/tabs-list text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-0.75`,e.variant===`line`?`gap-1 rounded-none bg-transparent p-0`:`bg-muted`,t.class)}),{default:P(()=>[R(r.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),_N=I({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(yx),q({"data-slot":`tabs-trigger`,class:N(KS)(`data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-3 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,`group-data-[variant=line]/tabs-list:text-foreground/60 group-data-[variant=line]/tabs-list:hover:text-foreground group-data-[variant=line]/tabs-list:data-[state=active]:text-foreground group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:transition-opacity group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,t.class)},N(n)),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),vN={class:`w-full text-body`},yN={colspan:`3`,class:`sticky top-9 z-[5] bg-background px-6 pt-4 pb-1`},bN={class:`flex items-center gap-2 text-sm`},xN={key:0,class:`grid size-4 shrink-0 place-items-center rounded-[4px] border border-dashed text-[10px] text-muted-foreground`,"aria-label":`已不需要`},SN={class:`font-mono text-xs text-muted-foreground`},CN=[`title`],wN={key:1,class:`font-medium text-muted-foreground`},TN={class:`flex min-w-0 items-center gap-2`},EN={class:`shrink-0 font-mono text-xs text-muted-foreground`},DN=[`title`],ON={class:`flex min-w-0 items-center gap-2 text-xs`},kN={class:`truncate`},AN={key:0},jN={colspan:`3`,class:`px-6 pb-2 text-xs text-muted-foreground`},MN={key:1},NN={key:0,class:`px-6 py-16 text-center text-sm text-muted-foreground`},PN=I({__name:`CriteriaView`,props:{mainline:{}},setup(e){let t=e,{open:n,current:r}=oC(),i=J(()=>t.mainline.tasks.flatMap(e=>e.checklist.filter(e=>!e.dropped).map(t=>({task:e,item:t})))),a=J(()=>[...t.mainline.criteria.map(e=>({key:e.id,criterion:e,rows:i.value.filter(t=>t.item.serves?.includes(e.id))})),{key:``,criterion:void 0,rows:i.value.filter(e=>!e.item.serves?.length)}].filter(e=>e.criterion||e.rows.length)),o=e=>r.value?.ref===e||void 0;return(t,r)=>(B(),V(z,null,[U(`table`,vN,[W(N(Rw),{class:`sticky top-0 z-10 bg-background [&_tr]:border-b`},{default:P(()=>[W(N(Iw),{class:`hover:bg-transparent`},{default:P(()=>[W(N(Lw),{class:`pl-6`},{default:P(()=>[...r[0]||=[G(`checklist 項目`,-1)]]),_:1}),W(N(Lw),{class:`w-72`},{default:P(()=>[...r[1]||=[G(`任務`,-1)]]),_:1}),W(N(Lw),{class:`w-28 pr-6`},{default:P(()=>[...r[2]||=[G(`完成`,-1)]]),_:1})]),_:1})]),_:1}),(B(!0),V(z,null,L(a.value,t=>(B(),H(N(Pw),{key:t.key,class:`[&_tr:last-child]:border-b`},{default:P(()=>[U(`tr`,null,[U(`td`,yN,[U(`div`,bN,[t.criterion?(B(),V(z,{key:0},[t.criterion.dropped?(B(),V(`span`,xN,`–`)):(B(),H(N(Nw),{key:1,"model-value":t.criterion.done,disabled:``,class:`pointer-events-none`,"aria-label":t.criterion.done?`已達成`:`未達成`},null,8,[`model-value`,`aria-label`])),U(`span`,SN,j(t.criterion.id),1),U(`span`,{class:k([`min-w-0 truncate font-medium`,{"text-muted-foreground line-through":t.criterion.dropped}]),title:t.criterion.text},j(t.criterion.text),11,CN),t.criterion.dropped?K(``,!0):(B(),H(Aj,{key:2,class:`ml-auto shrink-0`,done:t.rows.filter(e=>e.item.done).length,total:t.rows.length},null,8,[`done`,`total`]))],64)):(B(),V(`span`,wN,`沒有推進任何解決條件`))])])]),(B(!0),V(z,null,L(t.rows,t=>(B(),H(N(Iw),{key:`${t.task.id}#${t.item.id}`,class:`h-9 transition-colors duration-[120ms]`,"data-peek":N(YS)(e.mainline.id,t.task.id),"aria-current":o(N(YS)(e.mainline.id,t.task.id)),onClick:r=>N(n)(N(YS)(e.mainline.id,t.task.id))},{default:P(()=>[W(N(Fw),{class:`max-w-0 pl-6`},{default:P(()=>[U(`span`,TN,[U(`span`,EN,j(t.task.id)+`#`+j(t.item.id),1),U(`span`,{class:k([`truncate`,{"text-muted-foreground":t.item.done}]),title:t.item.text},j(t.item.text),11,DN)])]),_:2},1024),W(N(Fw),{class:`max-w-72`},{default:P(()=>[U(`span`,ON,[W(qC,{type:N(MC)(t.task),status:t.task.status},null,8,[`type`,`status`]),U(`span`,kN,j(t.task.title),1)])]),_:2},1024),W(N(Fw),{class:`pr-6 text-xs text-muted-foreground`},{default:P(()=>[G(j(t.item.done?t.item.doneAt??`已完成`:``),1)]),_:2},1024)]),_:2},1032,[`data-peek`,`aria-current`,`onClick`]))),128)),t.criterion?.dropped?(B(),V(`tr`,AN,[U(`td`,jN,[r[3]||=G(`不再需要`,-1),t.criterion.note?(B(),V(z,{key:0},[G(`:`+j(t.criterion.note),1)],64)):K(``,!0)])])):t.criterion&&t.rows.length===0?(B(),V(`tr`,MN,[...r[4]||=[U(`td`,{colspan:`3`,class:`px-6 pb-2 text-xs text-muted-foreground`},`還沒有 checklist 項目推進這條條件。`,-1)]])):K(``,!0)]),_:2},1024))),128))]),a.value.length===0?(B(),V(`p`,NN,`這條主脈絡還沒有解決條件。`)):K(``,!0)],64))}}),FN={key:0,class:`shrink-0 text-xs text-muted-foreground`},IN=[`title`],LN=I({__name:`DecisionTable`,props:{mainline:{}},setup(e){let t=e,n=[`proposed`,`accepted`,`superseded`],r=cN({key:`decisions`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(n)},{key:`by`,label:`決策者`,values:e=>e.by?[e.by]:[],optionLabel:e=>UC[e]??e}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`by`,label:`決策者`,value:e=>e.by,dir:`asc`},{key:`reversible`,label:`能否改回`,value:e=>e.reversible===void 0?null:+!!e.reversible,dir:`desc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`},{key:`decided`,label:`裁決時間`,value:e=>e.decidedAt,dir:`desc`}],groups:[nN(n)],defaultSort:`created`,defaultGroup:`status`,ended:e=>tN(e.status)},()=>t.mainline.decisions),i=[{key:`name`,label:`名稱`,sort:`name`},{key:`by`,label:`決策者`,class:`text-xs text-muted-foreground`,sort:`by`,value:e=>e.by},{key:`decided`,label:`裁決`,class:`font-mono text-xs text-muted-foreground tabular-nums`,sort:`decided`,value:e=>e.decidedAt},{key:`affects`,label:`影響`,class:`max-w-56 truncate font-mono text-xs text-muted-foreground`,value:e=>e.affects,optional:!0},{key:`reversible`,label:`能否改回`,class:`text-xs text-muted-foreground`,sort:`reversible`,value:e=>e.reversible,optional:!0}];return(t,n)=>(B(),V(z,null,[W(jT,{view:N(r)},null,8,[`view`]),W(sT,{view:N(r),columns:i,"item-ref":t=>N(XS)(e.mainline.id,t.id)},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:e.status===`superseded`},{default:P(()=>[e.supersededBy?(B(),V(`span`,FN,`由 `+j(e.supersededBy)+` 取代`,1)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),by:P(({item:e})=>[G(j(e.by?N(UC)[e.by]:``),1)]),decided:P(({item:e})=>[G(j(e.decidedAt?.replace(`T`,` `)),1)]),affects:P(({item:e})=>[U(`span`,{title:e.affects?.join(`
|
|
80
|
-
`)},j(e.affects?.join(`、`)),9,IN)]),reversible:P(({item:e})=>[G(j(e.reversible===void 0?``:e.reversible?`可以`:`不易改回`),1)]),empty:P(()=>[n[0]||=G(`還沒有決策。用 `,-1),U(`code`,null,`mainflow new decision `+j(e.mainline.id)+` <slug> --title <title>`,1),n[1]||=G(` 記下選擇與理由。`,-1)]),_:1},8,[`view`,`item-ref`])],64))}}),RN={class:`flex min-w-0 items-center gap-2`},zN=[`href`,`title`],BN=[`title`],VN=[`title`],HN=`-`,UN=I({__name:`FilesView`,props:{mainline:{}},setup(e){let t=e,n=J(()=>RA(t.mainline)),r=e=>{let n=t.mainline.tasks.find(t=>t.id===e)??t.mainline.decisions.find(t=>t.id===e);return n?`${e} ${n.title}`:e===HN||!e?`主脈絡本身`:e},i=cN({key:`files`,id:e=>e.key,text:e=>`${e.name} ${e.path??``}`,filters:[{key:`kind`,label:`類型`,values:e=>[e.kind],options:FA.map(e=>({value:e,label:e}))},{key:`source`,label:`來源`,values:e=>[e.source??HN],optionLabel:r},{key:`ext`,label:`副檔名`,values:e=>e.ext?[e.ext]:[],optionLabel:e=>`.${e}`}],sorts:[{key:`kind`,label:`類型`,value:e=>FA.indexOf(e.kind),dir:`asc`},{key:`name`,label:`檔名`,value:e=>e.name,dir:`asc`},{key:`updated`,label:`更新`,value:e=>e.updated,dir:`desc`},{key:`source`,label:`來源`,value:e=>e.source,dir:`asc`}],groups:[{key:`kind`,label:`類型`,value:e=>e.kind,order:FA},{key:`source`,label:`來源`,value:e=>e.source??HN,groupLabel:r}],defaultSort:`kind`,defaultGroup:`kind`},()=>n.value),a=[{key:`name`,label:`檔名`,sort:`name`},{key:`kind`,label:`類型`,class:`text-xs text-muted-foreground`,sort:`kind`},{key:`source`,label:`來源`,class:`max-w-64 truncate text-xs text-muted-foreground`,sort:`source`,value:e=>e.source,optional:!0},{key:`updated`,label:`更新`,class:`text-xs text-muted-foreground`,sort:`updated`,value:e=>e.updated}],o=e=>e.inMainline?QS(t.mainline.id,e.inMainline):void 0;return(e,t)=>(B(),V(z,null,[W(jT,{view:N(i)},null,8,[`view`]),W(sT,{view:N(i),columns:a,"item-ref":o},{name:P(({item:e})=>[U(`span`,RN,[W(qC,{type:N(FC)(e.url??e.key,e.kind)},null,8,[`type`]),e.url?(B(),V(`a`,{key:0,href:e.url,target:`_blank`,rel:`noreferrer`,class:`truncate underline decoration-border underline-offset-4 hover:decoration-foreground`,title:e.url,onClick:t[0]||=au(()=>{},[`stop`])},j(e.name),9,zN)):(B(),V(`span`,{key:1,class:k([`truncate`,{"font-mono text-xs":e.inMainline}]),title:e.inMainline??e.path},j(e.name),11,BN)),e.path?(B(),H(wk,{key:2,text:e.path,class:`min-w-0`},null,8,[`text`])):K(``,!0)])]),kind:P(({item:e})=>[G(j(e.kind),1)]),source:P(({item:e})=>[U(`span`,{title:r(e.source??``)},j(e.source?r(e.source):``),9,VN)]),updated:P(({item:e})=>[e.updated?(B(),H($j,{key:0,at:e.updated},null,8,[`at`])):K(``,!0)]),empty:P(()=>[...t[1]||=[G(`這條主脈絡還沒有檔案。`,-1)]]),_:1},8,[`view`])],64))}}),WN=I({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(B(),V(`div`,{"data-slot":`card`,class:k(N(KS)(`bg-card text-card-foreground flex flex-col gap-4 rounded-xl border py-4 shadow-sm`,t.class))},[R(e.$slots,`default`)],2))}}),GN={class:`inline-flex gap-1.5 font-mono text-xs`},KN=[`title`],qN=I({__name:`DepList`,props:{deps:{},within:{}},setup(e){let t=e,n=e=>t.within&&e.startsWith(`${t.within}/`)?e.slice(t.within.length+1):e;return(t,r)=>(B(),V(`span`,GN,[(B(!0),V(z,null,L(e.deps,e=>(B(),V(`span`,{key:e.to,class:k(N(GC)[e.state].tone),title:`${e.to} ${N(GC)[e.state].label}`},j(n(e.to)),11,KN))),128))]))}}),JN={class:`flex items-center rounded-md border p-0.5`,role:`group`,"aria-label":`任務排列`},YN={key:0,class:`flex min-h-0 gap-3 overflow-x-auto px-6 pt-2 pb-6`},XN=[`aria-label`],ZN={class:`flex items-center gap-2 py-1`},QN={class:`text-xs text-muted-foreground tabular-nums`},$N={class:`flex items-center gap-2 text-xs`},eP={class:`font-mono text-muted-foreground`},tP={class:`line-clamp-2 [overflow-wrap:anywhere]`},nP={class:`flex items-center justify-between gap-2`},rP={key:0,class:`min-w-0 truncate text-xs text-muted-foreground`},iP={key:0,class:`py-2 text-xs text-muted-foreground`},aP=[`title`],oP=`mainflow.list.tasks.mode`,sP=I({__name:`TaskViews`,props:{mainline:{}},setup(e){let t=e,n=[{key:`table`,label:`表格`,icon:Bd},{key:`board`,label:`看板`,icon:td},{key:`tree`,label:`樹狀`,icon:Ad}],r=cw(oP,`table`),i=M(n.some(e=>e.key===r)?r:`table`);function a(e){i.value=e,lw(oP,e)}let o=()=>t.mainline.tasks,s=J(()=>new Map(t.mainline.tasks.map(e=>[e.id,e])));function c(e){let t=e;for(;t?.kind===`branch`&&t.parent;)t=s.value.get(t.parent);return t?.id??e.id}let l=e=>e.checklist.filter(e=>e.done).length,u={id:e=>e.id,text:e=>`${e.title} ${e.branch??``}`,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(LC)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM},{key:`repo`,label:`倉庫`,values:e=>e.repo?[e.repo]:[]},{key:`kind`,label:`種類`,values:e=>[e.kind],options:[{value:`phase`,label:`階段`},{value:`branch`,label:`分支`}]},{key:`label`,label:`標籤`,values:e=>e.labels??[]}]},d=cN({...u,key:`tasks`,sorts:[{key:`order`,label:`手動順序`,value:e=>e.order??Number(e.id.slice(1)),dir:`asc`},{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`repo`,label:`倉庫`,value:e=>e.repo,dir:`asc`},{key:`depends`,label:`依賴`,value:e=>b(e)[0]?.to,dir:`asc`},{key:`branch`,label:`分支`,value:e=>e.branch,dir:`asc`},{key:`status`,label:`狀態`,value:e=>LC.indexOf(e.status),dir:`asc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`progress`,label:`checklist 進度`,value:e=>e.checklist.length?l(e)/e.checklist.length:null,dir:`desc`}],groups:[{key:`phase`,label:`階段`,value:c,groupLabel:e=>s.value.get(e)?.title??e,status:e=>s.value.get(e)?.status,leader:e=>s.value.get(e)},nN(LC),{key:`repo`,label:`倉庫`,value:e=>e.repo??`沒有指定倉庫`}],defaultSort:`order`,defaultGroup:`status`,ended:e=>tN(e.status)},o),f=e=>t.mainline.tasks.filter(t=>t.parent===e).sort((e,t)=>(e.order??1/0)-(t.order??1/0)||e.id.localeCompare(t.id)),p=(e,t=1)=>f(e.id).flatMap(e=>[{item:e,depth:t},...p(e,t+1)]),m=cN({...u,key:`tasks`,sorts:[{key:`order`,label:`手動順序`,value:e=>e.order??Number(e.id.slice(1)),dir:`asc`}],groups:[],defaultSort:`order`,defaultGroup:``,nested:e=>p(e)},()=>t.mainline.tasks.filter(e=>!e.parent||!s.value.has(e.parent))),h=J(()=>LC.map(e=>({status:e,tasks:d.sorted.value.filter(t=>t.status===e)}))),g=[{key:`name`,label:`名稱`,sort:`name`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`progress`,label:`checklist`,sort:`progress`,value:e=>e.checklist.length},{key:`repo`,label:`倉庫`,class:`text-xs text-muted-foreground`,sort:`repo`,value:e=>e.repo},{key:`depends`,label:`依賴`,sort:`depends`,value:e=>b(e),optional:!0},{key:`branch`,label:`分支`,class:`max-w-56 truncate font-mono text-xs text-muted-foreground`,sort:`branch`,value:e=>e.branch,optional:!0}],{open:_,current:v}=oC(),y=e=>YS(t.mainline.id,e.id);function b(e){return Q.relations.deps.filter(t=>t.from===y(e))}return(t,r)=>(B(),V(z,null,[W(jT,{view:i.value===`tree`?N(m):N(d),grouping:i.value===`table`},{views:P(()=>[U(`div`,JN,[(B(),V(z,null,L(n,e=>W(N(qS),{key:e.key,variant:i.value===e.key?`secondary`:`ghost`,size:`xs`,"aria-pressed":i.value===e.key,onClick:t=>a(e.key)},{default:P(()=>[(B(),H(fa(e.icon))),G(j(e.label),1)]),_:2},1032,[`variant`,`aria-pressed`,`onClick`])),64))])]),_:1},8,[`view`,`grouping`]),i.value===`board`?(B(),V(`div`,YN,[(B(!0),V(z,null,L(h.value,e=>(B(),V(`section`,{key:e.status,class:`flex w-64 shrink-0 flex-col gap-2`,"aria-label":N(VC)[e.status]},[U(`div`,ZN,[W(Hw,{status:e.status},null,8,[`status`]),U(`span`,QN,j(e.tasks.length),1)]),(B(!0),V(z,null,L(e.tasks,e=>(B(),H(N(WN),{key:e.id,class:k([`min-w-0 cursor-pointer gap-2 p-3 shadow-xs transition-colors duration-[120ms] hover:bg-accent/50`,{"bg-muted":N(v)?.ref===y(e)}]),"data-peek":y(e),"aria-current":N(v)?.ref===y(e)||void 0,onClick:t=>N(_)(y(e))},{default:P(()=>[U(`div`,$N,[W(qC,{type:N(MC)(e),status:e.status},null,8,[`type`,`status`]),U(`span`,eP,j(e.id),1),W(tA,{priority:e.priority},null,8,[`priority`])]),U(`p`,tP,j(e.title),1),U(`div`,nP,[W(Aj,{done:l(e),total:e.checklist.length},null,8,[`done`,`total`]),e.repo?(B(),V(`span`,rP,j(e.repo),1)):K(``,!0)])]),_:2},1032,[`class`,`data-peek`,`aria-current`,`onClick`]))),128)),e.tasks.length===0?(B(),V(`p`,iP,`沒有任務`)):K(``,!0)],8,XN))),128))])):(B(),H(sT,{key:1,view:i.value===`tree`?N(m):N(d),columns:g,"item-ref":y,"item-type":N(MC)},{name:P(({item:e,depth:t})=>[W(BT,{status:e.status,id:e.id,title:e.title,depth:t,type:N(MC)(e)},null,8,[`status`,`id`,`title`,`depth`,`type`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),progress:P(({item:e})=>[W(Aj,{done:l(e),total:e.checklist.length},null,8,[`done`,`total`])]),repo:P(({item:e})=>[G(j(e.repo),1)]),depends:P(({item:t})=>[W(qN,{deps:b(t),within:e.mainline.id},null,8,[`deps`,`within`])]),branch:P(({item:e})=>[U(`span`,{title:e.branch},j(e.branch),9,aP)]),empty:P(()=>[r[0]||=G(`還沒有任務。執行 `,-1),U(`code`,null,`mainflow new task `+j(e.mainline.id)+` <slug> --title <title>`,1),r[1]||=G(` 建立。`,-1)]),_:1},8,[`view`,`item-type`]))],64))}}),cP={class:`px-6 pt-6 pb-3`},lP={class:`mt-1 text-title font-semibold`},uP={class:`mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground`},dP={key:0},fP={key:0,class:`text-xs text-muted-foreground tabular-nums`},pP={key:0,class:`max-w-5xl px-1 pt-2 pb-10`},mP={key:1,class:`px-6 py-16 text-center text-muted-foreground`},hP=`mainflow.mainlineView`,gP=I({__name:`MainlineDetail`,setup(e){let t=Gf(),n=Wf(),{id:r,mainline:i}=fA(),a=[{key:`overview`,label:`概覽`},{key:`tasks`,label:`任務`},{key:`criteria`,label:`條件`},{key:`decisions`,label:`決策`},{key:`files`,label:`資料`}],o=J(()=>a.find(e=>e.key===t.query.view)?.key??`overview`),s=e=>{let t=i.value;if(t)return{overview:void 0,tasks:t.tasks.length,criteria:t.criteria.length,decisions:t.decisions.length,files:RA(t).length}[e]},c=e=>n.replace({query:{view:String(e)}});F(()=>[r.value,t.query.view,t.query.tab],([e,r,i])=>{if(!e||typeof i==`string`)return;let a=cw(hP,{});typeof r==`string`?lw(hP,{...a,[e]:r}):a[e]&&a[e]!==`overview`&&n.replace({query:{...t.query,view:a[e]}})},{immediate:!0}),Er(()=>{let e=t.query.tab;if(typeof e!=`string`)return;let{tab:r,...i}=t.query,a={...i,view:e===`views`?`files`:e};n.replace({query:a})});let l=e=>i.value&&vC(()=>uC.mainlineStatus(r.value,e,i.value.version)),u=e=>i.value&&vC(()=>uC.mainlineTitle(r.value,e,i.value.version)),d=()=>i.value&&vC(()=>uC.archive(r.value,!i.value.archivedAt,i.value.version));return(e,t)=>N(i)?(B(),H(ZM,{key:0},{header:P(()=>[U(`header`,cP,[W(wk,{text:N(i).id},null,8,[`text`]),U(`h1`,lP,[W(Tk,{value:N(i).title,onSave:u},null,8,[`value`])]),U(`div`,uP,[W(Jj,{status:N(i).status,options:N(IC),onChange:l},null,8,[`status`,`options`]),W(tA,{priority:N(i).priority},null,8,[`priority`]),N(i).archivedAt?(B(),V(`span`,dP,`已封存 `+j(N(i).archivedAt),1)):K(``,!0),W(Dw,{class:`ml-auto`,archived:!!N(i).archivedAt,onToggle:d},null,8,[`archived`])])]),W(N(hN),{"model-value":o.value,"onUpdate:modelValue":c},{default:P(()=>[W(N(gN),{variant:`line`,class:`h-9 w-full justify-start border-b px-6`},{default:P(()=>[(B(),V(z,null,L(a,e=>W(N(_N),{key:e.key,value:e.key,class:`flex-none px-2`},{default:P(()=>[G(j(e.label),1),s(e.key)===void 0?K(``,!0):(B(),V(`span`,fP,j(s(e.key)),1))]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),default:P(()=>[o.value===`overview`?(B(),V(`div`,pP,[W(Wj,{mainline:N(i),columns:2},null,8,[`mainline`])])):o.value===`tasks`?(B(),H(sP,{key:1,mainline:N(i)},null,8,[`mainline`])):o.value===`criteria`?(B(),H(PN,{key:2,mainline:N(i)},null,8,[`mainline`])):o.value===`decisions`?(B(),H(LN,{key:3,mainline:N(i)},null,8,[`mainline`])):(B(),H(UN,{key:4,mainline:N(i)},null,8,[`mainline`]))]),_:1})):(B(),V(`p`,mP,`載入 `+j(N(r))+`…`,1))}}),_P={key:0,class:`shrink-0 text-xs text-muted-foreground`},vP=I({__name:`MainlineList`,setup(e){let t={key:`mainlines`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(IC)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM},{key:`category`,label:`分類`,values:e=>e.category?[e.category]:[]},{key:`label`,label:`標籤`,values:e=>e.labels}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`criteria`,label:`解決條件`,value:e=>e.criteria.total?e.criteria.done/e.criteria.total:null,dir:`desc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`updated`,label:`更新`,value:e=>e.updated,dir:`desc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`},{key:`due`,label:`到期`,value:e=>e.due,dir:`asc`}],groups:[nN(IC),{key:`priority`,label:`優先度`,value:e=>$M(e.priority),order:[`P0`,`P1`,`P2`,`P3`]},{key:`category`,label:`分類`,value:e=>e.category??`未分類`}],defaultSort:`updated`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt},n=e=>Q.relations.mainlineDeps.filter(t=>t.from===e.id),r=cN(t,()=>Q.summary?.mainlines??[]),i=lN(r,{kind:`mainline`,archived:e=>!!e.archivedAt}),a=[{key:`name`,label:`名稱`,sort:`name`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`criteria`,label:`解決條件`,sort:`criteria`,value:e=>e.criteria.total},{key:`deps`,label:`依賴`,value:n,optional:!0},{key:`due`,label:`到期`,sort:`due`,value:e=>e.due},{key:`updated`,label:`更新`,class:`text-xs text-muted-foreground`,sort:`updated`,optional:!0}],o=e=>vC(()=>uC.archive(e.id,!e.archivedAt));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`主脈絡`,description:`一條主脈絡是一件要做完的事:意圖、解決條件,以及推進它的任務與決策。`}),W(jT,{view:N(r)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(r),selection:N(i),columns:a,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:!!e.archivedAt},{default:P(()=>[(B(!0),V(z,null,L(e.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`,class:`shrink-0`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128)),e.archivedAt?(B(),V(`span`,_P,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),criteria:P(({item:e})=>[W(Aj,{done:e.criteria.done,total:e.criteria.total},null,8,[`done`,`total`])]),deps:P(({item:e})=>[W(qN,{deps:n(e)},null,8,[`deps`])]),due:P(({item:e})=>[W(Mw,{day:e.due,ended:N(tN)(e.status)},null,8,[`day`,`ended`])]),updated:P(({item:e})=>[W($j,{at:e.updated},null,8,[`at`])]),actions:P(({item:e})=>[W(N(qS),{variant:`ghost`,size:`xs`,class:`text-muted-foreground`,"as-child":``},{default:P(()=>[W(N(bm),{to:`/mainlines/${e.id}`,onClick:t[0]||=au(()=>{},[`stop`])},{default:P(()=>[W(N(Gd)),t[1]||=G(`開啟`,-1)]),_:1},8,[`to`])]),_:2},1024),W(Dw,{archived:!!e.archivedAt,onToggle:t=>o(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[2]||=[G(`沒有主脈絡。在 hub 內執行 `,-1),U(`code`,null,`mainflow new mainline <slug> --title <title>`,-1),G(` 建立第一個。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(i)},null,8,[`selection`])]),_:1}))}}),yP=[`title`],bP=[`title`],xP=[`title`],SP=I({__name:`OpsLog`,setup(e){let t=e=>!/fail|error|denied|reject|abort|失敗|錯誤|拒絕|中止/i.test(e.result),n=e=>e.ref?.match(/^m\d{3}/)?.[0]??``,r=cN({key:`ops`,id:e=>`${e.at}|${e.target}|${e.operation}`,text:e=>`${e.operation} ${e.target} ${e.ref??``}`,filters:[{key:`result`,label:`結果`,values:e=>[t(e)?`success`:`failed`],options:[{value:`success`,label:`成功`},{value:`failed`,label:`沒有成功`}]},{key:`target`,label:`目標系統`,values:e=>[e.target]},{key:`mainline`,label:`主脈絡`,values:e=>[n(e)].filter(Boolean),optionLabel:e=>`${e} ${Q.summary?.mainlines.find(t=>t.id===e)?.title??``}`.trim()}],sorts:[{key:`at`,label:`時間`,value:e=>e.at,dir:`desc`},{key:`operation`,label:`操作`,value:e=>e.operation,dir:`asc`},{key:`target`,label:`目標系統`,value:e=>e.target,dir:`asc`},{key:`result`,label:`結果`,value:e=>+!!t(e),dir:`asc`},{key:`ref`,label:`關聯`,value:e=>e.ref,dir:`asc`}],groups:[{key:`month`,label:`月份`,value:e=>e.at.slice(0,7),latestFirst:!0},{key:`day`,label:`日期`,value:e=>e.at.slice(0,10),latestFirst:!0}],defaultSort:`at`,defaultGroup:`month`},()=>Q.ops),i=[{key:`operation`,label:`操作`,sort:`operation`},{key:`target`,label:`目標系統`,class:`max-w-64 truncate font-mono text-xs text-muted-foreground`,sort:`target`,optional:!0},{key:`result`,label:`結果`,class:`max-w-40 truncate text-xs`,sort:`result`},{key:`ref`,label:`關聯`,class:`max-w-56`,sort:`ref`,value:e=>e.ref,optional:!0},{key:`at`,label:`時間`,class:`font-mono text-xs text-muted-foreground tabular-nums`,sort:`at`}],{open:a}=oC();return Er(()=>AC(Q.ops.map(e=>e.ref))),(e,n)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`操作紀錄`,description:`對外部系統執行過的操作,只追加不改寫。`}),W(jT,{view:N(r)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(r),columns:i},{operation:P(({item:e})=>[U(`span`,{class:`block truncate`,title:e.operation},j(e.operation),9,yP)]),target:P(({item:e})=>[U(`span`,{title:e.target},j(e.target),9,bP)]),result:P(({item:e})=>[U(`span`,{class:k(t(e)?`text-muted-foreground`:`text-foreground`),title:e.result},[t(e)?K(``,!0):(B(),H(N(Yu),{key:0,class:`mr-1 inline size-3.5 align-[-2px] text-destructive`})),G(j(e.result),1)],10,xP)]),ref:P(({item:e})=>[e.ref?(B(),H(dA,q({key:0},N(OC)(e.ref),{onOpen:N(a)}),null,16,[`onOpen`])):K(``,!0)]),at:P(({item:e})=>[G(j(e.at.slice(5).replace(`T`,` `)),1)]),empty:P(()=>[...n[0]||=[G(`還沒有紀錄。用 `,-1),U(`code`,null,`mainflow ops add --target <系統> --op <操作> --result <結果>`,-1),G(` 記錄 push、發布、合併這類對外操作。`,-1)]]),_:1},8,[`view`])]),_:1}))}}),CP=.01,wP=e=>Math.min(2,Math.max(CP,e));function TP(e,t,n,r){let i=wP(t),a=(n-e.x)/e.zoom,o=(r-e.y)/e.zoom;return{zoom:i,x:n-a*i,y:r-o*i}}function EP(e,t,n=.9){if(e.width<=0||e.height<=0||t.width<=0||t.height<=0)return{x:0,y:0,zoom:1};let r=wP(Math.min(1,t.width*n/e.width,t.height*n/e.height));return{zoom:r,x:(t.width-e.width*r)/2,y:(t.height-e.height*r)/2}}function DP(e){if(e.deltaMode!==0)return!0;let t=e.wheelDeltaY;return typeof t==`number`&&t!==0&&t%120==0&&e.deltaX===0}function OP(e,t){let n=new Set(t.flatMap(e=>[e.from,e.to])),r=new Map;for(let e of t)r.set(e.from,[...r.get(e.from)??[],e.to]);let i=new Map,a=new Set;function o(e){let t=i.get(e);if(t!==void 0)return t;if(a.has(e))return 0;a.add(e);let n=Math.max(0,...(r.get(e)??[]).map(e=>o(e)+1));return a.delete(e),i.set(e,n),n}let s=[];for(let t of e){if(!n.has(t))continue;let e=o(t);for(;s.length<=e;)s.push([]);s[e].push(t)}return{columns:s.filter(e=>e.length>0),free:e.filter(e=>!n.has(e))}}var kP=[`data-node`,`aria-pressed`,`title`],AP={class:`flex min-w-0 items-center gap-2`},jP={class:`shrink-0 font-mono text-xs text-muted-foreground`},MP=[`title`],NP={class:`h-1 w-12 overflow-hidden rounded-full bg-muted`},PP={class:`flex min-w-0 items-center gap-2`},FP=I({__name:`MainlineNode`,props:{id:{},picked:{type:Boolean}},emits:[`pick`],setup(e){let t=e,n=J(()=>Q.summary?.mainlines.find(e=>e.id===t.id)),r=J(()=>n.value?.title??OC(t.id).title??``),i=J(()=>n.value?.status??OC(t.id).status),a=J(()=>n.value?.criteria),o=J(()=>tN(i.value??``)),s=J(()=>!!$S(t.id)),c=J(()=>Q.mainlines[t.id]?.tasks.filter(e=>e.status===`doing`).length),l=J(()=>a.value?.total?Math.round(100*a.value.done/a.value.total):0);return(t,n)=>(B(),V(`button`,{type:`button`,class:k([`relative z-[1] flex w-full min-w-0 flex-col gap-1.5 rounded-xl border bg-card px-3 py-2.5 text-left shadow-xs transition-[background-color,border-color] duration-[120ms] hover:bg-[color-mix(in_oklab,var(--accent)_50%,var(--card))] focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-none`,{"border-dashed":s.value,"border-ring":e.picked}]),"data-node":e.id,"aria-pressed":e.picked,title:s.value?`${e.id}:在新分頁開啟另一個 hub`:void 0,onClick:n[0]||=n=>t.$emit(`pick`,e.id,n)},[U(`span`,AP,[W(qC,{type:`mainline`,status:i.value},null,8,[`status`]),U(`span`,jP,j(e.id),1),a.value?(B(),V(`span`,{key:0,class:`ml-auto flex shrink-0 items-center gap-1.5 text-xs text-muted-foreground tabular-nums`,title:`解決條件 ${a.value.done}/${a.value.total}`},[U(`span`,NP,[U(`span`,{class:`block h-full bg-foreground`,style:he({width:`${l.value}%`})},null,4)]),G(` `+j(a.value.done)+`/`+j(a.value.total),1)],8,MP)):K(``,!0)]),U(`span`,PP,[U(`span`,{class:k([`truncate font-medium`,{"text-muted-foreground":o.value}])},j(r.value),3),!o.value&&c.value!==void 0?(B(),V(`span`,{key:0,class:k([`ml-auto inline-flex shrink-0 items-center gap-1 text-xs tabular-nums`,{"text-muted-foreground":!c.value}]),title:`進行中的任務`},[W(qC,{type:`phase`,status:c.value?`doing`:void 0},null,8,[`status`]),G(j(c.value),1)],2)):K(``,!0)])],10,kP))}}),IP=[`data-serves`,`data-session`,`aria-pressed`],LP={"data-session-icon":``,class:`relative row-span-2 grid size-6 place-items-center rounded-md bg-muted text-foreground`},RP={class:`truncate font-medium`},zP={class:`truncate leading-4 text-muted-foreground`},BP=I({__name:`SessionNode`,props:{session:{},serves:{},picked:{type:Boolean}},emits:[`pick`],setup(e){let t=e,n=J(()=>t.session.actions.find(e=>e.status===`doing`)??t.session.actions.find(e=>e.status===`todo`)),r=jC.session.icon;return(t,i)=>(B(),V(`button`,{type:`button`,class:k([`relative z-[1] grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 rounded-md border py-1 pr-2 pl-1 text-left text-xs transition-colors duration-[120ms] hover:bg-accent focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-none`,e.picked?`border-ring`:`border-transparent`]),"data-serves":e.serves,"data-session":e.session.id,"aria-pressed":e.picked,onClick:i[0]||=e=>t.$emit(`pick`,e)},[U(`span`,LP,[(B(),H(fa(N(r)),{class:`size-3.5`})),U(`span`,{class:k([`absolute -right-0.5 -bottom-0.5 size-2 rounded-full border-[1.5px] border-background`,n.value?`bg-status-done`:`bg-status-todo`])},null,2)]),U(`span`,RP,j(N(CC)(e.session)),1),U(`span`,zP,j(n.value?.do??`沒有待做的行動`),1)],10,IP))}}),VP={class:`rounded-xl border bg-card text-body shadow-xs`},HP={class:`flex h-10 items-center gap-2 px-4`},UP={class:`font-mono text-xs text-muted-foreground`},WP={class:`flex flex-col gap-4 px-4 pb-4`},GP={class:`text-base font-semibold [overflow-wrap:anywhere]`},KP={class:`grid grid-cols-[72px_1fr] items-center gap-x-3 gap-y-1.5 text-xs`},qP={class:`flex flex-col gap-0.5`},JP=[`onClick`],YP={class:`shrink-0 font-mono text-muted-foreground`},XP={class:`truncate`},ZP={class:`ml-auto shrink-0 text-muted-foreground`},QP={key:0,class:`px-1.5 text-xs text-muted-foreground`},$P={class:`flex flex-col gap-0.5`},eF={key:0,class:`px-1.5 text-xs text-muted-foreground`},tF={class:`flex h-10 items-center gap-2 px-4`},nF={class:`flex flex-col gap-4 px-4 pb-4`},rF={class:`text-base font-semibold [overflow-wrap:anywhere]`},iF={class:`grid grid-cols-[72px_1fr] items-center gap-x-3 gap-y-1.5 text-xs`},aF={class:`flex flex-col gap-0.5`},oF={class:`flex flex-col gap-0.5`},sF={class:`shrink-0 font-mono text-muted-foreground`},cF={class:`truncate`},lF={key:1,class:`px-1.5 text-xs text-muted-foreground`},uF={key:2,class:`px-4 py-6 text-sm text-muted-foreground`},dF=I({__name:`RunningPreview`,props:{picked:{}},emits:[`pickMainline`,`pickSession`],setup(e,{emit:t}){let n=e,r=t,{open:i}=oC(),a=[`doing`,`blocked`,`todo`],o=SC,s=J(()=>{if(n.picked?.kind!==`mainline`)return;let e=n.picked.id,t=Q.summary?.mainlines.find(t=>t.id===e),r=(Q.mainlines[e]?.tasks??[]).filter(e=>a.includes(e.status)).sort((e,t)=>a.indexOf(e.status)-a.indexOf(t.status)||(e.order??0)-(t.order??0));return{id:e,loaded:!!Q.mainlines[e],title:t?.title??OC(e).title??e,status:t?.status,criteria:t?.criteria,items:t?.items,tasks:r,sessions:TC().filter(t=>wC(t)===e)}}),c=e=>vC(()=>uC.archive(e,!0,Q.mainlines[e]?.version)),l=e=>vC(()=>uC.archiveSession(e,!0)),u=J(()=>n.picked?.kind===`session`?Q.sessions.find(e=>e.id===n.picked.id):void 0),d=e=>{let t=e=>Q.sessions.filter(t=>t.delegatedFrom===e).flatMap(e=>[e,...t(e.id)]),n=t(e.id);return n.length?`${n.filter(e=>e.status===`active`).length} 個進行中,共 ${n.length} 個`:`沒有`};return(e,t)=>(B(),V(`div`,VP,[s.value?(B(),V(z,{key:0},[U(`div`,HP,[W(qC,{type:`mainline`,status:s.value.status},null,8,[`status`]),U(`span`,UP,j(s.value.id),1),t[4]||=U(`span`,{class:`text-xs text-muted-foreground`},`主脈絡`,-1),W(Dw,{class:`ml-auto`,archived:!1,onToggle:t[0]||=e=>c(s.value.id)})]),U(`div`,WP,[U(`h3`,GP,j(s.value.title),1),U(`dl`,KP,[t[7]||=U(`dt`,{class:`text-muted-foreground`},`狀態`,-1),U(`dd`,null,[s.value.status?(B(),H(Hw,{key:0,status:s.value.status},null,8,[`status`])):K(``,!0)]),s.value.criteria?(B(),V(z,{key:0},[t[5]||=U(`dt`,{class:`text-muted-foreground`},`解決條件`,-1),U(`dd`,null,[W(Aj,{done:s.value.criteria.done,total:s.value.criteria.total},null,8,[`done`,`total`])])],64)):K(``,!0),s.value.items?(B(),V(z,{key:1},[t[6]||=U(`dt`,{class:`text-muted-foreground`},`checklist`,-1),U(`dd`,null,[W(Aj,{done:s.value.items.done,total:s.value.items.total},null,8,[`done`,`total`])])],64)):K(``,!0)]),U(`section`,qP,[t[8]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`未完成的任務`,-1),(B(!0),V(z,null,L(s.value.tasks,e=>(B(),V(`button`,{key:e.id,type:`button`,class:`flex h-7 min-w-0 items-center gap-2 rounded-md px-1.5 text-left text-xs hover:bg-accent`,onClick:t=>N(i)(N(YS)(s.value.id,e.id))},[W(qC,{type:N(MC)(e),status:e.status},null,8,[`type`,`status`]),U(`span`,YP,j(e.id),1),U(`span`,XP,j(e.title),1),U(`span`,ZP,j(N(VC)[e.status]),1)],8,JP))),128)),s.value.tasks.length?K(``,!0):(B(),V(`p`,QP,j(s.value.loaded?`沒有`:`載入中…`),1))]),U(`section`,$P,[t[9]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`會話`,-1),(B(!0),V(z,null,L(s.value.sessions,e=>(B(),H(BP,{key:e.id,session:e,onPick:t=>r(`pickSession`,e.id)},null,8,[`session`,`onPick`]))),128)),s.value.sessions.length?K(``,!0):(B(),V(`p`,eF,`沒有`))]),U(`div`,null,[W(N(qS),{variant:`outline`,size:`sm`,"as-child":``},{default:P(()=>[W(N(bm),{to:`/mainlines/${s.value.id}`},{default:P(()=>[...t[10]||=[G(`開啟主脈絡`,-1)]]),_:1},8,[`to`])]),_:1})])])],64)):u.value?(B(),V(z,{key:1},[U(`div`,tF,[W(qC,{type:`session`,status:u.value.status},null,8,[`status`]),t[11]||=U(`span`,{class:`text-xs text-muted-foreground`},`會話`,-1),W(Dw,{class:`ml-auto`,archived:!1,onToggle:t[1]||=e=>l(u.value.id)})]),U(`div`,nF,[U(`h3`,rF,j(N(CC)(u.value)),1),U(`dl`,iF,[t[12]||=U(`dt`,{class:`text-muted-foreground`},`狀態`,-1),U(`dd`,null,[W(Hw,{status:u.value.status},null,8,[`status`])]),t[13]||=U(`dt`,{class:`text-muted-foreground`},`子代理`,-1),U(`dd`,null,j(d(u.value)),1)]),U(`section`,aF,[t[14]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`目前行動`,-1),U(`p`,{class:k([`text-xs [overflow-wrap:anywhere]`,{"text-muted-foreground":!N(o)(u.value)}])},j(N(o)(u.value)?.do??`沒有待做的行動`),3)]),U(`section`,oF,[t[15]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`服務的主脈絡`,-1),N(wC)(u.value)?(B(),V(`button`,{key:0,type:`button`,class:`flex h-7 min-w-0 items-center gap-2 rounded-md px-1.5 text-left text-xs hover:bg-accent`,onClick:t[2]||=e=>r(`pickMainline`,N(wC)(u.value))},[W(qC,{type:`mainline`,status:N(OC)(N(wC)(u.value)).status},null,8,[`status`]),U(`span`,sF,j(N(wC)(u.value)),1),U(`span`,cF,j(N(OC)(N(wC)(u.value)).title),1)])):(B(),V(`p`,lF,`沒有`))]),U(`div`,null,[W(N(qS),{variant:`outline`,size:`sm`,onClick:t[3]||=e=>N(i)(N(ZS)(u.value.id))},{default:P(()=>[...t[16]||=[G(`開啟會話`,-1)]]),_:1})])])],64)):(B(),V(`p`,uF,`點關係圖裡的主脈絡或會話看詳情。`))]))}}),fF=[`width`,`height`],pF=[`id`],mF=[`fill`],hF=[`d`,`stroke`,`stroke-dasharray`,`marker-end`],gF={class:`flex flex-wrap items-start gap-x-6 gap-y-3`},_F={key:1,class:`col-span-full mt-6 flex flex-col gap-1.5`},vF={class:`flex flex-wrap gap-x-6 gap-y-1`},yF={key:1,class:`absolute bottom-3 left-1/2 z-20 -translate-x-1/2 cursor-auto`,role:`toolbar`,"aria-label":`批次操作`,"data-canvas-overlay":``},bF={class:`flex items-center gap-1 rounded-lg border bg-popover py-1 pr-1 pl-3 text-sm shadow-md`},xF={class:`mr-2 tabular-nums`},SF={class:`text-muted-foreground tabular-nums`},CF={class:`absolute right-3 bottom-3 z-20 flex cursor-auto items-center rounded-full border bg-popover p-0.5 text-xs shadow-sm`,role:`toolbar`,"aria-label":`縮放`,"data-canvas-overlay":``},wF={key:1,class:`text-sm text-muted-foreground`},TF=20,EF=260,DF=48,OF=4,kF=4,AF=`mainflow.overview.previewWidth`,jF=260,MF=560,NF=I({__name:`RunningMap`,setup(e){let t=e=>`${e.kind}:${e.id}`,n=[`active`,`planning`,`paused`],r=e=>e&&!tN(e)?Math.max(0,n.indexOf(e)):n.length,i=(e,t)=>e.map((e,t)=>({item:e,i:t})).sort((e,n)=>r(t(e.item))-r(t(n.item))||e.i-n.i).map(e=>e.item),a=J(()=>(Q.summary?.mainlines??[]).filter(e=>!e.archivedAt)),o=e=>OC(e).status,s=J(()=>a.value.map(e=>e.id)),c=J(()=>new Set((Q.summary?.mainlines??[]).filter(e=>e.archivedAt).map(e=>e.id))),l=J(()=>Q.relations.mainlineDeps.filter(e=>![e.from,e.to].some(e=>c.value.has(e)))),u=J(()=>i([...new Set([...s.value,...l.value.flatMap(e=>[e.to,e.from])])],o)),d=J(()=>new Set(u.value)),f=J(()=>OP(u.value,l.value)),p=J(()=>i(TC(),e=>e.status)),m=e=>p.value.filter(t=>wC(t)===e),h=J(()=>p.value.filter(e=>!d.value.has(wC(e)??``))),g=e=>e.kind===`mainline`?d.value.has(e.id):p.value.some(t=>t.id===e.id),_=Qt(new Map),v=J(()=>[..._.values()].filter(g)),y=M(),b=J(()=>y.value&&_.has(t(y.value))&&g(y.value)?y.value:void 0),x=(e,n)=>_.has(t({kind:e,id:n})),S=e=>!!(e&&(e.metaKey||e.ctrlKey));function C(){_.clear(),y.value=void 0}function w(e,n){let r=t(e);if(S(n)){_.has(r)?_.delete(r):_.set(r,e);return}_.clear(),_.set(r,e),y.value=e}function T(e,t){if($S(e)){S(t)||window.open(eC(e)??void 0,`_blank`,`noopener`);return}w({kind:`mainline`,id:e},t)}let ee=(e,t)=>w({kind:`session`,id:e},t);async function E(){let e=new Map;for(let t of v.value)e.set(t.kind,[...e.get(t.kind)??[],t.id]);await vC(async()=>{let t=[];for(let[n,r]of e){let e=await uC.archiveMany(n,r,!0);t.push(...e.failed.map(e=>`${e.id}(${e.error})`))}if(t.length)throw Error(`${t.length} 個沒有封存:${t.join(`、`)}`)})&&C()}let{current:te}=oC();_f(window,`keydown`,e=>{e.key!==`Escape`||te.value||Q.paletteOpen||!_.size||(b.value&&v.value.length>1?y.value=void 0:C())},{capture:!0});let ne=M(),re=M([]),D=M({width:0,height:0});function ie(e,t){let n=0,r=0;for(let i=e;i&&i!==t;i=i.offsetParent)n+=i.offsetLeft,r+=i.offsetTop;return{left:n,top:r,right:n+e.offsetWidth,bottom:r+e.offsetHeight,height:e.offsetHeight}}function ae(){let e=ne.value;if(!e)return;let t=t=>{let n=e.querySelector(`[data-node="${CSS.escape(t)}"]`);return n?ie(n,e):void 0},n=[];for(let e of l.value){let r=t(e.to),i=t(e.from);if(!r||!i)continue;let a=r.right,o=r.top+TF,s=i.left-2,c=i.top+TF;n.push({key:`${e.to}>${e.from}`,d:`M${a},${o} C${a+28},${o} ${s-28},${c} ${s},${c}`,kind:e.state===`pending`?`pending`:`other`})}for(let r of e.querySelectorAll(`[data-serves]`)){let i=t(r.dataset.serves),a=r.querySelector(`[data-session-icon]`);if(!i||!a)continue;let o=ie(a,e);n.push({key:`s:${r.dataset.session}`,d:`M${i.left+12},${i.bottom} V${o.top+o.height/2} H${o.left}`,kind:`session`})}re.value=n,D.value={width:e.offsetWidth,height:e.offsetHeight},ge||_e()}Tf(ne,ae),F([f,p,()=>Q.mainlines],()=>void tr(ae),{deep:!0});let oe={pending:`var(--muted-foreground)`,other:`var(--status-off)`,session:`var(--status-off)`},se={pending:void 0,other:`4 3`,session:`2 2`},O=J(()=>{let e=f.value.columns.length*308-DF,t=e=>Math.min(e,OF)*284-24;return Math.max(EF,e,t(f.value.free.length),t(h.value.length))}),ce=M(),le=M({x:0,y:0,zoom:1}),ue=M({width:0,height:0});function de(){let e=ce.value;e&&(ue.value={width:e.clientWidth,height:e.clientHeight})}Tf(ce,()=>{de(),ge||_e()});let fe=M(!1),pe;function me(e){fe.value=!0,le.value=e,clearTimeout(pe),pe=setTimeout(()=>fe.value=!1,320)}let ge=!1;function _e(){de(),D.value.width&&D.value.height&&ue.value.width&&ue.value.height&&(le.value=EP(D.value,ue.value),ge=!0)}let ve=()=>(de(),me(EP(D.value,ue.value))),ye=e=>(de(),me(TP(le.value,le.value.zoom*e,ue.value.width/2,ue.value.height/2))),A=J(()=>`${Math.round(le.value.zoom*100)}%`),be=0;function xe(e){let t=ce.value.getBoundingClientRect();if(e.ctrlKey||e.metaKey){e.preventDefault(),le.value=TP(le.value,wP(le.value.zoom*Math.exp(-e.deltaY*.01)),e.clientX-t.left,e.clientY-t.top);return}let n=performance.now()<be||!DP(e);if(e.preventDefault(),!n){Se(ce.value).scrollBy({top:Ce(e,e.deltaY),left:Ce(e,e.deltaX)});return}be=performance.now()+120,le.value={...le.value,x:le.value.x-e.deltaX,y:le.value.y-e.deltaY}}function Se(e){for(let t=e.parentElement;t;t=t.parentElement){let{overflowY:e}=getComputedStyle(t);if((e===`auto`||e===`scroll`)&&t.scrollHeight>t.clientHeight)return t}return document.scrollingElement??document.documentElement}let Ce=(e,t)=>e.deltaMode===1?t*16:e.deltaMode===2?t*window.innerHeight:t,we=M(!1);function Te(e){if(e.button!==0||e.target.closest(`button, a, [data-canvas-overlay]`))return;let t={x:e.clientX,y:e.clientY,vx:le.value.x,vy:le.value.y},n=!1,r=ce.value;try{r.setPointerCapture(e.pointerId)}catch{}let i=e=>{let r=e.clientX-t.x,i=e.clientY-t.y;!n&&Math.hypot(r,i)<kF||(n=!0,we.value=!0,le.value={...le.value,x:t.vx+r,y:t.vy+i})},a=()=>{r.removeEventListener(`pointermove`,i),r.removeEventListener(`pointerup`,a),r.removeEventListener(`pointercancel`,a),we.value=!1,n||C()};r.addEventListener(`pointermove`,i),r.addEventListener(`pointerup`,a),r.addEventListener(`pointercancel`,a)}let Ee=e=>Math.min(MF,Math.max(jF,e)),De=M(Ee(Number(cw(AF,340))||340)),Oe=J(()=>ue.value.width?Math.min(De.value,ue.value.width*.6):De.value);function ke(e){let t=e.clientX,n=Oe.value,r=e=>De.value=Ee(n+t-e.clientX),i=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),lw(AF,De.value)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)}return(e,t)=>u.value.length||p.value.length?(B(),V(`div`,{key:0,ref_key:`viewport`,ref:ce,class:k([`relative h-[70vh] w-full touch-none overflow-hidden rounded-xl border bg-background select-none`,we.value?`cursor-grabbing`:`cursor-grab`]),"data-canvas":``,onPointerdown:Te,onWheel:xe},[U(`div`,{ref_key:`canvas`,ref:ne,class:k([`absolute top-0 left-0 grid origin-top-left gap-y-4`,{"transition-transform duration-300 ease-out":fe.value}]),style:he({width:`${O.value}px`,columnGap:`${DF}px`,gridTemplateColumns:`repeat(${Math.max(f.value.columns.length,1)}, ${EF}px)`,transform:`translate(${le.value.x}px, ${le.value.y}px) scale(${le.value.zoom})`})},[(B(),V(`svg`,{class:`pointer-events-none absolute inset-0 overflow-visible`,width:D.value.width,height:D.value.height,"aria-hidden":`true`},[U(`defs`,null,[(B(),V(z,null,L([`pending`,`other`],e=>U(`marker`,{id:`run-arrow-${e}`,key:e,viewBox:`0 0 8 8`,refX:`7`,refY:`4`,markerWidth:`7`,markerHeight:`7`,orient:`auto`},[U(`path`,{d:`M0,0 L8,4 L0,8 z`,fill:oe[e]},null,8,mF)],8,pF)),64))]),(B(!0),V(z,null,L(re.value,e=>(B(),V(`path`,{key:e.key,d:e.d,fill:`none`,"stroke-width":`1.5`,stroke:oe[e.kind],"stroke-dasharray":se[e.kind],"marker-end":e.kind===`session`?void 0:`url(#run-arrow-${e.kind})`},null,8,hF))),128))],8,fF)),(B(!0),V(z,null,L(f.value.columns,(e,t)=>(B(),V(`div`,{key:t,class:`flex min-w-0 flex-col gap-4`},[(B(!0),V(z,null,L(e,e=>(B(),V(`div`,{key:e,class:`flex max-w-full flex-col gap-1.5`,style:he({width:`${EF}px`})},[W(FP,{id:e,picked:x(`mainline`,e),onPick:T},null,8,[`id`,`picked`]),(B(!0),V(z,null,L(m(e),t=>(B(),H(BP,{key:t.id,session:t,serves:e,picked:x(`session`,t.id),class:`ml-5`,onPick:e=>ee(t.id,e)},null,8,[`session`,`serves`,`picked`,`onPick`]))),128))],4))),128))]))),128)),f.value.free.length?(B(),V(`div`,{key:0,class:k([`col-span-full flex flex-col gap-1.5`,{"mt-6":f.value.columns.length}])},[U(`div`,gF,[(B(!0),V(z,null,L(f.value.free,e=>(B(),V(`div`,{key:e,class:`flex max-w-full flex-col gap-1.5`,style:he({width:`${EF}px`})},[W(FP,{id:e,picked:x(`mainline`,e),onPick:T},null,8,[`id`,`picked`]),(B(!0),V(z,null,L(m(e),t=>(B(),H(BP,{key:t.id,session:t,serves:e,picked:x(`session`,t.id),class:`ml-5`,onPick:e=>ee(t.id,e)},null,8,[`session`,`serves`,`picked`,`onPick`]))),128))],4))),128))])],2)):K(``,!0),h.value.length?(B(),V(`div`,_F,[U(`div`,vF,[(B(!0),V(z,null,L(h.value,e=>(B(),H(BP,{key:e.id,session:e,picked:x(`session`,e.id),class:`max-w-full`,style:he({width:`${EF}px`}),onPick:t=>ee(e.id,t)},null,8,[`session`,`picked`,`style`,`onPick`]))),128))])])):K(``,!0)],6),b.value?(B(),V(`aside`,{key:0,class:`absolute top-3 right-3 z-20 flex max-h-[calc(100%-1.5rem)] cursor-auto flex-col overflow-y-auto overscroll-contain rounded-xl shadow-lg`,style:he({width:`${Oe.value}px`}),"aria-label":`預覽`,"data-canvas-overlay":``,onWheel:t[0]||=au(()=>{},[`stop`])},[U(`div`,{class:`absolute inset-y-0 left-0 z-10 w-2 cursor-col-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`拖曳調整預覽寬度`,onPointerdown:au(ke,[`prevent`,`stop`])},null,32),W(dF,{picked:b.value,onPickMainline:T,onPickSession:ee},null,8,[`picked`])],36)):K(``,!0),v.value.length>=2?(B(),V(`div`,yF,[U(`div`,bF,[U(`span`,xF,`已選 `+j(v.value.length)+` 個`,1),W(N(qS),{variant:`ghost`,size:`sm`,onClick:E},{default:P(()=>[W(N(Pu)),t[4]||=G(`封存`,-1),U(`span`,SF,j(v.value.length),1)]),_:1}),W(N(qS),{variant:`ghost`,size:`icon-sm`,"aria-label":`清除選取`,onClick:t[1]||=e=>C()},{default:P(()=>[W(N($d))]),_:1})])])):K(``,!0),U(`div`,CF,[W(N(qS),{variant:`ghost`,size:`icon-sm`,class:`rounded-full`,"aria-label":`縮小`,onClick:t[2]||=e=>ye(1/N(1.2))},{default:P(()=>[W(N(Pd))]),_:1}),U(`button`,{type:`button`,class:`h-7 min-w-12 rounded-full px-1.5 tabular-nums hover:bg-accent`,title:`全部置入畫面`,"aria-label":`全部置入畫面`,onClick:ve},j(A.value),1),W(N(qS),{variant:`ghost`,size:`icon-sm`,class:`rounded-full`,"aria-label":`放大`,onClick:t[3]||=e=>ye(N(1.2))},{default:P(()=>[W(N(Rd))]),_:1})])],34)):(B(),V(`p`,wF,[...t[5]||=[G(`沒有主脈絡。在 hub 內執行 `,-1),U(`code`,null,`mainflow new mainline <slug> --title <title>`,-1),G(` 建立。`,-1)]]))}}),PF={class:`flex flex-col gap-8 px-6 pt-2 pb-10`},FF={key:0,"aria-labelledby":`attention`},IF={id:`attention`,class:`mb-2 text-sm font-medium`},LF={class:`ml-1 text-xs text-muted-foreground tabular-nums`},RF={class:`border-t`},zF=[`data-peek`,`aria-current`,`onClick`],BF={class:`shrink-0 font-mono text-xs text-muted-foreground`},VF={class:`min-w-0 truncate`},HF=[`title`],UF={class:`truncate`},WF={key:0,class:`hidden max-w-48 shrink-0 truncate text-xs text-muted-foreground xl:inline`},GF={"aria-labelledby":`running`},KF={id:`running`,class:`mb-2 flex items-center gap-1.5 text-sm font-medium`},qF={class:`text-xs font-normal text-muted-foreground tabular-nums`},JF={type:`button`,class:`grid size-5 place-items-center rounded-sm text-muted-foreground hover:text-foreground`,"aria-label":`依賴線的說明`},YF={class:`grid gap-8 xl:grid-cols-2`},XF={"aria-labelledby":`issues`,class:`-mx-6 min-w-0 self-start`},ZF={id:`issues`,class:`px-6 text-sm font-medium`},QF={class:`ml-1 text-xs text-muted-foreground tabular-nums`},$F={"aria-labelledby":`recent`,class:`-mx-6 min-w-0 self-start`},eI={class:`flex min-w-0 items-center gap-2`},tI={key:1,class:`shrink-0 font-mono text-xs text-muted-foreground`},nI=[`title`],rI=[`title`],iI={class:`text-xs text-muted-foreground`},aI=`箭頭由要先完成的主脈絡指向等待它的主脈絡;實線是還沒完成的依賴,虛線是已完成或無法確認的依賴。`,oI=I({__name:`Overview`,setup(e){let{open:t,current:n}=oC(),r=e=>n.value?.ref===e||void 0,i=J(()=>(Q.summary?.mainlines??[]).filter(e=>!e.archivedAt)),a=J(()=>i.value.filter(e=>e.status===`active`||e.status===`planning`||e.status===`paused`)),o=J(()=>[...new Set([...a.value.map(e=>e.id),...Q.relations.mainlineDeps.flatMap(e=>[e.from,e.to]).filter(e=>/^m\d{3}$/.test(e))])]);Er(()=>void _C(o.value,i.value.map(e=>e.id)));let s=e=>e.flatMap(e=>Q.mainlines[e.id]?[Q.mainlines[e.id]]:[]),c=J(()=>s(i.value)),l=J(()=>s(a.value)),u=J(()=>[...l.value.flatMap(e=>e.tasks.filter(e=>e.status===`blocked`).map(t=>({ref:YS(e.id,t.id),type:MC(t),status:t.status,id:`${e.id}/${t.id}`,title:t.title,icon:Zu,tone:`text-status-waiting`,reason:`卡住:${t.blockedBy?.reason??`沒有寫原因`}`,context:e.title}))),...l.value.flatMap(e=>e.decisions.filter(e=>e.status===`proposed`).map(t=>({ref:XS(e.id,t.id),type:`decision`,status:t.status,id:`${e.id}/${t.id}`,title:t.title,icon:Yu,tone:`text-warning`,reason:t.affects?.length?`待裁決,影響 ${t.affects.join(`、`)}`:`待裁決`,context:e.title}))),...Q.issues.filter(e=>e.status!==`closed`&&!e.archivedAt&&Aw(e.due)).map(e=>{let t=kw(e.due);return{ref:e.id,type:`issue`,status:e.status,id:e.id,title:e.title,icon:Hu,tone:t<0?`text-destructive`:`text-warning`,reason:t<0?`已逾期 ${-t} 天`:t===0?`今天到期`:`${t} 天後到期`}}),...Q.findings.filter(e=>e.status===`valid`&&!e.archivedAt&&e.reviewAfter&&kw(e.reviewAfter)<0).map(e=>({ref:e.id,type:`finding`,status:e.status,id:e.id,title:e.title,icon:zd,tone:`text-warning`,reason:`${e.reviewAfter} 起該重新確認是否仍成立`}))]),d=[`open`,`planned`],f=()=>Q.issues.filter(e=>!e.archivedAt&&e.status!==`closed`),p=cN({key:`overview.issues`,queryPrefix:`i.`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(d)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM}],sorts:[{key:`order`,label:`手動順序`,value:e=>e.order,dir:`asc`},{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`status`,label:`狀態`,value:e=>d.indexOf(e.status),dir:`asc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`planned`,label:`排入`,value:e=>e.plannedIn??e.due,dir:`asc`}],groups:[],defaultSort:`order`,defaultGroup:``},f),m=[{key:`name`,label:`名稱`,sort:`name`},{key:`status`,label:`狀態`,sort:`status`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`planned`,label:`排入或到期`,class:`max-w-48`,sort:`planned`,value:e=>e.plannedIn??e.due}];Er(()=>AC(f().map(e=>e.plannedIn)));let h=J(()=>a.value.length),g=J(()=>EC().length),_=[{value:`task`,label:`任務`},{value:`decision`,label:`決策`},{value:`issue`,label:`待辦`},{value:`ops`,label:`操作紀錄`}],v=new Date(Date.now()-6048e5).toLocaleDateString(`sv-SE`),y=J(()=>[...c.value.flatMap(e=>[...e.tasks.filter(e=>e.closedAt).map(t=>({kind:`task`,at:t.closedAt,ref:YS(e.id,t.id),id:`${e.id}/${t.id}`,status:t.status,text:t.status===`done`?`完成任務`:`放棄任務`,title:t.title})),...e.decisions.filter(e=>e.decidedAt).map(t=>({kind:`decision`,at:t.decidedAt,ref:XS(e.id,t.id),id:`${e.id}/${t.id}`,status:t.status,text:`裁決為${VC[t.status]??t.status}`,title:t.title}))]),...Q.issues.filter(e=>e.closedAt).map(e=>({kind:`issue`,at:e.closedAt,ref:e.id,id:e.id,status:e.status,text:`關閉待辦`,title:e.title})),...Q.ops.map(e=>({kind:`ops`,at:e.at,text:e.operation,title:e.target,ref:e.ref}))].filter(e=>e.at.slice(0,10)>=v).map((e,t)=>({...e,key:`${e.at}-${t}`}))),b=cN({key:`overview.activity`,queryPrefix:`a.`,id:e=>e.key,text:e=>`${e.id??``} ${e.text} ${e.title??``}`,filters:[{key:`kind`,label:`類型`,values:e=>[e.kind],options:_}],sorts:[{key:`at`,label:`時間`,value:e=>e.at,dir:`desc`},{key:`action`,label:`動作`,value:e=>e.text,dir:`asc`},{key:`name`,label:`對象`,value:e=>e.title,dir:`asc`}],groups:[],defaultSort:`at`,defaultGroup:``},()=>y.value),x=[{key:`name`,label:`對象`,sort:`name`},{key:`action`,label:`動作`,class:`max-w-56 truncate`,sort:`action`},{key:`at`,label:`時間`,sort:`at`}],S=e=>e.status?e.ref:void 0;return(e,n)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`總覽`,description:`現在要注意什麼、進行中的主脈絡與會話怎麼串在一起、還有哪些待辦、最近發生什麼。`})]),default:P(()=>[U(`div`,PF,[u.value.length?(B(),V(`section`,FF,[U(`h2`,IF,[n[0]||=G(`需要注意 `,-1),U(`span`,LF,j(u.value.length),1)]),U(`ul`,RF,[(B(!0),V(z,null,L(u.value,e=>(B(),V(`li`,{key:e.ref+e.reason,class:`flex h-9 cursor-pointer items-center gap-2 border-b px-2 transition-colors duration-[120ms] hover:bg-muted/50`,"data-peek":e.ref,"aria-current":r(e.ref),onClick:n=>N(t)(e.ref)},[W(qC,{type:e.type,status:e.status},null,8,[`type`,`status`]),U(`span`,BF,j(e.id),1),U(`span`,VF,j(e.title),1),U(`span`,{class:`ml-auto flex min-w-0 shrink items-center gap-1 text-xs text-muted-foreground`,title:e.reason},[(B(),H(fa(e.icon),{class:k([`size-3.5 shrink-0`,e.tone])},null,8,[`class`])),U(`span`,UF,j(e.reason),1)],8,HF),e.context?(B(),V(`span`,WF,j(e.context),1)):K(``,!0)],8,zF))),128))])])):K(``,!0),U(`section`,GF,[U(`h2`,KF,[n[1]||=G(` 進行中 `,-1),U(`span`,qF,j(h.value)+` 條主脈絡 · `+j(g.value)+` 個會話`,1),W(N(nA),{"open-delay":150,"close-delay":100},{default:P(()=>[W(N(iA),{"as-child":``},{default:P(()=>[U(`button`,JF,[W(N(Qu),{class:`size-3.5`})])]),_:1}),W(N(rA),{class:`w-72 text-xs`},{default:P(()=>[G(j(aI))]),_:1})]),_:1})]),W(NF)]),U(`div`,YF,[U(`section`,XF,[U(`h2`,ZF,[n[2]||=G(`待辦事項 `,-1),U(`span`,QF,j(N(p).total.value),1)]),W(jT,{view:N(p),grouping:!1},null,8,[`view`]),W(sT,{view:N(p),columns:m,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title},null,8,[`status`,`id`,`title`])]),status:P(({item:e})=>[W(Hw,{status:e.status},null,8,[`status`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),planned:P(({item:e})=>[e.plannedIn?(B(),H(dA,q({key:0},N(OC)(e.plannedIn),{onOpen:N(t)}),null,16,[`onOpen`])):e.due?(B(),H(Mw,{key:1,day:e.due},null,8,[`day`])):K(``,!0)]),empty:P(()=>[...n[3]||=[G(`沒有未處理或已排入的待辦。`,-1)]]),_:1},8,[`view`,`item-ref`])]),U(`section`,$F,[n[5]||=U(`h2`,{id:`recent`,class:`px-6 text-sm font-medium`},[G(`最近活動 `),U(`span`,{class:`ml-1 text-xs text-muted-foreground`},`7 天內`)],-1),W(jT,{view:N(b),grouping:!1},null,8,[`view`]),W(sT,{view:N(b),columns:x,"item-ref":S,limit:50},{name:P(({item:e})=>[U(`span`,eI,[e.status&&e.ref?(B(),H(qC,{key:0,type:N(NC)(e.ref),status:e.status},null,8,[`type`,`status`])):K(``,!0),e.id?(B(),V(`span`,tI,j(e.id),1)):K(``,!0),U(`span`,{class:k([`truncate`,{"font-mono text-xs text-muted-foreground":!e.status}]),title:e.title},j(e.title),11,nI),!e.status&&e.ref?(B(),H(dA,q({key:2},N(OC)(e.ref),{class:`ml-auto max-w-48 shrink-0`,onOpen:N(t)}),null,16,[`onOpen`])):K(``,!0)])]),action:P(({item:e})=>[U(`span`,{title:e.text},j(e.text),9,rI)]),at:P(({item:e})=>[U(`span`,iI,[W($j,{at:e.at},null,8,[`at`])])]),empty:P(()=>[...n[4]||=[G(`7 天內沒有活動。`,-1)]]),_:1},8,[`view`])])])])]),_:1}))}}),sI={key:0,class:`shrink-0 text-xs text-muted-foreground`},cI=I({__name:`SessionList`,setup(e){let t=[`active`,`paused`,`handed-off`,`ended`],n=e=>e.actions.find(e=>e.status===`doing`)??e.actions.find(e=>e.status===`todo`),r=e=>[...new Set(e.actions.flatMap(e=>e.serves.map(e=>e.slice(0,4))))],i=e=>e?`${e} ${Q.summary?.mainlines.find(t=>t.id===e)?.title??``}`.trim():`沒有服務的主脈絡`,a=e=>[e.started,...e.actions.flatMap(e=>[e.startedAt,e.doneAt])].filter(e=>!!e).reduce((e,t)=>t>e?t:e),o=e=>Q.sessions.filter(t=>t.delegatedFrom===e).sort((e,t)=>e.started.localeCompare(t.started)),s=(e,t=1)=>o(e.id).flatMap(e=>[{item:e,depth:t},...s(e,t+1)]),c=J(()=>{let e=new Set(Q.sessions.map(e=>e.id));return Q.sessions.filter(t=>!t.delegatedFrom||!e.has(t.delegatedFrom))}),l=cN({key:`sessions`,id:e=>e.id,text:e=>`${CC(e)} ${e.branch??``}`,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(t)},{key:`agent`,label:`agent`,values:e=>[e.agent]},{key:`branch`,label:`分支`,values:e=>e.branch?[e.branch]:[]},{key:`mainline`,label:`主脈絡`,values:r,optionLabel:i}],sorts:[{key:`name`,label:`名稱`,value:e=>CC(e),dir:`asc`},{key:`serves`,label:`服務的任務`,value:e=>p(e),dir:`asc`},{key:`subagents`,label:`子代理數`,value:e=>o(e.id).length,dir:`desc`},{key:`started`,label:`開始時間`,value:e=>e.started,dir:`desc`},{key:`active`,label:`最後活動`,value:a,dir:`desc`}],groups:[nN(t),{key:`mainline`,label:`主脈絡`,value:e=>r(e)[0]??``,groupLabel:i},{key:`day`,label:`日期`,value:e=>e.started.slice(0,10),latestFirst:!0}],defaultSort:`started`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt,nested:e=>s(e)},()=>c.value),u=lN(l,{kind:`session`,archived:e=>!!e.archivedAt}),d=[{key:`name`,label:`會話`,sort:`name`},{key:`serves`,label:`服務的任務`,class:`max-w-56`,sort:`serves`,value:e=>p(e),optional:!0},{key:`subagents`,label:`子代理`,class:`text-xs text-muted-foreground tabular-nums`,sort:`subagents`,value:e=>o(e.id).length||void 0,optional:!0},{key:`started`,label:`開始`,class:`text-xs text-muted-foreground`,sort:`started`}],{open:f}=oC();Er(()=>AC(Q.sessions.flatMap(e=>e.actions.flatMap(e=>e.serves))));let p=e=>(n(e)??e.actions[0])?.serves[0]?.split(`#`)[0],m=e=>vC(()=>uC.archiveSession(e.id,!e.archivedAt));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`會話`,description:`在這台電腦上推進過 hub 的 AI 會話,只存在本機,不入版控。`}),W(jT,{view:N(l)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(l),selection:N(u),columns:d,"item-ref":e=>N(ZS)(e.id)},{name:P(({item:e,depth:t})=>[W(BT,{status:e.status,title:N(CC)(e),muted:t>0||!!e.archivedAt,depth:t},{default:P(()=>[e.archivedAt?(B(),V(`span`,sI,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`title`,`muted`,`depth`])]),serves:P(({item:e})=>[p(e)?(B(),H(dA,q({key:0},N(OC)(p(e)),{onOpen:N(f)}),null,16,[`onOpen`])):K(``,!0)]),subagents:P(({item:e,depth:t})=>[G(j(t===0&&o(e.id).length?o(e.id).length:``),1)]),started:P(({item:e})=>[W($j,{at:e.started},null,8,[`at`])]),actions:P(({item:e})=>[W(Dw,{archived:!!e.archivedAt,onToggle:t=>m(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[0]||=[G(`這台電腦上沒有會話資料。會話只存在 `,-1),U(`code`,null,`.mainflow/local/sessions/`,-1),G(`,不入版控。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(u)},null,8,[`selection`])]),_:1}))}}),lI=e=>Array.isArray(e)?e.join(`/`):e??``,uI=Om({history:Xp(),routes:[{path:`/`,component:oI},{path:`/mainlines`,component:vP},{path:`/mainlines/:m`,component:gP},{path:`/issues`,component:mN},{path:`/findings`,component:fN},{path:`/ops`,component:SP},{path:`/sessions`,component:cI},{path:`/mainlines/:m/tasks/:t`,redirect:e=>({path:`/mainlines/${lI(e.params.m)}`,query:{view:`tasks`,peek:YS(lI(e.params.m),lI(e.params.t))}})},{path:`/mainlines/:m/decisions/:d`,redirect:e=>({path:`/mainlines/${lI(e.params.m)}`,query:{view:`decisions`,peek:XS(lI(e.params.m),lI(e.params.d))}})},{path:`/mainlines/:m/files/:path(.*)`,redirect:e=>({path:`/mainlines/${lI(e.params.m)}`,query:{peek:QS(lI(e.params.m),lI(e.params.path))}})},{path:`/sessions/:s`,redirect:e=>({path:`/sessions`,query:{peek:ZS(lI(e.params.s))}})}]});hu(ww).use(uI).mount(`#app`);
|
|
78
|
+
`);if(l){let e=document.querySelector(`style[data-mainflow-view="${s}"]`);e||(e=document.createElement(`style`),e.dataset.mainflowView=s,document.head.append(e)),e.textContent=l}return c}var AA={key:0,class:`mb-2 text-sm`},jA=[`src`,`title`],MA=[`src`,`alt`],NA={key:6,class:`overflow-auto rounded-lg border bg-muted/50 p-3 font-mono text-xs leading-relaxed`},PA=I({__name:`CustomContent`,props:{path:{},ctx:{}},setup(e){let t=e,n=[`png`,`jpg`,`jpeg`,`gif`,`svg`,`webp`],r=e=>e.slice(e.lastIndexOf(`.`)+1).toLowerCase(),i=M(``),a=M(``),o=M(null),s=pn(null),c;async function l(){a.value=``,c?.(),c=void 0,s.value=null;let e=r(t.path);try{if(e===`vue`)s.value=await kA(await(await fetch(dC(t.path))).text(),t.path);else if(e===`js`||e===`mjs`){let e=await TA(()=>import(dC(t.path)),[]);if(!e.mount)throw Error(`the module must export mount(el, ctx)`);o.value&&(c=e.mount(o.value,t.ctx)??void 0)}else e!==`html`&&!n.includes(e)&&(i.value=await(await fetch(dC(t.path))).text())}catch(e){a.value=e.message}}return F(()=>[t.path,t.ctx],()=>void l(),{immediate:!0,flush:`post`}),na(()=>c?.()),(t,c)=>(B(),V(`div`,null,[a.value?(B(),V(`p`,AA,`無法渲染 `+j(e.path)+`:`+j(a.value),1)):K(``,!0),r(e.path)===`md`?(B(),H(bk,{key:1,source:i.value},null,8,[`source`])):r(e.path)===`html`?(B(),V(`iframe`,{key:2,src:N(dC)(e.path),sandbox:`allow-scripts allow-same-origin`,class:`h-[480px] w-full rounded-lg border bg-white`,title:e.path},null,8,jA)):n.includes(r(e.path))?(B(),V(`img`,{key:3,src:N(dC)(e.path),alt:e.path,class:`max-w-full rounded-lg border`},null,8,MA)):r(e.path)===`js`||r(e.path)===`mjs`?(B(),V(`div`,{key:4,ref_key:`mountPoint`,ref:o},null,512)):r(e.path)===`vue`&&s.value?(B(),H(fa(s.value),{key:5,ctx:e.ctx},null,8,[`ctx`])):r(e.path)===`vue`?K(``,!0):(B(),V(`pre`,NA,j(i.value),1))]))}}),FA=[`主脈絡文件`,`任務文件`,`產物`,`決策`,`自訂視圖`,`參考來源`],IA=e=>e.slice(e.lastIndexOf(`/`)+1),LA=e=>IA(e).includes(`.`)?IA(e).slice(IA(e).lastIndexOf(`.`)+1).toLowerCase():``;function RA(e){let t=t=>t.slice(e.dir.length+1),n=(e,n,r,i)=>({key:e,name:IA(e),kind:n,ext:LA(e),source:r,inMainline:t(e),updated:i}),r=(t,n)=>(t??[]).map(t=>({key:`${n??e.id}:${t.url??t.path}`,name:t.title,kind:`參考來源`,ext:t.url?``:LA(t.path??``),source:n,url:t.url,path:t.path,updated:t.date}));return[n(e.file,`主脈絡文件`,void 0,e.updated),...e.tasks.flatMap(e=>[n(e.file,`任務文件`,e.id,e.updated),...e.artifacts.map(t=>n(t,`產物`,e.id))]),...e.decisions.map(e=>n(e.file,`決策`,e.id,e.updated)),...e.views.map(e=>n(e,`自訂視圖`)),...r(e.refs),...e.tasks.flatMap(e=>r(e.refs,e.id))]}function zA(e,t){return RA(e).find(e=>e.key===t)?.kind??``}var BA={key:0,class:`pb-8`},VA=[`title`],HA=[`href`],UA={key:1,class:`px-5 text-muted-foreground`},WA=I({__name:`FilePeek`,props:{m:{},path:{}},setup(e){let t=e,{mainline:n}=fA(()=>t.m),r=J(()=>n.value?`${n.value.dir}/${t.path}`:``),i=J(()=>n.value?.tasks.find(e=>r.value.startsWith(`${e.dir}/`))),a=J(()=>n.value?.decisions.find(e=>e.file===r.value)),o=J(()=>n.value?zA(n.value,r.value):``),s=J(()=>({mainline:n.value,task:i.value})),c=J(()=>t.path.slice(t.path.lastIndexOf(`/`)+1));return(t,l)=>N(n)?(B(),V(`div`,BA,[W(kk,{title:c.value,mono:``,type:N(FC)(e.path,o.value||void 0)},{default:P(()=>[U(`span`,null,j(o.value),1),U(`span`,{class:`truncate font-mono`,title:e.path},j(e.path),9,VA),W(N(qS),{variant:`ghost`,size:`xs`,class:`ml-auto text-muted-foreground`,"as-child":``},{default:P(()=>[U(`a`,{href:N(dC)(r.value),target:`_blank`},[W(N(Gd)),l[0]||=G(`原始檔`,-1)],8,HA)]),_:1})]),_:1},8,[`title`,`type`]),W(Nk,null,{default:P(()=>[W(PA,{path:r.value,ctx:s.value},null,8,[`path`,`ctx`])]),_:1}),W(Nk,{title:`所屬`},{default:P(()=>[a.value?(B(),H(Rk,{key:0,peek:N(XS)(e.m,a.value.id),id:a.value.id,title:a.value.title,status:a.value.status},null,8,[`peek`,`id`,`title`,`status`])):i.value?(B(),H(Rk,{key:1,peek:N(YS)(e.m,i.value.id),id:i.value.id,title:i.value.title,status:i.value.status},null,8,[`peek`,`id`,`title`,`status`])):K(``,!0),W(Rk,{peek:e.m,id:e.m,title:N(n).title,status:N(n).status},null,8,[`peek`,`id`,`title`,`status`])]),_:1})])):(B(),V(`p`,UA,`載入 `+j(e.m)+`…`,1))}}),GA={key:0,class:`pb-8`},KA={class:`text-xs`},qA={class:`text-xs`},JA={class:`text-xs`},YA={key:1,class:`px-5 text-muted-foreground`},XA=I({__name:`FindingPeek`,props:{id:{}},setup(e){let t=e,{open:n}=oC(),r=J(()=>Q.findings.find(e=>e.id===t.id)),i=()=>r.value&&vC(()=>uC.archiveFinding(r.value.id,!r.value.archivedAt,r.value.version));return AC([r.value?.origin]),(a,o)=>r.value?(B(),V(`div`,GA,[W(kk,{id:r.value.id,title:r.value.title,type:`finding`,status:r.value.status},{default:P(()=>[W(Hw,{status:r.value.status},null,8,[`status`]),W(Dw,{archived:!!r.value.archivedAt,onToggle:i},null,8,[`archived`])]),_:1},8,[`id`,`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[r.value.appliesTo?.length?(B(),H($,{key:0,label:`適用範圍`,icon:N(pd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.appliesTo,e=>(B(),H(wk,{key:e,text:e},null,8,[`text`]))),128))]),_:1},8,[`icon`])):K(``,!0),r.value.reviewAfter?(B(),H($,{key:1,label:`重新確認`,icon:N(zd)},{default:P(()=>[W(Mw,{day:r.value.reviewAfter,ended:r.value.status===`obsolete`},null,8,[`day`,`ended`])]),_:1},8,[`icon`])):K(``,!0),r.value.origin?(B(),H($,{key:2,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(r.value.origin),{onOpen:o[0]||=e=>N(n)(e,{chain:!0})}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.category?(B(),H($,{key:3,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(r.value.category),1)]),_:1},8,[`icon`])):K(``,!0),r.value.labels?.length?(B(),H($,{key:4,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,KA,j(r.value.created),1)]),_:1},8,[`icon`]),r.value.closedAt?(B(),H($,{key:5,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,qA,j(r.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),r.value.resolution?(B(),H($,{key:6,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(r.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),r.value.archivedAt?(B(),H($,{key:7,label:`封存`,icon:N(Pu)},{default:P(()=>[U(`span`,JA,j(r.value.archivedAt),1)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),r.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:r.value.body},null,8,[`source`])]),_:1})):K(``,!0),W(Jk,{self:t.id,links:r.value.links},null,8,[`self`,`links`]),r.value.refs?.length?(B(),H(Nk,{key:1,title:`參考來源`,count:r.value.refs.length},{default:P(()=>[W($k,{refs:r.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0)])):(B(),V(`p`,YA,`找不到發現 `+j(e.id)+`。`,1))}}),ZA={key:0,class:`pb-8`},QA={key:0,class:`text-xs`},$A={class:`text-xs`},ej={class:`text-xs`},tj={class:`text-xs`},nj={key:1,class:`px-5 text-muted-foreground`},rj=I({__name:`IssuePeek`,props:{id:{}},setup(e){let t=e,{open:n}=oC(),r=J(()=>Q.issues.find(e=>e.id===t.id)),i=e=>n(e,{chain:!0}),a=()=>r.value&&vC(()=>uC.archiveIssue(r.value.id,!r.value.archivedAt,r.value.version));return AC([r.value?.origin,r.value?.plannedIn]),(n,o)=>r.value?(B(),V(`div`,ZA,[W(kk,{id:r.value.id,title:r.value.title,type:`issue`,status:r.value.status},{default:P(()=>[W(Hw,{status:r.value.status},null,8,[`status`]),W(Dw,{archived:!!r.value.archivedAt,onToggle:a},null,8,[`archived`])]),_:1},8,[`id`,`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[r.value.priority?(B(),H($,{key:0,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:r.value.priority},null,8,[`priority`]),r.value.priority===`P2`?(B(),V(`span`,QA,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),r.value.due?(B(),H($,{key:1,label:`到期`,icon:N(Hu)},{default:P(()=>[W(Mw,{day:r.value.due,ended:r.value.status===`closed`},null,8,[`day`,`ended`])]),_:1},8,[`icon`])):K(``,!0),r.value.plannedIn?(B(),H($,{key:2,label:`排入`,icon:N(Wu)},{default:P(()=>[W(dA,q(N(OC)(r.value.plannedIn),{onOpen:i}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.origin?(B(),H($,{key:3,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(r.value.origin),{onOpen:i}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.category?(B(),H($,{key:4,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(r.value.category),1)]),_:1},8,[`icon`])):K(``,!0),r.value.labels?.length?(B(),H($,{key:5,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,$A,j(r.value.created),1)]),_:1},8,[`icon`]),r.value.closedAt?(B(),H($,{key:6,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,ej,j(r.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),r.value.resolution?(B(),H($,{key:7,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(r.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),r.value.archivedAt?(B(),H($,{key:8,label:`封存`,icon:N(Pu)},{default:P(()=>[U(`span`,tj,j(r.value.archivedAt),1)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),r.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:r.value.body},null,8,[`source`])]),_:1})):K(``,!0),W(Jk,{self:t.id,links:r.value.links},null,8,[`self`,`links`]),r.value.refs?.length?(B(),H(Nk,{key:1,title:`參考來源`,count:r.value.refs.length},{default:P(()=>[W($k,{refs:r.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0)])):(B(),V(`p`,nj,`找不到待辦 `+j(e.id)+`。`,1))}}),ij=I({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean},unmountOnHide:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=Jh(e,t);return(e,t)=>(B(),H(N(kg),q({"data-slot":`dialog`},N(n)),{default:P(t=>[R(e.$slots,`default`,A(Cs(t)))]),_:3},16))}}),aj=I({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=ff(t,`class`);return(e,r)=>(B(),H(N(__),q({"data-slot":`dialog-overlay`},N(n),{class:N(KS)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),oj=I({inheritAttrs:!1,__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=Jh(ff(n,`class`),r);return(t,r)=>(B(),H(N(y_),null,{default:P(()=>[W(aj),W(N(m_),q({"data-slot":`dialog-content`},{...t.$attrs,...N(i)},{class:N(KS)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,n.class)}),{default:P(()=>[R(t.$slots,`default`),e.showCloseButton?(B(),H(N(Ag),{key:0,"data-slot":`dialog-close`,class:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`},{default:P(()=>[W(N($d)),r[0]||=U(`span`,{class:`sr-only`},`Close`,-1)]),_:1})):K(``,!0)]),_:3},16,[`class`])]),_:3}))}}),sj=I({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(h_),q({"data-slot":`dialog-description`},N(n),{class:N(KS)(`text-muted-foreground text-sm`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),cj=I({__name:`DialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!1}},setup(e){let t=e;return(n,r)=>(B(),V(`div`,{"data-slot":`dialog-footer`,class:k(N(KS)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,t.class))},[R(n.$slots,`default`),e.showCloseButton?(B(),H(N(Ag),{key:0,"as-child":``},{default:P(()=>[W(N(qS),{variant:`outline`},{default:P(()=>[...r[0]||=[G(` Close `,-1)]]),_:1})]),_:1})):K(``,!0)],2))}}),lj=I({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(B(),V(`div`,{"data-slot":`dialog-header`,class:k(N(KS)(`flex flex-col gap-2 text-center sm:text-left`,t.class))},[R(e.$slots,`default`)],2))}}),uj=I({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(b_),q({"data-slot":`dialog-title`},N(n),{class:N(KS)(`text-lg leading-none font-semibold`,t.class)}),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),dj={class:`break-words`},fj={key:2,class:`font-mono`},pj=I({__name:`EvidenceText`,props:{text:{}},setup(e){let t=e,{to:n}=oC(),r=/(\.mainflow\/mainlines\/(m\d{3})-[^/\s]+\/([^\s,、;))]+))|(\bm\d{3}\/[td]\d{3}(?:#c\d{3})?\b|\b[if]\d{3}\b)|(\b[0-9a-f]{7,40}\b)|([\w./-]+\.\w+:\d+(?:-\d+)?)/g,i=J(()=>{let e=[],n=0;for(let i of t.text.matchAll(r)){let r=i.index??0;r>n&&e.push({kind:`text`,value:t.text.slice(n,r)});let[a,o,s,c,l,u]=i;o&&!/[{}*]/.test(c)?e.push({kind:`file`,value:a,peek:QS(s,c)}):l?e.push({kind:`ref`,value:a,peek:l.split(`#`)[0]}):u&&/\d/.test(u)&&/[a-f]/.test(u)?e.push({kind:`commit`,value:a}):!o&&!u?e.push({kind:`code`,value:a}):e.push({kind:`text`,value:a}),n=r+a.length}return n<t.text.length&&e.push({kind:`text`,value:t.text.slice(n)}),e}),a=e=>e.slice(e.lastIndexOf(`/`)+1);return(e,t)=>(B(),V(`span`,dj,[(B(!0),V(z,null,L(i.value,(e,r)=>(B(),V(z,{key:r},[e.kind===`ref`||e.kind===`file`?(B(),H(N(bm),{key:0,to:N(n)(e.peek,{chain:!0}),class:`font-mono text-foreground underline decoration-border underline-offset-4 hover:decoration-foreground`,title:e.value,onClick:t[0]||=au(()=>{},[`stop`])},{default:P(()=>[G(j(e.kind===`file`?a(e.value):e.value),1)]),_:2},1032,[`to`,`title`])):e.kind===`commit`?(B(),H(wk,{key:1,text:e.value,class:`align-baseline`},null,8,[`text`])):e.kind===`code`?(B(),V(`code`,fj,j(e.value),1)):(B(),V(z,{key:3},[G(j(e.value),1)],64))],64))),128))]))}}),mj={class:`flex flex-col`},hj={key:1,class:`mt-0.5 grid size-4 shrink-0 place-items-center rounded-[4px] border border-dashed text-[10px] text-muted-foreground`,"aria-label":`已不需要`},gj={class:`flex min-w-0 flex-1 flex-col gap-0.5`},_j={class:`flex min-w-0 items-start gap-2`},vj=[`title`],yj={key:0,class:`text-xs text-muted-foreground`},bj={key:1,class:`text-xs text-muted-foreground`},xj={key:0},Sj={key:2,class:`text-xs text-muted-foreground`},Cj={key:3,class:`text-xs text-muted-foreground`},wj={key:1,class:`text-sm text-muted-foreground`},Tj={key:0,class:`text-xs text-muted-foreground`},Ej=I({__name:`Checklist`,props:{items:{},refPrefix:{},version:{}},setup(e){let t=e,n=J(()=>t.items.filter(e=>!e.done&&!e.dropped)),r=J(()=>t.items.filter(e=>e.done||e.dropped)),i=M(!1),a=J(()=>[...n.value,...i.value?r.value:[]]),o=M(null),s=M(``);async function c(e){if(e.done){await vC(()=>uC.check(`${t.refPrefix}${e.id}`,!1,void 0,t.version));return}o.value=e,s.value=``}async function l(){let e=o.value;e&&s.value.trim()&&await vC(()=>uC.check(`${t.refPrefix}${e.id}`,!0,s.value.trim(),t.version))&&(o.value=null)}return(t,n)=>(B(),V(z,null,[U(`ul`,mj,[(B(!0),V(z,null,L(a.value,e=>(B(),V(`li`,{key:e.id,class:`-mx-2 flex gap-3 rounded-md px-2 py-1.5 transition-colors duration-[120ms] hover:bg-accent/50`},[e.dropped?(B(),V(`span`,hj,`–`)):(B(),H(N(Nw),{key:0,"model-value":e.done||o.value?.id===e.id,class:`mt-0.5`,"aria-label":e.done?`取消勾選 ${e.id}`:`勾選 ${e.id}`,"onUpdate:modelValue":t=>c(e)},null,8,[`model-value`,`aria-label`,`onUpdate:modelValue`])),U(`div`,gj,[U(`div`,_j,[W(wk,{text:e.id,class:`mt-px shrink-0`},null,8,[`text`]),U(`span`,{class:k([`min-w-0 flex-1`,{"text-muted-foreground":e.done,"text-muted-foreground line-through":e.dropped}])},j(e.text),3),(B(!0),V(z,null,L(e.serves??[],e=>(B(),V(`span`,{key:e,class:`shrink-0 rounded-sm bg-secondary px-1.5 font-mono text-[11px] text-muted-foreground`,title:`推進解決條件 ${e}`},j(e),9,vj))),128))]),e.doneWhen&&!e.done&&!e.dropped?(B(),V(`p`,yj,`完成定義:`+j(e.doneWhen),1)):K(``,!0),e.done&&e.evidence?(B(),V(`p`,bj,[W(pj,{text:e.evidence},null,8,[`text`]),e.doneAt?(B(),V(`span`,xj,` · `+j(e.doneAt),1)):K(``,!0)])):K(``,!0),e.dropped?(B(),V(`p`,Sj,[n[6]||=G(` 不需要了`,-1),e.supersededBy?(B(),V(z,{key:0},[n[4]||=G(`,由 `,-1),W(pj,{text:e.supersededBy},null,8,[`text`]),n[5]||=G(` 取代`,-1)],64)):K(``,!0),e.note?(B(),V(z,{key:1},[G(`:`+j(e.note),1)],64)):K(``,!0)])):e.note?(B(),V(`p`,Cj,j(e.note),1)):K(``,!0)])]))),128))]),r.value.length?(B(),H(N(qS),{key:0,variant:`ghost`,size:`xs`,class:`-ml-2 text-muted-foreground`,"aria-expanded":i.value,onClick:n[0]||=e=>i.value=!i.value},{default:P(()=>[i.value?(B(),H(N(Ku),{key:0})):(B(),H(N(Ju),{key:1})),G(j(i.value?`收起已完成`:`已完成 ${r.value.length} 個`),1)]),_:1},8,[`aria-expanded`])):K(``,!0),e.items.length===0?(B(),V(`p`,wj,`沒有項目`)):K(``,!0),W(N(ij),{open:o.value!==null,"onUpdate:open":n[3]||=e=>!e&&(o.value=null)},{default:P(()=>[W(N(oj),{class:`sm:max-w-lg`},{default:P(()=>[W(N(lj),null,{default:P(()=>[W(N(uj),null,{default:P(()=>[G(`勾選 `+j(o.value?.id),1)]),_:1}),W(N(sj),null,{default:P(()=>[G(j(o.value?.text),1)]),_:1})]),_:1}),U(`form`,{class:`flex flex-col gap-3`,onSubmit:au(l,[`prevent`])},[o.value?.doneWhen?(B(),V(`p`,Tj,`完成定義:`+j(o.value.doneWhen),1)):K(``,!0),W(N(ST),{modelValue:s.value,"onUpdate:modelValue":n[1]||=e=>s.value=e,autofocus:``,placeholder:`證據:commit、檔案:行號或指令輸出`,"aria-label":`證據`},null,8,[`modelValue`]),W(N(cj),null,{default:P(()=>[W(N(qS),{type:`button`,variant:`ghost`,onClick:n[2]||=e=>o.value=null},{default:P(()=>[...n[7]||=[G(`取消`,-1)]]),_:1}),W(N(qS),{type:`submit`,disabled:!s.value.trim()},{default:P(()=>[...n[8]||=[G(`勾選`,-1)]]),_:1},8,[`disabled`])]),_:1})],32)]),_:1})]),_:1},8,[`open`])],64))}}),Dj=[`title`],Oj={class:`h-1.5 w-14 overflow-hidden rounded-full bg-primary/20`},kj={class:`min-w-7 tabular-nums`},Aj=I({__name:`ProgressBar`,props:{done:{},total:{}},setup(e){let t=e,n=J(()=>t.total===0?0:Math.round(t.done/t.total*100));return(t,r)=>(B(),V(`span`,{class:`inline-flex items-center gap-2 text-xs text-muted-foreground`,title:`${e.done}/${e.total}`},[U(`span`,Oj,[U(`span`,{class:`block h-full rounded-full bg-primary`,style:he({width:`${n.value}%`})},null,4)]),U(`span`,kj,j(e.done)+`/`+j(e.total),1)],8,Dj))}}),jj={key:0,class:`text-xs`},Mj={class:`text-xs`},Nj={class:`text-xs`},Pj={class:`text-xs tabular-nums`},Fj={class:`text-xs`},Ij={class:`flex flex-col gap-2`},Lj={class:`mr-2 font-mono text-xs text-muted-foreground`},Rj={class:`w-full text-xs`},zj={class:`py-1.5 tabular-nums`},Bj={class:`text-right tabular-nums`},Vj={class:`text-right tabular-nums`},Hj={class:`pl-3 text-muted-foreground`},Uj={key:0,class:`text-sm text-muted-foreground`},Wj=I({__name:`MainlineBody`,props:{mainline:{},columns:{default:1}},setup(e){let t=e,{open:n}=oC(),r=J(()=>t.mainline),i=J(()=>r.value.tasks.flatMap(e=>e.checklist).filter(e=>!e.dropped)),a=J(()=>r.value.criteria.filter(e=>!e.dropped)),o=J(()=>r.value.decisions.filter(e=>e.status===`proposed`)),s=J(()=>Math.round((r.value.costs??[]).reduce((e,t)=>e+(t.actual??0),0)*100)/100),c=J(()=>r.value.budget?.unit??r.value.costs?.[0]?.unit??``),l=J(()=>Q.issues.filter(e=>!e.archivedAt&&(e.origin?.startsWith(`${r.value.id}/`)||e.plannedIn?.startsWith(`${r.value.id}/`)))),u=J(()=>DC(r.value.id)),d=[`done`,`dropped`];return(t,f)=>(B(),V(z,null,[W(Nk,null,{default:P(()=>[W(YT,{columns:e.columns},{default:P(()=>[W($,{label:`解決條件`,icon:N(Yd)},{default:P(()=>[W(Aj,{done:a.value.filter(e=>e.done).length,total:a.value.length},null,8,[`done`,`total`])]),_:1},8,[`icon`]),W($,{label:`checklist`,icon:N(Dd)},{default:P(()=>[W(Aj,{done:i.value.filter(e=>e.done).length,total:i.value.length},null,8,[`done`,`total`])]),_:1},8,[`icon`]),r.value.priority?(B(),H($,{key:0,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:r.value.priority},null,8,[`priority`]),r.value.priority===`P2`?(B(),V(`span`,jj,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),r.value.due?(B(),H($,{key:1,label:`到期`,icon:N(Hu)},{default:P(()=>[W(Mw,{day:r.value.due,ended:d.includes(r.value.status)},null,8,[`day`,`ended`])]),_:1},8,[`icon`])):K(``,!0),r.value.category?(B(),H($,{key:2,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(r.value.category),1)]),_:1},8,[`icon`])):K(``,!0),r.value.labels?.length?(B(),H($,{key:3,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(r.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,Mj,j(r.value.created),1)]),_:1},8,[`icon`]),r.value.closedAt?(B(),H($,{key:4,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,Nj,j(r.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),r.value.resolution?(B(),H($,{key:5,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(r.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),r.value.origin?(B(),H($,{key:6,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(r.value.origin),{onOpen:f[0]||=e=>N(n)(e,{chain:!0})}),null,16)]),_:1},8,[`icon`])):K(``,!0),r.value.budget||r.value.costs?.length?(B(),H($,{key:7,label:`花費`,icon:N(Zd)},{default:P(()=>[U(`span`,Pj,[G(j(s.value),1),r.value.budget?(B(),V(z,{key:0},[G(` / `+j(r.value.budget.amount),1)],64)):K(``,!0),G(` `+j(c.value),1)])]),_:1},8,[`icon`])):K(``,!0),r.value.archivedAt?(B(),H($,{key:8,label:`封存`,icon:N(Pu)},{default:P(()=>[U(`span`,Fj,j(r.value.archivedAt),1)]),_:1},8,[`icon`])):K(``,!0)]),_:1},8,[`columns`])]),_:1}),o.value.length?(B(),H(Nk,{key:0,title:`待裁決的決策`,count:o.value.length},{default:P(()=>[U(`div`,Ij,[(B(!0),V(z,null,L(o.value,e=>(B(),H(N(GT),{key:e.id,variant:`warning`,class:`cursor-pointer transition-colors hover:bg-accent/50`,onClick:t=>N(n)(N(XS)(r.value.id,e.id),{chain:!0})},{default:P(()=>[W(N(Yu)),W(N(qT),null,{default:P(()=>[U(`span`,Lj,j(e.id),1),G(j(e.title),1)]),_:2},1024),e.affects?.length?(B(),H(N(KT),{key:0,class:`text-xs text-muted-foreground`},{default:P(()=>[G(`在等它的有 `+j(e.affects.join(`、`)),1)]),_:2},1024)):K(``,!0)]),_:2},1032,[`onClick`]))),128))])]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`解決條件`,count:r.value.criteria.length},{default:P(()=>[W(Ej,{items:r.value.criteria,"ref-prefix":`${r.value.id}#`,version:r.value.version},null,8,[`items`,`ref-prefix`,`version`])]),_:1},8,[`count`]),r.value.body.trim()?(B(),H(Nk,{key:1,title:`內文`},{default:P(()=>[W(bk,{source:r.value.body},null,8,[`source`])]),_:1})):K(``,!0),W(Jk,{self:r.value.id,links:r.value.links,mainline:``},null,8,[`self`,`links`]),r.value.refs?.length?(B(),H(Nk,{key:2,title:`參考來源`,count:r.value.refs.length},{default:P(()=>[W($k,{refs:r.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0),r.value.costs?.length?(B(),H(Nk,{key:3,title:`花費明細`,count:r.value.costs.length},{default:P(()=>[U(`table`,Rj,[f[1]||=U(`thead`,{class:`text-muted-foreground`},[U(`tr`,{class:`border-b`},[U(`th`,{class:`py-1.5 text-left font-medium`},`日期`),U(`th`,{class:`text-left font-medium`},`項目`),U(`th`,{class:`text-right font-medium`},`預估`),U(`th`,{class:`text-right font-medium`},`實際`),U(`th`,{class:`pl-3 text-left font-medium`},`備註`)])],-1),U(`tbody`,null,[(B(!0),V(z,null,L(r.value.costs,(e,t)=>(B(),V(`tr`,{key:t,class:`border-b`},[U(`td`,zj,j(e.date),1),U(`td`,null,j(e.item),1),U(`td`,Bj,j(e.estimate??``),1),U(`td`,Vj,j(e.actual??``),1),U(`td`,Hj,j(e.note??``),1)]))),128))])])]),_:1},8,[`count`])):K(``,!0),l.value.length?(B(),H(Nk,{key:4,title:`相關的待辦`,count:l.value.length},{default:P(()=>[(B(!0),V(z,null,L(l.value,e=>(B(),H(Rk,{key:e.id,peek:e.id,id:e.id,title:e.title,status:e.status},null,8,[`peek`,`id`,`title`,`status`]))),128))]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`推進過它的會話`,count:u.value.length},{default:P(()=>[(B(!0),V(z,null,L(u.value,({session:e,actions:t})=>(B(),H(Rk,{key:e.id,peek:N(ZS)(e.id),title:N(CC)(e),status:e.status},{default:P(()=>[G(j(t.length)+` 個行動`,1)]),_:2},1032,[`peek`,`title`,`status`]))),128)),u.value.length===0?(B(),V(`p`,Uj,`這台電腦上沒有推進它的會話。會話只記在本機。`)):K(``,!0)]),_:1},8,[`count`])],64))}}),Gj={class:`inline-flex h-7 items-center gap-1.5 rounded-full border bg-background px-2.5 text-xs font-medium transition-colors hover:bg-accent focus-within:ring-3 focus-within:ring-ring/50`},Kj=[`value`],qj=[`value`],Jj=I({__name:`StatusSelect`,props:{status:{},options:{}},emits:[`change`],setup(e,{emit:t}){let n=t;return(t,r)=>(B(),V(`label`,Gj,[W(Vw,{status:e.status},null,8,[`status`]),U(`select`,{class:`cursor-pointer bg-transparent outline-none`,value:e.status,onChange:r[0]||=e=>n(`change`,e.target.value)},[(B(!0),V(z,null,L(e.options,e=>(B(),V(`option`,{key:e,value:e},j(N(VC)[e]??e),9,qj))),128))],40,Kj)]))}}),Yj={key:0,class:`pb-8`},Xj={key:1,class:`px-5 text-muted-foreground`},Zj=I({__name:`MainlinePeek`,props:{m:{}},setup(e){let t=e,{mainline:n}=fA(()=>t.m),r=e=>n.value&&vC(()=>uC.mainlineStatus(t.m,e,n.value.version)),i=e=>n.value&&vC(()=>uC.mainlineTitle(t.m,e,n.value.version)),a=()=>n.value&&vC(()=>uC.archive(t.m,!n.value.archivedAt,n.value.version));return(t,o)=>N(n)?(B(),V(`div`,Yj,[W(kk,{id:N(n).id,title:N(n).title,type:`mainline`,status:N(n).status,editable:``,onRename:i},{default:P(()=>[W(Jj,{status:N(n).status,options:N(IC),onChange:r},null,8,[`status`,`options`]),W(Dw,{archived:!!N(n).archivedAt,onToggle:a},null,8,[`archived`]),W(N(qS),{variant:`ghost`,size:`xs`,class:`ml-auto text-muted-foreground`,"as-child":``},{default:P(()=>[W(N(bm),{to:`/mainlines/${N(n).id}`},{default:P(()=>[W(N(Gd)),o[0]||=G(`開啟工作區`,-1)]),_:1},8,[`to`])]),_:1})]),_:1},8,[`id`,`title`,`status`]),W(Wj,{mainline:N(n)},null,8,[`mainline`])])):(B(),V(`p`,Xj,`載入 `+j(e.m)+`…`,1))}}),Qj=[`datetime`,`title`],$j=I({__name:`RelativeTime`,props:{at:{}},setup(e){let t=e,n=Ef({scheduler:e=>pf(e,6e4)}),r=new Intl.RelativeTimeFormat(`zh-TW`,{numeric:`auto`}),i=J(()=>new Date(t.at.length===10?`${t.at}T00:00`:t.at)),a=J(()=>{let e=Math.round((n.value.getTime()-i.value.getTime())/6e4);if(t.at.length===10){let n=Math.round(e/1440);return n>=0&&n<7?r.format(-n,`day`):t.at}return e<1?`剛剛`:e<60?r.format(-e,`minute`):e<1440?r.format(-Math.round(e/60),`hour`):e<10080?r.format(-Math.round(e/1440),`day`):t.at.slice(0,10)});return(t,n)=>(B(),V(`time`,{datetime:e.at,title:e.at.replace(`T`,` `)},j(a.value),9,Qj))}}),eM={key:0,class:`pb-8`},tM={key:0,class:`flex flex-col gap-1 text-sm`},nM={key:0},rM={key:0,class:`text-xs text-muted-foreground`},iM={key:1,class:`text-xs text-muted-foreground`},aM={class:`font-mono text-xs`},oM={class:`flex flex-col`},sM=[`aria-expanded`,`onClick`],cM={class:`mt-px shrink-0 font-mono text-xs text-muted-foreground`},lM={class:`min-w-0 flex-1`},uM={key:2,class:`shrink-0 text-xs text-muted-foreground tabular-nums`},dM={class:`flex flex-wrap gap-1 pb-1 pl-12`},fM={key:0,class:`pb-1 pl-12 text-xs text-muted-foreground`},pM={key:1,class:`mb-2 ml-12 flex flex-col gap-1.5 rounded-md border p-3 text-xs`},mM={key:0,class:`text-muted-foreground`},hM={key:1,class:`text-muted-foreground`},gM={key:2,class:`text-muted-foreground`},_M={class:`w-20 shrink-0 text-muted-foreground`},vM={key:0,class:`text-muted-foreground`},yM={key:1,class:`text-destructive`},bM={key:0,class:`text-sm text-muted-foreground`},xM={key:0,class:`text-sm text-muted-foreground`},SM={class:`w-20 text-muted-foreground`},CM={class:`tabular-nums`},wM={key:1,class:`px-5 text-muted-foreground`},TM=I({__name:`SessionPeek`,props:{id:{}},setup(e){let t=e,{open:n}=oC(),r=J(()=>Q.sessions.find(e=>e.id===t.id)),i=M(null),a=M(null),o=e=>Q.sessions.find(t=>t.id===e),s=J(()=>{let e=r.value;return e?[...e.delegatedFrom?[{label:`委派自`,id:e.delegatedFrom}]:[],...e.handoffFrom?[{label:`接手自`,id:e.handoffFrom}]:[],...Q.sessions.filter(t=>t.delegatedFrom===e.id).map(e=>({label:`委派給`,id:e.id})),...Q.sessions.filter(t=>t.handoffFrom===e.id).map(e=>({label:`交接給`,id:e.id}))]:[]});F(()=>[r.value?.id,r.value?.actions.length,r.value?.actions.map(e=>e.status).join()],async()=>{let e=r.value;if(e){for(let t of new Set(e.actions.flatMap(e=>e.serves.map(e=>fC(e).m))))gC(t).catch(e=>Q.error=e.message);i.value=await uC.trace(e.id).catch(()=>null)}},{immediate:!0});function c(e){let{m:t,t:n,item:r}=fC(e),i=Q.mainlines[t]?.tasks.find(e=>e.id===n);return{ref:e,task:`${t}/${n}`,text:i?.checklist.find(e=>e.id===r)?.text,done:i?.checklist.find(e=>e.id===r)?.done??!1}}let l=J(()=>[...new Set((r.value?.actions??[]).flatMap(e=>e.serves))].map(c));function u(e){return Object.keys(HC).map(t=>({kind:t,items:e.filter(e=>e.kind===t)})).filter(e=>e.items.length>0)}let d=e=>u(i.value?.byAction[e]??[]),f=e=>(i.value?.byAction[e]??[]).length,p=()=>r.value&&vC(()=>uC.archiveSession(r.value.id,!r.value.archivedAt));return(t,c)=>r.value?(B(),V(`div`,eM,[W(kk,{title:N(CC)(r.value),type:`session`,status:r.value.status},{notice:P(()=>[r.value.description||r.value.summary?(B(),V(`div`,tM,[r.value.description?(B(),V(`p`,nM,[G(j(r.value.description),1),r.value.depth===void 0?K(``,!0):(B(),V(`span`,rM,` · 深度 `+j(r.value.depth),1))])):K(``,!0),r.value.summary?(B(),V(`p`,iM,j(r.value.summary),1)):K(``,!0)])):K(``,!0)]),default:P(()=>[W(Hw,{status:r.value.status},null,8,[`status`]),W(wk,{text:r.value.id,label:r.value.id.slice(-8)},null,8,[`text`,`label`]),W(Dw,{archived:!!r.value.archivedAt,onToggle:p},null,8,[`archived`])]),_:1},8,[`title`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[W($,{label:`ID`,icon:N(xd)},{default:P(()=>[W(wk,{text:r.value.id},null,8,[`text`])]),_:1},8,[`icon`]),W($,{label:`agent`,icon:N(Bu)},{default:P(()=>[W(N(Tw),{variant:`secondary`},{default:P(()=>[G(j(r.value.agent),1)]),_:1})]),_:1},8,[`icon`]),i.value?.model??r.value.model?(B(),H($,{key:0,label:`模型`,icon:N(ad)},{default:P(()=>[U(`span`,aM,j(i.value?.model??r.value.model),1)]),_:1},8,[`icon`])):K(``,!0),r.value.effort?(B(),H($,{key:1,label:`effort`,icon:N(_d)},{default:P(()=>[G(j(r.value.effort),1)]),_:1},8,[`icon`])):K(``,!0),W($,{label:`開始`,icon:N(ed)},{default:P(()=>[W($j,{at:r.value.started,class:`text-xs`},null,8,[`at`])]),_:1},8,[`icon`]),r.value.branch?(B(),H($,{key:2,label:`分支`,icon:N(vd)},{default:P(()=>[W(wk,{text:r.value.branch},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),r.value.worktree?(B(),H($,{key:3,label:`worktree`,icon:N(md)},{default:P(()=>[W(wk,{text:r.value.worktree},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),W($,{label:`工作目錄`,icon:N(hd)},{default:P(()=>[W(wk,{text:r.value.cwd},null,8,[`text`])]),_:1},8,[`icon`]),r.value.transcript?(B(),H($,{key:4,label:`對話紀錄`,icon:N(Hd)},{default:P(()=>[W(wk,{text:r.value.transcript,class:`min-w-0`},null,8,[`text`]),W(N(qS),{variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground`,title:`在 Finder 顯示`,"aria-label":`在 Finder 顯示`,onClick:c[0]||=e=>N(vC)(()=>N(uC).reveal(r.value.transcript))},{default:P(()=>[W(N(fd))]),_:1})]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),W(Nk,{title:`行動佇列`,count:r.value.actions.length},{default:P(()=>[U(`ul`,oM,[(B(!0),V(z,null,L(r.value.actions,e=>(B(),V(`li`,{key:e.id,class:`flex flex-col`},[U(`button`,{type:`button`,class:`-mx-2 flex min-h-8 items-start gap-2 rounded-md px-2 py-1.5 text-left transition-colors duration-[120ms] hover:bg-accent/50`,"aria-expanded":a.value===e.id,onClick:t=>a.value=a.value===e.id?null:e.id},[a.value===e.id?(B(),H(N(Ku),{key:0,class:`mt-0.5 size-3.5 shrink-0 text-muted-foreground`})):(B(),H(N(Ju),{key:1,class:`mt-0.5 size-3.5 shrink-0 text-muted-foreground`})),W(Vw,{status:e.status,class:`mt-0.5 shrink-0`},null,8,[`status`]),U(`span`,cM,j(e.id),1),U(`span`,lM,j(e.do),1),e.startedAt?(B(),V(`span`,uM,j(e.startedAt.slice(11))+j(e.doneAt?`–${e.doneAt.slice(11)}`:``),1)):K(``,!0)],8,sM),U(`div`,dM,[(B(!0),V(z,null,L(e.serves,e=>(B(),H(dA,q({key:e},{ref_for:!0},N(OC)(e.split(`#`)[0]),{id:e,onOpen:()=>N(n)(e.split(`#`)[0],{chain:!0})}),null,16,[`id`,`onOpen`]))),128))]),e.note?(B(),V(`p`,fM,j(e.note),1)):K(``,!0),a.value===e.id?(B(),V(`div`,pM,[i.value?.available?e.startedAt?f(e.id)===0?(B(),V(`p`,gM,`這段時間沒有用到 skill、agent,也沒有載入 rule 或用 Read 讀檔。用 Bash 讀的檔不會出現在這裡。`)):K(``,!0):(B(),V(`p`,hM,`這個行動沒有開始時間,追溯不到它的時間窗。`)):(B(),V(`p`,mM,`沒有對話紀錄,無法追溯。`)),(B(!0),V(z,null,L(d(e.id),e=>(B(),V(`div`,{key:e.kind,class:`flex flex-wrap items-baseline gap-1.5`},[U(`span`,_M,j(N(HC)[e.kind]),1),(B(!0),V(z,null,L(e.items,e=>(B(),H(N(Tw),{key:e.path??e.name,variant:`secondary`,class:`font-mono font-normal`,title:e.path??e.name},{default:P(()=>[G(j(e.name),1),e.count>1?(B(),V(`span`,vM,`×`+j(e.count),1)):K(``,!0),e.detail?.startsWith(`blocked`)?(B(),V(`span`,yM,`擋下`)):K(``,!0)]),_:2},1032,[`title`]))),128))]))),128))])):K(``,!0)]))),128))]),r.value.actions.length===0?(B(),V(`p`,bM,`這個會話沒有行動。`)):K(``,!0)]),_:1},8,[`count`]),W(Nk,{title:`委派與接手`,count:s.value.length},{default:P(()=>[(B(!0),V(z,null,L(s.value,e=>(B(),H(Rk,{key:e.label+e.id,peek:N(ZS)(e.id),label:e.label,title:o(e.id)?N(CC)(o(e.id)):e.id,status:o(e.id)?.status},null,8,[`peek`,`label`,`title`,`status`]))),128)),s.value.length===0?(B(),V(`p`,xM,`沒有委派或交接關係。`)):K(``,!0)]),_:1},8,[`count`]),W(Nk,{title:`服務的 checklist 項目`,count:l.value.length},{default:P(()=>[(B(!0),V(z,null,L(l.value,e=>(B(),H(Rk,{key:e.ref,peek:e.task,id:e.ref,title:e.text},{default:P(()=>[W(N(Nw),{"model-value":e.done,disabled:``,class:`pointer-events-none`,"aria-label":e.done?`已完成`:`未完成`},null,8,[`model-value`,`aria-label`])]),_:2},1032,[`peek`,`id`,`title`]))),128))]),_:1},8,[`count`]),i.value?.unattributed.length?(B(),H(Nk,{key:0,title:`沒有對應行動的使用`,count:i.value.unattributed.length},{default:P(()=>[(B(!0),V(z,null,L(u(i.value.unattributed),e=>(B(),V(`div`,{key:e.kind,class:`flex min-h-7 items-center gap-2 text-xs`},[U(`span`,SM,j(N(HC)[e.kind]),1),U(`span`,CM,j(e.items.length),1)]))),128))]),_:1},8,[`count`])):K(``,!0)])):(B(),V(`p`,wM,`這台電腦上沒有會話 `+j(e.id)+`。`,1))}}),EM={key:0,class:`pb-8`},DM={class:`truncate`},OM={key:0,class:`flex items-center gap-1.5`},kM={key:1},AM={key:2},jM={key:0,class:`text-xs`},MM={class:`text-xs`},NM={class:`text-xs`},PM={class:`text-xs`},FM={class:`shrink-0 font-mono`},IM={class:`truncate`},LM={key:0,class:`text-sm text-muted-foreground`},RM={key:1,class:`px-5 text-muted-foreground`},zM=I({__name:`TaskPeek`,props:{m:{},t:{}},setup(e){let t=e,{open:n}=oC(),{mainline:r}=fA(()=>t.m),i=J(()=>r.value?.tasks.find(e=>e.id===t.t)),a=J(()=>r.value?.tasks.filter(e=>e.parent===t.t)??[]),o=J(()=>(i.value?.checklist??[]).filter(e=>!e.dropped)),s=J(()=>DC(t.m,t.t)),c=e=>n(e,{chain:!0}),l=J(()=>{let e=i.value?.blockedBy?.waitingFor,t=e?NC(e):void 0;return t&&t!==`session`&&!e.startsWith(`file:`)?e:void 0});Er(()=>AC([l.value]));let u=e=>e.slice((r.value?.dir.length??0)+1),d=e=>e.slice(e.lastIndexOf(`/`)+1),f=e=>i.value&&vC(()=>uC.taskStatus(t.m,t.t,e,i.value.version));return(n,p)=>i.value&&N(r)?(B(),V(`div`,EM,[W(kk,{id:`${e.m}/${i.value.id}`,title:i.value.title,type:N(MC)(i.value),status:i.value.status},{notice:P(()=>[i.value.blockedBy?(B(),H(N(GT),{key:0,variant:`warning`},{default:P(()=>[W(N(Zu)),W(N(qT),null,{default:P(()=>[G(`卡住:`+j(i.value.blockedBy.reason),1)]),_:1}),W(N(KT),{class:`text-xs text-muted-foreground`},{default:P(()=>[l.value?(B(),V(`p`,OM,[p[0]||=G(`等待 `,-1),W(dA,q(N(OC)(l.value),{onOpen:c}),null,16)])):i.value.blockedBy.waitingFor?(B(),V(`p`,kM,`等待 `+j(i.value.blockedBy.waitingFor),1)):K(``,!0),i.value.blockedBy.signal?(B(),V(`p`,AM,`看到「`+j(i.value.blockedBy.signal)+`」就可以繼續`,1)):K(``,!0)]),_:1})]),_:1})):K(``,!0)]),default:P(()=>[W(Jj,{status:i.value.status,options:N(LC),onChange:f},null,8,[`status`,`options`]),U(`span`,DM,j(N(r).title),1)]),_:1},8,[`id`,`title`,`type`,`status`]),W(Nk,null,{default:P(()=>[W(YT,{columns:1},{default:P(()=>[W($,{label:`checklist`,icon:N(Dd)},{default:P(()=>[W(Aj,{done:o.value.filter(e=>e.done).length,total:o.value.length},null,8,[`done`,`total`])]),_:1},8,[`icon`]),i.value.priority?(B(),H($,{key:0,label:`優先度`,icon:N(ud)},{default:P(()=>[W(tA,{priority:i.value.priority},null,8,[`priority`]),i.value.priority===`P2`?(B(),V(`span`,jM,`P2`)):K(``,!0)]),_:1},8,[`icon`])):K(``,!0),W($,{label:`種類`,icon:N(Cd)},{default:P(()=>[G(j(i.value.kind===`branch`?`分支`:`階段`),1)]),_:1},8,[`icon`]),i.value.parent?(B(),H($,{key:1,label:`上層任務`,icon:N(id)},{default:P(()=>[W(dA,q(N(OC)(N(YS)(e.m,i.value.parent)),{onOpen:c}),null,16)]),_:1},8,[`icon`])):K(``,!0),i.value.repo?(B(),H($,{key:2,label:`倉庫`,icon:N(dd)},{default:P(()=>[G(j(i.value.repo),1)]),_:1},8,[`icon`])):K(``,!0),i.value.branch?(B(),H($,{key:3,label:`分支`,icon:N(vd)},{default:P(()=>[W(wk,{text:i.value.branch},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),i.value.base?(B(),H($,{key:4,label:`基底`,icon:N(yd)},{default:P(()=>[W(wk,{text:i.value.base},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),i.value.worktree?(B(),H($,{key:5,label:`worktree`,icon:N(md)},{default:P(()=>[W(wk,{text:i.value.worktree},null,8,[`text`])]),_:1},8,[`icon`])):K(``,!0),i.value.merge?(B(),H($,{key:6,label:`合併狀態`,icon:N(bd)},{default:P(()=>[G(j(N(WC)[i.value.merge]),1)]),_:1},8,[`icon`])):K(``,!0),i.value.category?(B(),H($,{key:7,label:`分類`,icon:N(qd)},{default:P(()=>[G(j(i.value.category),1)]),_:1},8,[`icon`])):K(``,!0),i.value.labels?.length?(B(),H($,{key:8,label:`標籤`,icon:N(Jd)},{default:P(()=>[(B(!0),V(z,null,L(i.value.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))]),_:1},8,[`icon`])):K(``,!0),W($,{label:`建立`,icon:N(Uu)},{default:P(()=>[U(`span`,MM,j(i.value.created),1)]),_:1},8,[`icon`]),i.value.startedAt?(B(),H($,{key:9,label:`開始`,icon:N(Ld)},{default:P(()=>[U(`span`,NM,j(i.value.startedAt),1)]),_:1},8,[`icon`])):K(``,!0),i.value.closedAt?(B(),H($,{key:10,label:`結束`,icon:N(Vu)},{default:P(()=>[U(`span`,PM,j(i.value.closedAt),1)]),_:1},8,[`icon`])):K(``,!0),i.value.resolution?(B(),H($,{key:11,label:`結果`,icon:N(Xu)},{default:P(()=>[G(j(i.value.resolution),1)]),_:1},8,[`icon`])):K(``,!0),i.value.origin?(B(),H($,{key:12,label:`來源`,icon:N(rd)},{default:P(()=>[W(dA,q(N(OC)(i.value.origin),{onOpen:c}),null,16)]),_:1},8,[`icon`])):K(``,!0)]),_:1})]),_:1}),W(Nk,{title:`checklist`,count:i.value.checklist.length},{default:P(()=>[W(Ej,{items:i.value.checklist,"ref-prefix":`${e.m}/${i.value.id}#`,version:i.value.version},null,8,[`items`,`ref-prefix`,`version`])]),_:1},8,[`count`]),i.value.body.trim()?(B(),H(Nk,{key:0,title:`內文`},{default:P(()=>[W(bk,{source:i.value.body},null,8,[`source`])]),_:1})):K(``,!0),i.value.artifacts.length?(B(),H(Nk,{key:1,title:`產物`,count:i.value.artifacts.length},{default:P(()=>[(B(!0),V(z,null,L(i.value.artifacts,t=>(B(),H(Rk,{key:t,peek:N(QS)(e.m,u(t)),title:d(t)},null,8,[`peek`,`title`]))),128))]),_:1},8,[`count`])):K(``,!0),a.value.length?(B(),H(Nk,{key:2,title:`子任務`,count:a.value.length},{default:P(()=>[(B(!0),V(z,null,L(a.value,t=>(B(),H(Rk,{key:t.id,peek:N(YS)(e.m,t.id),id:t.id,title:t.title,status:t.status},null,8,[`peek`,`id`,`title`,`status`]))),128))]),_:1},8,[`count`])):K(``,!0),W(Jk,{self:N(YS)(t.m,t.t),links:i.value.links},null,8,[`self`,`links`]),i.value.refs?.length?(B(),H(Nk,{key:3,title:`參考來源`,count:i.value.refs.length},{default:P(()=>[W($k,{refs:i.value.refs},null,8,[`refs`])]),_:1},8,[`count`])):K(``,!0),W(Nk,{title:`服務它的行動`,count:s.value.reduce((e,t)=>e+t.actions.length,0)},{default:P(()=>[(B(!0),V(z,null,L(s.value,({session:e,actions:t})=>(B(),V(z,{key:e.id},[W(Rk,{peek:N(ZS)(e.id),title:N(CC)(e),status:e.status},null,8,[`peek`,`title`,`status`]),(B(!0),V(z,null,L(t,e=>(B(),V(`div`,{key:e.id,class:`flex min-h-7 items-center gap-2 pl-6 text-xs text-muted-foreground`},[W(Vw,{status:e.status,class:`shrink-0`},null,8,[`status`]),U(`span`,FM,j(e.id),1),U(`span`,IM,j(e.do),1)]))),128))],64))),128)),s.value.length===0?(B(),V(`p`,LM,`這台電腦上沒有服務這個任務的行動。`)):K(``,!0)]),_:1},8,[`count`])])):(B(),V(`p`,RM,`載入 `+j(e.m)+`/`+j(e.t)+`…`,1))}}),BM={class:`flex h-11 shrink-0 items-center gap-1 px-2`},VM={key:0,class:`truncate text-xs text-muted-foreground`},HM={key:1,class:`ml-2 text-xs text-status-done`,role:`status`},UM={class:`min-h-0 flex-1 overflow-auto`},WM=`mainflow.panelWidth`,GM=360,KM=1200,qM=ew(I({__name:`PeekPanel`,setup(e){let{current:t,trail:n,full:r,back:i,close:a,toggleFull:o}=oC(),s=Number(cw(WM,880)),c=M(s>=GM&&s<=KM?s:880);function l(e){let t=e.clientX,n=c.value,r=e=>c.value=Math.min(KM,Math.max(GM,n+t-e.clientX)),i=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),lw(WM,c.value)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)}let u=J(()=>{let e=tC(n.value.at(-1));return e?e.kind===`session`?`會話`:e.kind===`file`?e.path.split(`/`).at(-1):e.ref:``});return(e,s)=>N(t)?(B(),V(`aside`,{key:0,class:k([`peek-panel flex min-h-0 flex-col border-l bg-background max-[1100px]:shadow-lg`,N(r)?`flex-1`:`shrink-0`]),style:he({"--panel-width":`${c.value}px`}),"aria-label":`預覽面板`},[N(r)?K(``,!0):(B(),V(`div`,{key:0,class:`absolute inset-y-0 -left-1 w-2 cursor-col-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`拖曳調整面板寬度`,onPointerdown:au(l,[`prevent`])},null,32)),U(`div`,BM,[W(N(qS),{variant:`ghost`,size:`icon-sm`,disabled:!N(n).length,"aria-label":`上一步`,title:`上一步`,onClick:N(i)},{default:P(()=>[W(N(qu))]),_:1},8,[`disabled`,`onClick`]),u.value?(B(),V(`span`,VM,`回到 `+j(u.value),1)):K(``,!0),N(nC)?(B(),V(`span`,HM,j(N(nC)),1)):K(``,!0),s[0]||=U(`span`,{class:`ml-auto`},null,-1),W(N(qS),{variant:`ghost`,size:`icon-sm`,"aria-label":N(r)?`回到並排`:`開成整頁`,title:N(r)?`回到並排`:`開成整頁`,onClick:N(o)},{default:P(()=>[N(r)?(B(),H(N(Nd),{key:0})):(B(),H(N(jd),{key:1}))]),_:1},8,[`aria-label`,`title`,`onClick`]),W(N(qS),{variant:`ghost`,size:`icon-sm`,"aria-label":`關閉(Esc)`,title:`關閉(Esc)`,onClick:N(a)},{default:P(()=>[W(N($d))]),_:1},8,[`onClick`])]),U(`div`,UM,[N(t).kind===`task`?(B(),H(zM,{key:N(t).ref,m:N(t).m,t:N(t).t},null,8,[`m`,`t`])):N(t).kind===`decision`?(B(),H(xA,{key:N(t).ref,m:N(t).m,d:N(t).d},null,8,[`m`,`d`])):N(t).kind===`file`?(B(),H(WA,{key:N(t).ref,m:N(t).m,path:N(t).path},null,8,[`m`,`path`])):N(t).kind===`session`?(B(),H(TM,{key:N(t).ref,id:N(t).id},null,8,[`id`])):N(t).kind===`mainline`?(B(),H(Zj,{key:N(t).ref,m:N(t).m},null,8,[`m`])):N(t).kind===`issue`?(B(),H(rj,{key:N(t).ref,id:N(t).id},null,8,[`id`])):(B(),H(XA,{key:N(t).ref,id:N(t).id},null,8,[`id`]))])],6)):K(``,!0)}}),[[`__scopeId`,`data-v-36a42a88`]]),JM={class:`flex h-full min-h-0 flex-col`},YM={class:`relative flex min-h-0 flex-1`},XM={class:`@container min-w-0 flex-1 overflow-auto`,"data-peek-list":``},ZM=I({__name:`PageLayout`,setup(e){let{current:t,full:n}=oC();return(e,r)=>(B(),V(`div`,JM,[R(e.$slots,`header`),U(`div`,YM,[yr(U(`div`,XM,[R(e.$slots,`default`)],512),[[Vc,!(N(t)&&N(n))]]),W(qM)])]))}}),QM=[`P0`,`P1`,`P2`,`P3`].map(e=>({value:e,label:e})),$M=e=>e??`P2`,eN=e=>e.map(e=>({value:e,label:VC[e]??e,status:e})),tN=e=>BC.has(e),nN=e=>({key:`status`,label:`狀態`,value:e=>e.status,order:e,groupLabel:e=>VC[e]??e,status:e=>e});function rN(e,t){let n=new Map;for(let r of t)n.set(e.value(r),[...n.get(e.value(r))??[],r]);let r=t=>e.order?.includes(t)?e.order.indexOf(t):1/0,i=t=>Number(e.trailing?.includes(t)??!1);return[...n.keys()].sort((t,n)=>i(t)-i(n)||r(t)-r(n)||t.localeCompare(n)*(e.latestFirst?-1:1)).map(t=>({key:t,label:e.groupLabel?.(t)??t,status:e.status?.(t),items:n.get(t)}))}var iN=`f.`,aN=e=>(Array.isArray(e)?e[0]:e)??void 0,oN=(e,t=``)=>{if(!e.startsWith(t))return!1;let n=e.slice(t.length);return n===`q`||n===`sort`||n===`archived`||n.startsWith(iN)},sN=e=>cw(e,{}),cN=(e,t)=>lw(e,{...sN(e),...t});function lN(e,t){let n=Gf(),r=Wf(),i=`mainflow.list.${e.key}`,a=e.queryPrefix??``,o=sN(i),s=e=>Object.fromEntries(Object.entries(e).filter(([e])=>oN(e,a)));function c(e){let t={...n.query};for(let[n,r]of Object.entries(e))r?t[n]=r:delete t[n];r.replace({query:t})}let l=o.query??{},u=Object.keys(l).length>0&&Object.keys(s(n.query)).length===0;$i(()=>u&&void r.replace({query:{...n.query,...l}}));let d=()=>`${n.path}?${aN(n.query.view)??``}`,f=d();F(()=>s(n.query),(e,t)=>{d()!==f||u&&t===void 0||cN(i,{query:e})},{deep:!0,immediate:!0});let p=J({get:()=>aN(n.query[`${a}q`])??``,set:e=>c({[`${a}q`]:e.trim()?e:void 0})}),m=J(()=>{let t=aN(n.query[`${a}sort`])??``,r=t.replace(/^-/,``),i=e.sorts.find(e=>e.key===r),o=i??e.sorts.find(t=>t.key===e.defaultSort);return{field:o,dir:i?t.startsWith(`-`)?`desc`:`asc`:o.dir,chosen:!!i}});function h(t,n){let r=e.sorts.find(e=>e.key===t);c({[`${a}sort`]:`${(n??r.dir)===`desc`?`-`:``}${t}`})}let g=()=>c({[`${a}sort`]:void 0});function _(e){let{field:t,dir:n,chosen:r}=m.value;!r||t.key!==e?h(e,`desc`):n===`desc`?h(e,`asc`):g()}let v=J(()=>Object.fromEntries(e.filters.map(e=>[e.key,(aN(n.query[`${a}${iN}${e.key}`])??``).split(`,`).filter(Boolean)])));function y(e,t){let n=v.value[e]??[],r=n.includes(t)?n.filter(e=>e!==t):[...n,t];c({[`${a}${iN}${e}`]:r.join(`,`)||void 0})}let b=e=>c({[`${a}${iN}${e}`]:void 0}),x=()=>c({[`${a}q`]:void 0,[`${a}archived`]:void 0,...Object.fromEntries(e.filters.map(e=>[`${a}${iN}${e.key}`,void 0]))}),S=J(()=>{let e=aN(n.query[`${a}archived`]);return e===`with`||e===`only`?e:`without`}),C=e=>c({[`${a}archived`]:e===`without`?void 0:e}),w=M(o.group!==void 0&&(o.group===``||e.groups.some(e=>e.key===o.group))?o.group:e.defaultGroup);function T(e){w.value=e,cN(i,{group:e})}function ee(e){if(e.options)return e.options;let n=new Set(t().flatMap(e.values));for(let t of v.value[e.key]??[])n.add(t);return[...n].sort().map(t=>({value:t,label:e.optionLabel?.(t)??t}))}let E=J(()=>{let n=p.value.toLowerCase().split(/\s+/).filter(Boolean);return t().filter(t=>{if(e.archived){let n=e.archived(t);if(S.value===`without`&&n||S.value===`only`&&!n)return!1}for(let n of e.filters){let e=v.value[n.key]??[];if(e.length>0&&!n.values(t).some(t=>e.includes(t)))return!1}let r=`${e.id(t)} ${e.text(t)}`.toLowerCase();return n.every(e=>r.includes(e))})}),te=J(()=>{let{field:t,dir:n}=m.value,r=n===`asc`?1:-1;return[...E.value].sort((n,i)=>{let a=t.value(n),o=t.value(i),s=Number(a==null||a===``)-Number(o==null||o===``);return s===0?((typeof a==`number`&&typeof o==`number`?a-o:String(a).localeCompare(String(o)))||e.id(n).localeCompare(e.id(i)))*r:s})}),ne=J(()=>{let t=e.groups.find(e=>e.key===w.value),n=S.value!==`only`&&!v.value.status?.length,r=t=>n?{items:t.filter(t=>!e.ended?.(t)),ended:t.filter(t=>e.ended?.(t))}:{items:t,ended:[]};return t?rN(t,te.value).map(({key:e,label:n,status:i,items:a})=>{let o=t.leader?.(e);return{key:e,label:n,status:i,leader:o,...r(a.filter(e=>e!==o))}}):te.value.length?[{key:``,label:``,...r(te.value)}]:[]}),re=Qt(new Set(o.collapsed??[])),D=Qt(new Set(o.endedFolded??[])),ie=(e,t,n)=>{e.has(t)?e.delete(t):e.add(t),cN(i,{[n]:[...e]})};return{spec:e,search:p,sort:m,setSort:h,clearSort:g,cycleSort:_,filters:v,toggleFilter:y,clearFilter:b,clearAll:x,activeFilters:J(()=>e.filters.flatMap(e=>(v.value[e.key]??[]).map(t=>({field:e,value:t,label:ee(e).find(e=>e.value===t)?.label??t})))),optionsOf:ee,archived:S,setArchived:C,group:w,setGroup:T,total:J(()=>t().length),shown:J(()=>E.value.length),sorted:te,groups:ne,collapsed:re,endedFolded:D,toggleCollapsed:e=>ie(re,e,`collapsed`),toggleEnded:e=>ie(D,e,`endedFolded`)}}function uN(e,t){let n=Qt(new Set),r=e.spec.id,i=t=>[...t.leader?[t.leader]:[],...t.items,...t.ended].flatMap(t=>[t,...(e.spec.nested?.(t)??[]).map(e=>e.item)]),a=J(()=>e.groups.value.flatMap(i));F(a,e=>{let t=new Set(e.map(r));for(let e of n)t.has(e)||n.delete(e)});let o=J(()=>a.value.filter(e=>n.has(r(e)))),s=e=>{let t=e.filter(e=>n.has(r(e))).length;return t===0?!1:t===e.length||`indeterminate`},c=(e,t)=>e.forEach(e=>t?n.add(r(e)):n.delete(r(e)));async function l(e){let i=o.value.filter(n=>t.archived(n)!==e).map(r);i.length&&await vC(async()=>{let n=await uC.archiveMany(t.kind,i,e);if(n.failed.length)throw Error(`${n.failed.length} 個沒有${e?`封存`:`取消封存`}:${n.failed.map(e=>`${e.id}(${e.error})`).join(`、`)}`)})&&n.clear()}return{selected:o,active:J(()=>o.value.length>0),all:J(()=>s(a.value)),groupChecked:e=>s(i(e)),has:e=>n.has(r(e)),toggle:(e,t)=>c([e],t),setAll:e=>c(a.value,e),setGroup:(e,t)=>c(i(e),t),clear:()=>n.clear(),archivable:J(()=>o.value.filter(e=>!t.archived(e)).length),restorable:J(()=>o.value.filter(e=>t.archived(e)).length),setArchived:l}}var dN={key:0,class:`shrink-0 text-xs text-muted-foreground`},fN=[`title`],pN=I({__name:`FindingList`,setup(e){let t=[`valid`,`obsolete`],n=lN({key:`findings`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(t)},{key:`category`,label:`分類`,values:e=>e.category?[e.category]:[]},{key:`label`,label:`標籤`,values:e=>e.labels??[]},{key:`applies`,label:`適用範圍`,values:e=>e.appliesTo??[]}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`applies`,label:`適用範圍`,value:e=>e.appliesTo?.join(`、`),dir:`asc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`},{key:`review`,label:`重新確認日`,value:e=>e.reviewAfter,dir:`asc`}],groups:[nN(t),{key:`category`,label:`分類`,value:e=>e.category??`未分類`}],defaultSort:`created`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt},()=>Q.findings),r=uN(n,{kind:`finding`,archived:e=>!!e.archivedAt}),i=[{key:`name`,label:`名稱`,sort:`name`},{key:`applies`,label:`適用範圍`,class:`max-w-72 truncate font-mono text-xs text-muted-foreground`,sort:`applies`,value:e=>e.appliesTo,optional:!0},{key:`review`,label:`重新確認`,sort:`review`,value:e=>e.reviewAfter}],a=e=>vC(()=>uC.archiveFinding(e.id,!e.archivedAt,e.version));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`發現`,description:`踩過的坑與經驗。下一個任務動手前先看這裡。`}),W(jT,{view:N(n)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(n),selection:N(r),columns:i,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:!!e.archivedAt},{default:P(()=>[(B(!0),V(z,null,L(e.labels??[],e=>(B(),H(N(Tw),{key:e,variant:`secondary`,class:`shrink-0`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128)),e.archivedAt?(B(),V(`span`,dN,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),applies:P(({item:e})=>[U(`span`,{title:e.appliesTo?.join(`
|
|
79
|
+
`)},j(e.appliesTo?.join(`、`)),9,fN)]),review:P(({item:e})=>[W(Mw,{day:e.reviewAfter,ended:e.status===`obsolete`},null,8,[`day`,`ended`])]),actions:P(({item:e})=>[W(Dw,{archived:!!e.archivedAt,onToggle:t=>a(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[0]||=[G(`還沒有發現。用 `,-1),U(`code`,null,`mainflow new finding <slug> --title <title>`,-1),G(` 記下來。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(r)},null,8,[`selection`])]),_:1}))}}),mN=e=>(e.plannedIn??e.origin??``).match(/^m\d{3}/)?.[0]??``,hN=e=>e?`${e} ${Q.summary?.mainlines.find(t=>t.id===e)?.title??``}`.trim():`不屬於主脈絡`,gN=`未分類`,_N=e=>[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(e)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM},{key:`category`,label:`分類`,values:e=>e.category?[e.category]:[]},{key:`label`,label:`標籤`,values:e=>e.labels??[]},{key:`mainline`,label:`來源主脈絡`,values:e=>[mN(e)].filter(Boolean),optionLabel:hN}],vN=e=>[nN(e),{key:`category`,label:`分類`,value:e=>e.category??gN,trailing:[gN]},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),order:[`P0`,`P1`,`P2`,`P3`]},{key:`mainline`,label:`主脈絡`,value:mN,groupLabel:hN,trailing:[``]}],yN={key:0,class:`shrink-0 text-xs text-muted-foreground`},bN=I({__name:`IssueList`,setup(e){let t=[`open`,`planned`,`closed`],n=lN({key:`issues`,id:e=>e.id,text:e=>e.title,filters:_N(t),sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`planned`,label:`排入`,value:e=>e.plannedIn,dir:`asc`},{key:`origin`,label:`來源`,value:e=>e.origin,dir:`asc`},{key:`order`,label:`手動順序`,value:e=>e.order,dir:`asc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`due`,label:`到期`,value:e=>e.due,dir:`asc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`}],groups:vN(t),defaultSort:`order`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt},()=>Q.issues),r=uN(n,{kind:`issue`,archived:e=>!!e.archivedAt}),i=[{key:`name`,label:`名稱`,sort:`name`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`due`,label:`到期`,sort:`due`,value:e=>e.due},{key:`planned`,label:`排入`,class:`max-w-56`,sort:`planned`,value:e=>e.plannedIn},{key:`origin`,label:`來源`,class:`max-w-56`,sort:`origin`,value:e=>e.origin,optional:!0}],{open:a}=oC();Er(()=>AC(Q.issues.flatMap(e=>[e.plannedIn,e.origin])));let o=e=>vC(()=>uC.archiveIssue(e.id,!e.archivedAt,e.version));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`待辦事項`,description:`跨主脈絡的後續事項。主脈絡結束或封存後仍留在這裡。`}),W(jT,{view:N(n)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(n),selection:N(r),columns:i,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:!!e.archivedAt},{default:P(()=>[e.archivedAt?(B(),V(`span`,yN,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),due:P(({item:e})=>[W(Mw,{day:e.due,ended:e.status===`closed`},null,8,[`day`,`ended`])]),planned:P(({item:e})=>[e.plannedIn?(B(),H(dA,q({key:0},N(OC)(e.plannedIn),{onOpen:N(a)}),null,16,[`onOpen`])):K(``,!0)]),origin:P(({item:e})=>[e.origin?(B(),H(dA,q({key:0},N(OC)(e.origin),{onOpen:N(a)}),null,16,[`onOpen`])):K(``,!0)]),actions:P(({item:e})=>[W(Dw,{archived:!!e.archivedAt,onToggle:t=>o(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[0]||=[G(`沒有待辦事項。用 `,-1),U(`code`,null,`mainflow new issue <slug> --title <title>`,-1),G(` 記下主脈絡結束後還要處理的事。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(r)},null,8,[`selection`])]),_:1}))}}),xN=I({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=Jh(ff(n,`class`),r);return(e,t)=>(B(),H(N(hx),q({"data-slot":`tabs`},N(i),{class:N(KS)(`flex flex-col gap-2`,n.class)}),{default:P(t=>[R(e.$slots,`default`,A(Cs(t)))]),_:3},16,[`class`]))}}),SN=I({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(e){let t=e,n=ff(t,`class`,`variant`);return(r,i)=>(B(),H(N(vx),q({"data-slot":`tabs-list`,"data-variant":e.variant},N(n),{class:N(KS)(`group/tabs-list text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-0.75`,e.variant===`line`?`gap-1 rounded-none bg-transparent p-0`:`bg-muted`,t.class)}),{default:P(()=>[R(r.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),CN=I({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=qh(ff(t,`class`));return(e,r)=>(B(),H(N(yx),q({"data-slot":`tabs-trigger`,class:N(KS)(`data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-3 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,`group-data-[variant=line]/tabs-list:text-foreground/60 group-data-[variant=line]/tabs-list:hover:text-foreground group-data-[variant=line]/tabs-list:data-[state=active]:text-foreground group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent after:absolute after:inset-x-0 after:-bottom-px after:h-0.5 after:bg-foreground after:opacity-0 after:transition-opacity group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,t.class)},N(n)),{default:P(()=>[R(e.$slots,`default`)]),_:3},16,[`class`]))}}),wN={class:`w-full text-body`},TN={colspan:`3`,class:`sticky top-9 z-[5] bg-background px-6 pt-4 pb-1`},EN={class:`flex items-center gap-2 text-sm`},DN={key:0,class:`grid size-4 shrink-0 place-items-center rounded-[4px] border border-dashed text-[10px] text-muted-foreground`,"aria-label":`已不需要`},ON={class:`font-mono text-xs text-muted-foreground`},kN=[`title`],AN={key:1,class:`font-medium text-muted-foreground`},jN={class:`flex min-w-0 items-center gap-2`},MN={class:`shrink-0 font-mono text-xs text-muted-foreground`},NN=[`title`],PN={class:`flex min-w-0 items-center gap-2 text-xs`},FN={class:`truncate`},IN={key:0},LN={colspan:`3`,class:`px-6 pb-2 text-xs text-muted-foreground`},RN={key:1},zN={key:0,class:`px-6 py-16 text-center text-sm text-muted-foreground`},BN=I({__name:`CriteriaView`,props:{mainline:{}},setup(e){let t=e,{open:n,current:r}=oC(),i=J(()=>t.mainline.tasks.flatMap(e=>e.checklist.filter(e=>!e.dropped).map(t=>({task:e,item:t})))),a=J(()=>[...t.mainline.criteria.map(e=>({key:e.id,criterion:e,rows:i.value.filter(t=>t.item.serves?.includes(e.id))})),{key:``,criterion:void 0,rows:i.value.filter(e=>!e.item.serves?.length)}].filter(e=>e.criterion||e.rows.length)),o=e=>r.value?.ref===e||void 0;return(t,r)=>(B(),V(z,null,[U(`table`,wN,[W(N(Rw),{class:`sticky top-0 z-10 bg-background [&_tr]:border-b`},{default:P(()=>[W(N(Iw),{class:`hover:bg-transparent`},{default:P(()=>[W(N(Lw),{class:`pl-6`},{default:P(()=>[...r[0]||=[G(`checklist 項目`,-1)]]),_:1}),W(N(Lw),{class:`w-72`},{default:P(()=>[...r[1]||=[G(`任務`,-1)]]),_:1}),W(N(Lw),{class:`w-28 pr-6`},{default:P(()=>[...r[2]||=[G(`完成`,-1)]]),_:1})]),_:1})]),_:1}),(B(!0),V(z,null,L(a.value,t=>(B(),H(N(Pw),{key:t.key,class:`[&_tr:last-child]:border-b`},{default:P(()=>[U(`tr`,null,[U(`td`,TN,[U(`div`,EN,[t.criterion?(B(),V(z,{key:0},[t.criterion.dropped?(B(),V(`span`,DN,`–`)):(B(),H(N(Nw),{key:1,"model-value":t.criterion.done,disabled:``,class:`pointer-events-none`,"aria-label":t.criterion.done?`已達成`:`未達成`},null,8,[`model-value`,`aria-label`])),U(`span`,ON,j(t.criterion.id),1),U(`span`,{class:k([`min-w-0 truncate font-medium`,{"text-muted-foreground line-through":t.criterion.dropped}]),title:t.criterion.text},j(t.criterion.text),11,kN),t.criterion.dropped?K(``,!0):(B(),H(Aj,{key:2,class:`ml-auto shrink-0`,done:t.rows.filter(e=>e.item.done).length,total:t.rows.length},null,8,[`done`,`total`]))],64)):(B(),V(`span`,AN,`沒有推進任何解決條件`))])])]),(B(!0),V(z,null,L(t.rows,t=>(B(),H(N(Iw),{key:`${t.task.id}#${t.item.id}`,class:`h-9 transition-colors duration-[120ms]`,"data-peek":N(YS)(e.mainline.id,t.task.id),"aria-current":o(N(YS)(e.mainline.id,t.task.id)),onClick:r=>N(n)(N(YS)(e.mainline.id,t.task.id))},{default:P(()=>[W(N(Fw),{class:`max-w-0 pl-6`},{default:P(()=>[U(`span`,jN,[U(`span`,MN,j(t.task.id)+`#`+j(t.item.id),1),U(`span`,{class:k([`truncate`,{"text-muted-foreground":t.item.done}]),title:t.item.text},j(t.item.text),11,NN)])]),_:2},1024),W(N(Fw),{class:`max-w-72`},{default:P(()=>[U(`span`,PN,[W(qC,{type:N(MC)(t.task),status:t.task.status},null,8,[`type`,`status`]),U(`span`,FN,j(t.task.title),1)])]),_:2},1024),W(N(Fw),{class:`pr-6 text-xs text-muted-foreground`},{default:P(()=>[G(j(t.item.done?t.item.doneAt??`已完成`:``),1)]),_:2},1024)]),_:2},1032,[`data-peek`,`aria-current`,`onClick`]))),128)),t.criterion?.dropped?(B(),V(`tr`,IN,[U(`td`,LN,[r[3]||=G(`不再需要`,-1),t.criterion.note?(B(),V(z,{key:0},[G(`:`+j(t.criterion.note),1)],64)):K(``,!0)])])):t.criterion&&t.rows.length===0?(B(),V(`tr`,RN,[...r[4]||=[U(`td`,{colspan:`3`,class:`px-6 pb-2 text-xs text-muted-foreground`},`還沒有 checklist 項目推進這條條件。`,-1)]])):K(``,!0)]),_:2},1024))),128))]),a.value.length===0?(B(),V(`p`,zN,`這條主脈絡還沒有解決條件。`)):K(``,!0)],64))}}),VN={key:0,class:`shrink-0 text-xs text-muted-foreground`},HN=[`title`],UN=I({__name:`DecisionTable`,props:{mainline:{}},setup(e){let t=e,n=[`proposed`,`accepted`,`superseded`],r=lN({key:`decisions`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(n)},{key:`by`,label:`決策者`,values:e=>e.by?[e.by]:[],optionLabel:e=>UC[e]??e}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`by`,label:`決策者`,value:e=>e.by,dir:`asc`},{key:`reversible`,label:`能否改回`,value:e=>e.reversible===void 0?null:+!!e.reversible,dir:`desc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`},{key:`decided`,label:`裁決時間`,value:e=>e.decidedAt,dir:`desc`}],groups:[nN(n)],defaultSort:`created`,defaultGroup:`status`,ended:e=>tN(e.status)},()=>t.mainline.decisions),i=[{key:`name`,label:`名稱`,sort:`name`},{key:`by`,label:`決策者`,class:`text-xs text-muted-foreground`,sort:`by`,value:e=>e.by},{key:`decided`,label:`裁決`,class:`font-mono text-xs text-muted-foreground tabular-nums`,sort:`decided`,value:e=>e.decidedAt},{key:`affects`,label:`影響`,class:`max-w-56 truncate font-mono text-xs text-muted-foreground`,value:e=>e.affects,optional:!0},{key:`reversible`,label:`能否改回`,class:`text-xs text-muted-foreground`,sort:`reversible`,value:e=>e.reversible,optional:!0}];return(t,n)=>(B(),V(z,null,[W(jT,{view:N(r)},null,8,[`view`]),W(sT,{view:N(r),columns:i,"item-ref":t=>N(XS)(e.mainline.id,t.id)},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:e.status===`superseded`},{default:P(()=>[e.supersededBy?(B(),V(`span`,VN,`由 `+j(e.supersededBy)+` 取代`,1)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),by:P(({item:e})=>[G(j(e.by?N(UC)[e.by]:``),1)]),decided:P(({item:e})=>[G(j(e.decidedAt?.replace(`T`,` `)),1)]),affects:P(({item:e})=>[U(`span`,{title:e.affects?.join(`
|
|
80
|
+
`)},j(e.affects?.join(`、`)),9,HN)]),reversible:P(({item:e})=>[G(j(e.reversible===void 0?``:e.reversible?`可以`:`不易改回`),1)]),empty:P(()=>[n[0]||=G(`還沒有決策。用 `,-1),U(`code`,null,`mainflow new decision `+j(e.mainline.id)+` <slug> --title <title>`,1),n[1]||=G(` 記下選擇與理由。`,-1)]),_:1},8,[`view`,`item-ref`])],64))}}),WN={class:`flex min-w-0 items-center gap-2`},GN=[`href`,`title`],KN=[`title`],qN=[`title`],JN=`-`,YN=I({__name:`FilesView`,props:{mainline:{}},setup(e){let t=e,n=J(()=>RA(t.mainline)),r=e=>{let n=t.mainline.tasks.find(t=>t.id===e)??t.mainline.decisions.find(t=>t.id===e);return n?`${e} ${n.title}`:e===JN||!e?`主脈絡本身`:e},i=lN({key:`files`,id:e=>e.key,text:e=>`${e.name} ${e.path??``}`,filters:[{key:`kind`,label:`類型`,values:e=>[e.kind],options:FA.map(e=>({value:e,label:e}))},{key:`source`,label:`來源`,values:e=>[e.source??JN],optionLabel:r},{key:`ext`,label:`副檔名`,values:e=>e.ext?[e.ext]:[],optionLabel:e=>`.${e}`}],sorts:[{key:`kind`,label:`類型`,value:e=>FA.indexOf(e.kind),dir:`asc`},{key:`name`,label:`檔名`,value:e=>e.name,dir:`asc`},{key:`updated`,label:`更新`,value:e=>e.updated,dir:`desc`},{key:`source`,label:`來源`,value:e=>e.source,dir:`asc`}],groups:[{key:`kind`,label:`類型`,value:e=>e.kind,order:FA},{key:`source`,label:`來源`,value:e=>e.source??JN,groupLabel:r}],defaultSort:`kind`,defaultGroup:`kind`},()=>n.value),a=[{key:`name`,label:`檔名`,sort:`name`},{key:`kind`,label:`類型`,class:`text-xs text-muted-foreground`,sort:`kind`},{key:`source`,label:`來源`,class:`max-w-64 truncate text-xs text-muted-foreground`,sort:`source`,value:e=>e.source,optional:!0},{key:`updated`,label:`更新`,class:`text-xs text-muted-foreground`,sort:`updated`,value:e=>e.updated}],o=e=>e.inMainline?QS(t.mainline.id,e.inMainline):void 0;return(e,t)=>(B(),V(z,null,[W(jT,{view:N(i)},null,8,[`view`]),W(sT,{view:N(i),columns:a,"item-ref":o},{name:P(({item:e})=>[U(`span`,WN,[W(qC,{type:N(FC)(e.url??e.key,e.kind)},null,8,[`type`]),e.url?(B(),V(`a`,{key:0,href:e.url,target:`_blank`,rel:`noreferrer`,class:`truncate underline decoration-border underline-offset-4 hover:decoration-foreground`,title:e.url,onClick:t[0]||=au(()=>{},[`stop`])},j(e.name),9,GN)):(B(),V(`span`,{key:1,class:k([`truncate`,{"font-mono text-xs":e.inMainline}]),title:e.inMainline??e.path},j(e.name),11,KN)),e.path?(B(),H(wk,{key:2,text:e.path,class:`min-w-0`},null,8,[`text`])):K(``,!0)])]),kind:P(({item:e})=>[G(j(e.kind),1)]),source:P(({item:e})=>[U(`span`,{title:r(e.source??``)},j(e.source?r(e.source):``),9,qN)]),updated:P(({item:e})=>[e.updated?(B(),H($j,{key:0,at:e.updated},null,8,[`at`])):K(``,!0)]),empty:P(()=>[...t[1]||=[G(`這條主脈絡還沒有檔案。`,-1)]]),_:1},8,[`view`])],64))}}),XN=I({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(B(),V(`div`,{"data-slot":`card`,class:k(N(KS)(`bg-card text-card-foreground flex flex-col gap-4 rounded-xl border py-4 shadow-sm`,t.class))},[R(e.$slots,`default`)],2))}}),ZN={class:`inline-flex gap-1.5 font-mono text-xs`},QN=[`title`],$N=I({__name:`DepList`,props:{deps:{},within:{}},setup(e){let t=e,n=e=>t.within&&e.startsWith(`${t.within}/`)?e.slice(t.within.length+1):e;return(t,r)=>(B(),V(`span`,ZN,[(B(!0),V(z,null,L(e.deps,e=>(B(),V(`span`,{key:e.to,class:k(N(GC)[e.state].tone),title:`${e.to} ${N(GC)[e.state].label}`},j(n(e.to)),11,QN))),128))]))}}),eP={class:`flex items-center rounded-md border p-0.5`,role:`group`,"aria-label":`任務排列`},tP={key:0,class:`flex min-h-0 gap-3 overflow-x-auto px-6 pt-2 pb-6`},nP=[`aria-label`],rP={class:`flex items-center gap-2 py-1`},iP={class:`text-xs text-muted-foreground tabular-nums`},aP={class:`flex items-center gap-2 text-xs`},oP={class:`font-mono text-muted-foreground`},sP={class:`line-clamp-2 [overflow-wrap:anywhere]`},cP={class:`flex items-center justify-between gap-2`},lP={key:0,class:`min-w-0 truncate text-xs text-muted-foreground`},uP={key:0,class:`py-2 text-xs text-muted-foreground`},dP=[`title`],fP=`mainflow.list.tasks.mode`,pP=I({__name:`TaskViews`,props:{mainline:{}},setup(e){let t=e,n=[{key:`table`,label:`表格`,icon:Bd},{key:`board`,label:`看板`,icon:td},{key:`tree`,label:`樹狀`,icon:Ad}],r=cw(fP,`table`),i=M(n.some(e=>e.key===r)?r:`table`);function a(e){i.value=e,lw(fP,e)}let o=()=>t.mainline.tasks,s=J(()=>new Map(t.mainline.tasks.map(e=>[e.id,e])));function c(e){let t=e;for(;t?.kind===`branch`&&t.parent;)t=s.value.get(t.parent);return t?.id??e.id}let l=e=>e.checklist.filter(e=>e.done).length,u={id:e=>e.id,text:e=>`${e.title} ${e.branch??``}`,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(LC)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM},{key:`repo`,label:`倉庫`,values:e=>e.repo?[e.repo]:[]},{key:`kind`,label:`種類`,values:e=>[e.kind],options:[{value:`phase`,label:`階段`},{value:`branch`,label:`分支`}]},{key:`label`,label:`標籤`,values:e=>e.labels??[]}]},d=lN({...u,key:`tasks`,sorts:[{key:`order`,label:`手動順序`,value:e=>e.order??Number(e.id.slice(1)),dir:`asc`},{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`repo`,label:`倉庫`,value:e=>e.repo,dir:`asc`},{key:`depends`,label:`依賴`,value:e=>b(e)[0]?.to,dir:`asc`},{key:`branch`,label:`分支`,value:e=>e.branch,dir:`asc`},{key:`status`,label:`狀態`,value:e=>LC.indexOf(e.status),dir:`asc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`progress`,label:`checklist 進度`,value:e=>e.checklist.length?l(e)/e.checklist.length:null,dir:`desc`}],groups:[{key:`phase`,label:`階段`,value:c,groupLabel:e=>s.value.get(e)?.title??e,status:e=>s.value.get(e)?.status,leader:e=>s.value.get(e)},nN(LC),{key:`repo`,label:`倉庫`,value:e=>e.repo??`沒有指定倉庫`}],defaultSort:`order`,defaultGroup:`status`,ended:e=>tN(e.status)},o),f=e=>t.mainline.tasks.filter(t=>t.parent===e).sort((e,t)=>(e.order??1/0)-(t.order??1/0)||e.id.localeCompare(t.id)),p=(e,t=1)=>f(e.id).flatMap(e=>[{item:e,depth:t},...p(e,t+1)]),m=lN({...u,key:`tasks`,sorts:[{key:`order`,label:`手動順序`,value:e=>e.order??Number(e.id.slice(1)),dir:`asc`}],groups:[],defaultSort:`order`,defaultGroup:``,nested:e=>p(e)},()=>t.mainline.tasks.filter(e=>!e.parent||!s.value.has(e.parent))),h=J(()=>LC.map(e=>({status:e,tasks:d.sorted.value.filter(t=>t.status===e)}))),g=[{key:`name`,label:`名稱`,sort:`name`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`progress`,label:`checklist`,sort:`progress`,value:e=>e.checklist.length},{key:`repo`,label:`倉庫`,class:`text-xs text-muted-foreground`,sort:`repo`,value:e=>e.repo},{key:`depends`,label:`依賴`,sort:`depends`,value:e=>b(e),optional:!0},{key:`branch`,label:`分支`,class:`max-w-56 truncate font-mono text-xs text-muted-foreground`,sort:`branch`,value:e=>e.branch,optional:!0}],{open:_,current:v}=oC(),y=e=>YS(t.mainline.id,e.id);function b(e){return Q.relations.deps.filter(t=>t.from===y(e))}return(t,r)=>(B(),V(z,null,[W(jT,{view:i.value===`tree`?N(m):N(d),grouping:i.value===`table`},{views:P(()=>[U(`div`,eP,[(B(),V(z,null,L(n,e=>W(N(qS),{key:e.key,variant:i.value===e.key?`secondary`:`ghost`,size:`xs`,"aria-pressed":i.value===e.key,onClick:t=>a(e.key)},{default:P(()=>[(B(),H(fa(e.icon))),G(j(e.label),1)]),_:2},1032,[`variant`,`aria-pressed`,`onClick`])),64))])]),_:1},8,[`view`,`grouping`]),i.value===`board`?(B(),V(`div`,tP,[(B(!0),V(z,null,L(h.value,e=>(B(),V(`section`,{key:e.status,class:`flex w-64 shrink-0 flex-col gap-2`,"aria-label":N(VC)[e.status]},[U(`div`,rP,[W(Hw,{status:e.status},null,8,[`status`]),U(`span`,iP,j(e.tasks.length),1)]),(B(!0),V(z,null,L(e.tasks,e=>(B(),H(N(XN),{key:e.id,class:k([`min-w-0 cursor-pointer gap-2 p-3 shadow-xs transition-colors duration-[120ms] hover:bg-accent/50`,{"bg-muted":N(v)?.ref===y(e)}]),"data-peek":y(e),"aria-current":N(v)?.ref===y(e)||void 0,onClick:t=>N(_)(y(e))},{default:P(()=>[U(`div`,aP,[W(qC,{type:N(MC)(e),status:e.status},null,8,[`type`,`status`]),U(`span`,oP,j(e.id),1),W(tA,{priority:e.priority},null,8,[`priority`])]),U(`p`,sP,j(e.title),1),U(`div`,cP,[W(Aj,{done:l(e),total:e.checklist.length},null,8,[`done`,`total`]),e.repo?(B(),V(`span`,lP,j(e.repo),1)):K(``,!0)])]),_:2},1032,[`class`,`data-peek`,`aria-current`,`onClick`]))),128)),e.tasks.length===0?(B(),V(`p`,uP,`沒有任務`)):K(``,!0)],8,nP))),128))])):(B(),H(sT,{key:1,view:i.value===`tree`?N(m):N(d),columns:g,"item-ref":y,"item-type":N(MC)},{name:P(({item:e,depth:t})=>[W(BT,{status:e.status,id:e.id,title:e.title,depth:t,type:N(MC)(e)},null,8,[`status`,`id`,`title`,`depth`,`type`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),progress:P(({item:e})=>[W(Aj,{done:l(e),total:e.checklist.length},null,8,[`done`,`total`])]),repo:P(({item:e})=>[G(j(e.repo),1)]),depends:P(({item:t})=>[W($N,{deps:b(t),within:e.mainline.id},null,8,[`deps`,`within`])]),branch:P(({item:e})=>[U(`span`,{title:e.branch},j(e.branch),9,dP)]),empty:P(()=>[r[0]||=G(`還沒有任務。執行 `,-1),U(`code`,null,`mainflow new task `+j(e.mainline.id)+` <slug> --title <title>`,1),r[1]||=G(` 建立。`,-1)]),_:1},8,[`view`,`item-type`]))],64))}}),mP={class:`px-6 pt-6 pb-3`},hP={class:`mt-1 text-title font-semibold`},gP={class:`mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground`},_P={key:0},vP={key:0,class:`text-xs text-muted-foreground tabular-nums`},yP={key:0,class:`max-w-5xl px-1 pt-2 pb-10`},bP={key:1,class:`px-6 py-16 text-center text-muted-foreground`},xP=`mainflow.mainlineView`,SP=I({__name:`MainlineDetail`,setup(e){let t=Gf(),n=Wf(),{id:r,mainline:i}=fA(),a=[{key:`overview`,label:`概覽`},{key:`tasks`,label:`任務`},{key:`criteria`,label:`條件`},{key:`decisions`,label:`決策`},{key:`files`,label:`資料`}],o=J(()=>a.find(e=>e.key===t.query.view)?.key??`overview`),s=e=>{let t=i.value;if(t)return{overview:void 0,tasks:t.tasks.length,criteria:t.criteria.length,decisions:t.decisions.length,files:RA(t).length}[e]},c=e=>n.replace({query:{view:String(e)}});F(()=>[r.value,t.query.view,t.query.tab],([e,r,i])=>{if(!e||typeof i==`string`)return;let a=cw(xP,{});typeof r==`string`?lw(xP,{...a,[e]:r}):a[e]&&a[e]!==`overview`&&n.replace({query:{...t.query,view:a[e]}})},{immediate:!0}),Er(()=>{let e=t.query.tab;if(typeof e!=`string`)return;let{tab:r,...i}=t.query,a={...i,view:e===`views`?`files`:e};n.replace({query:a})});let l=e=>i.value&&vC(()=>uC.mainlineStatus(r.value,e,i.value.version)),u=e=>i.value&&vC(()=>uC.mainlineTitle(r.value,e,i.value.version)),d=()=>i.value&&vC(()=>uC.archive(r.value,!i.value.archivedAt,i.value.version));return(e,t)=>N(i)?(B(),H(ZM,{key:0},{header:P(()=>[U(`header`,mP,[W(wk,{text:N(i).id},null,8,[`text`]),U(`h1`,hP,[W(Tk,{value:N(i).title,onSave:u},null,8,[`value`])]),U(`div`,gP,[W(Jj,{status:N(i).status,options:N(IC),onChange:l},null,8,[`status`,`options`]),W(tA,{priority:N(i).priority},null,8,[`priority`]),N(i).archivedAt?(B(),V(`span`,_P,`已封存 `+j(N(i).archivedAt),1)):K(``,!0),W(Dw,{class:`ml-auto`,archived:!!N(i).archivedAt,onToggle:d},null,8,[`archived`])])]),W(N(xN),{"model-value":o.value,"onUpdate:modelValue":c},{default:P(()=>[W(N(SN),{variant:`line`,class:`h-9 w-full justify-start border-b px-6`},{default:P(()=>[(B(),V(z,null,L(a,e=>W(N(CN),{key:e.key,value:e.key,class:`flex-none px-2`},{default:P(()=>[G(j(e.label),1),s(e.key)===void 0?K(``,!0):(B(),V(`span`,vP,j(s(e.key)),1))]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`])]),default:P(()=>[o.value===`overview`?(B(),V(`div`,yP,[W(Wj,{mainline:N(i),columns:2},null,8,[`mainline`])])):o.value===`tasks`?(B(),H(pP,{key:1,mainline:N(i)},null,8,[`mainline`])):o.value===`criteria`?(B(),H(BN,{key:2,mainline:N(i)},null,8,[`mainline`])):o.value===`decisions`?(B(),H(UN,{key:3,mainline:N(i)},null,8,[`mainline`])):(B(),H(YN,{key:4,mainline:N(i)},null,8,[`mainline`]))]),_:1})):(B(),V(`p`,bP,`載入 `+j(N(r))+`…`,1))}}),CP={key:0,class:`shrink-0 text-xs text-muted-foreground`},wP=I({__name:`MainlineList`,setup(e){let t={key:`mainlines`,id:e=>e.id,text:e=>e.title,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(IC)},{key:`priority`,label:`優先度`,values:e=>[$M(e.priority)],options:QM},{key:`category`,label:`分類`,values:e=>e.category?[e.category]:[]},{key:`label`,label:`標籤`,values:e=>e.labels}],sorts:[{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`criteria`,label:`解決條件`,value:e=>e.criteria.total?e.criteria.done/e.criteria.total:null,dir:`desc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`updated`,label:`更新`,value:e=>e.updated,dir:`desc`},{key:`created`,label:`建立`,value:e=>e.created,dir:`desc`},{key:`due`,label:`到期`,value:e=>e.due,dir:`asc`}],groups:[nN(IC),{key:`priority`,label:`優先度`,value:e=>$M(e.priority),order:[`P0`,`P1`,`P2`,`P3`]},{key:`category`,label:`分類`,value:e=>e.category??`未分類`}],defaultSort:`updated`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt},n=e=>Q.relations.mainlineDeps.filter(t=>t.from===e.id),r=lN(t,()=>Q.summary?.mainlines??[]),i=uN(r,{kind:`mainline`,archived:e=>!!e.archivedAt}),a=[{key:`name`,label:`名稱`,sort:`name`},{key:`priority`,label:`優先度`,sort:`priority`},{key:`criteria`,label:`解決條件`,sort:`criteria`,value:e=>e.criteria.total},{key:`deps`,label:`依賴`,value:n,optional:!0},{key:`due`,label:`到期`,sort:`due`,value:e=>e.due},{key:`updated`,label:`更新`,class:`text-xs text-muted-foreground`,sort:`updated`,optional:!0}],o=e=>vC(()=>uC.archive(e.id,!e.archivedAt));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`主脈絡`,description:`一條主脈絡是一件要做完的事:意圖、解決條件,以及推進它的任務與決策。`}),W(jT,{view:N(r)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(r),selection:N(i),columns:a,"item-ref":e=>e.id},{name:P(({item:e})=>[W(BT,{status:e.status,id:e.id,title:e.title,muted:!!e.archivedAt},{default:P(()=>[(B(!0),V(z,null,L(e.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`,class:`shrink-0`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128)),e.archivedAt?(B(),V(`span`,CP,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`id`,`title`,`muted`])]),priority:P(({item:e})=>[W(tA,{priority:e.priority},null,8,[`priority`])]),criteria:P(({item:e})=>[W(Aj,{done:e.criteria.done,total:e.criteria.total},null,8,[`done`,`total`])]),deps:P(({item:e})=>[W($N,{deps:n(e)},null,8,[`deps`])]),due:P(({item:e})=>[W(Mw,{day:e.due,ended:N(tN)(e.status)},null,8,[`day`,`ended`])]),updated:P(({item:e})=>[W($j,{at:e.updated},null,8,[`at`])]),actions:P(({item:e})=>[W(N(qS),{variant:`ghost`,size:`xs`,class:`text-muted-foreground`,"as-child":``},{default:P(()=>[W(N(bm),{to:`/mainlines/${e.id}`,onClick:t[0]||=au(()=>{},[`stop`])},{default:P(()=>[W(N(Gd)),t[1]||=G(`開啟`,-1)]),_:1},8,[`to`])]),_:2},1024),W(Dw,{archived:!!e.archivedAt,onToggle:t=>o(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[2]||=[G(`沒有主脈絡。在 hub 內執行 `,-1),U(`code`,null,`mainflow new mainline <slug> --title <title>`,-1),G(` 建立第一個。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(i)},null,8,[`selection`])]),_:1}))}}),TP=[`title`],EP=[`title`],DP=[`title`],OP=I({__name:`OpsLog`,setup(e){let t=e=>!/fail|error|denied|reject|abort|失敗|錯誤|拒絕|中止/i.test(e.result),n=e=>e.ref?.match(/^m\d{3}/)?.[0]??``,r=lN({key:`ops`,id:e=>`${e.at}|${e.target}|${e.operation}`,text:e=>`${e.operation} ${e.target} ${e.ref??``}`,filters:[{key:`result`,label:`結果`,values:e=>[t(e)?`success`:`failed`],options:[{value:`success`,label:`成功`},{value:`failed`,label:`沒有成功`}]},{key:`target`,label:`目標系統`,values:e=>[e.target]},{key:`mainline`,label:`主脈絡`,values:e=>[n(e)].filter(Boolean),optionLabel:e=>`${e} ${Q.summary?.mainlines.find(t=>t.id===e)?.title??``}`.trim()}],sorts:[{key:`at`,label:`時間`,value:e=>e.at,dir:`desc`},{key:`operation`,label:`操作`,value:e=>e.operation,dir:`asc`},{key:`target`,label:`目標系統`,value:e=>e.target,dir:`asc`},{key:`result`,label:`結果`,value:e=>+!!t(e),dir:`asc`},{key:`ref`,label:`關聯`,value:e=>e.ref,dir:`asc`}],groups:[{key:`month`,label:`月份`,value:e=>e.at.slice(0,7),latestFirst:!0},{key:`day`,label:`日期`,value:e=>e.at.slice(0,10),latestFirst:!0}],defaultSort:`at`,defaultGroup:`month`},()=>Q.ops),i=[{key:`operation`,label:`操作`,sort:`operation`},{key:`target`,label:`目標系統`,class:`max-w-64 truncate font-mono text-xs text-muted-foreground`,sort:`target`,optional:!0},{key:`result`,label:`結果`,class:`max-w-40 truncate text-xs`,sort:`result`},{key:`ref`,label:`關聯`,class:`max-w-56`,sort:`ref`,value:e=>e.ref,optional:!0},{key:`at`,label:`時間`,class:`font-mono text-xs text-muted-foreground tabular-nums`,sort:`at`}],{open:a}=oC();return Er(()=>AC(Q.ops.map(e=>e.ref))),(e,n)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`操作紀錄`,description:`對外部系統執行過的操作,只追加不改寫。`}),W(jT,{view:N(r)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(r),columns:i},{operation:P(({item:e})=>[U(`span`,{class:`block truncate`,title:e.operation},j(e.operation),9,TP)]),target:P(({item:e})=>[U(`span`,{title:e.target},j(e.target),9,EP)]),result:P(({item:e})=>[U(`span`,{class:k(t(e)?`text-muted-foreground`:`text-foreground`),title:e.result},[t(e)?K(``,!0):(B(),H(N(Yu),{key:0,class:`mr-1 inline size-3.5 align-[-2px] text-destructive`})),G(j(e.result),1)],10,DP)]),ref:P(({item:e})=>[e.ref?(B(),H(dA,q({key:0},N(OC)(e.ref),{onOpen:N(a)}),null,16,[`onOpen`])):K(``,!0)]),at:P(({item:e})=>[G(j(e.at.slice(5).replace(`T`,` `)),1)]),empty:P(()=>[...n[0]||=[G(`還沒有紀錄。用 `,-1),U(`code`,null,`mainflow ops add --target <系統> --op <操作> --result <結果>`,-1),G(` 記錄 push、發布、合併這類對外操作。`,-1)]]),_:1},8,[`view`])]),_:1}))}}),kP={key:0,class:`overflow-x-auto px-6 pb-2`},AP=[`aria-colcount`],jP=[`title`],MP={class:`text-xs text-muted-foreground tabular-nums`},NP={key:0,class:`col-span-full flex min-w-0 items-center gap-2 pt-4 pb-2 text-sm`,role:`rowheader`},PP=[`aria-label`,`aria-expanded`,`onClick`],FP={key:1,class:`truncate font-medium`},IP={class:`text-xs text-muted-foreground tabular-nums`},LP={key:1,class:`px-6 py-16 text-center text-sm text-muted-foreground`},RP=I({__name:`BoardView`,props:{view:{},axis:{}},setup(e){let t=e,n=J(()=>t.view.spec.groups.find(e=>e.key===t.axis)??t.view.spec.groups[0]),r=J(()=>rN(n.value,t.view.sorted.value)),i=J(()=>t.view.group.value!==``),a=(e,t)=>e.filter(e=>n.value.value(e)===t),o=e=>[...e.items,...e.ended];return(t,n)=>e.view.groups.value.length?(B(),V(`div`,kP,[U(`div`,{class:`grid gap-x-3`,style:he({gridTemplateColumns:`repeat(${r.value.length}, minmax(15rem, 1fr))`}),role:`table`,"aria-colcount":r.value.length},[(B(!0),V(z,null,L(r.value,e=>(B(),V(`div`,{key:e.key,class:`flex min-w-0 items-center gap-2 border-b py-2`,role:`columnheader`},[e.status?(B(),H(Hw,{key:0,status:e.status},null,8,[`status`])):(B(),V(`span`,{key:1,class:`truncate text-sm font-medium`,title:e.label},j(e.label),9,jP)),U(`span`,MP,j(e.items.length),1)]))),128)),(B(!0),V(z,null,L(e.view.groups.value,n=>(B(),V(z,{key:n.key},[i.value?(B(),V(`div`,NP,[U(`button`,{type:`button`,class:`-ml-1 grid size-5 shrink-0 place-items-center rounded-sm hover:bg-accent`,"aria-label":e.view.collapsed.has(n.key)?`展開分組`:`收合分組`,"aria-expanded":!e.view.collapsed.has(n.key),onClick:t=>e.view.toggleCollapsed(n.key)},[e.view.collapsed.has(n.key)?(B(),H(N(Ju),{key:1,class:`size-4 text-muted-foreground`})):(B(),H(N(Ku),{key:0,class:`size-4 text-muted-foreground`}))],8,PP),n.status?(B(),H(Hw,{key:0,status:n.status},null,8,[`status`])):(B(),V(`span`,FP,j(n.label),1)),U(`span`,IP,j(o(n).length),1)])):K(``,!0),!e.view.collapsed.has(n.key)||!i.value?(B(!0),V(z,{key:1},L(r.value,r=>(B(),V(`div`,{key:r.key,class:`flex min-w-0 flex-col gap-2 py-2`,role:`cell`},[(B(!0),V(z,null,L(a(o(n),r.key),n=>R(t.$slots,`card`,{item:n},void 0,void 0,e.view.spec.id(n))),128))]))),128)):K(``,!0)],64))),128))],12,AP)])):(B(),V(`div`,LP,[e.view.total.value>0?(B(),V(z,{key:0},[n[1]||=G(` 沒有符合條件的項目。`,-1),W(N(qS),{variant:`link`,size:`xs`,class:`px-0`,onClick:e.view.clearAll},{default:P(()=>[...n[0]||=[G(`清除篩選與搜尋`,-1)]]),_:1},8,[`onClick`])],64)):R(t.$slots,`empty`,{},void 0,void 0,1)]))}}),zP=.01,BP=e=>Math.min(2,Math.max(zP,e));function VP(e,t,n,r){let i=BP(t),a=(n-e.x)/e.zoom,o=(r-e.y)/e.zoom;return{zoom:i,x:n-a*i,y:r-o*i}}function HP(e,t,n=.9){if(e.width<=0||e.height<=0||t.width<=0||t.height<=0)return{x:0,y:0,zoom:1};let r=BP(Math.min(1,t.width*n/e.width,t.height*n/e.height));return{zoom:r,x:(t.width-e.width*r)/2,y:(t.height-e.height*r)/2}}function UP(e){if(e.deltaMode!==0)return!0;let t=e.wheelDeltaY;return typeof t==`number`&&t!==0&&t%120==0&&e.deltaX===0}function WP(e,t){let n=new Set(t.flatMap(e=>[e.from,e.to])),r=new Map;for(let e of t)r.set(e.from,[...r.get(e.from)??[],e.to]);let i=new Map,a=new Set;function o(e){let t=i.get(e);if(t!==void 0)return t;if(a.has(e))return 0;a.add(e);let n=Math.max(0,...(r.get(e)??[]).map(e=>o(e)+1));return a.delete(e),i.set(e,n),n}let s=[];for(let t of e){if(!n.has(t))continue;let e=o(t);for(;s.length<=e;)s.push([]);s[e].push(t)}return{columns:s.filter(e=>e.length>0),free:e.filter(e=>!n.has(e))}}var GP=[`data-node`,`aria-pressed`,`title`],KP={class:`flex min-w-0 items-center gap-2`},qP={class:`shrink-0 font-mono text-xs text-muted-foreground`},JP=[`title`],YP={class:`h-1 w-12 overflow-hidden rounded-full bg-muted`},XP={class:`flex min-w-0 items-center gap-2`},ZP=I({__name:`MainlineNode`,props:{id:{},picked:{type:Boolean}},emits:[`pick`],setup(e){let t=e,n=J(()=>Q.summary?.mainlines.find(e=>e.id===t.id)),r=J(()=>n.value?.title??OC(t.id).title??``),i=J(()=>n.value?.status??OC(t.id).status),a=J(()=>n.value?.criteria),o=J(()=>tN(i.value??``)),s=J(()=>!!$S(t.id)),c=J(()=>Q.mainlines[t.id]?.tasks.filter(e=>e.status===`doing`).length),l=J(()=>a.value?.total?Math.round(100*a.value.done/a.value.total):0);return(t,n)=>(B(),V(`button`,{type:`button`,class:k([`relative z-[1] flex w-full min-w-0 flex-col gap-1.5 rounded-xl border bg-card px-3 py-2.5 text-left shadow-xs transition-[background-color,border-color] duration-[120ms] hover:bg-[color-mix(in_oklab,var(--accent)_50%,var(--card))] focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-none`,{"border-dashed":s.value,"border-ring":e.picked}]),"data-node":e.id,"aria-pressed":e.picked,title:s.value?`${e.id}:在新分頁開啟另一個 hub`:void 0,onClick:n[0]||=n=>t.$emit(`pick`,e.id,n)},[U(`span`,KP,[W(qC,{type:`mainline`,status:i.value},null,8,[`status`]),U(`span`,qP,j(e.id),1),a.value?(B(),V(`span`,{key:0,class:`ml-auto flex shrink-0 items-center gap-1.5 text-xs text-muted-foreground tabular-nums`,title:`解決條件 ${a.value.done}/${a.value.total}`},[U(`span`,YP,[U(`span`,{class:`block h-full bg-foreground`,style:he({width:`${l.value}%`})},null,4)]),G(` `+j(a.value.done)+`/`+j(a.value.total),1)],8,JP)):K(``,!0)]),U(`span`,XP,[U(`span`,{class:k([`truncate font-medium`,{"text-muted-foreground":o.value}])},j(r.value),3),!o.value&&c.value!==void 0?(B(),V(`span`,{key:0,class:k([`ml-auto inline-flex shrink-0 items-center gap-1 text-xs tabular-nums`,{"text-muted-foreground":!c.value}]),title:`進行中的任務`},[W(qC,{type:`phase`,status:c.value?`doing`:void 0},null,8,[`status`]),G(j(c.value),1)],2)):K(``,!0)])],10,GP))}}),QP=[`data-serves`,`data-session`,`aria-pressed`],$P={"data-session-icon":``,class:`relative row-span-2 grid size-6 place-items-center rounded-md bg-muted text-foreground`},eF={class:`truncate font-medium`},tF={class:`truncate leading-4 text-muted-foreground`},nF=I({__name:`SessionNode`,props:{session:{},serves:{},picked:{type:Boolean}},emits:[`pick`],setup(e){let t=e,n=J(()=>t.session.actions.find(e=>e.status===`doing`)??t.session.actions.find(e=>e.status===`todo`)),r=jC.session.icon;return(t,i)=>(B(),V(`button`,{type:`button`,class:k([`relative z-[1] grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 rounded-md border py-1 pr-2 pl-1 text-left text-xs transition-colors duration-[120ms] hover:bg-accent focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-none`,e.picked?`border-ring`:`border-transparent`]),"data-serves":e.serves,"data-session":e.session.id,"aria-pressed":e.picked,onClick:i[0]||=e=>t.$emit(`pick`,e)},[U(`span`,$P,[(B(),H(fa(N(r)),{class:`size-3.5`})),U(`span`,{class:k([`absolute -right-0.5 -bottom-0.5 size-2 rounded-full border-[1.5px] border-background`,n.value?`bg-status-done`:`bg-status-todo`])},null,2)]),U(`span`,eF,j(N(CC)(e.session)),1),U(`span`,tF,j(n.value?.do??`沒有待做的行動`),1)],10,QP))}}),rF={class:`rounded-xl border bg-card text-body shadow-xs`},iF={class:`flex h-10 items-center gap-2 px-4`},aF={class:`font-mono text-xs text-muted-foreground`},oF={class:`flex flex-col gap-4 px-4 pb-4`},sF={class:`text-base font-semibold [overflow-wrap:anywhere]`},cF={class:`grid grid-cols-[72px_1fr] items-center gap-x-3 gap-y-1.5 text-xs`},lF={class:`flex flex-col gap-0.5`},uF=[`onClick`],dF={class:`shrink-0 font-mono text-muted-foreground`},fF={class:`truncate`},pF={class:`ml-auto shrink-0 text-muted-foreground`},mF={key:0,class:`px-1.5 text-xs text-muted-foreground`},hF={class:`flex flex-col gap-0.5`},gF={key:0,class:`px-1.5 text-xs text-muted-foreground`},_F={class:`flex h-10 items-center gap-2 px-4`},vF={class:`flex flex-col gap-4 px-4 pb-4`},yF={class:`text-base font-semibold [overflow-wrap:anywhere]`},bF={class:`grid grid-cols-[72px_1fr] items-center gap-x-3 gap-y-1.5 text-xs`},xF={class:`flex flex-col gap-0.5`},SF={class:`flex flex-col gap-0.5`},CF={class:`shrink-0 font-mono text-muted-foreground`},wF={class:`truncate`},TF={key:1,class:`px-1.5 text-xs text-muted-foreground`},EF={key:2,class:`px-4 py-6 text-sm text-muted-foreground`},DF=I({__name:`RunningPreview`,props:{picked:{}},emits:[`pickMainline`,`pickSession`],setup(e,{emit:t}){let n=e,r=t,{open:i}=oC(),a=[`doing`,`blocked`,`todo`],o=SC,s=J(()=>{if(n.picked?.kind!==`mainline`)return;let e=n.picked.id,t=Q.summary?.mainlines.find(t=>t.id===e),r=(Q.mainlines[e]?.tasks??[]).filter(e=>a.includes(e.status)).sort((e,t)=>a.indexOf(e.status)-a.indexOf(t.status)||(e.order??0)-(t.order??0));return{id:e,loaded:!!Q.mainlines[e],title:t?.title??OC(e).title??e,status:t?.status,criteria:t?.criteria,items:t?.items,tasks:r,sessions:TC().filter(t=>wC(t)===e)}}),c=e=>vC(()=>uC.archive(e,!0,Q.mainlines[e]?.version)),l=e=>vC(()=>uC.archiveSession(e,!0)),u=J(()=>n.picked?.kind===`session`?Q.sessions.find(e=>e.id===n.picked.id):void 0),d=e=>{let t=e=>Q.sessions.filter(t=>t.delegatedFrom===e).flatMap(e=>[e,...t(e.id)]),n=t(e.id);return n.length?`${n.filter(e=>e.status===`active`).length} 個進行中,共 ${n.length} 個`:`沒有`};return(e,t)=>(B(),V(`div`,rF,[s.value?(B(),V(z,{key:0},[U(`div`,iF,[W(qC,{type:`mainline`,status:s.value.status},null,8,[`status`]),U(`span`,aF,j(s.value.id),1),t[4]||=U(`span`,{class:`text-xs text-muted-foreground`},`主脈絡`,-1),W(Dw,{class:`ml-auto`,archived:!1,onToggle:t[0]||=e=>c(s.value.id)})]),U(`div`,oF,[U(`h3`,sF,j(s.value.title),1),U(`dl`,cF,[t[7]||=U(`dt`,{class:`text-muted-foreground`},`狀態`,-1),U(`dd`,null,[s.value.status?(B(),H(Hw,{key:0,status:s.value.status},null,8,[`status`])):K(``,!0)]),s.value.criteria?(B(),V(z,{key:0},[t[5]||=U(`dt`,{class:`text-muted-foreground`},`解決條件`,-1),U(`dd`,null,[W(Aj,{done:s.value.criteria.done,total:s.value.criteria.total},null,8,[`done`,`total`])])],64)):K(``,!0),s.value.items?(B(),V(z,{key:1},[t[6]||=U(`dt`,{class:`text-muted-foreground`},`checklist`,-1),U(`dd`,null,[W(Aj,{done:s.value.items.done,total:s.value.items.total},null,8,[`done`,`total`])])],64)):K(``,!0)]),U(`section`,lF,[t[8]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`未完成的任務`,-1),(B(!0),V(z,null,L(s.value.tasks,e=>(B(),V(`button`,{key:e.id,type:`button`,class:`flex h-7 min-w-0 items-center gap-2 rounded-md px-1.5 text-left text-xs hover:bg-accent`,onClick:t=>N(i)(N(YS)(s.value.id,e.id))},[W(qC,{type:N(MC)(e),status:e.status},null,8,[`type`,`status`]),U(`span`,dF,j(e.id),1),U(`span`,fF,j(e.title),1),U(`span`,pF,j(N(VC)[e.status]),1)],8,uF))),128)),s.value.tasks.length?K(``,!0):(B(),V(`p`,mF,j(s.value.loaded?`沒有`:`載入中…`),1))]),U(`section`,hF,[t[9]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`會話`,-1),(B(!0),V(z,null,L(s.value.sessions,e=>(B(),H(nF,{key:e.id,session:e,onPick:t=>r(`pickSession`,e.id)},null,8,[`session`,`onPick`]))),128)),s.value.sessions.length?K(``,!0):(B(),V(`p`,gF,`沒有`))]),U(`div`,null,[W(N(qS),{variant:`outline`,size:`sm`,"as-child":``},{default:P(()=>[W(N(bm),{to:`/mainlines/${s.value.id}`},{default:P(()=>[...t[10]||=[G(`開啟主脈絡`,-1)]]),_:1},8,[`to`])]),_:1})])])],64)):u.value?(B(),V(z,{key:1},[U(`div`,_F,[W(qC,{type:`session`,status:u.value.status},null,8,[`status`]),t[11]||=U(`span`,{class:`text-xs text-muted-foreground`},`會話`,-1),W(Dw,{class:`ml-auto`,archived:!1,onToggle:t[1]||=e=>l(u.value.id)})]),U(`div`,vF,[U(`h3`,yF,j(N(CC)(u.value)),1),U(`dl`,bF,[t[12]||=U(`dt`,{class:`text-muted-foreground`},`狀態`,-1),U(`dd`,null,[W(Hw,{status:u.value.status},null,8,[`status`])]),t[13]||=U(`dt`,{class:`text-muted-foreground`},`子代理`,-1),U(`dd`,null,j(d(u.value)),1)]),U(`section`,xF,[t[14]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`目前行動`,-1),U(`p`,{class:k([`text-xs [overflow-wrap:anywhere]`,{"text-muted-foreground":!N(o)(u.value)}])},j(N(o)(u.value)?.do??`沒有待做的行動`),3)]),U(`section`,SF,[t[15]||=U(`h4`,{class:`mb-0.5 text-xs font-medium text-muted-foreground`},`服務的主脈絡`,-1),N(wC)(u.value)?(B(),V(`button`,{key:0,type:`button`,class:`flex h-7 min-w-0 items-center gap-2 rounded-md px-1.5 text-left text-xs hover:bg-accent`,onClick:t[2]||=e=>r(`pickMainline`,N(wC)(u.value))},[W(qC,{type:`mainline`,status:N(OC)(N(wC)(u.value)).status},null,8,[`status`]),U(`span`,CF,j(N(wC)(u.value)),1),U(`span`,wF,j(N(OC)(N(wC)(u.value)).title),1)])):(B(),V(`p`,TF,`沒有`))]),U(`div`,null,[W(N(qS),{variant:`outline`,size:`sm`,onClick:t[3]||=e=>N(i)(N(ZS)(u.value.id))},{default:P(()=>[...t[16]||=[G(`開啟會話`,-1)]]),_:1})])])],64)):(B(),V(`p`,EF,`點關係圖裡的主脈絡或會話看詳情。`))]))}}),OF=[`width`,`height`],kF=[`id`],AF=[`fill`],jF=[`d`,`stroke`,`stroke-dasharray`,`marker-end`],MF={class:`flex flex-wrap items-start gap-x-6 gap-y-3`},NF={key:1,class:`col-span-full mt-6 flex flex-col gap-1.5`},PF={class:`flex flex-wrap gap-x-6 gap-y-1`},FF={key:1,class:`absolute bottom-3 left-1/2 z-20 -translate-x-1/2 cursor-auto`,role:`toolbar`,"aria-label":`批次操作`,"data-canvas-overlay":``},IF={class:`flex items-center gap-1 rounded-lg border bg-popover py-1 pr-1 pl-3 text-sm shadow-md`},LF={class:`mr-2 tabular-nums`},RF={class:`text-muted-foreground tabular-nums`},zF={class:`absolute right-3 bottom-3 z-20 flex cursor-auto items-center rounded-full border bg-popover p-0.5 text-xs shadow-sm`,role:`toolbar`,"aria-label":`縮放`,"data-canvas-overlay":``},BF={key:1,class:`text-sm text-muted-foreground`},VF=20,HF=260,UF=48,WF=4,GF=4,KF=`mainflow.overview.canvasHeight`,qF=240,JF=`mainflow.overview.previewWidth`,YF=260,XF=560,ZF=I({__name:`RunningMap`,setup(e){let t=e=>`${e.kind}:${e.id}`,n=[`active`,`planning`,`paused`],r=e=>e&&!tN(e)?Math.max(0,n.indexOf(e)):n.length,i=(e,t)=>e.map((e,t)=>({item:e,i:t})).sort((e,n)=>r(t(e.item))-r(t(n.item))||e.i-n.i).map(e=>e.item),a=J(()=>(Q.summary?.mainlines??[]).filter(e=>!e.archivedAt)),o=e=>OC(e).status,s=J(()=>a.value.map(e=>e.id)),c=J(()=>new Set((Q.summary?.mainlines??[]).filter(e=>e.archivedAt).map(e=>e.id))),l=J(()=>Q.relations.mainlineDeps.filter(e=>![e.from,e.to].some(e=>c.value.has(e)))),u=J(()=>i([...new Set([...s.value,...l.value.flatMap(e=>[e.to,e.from])])],o)),d=J(()=>new Set(u.value)),f=J(()=>WP(u.value,l.value)),p=J(()=>i(TC(),e=>e.status)),m=e=>p.value.filter(t=>wC(t)===e),h=J(()=>p.value.filter(e=>!d.value.has(wC(e)??``))),g=e=>e.kind===`mainline`?d.value.has(e.id):p.value.some(t=>t.id===e.id),_=Qt(new Map),v=J(()=>[..._.values()].filter(g)),y=M(),b=J(()=>y.value&&_.has(t(y.value))&&g(y.value)?y.value:void 0),x=(e,n)=>_.has(t({kind:e,id:n})),S=e=>!!(e&&(e.metaKey||e.ctrlKey));function C(){_.clear(),y.value=void 0}function w(e,n){let r=t(e);if(S(n)){_.has(r)?_.delete(r):_.set(r,e);return}_.clear(),_.set(r,e),y.value=e}function T(e,t){if($S(e)){S(t)||window.open(eC(e)??void 0,`_blank`,`noopener`);return}w({kind:`mainline`,id:e},t)}let ee=(e,t)=>w({kind:`session`,id:e},t);async function E(){let e=new Map;for(let t of v.value)e.set(t.kind,[...e.get(t.kind)??[],t.id]);await vC(async()=>{let t=[];for(let[n,r]of e){let e=await uC.archiveMany(n,r,!0);t.push(...e.failed.map(e=>`${e.id}(${e.error})`))}if(t.length)throw Error(`${t.length} 個沒有封存:${t.join(`、`)}`)})&&C()}let{current:te}=oC();_f(window,`keydown`,e=>{e.key!==`Escape`||te.value||Q.paletteOpen||!_.size||(b.value&&v.value.length>1?y.value=void 0:C())},{capture:!0});let ne=M(),re=M([]),D=M({width:0,height:0});function ie(e,t){let n=0,r=0;for(let i=e;i&&i!==t;i=i.offsetParent)n+=i.offsetLeft,r+=i.offsetTop;return{left:n,top:r,right:n+e.offsetWidth,bottom:r+e.offsetHeight,height:e.offsetHeight}}function ae(){let e=ne.value;if(!e)return;let t=t=>{let n=e.querySelector(`[data-node="${CSS.escape(t)}"]`);return n?ie(n,e):void 0},n=[];for(let e of l.value){let r=t(e.to),i=t(e.from);if(!r||!i)continue;let a=r.right,o=r.top+VF,s=i.left-2,c=i.top+VF;n.push({key:`${e.to}>${e.from}`,d:`M${a},${o} C${a+28},${o} ${s-28},${c} ${s},${c}`,kind:e.state===`pending`?`pending`:`other`})}for(let r of e.querySelectorAll(`[data-serves]`)){let i=t(r.dataset.serves),a=r.querySelector(`[data-session-icon]`);if(!i||!a)continue;let o=ie(a,e);n.push({key:`s:${r.dataset.session}`,d:`M${i.left+12},${i.bottom} V${o.top+o.height/2} H${o.left}`,kind:`session`})}re.value=n,D.value={width:e.offsetWidth,height:e.offsetHeight},ge||_e()}Tf(ne,ae),F([f,p,()=>Q.mainlines],()=>void tr(ae),{deep:!0});let oe={pending:`var(--muted-foreground)`,other:`var(--status-off)`,session:`var(--status-off)`},se={pending:void 0,other:`4 3`,session:`2 2`},O=J(()=>{let e=f.value.columns.length*308-UF,t=e=>Math.min(e,WF)*284-24;return Math.max(HF,e,t(f.value.free.length),t(h.value.length))}),ce=M(),le=M({x:0,y:0,zoom:1}),ue=M({width:0,height:0});function de(){let e=ce.value;e&&(ue.value={width:e.clientWidth,height:e.clientHeight})}Tf(ce,()=>{de(),ge||_e()});let fe=M(!1),pe;function me(e){fe.value=!0,le.value=e,clearTimeout(pe),pe=setTimeout(()=>fe.value=!1,320)}let ge=!1;function _e(){de(),D.value.width&&D.value.height&&ue.value.width&&ue.value.height&&(le.value=HP(D.value,ue.value),ge=!0)}let ve=()=>(de(),me(HP(D.value,ue.value))),ye=e=>(de(),me(VP(le.value,le.value.zoom*e,ue.value.width/2,ue.value.height/2))),A=J(()=>`${Math.round(le.value.zoom*100)}%`),be=0;function xe(e){let t=ce.value.getBoundingClientRect();if(e.ctrlKey||e.metaKey){e.preventDefault(),le.value=VP(le.value,BP(le.value.zoom*Math.exp(-e.deltaY*.01)),e.clientX-t.left,e.clientY-t.top);return}let n=performance.now()<be||!UP(e);if(e.preventDefault(),!n){Se(ce.value).scrollBy({top:Ce(e,e.deltaY),left:Ce(e,e.deltaX)});return}be=performance.now()+120,le.value={...le.value,x:le.value.x-e.deltaX,y:le.value.y-e.deltaY}}function Se(e){for(let t=e.parentElement;t;t=t.parentElement){let{overflowY:e}=getComputedStyle(t);if((e===`auto`||e===`scroll`)&&t.scrollHeight>t.clientHeight)return t}return document.scrollingElement??document.documentElement}let Ce=(e,t)=>e.deltaMode===1?t*16:e.deltaMode===2?t*window.innerHeight:t,we=M(!1);function Te(e){if(e.button!==0||e.target.closest(`button, a, [data-canvas-overlay]`))return;let t={x:e.clientX,y:e.clientY,vx:le.value.x,vy:le.value.y},n=!1,r=ce.value;try{r.setPointerCapture(e.pointerId)}catch{}let i=e=>{let r=e.clientX-t.x,i=e.clientY-t.y;!n&&Math.hypot(r,i)<GF||(n=!0,we.value=!0,le.value={...le.value,x:t.vx+r,y:t.vy+i})},a=()=>{r.removeEventListener(`pointermove`,i),r.removeEventListener(`pointerup`,a),r.removeEventListener(`pointercancel`,a),we.value=!1,n||C()};r.addEventListener(`pointermove`,i),r.addEventListener(`pointerup`,a),r.addEventListener(`pointercancel`,a)}let Ee=e=>Math.round(Math.min(Math.max(qF,window.innerHeight),Math.max(qF,e))),De=Number(cw(KF,null)),Oe=M(De>0?Ee(De):null);function ke(e){let t=e.clientY,n=ce.value.offsetHeight,r=e=>Oe.value=Ee(n+e.clientY-t),i=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),lw(KF,Oe.value)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)}function Ae(){Oe.value=null,lw(KF,null)}let je=e=>Math.min(XF,Math.max(YF,e)),Me=M(je(Number(cw(JF,340))||340)),Ne=J(()=>ue.value.width?Math.min(Me.value,ue.value.width*.6):Me.value);function Pe(e){let t=e.clientX,n=Ne.value,r=e=>Me.value=je(n+t-e.clientX),i=()=>{window.removeEventListener(`pointermove`,r),window.removeEventListener(`pointerup`,i),lw(JF,Me.value)};window.addEventListener(`pointermove`,r),window.addEventListener(`pointerup`,i)}return(e,t)=>u.value.length||p.value.length?(B(),V(`div`,{key:0,ref_key:`viewport`,ref:ce,class:k([`relative w-full touch-none overflow-hidden rounded-xl border bg-background select-none`,[we.value?`cursor-grabbing`:`cursor-grab`,Oe.value===null&&`h-[60vh]`]]),style:he(Oe.value===null?void 0:{height:`${Oe.value}px`}),"data-canvas":``,onPointerdown:Te,onWheel:xe},[U(`div`,{ref_key:`canvas`,ref:ne,class:k([`absolute top-0 left-0 grid origin-top-left gap-y-4`,{"transition-transform duration-300 ease-out":fe.value}]),style:he({width:`${O.value}px`,columnGap:`${UF}px`,gridTemplateColumns:`repeat(${Math.max(f.value.columns.length,1)}, ${HF}px)`,transform:`translate(${le.value.x}px, ${le.value.y}px) scale(${le.value.zoom})`})},[(B(),V(`svg`,{class:`pointer-events-none absolute inset-0 overflow-visible`,width:D.value.width,height:D.value.height,"aria-hidden":`true`},[U(`defs`,null,[(B(),V(z,null,L([`pending`,`other`],e=>U(`marker`,{id:`run-arrow-${e}`,key:e,viewBox:`0 0 8 8`,refX:`7`,refY:`4`,markerWidth:`7`,markerHeight:`7`,orient:`auto`},[U(`path`,{d:`M0,0 L8,4 L0,8 z`,fill:oe[e]},null,8,AF)],8,kF)),64))]),(B(!0),V(z,null,L(re.value,e=>(B(),V(`path`,{key:e.key,d:e.d,fill:`none`,"stroke-width":`1.5`,stroke:oe[e.kind],"stroke-dasharray":se[e.kind],"marker-end":e.kind===`session`?void 0:`url(#run-arrow-${e.kind})`},null,8,jF))),128))],8,OF)),(B(!0),V(z,null,L(f.value.columns,(e,t)=>(B(),V(`div`,{key:t,class:`flex min-w-0 flex-col gap-4`},[(B(!0),V(z,null,L(e,e=>(B(),V(`div`,{key:e,class:`flex max-w-full flex-col gap-1.5`,style:he({width:`${HF}px`})},[W(ZP,{id:e,picked:x(`mainline`,e),onPick:T},null,8,[`id`,`picked`]),(B(!0),V(z,null,L(m(e),t=>(B(),H(nF,{key:t.id,session:t,serves:e,picked:x(`session`,t.id),class:`ml-5`,onPick:e=>ee(t.id,e)},null,8,[`session`,`serves`,`picked`,`onPick`]))),128))],4))),128))]))),128)),f.value.free.length?(B(),V(`div`,{key:0,class:k([`col-span-full flex flex-col gap-1.5`,{"mt-6":f.value.columns.length}])},[U(`div`,MF,[(B(!0),V(z,null,L(f.value.free,e=>(B(),V(`div`,{key:e,class:`flex max-w-full flex-col gap-1.5`,style:he({width:`${HF}px`})},[W(ZP,{id:e,picked:x(`mainline`,e),onPick:T},null,8,[`id`,`picked`]),(B(!0),V(z,null,L(m(e),t=>(B(),H(nF,{key:t.id,session:t,serves:e,picked:x(`session`,t.id),class:`ml-5`,onPick:e=>ee(t.id,e)},null,8,[`session`,`serves`,`picked`,`onPick`]))),128))],4))),128))])],2)):K(``,!0),h.value.length?(B(),V(`div`,NF,[U(`div`,PF,[(B(!0),V(z,null,L(h.value,e=>(B(),H(nF,{key:e.id,session:e,picked:x(`session`,e.id),class:`max-w-full`,style:he({width:`${HF}px`}),onPick:t=>ee(e.id,t)},null,8,[`session`,`picked`,`style`,`onPick`]))),128))])])):K(``,!0)],6),b.value?(B(),V(`aside`,{key:0,class:`absolute top-3 right-3 z-20 flex max-h-[calc(100%-1.5rem)] cursor-auto flex-col overflow-y-auto overscroll-contain rounded-xl shadow-lg`,style:he({width:`${Ne.value}px`}),"aria-label":`預覽`,"data-canvas-overlay":``,onWheel:t[0]||=au(()=>{},[`stop`])},[U(`div`,{class:`absolute inset-y-0 left-0 z-10 w-2 cursor-col-resize`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`拖曳調整預覽寬度`,onPointerdown:au(Pe,[`prevent`,`stop`])},null,32),W(DF,{picked:b.value,onPickMainline:T,onPickSession:ee},null,8,[`picked`])],36)):K(``,!0),v.value.length>=2?(B(),V(`div`,FF,[U(`div`,IF,[U(`span`,LF,`已選 `+j(v.value.length)+` 個`,1),W(N(qS),{variant:`ghost`,size:`sm`,onClick:E},{default:P(()=>[W(N(Pu)),t[4]||=G(`封存`,-1),U(`span`,RF,j(v.value.length),1)]),_:1}),W(N(qS),{variant:`ghost`,size:`icon-sm`,"aria-label":`清除選取`,onClick:t[1]||=e=>C()},{default:P(()=>[W(N($d))]),_:1})])])):K(``,!0),U(`div`,{class:`absolute inset-x-0 bottom-0 z-10 h-2 cursor-row-resize`,role:`separator`,"aria-orientation":`horizontal`,"aria-label":`拖曳調整畫布高度,雙擊回到預設高度`,"data-canvas-overlay":``,onPointerdown:au(ke,[`prevent`,`stop`]),onDblclick:Ae},null,32),U(`div`,zF,[W(N(qS),{variant:`ghost`,size:`icon-sm`,class:`rounded-full`,"aria-label":`縮小`,onClick:t[2]||=e=>ye(1/N(1.2))},{default:P(()=>[W(N(Pd))]),_:1}),U(`button`,{type:`button`,class:`h-7 min-w-12 rounded-full px-1.5 tabular-nums hover:bg-accent`,title:`全部置入畫面`,"aria-label":`全部置入畫面`,onClick:ve},j(A.value),1),W(N(qS),{variant:`ghost`,size:`icon-sm`,class:`rounded-full`,"aria-label":`放大`,onClick:t[3]||=e=>ye(N(1.2))},{default:P(()=>[W(N(Rd))]),_:1})])],38)):(B(),V(`p`,BF,[...t[5]||=[G(`沒有主脈絡。在 hub 內執行 `,-1),U(`code`,null,`mainflow new mainline <slug> --title <title>`,-1),G(` 建立。`,-1)]]))}}),QF={class:`flex flex-col gap-8 px-6 pt-2 pb-10`},$F={key:0,"aria-labelledby":`attention`},eI={id:`attention`,class:`mb-2 text-sm font-medium`},tI={class:`ml-1 text-xs text-muted-foreground tabular-nums`},nI={class:`border-t`},rI=[`data-peek`,`aria-current`,`onClick`],iI={class:`shrink-0 font-mono text-xs text-muted-foreground`},aI={class:`min-w-0 truncate`},oI=[`title`],sI={class:`truncate`},cI={key:0,class:`hidden max-w-48 shrink-0 truncate text-xs text-muted-foreground xl:inline`},lI={"aria-labelledby":`running`},uI={id:`running`,class:`mb-2 flex items-center gap-1.5 text-sm font-medium`},dI={class:`text-xs font-normal text-muted-foreground tabular-nums`},fI={type:`button`,class:`grid size-5 place-items-center rounded-sm text-muted-foreground hover:text-foreground`,"aria-label":`依賴線的說明`},pI={"aria-labelledby":`issues`,class:`-mx-6 min-w-0`},mI={id:`issues`,class:`px-6 text-sm font-medium`},hI={class:`ml-1 text-xs text-muted-foreground tabular-nums`},gI={class:`flex items-center gap-2 text-xs`},_I={class:`font-mono text-muted-foreground`},vI={class:`line-clamp-2 [overflow-wrap:anywhere]`},yI={key:0,class:`flex flex-wrap gap-1`},bI={key:1,class:`flex min-w-0 items-center gap-2`},xI=`mainflow.list.overview.issues.axis`,SI=`箭頭由要先完成的主脈絡指向等待它的主脈絡;實線是還沒完成的依賴,虛線是已完成或無法確認的依賴。`,CI=I({__name:`Overview`,setup(e){let{open:t,current:n}=oC(),r=e=>n.value?.ref===e||void 0,i=J(()=>(Q.summary?.mainlines??[]).filter(e=>!e.archivedAt)),a=J(()=>i.value.filter(e=>e.status===`active`||e.status===`planning`||e.status===`paused`)),o=J(()=>[...new Set([...a.value.map(e=>e.id),...Q.relations.mainlineDeps.flatMap(e=>[e.from,e.to]).filter(e=>/^m\d{3}$/.test(e))])]);Er(()=>void _C(o.value));let s=J(()=>a.value.flatMap(e=>Q.mainlines[e.id]?[Q.mainlines[e.id]]:[])),c=J(()=>[...s.value.flatMap(e=>e.tasks.filter(e=>e.status===`blocked`).map(t=>({ref:YS(e.id,t.id),type:MC(t),status:t.status,id:`${e.id}/${t.id}`,title:t.title,icon:Zu,tone:`text-status-waiting`,reason:`卡住:${t.blockedBy?.reason??`沒有寫原因`}`,context:e.title}))),...s.value.flatMap(e=>e.decisions.filter(e=>e.status===`proposed`).map(t=>({ref:XS(e.id,t.id),type:`decision`,status:t.status,id:`${e.id}/${t.id}`,title:t.title,icon:Yu,tone:`text-warning`,reason:t.affects?.length?`待裁決,影響 ${t.affects.join(`、`)}`:`待裁決`,context:e.title}))),...Q.issues.filter(e=>e.status!==`closed`&&!e.archivedAt&&Aw(e.due)).map(e=>{let t=kw(e.due);return{ref:e.id,type:`issue`,status:e.status,id:e.id,title:e.title,icon:Hu,tone:t<0?`text-destructive`:`text-warning`,reason:t<0?`已逾期 ${-t} 天`:t===0?`今天到期`:`${t} 天後到期`}}),...Q.findings.filter(e=>e.status===`valid`&&!e.archivedAt&&e.reviewAfter&&kw(e.reviewAfter)<0).map(e=>({ref:e.id,type:`finding`,status:e.status,id:e.id,title:e.title,icon:zd,tone:`text-warning`,reason:`${e.reviewAfter} 起該重新確認是否仍成立`}))]),l=[`open`,`planned`],u=()=>Q.issues.filter(e=>!e.archivedAt&&e.status!==`closed`),d=lN({key:`overview.issues`,queryPrefix:`i.`,id:e=>e.id,text:e=>e.title,filters:_N(l),sorts:[{key:`order`,label:`手動順序`,value:e=>e.order,dir:`asc`},{key:`name`,label:`名稱`,value:e=>e.title,dir:`asc`},{key:`priority`,label:`優先度`,value:e=>$M(e.priority),dir:`asc`},{key:`planned`,label:`排入`,value:e=>e.plannedIn??e.due,dir:`asc`}],groups:vN(l),defaultSort:`order`,defaultGroup:`status`},u),f=cw(xI,`category`),p=M(d.spec.groups.some(e=>e.key===f)?f:`category`);function m(e){p.value=e,lw(xI,e)}let h=J(()=>d.spec.groups.find(e=>e.key===p.value)?.label);Er(()=>AC(u().map(e=>e.plannedIn)));let g=J(()=>a.value.length),_=J(()=>EC().length);return(e,n)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`總覽`,description:`現在要注意什麼、進行中的主脈絡與會話怎麼串在一起、還有哪些待辦。`})]),default:P(()=>[U(`div`,QF,[c.value.length?(B(),V(`section`,$F,[U(`h2`,eI,[n[1]||=G(`需要注意 `,-1),U(`span`,tI,j(c.value.length),1)]),U(`ul`,nI,[(B(!0),V(z,null,L(c.value,e=>(B(),V(`li`,{key:e.ref+e.reason,class:`flex h-9 cursor-pointer items-center gap-2 border-b px-2 transition-colors duration-[120ms] hover:bg-muted/50`,"data-peek":e.ref,"aria-current":r(e.ref),onClick:n=>N(t)(e.ref)},[W(qC,{type:e.type,status:e.status},null,8,[`type`,`status`]),U(`span`,iI,j(e.id),1),U(`span`,aI,j(e.title),1),U(`span`,{class:`ml-auto flex min-w-0 shrink items-center gap-1 text-xs text-muted-foreground`,title:e.reason},[(B(),H(fa(e.icon),{class:k([`size-3.5 shrink-0`,e.tone])},null,8,[`class`])),U(`span`,sI,j(e.reason),1)],8,oI),e.context?(B(),V(`span`,cI,j(e.context),1)):K(``,!0)],8,rI))),128))])])):K(``,!0),U(`section`,lI,[U(`h2`,uI,[n[2]||=G(` 進行中 `,-1),U(`span`,dI,j(g.value)+` 條主脈絡 · `+j(_.value)+` 個會話`,1),W(N(nA),{"open-delay":150,"close-delay":100},{default:P(()=>[W(N(iA),{"as-child":``},{default:P(()=>[U(`button`,fI,[W(N(Qu),{class:`size-3.5`})])]),_:1}),W(N(rA),{class:`w-72 text-xs`},{default:P(()=>[G(j(SI))]),_:1})]),_:1})]),W(ZF)]),U(`section`,pI,[U(`h2`,mI,[n[3]||=G(`待辦事項 `,-1),U(`span`,hI,j(N(d).total.value),1)]),W(jT,{view:N(d)},{views:P(()=>[W(N(cT),null,{default:P(()=>[W(N(xT),{"as-child":``},{default:P(()=>[W(N(qS),{variant:`outline`,size:`sm`,"aria-label":`橫軸:${h.value}`},{default:P(()=>[W(N(td)),G(j(h.value),1)]),_:1},8,[`aria-label`])]),_:1}),W(N(dT),{align:`end`,class:`w-40`},{default:P(()=>[W(N(pT),{class:`text-xs text-muted-foreground`},{default:P(()=>[...n[4]||=[G(`橫軸`,-1)]]),_:1}),W(N(mT),{"model-value":p.value,"onUpdate:modelValue":n[0]||=e=>m(String(e))},{default:P(()=>[(B(!0),V(z,null,L(N(d).spec.groups,e=>(B(),H(N(gT),{key:e.key,value:e.key},{default:P(()=>[G(j(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`model-value`])]),_:1})]),_:1})]),_:1},8,[`view`]),W(RP,{view:N(d),axis:p.value},{card:P(({item:e})=>[W(N(XN),{class:k([`min-w-0 cursor-pointer gap-2 p-3 shadow-xs transition-colors duration-[120ms] hover:bg-accent/50`,{"bg-muted":r(e.id)}]),"data-peek":e.id,"aria-current":r(e.id),onClick:n=>N(t)(e.id)},{default:P(()=>[U(`div`,gI,[W(qC,{type:`issue`,status:e.status},null,8,[`status`]),U(`span`,_I,j(e.id),1),W(tA,{priority:e.priority},null,8,[`priority`]),p.value!==`category`&&e.category?(B(),H(N(Tw),{key:0,variant:`outline`,class:`ml-auto`},{default:P(()=>[G(j(e.category),1)]),_:2},1024)):K(``,!0)]),U(`p`,vI,j(e.title),1),e.labels?.length?(B(),V(`div`,yI,[(B(!0),V(z,null,L(e.labels,e=>(B(),H(N(Tw),{key:e,variant:`secondary`},{default:P(()=>[G(j(e),1)]),_:2},1024))),128))])):K(``,!0),e.plannedIn||e.due?(B(),V(`div`,bI,[e.plannedIn?(B(),H(dA,q({key:0},N(OC)(e.plannedIn),{class:`min-w-0`,onOpen:N(t)}),null,16,[`onOpen`])):K(``,!0),e.due?(B(),H(Mw,{key:1,day:e.due,class:`ml-auto shrink-0`},null,8,[`day`])):K(``,!0)])):K(``,!0)]),_:2},1032,[`class`,`data-peek`,`aria-current`,`onClick`])]),empty:P(()=>[...n[5]||=[G(`沒有未處理或已排入的待辦。`,-1)]]),_:1},8,[`view`,`axis`])])])]),_:1}))}}),wI={key:0,class:`shrink-0 text-xs text-muted-foreground`},TI=I({__name:`SessionList`,setup(e){let t=[`active`,`paused`,`handed-off`,`ended`],n=e=>e.actions.find(e=>e.status===`doing`)??e.actions.find(e=>e.status===`todo`),r=e=>[...new Set(e.actions.flatMap(e=>e.serves.map(e=>e.slice(0,4))))],i=e=>e?`${e} ${Q.summary?.mainlines.find(t=>t.id===e)?.title??``}`.trim():`沒有服務的主脈絡`,a=e=>[e.started,...e.actions.flatMap(e=>[e.startedAt,e.doneAt])].filter(e=>!!e).reduce((e,t)=>t>e?t:e),o=e=>Q.sessions.filter(t=>t.delegatedFrom===e).sort((e,t)=>e.started.localeCompare(t.started)),s=(e,t=1)=>o(e.id).flatMap(e=>[{item:e,depth:t},...s(e,t+1)]),c=J(()=>{let e=new Set(Q.sessions.map(e=>e.id));return Q.sessions.filter(t=>!t.delegatedFrom||!e.has(t.delegatedFrom))}),l=lN({key:`sessions`,id:e=>e.id,text:e=>`${CC(e)} ${e.branch??``}`,filters:[{key:`status`,label:`狀態`,values:e=>[e.status],options:eN(t)},{key:`agent`,label:`agent`,values:e=>[e.agent]},{key:`branch`,label:`分支`,values:e=>e.branch?[e.branch]:[]},{key:`mainline`,label:`主脈絡`,values:r,optionLabel:i}],sorts:[{key:`name`,label:`名稱`,value:e=>CC(e),dir:`asc`},{key:`serves`,label:`服務的任務`,value:e=>p(e),dir:`asc`},{key:`subagents`,label:`子代理數`,value:e=>o(e.id).length,dir:`desc`},{key:`started`,label:`開始時間`,value:e=>e.started,dir:`desc`},{key:`active`,label:`最後活動`,value:a,dir:`desc`}],groups:[nN(t),{key:`mainline`,label:`主脈絡`,value:e=>r(e)[0]??``,groupLabel:i},{key:`day`,label:`日期`,value:e=>e.started.slice(0,10),latestFirst:!0}],defaultSort:`started`,defaultGroup:`status`,ended:e=>tN(e.status),archived:e=>!!e.archivedAt,nested:e=>s(e)},()=>c.value),u=uN(l,{kind:`session`,archived:e=>!!e.archivedAt}),d=[{key:`name`,label:`會話`,sort:`name`},{key:`serves`,label:`服務的任務`,class:`max-w-56`,sort:`serves`,value:e=>p(e),optional:!0},{key:`subagents`,label:`子代理`,class:`text-xs text-muted-foreground tabular-nums`,sort:`subagents`,value:e=>o(e.id).length||void 0,optional:!0},{key:`started`,label:`開始`,class:`text-xs text-muted-foreground`,sort:`started`}],{open:f}=oC();Er(()=>AC(Q.sessions.flatMap(e=>e.actions.flatMap(e=>e.serves))));let p=e=>(n(e)??e.actions[0])?.serves[0]?.split(`#`)[0],m=e=>vC(()=>uC.archiveSession(e.id,!e.archivedAt));return(e,t)=>(B(),H(ZM,null,{header:P(()=>[W(WT,{title:`會話`,description:`在這台電腦上推進過 hub 的 AI 會話,只存在本機,不入版控。`}),W(jT,{view:N(l)},null,8,[`view`])]),default:P(()=>[W(sT,{view:N(l),selection:N(u),columns:d,"item-ref":e=>N(ZS)(e.id)},{name:P(({item:e,depth:t})=>[W(BT,{status:e.status,title:N(CC)(e),muted:t>0||!!e.archivedAt,depth:t},{default:P(()=>[e.archivedAt?(B(),V(`span`,wI,`已封存`)):K(``,!0)]),_:2},1032,[`status`,`title`,`muted`,`depth`])]),serves:P(({item:e})=>[p(e)?(B(),H(dA,q({key:0},N(OC)(p(e)),{onOpen:N(f)}),null,16,[`onOpen`])):K(``,!0)]),subagents:P(({item:e,depth:t})=>[G(j(t===0&&o(e.id).length?o(e.id).length:``),1)]),started:P(({item:e})=>[W($j,{at:e.started},null,8,[`at`])]),actions:P(({item:e})=>[W(Dw,{archived:!!e.archivedAt,onToggle:t=>m(e)},null,8,[`archived`,`onToggle`])]),empty:P(()=>[...t[0]||=[G(`這台電腦上沒有會話資料。會話只存在 `,-1),U(`code`,null,`.mainflow/local/sessions/`,-1),G(`,不入版控。`,-1)]]),_:1},8,[`view`,`selection`,`item-ref`]),W(LT,{selection:N(u)},null,8,[`selection`])]),_:1}))}}),EI=e=>Array.isArray(e)?e.join(`/`):e??``,DI=Om({history:Xp(),routes:[{path:`/`,component:CI},{path:`/mainlines`,component:wP},{path:`/mainlines/:m`,component:SP},{path:`/issues`,component:bN},{path:`/findings`,component:pN},{path:`/ops`,component:OP},{path:`/sessions`,component:TI},{path:`/mainlines/:m/tasks/:t`,redirect:e=>({path:`/mainlines/${EI(e.params.m)}`,query:{view:`tasks`,peek:YS(EI(e.params.m),EI(e.params.t))}})},{path:`/mainlines/:m/decisions/:d`,redirect:e=>({path:`/mainlines/${EI(e.params.m)}`,query:{view:`decisions`,peek:XS(EI(e.params.m),EI(e.params.d))}})},{path:`/mainlines/:m/files/:path(.*)`,redirect:e=>({path:`/mainlines/${EI(e.params.m)}`,query:{peek:QS(EI(e.params.m),EI(e.params.path))}})},{path:`/sessions/:s`,redirect:e=>({path:`/sessions`,query:{peek:ZS(EI(e.params.s))}})}]});hu(ww).use(DI).mount(`#app`);
|
package/dist/web/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>mainflow</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-LfgzRbBc.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CKPifbAQ.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<div id="app"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.overlay[data-v-8755e91b]{z-index:50;background:#00000040;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette[data-v-8755e91b]{background:var(--popover);width:min(560px,92vw);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.search[data-v-8755e91b]{border:0;border-bottom:1px solid var(--border);background:0 0;outline:none;width:100%;padding:14px 16px;font-size:15px}.search[data-v-8755e91b]::placeholder{color:var(--muted-foreground)}ul[data-v-8755e91b]{max-height:50vh;margin:0;padding:6px;list-style:none;overflow:auto}li[data-v-8755e91b]{border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;gap:12px;padding:7px 10px;display:flex}li.active[data-v-8755e91b]{background:var(--accent)}.hint[data-v-8755e91b]{color:var(--muted-foreground);white-space:nowrap;font-size:12px}.label[data-v-8755e91b]{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.none[data-v-8755e91b]{color:var(--muted-foreground);cursor:default}.layout[data-v-e11778c9]{grid-template-columns:232px minmax(0,1fr);height:100vh;display:grid}.layout.collapsed[data-v-e11778c9]{grid-template-columns:56px minmax(0,1fr)}.sidebar[data-v-e11778c9]{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:12px 8px;display:flex;overflow:auto}.brand[data-v-e11778c9]{justify-content:space-between;align-items:center;gap:8px;padding:2px 4px 10px 8px;font-weight:600;display:flex}.collapsed .brand[data-v-e11778c9]{justify-content:center;padding-left:4px}.icon-toggle[data-v-e11778c9]{border-radius:var(--radius-md);width:28px;height:28px;color:var(--muted-foreground);background:0 0;border:0;place-items:center;display:grid}.icon-toggle[data-v-e11778c9]:hover{background:var(--accent);color:var(--foreground)}.search[data-v-e11778c9]{border:1px solid var(--input);background:var(--background);border-radius:var(--radius-md);height:32px;color:var(--muted-foreground);box-shadow:var(--shadow-xs,0 1px 2px 0 #0000000d);align-items:center;gap:8px;margin:0 0 10px;padding:0 8px;display:flex}.collapsed .search[data-v-e11778c9]{justify-content:center;padding:0}kbd[data-v-e11778c9]{font:11px var(--font-mono);color:var(--muted-foreground)}.nav[data-v-e11778c9]{border-radius:var(--radius-md);height:32px;color:var(--foreground);align-items:center;gap:8px;padding:0 8px;display:flex}.collapsed .nav[data-v-e11778c9]{justify-content:center;padding:0}.nav[data-v-e11778c9]:hover{background:var(--accent)}.nav.current[data-v-e11778c9]{background:var(--accent);font-weight:500}.nav.sub[data-v-e11778c9]{color:var(--muted-foreground);font-size:12px}.nav.sub.current[data-v-e11778c9]{color:var(--foreground)}.nav .count[data-v-e11778c9]{color:var(--muted-foreground);margin-left:auto;font-size:12px}.nav-label[data-v-e11778c9]{color:var(--muted-foreground);padding:14px 8px 4px;font-size:12px;font-weight:500}.main[data-v-e11778c9]{min-width:0;min-height:0;overflow:auto}.error[data-v-e11778c9]{border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:8px;margin:12px 16px;padding:8px 12px;display:flex}.menu-toggle[data-v-e11778c9]{display:none}@media (width<=720px){.layout[data-v-e11778c9],.layout.collapsed[data-v-e11778c9]{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.sidebar[data-v-e11778c9]{border-right:0;border-bottom:1px solid var(--border);padding:8px 12px;position:relative;overflow:visible}.brand[data-v-e11778c9]{padding:0}.collapse-toggle[data-v-e11778c9]{display:none}.menu-toggle[data-v-e11778c9]{display:grid}.sidebar[data-v-e11778c9]>:not(.brand){display:none}.sidebar.menu-open[data-v-e11778c9]>:not(.brand){display:flex}.sidebar.menu-open[data-v-e11778c9]{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}}.peek-panel[data-v-36a42a88]{width:var(--panel-width);max-width:calc(100% - 360px);animation:.2s ease-out peek-in-36a42a88;position:relative}.peek-panel.flex-1[data-v-36a42a88]{width:auto;max-width:none}@keyframes peek-in-36a42a88{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.peek-panel[data-v-36a42a88]{animation:none}}@media (width<=1100px){.peek-panel[data-v-36a42a88]{inset-block:0;z-index:20;width:min(var(--panel-width), 100%);max-width:none;position:absolute;right:0}}@media (width<=720px){.peek-panel[data-v-36a42a88]{width:100%}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-lg:32rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:calc(var(--radius) * .6);--radius-md:calc(var(--radius) * .8);--radius-lg:var(--radius);--shadow-xs:0 1px 2px 0 #0000000d;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", sans-serif;--default-mono-font-family:ui-monospace, "SF Mono", Menlo, monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Noto Sans TC,sans-serif;font-size:13px;line-height:var(--tw-leading,20px);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components{[data-peek]{cursor:pointer}[data-peek][aria-current=true]{background:var(--muted)}[data-peek].is-cursor{outline:2px solid var(--ring)}@supports (color:color-mix(in lab, red, red)){[data-peek].is-cursor{outline:2px solid color-mix(in srgb, var(--ring) 50%, transparent)}}[data-peek].is-cursor{outline-offset:-2px}.prose{overflow-wrap:anywhere;font-size:14px;line-height:1.7}.prose>*+*{margin-top:.75em}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:600;line-height:1.4}.prose h1{font-size:18px}.prose h2{margin-top:1.4em;font-size:15px}.prose h3,.prose h4{margin-top:1.2em;font-size:14px}.prose ul{padding-left:1.4em;list-style:outside}.prose ol{padding-left:1.4em;list-style:decimal}.prose li:has(>input[type=checkbox]){margin-left:-1.4em;list-style:none}.prose li>input[type=checkbox]{vertical-align:-2px;width:14px;height:14px;accent-color:var(--primary);margin:0 .5em 0 0}.prose a{text-decoration:underline;-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:4px}.prose a:hover{-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}.prose code{font-family:var(--font-mono);background:var(--muted);border-radius:var(--radius-sm);padding:1px 4px;font-size:12px}.prose pre{font-family:var(--font-mono);background:var(--muted);font-size:12px}@supports (color:color-mix(in lab, red, red)){.prose pre{background:color-mix(in srgb, var(--muted) 50%, transparent)}}.prose pre{border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px;overflow:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;font-size:13px}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:6px 12px 6px 0}.prose th{color:var(--muted-foreground);font-size:12px;font-weight:500}.prose blockquote{color:var(--muted-foreground);padding-left:1em}}@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-9{top:calc(var(--spacing) * 9)}.top-\[50\%\]{top:50%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-1{left:calc(var(--spacing) * -1)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[5\]{z-index:5}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-8{margin-block:calc(var(--spacing) * 8)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-2{margin-left:calc(var(--spacing) * -2)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-12{margin-left:calc(var(--spacing) * 12)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[22px\]{height:22px}.h-\[70vh\]{height:70vh}.h-\[480px\]{height:480px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\(--reka-dropdown-menu-content-available-height\){max-height:var(--reka-dropdown-menu-content-available-height)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[calc\(100\%-1\.5rem\)\]{max-height:calc(100% - 1.5rem)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.w-2{width:calc(var(--spacing) * 2)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-\(--reka-dropdown-menu-content-available-width\){max-width:var(--reka-dropdown-menu-content-available-width)}.max-w-0{max-width:0}.max-w-5xl{max-width:var(--container-5xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.min-w-0{min-width:0}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-\[8rem\]{min-width:8rem}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.origin-\(--reka-dropdown-menu-content-transform-origin\){transform-origin:var(--reka-dropdown-menu-content-transform-origin)}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-auto{cursor:auto}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[16px_96px_minmax\(0\,1fr\)\]{grid-template-columns:16px 96px minmax(0,1fr)}.grid-cols-\[72px_1fr\]{grid-template-columns:72px 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) * .6)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-background{border-color:var(--background)}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-ring{border-color:var(--ring)}.border-transparent{border-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-status-done{background-color:var(--status-done)}.bg-status-todo{background-color:var(--status-todo)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-0\.75{padding:calc(var(--spacing) * .75)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0{padding-right:0}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-body{font-size:13px;line-height:var(--tw-leading,20px)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-title{font-size:22px;line-height:var(--tw-leading,30px)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent-foreground{color:var(--accent-foreground)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-priority-p0{color:var(--priority-p0)}.text-priority-p1{color:var(--priority-p1)}.text-priority-p3{color:var(--priority-p3)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-status-doing{color:var(--status-doing)}.text-status-done{color:var(--status-done)}.text-status-off{color:var(--status-off)}.text-status-todo{color:var(--status-todo)}.text-status-waiting{color:var(--status-waiting)}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.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,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-border{-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\]{transition-property:background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-\[120ms\]{--tw-duration:.12s;transition-duration:.12s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.paused{animation-play-state:paused}.running{animation-play-state:running}@media (hover:hover){.group-hover\/copy\:opacity-100:is(:where(.group\/copy):hover *),.group-hover\/row\:opacity-100:is(:where(.group\/row):hover *),.group-hover\/sort\:opacity-100:is(:where(.group\/sort):hover *){opacity:1}}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:text-foreground\/60:is(:where(.group\/tabs-list)[data-variant=line] *){color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.group-data-\[variant\=line\]\/tabs-list\:text-foreground\/60:is(:where(.group\/tabs-list)[data-variant=line] *){color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-x-0:after{content:var(--tw-content);inset-inline:0}.after\:-bottom-px:after{content:var(--tw-content);bottom:-1px}.after\:h-0\.5:after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.focus-within\:opacity-100:focus-within{opacity:1}.focus-within\:ring-3:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklab\,var\(--accent\)_50\%\,var\(--card\)\)\]:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklab\,var\(--accent\)_50\%\,var\(--card\)\)\]:hover{background-color:color-mix(in oklab,var(--accent) 50%,var(--card))}}.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary:hover,.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-foreground:hover{-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground)}.hover\:opacity-100:hover{opacity:1}.group-data-\[variant\=line\]\/tabs-list\:hover\:text-foreground:is(:where(.group\/tabs-list)[data-variant=line] *):hover{color:var(--foreground)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:text-foreground:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{color:var(--foreground)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.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-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\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.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-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\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media not all and (width>=1100px){.max-\[1100px\]\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (width>=900px){.min-\[900px\]\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1100px){.min-\[1100px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:w-full{width:100%}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=80rem){.xl\:inline{display:inline}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container not (width>=48rem){.\@max-3xl\:hidden{display:none}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--input)}.dark\:bg-destructive\/60{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:text-muted-foreground{color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_tr\:last-child\]\:border-b tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing) * 4)}.\[\.border-t\]\:pt-4.border-t{padding-top:calc(var(--spacing) * 4)}:is(.\*\:\[\[role\=checkbox\]\]\:translate-y-0\.5>*)[role=checkbox]{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-warning>svg{color:var(--warning)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--mf-p-white:#fff;--mf-p-grey-50:#fcfcfc;--mf-p-grey-100:#f9f9f9;--mf-p-grey-200:#f0f0f0;--mf-p-grey-300:#e8e8e8;--mf-p-grey-700:#bbb;--mf-p-grey-800:#8d8d8d;--mf-p-grey-1000:#646464;--mf-p-grey-1100:#202020;--mf-p-brand:#d9a100;--mf-p-blue-700:#5eb0ef;--mf-p-blue-900:#0880ea;--mf-p-green-700:#5bb98c;--mf-p-green-900:#299764;--mf-p-orange-700:#ed8a5c;--mf-p-orange-900:#ed5f00;--mf-p-yellow-1000:#915930;--mf-p-red-800:#e5484d;--mf-p-red-1000:#c62a2f}@media (prefers-color-scheme:dark){:root{--mf-p-grey-50:#111;--mf-p-grey-100:#191919;--mf-p-grey-200:#222;--mf-p-grey-300:#2a2a2a;--mf-p-grey-700:#606060;--mf-p-grey-800:#6e6e6e;--mf-p-grey-1000:#b4b4b4;--mf-p-grey-1100:#eee;--mf-p-blue-700:#1276e2;--mf-p-blue-900:#3cabff;--mf-p-green-700:#2c8c5e;--mf-p-green-900:#35b979;--mf-p-orange-700:#c36522;--mf-p-orange-900:#ff802b;--mf-p-yellow-1000:#ffcc4d;--mf-p-red-1000:#ff8589}}:root{--radius:.625rem;--background:var(--mf-p-white);--foreground:var(--mf-p-grey-1100);--card:var(--mf-p-white);--card-foreground:var(--foreground);--popover:var(--mf-p-white);--popover-foreground:var(--foreground);--primary:var(--mf-p-grey-1100);--primary-foreground:var(--mf-p-white);--secondary:var(--mf-p-grey-200);--secondary-foreground:var(--foreground);--muted:var(--mf-p-grey-200);--muted-foreground:var(--mf-p-grey-1000);--accent:var(--mf-p-grey-200);--accent-foreground:var(--foreground);--destructive:var(--mf-p-red-1000);--border:var(--mf-p-grey-300);--input:var(--mf-p-grey-300);--ring:var(--mf-p-grey-800);--sidebar:var(--mf-p-grey-100);--brand:var(--mf-p-brand);--warning:var(--mf-p-yellow-1000);--status-todo:var(--mf-p-grey-800);--status-doing:var(--mf-p-blue-900);--status-waiting:var(--mf-p-orange-900);--status-done:var(--mf-p-green-900);--status-off:var(--mf-p-grey-700);--priority-p0:var(--mf-p-red-800);--priority-p1:var(--mf-p-orange-900);--priority-p2:var(--mf-p-blue-900);--priority-p3:var(--mf-p-grey-800)}@media (prefers-color-scheme:dark){:root{--background:var(--mf-p-grey-50);--card:var(--mf-p-grey-100);--popover:var(--mf-p-grey-100);--primary-foreground:var(--mf-p-grey-50);--status-doing:var(--mf-p-blue-700);--status-waiting:var(--mf-p-orange-700);--status-done:var(--mf-p-green-700)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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));filter:blur(var(--tw-enter-blur,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));filter:blur(var(--tw-exit-blur,0))}}
|