@bud.sh/app 0.5.1 → 0.6.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.
- package/README.md +41 -31
- package/dist/client/assets/bud/design.js +1 -1
- package/dist/client/assets/canvas-Bih9EdKJ.js +1 -0
- package/dist/client/assets/difference-worker-Bzg-rizy.js +8 -0
- package/dist/client/assets/dist-CdE5wBkg.js +5 -0
- package/dist/client/assets/files-1dLuoM2f.js +1 -0
- package/dist/client/assets/i18n-CkO6VFI0.js +1 -0
- package/dist/client/assets/index-Cn2mxroU.css +2 -0
- package/dist/client/assets/{index-Dn2pfmXf.js → index-DtISWZp9.js} +2 -2
- package/dist/client/assets/pages-BJ-tNJ4J.js +1 -0
- package/dist/client/assets/{project-branches-CMGRmrqr.js → project-branches-Ce3rXrkc.js} +1 -1
- package/dist/client/assets/project-comments-CPUONfs8.js +1 -0
- package/dist/client/assets/project-thread-links-C-TGkq59.js +1 -0
- package/dist/client/assets/{project-threads-ZbKDh78d.js → project-threads-Bv7IDBgi.js} +105 -105
- package/dist/client/assets/project-work-DAE9-olg.js +1 -0
- package/dist/client/assets/{task-design-BPpc4Gd7.js → task-design-CwySIAOl.js} +3 -3
- package/dist/client/assets/tasks-KWsCLi_h.js +3 -0
- package/dist/client/assets/wasm-inline-DSUyFn1L.js +1 -0
- package/dist/client/assets/workspace-CVdcfaaB.js +2 -0
- package/dist/client/index.html +3 -3
- package/dist/hosted/assets/{canvas-BYTOp1p7.js → canvas-AII16n9i.js} +97 -6
- package/dist/hosted/assets/{comment-data-Cn5y2VxV.js → comment-data-BXfMElfx.js} +1998 -381
- package/dist/hosted/assets/dist-BCSTeNf4.js +4785 -0
- package/dist/hosted/assets/{files-B1P2_24q.js → files-D_1yeAVO.js} +10 -5
- package/dist/hosted/assets/{pages-B0ZlVdci.js → pages-CN_SbKWA.js} +3 -3
- package/dist/hosted/assets/{project-branches-DlCWmfRo.js → project-branches-Bxp0DCwg.js} +1 -1
- package/dist/hosted/assets/{project-thread-links-BZXQ200n.js → project-thread-links-KqQoKBLE.js} +76 -4
- package/dist/{node-host/assets/screen-DapOVrga.js → hosted/assets/screen-DpAcDUKR.js} +25 -1
- package/dist/hosted/assets/tasks-D66LlwxM.js +1423 -0
- package/dist/hosted/assets/wasm-inline-Dl9tqabx.js +4 -0
- package/dist/hosted/hosted.js +7885 -6219
- package/dist/node/assets/Stream-CAm1eJ2n.js +16604 -0
- package/dist/{server/assets/bridge-B_Blt55E.js → node/assets/bridge-DQSBYHmw.js} +124 -290
- package/dist/node/assets/config-9_jWwNBh.js +1067 -0
- package/dist/node/assets/load-config.server-CMVtRVmO.js +261 -0
- package/dist/node/assets/module-3GgtT4Xs.js +308 -0
- package/dist/node/assets/server-DTQFuoX2.js +846 -0
- package/dist/node/assets/src-D-kG1GxB.js +2 -0
- package/dist/node/assets/{src-CerrKjID.js → src-Dwe9APUx.js} +93 -3
- package/dist/node/assets/src-DysjfbM8.js +8592 -0
- package/dist/node/bridge.js +1 -845
- package/dist/node/cli.js +206 -0
- package/dist/node/design.js +811 -8
- package/dist/node/index.js +2 -739
- package/dist/node/plugins.js +5711 -0
- package/dist/node/server.js +1 -6746
- package/dist/node/vite.js +121 -0
- package/dist/{server/assets/canvas-CkMK4hoN.js → node-host/assets/canvas-BeDoufy1.js} +97 -7
- package/dist/node-host/assets/{comment-data-yfWEdDQL.js → comment-data-DE2T9yTj.js} +1974 -355
- package/dist/node-host/assets/dist-BCSTeNf4.js +4785 -0
- package/dist/node-host/assets/{files-anHi-apm.js → files-Dl-PTS09.js} +11 -6
- package/dist/node-host/assets/{pages-CW4aF6dK.js → pages-DL2sk6_U.js} +3 -3
- package/dist/node-host/assets/{project-branches-D7rVCxQX.js → project-branches-DGp5ELct.js} +1 -1
- package/dist/{server/assets/project-thread-links-lLS_rq7c.js → node-host/assets/project-thread-links-CgBV3Jcm.js} +76 -5
- package/dist/{hosted/assets/screen-CfdC3NbR.js → node-host/assets/screen-B55yyVfb.js} +25 -1
- package/dist/node-host/assets/tasks-DZRNkoxe.js +1425 -0
- package/dist/node-host/assets/wasm-inline-Dl9tqabx.js +4 -0
- package/dist/node-host/node-host.js +6127 -4438
- package/dist/server/assets/{branch-previews-ClkoJ0lM.js → branch-previews-DedrpnVR.js} +1555 -673
- package/dist/{node-host/assets/canvas-DxmcFZCh.js → server/assets/canvas-CJWQ-jjv.js} +98 -6
- package/dist/server/assets/{comment-data-NLeHG89b.js → comment-data-Rg42ToTW.js} +1660 -26
- package/dist/server/assets/dist-BCSTeNf4.js +4785 -0
- package/dist/server/assets/{events-iHpLGr3k.js → events-BH_rAu7O.js} +155 -20
- package/dist/server/assets/{files-CRdl489E.js → files-CPJqKeMo.js} +12 -7
- package/dist/server/assets/{listener-BAYn9Q-u.js → listener-D61O6PzF.js} +708 -12
- package/dist/server/assets/{pages-DXVlJlBC.js → pages-KJY_Ba92.js} +4 -4
- package/dist/server/assets/{project-branches-CwTsf6WQ.js → project-branches-qG9ACZvo.js} +2 -2
- package/dist/{node-host/assets/project-thread-links-m-OLpsD9.js → server/assets/project-thread-links-CqK0lqCF.js} +77 -4
- package/dist/{node-host/assets/tasks-request-B0aeNocI.js → server/assets/project-work-DoIwxWMm.js} +87 -2
- package/dist/server/assets/run-BJ8r5jSh.js +572 -0
- package/dist/server/assets/{screen-B1zH_1O3.js → screen-CBrHPFug.js} +26 -2
- package/dist/server/assets/{server-DxK-UB_Z.js → server-Dkbp5stG.js} +1521 -793
- package/dist/server/assets/{services-BRrgXYlT.js → services-BTfig8A8.js} +234 -997
- package/dist/server/assets/tasks-Bgu5Lg9Y.js +1427 -0
- package/dist/server/assets/wasm-inline-Dl9tqabx.js +4 -0
- package/dist/server/capture.js +1 -2
- package/dist/server/migration.js +569 -12
- package/dist/server/runtime.js +7 -5
- package/dist/server/server.js +3 -3
- package/dist/types/assets/{config-DIC2cf_S.d.ts → config-CvcYmE2s.d.ts} +188 -50
- package/dist/types/assets/{contract-CAT-XFNq.d.ts → contract-B7yuuqSn.d.ts} +44 -2
- package/dist/types/assets/{items-CaVkByHk.d.ts → items-BQdaVksf.d.ts} +12 -1
- package/dist/types/assets/memory-state-BBW-FAVA.d.ts +236 -0
- package/dist/types/assets/picker-Be5Gx4WR.d.ts +9 -0
- package/dist/types/assets/{task-design-xJOhRNWh.d.ts → task-design-BDHKFHpp.d.ts} +3 -1
- package/dist/types/bridge.d.ts +1 -1
- package/dist/types/companion.d.ts +3 -3
- package/dist/types/design.d.ts +2 -2
- package/dist/types/hosted.d.ts +3 -3
- package/dist/types/index.d.ts +2 -2
- package/dist/types/node-host.d.ts +2 -2
- package/dist/types/plugins.d.ts +445 -0
- package/dist/types/screen.d.ts +2 -2
- package/dist/types/server.d.ts +2 -228
- package/dist/types/vite.d.ts +16 -0
- package/package.json +19 -3
- package/dist/client/assets/canvas-8GXJIuDK.js +0 -1
- package/dist/client/assets/difference-worker-C99ychYw.js +0 -8
- package/dist/client/assets/files-DkWt1l9H.js +0 -1
- package/dist/client/assets/i18n-hH_Ba5QO.js +0 -1
- package/dist/client/assets/index-tpHYVXma.css +0 -2
- package/dist/client/assets/pages-BVd6MQmu.js +0 -1
- package/dist/client/assets/project-comments-D1IIQwsW.js +0 -1
- package/dist/client/assets/project-thread-links-DKwe_SYb.js +0 -1
- package/dist/client/assets/project-work-D4DZqBCZ.js +0 -1
- package/dist/client/assets/tasks-Cn0VOZ9Z.js +0 -1
- package/dist/client/assets/tasks-request-BLyOzokZ.js +0 -1
- package/dist/client/assets/workspace-DGErsSg6.js +0 -2
- package/dist/hosted/assets/tasks-_yKh2Z6q.js +0 -649
- package/dist/hosted/assets/tasks-request-CFPLvLc7.js +0 -113
- package/dist/node-host/assets/tasks-BBK_CybR.js +0 -651
- package/dist/server/assets/project-work-CSZlCwH-.js +0 -88
- package/dist/server/assets/tasks-CGdz-uox.js +0 -652
- package/dist/server/assets/tasks-request-D2NBjCTl.js +0 -115
- package/dist/types/assets/picker-D1Bw3ndx.d.ts +0 -14
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@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-space-y-reverse:0;--tw-border-style:solid;--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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--bud-scroll-fade-start:0px;--bud-scroll-fade-end:0px}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-violet-400:oklch(70.2% .183 293.541);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-neutral-300:oklch(87% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-6xl:72rem;--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-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-5xl:3rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--bud-font-sans);--default-mono-font-family:var(--font-mono)}}@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;--bud-background:#fff;--bud-shell:#f4f4f4;--bud-main:#fff;--bud-canvas:#fff;--bud-panel:#fff;--bud-board:#efefef;--bud-editor:#fff;--bud-editor-tabs:var(--bud-shell);--bud-foreground:#353535;--bud-muted:#777;--bud-primary:#d5f400;--bud-primary-hover:#c6e300;--bud-primary-foreground:#202820;--bud-border:#ececec;--bud-tab-divider:#d9d9d9;--bud-hover:#f0f0f0;--bud-selected:#f9f9f9;--bud-control:#fafafa;--bud-control-active:#eee;--bud-control-selected:#fff;--bud-card:#fff;--bud-menu:#fff;--bud-menu-hover:var(--bud-hover);--bud-card-frame:var(--bud-main);--bud-card-surface:var(--bud-control);--bud-card-border:#f1f1f1;--bud-card-frame-border:#f0f0f0;--bud-card-badge:#f0f0f0;--bud-overlay-shadow:0 6px 16px -10px #0000002e, 0 2px 4px -3px #0000001a;--bud-tooltip:#171717;--bud-board-control:#fff;--bud-board-control-hover:#f9f9f9;--bud-board-card:var(--bud-card-surface);--bud-control-elevation:0 0 0 .5px #e2e2e2, 0 1px 1px -.5px #0000000f, 0 .5px .5px #0000000d;--bud-board-elevation:0 0 0 .5px #e0e0e0, 0 1px 1px -.5px #00000014, 0 .5px .5px #0000000f;--bud-board-card-elevation:var(--bud-board-elevation);--bud-card-elevation:0 0 0 .5px #e4e4e4, 0 1px 1px -.5px #0000000f, 0 .5px .5px #0000000d;--bud-board-card-lift:0 0 0 .5px #e0e0e0, 0 4px 10px -4px #0000001f, 0 1px 2px #0000000f;--bud-frame-control:var(--bud-control);--bud-modal-elevation:0 0 0 .5px #e0e0e0, 0 24px 48px -16px #00000038, 0 4px 12px -4px #00000014;--bud-segment-elevation:0 0 0 .5px #e8e8e8, 0 1px 3px -.5px #00000029, 0 1px 1px #00000014;--bud-control-open-elevation:0 0 0 1px #ccc, 0 1px 1px -.5px #00000014, 0 .5px .5px #0000000f;--bud-board-segment:var(--bud-control-active);--bud-scrollbar:#dadada;--bud-focus:#8c8c8c;--bud-scrollbar-hover:#bdbdbd;--bud-tooltip-border:#2a2a2a;--bud-tooltip-shadow:0 6px 18px -10px #00000073, 0 2px 5px -3px #0000004d;--control-height:32px;--icon-size:18px;--bud-font-sans:"Inter Variable", sans-serif;font-family:var(--bud-font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bud-background:#191919;--bud-shell:#191919;--bud-main:#222;--bud-canvas:#222;--bud-panel:var(--bud-main);--bud-board:#1c1c1c;--bud-editor:#222;--bud-editor-tabs:#191919;--bud-foreground:#ededed;--bud-muted:#a0a0a0;--bud-border:#2b2b2b;--bud-tab-divider:var(--bud-border);--bud-hover:#343434;--bud-selected:#242424;--bud-control:#303030;--bud-control-active:#3b3b3b;--bud-control-selected:#474747;--bud-card:#181818;--bud-menu:var(--bud-control);--bud-menu-hover:var(--bud-control-selected);--bud-card-frame:#212121;--bud-card-surface:var(--bud-card);--bud-card-border:#1d1d1d;--bud-card-frame-border:#1e1e1e;--bud-card-badge:#232323;--bud-overlay-shadow:0 6px 16px -10px #00000059, 0 2px 4px -3px #0000003d;--bud-tooltip:#262626;--bud-board-control:var(--bud-control);--bud-board-control-hover:var(--bud-hover);--bud-board-card:var(--bud-card-surface);--bud-control-elevation:0 0 0 .5px #3d3d3d, 0 1px 1px -.5px #0006, 0 .5px .5px #0000004d;--bud-board-elevation:0 0 0 .5px #3a3a3a, 0 1px 1px -.5px #0006, 0 .5px .5px #0000004d;--bud-card-elevation:0 0 0 .5px #222, 0 1px 1px -.5px #0006, 0 .5px .5px #0000004d;--bud-board-card-elevation:0 0 0 .5px #2a2a2a, 0 1px 1px -.5px #0006, 0 .5px .5px #0000004d;--bud-board-card-lift:0 0 0 .5px #2a2a2a, 0 4px 10px -4px #0000008c, 0 1px 2px #00000059;--bud-frame-control:var(--bud-control);--bud-modal-elevation:0 0 0 .5px #333, 0 24px 48px -16px #000000b3, 0 4px 12px -4px #0006;--bud-segment-elevation:0 0 0 .5px #383838, 0 1px 2px -.5px #00000059, 0 .5px .5px #00000040;--bud-control-open-elevation:0 0 0 1px #5a5a5a, 0 1px 1px -.5px #0006, 0 .5px .5px #0000004d;--bud-board-segment:var(--bud-control-selected);--bud-scrollbar:#424242;--bud-focus:#8c8c8c;--bud-scrollbar-hover:#575757;--bud-tooltip-border:#363636;--bud-tooltip-shadow:0 6px 18px -10px #0000008c, 0 2px 5px -3px #0006}:where(a,button,input,select,summary,textarea,[role=button],[role=checkbox],[role=combobox],[role=menuitem],[role=menuitemcheckbox],[role=option],[role=radio],[role=switch],[role=tab],[tabindex]){outline:2px none var(--bud-focus);outline-offset:2px}:where([role=menuitem],[role=menuitemcheckbox],[role=option],[role=region]){outline-offset:-2px}:where(a,button,input,select,summary,textarea,[role=button],[role=checkbox],[role=combobox],[role=menuitem],[role=menuitemcheckbox],[role=option],[role=radio],[role=switch],[role=tab],[tabindex]):focus{--tw-ring-shadow:0 0 #0000!important}:where(a,button,input,select,summary,textarea,[role=button],[role=checkbox],[role=combobox],[role=menuitem],[role=menuitemcheckbox],[role=option],[role=radio],[role=switch],[role=tab],[tabindex]):focus[data-focus-method=keyboard]{outline-style:solid!important}:is([role=listbox],[role=menu],[data-focus-ring=none])[data-focus-method=keyboard]{outline-style:none!important}.bud-field{outline:2px none var(--bud-focus);outline-offset:2px}.bud-field:has([data-focus-method=keyboard]){outline-style:solid}.bud-field [data-focus-method=keyboard]{outline-style:none!important}:where(a,button,input,select,summary,textarea,[role=button],[role=menuitem],[role=menuitemcheckbox],[role=option],[role=tab],.bud-control,.bud-interaction){transition-property:color,background-color,border-color,box-shadow,opacity;transition-duration:.12s;transition-timing-function:ease-out}@media (prefers-reduced-motion:reduce){:where(a,button,input,select,summary,textarea,[role=button],[role=menuitem],[role=menuitemcheckbox],[role=option],[role=tab],.bud-control,.bud-interaction){transition:none}}*{scrollbar-width:thin;scrollbar-color:var(--bud-scrollbar) transparent}::-webkit-scrollbar{background:0 0;width:7px;height:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bud-scrollbar);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--bud-scrollbar-hover)}:root{--bud-primary:#171717;--bud-primary-hover:#333;--bud-primary-foreground:#fafafa}:root[data-theme=dark]{--bud-primary:#f5f5f5;--bud-primary-hover:#dedede;--bud-primary-foreground:#171717}html,body{overscroll-behavior:none;width:100%;height:100%;overflow:hidden}body{background:var(--bud-background);color:var(--bud-foreground);margin:0}button,a{-webkit-tap-highlight-color:transparent}button:not(:disabled){cursor:pointer}}@layer rmx;@layer components{[data-bud-file-tree]>file-tree-container{color-scheme:inherit}.bud-headless-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.bud-board,.bud-board:is([data-slot=sidebar],dialog){--bud-control-surface:var(--bud-board-control);--bud-control-hover:var(--bud-board-control-hover);--bud-control-shadow:var(--bud-board-elevation);--bud-segment-selected:var(--bud-board-segment);--bud-segment-shadow:none}:is(.bud-surface,[data-slot=field-card],[data-slot=sidebar],.bud-overlay,dialog){--bud-control-surface:var(--bud-control);--bud-control-hover:var(--bud-hover);--bud-control-shadow:var(--bud-control-elevation);--bud-segment-selected:var(--bud-control-selected);--bud-segment-shadow:var(--bud-segment-elevation)}.bud-control,.bud-interaction.bud-control{background:var(--bud-control-surface,var(--bud-control));box-shadow:var(--bud-control-shadow,var(--bud-control-elevation));border:1px solid #0000}.bud-interaction{color:var(--bud-muted);border:1px solid #0000}:is(.bud-interaction,.bud-headless-button):not(:disabled):is(:hover,[data-focus-method=keyboard],[aria-expanded=true]){background:var(--bud-hover);color:var(--bud-foreground)}.bud-control:is(button,a,[role=button]):is(:hover,[data-focus-method=keyboard]):not(:disabled){background:var(--bud-control-hover,var(--bud-hover));color:var(--bud-foreground)}.bud-control[aria-expanded=true]:not(:disabled){background:var(--bud-control-surface,var(--bud-control));box-shadow:var(--bud-control-open-elevation);color:var(--bud-foreground)}:is(.bud-interaction,.bud-headless-button):is([aria-current=page],[data-active=true]){background:var(--bud-control-active);color:var(--bud-foreground)}.bud-interaction[data-navigation][aria-current=page]{background:var(--bud-control-surface,var(--bud-control));box-shadow:var(--bud-control-shadow,var(--bud-control-elevation));color:var(--bud-foreground)}:is(.bud-interaction,.bud-headless-button):disabled{opacity:.5;cursor:not-allowed}.bud-toolbar .bud-interaction[data-active=true]{background:var(--bud-control-surface,var(--bud-control));box-shadow:var(--bud-control-shadow,var(--bud-control-elevation));color:var(--bud-foreground);border-color:#0000}.bud-segmented{height:var(--control-height);background:var(--bud-control-surface,var(--bud-control));box-shadow:var(--bud-control-shadow,var(--bud-control-elevation));border-radius:.5rem;flex-shrink:0;display:inline-flex}.bud-segmented>:is(button,a){min-width:var(--control-height);height:100%;color:var(--bud-muted);border-radius:.5rem;justify-content:center;align-items:center;gap:.375rem;padding:0 .625rem;display:inline-flex}.bud-segmented>:is(button,a):not(:disabled):hover{color:var(--bud-foreground)}.bud-segmented>:is([aria-pressed=true],[aria-current=page]){background:var(--bud-segment-selected,var(--bud-control-selected));box-shadow:var(--bud-segment-shadow,var(--bud-segment-elevation));color:var(--bud-foreground)}.bud-board .bud-card-control{--bud-field-card:var(--bud-board-card);--bud-field-card-border:transparent;--bud-field-card-shadow:var(--bud-board-card-elevation)}.bud-board :is(a,button):hover>.bud-card-control{--bud-field-card-shadow:var(--bud-board-card-lift);transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.bud-board :is(a,button):hover>.bud-card-control{transform:none}}:is(dialog,dialog>form)>[data-slot=field-card]{--bud-field-card-shadow:var(--bud-modal-elevation)}[data-slot=field-card-content][data-frame]{--bud-control-surface:var(--bud-frame-control)}.bud-overlay{border:1px solid var(--bud-border);background:var(--bud-canvas);box-shadow:var(--bud-overlay-shadow)}.bud-overlay.bud-menu{background:var(--bud-menu)}.bud-menu :is(.bud-interaction,.bud-headless-button):not(:disabled):is(:hover,[data-focus-method=keyboard]){background:var(--bud-menu-hover)}.bud-tooltip{border:1px solid var(--bud-tooltip-border);background:var(--bud-tooltip);color:#fafafa;box-shadow:var(--bud-tooltip-shadow)}.bud-button{background:var(--bud-primary);color:var(--bud-primary-foreground);font:inherit;cursor:pointer;border:1px solid #0000}.bud-button:hover:not(:disabled){background:var(--bud-primary-hover)}.bud-button:disabled{opacity:.5;cursor:not-allowed}.bud-comet{--size:var(--bud-comet-size,20px);--stroke:calc(var(--size) * .12);width:var(--size);height:var(--size);flex-shrink:0;animation:.7s linear infinite bud-comet-rotate;position:relative}.bud-comet-tail{-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--stroke)), #000 0);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--stroke)), #000 0);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--stroke)), #000 0);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--stroke)), #000 0);mask:radial-gradient(farthest-side, transparent calc(100% - var(--stroke)), #000 0);background:conic-gradient(#0000,currentColor);border-radius:9999px;position:absolute;inset:0}.bud-comet-head{width:var(--stroke);height:var(--stroke);background:currentColor;border-radius:9999px;position:absolute;top:0;left:50%;transform:translate(-50%)}@keyframes bud-comet-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.bud-comet{animation:none}}}@layer utilities{.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.invisible{visibility:hidden}.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}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-3{inset-inline:calc(var(--spacing) * 3)}.inset-y-0{inset-block:0}.start-0{inset-inline-start:calc(var(--spacing) * 0)}.-end-0\.5{inset-inline-end:calc(var(--spacing) * -.5)}.end-1{inset-inline-end:calc(var(--spacing) * 1)}.end-1\.5{inset-inline-end:calc(var(--spacing) * 1.5)}.end-2{inset-inline-end:calc(var(--spacing) * 2)}.end-2\.5{inset-inline-end:calc(var(--spacing) * 2.5)}.end-\[var\(--composer-inset\)\]{inset-inline-end:var(--composer-inset)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-20{top:calc(var(--spacing) * 20)}.top-\[3px\]{top:3px}.top-\[12vh\]{top:12vh}.right-0{right:0}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-\[var\(--composer-inset\)\]{bottom:var(--composer-inset)}.left-0{left:0}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-first{order:-9999}.order-last{order:9999}.row-span-2{grid-row:span 2/span 2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.-my-0\.5{margin-block:calc(var(--spacing) * -.5)}.my-1{margin-block:var(--spacing)}.ms-0\.5{margin-inline-start:calc(var(--spacing) * .5)}.ms-1{margin-inline-start:var(--spacing)}.ms-1\.5{margin-inline-start:calc(var(--spacing) * 1.5)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:var(--spacing)}.me-auto{margin-inline-end:auto}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.-mt-1{margin-top:calc(var(--spacing) * -1)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1{margin-right:var(--spacing)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.-ml-5{margin-left:calc(var(--spacing) * -5)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.contents\!{display:contents!important}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.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-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-control{width:var(--control-height);height:var(--control-height)}.size-full{width:100%;height:100%}.size-icon{width:var(--icon-size);height:var(--icon-size)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-\[42px\]{height:42px}.h-\[calc\(64px\+env\(safe-area-inset-top\)\)\]{height:calc(64px + env(safe-area-inset-top))}.h-\[calc\(var\(--control-height\)\+32px\+env\(safe-area-inset-bottom\)\)\]{height:calc(var(--control-height) + 32px + env(safe-area-inset-bottom))}.h-control{height:var(--control-height)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[40\%\]{max-height:40%}.max-h-\[45\%\]{max-height:45%}.max-h-\[50vh\]{max-height:50vh}.max-h-\[55\%\]{max-height:55%}.max-h-\[55vh\]{max-height:55vh}.max-h-\[65dvh\]{max-height:65dvh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[min\(24rem\,50dvh\)\]{max-height:min(24rem,50dvh)}.max-h-full{max-height:100%}.max-h-none{max-height:none}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-control{min-height:var(--control-height)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-70{width:calc(var(--spacing) * 70)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-88{width:calc(var(--spacing) * 88)}.w-\[22\.25rem\]{width:22.25rem}.w-\[calc\(100\%-1\.5rem\)\]{width:calc(100% - 1.5rem)}.w-\[min\(20rem\,calc\(100\%-3rem\)\)\]{width:min(20rem,100% - 3rem)}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-60{max-width:calc(var(--spacing) * 60)}.max-w-96{max-width:calc(var(--spacing) * 96)}.max-w-\[35rem\]{max-width:35rem}.max-w-\[39rem\]{max-width:39rem}.max-w-\[40\%\]{max-width:40%}.max-w-\[45\%\]{max-width:45%}.max-w-\[51rem\]{max-width:51rem}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-\[calc\(100\%-24px\)\]{max-width:calc(100% - 24px)}.max-w-\[min\(28rem\,calc\(100vw-1\.5rem\)\)\]{max-width:min(28rem,100vw - 1.5rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-4\.5{min-width:calc(var(--spacing) * 4.5)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-60{min-width:calc(var(--spacing) * 60)}.min-w-\[min\(100\%\,12rem\)\]{min-width:min(100%,12rem)}.flex-1{flex:1}.flex-\[var\(--navigation-count\)\]{flex:var(--navigation-count)}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-0{flex-basis:0}.basis-32{flex-basis:calc(var(--spacing) * 32)}.basis-48{flex-basis:calc(var(--spacing) * 48)}.basis-56{flex-basis:calc(var(--spacing) * 56)}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-bottom{transform-origin:bottom}.origin-top-left{transform-origin:0 0}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-\[0\.833\]{scale:.833}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[6\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:6.5rem minmax(0,1fr)}.grid-cols-\[auto_auto\]{grid-template-columns:auto auto}.grid-rows-\[20px_16px\]{grid-template-rows:20px 16px}.grid-rows-subgrid{grid-template-rows:subgrid}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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-2\.5{gap:calc(var(--spacing) * 2.5)}.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-\[inherit\]{gap:inherit}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}.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-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[1\.5rem\]{border-radius:1.5rem}.rounded-\[1\.25rem\]{border-radius:1.25rem}.rounded-\[5px\]{border-radius:5px}.rounded-\[10px\]{border-radius:10px}.rounded-\[calc\(var\(--composer-radius\)_-_var\(--composer-inset\)\)\]{border-radius:calc(var(--composer-radius) - var(--composer-inset))}.rounded-\[var\(--composer-radius\)\]{border-radius:var(--composer-radius)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-bl-none{border-bottom-left-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-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-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--bud-border\)\]{border-color:var(--bud-border)}.border-black\/20{border-color:#0003}@supports (color:color-mix(in lab, red, red)){.border-black\/20{border-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.border-current{border-color:currentColor}.border-line{border-color:var(--bud-border)}.border-neutral-300{border-color:var(--color-neutral-300)}.border-transparent{border-color:#0000}.bg-\[color-mix\(in_srgb\,var\(--bud-muted\)_30\%\,var\(--bud-editor\)\)\]{background-color:var(--bud-muted)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--bud-muted\)_30\%\,var\(--bud-editor\)\)\]{background-color:color-mix(in srgb,var(--bud-muted) 30%,var(--bud-editor))}}.bg-\[var\(--bud-border\)\]{background-color:var(--bud-border)}.bg-\[var\(--bud-card\)\]{background-color:var(--bud-card)}.bg-\[var\(--bud-card-frame\)\]{background-color:var(--bud-card-frame)}.bg-\[var\(--bud-control\)\]{background-color:var(--bud-control)}.bg-\[var\(--bud-control-active\)\]{background-color:var(--bud-control-active)}.bg-\[var\(--bud-editor\)\]{background-color:var(--bud-editor)}.bg-\[var\(--bud-editor-tabs\)\]{background-color:var(--bud-editor-tabs)}.bg-\[var\(--bud-field-card\,var\(--bud-card-surface\)\)\]{background-color:var(--bud-field-card,var(--bud-card-surface))}.bg-\[var\(--bud-main\)\]{background-color:var(--bud-main)}.bg-\[var\(--bud-panel\)\]{background-color:var(--bud-panel)}.bg-amber-400\/30{background-color:#fcbb004d}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/30{background-color:color-mix(in oklab, var(--color-amber-400) 30%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/8{background-color:#f99c0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/8{background-color:color-mix(in oklab, var(--color-amber-500) 8%, transparent)}}.bg-board{background-color:var(--bud-board)}.bg-canvas{background-color:var(--bud-canvas)}.bg-current\/12{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.bg-current\/12{background-color:color-mix(in oklab, currentcolor 12%, transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-hover{background-color:var(--bud-hover)}.bg-ink{background-color:var(--bud-foreground)}.bg-line{background-color:var(--bud-border)}.bg-main{background-color:var(--bud-main)}.bg-panel{background-color:var(--bud-panel)}.bg-primary{background-color:var(--bud-primary)}.bg-red-500{background-color:var(--color-red-500)}.bg-selected{background-color:var(--bud-selected)}.bg-shell{background-color:var(--bud-shell)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-transparent{background-color:#0000}.bg-violet-400{background-color:var(--color-violet-400)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.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)}.p-12{padding:calc(var(--spacing) * 12)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.ps-1{padding-inline-start:var(--spacing)}.ps-1\.5{padding-inline-start:calc(var(--spacing) * 1.5)}.ps-2{padding-inline-start:calc(var(--spacing) * 2)}.ps-2\.5{padding-inline-start:calc(var(--spacing) * 2.5)}.ps-3{padding-inline-start:calc(var(--spacing) * 3)}.ps-4{padding-inline-start:calc(var(--spacing) * 4)}.ps-5{padding-inline-start:calc(var(--spacing) * 5)}.ps-7{padding-inline-start:calc(var(--spacing) * 7)}.ps-8{padding-inline-start:calc(var(--spacing) * 8)}.pe-1{padding-inline-end:var(--spacing)}.pe-1\.5{padding-inline-end:calc(var(--spacing) * 1.5)}.pe-2{padding-inline-end:calc(var(--spacing) * 2)}.pe-2\.5{padding-inline-end:calc(var(--spacing) * 2.5)}.pe-3{padding-inline-end:calc(var(--spacing) * 3)}.pe-6{padding-inline-end:calc(var(--spacing) * 6)}.pe-7{padding-inline-end:calc(var(--spacing) * 7)}.pe-8{padding-inline-end:calc(var(--spacing) * 8)}.pe-10{padding-inline-end:calc(var(--spacing) * 10)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-12{padding-bottom:calc(var(--spacing) * 12)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-end{text-align:end}.text-left{text-align:left}.text-start{text-align:start}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--bud-font-sans)}.text-2xl\/8{font-size:var(--text-2xl);line-height:calc(var(--spacing) * 8)}.text-5xl\/12{font-size:var(--text-5xl);line-height:calc(var(--spacing) * 12)}.text-\[0\.625rem\]\/4{font-size:.625rem;line-height:calc(var(--spacing) * 4)}.text-\[0\.6875rem\]\/none{font-size:.6875rem;line-height:1}.text-\[0\.8125rem\]\/5{font-size:.8125rem;line-height:calc(var(--spacing) * 5)}.text-\[10px\]\/4{font-size:10px;line-height:calc(var(--spacing) * 4)}.text-base\/7{font-size:var(--text-base);line-height:calc(var(--spacing) * 7)}.text-lg\/7{font-size:var(--text-lg);line-height:calc(var(--spacing) * 7)}.text-lg\/8{font-size:var(--text-lg);line-height:calc(var(--spacing) * 8)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/5{font-size:var(--text-sm);line-height:calc(var(--spacing) * 5)}.text-sm\/6{font-size:var(--text-sm);line-height:calc(var(--spacing) * 6)}.text-sm\/7{font-size:var(--text-sm);line-height:calc(var(--spacing) * 7)}.text-xl\/7{font-size:var(--text-xl);line-height:calc(var(--spacing) * 7)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\/4{font-size:var(--text-xs);line-height:calc(var(--spacing) * 4)}.text-xs\/5{font-size:var(--text-xs);line-height:calc(var(--spacing) * 5)}.text-\[0\.9em\]{font-size:.9em}.text-\[13px\]{font-size:13px}.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-\[-0\.01em\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.04em\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.text-balance{text-wrap:balance}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.tab-1{tab-size:1}.text-\[var\(--bud-background\)\]{color:var(--bud-background)}.text-\[var\(--bud-foreground\)\]{color:var(--bud-foreground)}.text-\[var\(--bud-muted\)\]{color:var(--bud-muted)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-black{color:var(--color-black)}.text-canvas{color:var(--bud-canvas)}.text-emerald-600{color:var(--color-emerald-600)}.text-ink{color:var(--bud-foreground)}.text-muted{color:var(--bud-muted)}.text-primary-foreground{color:var(--bud-primary-foreground)}.text-red-600{color:var(--color-red-600)}.text-sky-600{color:var(--color-sky-600)}.text-slate-500{color:var(--color-slate-500)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-\[var\(--bud-border\)\],.decoration-line{-webkit-text-decoration-color:var(--bud-border);-webkit-text-decoration-color:var(--bud-border);-webkit-text-decoration-color:var(--bud-border);text-decoration-color:var(--bud-border)}.underline-offset-4{text-underline-offset:4px}.accent-\[var\(--bud-foreground\)\]{accent-color:var(--bud-foreground)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.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-\[0_-4px_20px_\#00000004\]{--tw-shadow:0 -4px 20px var(--tw-shadow-color,#00000004);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_8px_30px_\#00000012\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000012);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--bud-field-card-shadow\,var\(--bud-card-elevation\)\)\]{--tw-shadow:var(--bud-field-card-shadow,var(--bud-card-elevation));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--bud-modal-elevation\)\]{--tw-shadow:var(--bud-modal-elevation);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--bud-overlay-shadow\)\]{--tw-shadow:var(--bud-overlay-shadow);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)}.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-2{--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)}.shadow-primary\/40{--tw-shadow-color:var(--bud-primary)}@supports (color:color-mix(in lab, red, red)){.shadow-primary\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--bud-primary) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[var\(--bud-card-border\)\]{--tw-ring-color:var(--bud-card-border)}.ring-\[var\(--bud-card-frame-border\)\]{--tw-ring-color:var(--bud-card-frame-border)}.ring-\[var\(--bud-field-card-border\,transparent\)\]{--tw-ring-color:var(--bud-field-card-border,transparent)}.ring-\[var\(--bud-muted\)\]{--tw-ring-color:var(--bud-muted)}.ring-ink{--tw-ring-color:var(--bud-foreground)}.ring-line{--tw-ring-color:var(--bud-border)}.ring-offset-2{--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)}.ring-offset-canvas{--tw-ring-offset-color:var(--bud-canvas)}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-offset-\[-2px\]{outline-offset:-2px}.outline-red-500\/70{outline-color:#fb2c36b3}@supports (color:color-mix(in lab, red, red)){.outline-red-500\/70{outline-color:color-mix(in oklab, var(--color-red-500) 70%, transparent)}}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.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-\[height\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,scale\]{transition-property:opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,box-shadow\]{transition-property:transform,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,opacity\,height\]{transition-property:transform,opacity,height;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))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-400{--tw-duration:.4s;transition-duration:.4s}.ease-\[cubic-bezier\(0\.21\,1\.02\,0\.73\,1\)\]{--tw-ease:cubic-bezier(.21,1.02,.73,1);transition-timing-function:cubic-bezier(.21,1.02,.73,1)}.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}.\[--composer-inset\:0\.25rem\]{--composer-inset:.25rem}.\[--composer-radius\:0\.75rem\]{--composer-radius:.75rem}.not-open\:hidden:not(:is([open],:popover-open,:open)){display:none}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:bg-hover:is(:where(.group):hover *){background-color:var(--bud-hover)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-\[var\(--bud-muted\)\]::placeholder,.placeholder\:text-muted::placeholder{color:var(--bud-muted)}.backdrop\:bg-black\/25::backdrop{background-color:#00000040}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/25::backdrop{background-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.backdrop\:bg-black\/35::backdrop{background-color:#00000059}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/35::backdrop{background-color:color-mix(in oklab, var(--color-black) 35%, transparent)}}.backdrop\:backdrop-blur-sm::backdrop{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop\:transition-opacity::backdrop{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.backdrop\:duration-200::backdrop{--tw-duration:.2s;transition-duration:.2s}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-end-\[3px\]:after{content:var(--tw-content);inset-inline-end:-3px}.after\:top-1\/2:after{content:var(--tw-content);top:50%}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing) * 4)}.after\:w-px:after{content:var(--tw-content);width:1px}.after\:-translate-y-1\/2:after{content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:bg-\[var\(--bud-tab-divider\)\]:after{content:var(--tw-content);background-color:var(--bud-tab-divider)}.last\:-mb-3:last-child{margin-bottom:calc(var(--spacing) * -3)}.last\:rounded-b-xl:last-child{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.last\:after\:hidden:last-child:after{content:var(--tw-content);display:none}.open\:flex:is([open],:popover-open,:open){display:flex}.empty\:hidden:empty{display:none}@media (hover:hover){.hover\:bg-\[var\(--bud-hover\)\]:hover{background-color:var(--bud-hover)}.hover\:bg-\[var\(--bud-menu-hover\)\]:hover{background-color:var(--bud-menu-hover)}.hover\:bg-hover:hover{background-color:var(--bud-hover)}.hover\:text-ink:hover{color:var(--bud-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:decoration-current:hover{text-decoration-color:currentColor}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--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)}.hover\:ring-ink:hover{--tw-ring-color:var(--bud-foreground)}.hover\:ring-offset-2:hover{--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)}.hover\:ring-offset-canvas:hover{--tw-ring-offset-color:var(--bud-canvas)}.hover\:after\:opacity-0:hover:after{content:var(--tw-content);opacity:0}}.focus-visible\:bg-\[var\(--bud-menu-hover\)\]:focus-visible{background-color:var(--bud-menu-hover)}.focus-visible\:ring-2:focus-visible{--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-visible\:ring-\[var\(--bud-muted\)\]:focus-visible{--tw-ring-color:var(--bud-muted)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-\[\[role\=dialog\]\]\:z-20:has([role=dialog]){z-index:20}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-hover[aria-expanded=true]{background-color:var(--bud-hover)}.aria-expanded\:text-ink[aria-expanded=true]{color:var(--bud-foreground)}.data-active\:bg-\[var\(--bud-control-active\)\][data-active]{background-color:var(--bud-control-active)}.data-\[active\=true\]\:after\:opacity-0[data-active=true]:after{content:var(--tw-content);opacity:0}.data-\[highlighted\=true\]\:bg-\[var\(--bud-menu-hover\)\][data-highlighted=true]{background-color:var(--bud-menu-hover)}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}.motion-safe\:animate-spin{animation:var(--animate-spin)}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none,.motion-reduce\:backdrop\:transition-none::backdrop{transition-property:none}}@media not all and (width>=80rem){.max-xl\:hidden{display:none}}@media not all and (width>=64rem){.max-lg\:hidden{display:none}}@media not all and (width>=48rem){.max-md\:hidden{display:none}.max-md\:overflow-x-auto{overflow-x:auto}.max-md\:p-1{padding:var(--spacing)}}@media not all and (width>=40rem){.max-sm\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-sm\:hidden{display:none}}@media (width>=40rem){.sm\:right-6{right:calc(var(--spacing) * 6)}.sm\:bottom-6{bottom:calc(var(--spacing) * 6)}.sm\:ms-auto{margin-inline-start:auto}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:text-2xl\/8{font-size:var(--text-2xl);line-height:calc(var(--spacing) * 8)}.sm\:text-3xl\/9{font-size:var(--text-3xl);line-height:calc(var(--spacing) * 9)}.sm\:text-\[1\.75rem\]\/9{font-size:1.75rem;line-height:calc(var(--spacing) * 9)}.sm\:text-\[4rem\]\/16{font-size:4rem;line-height:calc(var(--spacing) * 16)}}@media (width>=48rem){.md\:static{position:static}.md\:order-first{order:-9999}.md\:order-last{order:9999}.md\:mt-auto{margin-top:auto}.md\:mb-4{margin-bottom:calc(var(--spacing) * 4)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:calc(var(--spacing) * 16)}.md\:h-full{height:100%}.md\:w-12{width:calc(var(--spacing) * 12)}.md\:w-64{width:calc(var(--spacing) * 64)}.md\:flex-none{flex:none}.md\:shrink-0{flex-shrink:0}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[240px_minmax\(0\,1fr\)\]{grid-template-columns:240px minmax(0,1fr)}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:gap-1{gap:var(--spacing)}.md\:rounded-none{border-radius:0}.md\:rounded-l-3xl{border-top-left-radius:var(--radius-3xl);border-bottom-left-radius:var(--radius-3xl)}.md\:rounded-tl-2xl{border-top-left-radius:var(--radius-2xl)}.md\:border-0{border-style:var(--tw-border-style);border-width:0}.md\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.md\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.md\:border-line{border-color:var(--bud-border)}.md\:bg-shell{background-color:var(--bud-shell)}.md\:p-4{padding:calc(var(--spacing) * 4)}.md\:px-0{padding-inline:0}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:px-7{padding-inline:calc(var(--spacing) * 7)}.md\:py-3{padding-block:calc(var(--spacing) * 3)}.md\:pe-80{padding-inline-end:calc(var(--spacing) * 80)}.md\:pt-0{padding-top:0}.md\:pt-2{padding-top:calc(var(--spacing) * 2)}.md\:pt-6{padding-top:calc(var(--spacing) * 6)}.md\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.md\:shadow-\[-1px_0_3px_\#00000002\]{--tw-shadow:-1px 0 3px var(--tw-shadow-color,#00000002);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.md\:shadow-none{--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)}}@media (width>=64rem){.lg\:sticky{position:sticky}.lg\:top-6{top:calc(var(--spacing) * 6)}.lg\:w-48{width:calc(var(--spacing) * 48)}.lg\:w-72{width:calc(var(--spacing) * 72)}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_18rem\]{grid-template-columns:minmax(0,1fr) 18rem}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:self-start{align-self:flex-start}.lg\:text-base\/6{font-size:var(--text-base);line-height:calc(var(--spacing) * 6)}.lg\:text-base\/7{font-size:var(--text-base);line-height:calc(var(--spacing) * 7)}}@media (width>=80rem){.xl\:w-72{width:calc(var(--spacing) * 72)}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@container not (width>=28rem){.\@max-md\:hidden{display:none}}.dark\:block:where([data-theme=dark],[data-theme=dark] *){display:block}.dark\:hidden:where([data-theme=dark],[data-theme=dark] *){display:none}.dark\:border-neutral-700:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-700)}.dark\:bg-amber-400:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-amber-400)}.dark\:bg-emerald-400:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-emerald-400)}.dark\:bg-red-400:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-red-400)}.dark\:bg-sky-400:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-sky-400)}.dark\:bg-slate-500:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-slate-500)}.dark\:text-amber-300:where([data-theme=dark],[data-theme=dark] *){color:var(--color-amber-300)}.dark\:text-amber-400:where([data-theme=dark],[data-theme=dark] *){color:var(--color-amber-400)}.dark\:text-emerald-400:where([data-theme=dark],[data-theme=dark] *){color:var(--color-emerald-400)}.dark\:text-red-400:where([data-theme=dark],[data-theme=dark] *){color:var(--color-red-400)}.dark\:text-sky-400:where([data-theme=dark],[data-theme=dark] *){color:var(--color-sky-400)}.dark\:text-slate-400:where([data-theme=dark],[data-theme=dark] *){color:var(--color-slate-400)}.dark\:invert:where([data-theme=dark],[data-theme=dark] *){--tw-invert:invert(100%);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,)}@starting-style{.starting\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.starting\:scale-\[0\.97\]{scale:.97}.starting\:opacity-0,.starting\:backdrop\:opacity-0::backdrop{opacity:0}}.\[\&_svg\]\:animate-spin svg{animation:var(--animate-spin)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\:has\(\+\:hover\)\]\:after\:opacity-0:has(+:hover):after{content:var(--tw-content);opacity:0}.\[\&\:has\(\+\[data-active\=true\]\)\]\:after\:opacity-0:has(+[data-active=true]):after{content:var(--tw-content);opacity:0}.\[\&\>file-tree-container\]\:h-full>file-tree-container{height:100%}.\[\&\>file-tree-container\]\:w-full>file-tree-container{width:100%}.\[\&\[open\]\>summary\>svg\]\:rotate-90[open]>summary>svg{rotate:90deg}}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/assets/InterVariable-DiVDrmQJ.woff2)format("woff2")}@font-face{font-display:swap;font-family:Inter Variable;font-style:italic;font-weight:100 900;src:url(/assets/InterVariable-Italic-FCBEiFp6.woff2)format("woff2")}:root[data-theme-switching],:root[data-theme-switching]:before,:root[data-theme-switching]:after,:root[data-theme-switching] *,:root[data-theme-switching] :before,:root[data-theme-switching] :after{transition:none!important;animation:none!important}dialog>form{flex-direction:column;min-height:0;display:flex}:is(dialog,dialog>form)>[data-slot=field-card]{min-height:0}:is(dialog,dialog>form)>[data-slot=field-card]>[data-slot=field-card-content]{min-height:0;overflow-y:auto}:is(dialog,dialog>form)>[data-slot=field-card]>[data-slot=field-card-content]>*{flex-shrink:0}@property --bud-scroll-fade-start{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --bud-scroll-fade-end{syntax:"<length-percentage>";inherits:false;initial-value:0}@keyframes bud-scroll-fade-start{0%{--bud-scroll-fade-start:0px}to{--bud-scroll-fade-start:var(--bud-scroll-fade-size)}}@keyframes bud-scroll-fade-end{0%{--bud-scroll-fade-end:var(--bud-scroll-fade-size)}to{--bud-scroll-fade-end:0px}}[data-scroll-fade]{--bud-scroll-fade-size:24px;--bud-scroll-fade-reveal:48px;-webkit-mask-image:linear-gradient(var(--bud-scroll-fade-direction), transparent 0, #000 var(--bud-scroll-fade-start), #000 calc(100% - var(--bud-scroll-fade-end)), transparent 100%);-webkit-mask-image:linear-gradient(var(--bud-scroll-fade-direction), transparent 0, #000 var(--bud-scroll-fade-start), #000 calc(100% - var(--bud-scroll-fade-end)), transparent 100%);-webkit-mask-image:linear-gradient(var(--bud-scroll-fade-direction), transparent 0, #000 var(--bud-scroll-fade-start), #000 calc(100% - var(--bud-scroll-fade-end)), transparent 100%);mask-image:linear-gradient(var(--bud-scroll-fade-direction), transparent 0, #000 var(--bud-scroll-fade-start), #000 calc(100% - var(--bud-scroll-fade-end)), transparent 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}[data-scroll-fade=x]{--bud-scroll-fade-direction:to right}[data-scroll-fade=y]{--bud-scroll-fade-direction:to bottom}@supports (animation-timeline:scroll()){[data-scroll-fade]{animation:1ms linear both bud-scroll-fade-start,1ms linear both bud-scroll-fade-end;animation-range:0 var(--bud-scroll-fade-reveal), calc(100% - var(--bud-scroll-fade-reveal)) 100%}[data-scroll-fade=x]{animation-timeline:scroll(self inline),scroll(self inline)}[data-scroll-fade=y]{animation-timeline:scroll(self),scroll(self)}}@supports not (animation-timeline:scroll()){[data-scroll-fade]{--bud-scroll-fade-start:var(--bud-scroll-fade-size);--bud-scroll-fade-end:var(--bud-scroll-fade-size)}}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./i18n-hH_Ba5QO.js";import{t}from"./jsx-B4XNFIzB.js";import{t as n}from"./component-DWct-Tq6.js";import{n as r}from"./on-mixin-iWnqUzq5.js";import{n as i}from"./attrs-mixin-CmlG_FtV.js";import{l as a,n as o,t as s}from"./loader-Q6-HPKft.js";import{t as c}from"./screen-Dfvzj6n2.js";import{$n as l,Cn as u,I as d,Qn as f,Un as p,bt as m,er as h,nr as g,rr as _,w as v}from"./task-design-BPpc4Gd7.js";import{At as y,it as ee,jt as te,s as b}from"./project-threads-ZbKDh78d.js";import{r as x,t as S}from"./workspace-tab-Bg2MFdMB.js";import{t as C}from"./project-comments-D1IIQwsW.js";import{n as w,r as ne,t as re}from"./project-branches-CMGRmrqr.js";function T(n){let i=``,s=null,c=!1,l=()=>{for(let e of s?.urls??[])URL.revokeObjectURL(e)};n.signal.addEventListener(`abort`,l,{once:!0});async function u(e){let{previews:t,route:r,theme:a,size:o}=n.props;i=e,c=!1;let u=await t.picture(r.id,a,o).catch(()=>null);i!==e||n.signal.aborted||(l(),s=u?{key:e,capture:u.capture,urls:u.images.map(e=>URL.createObjectURL(e))}:null,c=!u,n.update())}return()=>{let{route:l,theme:d,size:f,picking:p,inline:m}=n.props,h=`${l.id}\0${d}\0${f.id}`;h!==i&&u(h);let g=s?.key===h?s:null;return t(`div`,{class:m?`relative w-full`:`absolute inset-0 overflow-auto bg-board`,role:`img`,"aria-label":e(`app.client.pagePicture.pictureAt`,{title:l.title,width:f.width}),children:g?t(`div`,{class:`relative mx-auto ${p?`cursor-crosshair`:``}`,style:{width:`min(100%, ${g.capture.width}px)`},mix:r(`click`,e=>{if(!p)return;let t=e.currentTarget.getBoundingClientRect(),n=g.capture.width/t.width;p.onPick({path:l.path,element:null,point:{x:(e.clientX-t.left)*n,y:(e.clientY-t.top)*n,width:g.capture.width},client:{x:e.clientX,y:e.clientY}})}),children:g.urls.map((e,n)=>t(`img`,{src:e,alt:``,draggable:!1,class:`block w-full select-none`,style:{aspectRatio:`${g.capture.width} / ${g.capture.tiles[n]?.height??1}`}},e))}):t(`div`,{class:`grid place-items-center p-6 ${m?`min-h-40`:`size-full`}`,children:c?t(a,{as:`p`,variant:`ui`,tone:`muted`,class:`max-w-md text-center`,children:e(`app.client.pagePicture.noPictureYet`)}):t(o,{size:18,class:`text-muted`})})})}}var ie=l({tabs:p(l({id:_(),src:_(),path:_(),title:_(),load:f(),branch:h(_())})),active:_()}),E=`Working tree`,ae=12;function oe(e,t){let[n,...r]=e.previews.viewports;return t===void 0?n:r.reduce((e,n)=>Math.abs(n.width-t)<Math.abs(e.width-t)?n:e,n)}function D(e,t){let n=t.replace(/#.*$/,``),r=n.replace(/\?.*$/,``);return e.find(e=>e.path===t)??e.find(e=>e.path===n)??e.find(e=>e.path===r)}function O(e,t){let n=new URL(e,`http://bud.local`),r=t.replace(/\/$/,``);return n.pathname.startsWith(`${r}/`)?`${n.pathname.slice(r.length)}${n.search}${n.hash}`:null}function k(e,t){return`${e.replace(/\/$/,``)}${t}`}function A(o){let c=o.props.project,l=c.targetOrigin,f=c.workingTree===!1,p=f?c.main??`main`:E,m=re({project:c,signal:o.signal,onChange:()=>{o.signal.aborted||o.update()}}),h=new Map;function _(e){let t=h.get(e);return t||(t=w({project:c,signal:o.signal,...e===E?{}:{branch:e}}),h.set(e,t)),t}function A(){let t=m.list.branches.flatMap(e=>e.active&&e.captured?[{name:e.name,caption:e.captured.slice(0,7)}]:[]);return f?t:[{name:E,caption:e(`app.client.projectPages.live`)},...t]}function j(t){return t===E?e(`app.client.projectPages.workingTree`):t}let M=null,N,P=c.previews.viewports[0],F=``,I,L=o.props.href,R=e=>`bud:pages:${c.id}:${e}:v1`,z=C({store:b(c),token:c.token,signal:o.signal,onChange:()=>{o.signal.aborted||o.update()}}),B;function V(e){return D(c.routes,e)?.title??e.replace(/[?#].*$/,``)}function H(e,t){return{id:crypto.randomUUID(),src:e,path:e,title:V(e),load:0,...t&&t!==p?{branch:t}:{}}}function U(e){let t=H(e);return{tabs:[t],active:t.id}}function W(e){let t=O(o.props.href,o.props.root),n=g(ie,y(R(e))),r=(n.success&&n.value.tabs.length?n.value:null)??U(t??c.routes[0]?.path??`/`);r.tabs.some(e=>e.id===r.active)||(r.active=r.tabs[0].id),I=r,t&&G().path!==t&&Y(G().id,t,!1)}function G(){return I.tabs.find(e=>e.id===I.active)??I.tabs[0]}function K(){F&&te(R(F),I),o.signal.aborted||o.update()}function q(e,t){I={...I,tabs:I.tabs.map(n=>n.id===e?{...n,...t}:n)}}function J(e){let{pathname:t,search:n,hash:r}=window.location,i=o.props.root;if(!o.props.active||t!==i&&!t.startsWith(`${i}/`))return;let a=k(i,G().path);`${t}${n}${r}`!==a&&(L=new URL(a,window.location.origin).href,window.history[e?`pushState`:`replaceState`]({...window.history.state},``,a))}function Y(e,t,n=!0,r){let i=I.tabs.find(t=>t.id===e);i&&(q(e,{src:t,path:t,title:V(t),load:i.load+1,branch:r===void 0?i.branch:r===p?void 0:r}),e===I.active&&J(n),K())}function X(e,t,n){if(!t||I.tabs.length>=ae)return Y(G().id,e,!0,n);let r=H(e,n??G().branch),i=I.tabs.findIndex(e=>e.id===I.active)+1;I={tabs:[...I.tabs.slice(0,i),r,...I.tabs.slice(i)],active:r.id},J(!0),K()}function se(e,t){let n=D(c.routes,e.path);if(!n)return;let r=e.element,i=t===void 0?G().branch:t===p?void 0:t,a=f||t!==void 0||i?P:oe(c,e.point?.width);B={route:n,pick:e,viewport:a,...i?{branch:i}:{},located:r===null?Promise.resolve(e.point&&{x:e.point.x,y:e.point.y}):ne(c.token,n.id,c.previews.themes[0],r,o.signal,a.id)},o.update()}function Z(){let e=c.previews.themes,t=typeof document>`u`?void 0:document.documentElement.dataset.theme;return e.find(e=>e===t)??e[0]}function ce(){let e=A().map(e=>e.name),t=G().branch??p,n=t===e[0]?e[1]:t;M=M?null:[e[0],...n?[n]:[]],B=void 0,o.update()}function le(){let i=c.previews.viewports,s=A();if(!f&&s.length<2&&!c.routes.some(e=>e.flow))return;let l=M;return{source:l?e(`app.client.projectPages.comparing`,{branches:l.join(`, `)}):e(`app.client.projectPages.picturesOf`,{branch:j(G().branch??p)}),shows:e=>f||!!e.branch||!!l||!!D(c.routes,e.path)?.flow,actions:t(n,{children:[t(v,{tooltip:!0,icon:`compare`,label:e(l?`app.client.projectPages.stopComparing`:`app.client.projectPages.compareBranches`),active:!!l,disabled:!l&&s.length<2,mix:r(`click`,ce)}),l?t(`div`,{role:`group`,"aria-label":e(`app.client.projectPages.branchesCompared`),class:`flex min-w-0 items-center gap-1.5`,children:l.map((n,r)=>t(d,{label:e(`app.client.projectPages.comparedBranch`,{number:r+1}),value:n,class:`max-w-52`,options:s.map(e=>({value:e.name,label:j(e.name),description:e.caption})),onChange:e=>{let t=[...l];t[r]=e,M=t,o.update()}},r))}):null]}),toolbar:t(`div`,{class:`flex min-w-0 items-center gap-0.5`,children:i.length>1?i.map(n=>t(v,{tooltip:!0,icon:n.mobile?`mobile`:`desktop`,label:e(`app.client.projectPages.showViewport`,{name:n.name,width:n.width}),active:n.id===P.id,mix:r(`click`,()=>{P=n,B=void 0,o.update()})},n.id)):null}),render:(n,r)=>{let i=D(c.routes,n.path);return i?l?t(`div`,{class:`absolute inset-0 overflow-auto bg-board`,children:t(`div`,{class:`flex w-full items-start justify-center gap-4 p-4`,children:l.map(n=>t(`section`,{"aria-label":e(`app.client.projectPages.branchPicture`,{branch:j(n)}),class:`flex min-w-0 flex-1 flex-col gap-2`,style:{maxWidth:`${P.width}px`},children:[t(a,{variant:`ui-caption`,tone:`muted`,class:`truncate`,children:j(n)}),t(T,{previews:_(n),route:i,theme:Z(),size:P,picking:r&&{onPick:e=>{N=n,r.onPick(e)}},inline:!0})]},n))})}):t(T,{previews:_(n.branch??p),route:i,theme:Z(),size:P,picking:r}):t(`div`,{class:`grid h-full place-items-center p-6`,children:t(a,{as:`p`,variant:`ui`,tone:`muted`,class:`max-w-md text-center`,children:e(`app.client.projectPages.routePicturesOnly`)})})}}}async function ue(e){let t=B;if(!t)return;let n=await Promise.race([t.located,new Promise(e=>setTimeout(()=>e(null),15e3))]),r=t.viewport.width,i=n??(t.pick.point?{x:t.pick.point.x/t.pick.point.width*r,y:t.pick.point.y}:{x:r/2,y:0});await z.write({anchor:{pageId:t.route.id,pagePath:t.route.path,viewport:r,offsetX:Math.min(1,Math.max(0,i.x/r)),offsetY:Math.min(u,Math.max(0,i.y)),element:t.pick.element,...t.branch?{branch:t.branch}:{}},itemIds:[],body:e}),B===t&&(B=void 0),o.update()}function Q(t){return z.loaded?z.snapshot.capabilities.create?D(c.routes,t)?null:e(`app.client.projectPages.routeCommentsOnly`):e(`app.client.projectPages.commentsReadOnly`):e(`app.client.projectPages.loadingComments`)}F=x(),W(F);let $=i((e,t)=>{z.loaded||z.load(),F||(F=x(),W(F)),J(!1);let n=S(()=>{F=x(),W(F),K()});t.addEventListener(`abort`,n,{once:!0})});return()=>{if(L!==o.props.href){L=o.props.href;let e=O(L,o.props.root);e&&e!==G().path&&Y(G().id,e,!1)}if(!m.loaded&&!m.error)return t(`div`,{class:`h-full min-h-0`,mix:$,children:t(s,{label:e(`app.client.projectPages.loadingBranches`)})});let n=G();return!f&&typeof window<`u`&&new URL(l).origin===window.location.origin?t(`div`,{class:`grid h-full place-items-center p-6`,mix:$,children:t(a,{as:`p`,variant:`ui`,tone:`muted`,class:`max-w-md text-center`,children:e(`app.client.projectPages.siteOnBudOrigin`)})}):t(`div`,{class:`h-full min-h-0 min-w-0`,mix:$,children:t(ee,{pages:c.routes,onOpen:(e,t,n)=>X(e,t,n),origin:l,tabs:I.tabs,active:I.active,onSelect:e=>{I={...I,active:e},J(!1),K()},onClose:e=>{if(I.tabs.length===1)return;let t=I.tabs.findIndex(t=>t.id===e),n=I.tabs.filter(t=>t.id!==e);I={tabs:n,active:I.active===e?n[Math.min(t,n.length-1)].id:I.active},J(!1),K()},onNew:()=>X(c.routes[0]?.path??`/`,!0),onNavigate:(e,t)=>Y(e,t),commenting:(z.loaded?z.ready:c.storage.threads?.state===`ready`)?{unavailable:Q(n.path),draft:B?{path:B.pick.path,label:B.pick.element?.label??e(`app.client.projectPages.spotOnPage`),source:B.pick.element?.source??null}:null,busy:z.busy,onPicked:(e,t)=>{let n=M?N:void 0;N=void 0,se(t,n)},onSubmit:ue,onCancel:()=>{B=void 0,o.update()}}:void 0,pictures:le(),design:c.designs.pages,sections:f||A().length>1?A().map(e=>({id:e.name,label:j(e.name),caption:e.caption})):void 0,section:n.branch??p,onLocation:(e,t)=>{q(e,{path:t.path,title:t.title||V(t.path)}),e===I.active&&J(!1),K()}})})}}var j=c({routes:m,render:(e,{project:n,url:r,active:i,path:a})=>t(A,{project:n,href:r.href,root:a,active:i})});export{j as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./i18n-hH_Ba5QO.js";import{Dt as t,Et as n,Lt as r,Ot as i,Rt as a,Vt as o,f as s,kt as c,zt as l}from"./task-design-BPpc4Gd7.js";import{C as u,S as d,_ as f,b as p,i as m,n as ee,r as h,s as g,v as _,x as v}from"./project-threads-ZbKDh78d.js";var y=`Comments are stored by your storage adapter. Beads: run bd init in this project.`;function b(e=y){return{connection:{state:`unavailable`,adapter:null,message:e},capabilities:{create:!1,reply:!1,status:!1,link:!1,sync:!1,edit:!1,delete:!1},threads:[],truncated:!1}}var x=new Map;function S(e){let t=e&&typeof e==`object`&&`viewer`in e?e.viewer:void 0;if(t===null)return null;if(t&&typeof t==`object`&&`id`in t&&`name`in t&&typeof t.id==`string`&&typeof t.name==`string`&&t.id.length<=256&&t.name.length<=1e3)return{id:t.id,name:t.name};throw TypeError(`Invalid viewer.`)}function te(e){if(!e||typeof e!=`object`||!(`thread`in e))throw TypeError(`Invalid deletion.`);return{thread:e.thread===null?null:r(e.thread)}}async function C(t,n,i,a){try{let e=await _(w({itemId:n}),t,i,o),s=await Promise.all(e.threads.map(e=>e.messagesLoaded||e.anchor&&e.id!==a?e:_(p.comments.get.href({id:e.id}),t,i,r)));return{snapshot:{...e,threads:s},error:``}}catch(t){return i.throwIfAborted(),{snapshot:null,error:t instanceof Error?t.message:e(`app.client.projectComments.couldNotLoadDiscussion`)}}}function w(e){let t=new URLSearchParams(a(e));return p.comments.list.href()+(t.size?`?${t}`:``)}function T(e){return e.truncated?new Set(e.threads.map(e=>e.id)):null}function E(e){return e.toSorted((e,t)=>e.createdAt.localeCompare(t.createdAt)||e.id.localeCompare(t.id))}function D(e,t={},n=null){let r=e.discussions.get(`threads`);if(!r)return null;let{connection:i,capabilities:a}=v(r);return{connection:i,capabilities:a,threads:E(e.threads.toArray.map(v).filter(e=>m(e,t)&&(!n||n.has(e.id)))),truncated:!!n}}async function O(t,n,r=fetch){let i=await g(t),a=D(i);if(a)return{snapshot:a,error:``,stored:!0};try{let e=await _(p.comments.list.href(),t.token,n,o,r);return await h(i,e),{snapshot:e,error:``}}catch(t){return n.throwIfAborted(),{snapshot:null,error:t instanceof Error?t.message:e(`app.client.projectComments.couldNotLoadComments`)}}}function k(g){let v=a(g.filter??{}),y=g.initial?.snapshot??b(),C={...y,threads:E(y.threads.filter(X))},O=T(y),k,A=!!g.initial?.snapshot,j=!1,M=!1,N=g.initial?.error??``,P=Date.now(),F=0,I=0,L,R=new Map,z=new Set,B=null,V=!1;function H(){if(V||!C.capabilities.delete)return;V=!0;let e=x.get(g.token);e||(e=_(p.comments.viewer.href(),g.token,new AbortController().signal,S,g.fetcher).catch(()=>null),x.set(g.token,e)),e.then(e=>{B=e,W()})}H();let U=Promise.resolve(g.store).then(async e=>{k=e,g.initial?.snapshot&&!g.initial.stored&&await h(e,g.initial.snapshot,v);let t=[e.discussions.subscribeChanges(G),e.threads.subscribeChanges(G)];g.signal.addEventListener(`abort`,()=>{for(let e of t)e.unsubscribe()},{once:!0}),G()});function W(){g.signal.aborted||g.onChange()}function G(){let e=k&&D(k,v,O);e&&(C=e,A=!0,P=Date.now(),F++,H(),W())}function K(e,t,n,r){return _(e,g.token,t,n,g.fetcher,r)}async function q(e){await U,O=T(e),await h(k,e,v),G()}async function J(e){await U,O?.add(e.id),await ee(k,e),G()}async function Y(e){await U,O?.delete(e),await u(k.threads,{delete:[e]}),G()}function X(e){return m(e,v)}function Z(){L?.abort(),I++,j=!1;for(let e of R.values())e.abort();R.clear(),z.clear()}async function ne(){if(M)return;Z();let t=new AbortController,n=I;L=t;let r=AbortSignal.any([g.signal,t.signal]);j=!0,W();try{let e=await K(w(v),r,o);!r.aborted&&n===I&&(await q(e),N=``)}catch(t){!r.aborted&&n===I&&(N=t instanceof Error?t.message:e(`app.client.projectComments.couldNotLoadComments`))}finally{n===I&&(j=!1,W())}}async function re(t,n=!1){if(l(t),M||R.has(t)||!n&&z.has(t))return;z.delete(t);let i=C.threads.find(e=>e.id===t);if(!n&&i?.messagesLoaded)return;let a=new AbortController,o=I;R.set(t,a);let s=AbortSignal.any([g.signal,a.signal]);W();try{let n=await K(p.comments.get.href({id:t}),s,r);if(n.id!==t)throw new f(e(`app.client.projectComments.serviceReturnedAnotherDiscussion`));if(!s.aborted&&o===I){if(await J(n),!X(n))throw new f(e(`app.client.projectComments.discussionNoLongerInView`));z.size||(N=``)}}catch(n){if(!s.aborted&&o===I&&n instanceof f&&n.code===`not-found`){await Y(t);return}!s.aborted&&o===I&&(z.add(t),N=n instanceof Error?n.message:e(`app.client.projectComments.couldNotLoadDiscussion`))}finally{R.get(t)===a&&(R.delete(t),W())}}function Q(t){if(M)throw Error(e(`app.client.projectComments.waitForCurrentOperation`));if(!A)throw Error(e(`app.client.projectComments.loadCommentsBeforeSaving`));if(C.connection.state!==`ready`)throw Error(C.connection.message??e(`app.client.projectComments.adapterUnavailable`));if(!C.capabilities[t])throw Error(e(`app.client.projectComments.adapterDoesNotSupportOperation`))}async function $(t,n,i,a,c,l,u){Z(),M=!0,N=``,W();try{let e=async()=>{let e=await K(t,g.signal,i,n);g.signal.throwIfAborted(),await a(e)},r=k;return u&&r?(await d(()=>u(r),e),G()):await e(),s.success(c),C}catch(t){if(!g.signal.aborted&&(N=t instanceof Error?t.message:e(`app.client.projectComments.commentWriteNotConfirmed`),u&&s.error(e(`app.client.projectComments.budUndidCommentChange`),{description:N}),t instanceof f&&t.code===`conflict`))try{if(await q(await K(w(v),g.signal,o)),l){let t=await K(p.comments.get.href({id:l}),g.signal,r);if(t.id!==l)throw new f(e(`app.client.projectComments.serviceReturnedAnotherDiscussion`));await J(t)}}catch{}throw t}finally{M=!1,W()}}return{get snapshot(){return C},get version(){return F},get loaded(){return A},get loading(){return j},get busy(){return M},get error(){return N},get now(){return P},get ready(){return A&&C.connection.state===`ready`},get viewer(){return B},loadingThread:e=>R.has(e),load:ne,loadThread:re,async write(t){Q(t.id?t.status===void 0?`reply`:`status`:`create`);let a,o,s,u=`pending-${crypto.randomUUID()}`;if(t.id){let n=l(t.id),r=C.threads.find(e=>e.id===n);if(!r?.revision)throw Error(e(`app.client.projectComments.reloadDiscussionBeforeSaving`));let d;if(t.status!==void 0)a=p.comments.status.href({id:n}),o={status:t.status,expectedRevision:r.revision},d=c(r,{status:t.status});else{let e={body:t.body??``,parentId:t.parentId??null};a=p.comments.reply.href({id:n}),o={...e,expectedRevision:r.revision},d=i(r,u,e)}s=e=>{e.threads.has(n)&&e.threads.update(n,e=>{e.status=d.status,e.messages=d.messages,e.messageCount=d.messageCount,e.updatedAt=d.updatedAt})}}else{let e={anchor:t.anchor??null,itemIds:t.itemIds??[],body:t.body??``};a=p.comments.create.href(),o=e,s=t=>{O?.add(u),t.threads.insert(n(u,e))}}let d;return{...await $(a,o,r,n=>{if(t.id&&n.id!==t.id)throw new f(e(`app.client.projectComments.refreshBeforeTryingAgain`),409,`uncertain`);return d=n,J(n)},e(`app.client.projectComments.commentSaved`),t.id,s),thread:d}},async remove(n,r){Q(`delete`);let i=l(n),a=C.threads.find(e=>e.id===i);if(!a?.revision)throw Error(e(`app.client.projectComments.reloadDiscussionBeforeSaving`));let o=t(a,r);return $(p.comments.deleteMessage.href({id:i}),{messageId:r,expectedRevision:a.revision},te,t=>{if(!t.thread)return Y(i);if(t.thread.id!==i)throw new f(e(`app.client.projectComments.refreshBeforeTryingAgain`),409,`uncertain`);return J(t.thread)},e(o?`app.client.projectComments.commentDeleted`:`app.client.projectComments.discussionDeleted`),i,e=>{o&&e.threads.has(i)&&e.threads.update(i,e=>{e.messages=o.messages,e.messageCount=o.messageCount})})},async sync(){return Q(`sync`),$(p.comments.sync.href(),{direction:`both`},o,q,e(`app.client.projectComments.commentsSynced`))}}}export{y as i,O as n,C as r,k as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./i18n-hH_Ba5QO.js";import{t}from"./jsx-B4XNFIzB.js";import{t as n}from"./component-DWct-Tq6.js";import{n as r}from"./on-mixin-iWnqUzq5.js";import{n as i}from"./attrs-mixin-CmlG_FtV.js";import{Bt as a,En as o,Fn as s,Lt as c,ht as l,jn as u,w as d}from"./task-design-BPpc4Gd7.js";import{T as f,b as p,v as m,w as h}from"./project-threads-ZbKDh78d.js";import{n as g}from"./tasks-request-BLyOzokZ.js";function _(n){let r=[],a=new Map,c=!0,l=``,u=!1,d=``,m,h;function _(){n.signal.aborted||n.update()}async function v(){m?.abort();let t=new AbortController;m=t;let i=AbortSignal.any([n.signal,t.signal]);c=!0,l=``,_();try{let t=n.props.project.token,c=new URLSearchParams({limit:`1000`,...d.trim()?{search:d.trim()}:{}}),{schema:l,snapshot:f}=await g(p.tasksApi.workspace.href()+`?`+c,t,i,o);if(i.throwIfAborted(),f.connection.state!==`ready`)throw Error(f.connection.message??e(`app.client.projectTaskPicker.adapterUnavailable`));r=f.items.map(e=>{let t=s(e,l,`title`);return{id:e.id,...typeof t==`string`?{title:t}:{}}});for(let e of r)a.set(e.id,e);for(let e of n.props.selected){let t=a.get(e);t&&!r.some(t=>t.id===e)&&r.push(t)}u=f.truncated}catch(t){i.aborted||(l=t instanceof Error?t.message:e(`app.client.projectTaskPicker.loadFailed`))}finally{m===t&&(c=!1,_())}}let y=i(()=>{v()});return n.signal.addEventListener(`abort`,()=>{clearTimeout(h),m?.abort()},{once:!0}),()=>t(`div`,{class:`contents`,mix:y,children:t(f,{items:r,selected:n.props.selected,required:n.props.required,current:n.props.current,loading:c,error:l,truncated:u,onSearch:e=>{d=e,m?.abort(),m=void 0,clearTimeout(h),c=!0,h=setTimeout(()=>{v()},200),_()},onRetry:()=>{v()},onReview:n.props.onReview,onSave:n.props.onSave,onClose:n.props.onClose})})}function v(t,n){if(n.length>100||new Set(n).size!==n.length)throw Error(e(`app.client.threadLinks.selectUpToTasks`,{count:100}));for(let e of n)u({id:e});if(!t.anchor&&!n.length)throw Error(e(`app.client.threadLinks.taskDiscussionNeedsLinkedTask`));let r=new Set(t.itemIds),i=new Set(n),a=[];for(;r.size!==i.size||[...r].some(e=>!i.has(e));){let o=[...r].filter(e=>!i.has(e)).slice(0,r.size-+!t.anchor);if(o.length){a.push({action:`unlink`,itemIds:o});for(let e of o)r.delete(e)}let s=n.filter(e=>!r.has(e)).slice(0,100-r.size);if(s.length){a.push({action:`link`,itemIds:s});for(let e of s)r.add(e)}if(!o.length&&!s.length)throw Error(e(`app.client.threadLinks.couldNotPrepareTaskLinks`))}return a}async function y(t,n,r,i){let o=v(t,n),s=t;for(let t of o){if(i.throwIfAborted(),!s.revision)throw Error(e(`app.client.threadLinks.reviewLatestDiscussionBeforeChangingLinks`));let n=a({itemIds:t.itemIds,expectedRevision:s.revision}),o=c(await r(t.action,n));i.throwIfAborted();let l=new Set(s.itemIds);for(let e of t.itemIds)t.action===`link`?l.add(e):l.delete(e);if(o.id!==s.id||!o.revision||o.itemIds.length!==l.size||o.itemIds.some(e=>!l.has(e))||JSON.stringify(o.anchor)!==JSON.stringify(s.anchor))throw Error(e(`app.client.threadLinks.taskLinkChangeNotConfirmed`));s=o}return s}function b(i){let a=null,o=!1,s=!1,u=!1;function f(){i.signal.aborted||i.update()}async function g(){if(!a)return;let t=await m(p.comments.get.href({id:a.id}),i.props.project.token,i.signal,c);if(t.id!==a.id)throw Error(e(`app.client.projectThreadLinks.anotherDiscussion`));a=t,o=!1,s=!0,f()}function v(){a=null,f(),u&&(u=!1,i.props.onChange())}function b(){a=i.props.thread,o=!1,s=!1,u=!1,f()}return()=>t(n,{children:[i.props.part===`action`?i.props.canLink?t(d,{icon:`tasks`,label:e(`app.client.projectThreadLinks.linkTasks`),size:`small`,tooltip:!0,disabled:i.props.busy,mix:r(`click`,b)}):null:t(h,{itemIds:i.props.thread.itemIds,items:i.props.items??[],href:l,busy:i.props.busy,onEdit:!i.props.part&&i.props.canLink?b:void 0}),a?t(_,{project:i.props.project,selected:a.itemIds,current:s?a.itemIds:void 0,onClose:v,onReview:o?g:void 0,onSave:async t=>{if(!a||o)throw Error(e(`app.client.projectThreadLinks.reviewLinksBeforeSaving`));try{let e=a;a=await y(e,t,(t,n)=>(u=!0,m(p.comments[t].href({id:e.id}),i.props.project.token,i.signal,c,fetch,n)),i.signal),await i.props.onChange(),u=!1}catch(e){throw u&&(o=!0),f(),e}}}):null]})}export{_ as n,b as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{En as e,Pt as t}from"./task-design-BPpc4Gd7.js";import{C as n,b as r,l as i,s as a,x as o,y as s}from"./project-threads-ZbKDh78d.js";import{n as c}from"./tasks-request-BLyOzokZ.js";var l=new Map;function u(u,f=fetch){let p=l.get(u.id);if(p)return p;let m,h,g=null,_=a(u);async function v(){g={items:new Set,schema:!1};try{let t=await c(r.tasksApi.workspace.href(),u.token,new AbortController().signal,e,f),n=await _;return await i(n,t,g),t}finally{g=null}}function y(e){return h??=(m??Promise.resolve()).catch(()=>{}).then(()=>{h=void 0;let e=v();return m=e,e.catch(()=>{}).finally(()=>{m===e&&(m=void 0)}),e}),d(h,e)}function b(){y().catch(()=>{})}async function x(e,r){let i=e.boards.get(`board`);if(!i)return;let a=t(r,i.schema);if(a.type===`reset`)return b();if(g&&(a.type===`schema`?g.schema=!0:g.items.add(a.type===`upsert`?a.item.id:a.id)),a.type===`schema`)return n(e.boards,{upsert:[{...o(i),schema:a.schema,schemaVersion:a.schema.adapter.version}]});await n(e.work,a.type===`upsert`?{upsert:[a.item]}:{delete:[a.id]})}let S=Promise.resolve();s(u.token).subscribe(`work`,{onEvent(e){S=S.then(()=>_).then(t=>x(t,e)).catch(e=>{b()})},onResync(){_.then(e=>e.boards.has(`board`)&&b())}});let C={refresh:y};return l.set(u.id,C),C}function d(e,t){return t?Promise.race([e,new Promise((e,n)=>{t.throwIfAborted(),t.addEventListener(`abort`,()=>n(t.reason),{once:!0})})]):e}export{u as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./i18n-hH_Ba5QO.js";import{t}from"./jsx-B4XNFIzB.js";import{t as n}from"./component-DWct-Tq6.js";import{n as r}from"./on-mixin-iWnqUzq5.js";import{n as i}from"./attrs-mixin-CmlG_FtV.js";import{c as a,l as o}from"./loader-Q6-HPKft.js";import{t as s}from"./screen-Dfvzj6n2.js";import{A as c,An as l,At as u,F as d,Mn as f,Mt as p,Pn as m,f as h,ht as g,jt as _,k as v,kn as y,ut as b,wt as x,xt as S}from"./task-design-BPpc4Gd7.js";import{C,E as w,S as T,V as E,b as D,ct as O,dt as ee,p as k,q as A,s as j,w as M,x as N}from"./project-threads-ZbKDh78d.js";import{n as P,t as F}from"./tasks-request-BLyOzokZ.js";import{t as I}from"./project-work-D4DZqBCZ.js";import{r as L,t as R}from"./project-comments-D1IIQwsW.js";import{n as z,t as B}from"./project-thread-links-DKwe_SYb.js";function te(s){let l=s.props.conversationId,u=l,f=!!l,p=!1,m=!1,h=[s.props.itemId],_=R({store:j(s.props.project),token:s.props.project.token,signal:s.signal,filter:{itemId:s.props.itemId},initial:s.props.initial,onChange(){s.signal.aborted||s.update()}});_.loaded&&(u??=_.snapshot.threads[0]?.id);let y=i(()=>{_.loaded||_.load().then(()=>{u??=_.snapshot.threads[0]?.id,s.signal.aborted||s.update()})});async function b(e){let t=await _.write(e);return await s.props.onChange?.(),t}function x(e){return{project:s.props.project,thread:e,items:s.props.items,canLink:_.snapshot.capabilities.link,busy:_.busy,onChange:async()=>{await _.load(),_.snapshot.threads.some(t=>t.id===e.id)&&await _.loadThread(e.id,!0),await s.props.onChange?.()}}}function S(n){return t(`div`,{class:`flex items-start justify-between gap-2`,children:[s.props.renderThreadLinks?s.props.renderThreadLinks(n):t(B,{part:n.anchor?`links`:void 0,...x(n)}),!n.anchor&&_.snapshot.capabilities.reply&&_.snapshot.threads.length>1?t(a,{variant:`ghost`,size:`small`,disabled:_.busy,"aria-pressed":!p&&u===n.id,mix:r(`click`,()=>{u=n.id,f=!0,p=!1,s.update()}),children:e(`app.client.taskDiscussion.reply`)}):null]})}function C(n){return t(A,{location:n.anchor?O(n):e(`app.client.taskDiscussion.discussion`),actions:s.props.renderThreadLinks?void 0:t(B,{part:`action`,...x(n)}),status:n.status,busy:_.busy,onStatusChange:_.snapshot.capabilities.status?e=>{b({id:n.id,status:e}).catch(()=>{})}:void 0})}return()=>{l!==s.props.conversationId&&(l=s.props.conversationId,f=!!l,l&&(u=l,p=!1));let{threads:i,capabilities:x}=_.snapshot,T=p?void 0:i.find(e=>e.id===u&&!e.anchor)??(f?void 0:i.find(e=>!e.anchor&&e.status!==`resolved`)??(x.create?void 0:i.find(e=>!e.anchor))),E=!p&&(f&&(!T||!x.reply)||!(!T||T.messagesLoaded));_.ready&&!_.busy&&!_.loading&&s.queueTask(()=>{f&&u&&_.loadThread(u);for(let e of _.snapshot.threads)!e.messagesLoaded&&(!e.anchor||e.id===u)&&_.loadThread(e.id)});let D=i.reduce((e,t)=>e+t.messageCount,0);return t(`section`,{class:`flex min-w-0 flex-col gap-3`,"aria-label":e(`app.client.taskDiscussion.taskDiscussion`),mix:y,children:[t(`div`,{class:`flex items-center gap-2`,children:[t(o,{as:`h3`,variant:`ui`,weight:`medium`,children:e(`app.client.taskDiscussion.discussion`)}),D?t(o,{variant:`ui-caption`,tone:`muted`,children:D}):null,_.ready&&x.create&&i.length?t(a,{variant:`ghost`,size:`small`,class:`ms-auto`,disabled:_.busy||p,mix:r(`click`,()=>{p=!0,s.update()}),children:e(`app.client.taskDiscussion.newDiscussion`)}):null]}),_.error?t(`div`,{class:`flex flex-col items-start gap-2`,children:[t(o,{variant:`ui-caption`,role:`alert`,children:_.error}),t(a,{variant:`secondary`,size:`small`,mix:r(`click`,()=>{_.load().then(()=>u?_.loadThread(u,!0):void 0)}),children:e(`app.client.taskDiscussion.reloadComments`)})]}):null,_.loaded?_.ready?t(n,{children:[i.length?i.map(e=>e.anchor?t(c,{id:e.id,expanded:u===e.id,heading:C(e),messages:e.messages,messageCount:e.messageCount,now:_.now,onExpand:()=>{u=e.id,f=!1,_.loadThread(e.id),s.update()},renderDetail:()=>t(v,{heading:C(e),messages:e.messages,messageCount:e.messageCount,messagesLoaded:e.messagesLoaded,messagesTruncated:e.messagesTruncated,now:_.now,busy:_.busy,links:S(e),onReply:x.reply?(t,n)=>b({id:e.id,body:t,parentId:n}):void 0,viewerId:_.viewer?.id,onDelete:x.delete?async t=>{let n=e.messages[0]?.id===t;await _.remove(e.id,t),n&&u===e.id&&(u=void 0),s.update()}:void 0})},e.id):t(w,{thread:e,links:S(e)},e.id)):t(o,{variant:`ui-caption`,tone:`muted`,children:e(`app.client.taskDiscussion.noDiscussionYet`)}),x.create||x.reply&&(f||i.some(e=>!e.anchor))?t(`div`,{class:`flex min-w-0 flex-col gap-2`,children:[x.create&&(p||!f&&!i.length)?t(`div`,{class:`flex items-start justify-between gap-2`,"aria-label":e(`app.client.taskDiscussion.newDiscussionTasks`),children:[t(M,{itemIds:h,items:s.props.items??[],href:g,busy:_.busy,onEdit:x.link?()=>{m=!0,s.update()}:void 0}),p?t(a,{variant:`ghost`,size:`small`,disabled:_.busy,mix:r(`click`,()=>{p=!1,s.update()}),children:e(`app.client.taskDiscussion.cancel`)}):null]}):i.length>1?t(o,{variant:`ui-caption`,tone:`muted`,children:e(`app.client.taskDiscussion.replyingTo`,{name:T?.messages[0]?.author.name??e(`app.client.taskDiscussion.theDiscussion`)})}):null,t(d,{label:e(`app.client.taskDiscussion.addTaskComment`),placeholder:e(`app.client.taskDiscussion.addContextPlaceholder`),busy:_.busy||E,class:`w-full`,onSubmit:async t=>{if(E)throw Error(e(`app.client.taskDiscussion.loadBeforeReplying`));T&&x.reply?await b({id:T.id,body:t}):(u=(await b({anchor:null,itemIds:h,body:t})).thread.id,f=!!u,p=!1,h=[s.props.itemId],s.update())}},`task-composer`)]}):null]}):t(o,{variant:`ui-caption`,tone:`muted`,children:e(`app.client.taskDiscussion.commentsUnavailable`)}):t(o,{variant:`ui-caption`,tone:`muted`,role:`status`,children:e(`app.client.taskDiscussion.loadingDiscussion`)}),m?t(z,{project:s.props.project,selected:h,required:[s.props.itemId],onSave:async e=>{h=e,s.update()},onClose:()=>{m=!1,s.update()}}):null]})}}function ne(e,t){return e.revision===null?Object.entries(e.values).some(([e,n])=>JSON.stringify(n)!==JSON.stringify(t.values[e])):e.revision!==t.revision}async function V(t,n,r,i,a){let[o,s,c]=await Promise.all([P(D.tasksApi.show.href({id:n}),t,i,e=>e),L(t,n,i,a),r]),u=l(o,c);if(u.item.id!==n)throw Error(e(`app.client.projectTasks.differentTaskRefresh`));return{detail:u,discussion:s}}async function H(t,n,r,i){let a=await j(t),o=k(a),s=o?Promise.resolve(o):I(t).refresh(n),c=r?b(r):null,l=e=>V(t.token,c,e,n,i),u=``,d=c?l(s.then(e=>e.schema)).catch(e=>{if(!o||e instanceof F)throw e;return l(I(t).refresh(n).then(e=>e.schema))}).catch(t=>(u=t instanceof Error?t.message:e(`app.client.projectTasks.couldNotLoadTask`),null)):null;try{await s;let e=await d;return{store:a,stored:!!o,error:``,task:e,taskError:u}}catch(t){return n.throwIfAborted(),{store:a,stored:!1,error:t instanceof Error?t.message:e(`app.client.projectTasks.couldNotLoadTasks`)}}}function U(n){let r=n.props.project,a=n.props.initial.store,o=I(r),s=k(a),c=()=>{let e=s?.snapshot.schemaVersion;s=k(a);let t=w?a.work.get(w.item.id):void 0;(t&&!t.$hasPendingWrites&&ne(N(t),w.item)||!w&&j&&s?.snapshot.schemaVersion!==e)&&$(),Z()},d=[a.boards.subscribeChanges(c),a.work.subscribeChanges(c)],v=b(n.props.href),S=n.props.initial.task,w=S?.detail.item.id===v?S.detail:null,O=w?S.discussion:void 0,A=!1,j=n.props.initial.task?``:n.props.initial.taskError??``,M=v!==null&&!w&&!j,F=n.props.initial.error,L=null,R=null,z=new Set,B=n.props.href,H,U=!1,W=!1;function re(e){let t=e?a.work.get(e.item.id):void 0;if(!e||!t?.$hasPendingWrites)return e;let n={...e.item.values,...N(t).values};return{...e,item:{...e.item,values:n}}}function G(){if(!s)throw Error(e(`app.client.projectTasks.refreshBeforeChanges`));return s.schema}async function K(e,t,i){let a=new AbortController;z.add(a);try{return await P(e,r.token,AbortSignal.any([n.signal,a.signal]),i,fetch,{body:t})}finally{z.delete(a)}}async function ie(e){await C(a.work,{upsert:[e]}),w?.item.id===e.id&&(w={...w,item:e}),Z()}async function q(){await Q(),v&&await $()}let J=new Map;async function Y(t,r,i,a){let o=a?J.get(a):void 0,s=Promise.withResolvers();a&&J.set(a,s.promise);try{let n=await T(i,async()=>{let n=await o,i=`expectedRevision`in r?r.expectedRevision:void 0,c=await K(t,n&&i===n.from&&n.to?{...r,expectedRevision:n.to}:r,e=>f(e,G()));if(a&&c.item.id!==a)throw Error(e(`app.client.projectTasks.differentTaskRefreshRetry`));return await ie(c.item),s.resolve(i?{from:i,to:c.item.revision}:null),c.item});return v&&await $(),n}catch(t){throw s.resolve(null),n.signal.aborted||h.error(e(`app.client.projectTasks.undidTaskChange`),{description:t instanceof Error?t.message:e(`app.client.projectTasks.writeNotConfirmed`)}),q(),t}finally{a&&J.get(a)===s.promise&&J.delete(a)}}function X(e,t){return()=>{let n=a.work.get(e);if(!n)return;let{values:r}=t(N(n));a.work.update(e,e=>{e.values=r})}}let ae={create:e=>Y(D.tasksApi.create.href(),e,()=>{a.work.insert(_(G(),`pending-${crypto.randomUUID()}`,e))}),update:(e,t)=>Y(D.tasksApi.update.href({id:e}),t,X(e,e=>p(e,t)),e),act:(e,t)=>Y(D.tasksApi.mutate.href({id:e}),t,X(e,e=>u(G(),e,t)),e),get:async t=>{let i=await P(D.tasksApi.show.href({id:t}),r.token,n.signal,e=>l(e,G()));if(i.item.id!==t)throw Error(e(`app.client.projectTasks.differentTaskRefresh`));return i.item},section:(e,t,i=n.signal)=>P(D.tasksApi.section.href({id:e,section:t}),r.token,AbortSignal.any([n.signal,i]),e=>y(e,G())),sync:async e=>{try{let t=await K(D.tasksApi.sync.href(),e,m);return await q(),t}catch(e){throw q(),e}}};function Z(){n.signal.aborted||n.update()}async function Q(){L?.abort();let t=new AbortController;L=t,A=!0,F=``,Z();try{await o.refresh(AbortSignal.any([n.signal,t.signal]))}catch(r){!t.signal.aborted&&!n.signal.aborted&&(F=r instanceof Error?r.message:e(`app.client.projectTasks.couldNotLoadTasks`))}finally{L===t&&(A=!1,Z())}}async function $(){if(R?.abort(),!v){w=null,M=!1,j=``,Z();return}let t=v,i=new AbortController;R=i;let a=w?.item.id!==t;a&&(w=null),M=!0,j=``,Z();try{let o=AbortSignal.any([n.signal,i.signal]);if(a){let e=await V(r.token,t,G(),o,n.props.conversationId);if(i.signal.aborted||t!==v)return;w=e.detail,O=e.discussion;return}let s=await P(D.tasksApi.show.href({id:t}),r.token,o,e=>l(e,G()));if(i.signal.aborted||t!==v)return;if(s.item.id!==t)throw Error(e(`app.client.projectTasks.differentTaskRefresh`));w=s}catch(r){!i.signal.aborted&&!n.signal.aborted&&t===v&&(j=r instanceof Error?r.message:e(`app.client.projectTasks.couldNotLoadTask`))}finally{R===i&&(M=!1,Z())}}function oe(e,t=!0){e!==v&&(v=e,t&&se(!1),$(),Z())}function se(e){let t=g(null);if(!n.props.active||!ee(window.location.href)&&window.location.pathname!==t&&!window.location.pathname.startsWith(`${t}/`)){U=!0;return}U=!1;let r=g(v);window.location.pathname+window.location.search+window.location.hash!==r&&(H=new URL(r,window.location.origin).href,window.history[e?`replaceState`:`pushState`]({...window.history.state,budTask:v},``,r))}let ce=i((e,t)=>{W=!0;let r=v;v=b(n.props.href),w?.item.id!==v&&!(j&&r===v)&&$(),n.props.initial.stored&&Q(),t.addEventListener(`abort`,()=>{for(let e of d)e.unsubscribe();L?.abort(),R?.abort();for(let e of z)e.abort()},{once:!0})});return()=>{if(W&&B!==n.props.href){if(B=n.props.href,H!==B){U=!1;let e=b(B);e!==v&&n.queueTask(()=>oe(e,!1))}H=void 0}U&&n.props.active&&n.queueTask(()=>se(!0));let e=s,i=e?.snapshot.items.map(t=>({id:t.id,title:x(t,e.schema,`title`)||void 0}));return t(`div`,{class:`h-full min-h-0`,mix:ce,children:t(E,{projectName:r.name,project:{id:r.id,name:r.name},design:n.props.design,storageKey:`bud:tasks:${r.id}:v1`,snapshot:e?.snapshot??null,schema:e?.schema??null,loading:A,error:F,selectedId:v,detail:re(w),discussion:w?t(te,{project:r,itemId:w.item.id,initial:O,items:i,conversationId:n.props.conversationId,onChange:q},w.item.id):void 0,detailLoading:M,detailError:j,operations:ae,onSelect:oe,onReload:()=>{Q()},onReloadDetail:()=>{$()}})})}}var W=s({routes:S,load:({project:e,signal:t,url:n,conversation:r})=>H(e,t,n.href,r?.id),render:(e,{project:n,url:r,active:i,taskDesign:a,conversation:o})=>t(U,{project:n,initial:e,design:a,href:r.href,active:i,conversationId:o?.id})});export{W as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./i18n-hH_Ba5QO.js";import{Ct as t,Nn as n,jn as r}from"./task-design-BPpc4Gd7.js";import{b as i}from"./project-threads-ZbKDh78d.js";var a=t(),o=t();for(let[e,t]of Object.entries(i.tasksApi))(t.method===`GET`?a:o).add(t.pattern,e);function s(e,t){if(!e.startsWith(`/`)||e.startsWith(`//`)||e.length>7e3||/[\\#\u0000-\u0020]/.test(e))return!1;try{let i=(t?o:a).match(e,{baseURL:`http://bud.invalid`});if(!i||i.url.pathname!==e.split(`?`)[0])return!1;for(let[e,t]of Object.entries(i.params))(e===`id`||e===`section`)&&r({id:t});if(i.data!==`index`&&i.data!==`workspace`)return!i.url.search;let s={};for(let[e,t]of i.url.searchParams){if(![`search`,`status`,`limit`].includes(e)||Object.hasOwn(s,e))return!1;s[e]=e===`limit`?Number(t):t}return n(s),!0}catch{return!1}}async function c(t,n,r,i,a=fetch,o){if(!s(t,!!o))throw Error(e(`app.client.tasksRequest.invalidEndpoint`));r.throwIfAborted();let c=await a(t,{method:o?`POST`:`GET`,headers:{"X-Bud-Token":n,...o?{"Content-Type":`application/json`}:{}},...o?{body:JSON.stringify(o.body)}:{},credentials:`same-origin`,redirect:`error`,cache:`no-store`,signal:r}),u=c.body?.getReader();if(!u)throw Error(e(`app.client.tasksRequest.emptyResponse`));let d=[],f=0;try{for(;;){r.throwIfAborted();let t=await u.read();if(t.done)break;if(f+=t.value.byteLength,f>4194304)throw Error(e(`app.client.tasksRequest.responseTooLarge`));d.push(t.value)}}catch(e){throw await u.cancel().catch(()=>{}),e}finally{u.releaseLock()}let p=new Uint8Array(f),m=0;for(let e of d)p.set(e,m),m+=e.byteLength;let h;try{h=JSON.parse(new TextDecoder(`utf-8`,{fatal:!0}).decode(p))}catch{throw Error(e(`app.client.tasksRequest.invalidResponse`))}if(!c.ok){let t=h&&typeof h==`object`&&`error`in h&&typeof h.error==`string`?h.error.slice(0,1e3):e(`app.client.tasksRequest.loadFailed`),n=h&&typeof h==`object`&&`code`in h&&typeof h.code==`string`&&/^[a-z][a-z-]{0,63}$/.test(h.code)?h.code:`request`,r;if(h&&typeof h==`object`&&`currentRevision`in h){let t=h.currentRevision;if(t!==null&&(typeof t!=`string`||!t.trim()||t.length>256||t.includes(`\0`)))throw Error(e(`app.client.tasksRequest.invalidConflictResponse`));r=t}throw new l(t,n,r)}return i(h)}var l=class extends Error{code;currentRevision;constructor(e,t,n){super(e),this.name=`TaskRequestError`,this.code=t,this.currentRevision=n}};export{c as n,l as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pages-BVd6MQmu.js","assets/i18n-hH_Ba5QO.js","assets/jsx-B4XNFIzB.js","assets/component-DWct-Tq6.js","assets/on-mixin-iWnqUzq5.js","assets/children-N0l0v7XI.js","assets/attrs-mixin-CmlG_FtV.js","assets/create-element--E6NJ0nh.js","assets/loader-Q6-HPKft.js","assets/screen-Dfvzj6n2.js","assets/task-design-BPpc4Gd7.js","assets/rolldown-runtime-XKyaHtl9.js","assets/method-DybmO5PB.js","assets/project-threads-ZbKDh78d.js","assets/frame-D6XmK4Df.js","assets/preload-helper-BLdHbfdN.js","assets/cloneFileDiffMetadata-CWfw01dG.js","assets/workspace-tab-Bg2MFdMB.js","assets/project-comments-D1IIQwsW.js","assets/project-branches-CMGRmrqr.js","assets/canvas-8GXJIuDK.js","assets/project-thread-links-DKwe_SYb.js","assets/tasks-request-BLyOzokZ.js","assets/tasks-Cn0VOZ9Z.js","assets/project-work-D4DZqBCZ.js","assets/files-DkWt1l9H.js","assets/lru-DzKYIXMA.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./i18n-hH_Ba5QO.js";import{t}from"./jsx-B4XNFIzB.js";import{n}from"./on-mixin-iWnqUzq5.js";import{n as r}from"./run-B2H4brp5.js";import{n as i}from"./attrs-mixin-CmlG_FtV.js";import{t as a}from"./preload-helper-BLdHbfdN.js";import{c as o,i as s,l as c,o as l,r as u,t as ee}from"./loader-Q6-HPKft.js";import{$n as d,Ct as f,Gn as p,Hn as m,Jn as h,Kn as g,Lt as _,Qn as v,Un as y,Wn as b,er as x,nr as S,nt as C,qn as w,rr as T,zt as E}from"./task-design-BPpc4Gd7.js";import{$ as te,At as ne,Dt as re,J as D,Ot as O,Q as k,X as ie,Y as ae,Z as A,b as j,dt as M,et as N,jt as oe,kt as se,nt as ce,ot as P,rt as le,t as F,tt as ue,v as de,y as fe}from"./project-threads-ZbKDh78d.js";import{d as pe}from"./method-DybmO5PB.js";import{t as me}from"./project-work-D4DZqBCZ.js";import{n as he}from"./workspace-tab-Bg2MFdMB.js";function ge(e){let n=`connecting`,r=i((t,r)=>{let{project:i}=e.props;me(i),F(i);let a=fe(i.token);n=a.status;let o=a.watchStatus(t=>{n=t,e.update()});r.addEventListener(`abort`,o,{once:!0}),e.update()});return()=>t(`span`,{class:`contents`,mix:r,children:t(O,{status:n})})}var I=new WeakMap;function L(e,t){let n=S(e,t,{abortEarly:!0});if(n.success)return n.value;let r=n.issues[0];throw I.get(r)??Error(r.message)}function R(e,t){return p((n,r)=>{let i=e[`~run`](n,r);return i.issues?h(t,r.path):i})}function z(e,t){return p((n,r)=>{let i=e[`~run`](n,r);if(i.issues)return i;let a=t(i.value);return a===void 0?i:h(a,r.path)})}function B(e,t){return p((n,r)=>{let i=e[`~run`](n,r);if(i.issues)return i;try{return{value:t(i.value)}}catch(e){if(!(e instanceof Error))throw e;let t=h(e.message,r.path);return I.set(t.issues[0],e),t}})}function _e(e){return p((t,n)=>e(t)[`~run`](t,n))}function V(e,t){return p((n,r)=>n==null?{value:t()}:e[`~run`](n,r))}function H(e,t){let n=d(t);return p((r,i)=>{if(!r||typeof r!=`object`||Array.isArray(r))return h(`${e} must be an object.`,i.path);for(let n of Object.keys(r))if(!Object.hasOwn(t,n))return h(`${e}.${n} is not a supported setting.`,[...i.path,n]);return n[`~run`](r,i)})}function ve(e,t,n=0){let r=y(e);return p((e,i)=>!Array.isArray(e)||e.length<n?h(t,i.path):r[`~run`](e,i))}var ye=g(H(`files`,{edit:V(R(b(),`files.edit must be true or false.`),()=>!0)}),()=>({edit:!0})),U=`flows must be [{ id, title, start, script, steps: [{ id, title }], block? }] with short ids, local paths and unique steps.`,be=e=>typeof e==`string`&&/^[a-z0-9][a-z0-9-]{0,62}$/.test(e),W=e=>typeof e==`string`&&e.trim()!==``&&e.length<=200;function xe(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let{id:t,title:n,start:r,script:i,steps:a,block:o=[]}=e;if(!be(t)||!W(n)||!W(i)||i.includes(`\0`)||typeof r!=`string`||!r.startsWith(`/`)||r.startsWith(`//`)||new URL(r,`http://bud.invalid`).origin!==`http://bud.invalid`||!Array.isArray(a)||!a.length||a.length>50)return null;let s=a.map(e=>{let{id:t,title:n}=e??{};return be(t)&&W(n)?{id:t,title:n.trim()}:null});if(s.some(e=>!e))return null;let c=s.map(e=>e.id);return new Set(c).size!==c.length||!Array.isArray(o)||o.some(e=>!W(e))?null:{id:t,title:n.trim(),start:r,script:i.trim(),steps:s,block:o}}var Se=p((e,t)=>{if(e===void 0)return{value:[]};if(!Array.isArray(e))return h(U,t.path);let n=e.map(xe);if(n.some(e=>!e))return h(U,t.path);let r=n.map(e=>e.id);return new Set(r).size===r.length?{value:n}:h(U,t.path)});function Ce(e,t){return{id:`${e.id}/${t.id}`,path:`${e.start.replace(/#.*$/,``)}#${e.id}-${t.id}`,title:t.title,group:e.title,flow:{id:e.id,step:t.id}}}var we=Object.freeze({".svg":`image/svg+xml`,".png":`image/png`,".webp":`image/webp`,".jpg":`image/jpeg`,".jpeg":`image/jpeg`,".gif":`image/gif`,".ico":`image/x-icon`}),Te=`logo must be an image path inside the project (.svg, .png, .webp, .jpg, .gif or .ico), or { light, dark }.`;function Ee(e){if(typeof e!=`string`||e.length>1024||e.includes(`\0`))return null;let t=e.trim().replaceAll(`\\`,`/`);if(!t||t.startsWith(`/`)||/^[a-z]:/i.test(t)||t.split(`/`).includes(`..`))return null;let n=t.slice(t.lastIndexOf(`.`)).toLowerCase();return Object.hasOwn(we,n)?t:null}var De=p((e,t)=>{if(e===void 0)return{value:null};let n=Ee(typeof e==`object`&&e?e.light:e),r=typeof e==`object`&&e?e.dark:void 0,i=r===void 0?null:Ee(r),a=typeof e==`object`&&e?Object.keys(e):[];return n&&(r===void 0||i)&&a.every(e=>e===`light`||e===`dark`)?{value:{light:n,dark:i}}:h(Te,t.path)}),Oe=Object.freeze(`background.shell.main.canvas.panel.board.editor.editor-tabs.foreground.muted.primary.primary-hover.primary-foreground.border.tab-divider.hover.selected.control.control-active.control-selected.card.menu.menu-hover.card-frame.card-surface.card-border.card-frame-border.card-badge.overlay-shadow.tooltip.board-control.board-control-hover.board-card.control-elevation.board-elevation.board-card-elevation.card-elevation.board-card-lift.frame-control.modal-elevation.segment-elevation.control-open-elevation.board-segment.scrollbar.focus.scrollbar-hover.tooltip-border.tooltip-shadow`.split(`.`)),ke=`theme must be { light, dark }, each mapping Bud's tokens (${Oe.slice(0,3).join(`, `)}, …) to CSS colors or shadows.`;function Ae(e){if(typeof e!=`string`)return null;let t=e.trim();return!t||t.length>300||!/^[#a-zA-Z0-9(),.%\s/+-]+$/.test(t)||/url\s*\(/i.test(t)?null:t}function je(e){if(e===void 0)return{};if(!e||typeof e!=`object`||Array.isArray(e))return null;let t={};for(let[n,r]of Object.entries(e)){let e=Ae(r);if(!Oe.includes(n)||e===null)return null;t[n]=e}return Object.freeze(t)}var Me=p((e,t)=>{if(e===void 0)return{value:{light:{},dark:{}}};if(!e||typeof e!=`object`||Array.isArray(e))return h(ke,t.path);let{light:n,dark:r,...i}=e,a={light:je(n),dark:je(r)};return Object.keys(i).length||!a.light||!a.dark?h(ke,t.path):{value:{light:a.light,dark:a.dark}}}),G=`branches must be { main?, build?: { install?, build?, serve? } } with a branch name and nonempty shell commands.`;function Ne(e){return typeof e==`string`&&e.length<=255&&/^[A-Za-z0-9._/-]+$/.test(e)&&!e.startsWith(`-`)&&!e.startsWith(`/`)&&!e.endsWith(`/`)&&!e.endsWith(`.lock`)&&!e.includes(`..`)&&!e.includes(`//`)?e:null}function K(e){return typeof e==`string`&&e.trim()&&e.length<=4096&&!e.includes(`\0`)?e.trim():null}var Pe=p((e,t)=>{let n={main:null,install:null,build:null,serve:null};if(e===void 0)return{value:n};if(!e||typeof e!=`object`||Array.isArray(e))return h(G,t.path);let r=e,i=r.build??{};if(!i||typeof i!=`object`||Array.isArray(i)||Object.keys(r).some(e=>e!==`main`&&e!==`build`))return h(G,t.path);let a=i;if(Object.keys(a).some(e=>![`install`,`build`,`serve`].includes(e)))return h(G,t.path);let o={main:r.main===void 0?null:Ne(r.main),install:a.install===void 0?null:K(a.install),build:a.build===void 0?null:K(a.build),serve:a.serve===void 0?null:K(a.serve)};return r.main!==void 0&&!o.main||[`install`,`build`,`serve`].some(e=>a[e]!==void 0&&!o[e])?h(G,t.path):{value:o}});function q(e,t,n){let r=t?/\.server\.ts$/:/\.(?:ts|tsx|js|jsx)$/;return R(T().refine(e=>e.length<=1024&&e.startsWith(`./`)&&!/[\u0000-\u001f\u007f\\?#%]/.test(e)&&r.test(e)&&(t||!/\.server\.[cm]?[jt]sx?$/.test(e))&&!e.slice(2).split(`/`).some(e=>!e||e===`.`||e===`..`||e===`node_modules`)),n??(t?`${e} must be a built-in adapter or a ./ module ending in .server.ts inside the project.`:`${e} must be bud:beads or a ./ browser module ending in .ts, .tsx, .js or .jsx inside the project.`))}var Fe=w([!1,`bud:beads`,`bud:memory`,`bud:git-comments`]);function Ie(e){let t=q(`storage.${e}`,!0);return g(z(_e(e=>e===!1||e===`bud:beads`||e===`bud:memory`||e===`bud:git-comments`?Fe:t),t=>e===`work`&&t===`bud:git-comments`?`storage.work cannot use bud:git-comments; it only stores threads.`:void 0),`bud:beads`)}var Le=g(H(`storage`,{work:Ie(`work`),threads:Ie(`threads`)}),()=>({work:`bud:beads`,threads:`bud:beads`})),Re=g(H(`designs`,{tasks:g(_e(e=>e===`bud:beads`?w([`bud:beads`]):q(`designs.tasks`,!1)),`bud:beads`),pages:g(w([`path`,`title`]),`path`)}),()=>({tasks:`bud:beads`,pages:`path`})),ze=new Set([`bud:dom`,`bud:react`,`bud:react-grab`]),Be=q(`picker`,!1,`picker must be bud:dom, bud:react, bud:react-grab or a ./ browser module ending in .ts, .tsx, .js or .jsx inside the project.`),Ve=p((e,t)=>{if(e===void 0)return{value:{name:`bud:dom`,module:null}};if(typeof e==`string`&&ze.has(e))return{value:{name:e,module:null}};let n=Be[`~run`](e,t);return n.issues?n:{value:{name:n.value,module:n.value}}}),He=`ready must be a CSS selector, { selector } or { expression }.`,J=p((e,t)=>{let n=typeof e==`string`?{selector:e}:e;if(n&&typeof n==`object`&&!Array.isArray(n)){let e=Object.entries(n),[t,r]=e[0]??[];if(e.length===1&&(t===`selector`||t===`expression`)&&typeof r==`string`&&r.trim()&&r.length<=4096)return{value:t===`selector`?{selector:r.trim()}:{expression:r.trim()}}}return h(He,t.path)}),Ue=()=>[`light`,`dark`],We=()=>[{id:`desktop`,name:`Desktop`,width:1440,height:900,mobile:!1}],Y=`previews.viewports must list up to 4 { name, width, height?, mobile? } with distinct names, widths from 240 to 3840 and heights from 240 to 4000.`;function Ge(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,32)}var Ke=p((e,t)=>{if(!Array.isArray(e)||e.length===0||e.length>4)return h(Y,t.path);let n=[];for(let r of e){if(!r||typeof r!=`object`||Array.isArray(r))return h(Y,t.path);let{name:e,width:i,height:a,mobile:o,...s}=r,c=(e,t,n)=>typeof e==`number`&&Number.isInteger(e)&&e>=t&&e<=n;if(Object.keys(s).length||typeof e!=`string`||!e.trim()||e.length>40||!Ge(e)||!c(i,240,3840)||a!==void 0&&!c(a,240,4e3)||o!==void 0&&typeof o!=`boolean`)return h(Y,t.path);let l=o??i<800;n.push({id:Ge(e),name:e.trim(),width:i,height:a??(l?Math.round(i*844/390):900),mobile:l})}return new Set(n.map(e=>e.id)).size===n.length?{value:n}:h(Y,t.path)}),qe=g(H(`previews`,{scale:V(R(v().refine(e=>Number.isInteger(e)&&e>=1&&e<=3),`previews.scale must be 1, 2 or 3.`),()=>2),themes:V(R(y(w([`light`,`dark`])).refine(e=>e.length>0&&new Set(e).size===e.length),`previews.themes must list light, dark or both, once each.`),Ue),viewports:V(Ke,We),ready:V(J,()=>null),readyTimeout:V(R(v().refine(e=>Number.isInteger(e)&&e>=1e3&&e<=6e5),`previews.readyTimeout must be whole milliseconds from 1000 to 600000.`),()=>6e4),css:V(R(T().refine(e=>e.length<=2e4&&!e.includes(`<`)),`previews.css must be CSS text without <, up to 20000 characters.`),()=>``)}),()=>({scale:2,themes:Ue(),viewports:We(),ready:null,readyTimeout:6e4,css:``}));function Je(e,t){let n=[],r=new Set;function i(e,a){if(!e||typeof e!=`object`||Array.isArray(e)||r.has(e))throw Error(`Screen routes must be a Remix route map.`);r.add(e);for(let[r,o]of Object.entries(e)){let e=a?`${a}.${r}`:r;if(!o||typeof o!=`object`)throw Error(`Screen route ${e} must be a Remix route.`);if(!(`pattern`in o)){i(o,e);continue}if(![`GET`,`ANY`].includes(o.method)||typeof o.href!=`function`||typeof o.pattern?.source!=`string`)throw Error(`Screen route ${e} must be a GET route.`);let s=pe.parse(o.pattern.source),c=s.toJSON(),l=`/${c.pathname}`;if(c.protocol||c.hostname||c.port||c.pathname.split(`/`).some(e=>/^\.{1,2}$/.test(decodeURIComponent(e)))||l!==t&&!l.startsWith(`${t}/`)&&!l.startsWith(`${t}(/`))throw Error(`Screen route ${e} must stay under ${t}.`);n.push({name:e,pattern:s.source})}r.delete(e)}if(i(e,``),!n.length)throw Error(`Screen routes must contain at least one route.`);return n}function Ye(){return{id:`pages`,label:`Pages`,icon:`browser`,path:`/pages`,module:`bud:pages`}}function Xe(){return{id:`canvas`,label:`Canvas`,icon:`grid`,path:`/canvas`,module:`bud:canvas`}}function Ze(){return{id:`tasks`,label:`Tasks`,icon:`tasks`,path:`/tasks`,module:`bud:tasks`}}function Qe(){return{id:`files`,label:`Files`,icon:`files`,path:`/files`,module:`bud:files`}}var X=[Ye(),Xe(),Ze(),Qe()],$e=new Map(X.map(e=>[e.module,e])),et=[`/comments`,...X.map(e=>e.path),`/api`,`/health`,`/__bud`,`/assets`,`/app`,`/src`,`/node_modules`,`/agents`,`/brand`,`/fonts`,`/frameworks`,`/licenses`],tt=z(R(m().refine(e=>!!e&&typeof e==`object`),`Each screen must be an object.`),({id:e,label:t,icon:n=`layers`,module:r,path:i})=>{if(typeof e!=`string`||!/^[a-z][a-z0-9-]{0,31}$/.test(e))return`Screen ids are 1-32 lowercase letters, digits and hyphens.`;if(typeof t!=`string`||!t.trim())return`Screen ${e} needs a label.`;if(typeof n!=`string`||!n)return`Screen ${e} needs an icon name.`;if(typeof r!=`string`)return`Screen ${e} needs a module.`;let a=$e.get(r);if(i??=a?.path??`/${e}`,a)return e!==a.id||i!==a.path?`${r} keeps id "${a.id}" and path "${a.path}".`:void 0;if(!/^\.\/[^\0\\]+\.(?:ts|tsx|js|jsx)$/.test(r))return`Screen ${e} must be a ./ module ending in .ts, .tsx, .js or .jsx.`;if(typeof i!=`string`||!/^\/[a-z0-9][a-z0-9-]*$/.test(i))return`Screen ${e} needs one static path segment, such as /${e}.`;if(X.some(t=>t.id===e))return`Screen id "${e}" is reserved for a built-in screen.`;if(et.includes(i))return`Bud reserves the path ${i}.`}),nt=g(B(R(y(m()).refine(e=>e.length>0),`screens must list at least one screen.`),e=>{let t=new Set,n=new Set;return e.map(e=>{let r=L(tt,e),{id:i,label:a,icon:o=`layers`,module:s}=r,c=r.path??$e.get(s)?.path??`/${i}`;if(t.has(i)||n.has(c))throw Error(`Screen ids and paths must be unique.`);return t.add(i),n.add(c),r.routes!==void 0&&Je(r.routes,c),{id:i,label:a,icon:o,path:c,module:s,...r.routes===void 0?{}:{routes:r.routes}}})}),()=>X.map(e=>({...e}))),rt=e=>!!e&&typeof e==`object`;function Z(e,t){let n=d(t);return p((t,r)=>rt(t)?n[`~run`](Array.isArray(t)?{...t}:t,r):h(e,r.path))}var it=z(Z(`Bud config must export an object.`,{routes:R(y(m()).refine(e=>e.length>0),`bud.config must define at least one route.`),name:x(R(T().refine(e=>!!e.trim()),`name must be a nonempty string.`)),target:x(Z(`target must be an object.`,{origin:m(),port:m()})),comments:x(Z(`comments must be an object.`,{remote:m()})),port:m(),screens:m(),storage:m(),designs:m(),previews:m(),files:m(),logo:m(),theme:m(),locale:m(),picker:m(),branches:m(),flows:m()}),({target:e})=>{if(e?.port===0)return`target.port must be a listening port, not zero.`;if(e?.origin!==void 0&&(typeof e.origin!=`string`||!e.origin.trim()))return`target.origin must be an HTTP(S) origin.`}),at=z(m().transform(e=>typeof e==`string`?{path:e,title:e===`/`?`Home`:e}:e),e=>{if(!e||typeof e.path!=`string`||!e.path.startsWith(`/`)||e.path.startsWith(`//`))return`Canvas routes must be local paths beginning with a single /.`;if(new URL(e.path,`http://bud.invalid`).origin!==`http://bud.invalid`||e.path.includes(`\\`))return`Canvas routes must stay on the target origin.`;let t=e.id??Q(e.path);if(typeof t!=`string`||!t.trim())return`Canvas route IDs and paths must be unique.`;if(typeof e.title!=`string`||!e.title.trim())return`Each route needs a title.`;if(e.pattern!==void 0&&(typeof e.pattern!=`string`||!e.pattern.startsWith(`/`)))return`A route pattern must be a path beginning with /.`;if(e.group!==void 0&&(typeof e.group!=`string`||!e.group.trim()||e.group.length>120))return`A route group must be a short name.`;if(e.ready!==void 0&&e.ready!==!1&&!S(J,e.ready).success)return`A route ready must be false, a CSS selector, { selector } or { expression }.`}).transform(e=>{let t=Q(e.path);return{id:e.id??t,path:t,title:e.title,...e.pattern===void 0?{}:{pattern:e.pattern},...e.group===void 0?{}:{group:e.group.trim()},...e.ready===void 0?{}:{ready:e.ready===!1?null:L(J,e.ready)}}});function Q(e){let t=new URL(e,`http://bud.invalid`),n=t.searchParams.toString();return`${t.pathname}${n?`?${n}`:``}${t.hash}`}var ot=z(ve(at,`bud.config must define at least one route.`,1),e=>new Set(e.map(e=>e.id)).size!==e.length||new Set(e.map(e=>e.path)).size!==e.length?`Canvas route IDs and paths must be unique.`:void 0),st=e=>e===void 0||Number.isInteger(e)&&e>=0&&e<=65535,ct=e=>typeof e==`string`&&/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(e);B(z(B(z(z(B(z(B(it,e=>({...e,routes:L(ot,e.routes)})),({port:e,target:t})=>st(e??0)&&st(t?.port)?void 0:`Ports must be integers between 0 and 65535.`),({target:e,...t})=>{let n=e?.origin??(e?.port?`http://127.0.0.1:${e.port}`:void 0);return{...t,targetOrigin:n&<(n,`target.origin must be an HTTP(S) origin without a path or credentials.`)}}),({locale:e})=>e===void 0||e===`en`||e===`de`?void 0:`locale must be "en" or "de".`),({comments:e})=>ct(e?.remote??`origin`)?void 0:`comments.remote must be a Git remote name.`),e=>{let t=L(Se,e.flows),n=t.flatMap(e=>e.steps.map(t=>Ce(e,t))),r=e.routes.findIndex(e=>e.path===`/`)+1;return{...e,flows:t,routes:[...e.routes.slice(0,r),...n,...e.routes.slice(r)]}}),({routes:e})=>new Set(e.map(e=>e.id)).size!==e.length||new Set(e.map(e=>e.path)).size!==e.length?`A flow step must not reuse a route’s id or path.`:void 0),e=>({name:e.name??`Your project`,routes:e.routes,flows:e.flows,port:e.port??0,targetOrigin:e.targetOrigin,remote:e.comments?.remote??`origin`,screens:L(nt,e.screens),storage:L(Le,e.storage),designs:L(Re,e.designs),previews:L(qe,e.previews),files:L(ye,e.files),logo:L(De,e.logo),theme:L(Me,e.theme),locale:e.locale===void 0?`en`:e.locale,picker:L(Ve,e.picker),branches:L(Pe,e.branches)}));function lt(e,t){let n=new URL(e);if(![`http:`,`https:`].includes(n.protocol)||n.username||n.password||n.pathname!==`/`||n.search||n.hash)throw Error(t);return n.origin}function $(e,t){let n=f();for(let t of e)n.add(t.pattern,t.name);let r=n.match(t,{baseURL:`http://bud.invalid`});return r?{route:r.data,params:r.params}:null}function ut(e,t){let n=e?$(Je(e,t.path),t.url):{route:null,params:{}};if(!n)throw Error(`No screen route matches ${t.url.pathname}.`);return{...t,...n}}var dt={"bud:pages":()=>a(()=>import(`./pages-BVd6MQmu.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])),"bud:canvas":()=>a(()=>import(`./canvas-8GXJIuDK.js`),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22])),"bud:tasks":()=>a(()=>import(`./tasks-Cn0VOZ9Z.js`),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,22,24,18,21])),"bud:files":()=>a(()=>import(`./files-DkWt1l9H.js`),__vite__mapDeps([25,11,1,2,6,4,3,5,7,15,8,9,10,12,16,13,14,26,18,21,22]))};function ft(e){return Object.hasOwn(dt,e)?dt[e]():a(()=>import(e),[])}async function pt(e,t,n=ft){let r=(await n(e)).default;if(typeof r?.render!=`function`)throw Error(`A screen module must export defineScreen({ render }) as its default.`);let i=await r.load?.(ut(r.routes,t));return t.signal.throwIfAborted(),{screen:r,data:i}}async function mt(e,t,n=e=>a(()=>import(e),[])){if(t.throwIfAborted(),!e)return;if(`error`in e)throw Error(e.error);let r=await n(e.url);return t.throwIfAborted(),C(r.default)}function ht(r){let a,d=``;async function f(){let{module:t,project:n,label:i}=r.props;a=void 0,d=``,r.update();let{location:o}=r.props,s={project:n,signal:r.signal,path:o.path,url:new URL(o.href,window.location.origin),active:r.props.active,conversation:o.conversation,route:null,params:{}};try{if(`error`in t)throw Error(t.error);s.taskDesign=await mt(r.props.taskDesign,r.signal),a={...await pt(t.url,s),context:s}}catch(t){if(r.signal.aborted)return;console.error(t),d=t instanceof Error&&t.message?t.message:e(`app.client.screenHost.couldNotOpen`,{label:i})}r.update()}let p=i(()=>{f()});return()=>{let{label:i,module:m,location:h}=r.props,g=a?.context,_=``;if(a&&g)try{if(h.routes&&!$(h.routes,h.href))throw Error(e(`app.client.screenHost.noRouteMatches`,{href:h.href}));g=ut(a.screen.routes,{...g,active:r.props.active,conversation:h.conversation,url:new URL(h.href,g.url.origin)})}catch(t){_=t instanceof Error?t.message:e(`app.client.screenHost.invalidRoute`)}return t(`div`,{class:`h-full min-h-0`,mix:p,children:_?t(`div`,{class:`p-3 md:p-4`,children:t(c,{role:`alert`,children:_})}):a&&g?a.screen.render(a.data,g):d?t(`div`,{class:`h-full overflow-y-auto p-3 md:p-4`,children:t(u,{class:`max-w-2xl`,role:`alert`,children:[t(l,{title:e(`app.client.screenHost.didntOpen`,{label:i}),subtitle:d}),t(s,{class:`flex-col items-start gap-3`,children:[t(c,{as:`p`,variant:`ui`,tone:`muted`,children:e(`app.client.screenHost.fixAndRetry`)}),t(o,{mix:n(`click`,()=>{`error`in m||r.props.taskDesign&&`error`in r.props.taskDesign?window.location.reload():f()}),children:e(`app.client.screenHost.retry`)})]})]})}):t(ee,{label:e(`app.client.screenHost.loading`,{label:i})})})}}async function gt(t,n,r,i,a=fetch){t=E(t);let o=await de(j.comments.get.href({id:t}),r,i,_,a);if(i.throwIfAborted(),o.id!==t)throw Error(e(`app.client.conversationRoute.anotherDiscussion`));let s=P(o),c=n.find(e=>e.module===s.module);if(!c)throw Error(e(`app.client.conversationRoute.enableOwningScreen`));if(c.routes&&!$(c.routes,s.href))throw Error(e(`app.client.conversationRoute.locationUnavailable`));return{active:c.id,module:{url:c.module},location:{path:c.path,href:s.href,...c.routes?{routes:c.routes}:{},conversation:{id:t,original:s.original}}}}function _t(a){let d=new Map,f=a.props,p=``,m=a.props.conversation,h,g=!!m,_=``,v=!1;function y(){a.signal.aborted||a.update()}async function b(t){if(m!==t)return;h?.abort();let n=new AbortController;h=n;let r=AbortSignal.any([a.signal,n.signal]);g=!0,_=``,y();try{let n=a.props.project;if(!n)throw Error(e(`app.client.workspace.connectProjectToOpenDiscussion`));let i=await gt(t,a.props.conversationTargets??[],n.token,r);!r.aborted&&m===t&&(f=i,x.set(i.active,window.location.pathname))}catch(t){r.aborted||(_=t instanceof Error?t.message:e(`app.client.workspace.couldNotOpenDiscussion`))}finally{h===n&&!r.aborted&&(g=!1,y())}}let x=new Map,S,C,w=()=>`bud:tabs:${a.props.project?.id}:v1`,T=()=>`${window.location.pathname}${window.location.search}${window.location.hash}`;function E(e){S=e,oe(w(),e);let t=a.props.project;t&&(document.cookie=`${ue(t.id)}=${ce(e)}; Path=/; Max-Age=31536000; SameSite=Strict`),y()}function O(){if(!S)return;let e=T();C===e?C=void 0:N(D(S))!==e&&E(le(S,e))}function P(e){let t=N(D(e));E(e),t!==T()&&(C=t,r(t,{history:`replace`,resetScroll:!1}))}function F(t){let{pathname:n}=new URL(t,`http://bud.local`);if(M(t))return{href:t,title:e(`app.client.workspace.discussion`),icon:`message`};let r=a.props.screens.map(e=>({item:e,root:new URL(e.href,`http://bud.local`).pathname})).filter(({root:e})=>e===`/`||n===e||n.startsWith(`${e}/`)).sort((e,t)=>t.root.length-e.root.length)[0],i=r?.item??a.props.screens[0];if(i.id===`pages`&&r&&n.startsWith(`${r.root}/`)){let e=n.slice(r.root.length);return{href:t,title:a.props.project?.routes.find(t=>t.path===e)?.title??e,icon:i.icon}}let o=(r&&r.root!==`/`?n.slice(r.root.length):n).split(`/`).filter(Boolean).at(-1);return{href:t,title:(o&&r?.root!==`/`?decodeURIComponent(o):void 0)??i.label,icon:i.icon}}let de=i((e,t)=>{v=!0,m&&b(m);function n(){let{pathname:e,search:t,hash:n}=window.location,r=`${e}${t}${n}`,i=M(r);if(i)return i!==m&&(m=i,b(i)),f.location.conversation?.id===i&&x.set(f.active,r),!0;let a=d.get(f.active);if(!a)return!1;let o=a.location.path;return e!==o&&(o===`/`||!e.startsWith(`${o}/`))?!1:(h?.abort(),m=void 0,g=!1,_=``,x.set(f.active,r),a.location={...a.location,href:r,conversation:void 0},f={...f,location:a.location},!0)}n(),a.props.project&&E(k(ne(w()),T(),crypto.randomUUID())),a.update(),window.addEventListener(`click`,e=>{if(!S||!(e.metaKey||e.ctrlKey)||e.shiftKey||e.button!==0)return;let t=e.target?.closest?.(`a[href]`);if(!(t instanceof HTMLAnchorElement)||t.target||t.hasAttribute(`download`))return;let n=new URL(t.href);n.origin!==window.location.origin||n.pathname.startsWith(`/api/`)||(e.preventDefault(),e.stopPropagation(),E(A(S,`${n.pathname}${n.search}${n.hash}`,crypto.randomUUID(),!1)))},{capture:!0,signal:t}),window.addEventListener(`popstate`,()=>{!n()&&!window.navigation?.currentEntry?.getState()&&r(window.location.href,{history:`replace`,resetScroll:!1}),window.navigation||O(),a.update()},{signal:t}),window.navigation?.addEventListener(`navigate`,n,{signal:t}),window.navigation?.addEventListener(`currententrychange`,()=>{n(),O(),a.update()},{signal:t}),window.navigation?.addEventListener(`navigatesuccess`,()=>{n(),a.update()},{signal:t})});return()=>{let{screens:i,project:y,taskDesign:w}=a.props,T=JSON.stringify([a.props.active,a.props.location.href,a.props.conversation]);if(p!==T){if(p=T,m=a.props.conversation,h?.abort(),_=``,g=!!m,m){let e=m;v&&a.queueTask(()=>{b(e)})}else f=a.props}let{active:E,module:ne,location:O}=f,k=i.find(e=>e.id===E)??i[0];y&&!g&&!_&&d.set(k.id,{module:ne,location:O,taskDesign:k.id===`tasks`?w:void 0});let M=S??a.props.initialTabs??(y?ie(O.href,`current`):void 0);M&&a.queueTask(()=>he(M.active));let oe=i.map(e=>e.id===k.id?e:{...e,href:x.get(e.id)??e.href});return t(se,{items:oe,activeId:k.id,title:k.label,canvas:!!y,logo:y?.logo?{light:j.logo.href({theme:`light`}),dark:y.logo.dark?j.logo.href({theme:`dark`}):void 0,label:y.name}:void 0,status:y?t(ge,{project:y}):void 0,tabs:y&&M?t(re,{tabs:M.tabs.map(e=>({id:e.id,...F(N(e))})),active:M.active,recent:D(M).recent.filter(e=>e!==N(D(M))).map(F),canBack:D(M).index>0,canForward:D(M).index<D(M).entries.length-1,onSelect:e=>P({...M,active:e}),onClose:e=>P(ae(M,e)),onBack:()=>P(te(M,-1)),onForward:()=>P(te(M,1)),onNew:()=>P(A(M,i[0]?.href??`/`,crypto.randomUUID(),!0)),onOpen:e=>{C=void 0,r(e)}}):void 0,children:y?t(`div`,{class:`h-full min-h-0`,mix:de,children:[g?t(ee,{label:e(`app.client.workspace.openingDiscussion`)}):_?t(`div`,{class:`p-3 md:p-4`,children:t(u,{class:`max-w-2xl`,role:`alert`,children:[t(l,{title:e(`app.client.workspace.discussionDidntOpen`),subtitle:_}),t(s,{children:t(o,{mix:n(`click`,()=>{m&&b(m)}),children:e(`app.client.workspace.retry`)})})]})}):null,[...d].map(([e,{module:n,taskDesign:r,location:a}])=>t(`div`,{class:`h-full min-h-0`,hidden:g||!!_||e!==k.id,children:t(ht,{label:i.find(t=>t.id===e)?.label??e,module:n,taskDesign:r,project:y,location:a,active:!g&&!_&&e===k.id})},`${e}:${y.token}`))]}):t(u,{class:`max-w-2xl`,children:[t(l,{title:e(`app.client.workspace.yourProjectSideBySide`),subtitle:e(`app.client.workspace.openBudBesideLocalProject`)}),t(s,{children:t(c,{as:`p`,variant:`ui`,children:e(`app.client.workspace.startProjectWithBudVitePlugin`)})})]})})}}export{_t as Workspace};
|