foss-design 0.9.14 → 0.9.15

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.
@@ -1,2 +1,2 @@
1
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{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-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-duration:initial;--tw-ease:initial}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"IBM Plex Sans", system-ui, sans-serif;--default-mono-font-family:"IBM Plex Mono", ui-monospace, monospace;--color-ink:var(--ink);--shadow-pop:var(--shadow-pop);--shadow-frame:var(--shadow-frame)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-text-size-adjust:100%;overscroll-behavior:none;font-size:14px;line-height:1.45}body{min-height:100dvh;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex;overflow:clip}button{font:inherit}:focus-visible{outline:2px solid var(--action);outline-offset:2px}:where(.overflow-y-auto,.overflow-auto,.overflow-hidden) :focus-visible{outline-offset:-2px}::selection{background:var(--action-soft)}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar) padding-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover)}::-webkit-scrollbar-button{display:none}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.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-4{inset:calc(var(--spacing) * 4)}.inset-x-0{inset-inline:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.inset-x-5{inset-inline:calc(var(--spacing) * 5)}.inset-x-6{inset-inline:calc(var(--spacing) * 6)}.inset-y-5{inset-block:calc(var(--spacing) * 5)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-\[2px\]{top:2px}.top-\[52px\]{top:52px}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-\[76px\]{bottom:76px}.bottom-full{bottom:100%}.left-0{left:0}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-\[2px\]{left:2px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.m-0{margin:0}.m-2{margin:calc(var(--spacing) * 2)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-auto{margin-block:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-px{margin-top:1px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-\[7px\]{width:7px;height:7px}.size-\[12px\]{width:12px;height:12px}.size-\[14px\]{width:14px;height:14px}.size-\[92px\]{width:92px;height:92px}.size-full{width:100%;height:100%}.h-ctrl{height:32px}@media (max-width:767px){.h-ctrl{height:40px}}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-\[2px\]{height:2px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[30px\]{height:30px}.h-\[44px\]{height:44px}.h-\[46px\]{height:46px}.h-\[52px\]{height:52px}.h-\[54px\]{height:54px}.h-\[60px\]{height:60px}.h-\[88px\]{height:88px}.h-\[112px\]{height:112px}.h-\[132px\]{height:132px}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[82dvh\]{max-height:82dvh}.max-h-\[90dvh\]{max-height:90dvh}.max-h-\[96px\]{max-height:96px}.max-h-\[640px\]{max-height:640px}.max-h-\[calc\(100dvh-52px\)\]{max-height:calc(100dvh - 52px)}.max-h-\[min\(56vh\,520px\)\]{max-height:min(56vh,520px)}.max-h-\[min\(296px\,var\(--radix-popover-content-available-height\)\)\]{max-height:min(296px, var(--radix-popover-content-available-height))}.max-h-\[min\(560px\,76vh\)\]{max-height:min(560px,76vh)}.min-h-0{min-height:0}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-\[38px\]{min-height:38px}.min-h-\[44px\]{min-height:44px}.min-h-\[46px\]{min-height:46px}.min-h-\[48px\]{min-height:48px}.min-h-\[50vh\]{min-height:50vh}.min-h-full{min-height:100%}.w-ctrl{width:32px}@media (max-width:767px){.w-ctrl{width:40px}}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-\[26px\]{width:26px}.w-\[32px\]{width:32px}.w-\[38\%\]{width:38%}.w-\[44px\]{width:44px}.w-\[62\%\]{width:62%}.w-\[86px\]{width:86px}.w-\[92px\]{width:92px}.w-\[108px\]{width:108px}.w-\[220px\]{width:220px}.w-\[264px\]{width:264px}.w-\[300px\]{width:300px}.w-\[320px\]{width:320px}.w-\[460px\]{width:460px}.w-\[480px\]{width:480px}.w-\[560px\]{width:560px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\[80\%\]{max-width:80%}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[400px\]{max-width:400px}.max-w-\[760px\]{max-width:760px}.max-w-\[1100px\]{max-width:1100px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1440px\]{max-width:1440px}.max-w-\[calc\(100\%-24px\)\]{max-width:calc(100% - 24px)}.max-w-\[calc\(100vw-24px\)\]{max-width:calc(100vw - 24px)}.max-w-\[min\(420px\,calc\(100vw-32px\)\)\]{max-width:min(420px,100vw - 32px)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\[3ch\]{min-width:3ch}.min-w-\[18px\]{min-width:18px}.min-w-\[52px\]{min-width:52px}.min-w-\[56px\]{min-width:56px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-\[1_1_auto\]{flex:auto}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.shrink-\[20\]{flex-shrink:20}.grow{flex-grow:1}.basis-0{flex-basis:0}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[q-fade-in_160ms_ease-out\]{animation:.16s ease-out q-fade-in}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-\[28px_minmax\(0\,1fr\)_28px\]{grid-template-columns:28px minmax(0,1fr) 28px}.grid-cols-\[92px_minmax\(0\,1fr\)\]{grid-template-columns:92px minmax(0,1fr)}.grid-cols-\[minmax\(var\(--dock-left\,0px\)\,1fr\)_minmax\(0\,auto\)_minmax\(var\(--dock-right\,0px\)\,1fr\)\]{grid-template-columns:minmax(var(--dock-left,0px),1fr) minmax(0,auto) minmax(var(--dock-right,0px),1fr)}.grid-rows-\[20px_auto_20px\]{grid-template-rows:20px auto 20px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.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-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded-\[1px\]{border-radius:1px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:2147483647px}.rounded-t-\[7px\]{border-top-left-radius:7px;border-top-right-radius:7px}.rounded-t-\[14px\]{border-top-left-radius:14px;border-top-right-radius:14px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-action-line{border-color:var(--action-line)}.border-danger,.border-danger\/40{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/40{border-color:color-mix(in oklab, var(--danger) 40%, transparent)}}.border-note-line{border-color:var(--note-line)}.border-primary{border-color:var(--primary)}.border-rule{border-color:var(--rule)}.border-rule-strong{border-color:var(--rule-strong)}.border-transparent{border-color:#0000}.checker{background-color:var(--surface);background-image:linear-gradient(45deg, var(--soft2) 25%, transparent 25%), linear-gradient(-45deg, var(--soft2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--soft2) 75%), linear-gradient(-45deg, transparent 75%, var(--soft2) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.bg-\[\#6fa8dc\]\/25{background-color:#6fa8dc40;background-color:lab(66.4792% -8.4376 -32.6413/.25)}.bg-\[\#93c47d\]\/20{background-color:#93c47d33;background-color:lab(74.3863% -26.5347 30.2911/.2)}.bg-\[\#f6b26b\]\/15{background-color:#f6b26b26;background-color:lab(78.0588% 20.0952 46.1567/.15)}.bg-\[\#f9e27d\]\/15{background-color:#f9e27d26;background-color:lab(90.2485% -1.16244 51.8854/.15)}.bg-action{background-color:var(--action)}.bg-action-soft{background-color:var(--action-soft)}.bg-action\/70{background-color:var(--action)}@supports (color:color-mix(in lab, red, red)){.bg-action\/70{background-color:color-mix(in oklab, var(--action) 70%, transparent)}}.bg-danger{background-color:var(--danger)}.bg-danger-soft{background-color:var(--danger-soft)}.bg-ink{background-color:var(--ink)}.bg-ink2{background-color:var(--ink2)}.bg-note{background-color:var(--note)}.bg-ok-soft{background-color:var(--ok-soft)}.bg-overlay{background-color:var(--overlay)}.bg-primary{background-color:var(--primary)}.bg-rule{background-color:var(--rule)}.bg-rule-strong{background-color:var(--rule-strong)}.bg-soft{background-color:var(--soft)}.bg-soft2{background-color:var(--soft2)}.bg-surface,.bg-surface\/40{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/40{background-color:color-mix(in oklab, var(--surface) 40%, transparent)}}.bg-surface\/80{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/80{background-color:color-mix(in oklab, var(--surface) 80%, transparent)}}.bg-surface\/90{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/90{background-color:color-mix(in oklab, var(--surface) 90%, transparent)}}.bg-track{background-color:var(--track)}.bg-transparent{background-color:#0000}.fill-action{fill:var(--action)}.fill-none{fill:none}.fill-primary{fill:var(--primary)}.fill-primary-ink{fill:var(--primary-ink)}.stroke-ink{stroke:var(--ink)}.stroke-rule{stroke:var(--rule)}.stroke-rule-strong{stroke:var(--rule-strong)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-top{object-position:top}.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-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.px-ctrl{padding-inline:12px}@media (max-width:767px){.px-ctrl{padding-inline:14px}}.px-0{padding-inline:0}.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-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[5px\]{padding-inline:5px}.px-\[10px\]{padding-inline:10px}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[7px\]{padding-block:7px}.py-px{padding-block:1px}.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-6{padding-top:calc(var(--spacing) * 6)}.pt-\[12vh\]{padding-top:12vh}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.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-4{padding-bottom:calc(var(--spacing) * 4)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pb-\[max\(6px\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(6px, env(safe-area-inset-bottom))}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:IBM Plex Mono,ui-monospace,monospace}.text-ctrl{font-size:13.5px}@media (max-width:767px){.text-ctrl{font-size:14px}}.text-\[9\.5px\]{font-size:9.5px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[22px\]{font-size:22px}.text-\[40px\]{font-size:40px}.text-\[52px\]{font-size:52px}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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\.015em\]{--tw-tracking:-.015em;letter-spacing:-.015em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[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}.\!text-ok-text{color:var(--ok-text)!important}.text-action{color:var(--action)}.text-danger-text{color:var(--danger-text)}.text-inherit{color:inherit}.text-ink{color:var(--ink)}.text-ink2{color:var(--ink2)}.text-muted{color:var(--muted)}.text-ok-text{color:var(--ok-text)}.text-on-danger{color:var(--on-danger)}.text-primary-ink{color:var(--primary-ink)}.uppercase{text-transform:uppercase}.tabular{font-variant-numeric:tabular-nums}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-45{opacity:.45}.opacity-60{opacity:.6}.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_1px_2px_rgba\(0\,0\,0\,0\.10\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#00000040);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_1px_3px_rgb\(0_0_0\/0\.08\)\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:inset 0 0 0 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-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.12\)\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_var\(--rule-strong\)\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rule-strong));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-frame{--tw-shadow:var(--shadow-frame);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-pop{--tw-shadow:var(--shadow-pop);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)}.ring-action{--tw-ring-color:var(--action)}.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-surface{--tw-ring-offset-color:var(--surface)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\[1\.5px\]{outline-style:var(--tw-outline-style);outline-width:1.5px}.outline-action,.outline-action\/60{outline-color:var(--action)}@supports (color:color-mix(in lab, red, red)){.outline-action\/60{outline-color:color-mix(in oklab, var(--action) 60%, transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,opacity\,scale\]{transition-property:background-color,opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,scale\]{transition-property:color,background-color,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[flex-grow\]{transition-property:flex-grow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;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-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}.ease-\[cubic-bezier\(0\.2\,0\.7\,0\.2\,1\)\]{--tw-ease:cubic-bezier(.2,.7,.2,1);transition-timing-function:cubic-bezier(.2,.7,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted::placeholder{color:var(--muted)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.focus-within\:outline-offset-2:focus-within{outline-offset:2px}.focus-within\:outline-action:focus-within{outline-color:var(--action)}@media (hover:hover){.hover\:grow-\[1\.6\]:hover{flex-grow:1.6}.hover\:border-rule:hover{border-color:var(--rule)}.hover\:border-rule-strong:hover{border-color:var(--rule-strong)}.hover\:bg-soft:hover{background-color:var(--soft)}.hover\:bg-soft2:hover{background-color:var(--soft2)}.hover\:text-ink:hover{color:var(--ink)}.hover\:text-ink2:hover{color:var(--ink2)}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.active\:scale-\[0\.94\]:active{scale:.94}.active\:bg-soft2:active{background-color:var(--soft2)}.active\:not-disabled\:scale-\[0\.94\]:active:not(:disabled){scale:.94}.active\:not-disabled\:scale-\[0\.97\]:active:not(:disabled){scale:.97}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.aria-disabled\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.aria-disabled\:opacity-45[aria-disabled=true]{opacity:.45}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-soft[data-highlighted]{background-color:var(--soft)}.data-\[state\=closed\]\:animate-\[q-pop-out_100ms_ease-in_forwards\][data-state=closed]{animation:.1s ease-in forwards q-pop-out}.data-\[state\=delayed-open\]\:animate-\[q-pop_120ms_ease-out\][data-state=delayed-open],.data-\[state\=open\]\:animate-\[q-pop_120ms_ease-out\][data-state=open]{animation:.12s ease-out q-pop}@media not all and (min-width:80rem){.max-xl\:grid-cols-1\!{grid-template-columns:repeat(1,minmax(0,1fr))!important}}@media not all and (min-width:64rem){.max-lg\:static{position:static}.max-lg\:hidden{display:none}.max-lg\:max-h-none{max-height:none}.max-lg\:w-auto\!{width:auto!important}.max-lg\:grid-cols-1\!{grid-template-columns:repeat(1,minmax(0,1fr))!important}.max-lg\:gap-0{gap:0}.max-lg\:gap-1{gap:var(--spacing)}.max-lg\:overflow-visible{overflow:visible}.max-lg\:pb-0{padding-bottom:0}}@media not all and (min-width:48rem){.max-md\:flex{display:flex}.max-md\:hidden{display:none}.max-md\:w-ctrl\!{width:32px!important}@media (max-width:767px){.max-md\:w-ctrl\!{width:40px!important}}.max-md\:flex-col{flex-direction:column}.max-md\:items-stretch{align-items:stretch}.max-md\:justify-center{justify-content:center}.max-md\:gap-3{gap:calc(var(--spacing) * 3)}.max-md\:border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.max-md\:bg-transparent\!{background-color:#0000!important}.max-md\:p-0\!{padding:0!important}.max-md\:px-4{padding-inline:calc(var(--spacing) * 4)}.max-md\:pt-4{padding-top:calc(var(--spacing) * 4)}}.dark\:shadow-\[inset_0_0_0_1px_rgba\(255\,255\,255\,0\.12\)\]:where([data-theme=dark],[data-theme=dark] *){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,#ffffff1f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media not all and (min-width:64rem){.max-lg\:\[\&_nav\]\:flex-row nav{flex-direction:row}.max-lg\:\[\&_nav\]\:flex-wrap nav{flex-wrap:wrap}}.\[\&\>\:not\(\:first-child\)\]\:shrink-0>:not(:first-child){flex-shrink:0}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(./ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(./ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(./ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(./ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(./ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#edeff2;--surface:#fff;--soft:#f5f6f8;--soft2:#e8ebef;--ink:#1b1f24;--ink2:#3a414a;--muted:#59626d;--rule:#dce0e5;--rule-strong:#b5bcc5;--action:#a55700;--action-soft:#fbebd6;--action-line:#edcb9c;--ok:#1f7045;--ok-text:#1f7045;--ok-soft:#e2f1e8;--danger:#b42318;--danger-text:#b42318;--danger-soft:#fce8e6;--on-danger:#fff;--primary:#1b1f24;--primary-ink:#fff;--track:#d6dae0;--overlay:#1b1f2466;--shadow-pop:0 16px 40px #1b1f2429;--shadow-frame:0 1px 2px #1b1f240f, 0 8px 24px #1b1f240f;--grid-dot:#c9ced5;--note:#fdf3e3;--note-line:#edd6b1;--draw-ink:#1b1f24;--draw-red:#e03131;--draw-blue:#1971c2;--draw-green:#2b8a3e;--scrollbar:#c3c9d0;--scrollbar-hover:#9aa2ac;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#141619;--surface:#1b1e22;--soft:#202328;--soft2:#2a2e34;--ink:#e6e8eb;--ink2:#c3c8ce;--muted:#8a929c;--rule:#2a2e34;--rule-strong:#474d55;--action:#f0a040;--action-soft:#35280f;--action-line:#6b4a17;--ok:#58bd86;--ok-text:#6ccb97;--ok-soft:#183024;--danger:#e5645a;--danger-text:#f28b82;--danger-soft:#3a1d1a;--on-danger:#1a0b09;--primary:#e6e8eb;--primary-ink:#141619;--track:#2a2e34;--overlay:#0000008c;--shadow-pop:0 16px 40px #00000080;--shadow-frame:0 1px 2px #0000004d, 0 8px 24px #00000040;--grid-dot:#30343a;--note:#2a2415;--note-line:#574420;--draw-ink:#e6e8eb;--draw-red:#ff6b6b;--draw-blue:#4dabf7;--draw-green:#51cf66;--scrollbar:#3a3f46;--scrollbar-hover:#565d66;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@keyframes q-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}@keyframes q-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-2px)scale(.98)}}@keyframes q-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.prose{color:var(--ink2);overflow-wrap:anywhere;font-size:14px;line-height:1.6}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--ink);margin:1.6em 0 .5em;font-weight:600;line-height:1.3}.prose h1{letter-spacing:-.01em;font-size:22px}.prose h2{font-size:17px}.prose h3{font-size:15px}.prose p,.prose ul,.prose ol,.prose pre,.prose table,.prose blockquote{margin:0 0 .9em}.prose ul,.prose ol{padding-left:1.3em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.25em}.prose li::marker{color:var(--muted)}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);-webkit-text-decoration-color:var(--rule-strong);-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:3px}.prose a:hover{-webkit-text-decoration-color:var(--ink2);-webkit-text-decoration-color:var(--ink2);-webkit-text-decoration-color:var(--ink2);text-decoration-color:var(--ink2)}.prose code{font-family:var(--font-mono);background:var(--soft2);border-radius:4px;padding:.1em .35em;font-size:.9em}.prose pre{background:var(--soft);border:1px solid var(--rule);border-radius:8px;padding:12px 14px;font-size:12.5px;line-height:1.55;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--rule-strong);color:var(--muted);padding-left:12px}.prose hr{border:0;border-top:1px solid var(--rule);margin:1.5em 0}.prose table{border-collapse:collapse;width:100%;font-size:13px}.prose th,.prose td{border-top:1px solid var(--rule);text-align:left;vertical-align:top;padding:6px 10px 6px 0}.prose th{color:var(--muted);font-weight:500}.prose img{border-radius:6px;max-width:100%}.prose.prose-note{font-size:17px;line-height:1.55}.prose.prose-plain{font-size:20px;line-height:1.5}:root{--sh-class:#7a4a00;--sh-identifier:#1b1f24;--sh-sign:#59626d;--sh-property:#1f5a8a;--sh-entity:#6d3fa0;--sh-jsxliterals:#1b1f24;--sh-string:#1f7045;--sh-keyword:#a55700;--sh-comment:#8d959f}:root[data-theme=dark]{--sh-class:#f0c070;--sh-identifier:#e6e8eb;--sh-sign:#8a929c;--sh-property:#7fb8e6;--sh-entity:#c49cf0;--sh-jsxliterals:#e6e8eb;--sh-string:#6ccb97;--sh-keyword:#f0a040;--sh-comment:#6e7680}.canvas-dots{background-color:var(--bg);background-image:radial-gradient(circle, var(--grid-dot) 1px, transparent 1.2px)}.canvas-root{background-color:var(--bg)}@keyframes target-ripple{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ripple-color,var(--action)) 70%, transparent), 0 0 0 0 transparent}20%{box-shadow:0 0 0 8px color-mix(in srgb, var(--ripple-color,var(--action)) 32%, transparent), 0 0 0 0 color-mix(in srgb, var(--ripple-color,var(--action)) 55%, transparent)}45%{box-shadow:0 0 0 16px transparent, 0 0 0 8px color-mix(in srgb, var(--ripple-color,var(--action)) 24%, transparent)}60%,to{box-shadow:0 0 0 20px #0000,0 0 0 16px #0000}}.target-ripple{isolation:isolate;animation:2s cubic-bezier(.16,1,.3,1) .16s both target-ripple}@media (prefers-reduced-motion:reduce){.target-ripple{box-shadow:0 0 0 2px var(--ripple-color,var(--action));animation:none}}.canvas-grid{pointer-events:none;background-image:radial-gradient(circle, var(--grid-dot) 1px, transparent 1.2px);will-change:transform;position:absolute;inset:-96px}.canvas-world{transform-origin:0 0;position:absolute;top:0;left:0}.canvas-world.moving{will-change:transform}.canvas-world.far .canvas-section,.canvas-world.small-titles .canvas-section{visibility:hidden}.canvas-overlay .section-title{translate:0 max(-100%, min(0px, calc(var(--body) * var(--z) * 1px - 44px)));padding-bottom:8px;display:none}.canvas-overlay[data-titles=on] .section-title{display:block}.canvas-panning iframe{pointer-events:none}.canvas-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.canvas-overlay [data-at]{transform:translate(calc(var(--x) * var(--z) * 1px + var(--tx) * 1px), calc(var(--y) * var(--z) * 1px + var(--ty) * 1px));position:absolute;top:0;left:0}.canvas-overlay .frame-label{width:calc(var(--w) * var(--z) * 1px);translate:0 -100%;container-type:inline-size}@container (width<=250px){.frame-device{display:none}}.canvas-overlay .frame-outline{width:calc(var(--w) * var(--z) * 1px);height:calc(var(--h) * var(--z) * 1px)}.canvas-overlay[data-tiny=true] .frame-label{display:none}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
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{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-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-duration:initial;--tw-ease:initial}::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-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-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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"IBM Plex Sans", system-ui, sans-serif;--default-mono-font-family:"IBM Plex Mono", ui-monospace, monospace;--color-ink:var(--ink);--shadow-pop:var(--shadow-pop);--shadow-frame:var(--shadow-frame)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-text-size-adjust:100%;overscroll-behavior:none;font-size:14px;line-height:1.45}body{min-height:100dvh;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex;overflow:clip}button{font:inherit}:focus-visible{outline:2px solid var(--action);outline-offset:2px}:where(.overflow-y-auto,.overflow-auto,.overflow-hidden) :focus-visible{outline-offset:-2px}::selection{background:var(--action-soft)}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar) padding-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover)}::-webkit-scrollbar-button{display:none}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.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-4{inset:calc(var(--spacing) * 4)}.inset-x-0{inset-inline:0}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.inset-x-5{inset-inline:calc(var(--spacing) * 5)}.inset-x-6{inset-inline:calc(var(--spacing) * 6)}.inset-y-5{inset-block:calc(var(--spacing) * 5)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-\[2px\]{top:2px}.top-\[52px\]{top:52px}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.bottom-0{bottom:0}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-\[76px\]{bottom:76px}.bottom-full{bottom:100%}.left-0{left:0}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-5{left:calc(var(--spacing) * 5)}.left-\[2px\]{left:2px}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.m-0{margin:0}.m-2{margin:calc(var(--spacing) * 2)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-auto{margin-block:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-px{margin-top:1px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-\[7px\]{width:7px;height:7px}.size-\[12px\]{width:12px;height:12px}.size-\[14px\]{width:14px;height:14px}.size-\[92px\]{width:92px;height:92px}.size-full{width:100%;height:100%}.h-ctrl{height:32px}@media (max-width:767px){.h-ctrl{height:40px}}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-\[2px\]{height:2px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[30px\]{height:30px}.h-\[44px\]{height:44px}.h-\[46px\]{height:46px}.h-\[52px\]{height:52px}.h-\[54px\]{height:54px}.h-\[60px\]{height:60px}.h-\[88px\]{height:88px}.h-\[112px\]{height:112px}.h-\[132px\]{height:132px}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-\[50vh\]{max-height:50vh}.max-h-\[82dvh\]{max-height:82dvh}.max-h-\[90dvh\]{max-height:90dvh}.max-h-\[96px\]{max-height:96px}.max-h-\[640px\]{max-height:640px}.max-h-\[calc\(100dvh-52px\)\]{max-height:calc(100dvh - 52px)}.max-h-\[min\(56vh\,520px\)\]{max-height:min(56vh,520px)}.max-h-\[min\(296px\,var\(--radix-popover-content-available-height\)\)\]{max-height:min(296px, var(--radix-popover-content-available-height))}.max-h-\[min\(560px\,76vh\)\]{max-height:min(560px,76vh)}.min-h-0{min-height:0}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-\[38px\]{min-height:38px}.min-h-\[44px\]{min-height:44px}.min-h-\[46px\]{min-height:46px}.min-h-\[48px\]{min-height:48px}.min-h-\[50vh\]{min-height:50vh}.min-h-full{min-height:100%}.w-ctrl{width:32px}@media (max-width:767px){.w-ctrl{width:40px}}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-\[26px\]{width:26px}.w-\[32px\]{width:32px}.w-\[38\%\]{width:38%}.w-\[44px\]{width:44px}.w-\[62\%\]{width:62%}.w-\[86px\]{width:86px}.w-\[92px\]{width:92px}.w-\[108px\]{width:108px}.w-\[220px\]{width:220px}.w-\[264px\]{width:264px}.w-\[300px\]{width:300px}.w-\[320px\]{width:320px}.w-\[460px\]{width:460px}.w-\[480px\]{width:480px}.w-\[560px\]{width:560px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\[80\%\]{max-width:80%}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[400px\]{max-width:400px}.max-w-\[760px\]{max-width:760px}.max-w-\[1100px\]{max-width:1100px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1440px\]{max-width:1440px}.max-w-\[calc\(100\%-24px\)\]{max-width:calc(100% - 24px)}.max-w-\[calc\(100vw-24px\)\]{max-width:calc(100vw - 24px)}.max-w-\[min\(420px\,calc\(100vw-32px\)\)\]{max-width:min(420px,100vw - 32px)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\[3ch\]{min-width:3ch}.min-w-\[18px\]{min-width:18px}.min-w-\[52px\]{min-width:52px}.min-w-\[56px\]{min-width:56px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-\[1_1_auto\]{flex:auto}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.shrink-\[20\]{flex-shrink:20}.grow{flex-grow:1}.basis-0{flex-basis:0}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[q-fade-in_160ms_ease-out\]{animation:.16s ease-out q-fade-in}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-\[28px_minmax\(0\,1fr\)_28px\]{grid-template-columns:28px minmax(0,1fr) 28px}.grid-cols-\[92px_minmax\(0\,1fr\)\]{grid-template-columns:92px minmax(0,1fr)}.grid-cols-\[minmax\(var\(--dock-left\,0px\)\,1fr\)_minmax\(0\,auto\)_minmax\(var\(--dock-right\,0px\)\,1fr\)\]{grid-template-columns:minmax(var(--dock-left,0px),1fr) minmax(0,auto) minmax(var(--dock-right,0px),1fr)}.grid-rows-\[20px_auto_20px\]{grid-template-rows:20px auto 20px}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.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-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.rounded-\[1px\]{border-radius:1px}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:2147483647px}.rounded-t-\[7px\]{border-top-left-radius:7px;border-top-right-radius:7px}.rounded-t-\[14px\]{border-top-left-radius:14px;border-top-right-radius:14px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-action-line{border-color:var(--action-line)}.border-danger,.border-danger\/40{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/40{border-color:color-mix(in oklab, var(--danger) 40%, transparent)}}.border-note-line{border-color:var(--note-line)}.border-primary{border-color:var(--primary)}.border-rule{border-color:var(--rule)}.border-rule-strong{border-color:var(--rule-strong)}.border-transparent{border-color:#0000}.checker{background-color:var(--surface);background-image:linear-gradient(45deg, var(--soft2) 25%, transparent 25%), linear-gradient(-45deg, var(--soft2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--soft2) 75%), linear-gradient(-45deg, transparent 75%, var(--soft2) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.bg-\[\#6fa8dc\]\/25{background-color:#6fa8dc40;background-color:lab(66.4792% -8.4376 -32.6413/.25)}.bg-\[\#93c47d\]\/20{background-color:#93c47d33;background-color:lab(74.3863% -26.5347 30.2911/.2)}.bg-\[\#f6b26b\]\/15{background-color:#f6b26b26;background-color:lab(78.0588% 20.0952 46.1567/.15)}.bg-\[\#f9e27d\]\/15{background-color:#f9e27d26;background-color:lab(90.2485% -1.16244 51.8854/.15)}.bg-action{background-color:var(--action)}.bg-action-soft{background-color:var(--action-soft)}.bg-action\/70{background-color:var(--action)}@supports (color:color-mix(in lab, red, red)){.bg-action\/70{background-color:color-mix(in oklab, var(--action) 70%, transparent)}}.bg-danger{background-color:var(--danger)}.bg-danger-soft{background-color:var(--danger-soft)}.bg-ink{background-color:var(--ink)}.bg-ink2{background-color:var(--ink2)}.bg-note{background-color:var(--note)}.bg-ok-soft{background-color:var(--ok-soft)}.bg-overlay{background-color:var(--overlay)}.bg-primary{background-color:var(--primary)}.bg-rule{background-color:var(--rule)}.bg-rule-strong{background-color:var(--rule-strong)}.bg-soft{background-color:var(--soft)}.bg-soft2{background-color:var(--soft2)}.bg-surface,.bg-surface\/40{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/40{background-color:color-mix(in oklab, var(--surface) 40%, transparent)}}.bg-surface\/80{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/80{background-color:color-mix(in oklab, var(--surface) 80%, transparent)}}.bg-surface\/90{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/90{background-color:color-mix(in oklab, var(--surface) 90%, transparent)}}.bg-track{background-color:var(--track)}.bg-transparent{background-color:#0000}.fill-action{fill:var(--action)}.fill-none{fill:none}.fill-primary{fill:var(--primary)}.fill-primary-ink{fill:var(--primary-ink)}.stroke-ink{stroke:var(--ink)}.stroke-rule{stroke:var(--rule)}.stroke-rule-strong{stroke:var(--rule-strong)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-top{object-position:top}.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-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.px-ctrl{padding-inline:12px}@media (max-width:767px){.px-ctrl{padding-inline:14px}}.px-0{padding-inline:0}.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-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[5px\]{padding-inline:5px}.px-\[10px\]{padding-inline:10px}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-\[7px\]{padding-block:7px}.py-px{padding-block:1px}.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-6{padding-top:calc(var(--spacing) * 6)}.pt-\[12vh\]{padding-top:12vh}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-6{padding-right:calc(var(--spacing) * 6)}.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-4{padding-bottom:calc(var(--spacing) * 4)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pb-\[max\(6px\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(6px, env(safe-area-inset-bottom))}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:IBM Plex Mono,ui-monospace,monospace}.text-ctrl{font-size:13.5px}@media (max-width:767px){.text-ctrl{font-size:14px}}.text-\[9\.5px\]{font-size:9.5px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14\.5px\]{font-size:14.5px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[22px\]{font-size:22px}.text-\[40px\]{font-size:40px}.text-\[52px\]{font-size:52px}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-\[1\.15\]{--tw-leading:1.15;line-height:1.15}.leading-\[1\.35\]{--tw-leading:1.35;line-height:1.35}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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\.015em\]{--tw-tracking:-.015em;letter-spacing:-.015em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[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}.\!text-ok-text{color:var(--ok-text)!important}.text-action{color:var(--action)}.text-danger-text{color:var(--danger-text)}.text-inherit{color:inherit}.text-ink{color:var(--ink)}.text-ink2{color:var(--ink2)}.text-muted{color:var(--muted)}.text-ok-text{color:var(--ok-text)}.text-on-danger{color:var(--on-danger)}.text-primary-ink{color:var(--primary-ink)}.uppercase{text-transform:uppercase}.tabular{font-variant-numeric:tabular-nums}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-45{opacity:.45}.opacity-60{opacity:.6}.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_1px_2px_rgba\(0\,0\,0\,0\.10\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#00000040);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_1px_3px_rgb\(0_0_0\/0\.08\)\]{--tw-shadow:0 1px 3px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:inset 0 0 0 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-\[inset_0_0_0_1px_rgba\(0\,0\,0\,0\.12\)\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_0_0_1px_var\(--rule-strong\)\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--rule-strong));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-frame{--tw-shadow:var(--shadow-frame);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-pop{--tw-shadow:var(--shadow-pop);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)}.ring-action{--tw-ring-color:var(--action)}.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-surface{--tw-ring-offset-color:var(--surface)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\[1\.5px\]{outline-style:var(--tw-outline-style);outline-width:1.5px}.outline-action,.outline-action\/60{outline-color:var(--action)}@supports (color:color-mix(in lab, red, red)){.outline-action\/60{outline-color:color-mix(in oklab, var(--action) 60%, transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,opacity\,scale\]{transition-property:background-color,opacity,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,background-color\,scale\]{transition-property:color,background-color,scale;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[flex-grow\]{transition-property:flex-grow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;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-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}.ease-\[cubic-bezier\(0\.2\,0\.7\,0\.2\,1\)\]{--tw-ease:cubic-bezier(.2,.7,.2,1);transition-timing-function:cubic-bezier(.2,.7,.2,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted::placeholder{color:var(--muted)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.last\:pr-2:last-child{padding-right:calc(var(--spacing) * 2)}.focus-within\:outline-2:focus-within{outline-style:var(--tw-outline-style);outline-width:2px}.focus-within\:outline-offset-2:focus-within{outline-offset:2px}.focus-within\:outline-action:focus-within{outline-color:var(--action)}@media (hover:hover){.hover\:grow-\[1\.6\]:hover{flex-grow:1.6}.hover\:border-rule:hover{border-color:var(--rule)}.hover\:border-rule-strong:hover{border-color:var(--rule-strong)}.hover\:bg-soft:hover{background-color:var(--soft)}.hover\:bg-soft2:hover{background-color:var(--soft2)}.hover\:text-ink:hover{color:var(--ink)}.hover\:text-ink2:hover{color:var(--ink2)}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.active\:scale-\[0\.94\]:active{scale:.94}.active\:bg-soft2:active{background-color:var(--soft2)}.active\:not-disabled\:scale-\[0\.94\]:active:not(:disabled){scale:.94}.active\:not-disabled\:scale-\[0\.97\]:active:not(:disabled){scale:.97}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.aria-disabled\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.aria-disabled\:opacity-45[aria-disabled=true]{opacity:.45}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[highlighted\]\:bg-soft[data-highlighted]{background-color:var(--soft)}.data-\[state\=closed\]\:animate-\[q-pop-out_100ms_ease-in_forwards\][data-state=closed]{animation:.1s ease-in forwards q-pop-out}.data-\[state\=delayed-open\]\:animate-\[q-pop_120ms_ease-out\][data-state=delayed-open],.data-\[state\=open\]\:animate-\[q-pop_120ms_ease-out\][data-state=open]{animation:.12s ease-out q-pop}@media not all and (min-width:80rem){.max-xl\:grid-cols-1\!{grid-template-columns:repeat(1,minmax(0,1fr))!important}}@media not all and (min-width:64rem){.max-lg\:static{position:static}.max-lg\:hidden{display:none}.max-lg\:max-h-none{max-height:none}.max-lg\:w-auto\!{width:auto!important}.max-lg\:grid-cols-1\!{grid-template-columns:repeat(1,minmax(0,1fr))!important}.max-lg\:gap-0{gap:0}.max-lg\:gap-1{gap:var(--spacing)}.max-lg\:overflow-visible{overflow:visible}.max-lg\:pb-0{padding-bottom:0}}@media not all and (min-width:48rem){.max-md\:flex{display:flex}.max-md\:hidden{display:none}.max-md\:w-ctrl\!{width:32px!important}@media (max-width:767px){.max-md\:w-ctrl\!{width:40px!important}}.max-md\:flex-col{flex-direction:column}.max-md\:items-stretch{align-items:stretch}.max-md\:justify-center{justify-content:center}.max-md\:gap-3{gap:calc(var(--spacing) * 3)}.max-md\:border-0\!{border-style:var(--tw-border-style)!important;border-width:0!important}.max-md\:bg-transparent\!{background-color:#0000!important}.max-md\:p-0\!{padding:0!important}.max-md\:px-4{padding-inline:calc(var(--spacing) * 4)}.max-md\:pt-4{padding-top:calc(var(--spacing) * 4)}}.dark\:shadow-\[inset_0_0_0_1px_rgba\(255\,255\,255\,0\.12\)\]:where([data-theme=dark],[data-theme=dark] *){--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,#ffffff1f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media not all and (min-width:64rem){.max-lg\:\[\&_nav\]\:flex-row nav{flex-direction:row}.max-lg\:\[\&_nav\]\:flex-wrap nav{flex-wrap:wrap}}.\[\&\>\:not\(\:first-child\)\]\:shrink-0>:not(:first-child){flex-shrink:0}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(./ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(./ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(./ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(./ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(./ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(./ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(./ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(./ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(./ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#edeff2;--surface:#fff;--soft:#f5f6f8;--soft2:#e8ebef;--ink:#1b1f24;--ink2:#3a414a;--muted:#59626d;--rule:#dce0e5;--rule-strong:#b5bcc5;--action:#a55700;--action-soft:#fbebd6;--action-line:#edcb9c;--ok:#1f7045;--ok-text:#1f7045;--ok-soft:#e2f1e8;--danger:#b42318;--danger-text:#b42318;--danger-soft:#fce8e6;--on-danger:#fff;--primary:#1b1f24;--primary-ink:#fff;--track:#d6dae0;--overlay:#1b1f2466;--shadow-pop:0 16px 40px #1b1f2429;--shadow-frame:0 1px 2px #1b1f240f, 0 8px 24px #1b1f240f;--grid-dot:#c9ced5;--note:#fdf3e3;--note-line:#edd6b1;--draw-ink:#1b1f24;--draw-red:#e03131;--draw-blue:#1971c2;--draw-green:#2b8a3e;--scrollbar:#c3c9d0;--scrollbar-hover:#9aa2ac;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#141619;--surface:#1b1e22;--soft:#202328;--soft2:#2a2e34;--ink:#e6e8eb;--ink2:#c3c8ce;--muted:#8a929c;--rule:#2a2e34;--rule-strong:#474d55;--action:#f0a040;--action-soft:#35280f;--action-line:#6b4a17;--ok:#58bd86;--ok-text:#6ccb97;--ok-soft:#183024;--danger:#e5645a;--danger-text:#f28b82;--danger-soft:#3a1d1a;--on-danger:#1a0b09;--primary:#e6e8eb;--primary-ink:#141619;--track:#2a2e34;--overlay:#0000008c;--shadow-pop:0 16px 40px #00000080;--shadow-frame:0 1px 2px #0000004d, 0 8px 24px #00000040;--grid-dot:#30343a;--note:#2a2415;--note-line:#574420;--draw-ink:#e6e8eb;--draw-red:#ff6b6b;--draw-blue:#4dabf7;--draw-green:#51cf66;--scrollbar:#3a3f46;--scrollbar-hover:#565d66;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@keyframes q-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}@keyframes q-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-2px)scale(.98)}}@keyframes q-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.prose{color:var(--ink2);overflow-wrap:anywhere;font-size:14px;line-height:1.6}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--ink);margin:1.6em 0 .5em;font-weight:600;line-height:1.3}.prose h1{letter-spacing:-.01em;font-size:22px}.prose h2{font-size:17px}.prose h3{font-size:15px}.prose p,.prose ul,.prose ol,.prose pre,.prose table,.prose blockquote{margin:0 0 .9em}.prose ul,.prose ol{padding-left:1.3em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.25em}.prose li::marker{color:var(--muted)}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule-strong);-webkit-text-decoration-color:var(--rule-strong);-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:3px}.prose a:hover{-webkit-text-decoration-color:var(--ink2);-webkit-text-decoration-color:var(--ink2);-webkit-text-decoration-color:var(--ink2);text-decoration-color:var(--ink2)}.prose code{font-family:var(--font-mono);background:var(--soft2);border-radius:4px;padding:.1em .35em;font-size:.9em}.prose pre{background:var(--soft);border:1px solid var(--rule);border-radius:8px;padding:12px 14px;font-size:12.5px;line-height:1.55;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--rule-strong);color:var(--muted);padding-left:12px}.prose hr{border:0;border-top:1px solid var(--rule);margin:1.5em 0}.prose table{border-collapse:collapse;width:100%;font-size:13px}.prose th,.prose td{border-top:1px solid var(--rule);text-align:left;vertical-align:top;padding:6px 10px 6px 0}.prose th{color:var(--muted);font-weight:500}.prose img{border-radius:6px;max-width:100%}.prose.prose-note{font-size:17px;line-height:1.55}.prose.prose-plain{font-size:20px;line-height:1.5}:root{--sh-class:#7a4a00;--sh-identifier:#1b1f24;--sh-sign:#59626d;--sh-property:#1f5a8a;--sh-entity:#6d3fa0;--sh-jsxliterals:#1b1f24;--sh-string:#1f7045;--sh-keyword:#a55700;--sh-comment:#8d959f}:root[data-theme=dark]{--sh-class:#f0c070;--sh-identifier:#e6e8eb;--sh-sign:#8a929c;--sh-property:#7fb8e6;--sh-entity:#c49cf0;--sh-jsxliterals:#e6e8eb;--sh-string:#6ccb97;--sh-keyword:#f0a040;--sh-comment:#6e7680}.canvas-dots{background-color:var(--bg);background-image:radial-gradient(circle, var(--grid-dot) 1px, transparent 1.2px)}.canvas-root{background-color:var(--bg)}@keyframes target-ripple{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ripple-color,var(--action)) 70%, transparent), 0 0 0 0 transparent}20%{box-shadow:0 0 0 8px color-mix(in srgb, var(--ripple-color,var(--action)) 32%, transparent), 0 0 0 0 color-mix(in srgb, var(--ripple-color,var(--action)) 55%, transparent)}45%{box-shadow:0 0 0 16px transparent, 0 0 0 8px color-mix(in srgb, var(--ripple-color,var(--action)) 24%, transparent)}60%,to{box-shadow:0 0 0 20px #0000,0 0 0 16px #0000}}.target-ripple{isolation:isolate;animation:2s cubic-bezier(.16,1,.3,1) .16s both target-ripple}@media (prefers-reduced-motion:reduce){.target-ripple{box-shadow:0 0 0 2px var(--ripple-color,var(--action));animation:none}}.canvas-grid{pointer-events:none;background-image:radial-gradient(circle, var(--grid-dot) 1px, transparent 1.2px);will-change:transform;position:absolute;inset:-96px}.canvas-world{transform-origin:0 0;position:absolute;top:0;left:0}.canvas-world.moving{will-change:transform}.canvas-world.far .canvas-section,.canvas-world.small-titles .canvas-section{visibility:hidden}.canvas-overlay .section-title{translate:0 max(-100%, min(0px, calc(var(--body) * var(--z) * 1px - 44px)));padding-bottom:8px;display:none}.canvas-overlay[data-titles=on] .section-title{display:block}.canvas-panning iframe{pointer-events:none}.canvas-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.canvas-overlay [data-at]{transform:translate(calc(var(--x) * var(--z) * 1px + var(--tx) * 1px), calc(var(--y) * var(--z) * 1px + var(--ty) * 1px));position:absolute;top:0;left:0}.canvas-overlay .frame-label{width:calc(var(--w) * var(--z) * 1px);translate:0 -100%;container-type:inline-size}@container (width<=250px){.frame-device{display:none}}.canvas-overlay .frame-outline{width:calc(var(--w) * var(--z) * 1px);height:calc(var(--h) * var(--z) * 1px)}.canvas-overlay[data-tiny=true] .frame-label{display:none}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -126,7 +126,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
126
126
  `)),C=new Set(x.current),w=performance.now(),E=e=>!v.has(e)&&w-(S.current.get(e)??0)<jk,D=Ak-[...C].filter(E).length,O=[];for(let e of new Set([...h,...p]))g.has(e)&&(C.has(e)?O.push(e):(h.includes(e)||!m.moving&&D>0)&&(O.push(e),S.current.set(e,w),D--));let k=[...new Set([...O,...x.current])].filter(e=>g.has(e)).slice(0,Tk);x.current=k;for(let e of S.current.keys())k.includes(e)||S.current.delete(e);for(let t of k)e.set(t,O.includes(t)?`live`:`asleep`);return e},[m,b,y,_,a,T,C]);(0,v.useEffect)(()=>{let e=performance.now(),t=new Set(T.split(`
127
127
  `)),n=[...S.current].filter(([e])=>!t.has(e)).map(([,t])=>t+jk-e).filter(e=>e>0);if(!n.length)return;let r=setTimeout(()=>w(e=>e+1),Math.min(...n)+20);return()=>clearTimeout(r)},[E,T]);let D=(0,v.useRef)(null),O=(0,v.useRef)(new Map),k=(0,v.useRef)(null),A=(0,v.useRef)(!1),j=e=>{n.get().panning!==e&&n.set(t=>({...t,panning:e}))};(0,v.useEffect)(()=>{let e=e=>{e.code===`Space`&&!Pk(e.target)&&(A.current=!0,u.current?.classList.add(`cursor-grab`),e.preventDefault())},t=e=>{e.code===`Space`&&(A.current=!1,u.current?.classList.remove(`cursor-grab`))};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,t)}},[]);let M=e=>{let t=e;return(t?.closest(`[data-shield]`))?.dataset.shield??(t?.closest(`[data-label]`))?.dataset.label??(t?.closest(`[data-item]`))?.dataset.item??null},ee=e=>{if(e.target.closest(`[data-ui]`)||e.button!==0&&e.button!==1)return;if(u.current.setPointerCapture(e.pointerId),O.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),r.interrupt(),O.current.size===2){let[e,t]=[...O.current.values()];k.current={dist:Math.hypot(e.x-t.x,e.y-t.y),midX:(e.x+t.x)/2,midY:(e.y+t.y)/2},D.current=null,j(!0);return}let t=e.button===1||A.current;D.current={id:t?null:M(e.target),startX:e.clientX,startY:e.clientY,lastX:e.clientX,lastY:e.clientY,moved:t},t&&j(!0)},N=e=>{if(O.current.has(e.pointerId)&&O.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),k.current&&O.current.size===2){let[e,t]=[...O.current.values()],n=Math.hypot(e.x-t.x,e.y-t.y),i=(e.x+t.x)/2,a=(e.y+t.y)/2,o=u.current.getBoundingClientRect();r.panBy(i-k.current.midX,a-k.current.midY),r.zoomAt(i-o.left,a-o.top,n/Math.max(k.current.dist,1)),k.current={dist:n,midX:i,midY:a};return}let t=D.current;if(!t){if(!n.get().panning){let t=M(e.target);n.get().hovered!==t&&n.set(e=>({...e,hovered:t}))}return}!t.moved&&Math.hypot(e.clientX-t.startX,e.clientY-t.startY)>3&&(t.moved=!0,j(!0)),t.moved&&r.panBy(e.clientX-t.lastX,e.clientY-t.lastY),t.lastX=e.clientX,t.lastY=e.clientY},P=e=>{O.current.delete(e.pointerId),O.current.size<2&&(k.current=null);let t=D.current;D.current=null,t&&!t.moved&&c(t.id,{x:e.clientX,y:e.clientY}),O.current.size||j(!1)};(0,v.useEffect)(()=>{let e=u.current,t=t=>{if(t.target.closest(`[data-ui]`))return;t.preventDefault();let n=e.getBoundingClientRect(),i=t.deltaMode===1?16:t.deltaMode===2?n.height:1;if(t.ctrlKey||t.metaKey){let e=t.deltaY*i,a=Math.abs(e)<40?.012:.0025;r.zoomAt(t.clientX-n.left,t.clientY-n.top,Math.exp(-e*a))}else r.panBy(-t.deltaX*i,-t.deltaY*i)};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[r]);let te=e.sections;return(0,R.jsxs)(`div`,{ref:u,className:J(`canvas-root relative h-full w-full touch-none overflow-clip select-none animate-[q-fade-in_160ms_ease-out]`,g&&`canvas-panning cursor-grabbing`),onPointerDown:ee,onPointerMove:N,onPointerUp:P,onPointerCancel:P,onPointerLeave:()=>n.get().hovered&&n.set(e=>({...e,hovered:null})),onDoubleClick:t=>{let n=M(t.target),r=n?e.items.find(e=>e.item.id===n):void 0;r&&dk(r.item)&&s(r.item.id)},children:[(0,R.jsx)(`div`,{ref:f,className:`canvas-grid`}),(0,R.jsxs)(`div`,{ref:d,className:`canvas-world`,children:[te.map(e=>(0,R.jsx)(ak,{section:e.section,x:e.x,y:e.y,w:e.w,store:n},`section:${e.section.id}`)),e.items.map(e=>{let{item:r}=e;return r.kind===`screen`||r.kind===`url`?(0,R.jsx)(tk,{placed:e,mode:E.get(r.id)??`off`,thumb:!a&&!!m&&e.w*m.z*devicePixelRatio<=Ok,theme:t,store:n,events:i,capture:a},r.id):r.kind===`note`?(0,R.jsx)(rk,{placed:e,store:n},r.id):(0,R.jsx)(ik,{placed:e,store:n},r.id)}),l]}),(0,R.jsx)(Sk,{layout:e,view:m,store:n,overlayRef:p})]})}function Nk(e){return Object.keys(e).filter(t=>e[t].ready).sort().join(`
128
128
  `)}function Pk(e){let t=e;return!!t&&(t.isContentEditable||/^(input|textarea|select)$/i.test(t.tagName))}var{PI:Fk}=Math,Ik=Fk+1e-4,Lk=.5,Rk=[1,1];function zk(e,t,n,r=e=>e){return e*r(.5-t*(.5-n))}var{min:Bk}=Math;function Vk(e,t,n){let r=Bk(1,t/n);return Bk(1,e+(Bk(1,1-r)-e)*(r*.275))}function Hk(e){return[-e[0],-e[1]]}function Uk(e,t){return[e[0]+t[0],e[1]+t[1]]}function Wk(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function Gk(e,t){return[e[0]-t[0],e[1]-t[1]]}function Kk(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function qk(e,t){return[e[0]*t,e[1]*t]}function Jk(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function Yk(e,t){return[e[0]/t,e[1]/t]}function Xk(e){return[e[1],-e[0]]}function Zk(e,t){let n=t[0];return e[0]=t[1],e[1]=-n,e}function Qk(e,t){return e[0]*t[0]+e[1]*t[1]}function $k(e,t){return e[0]===t[0]&&e[1]===t[1]}function eA(e){return Math.hypot(e[0],e[1])}function tA(e,t){let n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function nA(e){return Yk(e,eA(e))}function rA(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function iA(e,t,n){let r=Math.sin(n),i=Math.cos(n),a=e[0]-t[0],o=e[1]-t[1],s=a*i-o*r,c=a*r+o*i;return[s+t[0],c+t[1]]}function aA(e,t,n,r){let i=Math.sin(r),a=Math.cos(r),o=t[0]-n[0],s=t[1]-n[1],c=o*a-s*i,l=o*i+s*a;return e[0]=c+n[0],e[1]=l+n[1],e}function oA(e,t,n){return Uk(e,qk(Gk(t,e),n))}function sA(e,t,n,r){let i=n[0]-t[0],a=n[1]-t[1];return e[0]=t[0]+i*r,e[1]=t[1]+a*r,e}function cA(e,t,n){return Uk(e,qk(t,n))}var lA=[0,0],uA=[0,0],dA=[0,0];function fA(e,t){let n=cA(e,nA(Xk(Gk(e,Uk(e,[1,1])))),-t),r=[],i=1/13;for(let t=i;t<=1;t+=i)r.push(iA(n,e,Ik*2*t));return r}function pA(e,t,n){let r=[],i=1/n;for(let n=i;n<=1;n+=i)r.push(iA(t,e,Ik*n));return r}function mA(e,t,n){let r=Gk(t,n),i=qk(r,.5),a=qk(r,.51);return[Gk(e,i),Gk(e,a),Uk(e,a),Uk(e,i)]}function hA(e,t,n,r){let i=[],a=cA(e,t,n),o=1/r;for(let t=o;t<1;t+=o)i.push(iA(a,e,Ik*3*t));return i}function gA(e,t,n){return[Uk(e,qk(t,n)),Uk(e,qk(t,n*.99)),Gk(e,qk(t,n*.99)),Gk(e,qk(t,n))]}function _A(e,t,n){return e===!1||e===void 0?0:e===!0?Math.max(t,n):e}function vA(e,t,n){return e.slice(0,10).reduce((e,r)=>{let i=r.pressure;return t&&(i=Vk(e,r.distance,n)),(e+i)/2},e[0].pressure)}function yA(e,t={}){let{size:n=16,smoothing:r=.5,thinning:i=.5,simulatePressure:a=!0,easing:o=e=>e,start:s={},end:c={},last:l=!1}=t,{cap:u=!0,easing:d=e=>e*(2-e)}=s,{cap:f=!0,easing:p=e=>--e*e*e+1}=c;if(e.length===0||n<=0)return[];let m=e[e.length-1].runningLength,h=_A(s.taper,n,m),g=_A(c.taper,n,m),_=(n*r)**2,v=[],y=[],b=vA(e,a,n),x=zk(n,i,e[e.length-1].pressure,o),S,C=e[0].vector,w=e[0].point,T=w,E=w,D=T,O=!1;for(let t=0;t<e.length;t++){let{pressure:r}=e[t],{point:s,vector:c,distance:l,runningLength:u}=e[t],f=t===e.length-1;if(!f&&m-u<3)continue;i?(a&&(r=Vk(b,l,n)),x=zk(n,i,r,o)):x=n/2,S===void 0&&(S=x);let k=u<h?d(u/h):1,A=m-u<g?p((m-u)/g):1;x=Math.max(.01,x*Math.min(k,A));let j=(f?e[t]:e[t+1]).vector,M=f?1:Qk(c,j),ee=Qk(c,C)<0&&!O,N=M!==null&&M<0;if(ee||N){Zk(lA,C),Jk(lA,lA,x);for(let e=0;e<=1;e+=.07692307692307693)Kk(uA,s,lA),aA(uA,uA,s,Ik*e),E=[uA[0],uA[1]],v.push(E),Wk(dA,s,lA),aA(dA,dA,s,Ik*-e),D=[dA[0],dA[1]],y.push(D);w=E,T=D,N&&(O=!0);continue}if(O=!1,f){Zk(lA,c),Jk(lA,lA,x),v.push(Gk(s,lA)),y.push(Uk(s,lA));continue}sA(lA,j,c,M),Zk(lA,lA),Jk(lA,lA,x),Kk(uA,s,lA),E=[uA[0],uA[1]],(t<=1||tA(w,E)>_)&&(v.push(E),w=E),Wk(dA,s,lA),D=[dA[0],dA[1]],(t<=1||tA(T,D)>_)&&(y.push(D),T=D),b=r,C=c}let k=[e[0].point[0],e[0].point[1]],A=e.length>1?[e[e.length-1].point[0],e[e.length-1].point[1]]:Uk(e[0].point,[1,1]),j=[],M=[];if(e.length===1){if(!(h||g)||l)return fA(k,S||x)}else{h||g&&e.length===1||(u?j.push(...pA(k,y[0],13)):j.push(...mA(k,v[0],y[0])));let t=Xk(Hk(e[e.length-1].vector));g||h&&e.length===1?M.push(A):f?M.push(...hA(A,t,x,29)):M.push(...gA(A,t,x))}return v.concat(M,y.reverse(),j)}var bA=[0,0];function xA(e){return e!=null&&e>=0}function SA(e,t={}){let{streamline:n=.5,size:r=16,last:i=!1}=t;if(e.length===0)return[];let a=.15+(1-n)*.85,o=Array.isArray(e[0])?e:e.map(({x:e,y:t,pressure:n=Lk})=>[e,t,n]);if(o.length===2){let e=o[1];o=o.slice(0,-1);for(let t=1;t<5;t++)o.push(oA(o[0],e,t/4))}o.length===1&&(o=[...o,[...Uk(o[0],Rk),...o[0].slice(2)]]);let s=[{point:[o[0][0],o[0][1]],pressure:xA(o[0][2])?o[0][2]:.25,vector:[...Rk],distance:0,runningLength:0}],c=!1,l=0,u=s[0],d=o.length-1;for(let e=1;e<o.length;e++){let t=i&&e===d?[o[e][0],o[e][1]]:oA(u.point,o[e],a);if($k(u.point,t))continue;let n=rA(t,u.point);if(l+=n,e<d&&!c){if(l<r)continue;c=!0}Kk(bA,u.point,t),u={point:t,pressure:xA(o[e][2])?o[e][2]:Lk,vector:nA(bA),distance:n,runningLength:l},s.push(u)}return s[0].vector=s[1]?.vector||[0,0],s}function CA(e,t={}){return yA(SA(e,t),t)}var wA={ink:`var(--draw-ink)`,red:`var(--draw-red)`,blue:`var(--draw-blue)`,green:`var(--draw-green)`},TA=e=>Math.round(e*100)/100;function EA(e,t){let n=[];for(let t=0;t+2<e.points.length;t+=3)n.push([e.points[t],e.points[t+1],e.points[t+2]]);let r=CA(n,{size:e.size,thinning:.55,smoothing:.5,streamline:.4,simulatePressure:n.every(e=>e[2]===.5),last:t});if(!r.length)return``;let i=[`M`,TA(r[0][0]),TA(r[0][1]),`Q`];return r.forEach(([e,t],n)=>{let[a,o]=r[(n+1)%r.length];i.push(TA(e),TA(t),TA((e+a)/2),TA((t+o)/2))}),i.push(`Z`),i.join(` `)}function DA([e,t,n,r],i){let a=Math.atan2(r-t,n-e),o=Math.max(10,i*4.5),s=e=>`${TA(n-o*Math.cos(a+e))} ${TA(r-o*Math.sin(a+e))}`;return`M ${TA(e)} ${TA(t)} L ${TA(n)} ${TA(r)} M ${s(.45)} L ${TA(n)} ${TA(r)} L ${s(-.45)}`}var OA=(0,v.memo)(function({stroke:e,done:t=!0}){let n=wA[e.ink],[r=0,i=0,a=0,o=0]=e.points;switch(e.kind){case`pen`:return(0,R.jsx)(`path`,{d:EA(e,t),fill:n});case`arrow`:return(0,R.jsx)(`path`,{d:DA(e.points,e.size),fill:`none`,stroke:n,strokeWidth:e.size,strokeLinecap:`round`,strokeLinejoin:`round`});case`rect`:return(0,R.jsx)(`rect`,{x:Math.min(r,a),y:Math.min(i,o),width:Math.abs(a-r),height:Math.abs(o-i),rx:Math.min(e.size*1.5,Math.abs(a-r)/2,Math.abs(o-i)/2),fill:`none`,stroke:n,strokeWidth:e.size,strokeLinejoin:`round`});case`text`:return(0,R.jsx)(`text`,{x:r,y:i,fill:n,fontSize:e.size,fontFamily:`var(--font-sans)`,fontWeight:500,dominantBaseline:`text-before-edge`,style:{whiteSpace:`pre`},children:(e.text??``).split(`
129
- `).map((e,t)=>(0,R.jsx)(`tspan`,{x:r,dy:t?`${bT}em`:0,children:e||` `},t))})}});function kA({drawing:e,ghosts:t,draft:n}){return(0,R.jsxs)(R.Fragment,{children:[e?.strokes.map(e=>(0,R.jsx)(OA,{stroke:e},e.id)),t?.map(e=>(0,R.jsx)(`g`,{opacity:.8,children:(0,R.jsx)(OA,{stroke:e.stroke,done:!1})},`${e.peer}:${e.stroke.id}`)),n?(0,R.jsx)(OA,{stroke:n,done:!1}):null]})}function AA(e,t,n){let r=e.points,i=(e,r,i,a)=>{let o=i-e,s=a-r,c=o*o+s*s,l=c?Math.max(0,Math.min(1,((t-e)*o+(n-r)*s)/c)):0;return Math.hypot(t-(e+l*o),n-(r+l*s))};if(e.kind===`text`){let r=xT(e),i=Math.max(r.x-t,0,t-(r.x+r.w)),a=Math.max(r.y-n,0,n-(r.y+r.h));return Math.hypot(i,a)}if(e.kind===`pen`){let e=1/0;if(r.length===3)return Math.hypot(t-r[0],n-r[1]);for(let t=0;t+5<r.length;t+=3)e=Math.min(e,i(r[t],r[t+1],r[t+3],r[t+4]));return e}let[a=0,o=0,s=0,c=0]=r;return e.kind===`arrow`?i(a,o,s,c):Math.min(i(a,o,s,o),i(s,o,s,c),i(s,c,a,c),i(a,c,a,o))}var jA=[{tool:`pen`,icon:`edit`,label:`Pen`,key:`P`},{tool:`arrow`,icon:`arrow-up-right`,label:`Arrow`,key:`A`},{tool:`rect`,icon:`square`,label:`Rectangle`,key:`R`},{tool:`text`,icon:`type`,label:`Text`,key:`T`},{tool:`eraser`,icon:`eraser`,label:`Eraser`,key:`E`}],MA={ink:`Ink`,red:`Red`,blue:`Blue`,green:`Green`},NA=e=>e.map(e=>({...e,id:uT()})),PA=e=>Math.round(e*10)/10;function FA(e,t,n=`ink`){let[r,i]=(0,v.useState)(`pen`),[a,o]=(0,v.useState)(n),s=(0,v.useRef)({undo:[],redo:[]}),[,c]=(0,v.useReducer)(e=>e+1,0);if((0,v.useEffect)(()=>{s.current={undo:[],redo:[]},c()},[t]),!e||!t)return null;let l=e=>{e.strokes.length&&(s.current.undo.push(e),s.current.redo=[],c())},u=n=>e.apply(t,{erase:n.map(e=>e.id)}),d=n=>{let r=s.current,i=r[n].pop();if(!i)return;let a=n===`undo`?r.redo:r.undo;if(i.kind===`add`==(n===`undo`))u(i.strokes),a.push(i);else{let n=NA(i.strokes);e.apply(t,{add:n}),a.push({kind:i.kind,strokes:n})}c()};return{client:e,drawingKey:t,tool:r,setTool:i,ink:a,setInk:o,record:l,eraseNow:u,add(n){e.apply(t,{add:n}),l({kind:`add`,strokes:n})},clear(){let n=e.store.get().drawings[t]?.strokes??[];u(n),l({kind:`erase`,strokes:n})},undo:()=>d(`undo`),redo:()=>d(`redo`),canUndo:s.current.undo.length>0,canRedo:s.current.redo.length>0}}function IA(){let e=(0,v.useRef)(!1);return(0,v.useEffect)(()=>{let t=t=>{t.code===`Space`&&(e.current=!0)},n=t=>{t.code===`Space`&&(e.current=!1)};return window.addEventListener(`keydown`,t),window.addEventListener(`keyup`,n),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(`keyup`,n)}},[]),e}function LA(e,t){let n=(0,v.useRef)(e);n.current=e,(0,v.useEffect)(()=>{if(!t)return;let e=e=>{let t=n.current;if(!t||Pk(e.target))return;let r=e.metaKey||e.ctrlKey,i=e.key.toLowerCase();if(r&&i===`z`)e.preventDefault(),e.shiftKey?t.redo():t.undo();else if(r&&i===`y`)e.preventDefault(),t.redo();else if(!r&&!e.altKey){let n=jA.find(e=>e.key.toLowerCase()===i);n?t.setTool(n.tool):/^[1-4]$/.test(e.key)&&t.setInk(Qw[Number(e.key)-1])}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t])}function RA({editor:e,end:t,compact:n=!1}){return(0,R.jsxs)(`div`,{"data-ui":!0,className:`flex items-center gap-0.5`,children:[jA.map(t=>(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[t.label,` `,(0,R.jsx)(S_,{children:t.key})]}),children:(0,R.jsx)(`button`,{type:`button`,"aria-label":t.label,"aria-pressed":e.tool===t.tool,onClick:()=>e.setTool(t.tool),className:J(`inline-flex h-ctrl w-ctrl shrink-0 cursor-pointer items-center justify-center rounded-[6px] border p-0 transition-[color,background-color,scale] duration-100 active:scale-[0.94]`,e.tool===t.tool?`border-action-line bg-action-soft text-action`:`border-transparent bg-transparent text-muted hover:bg-soft2 hover:text-ink2`),children:(0,R.jsx)(X,{name:t.icon,size:16})})},t.tool)),(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),n?(0,R.jsx)(ow,{side:`top`,align:`center`,width:170,trigger:(0,R.jsx)(`button`,{type:`button`,"aria-label":`Ink: ${MA[e.ink]}`,className:`inline-flex h-ctrl w-ctrl shrink-0 cursor-pointer items-center justify-center rounded-[6px] border-0 bg-transparent p-0 hover:bg-soft2`,children:(0,R.jsx)(`span`,{className:`size-[14px] rounded-full`,style:{background:wA[e.ink]}})}),children:Qw.map((t,n)=>(0,R.jsxs)(lw,{active:e.ink===t,onSelect:()=>e.setInk(t),hint:n+1,children:[(0,R.jsx)(`span`,{className:`size-[12px] rounded-full`,style:{background:wA[t]}}),MA[t]]},t))}):null,n?null:Qw.map((t,n)=>(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[MA[t],` `,(0,R.jsx)(S_,{children:n+1})]}),children:(0,R.jsx)(`button`,{type:`button`,"aria-label":MA[t],"aria-pressed":e.ink===t,onClick:()=>e.setInk(t),className:J(`inline-flex h-ctrl w-[26px] shrink-0 cursor-pointer items-center justify-center rounded-[6px] border-0 bg-transparent p-0 hover:bg-soft2`),children:(0,R.jsx)(`span`,{className:J(`size-[14px] rounded-full`,e.ink===t&&`ring-2 ring-action ring-offset-2 ring-offset-surface`),style:{background:wA[t]}})})},t)),(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Undo `,(0,R.jsx)(S_,{children:`⌘Z`})]}),children:(0,R.jsx)(N_,{icon:`undo`,label:`Undo`,disabled:!e.canUndo,onClick:e.undo})}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Redo `,(0,R.jsx)(S_,{children:`⇧⌘Z`})]}),children:(0,R.jsx)(N_,{icon:`redo`,label:`Redo`,disabled:!e.canRedo,onClick:e.redo})}),(0,R.jsx)(kx,{content:`Erase everything`,children:(0,R.jsx)(N_,{icon:`trash`,label:`Erase everything`,onClick:e.clear})}),t]})}function zA({client:e,drawingKey:t,width:n,height:r,editor:i,sizes:a,className:o,camera:s,onPointerDownCapture:c}){let{drawing:l,ghosts:u}=LO(e,t);(0,v.useLayoutEffect)(()=>{let e=d.current;if(!s||!e)return;let t=()=>{let{x:t,y:n,z:r}=s.camera;e.setAttribute(`viewBox`,`${-t/r} ${-n/r} ${(e.clientWidth||1)/r} ${(e.clientHeight||1)/r}`)};t();let n=s.subscribe(t),r=new ResizeObserver(t);return r.observe(e),()=>{n(),r.disconnect()}},[s]);let d=(0,v.useRef)(null),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null),g=(0,v.useRef)(null),_=e=>{let t=d.current,n=t?.getScreenCTM();if(!t||!n)return null;let r=new DOMPoint(e.clientX,e.clientY).matrixTransform(n.inverse());return{x:r.x,y:r.y,scale:n.a||1}},y=(0,v.useRef)(null);y.current=m;let b=(0,v.useRef)(i);b.current=i;let x=(0,v.useCallback)(()=>{let e=y.current,t=b.current;y.current=null,h(null),e&&t&&e.value.trim()&&t.add([{id:uT(),kind:`text`,ink:t.ink,size:a.text,points:[PA(e.x),PA(e.y)],text:e.value.replace(/\s+$/,``)}])},[a.text]),S=i?.tool;(0,v.useEffect)(()=>{S!==`text`&&x()},[S,x]),(0,v.useEffect)(()=>x,[x]);let C=n=>{let r=g.current;if(!r?.stroke)return;let i=performance.now();if(!n&&i-r.lastSend<40)return;r.lastSend=i;let a=r.stroke.kind===`pen`?r.sent:0;e.live(t,r.stroke,a),r.sent=r.stroke.points.length},w=(n,r,a)=>{let o=g.current,s=e.store.get().drawings[t]?.strokes??[],c=8/a,l=s.filter(e=>AA(e,n,r)<=c+e.size/2);l.length&&i&&(i.eraseNow(l),o?.erased.push(...l))},T=e=>{if(!i||e.button!==0||c?.(e))return;e.stopPropagation(),e.preventDefault();let t=_(e);if(!t)return;if(m){x();return}d.current?.setPointerCapture(e.pointerId);let n={id:uT(),ink:i.ink},r=null;if(i.tool===`pen`){let i=e.pointerType===`pen`&&e.pressure||.5;r={...n,kind:`pen`,size:a.pen,points:[PA(t.x),PA(t.y),i]}}else(i.tool===`arrow`||i.tool===`rect`)&&(r={...n,kind:i.tool,size:a.line,points:[t.x,t.y,t.x,t.y]});g.current={stroke:r,sent:0,lastSend:0,frame:0,erased:[],startX:t.x,startY:t.y,pointer:e.pointerId},i.tool===`eraser`&&w(t.x,t.y,t.scale),p(r)},E=e=>{let t=g.current;if(!t||t.pointer!==e.pointerId||!i)return;let n=e.nativeEvent.getCoalescedEvents?.()??[e.nativeEvent];for(let r of n.length?n:[e.nativeEvent]){let e=_(r);if(e){if(i.tool===`eraser`)w(e.x,e.y,e.scale);else if(t.stroke?.kind===`pen`){let n=r.pointerType===`pen`&&r.pressure||.5;t.stroke.points.push(PA(e.x),PA(e.y),n)}else t.stroke&&(t.stroke.points=[t.stroke.points[0],t.stroke.points[1],e.x,e.y])}}t.stroke&&!t.frame&&(t.frame=requestAnimationFrame(()=>{t.frame=0,t.stroke&&p({...t.stroke,points:[...t.stroke.points]})})),C(!1)},D=n=>{let r=g.current;if(!r||r.pointer!==n.pointerId||!i)return;g.current=null,cancelAnimationFrame(r.frame),p(null);let o=_(n);if(i.tool===`eraser`){i.record({kind:`erase`,strokes:r.erased});return}if(i.tool===`text`){o&&Math.hypot(o.x-r.startX,o.y-r.startY)*o.scale<6&&h({x:r.startX,y:r.startY-a.text*.6,value:``});return}let s=r.stroke;if(s){if(r.sent&&e.liveEnd(t,s.id),s.kind!==`pen`){let[e=0,t=0,n=0,r=0]=s.points;if(Math.hypot(n-e,r-t)*(o?.scale??1)<4)return;s.points=s.points.map(PA)}i.add([s])}},O=n=>{let r=g.current;r&&r.pointer===n.pointerId&&(g.current=null,cancelAnimationFrame(r.frame),p(null),r.stroke&&r.sent&&e.liveEnd(t,r.stroke.id),r.erased.length&&i?.record({kind:`erase`,strokes:r.erased}))},k=i?i.tool===`text`?`text`:i.tool===`eraser`?`cell`:`crosshair`:void 0,A=(0,v.useMemo)(()=>m?xT({id:`draft`,kind:`text`,ink:`ink`,size:a.text,points:[m.x,m.y],text:m.value}):null,[m,a.text]);return(0,R.jsxs)(`svg`,{ref:d,viewBox:s?void 0:`0 0 ${n??0} ${r??0}`,preserveAspectRatio:s?`xMinYMin meet`:`xMidYMid meet`,role:`img`,"aria-label":i?`Drawing: draw here`:`Drawing`,className:J(`block touch-none select-none`,o),style:{cursor:k,pointerEvents:i?`auto`:`none`},onPointerDown:T,onPointerMove:E,onPointerUp:D,onPointerCancel:O,children:[(0,R.jsx)(kA,{drawing:l,ghosts:u,draft:f}),m&&A&&i?(0,R.jsx)(`foreignObject`,{x:m.x,y:m.y,width:Math.max(A.w+a.text*2,a.text*8),height:A.h+8,children:(0,R.jsx)(`textarea`,{autoFocus:!0,"aria-label":`Text`,value:m.value,onChange:e=>h({...m,value:e.target.value}),onBlur:x,onPointerDown:e=>e.stopPropagation(),onKeyDown:e=>{e.stopPropagation(),(e.key===`Enter`&&!e.shiftKey||e.key===`Escape`)&&(e.preventDefault(),x())},spellCheck:!1,className:`block h-full w-full resize-none overflow-hidden border-0 bg-transparent p-0 outline-none`,style:{font:`500 ${a.text}px/1.25 var(--font-sans)`,color:wA[i.ink],caretColor:wA[i.ink],whiteSpace:`pre`}})}):null]})}var BA={pen:5,line:3.5,text:28},VA=56,HA=(e,t)=>`foss-design.board.${e}.${t}`,UA=(e,t)=>`foss-design.board-camera.${e}.${t}`;function WA(e){try{return sessionStorage.getItem(e)===`1`}catch{return!1}}function GA({client:e,canvasId:t,page:n}){let r=oT(n.id),i=Y(e.store,e=>e.ready),a=Y(e.store,e=>e.canDraw),{drawing:o}=LO(e,r),s=HA(t,n.id),[c,l]=(0,v.useState)(()=>WA(s));if((0,v.useEffect)(()=>{try{c?sessionStorage.setItem(s,`1`):sessionStorage.removeItem(s)}catch{}},[c,s]),!i||!a&&yT(o))return null;let u=`board:${t}:${n.id}`;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ed,{initial:!1,children:c?(0,R.jsx)(qA,{layoutId:u,client:e,canvasId:t,page:n,canDraw:a,onClose:()=>l(!1)},`panel`):null}),c?null:(0,R.jsx)(KA,{layoutId:u,client:e,page:n,onOpen:()=>l(!0)})]})}function KA({layoutId:e,client:t,page:n,onOpen:r}){let{drawing:i,ghosts:a}=LO(t,oT(n.id)),o=(0,v.useMemo)(()=>wT([...i?.strokes??[],...a.map(e=>e.stroke)]),[i,a]);return(0,R.jsx)(kx,{content:`Idea board`,side:`left`,children:(0,R.jsx)(Kf.button,{type:`button`,"data-ui":!0,layoutId:e,"aria-label":`Open the idea board`,onClick:r,style:{borderRadius:10},transition:{type:`spring`,duration:.34,bounce:.12},className:`absolute right-4 bottom-[76px] z-20 flex size-[92px] cursor-pointer flex-col items-center justify-center gap-1 overflow-hidden border border-rule bg-surface p-0 text-muted shadow-pop hover:text-ink2`,children:o?(0,R.jsx)(`svg`,{viewBox:`${o.x-VA} ${o.y-VA} ${o.w+112} ${o.h+112}`,className:`h-full w-full p-1.5`,"aria-hidden":`true`,children:(0,R.jsx)(kA,{drawing:i,ghosts:a})}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(X,{name:`lightbulb`,size:20}),(0,R.jsx)(`span`,{className:`text-[11.5px] font-medium`,children:`Ideas`})]})})})}function qA({layoutId:e,client:t,canvasId:n,page:r,canDraw:i,onClose:a}){let o=oT(r.id),s=FA(i?t:null,o),c=Y(t.store,e=>e.online),l=(0,v.useMemo)(()=>new HO,[]),u=(0,v.useRef)(null),d=(0,v.useCallback)((e=!0)=>{let n=u.current;if(!n)return;let r=wT(t.store.get().drawings[o]?.strokes??[]),i=r?WO(r,n.clientWidth,n.clientHeight,VA,1,l.minZoom):{x:VA,y:VA,z:1};e?l.animateTo(i):l.set(i)},[l,t,o]),f=UA(n,r.id);return(0,v.useLayoutEffect)(()=>{let e=UO(f);e?l.set(e):d(!1);let t,n=l.subscribe(e=>{clearTimeout(t),t=setTimeout(()=>{try{sessionStorage.setItem(f,JSON.stringify(e))}catch{}},250)});return()=>{n(),clearTimeout(t)}},[l,f,d]),LA(s,!0),(0,v.useEffect)(()=>{let e=e=>{Pk(e.target)||(e.key===`Escape`?a():e.shiftKey&&e.code===`Digit1`&&d())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,d]),(0,R.jsx)(Kf.div,{"data-ui":!0,role:`dialog`,"aria-label":`Idea board`,layoutId:e,style:{borderRadius:12},transition:{type:`spring`,duration:.34,bounce:.12},className:`absolute inset-4 z-30 flex flex-col overflow-hidden border border-rule bg-surface shadow-pop`,children:(0,R.jsxs)(Kf.div,{initial:{opacity:0},animate:{opacity:1,transition:{delay:.12,duration:.16}},exit:{opacity:0,transition:{duration:.08}},className:`flex min-h-0 grow flex-col`,children:[(0,R.jsxs)(`div`,{className:`flex h-[52px] shrink-0 items-center gap-2 border-b border-rule pr-2 pl-4`,children:[(0,R.jsx)(X,{name:`lightbulb`,size:16,className:`text-muted`}),(0,R.jsx)(`span`,{className:`text-[14px] font-semibold`,children:`Ideas`}),(0,R.jsx)(`span`,{className:`min-w-0 truncate text-[13px] text-muted`,children:r.title}),c?null:(0,R.jsx)(`span`,{className:`text-[12.5px] text-muted`,children:`· Reconnecting…`}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[s?(0,R.jsx)(RA,{editor:s}):(0,R.jsx)(`span`,{className:`px-2 text-[12.5px] text-muted`,children:`View only`}),(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Show all `,(0,R.jsx)(S_,{children:`⇧1`})]}),children:(0,R.jsx)(N_,{icon:`fit`,label:`Show all of the board`,onClick:()=>d()})}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Close `,(0,R.jsx)(S_,{children:`Esc`})]}),children:(0,R.jsx)(N_,{icon:`minimize`,label:`Close the idea board`,onClick:a})})]})]}),(0,R.jsx)(JA,{sheetRef:u,client:t,drawingKey:o,editor:s,camera:l})]})})}function JA({sheetRef:e,client:t,drawingKey:n,editor:r,camera:i}){let a=(0,v.useRef)(null),o=IA(),s=(0,v.useRef)(null),[c,l]=(0,v.useState)(!1);(0,v.useLayoutEffect)(()=>{let e=qO(a.current);return e(i.camera),i.subscribe(e)},[i]),(0,v.useEffect)(()=>{let t=e.current,n=e=>{e.preventDefault();let n=t.getBoundingClientRect(),r=e.deltaMode===1?16:e.deltaMode===2?n.height:1;if(e.ctrlKey||e.metaKey){let t=e.deltaY*r,a=Math.abs(t)<40?.012:.0025;i.zoomAt(e.clientX-n.left,e.clientY-n.top,Math.exp(-t*a))}else i.panBy(-e.deltaX*r,-e.deltaY*r)};return t.addEventListener(`wheel`,n,{passive:!1}),()=>t.removeEventListener(`wheel`,n)},[i,e]);let u=e=>e.button===1||o.current===!0||!r&&e.button===0;return(0,R.jsxs)(`div`,{ref:e,className:J(`relative min-h-0 grow touch-none overflow-hidden bg-surface`,c&&`cursor-grabbing`),onPointerDown:e=>{u(e)&&(e.preventDefault(),i.interrupt(),e.currentTarget.setPointerCapture(e.pointerId),s.current={id:e.pointerId,x:e.clientX,y:e.clientY},l(!0))},onPointerMove:e=>{let t=s.current;t&&t.id===e.pointerId&&(i.panBy(e.clientX-t.x,e.clientY-t.y),t.x=e.clientX,t.y=e.clientY)},onPointerUp:e=>{s.current?.id===e.pointerId&&(s.current=null,l(!1))},onPointerCancel:()=>{s.current=null,l(!1)},children:[(0,R.jsx)(`div`,{ref:a,className:`canvas-grid`}),(0,R.jsx)(zA,{client:t,drawingKey:n,editor:r,sizes:BA,camera:i,className:`absolute inset-0 h-full w-full`,onPointerDownCapture:u})]})}function YA({items:e,value:t,onChange:n,label:r,stretch:i,size:a=`ctrl`}){let o=(0,v.useId)();return(0,R.jsx)(`div`,{role:`group`,"aria-label":r,className:J(`shrink-0 items-center gap-0.5 rounded-[6px] bg-track p-[3px]`,a===`ctrl`?`h-ctrl`:`h-7`,i?`flex`:`inline-flex`),children:e.map(e=>{let r=e.value===t;return(0,R.jsxs)(`button`,{type:`button`,"aria-pressed":r,title:e.title,onClick:()=>n(e.value),className:J(`relative flex h-full cursor-pointer items-center justify-center whitespace-nowrap rounded-[4px] border-0 bg-transparent font-medium transition-colors`,a===`ctrl`?`px-2.5 text-ctrl`:`px-2 text-[12.5px]`,i&&`flex-1`,r?`text-ink`:`text-muted hover:text-ink2`),children:[r?(0,R.jsx)(Kf.span,{layoutId:o,className:`absolute inset-0 z-0 rounded-[4px] bg-surface shadow-[0_1px_2px_rgba(0,0,0,0.10)]`,transition:{type:`spring`,stiffness:520,damping:42}}):null,(0,R.jsx)(`span`,{className:`relative z-[1] flex items-center gap-1.5`,children:e.label})]},e.value)})})}var XA=new WeakMap,ZA=2200;function QA(e,t=`var(--action)`){clearTimeout(XA.get(e)),e.classList.remove(`target-ripple`),e.offsetWidth,e.style.setProperty(`--ripple-color`,t),e.classList.add(`target-ripple`),XA.set(e,setTimeout(()=>{e.classList.remove(`target-ripple`),e.style.removeProperty(`--ripple-color`)},ZA))}var $A=5500,ej=350,tj=(e,t)=>e>=window.innerWidth/2&&t<=window.innerHeight/2;function nj({frame:e,note:t,badge:n,children:r}){let[i,a]=(0,v.useState)(!0),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(0),g=(0,v.useRef)(null),_=(0,v.useRef)(void 0),y=(0,v.useRef)(void 0),b=e=>{a(!0),clearTimeout(_.current),_.current=setTimeout(()=>a(!1),e)},x=(e,t)=>{let n=e>=0&&tj(e,t);clearTimeout(y.current),n?s(!0):y.current=setTimeout(()=>s(!1),ej)};(0,v.useEffect)(()=>{if(!e)return;let t=()=>{cO(e,{type:`pointer`}),b($A),h(e=>e+1)};e.addEventListener(`load`,t);let n=sO(e,t=>{if(t.type!==`pointer`)return;if(d(!0),t.x<0)return x(-1,-1);let n=e.getBoundingClientRect(),r=n.left+t.x,i=n.top+t.y;t.down&&tj(r,i)?b($A):x(r,i)});return()=>{e.removeEventListener(`load`,t),n()}},[e]),(0,v.useEffect)(()=>{let e=e=>x(e.clientX,e.clientY),t=e=>{e.relatedTarget||x(-1,-1)};return window.addEventListener(`pointermove`,e,{passive:!0}),document.addEventListener(`pointerout`,t),()=>{window.removeEventListener(`pointermove`,e),document.removeEventListener(`pointerout`,t),clearTimeout(_.current),clearTimeout(y.current)}},[]),(0,v.useEffect)(()=>{if(u)return;let e=document.documentElement,t=()=>p(!0),n=()=>p(!1);return e.addEventListener(`pointerenter`,t),e.addEventListener(`pointerleave`,n),()=>{e.removeEventListener(`pointerenter`,t),e.removeEventListener(`pointerleave`,n)}},[u]);let S=i||o||c||!u&&f;return(0,v.useEffect)(()=>{if(!m)return;let e=setTimeout(()=>g.current&&QA(g.current),200);return()=>clearTimeout(e)},[m]),(0,R.jsxs)(R.Fragment,{children:[n?(0,R.jsx)(Kf.button,{type:`button`,"aria-label":`Show the page's notice`,initial:!1,animate:S?{opacity:0,scale:.8}:{opacity:1,scale:1},transition:{duration:.2,delay:S?0:.25},onClick:()=>b($A),tabIndex:S?-1:0,className:J(`absolute top-3 right-3 inline-flex h-7 cursor-pointer items-center gap-1.5 rounded-full border border-rule bg-surface/90 px-2.5 text-[11.5px] text-muted shadow-[0_1px_3px_rgb(0_0_0/0.08)] backdrop-blur-sm hover:text-ink2`,S&&`pointer-events-none`),children:n}):null,(0,R.jsx)(Kf.div,{ref:g,initial:{opacity:0,scale:.94,y:-4},animate:S?{opacity:1,scale:1,y:0}:{opacity:0,scale:.97,y:-2},transition:S?{type:`spring`,stiffness:420,damping:30}:{duration:.45,ease:`easeOut`},style:{transformOrigin:`top right`},className:J(`absolute top-3 right-3 flex max-w-[calc(100%-24px)] flex-col items-end rounded-[8px]`,!S&&`pointer-events-none`),"aria-hidden":!S||void 0,onFocus:()=>l(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||l(!1)},children:(0,R.jsxs)(`div`,{className:`flex max-w-full flex-wrap items-center justify-end gap-x-2 gap-y-1 rounded-[8px] border border-rule bg-surface p-1 shadow-pop`,children:[t?(0,R.jsxs)(`div`,{className:`flex min-h-8 min-w-0 flex-[1_1_auto] items-center gap-1.5 pl-2 text-[12px] leading-snug text-muted`,children:[(0,R.jsx)(X,{name:`info`,size:13,className:`shrink-0`}),(0,R.jsx)(`span`,{className:`min-w-0`,children:t})]}):null,r?(0,R.jsx)(`div`,{className:`flex items-center gap-1`,children:r}):null]})})]})}var rj=(e,t,n)=>`/c/${encodeURIComponent(e)}/full/${encodeURIComponent(t)}?theme=${n}`;function ij(e,t,n){let{frameSandbox:r}=e_(),{base:i}=le();return t?t.kind===`url`?t.url:hO(r?`${i}${rj(e,t.id,t.theme??n)}`:mO(t.url,t.theme??n)):null}function aj({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=i_(e),[,a]=I(),{frameSandbox:o,frameAllow:s,slots:c}=e_(),l=b_(),u=(0,v.useRef)(null),[d,f]=(0,v.useState)(null),p=(0,v.useCallback)(e=>{u.current=e,f(e)},[]),m=new URLSearchParams(window.location.search).get(`theme`),h=n?n.pages.flatMap(e=>e.sections.flatMap(e=>e.items.filter(e=>e.kind===`screen`||e.kind===`url`))):[],g=h.find(e=>e.id===t),_=(g?.kind===`screen`?g.theme:void 0)??(m===`light`||m===`dark`?m:n?.theme??l),y=g?g.kind===`screen`?mO(g.url,_):g.url:``,b=`/c/${encodeURIComponent(e)}`;return(0,v.useEffect)(()=>{g&&(document.title=`${g.title} · ${n?.title??``}`)},[g,n?.title]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a(b)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,b]),(0,v.useEffect)(()=>{let r=u.current;if(r&&g?.kind===`screen`)return sO(r,r=>{if(r.type===`keydown`&&r.code===`Escape`)a(b);else if(r.type===`go`){let t=r.target.includes(`/`)?r.target.split(`/`)[1]:r.target;h.some(e=>e.id===t)&&a(rj(e,t,_),{replace:!0})}else r.type===`link`&&n&&gO(r,n,t=>a(rj(e,t,_),{replace:!0}),t)})},[y,g?.kind]),r?(0,R.jsx)(zO,{title:`Canvas not found`,text:r.message}):i||!n?(0,R.jsx)(`div`,{className:`h-dvh bg-surface`}):g?(0,R.jsxs)(`div`,{className:`fixed inset-0 bg-surface`,children:[(0,R.jsx)(`iframe`,{ref:p,src:y,title:g.title,allow:s,sandbox:o,className:`block h-full w-full border-0`,style:{colorScheme:_},onLoad:()=>g.kind===`screen`&&dO(u.current,_)},`${g.id}:${g.kind===`screen`?g.rev:g.url}`),(0,R.jsxs)(nj,{frame:d,note:c.fullPlate?.note,badge:c.fullPlate?.badge,children:[(0,R.jsxs)(ye,{href:b,className:`flex h-8 min-w-0 items-center gap-2 rounded-[6px] px-2 text-[12.5px] text-ink2 no-underline hover:bg-soft2 hover:text-ink`,children:[(0,R.jsx)(X,{name:`x`,size:14}),(0,R.jsxs)(`span`,{className:`truncate`,children:[`Back to `,n.title]}),(0,R.jsx)(S_,{children:`esc`})]}),c.fullPlate?.actions]})]}):(0,R.jsx)(zO,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`})}function oj(e){return e.kind===`note`?`note`:e.kind===`image`?`image`:e.kind===`url`?`globe`:e.frame.width<600?`smartphone`:e.frame.width<1100?`tablet`:`monitor`}function sj(e,t){return`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(t.id)}`}function cj({canvas:e,page:t,store:n,onPick:r}){let i=Y(n,e=>e.selected),a=Y(n,e=>e.frames);return(0,R.jsxs)(`aside`,{"data-ui":!0,className:`flex w-[264px] shrink-0 flex-col overflow-hidden border-r border-rule bg-surface`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 border-b border-rule px-4 py-3.5`,children:[(0,R.jsx)(`div`,{className:`truncate text-[14px] font-semibold`,children:e.title}),e.description?(0,R.jsx)(`div`,{className:`line-clamp-3 text-[12.5px] leading-[1.45] text-muted`,children:e.description}):null]}),(0,R.jsxs)(`div`,{className:`min-h-0 grow overflow-y-auto pb-4`,children:[e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:`Pages`}),(0,R.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2`,children:e.pages.map(n=>{let r=n.sections.reduce((e,t)=>e+t.items.filter(e=>e.kind===`screen`||e.kind===`url`).length,0);return(0,R.jsxs)(ye,{href:sj(e,n),className:J(`flex h-8 items-center gap-2 rounded-[6px] px-2.5 text-[13.5px] no-underline transition-colors focus-visible:outline-offset-[-2px]`,n.id===t.id?`bg-soft2 font-medium text-ink`:`text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(X,{name:`file`,size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:n.title}),(0,R.jsx)(`span`,{className:`text-[12px] text-muted tabular`,children:r})]},n.id)})})]}):null,(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:e.pages.length>1?t.title:`Layers`}),(0,R.jsx)(`div`,{className:`flex flex-col px-2`,children:t.sections.map(e=>(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[e.title?(0,R.jsxs)(`div`,{className:`flex h-7 items-center gap-2 px-2.5 pt-1 text-[12px] font-medium text-ink2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:e.title}),(0,R.jsx)(R_,{value:e.items.length})]}):null,e.items.map(t=>{let n=(a[t.id]?.errors.length??0)>0||t.kind===`screen`&&t.missing;return(0,R.jsxs)(`button`,{type:`button`,onClick:()=>r(t.id),className:J(`flex h-8 w-full cursor-pointer items-center gap-2 rounded-[6px] border-0 px-2.5 text-left text-[13px] transition-colors focus-visible:outline-offset-[-2px]`,e.title&&`pl-4`,i===t.id?`bg-action-soft text-ink`:`bg-transparent text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(X,{name:oj(t),size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:t.title||(t.kind===`note`?`Note`:t.id)}),n?(0,R.jsx)(`span`,{className:`size-[7px] shrink-0 rounded-full bg-danger`}):null]},t.id)})]},e.id))})]})]})}function lj({canvas:e,page:t,theme:n,onTheme:r,sidebar:i,onSidebar:a,onPlay:o,canPlay:s,inspect:c,onInspect:l}){let[,u]=I(),{slots:d,scope:f}=e_(),p=(0,v.useRef)(null),m=(0,v.useRef)(null),h=vw(p,m,[e.title,t?.title,e.pages.length]);return(0,R.jsxs)(_w,{value:h,children:[(0,R.jsxs)(gw,{children:[d.barStart,d.brand?d.brand:f?(0,R.jsx)(mw,{}):(0,R.jsx)(kx,{content:`All canvases`,children:(0,R.jsx)(ye,{href:`/`,className:`flex items-center`,"aria-label":`All canvases`,children:(0,R.jsx)(mw,{})})}),(0,R.jsx)(N_,{icon:`panel-left`,label:i?`Hide sidebar (⌘\\)`:`Show sidebar (⌘\\)`,onClick:()=>a(!i)}),(0,R.jsxs)(`div`,{ref:p,className:`flex min-w-0 items-center gap-1.5 text-[14px]`,children:[(0,R.jsx)(`span`,{"data-fit":!0,className:`truncate font-semibold`,children:e.title}),t&&e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(X,{name:`chevron-right`,size:14,className:`shrink-0 text-muted`}),(0,R.jsxs)(ow,{width:240,trigger:(0,R.jsxs)(`button`,{type:`button`,className:`flex h-ctrl cursor-pointer items-center gap-1 rounded-[6px] border-0 bg-transparent px-2 text-[14px] text-ink2 hover:bg-soft2`,children:[(0,R.jsx)(`span`,{"data-fit":!0,className:`truncate`,children:t.title}),(0,R.jsx)(X,{name:`chevron-down`,size:14,className:`text-muted`})]}),children:[(0,R.jsx)(dw,{children:`Pages`}),e.pages.map(n=>(0,R.jsxs)(lw,{active:n.id===t.id,onSelect:()=>u(sj(e,n)),children:[(0,R.jsx)(X,{name:`file`,size:15,className:`text-muted`}),n.title]},n.id))]})]}):null]}),(0,R.jsxs)(`div`,{ref:m,className:`ml-auto flex shrink-0 items-center gap-2`,children:[(0,R.jsx)(YA,{label:`Screen theme`,value:n,onChange:r,items:[{value:`light`,label:(0,R.jsx)(X,{name:`sun`,size:15}),title:`Light screens`},{value:`dark`,label:(0,R.jsx)(X,{name:`moon`,size:15}),title:`Dark screens`}]}),(0,R.jsx)(pj,{on:c,onChange:l,compact:h}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Play `,(0,R.jsx)(S_,{children:`P`})]}),children:(0,R.jsx)(A_,{kind:`secondary`,icon:`play`,onClick:o,disabled:!s,"aria-label":`Play`,className:h?`w-ctrl px-0`:void 0,children:h?null:`Play`})}),(0,R.jsx)(Mx,{width:180,label:`Search`,compact:h}),(0,R.jsx)(pw,{}),d.barEnd]})]}),d.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:d.belowBar}):null]})}function uj({children:e}){return(0,R.jsx)(`div`,{"data-ui":!0,className:`pointer-events-none absolute inset-x-4 bottom-5 z-20 grid grid-cols-[minmax(var(--dock-left,0px),1fr)_minmax(0,auto)_minmax(var(--dock-right,0px),1fr)]`,children:(0,R.jsx)(`div`,{className:`col-start-2 flex min-w-0 justify-center`,children:e})})}function dj({canvas:e,store:t,layoutItems:n,theme:r,onPlay:i,inspect:a,onMarkup:o}){let s=Y(t,e=>e.selected),c=n.find(e=>e.id===s);return(0,R.jsx)(uj,{children:(0,R.jsx)(ed,{children:c?(0,R.jsx)(fj,{canvas:e,store:t,item:c,theme:r,onPlay:i,inspect:a,onMarkup:o},`bar`):null})})}function fj({canvas:e,store:t,item:n,theme:r,onPlay:i,inspect:a,onMarkup:o}){let{slots:s}=e_(),c=Y(t,e=>e.frames[n.id]),l=ij(e.id,n.kind===`screen`||n.kind===`url`?n:void 0,r),u=n.kind===`screen`||n.kind===`url`,d=()=>fO(document.querySelector(`[data-item="${CSS.escape(n.id)}"] iframe`)),f=c?.errors??[];return(0,R.jsxs)(Kf.div,{initial:{opacity:0,y:10,scale:.98},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.98,transition:{duration:.14,ease:`easeIn`}},transition:{type:`spring`,duration:.26,bounce:.12},className:`relative flex w-fit max-w-full min-w-0 flex-col`,children:[(0,R.jsx)(`div`,{className:`pointer-events-none absolute inset-x-5 bottom-full flex justify-center`,children:(0,R.jsx)(ed,{children:u&&a?(0,R.jsx)(Kf.div,{initial:{y:`100%`,opacity:0},animate:{y:0,opacity:.9},exit:{y:`100%`,opacity:0},transition:{type:`spring`,duration:.28,bounce:.15},className:`flex h-[22px] min-w-0 items-center rounded-t-[7px] border border-b-0 border-rule bg-surface/80 px-3 text-[11.5px] whitespace-nowrap text-muted backdrop-blur-md`,children:(0,R.jsx)(`span`,{className:`truncate`,children:`Click an element to inspect it`})},`inspect`):null})}),(0,R.jsxs)(`div`,{className:`pointer-events-auto relative flex max-w-full flex-col overflow-hidden rounded-[10px] border border-rule bg-surface shadow-pop`,children:[f.length?(0,R.jsxs)(`div`,{className:`flex max-h-40 items-start gap-2 overflow-y-auto border-b border-rule bg-danger-soft px-3.5 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(X,{name:`alert`,size:14,className:`mt-px`}),(0,R.jsx)(`span`,{className:`min-w-0`,children:f.join(`
129
+ `).map((e,t)=>(0,R.jsx)(`tspan`,{x:r,dy:t?`${bT}em`:0,children:e||` `},t))})}});function kA({drawing:e,ghosts:t,draft:n}){return(0,R.jsxs)(R.Fragment,{children:[e?.strokes.map(e=>(0,R.jsx)(OA,{stroke:e},e.id)),t?.map(e=>(0,R.jsx)(`g`,{opacity:.8,children:(0,R.jsx)(OA,{stroke:e.stroke,done:!1})},`${e.peer}:${e.stroke.id}`)),n?(0,R.jsx)(OA,{stroke:n,done:!1}):null]})}function AA(e,t,n){let r=e.points,i=(e,r,i,a)=>{let o=i-e,s=a-r,c=o*o+s*s,l=c?Math.max(0,Math.min(1,((t-e)*o+(n-r)*s)/c)):0;return Math.hypot(t-(e+l*o),n-(r+l*s))};if(e.kind===`text`){let r=xT(e),i=Math.max(r.x-t,0,t-(r.x+r.w)),a=Math.max(r.y-n,0,n-(r.y+r.h));return Math.hypot(i,a)}if(e.kind===`pen`){let e=1/0;if(r.length===3)return Math.hypot(t-r[0],n-r[1]);for(let t=0;t+5<r.length;t+=3)e=Math.min(e,i(r[t],r[t+1],r[t+3],r[t+4]));return e}let[a=0,o=0,s=0,c=0]=r;return e.kind===`arrow`?i(a,o,s,c):Math.min(i(a,o,s,o),i(s,o,s,c),i(s,c,a,c),i(a,c,a,o))}var jA=[{tool:`pen`,icon:`edit`,label:`Pen`,key:`P`},{tool:`arrow`,icon:`arrow-up-right`,label:`Arrow`,key:`A`},{tool:`rect`,icon:`square`,label:`Rectangle`,key:`R`},{tool:`text`,icon:`type`,label:`Text`,key:`T`},{tool:`eraser`,icon:`eraser`,label:`Eraser`,key:`E`}],MA={ink:`Ink`,red:`Red`,blue:`Blue`,green:`Green`},NA=e=>e.map(e=>({...e,id:uT()})),PA=e=>Math.round(e*10)/10;function FA(e,t,n=`ink`){let[r,i]=(0,v.useState)(`pen`),[a,o]=(0,v.useState)(n),s=(0,v.useRef)({undo:[],redo:[]}),[,c]=(0,v.useReducer)(e=>e+1,0);if((0,v.useEffect)(()=>{s.current={undo:[],redo:[]},c()},[t]),!e||!t)return null;let l=e=>{e.strokes.length&&(s.current.undo.push(e),s.current.redo=[],c())},u=n=>e.apply(t,{erase:n.map(e=>e.id)}),d=n=>{let r=s.current,i=r[n].pop();if(!i)return;let a=n===`undo`?r.redo:r.undo;if(i.kind===`add`==(n===`undo`))u(i.strokes),a.push(i);else{let n=NA(i.strokes);e.apply(t,{add:n}),a.push({kind:i.kind,strokes:n})}c()};return{client:e,drawingKey:t,tool:r,setTool:i,ink:a,setInk:o,record:l,eraseNow:u,add(n){e.apply(t,{add:n}),l({kind:`add`,strokes:n})},clear(){let n=e.store.get().drawings[t]?.strokes??[];u(n),l({kind:`erase`,strokes:n})},undo:()=>d(`undo`),redo:()=>d(`redo`),canUndo:s.current.undo.length>0,canRedo:s.current.redo.length>0}}function IA(){let e=(0,v.useRef)(!1);return(0,v.useEffect)(()=>{let t=t=>{t.code===`Space`&&(e.current=!0)},n=t=>{t.code===`Space`&&(e.current=!1)};return window.addEventListener(`keydown`,t),window.addEventListener(`keyup`,n),()=>{window.removeEventListener(`keydown`,t),window.removeEventListener(`keyup`,n)}},[]),e}function LA(e,t){let n=(0,v.useRef)(e);n.current=e,(0,v.useEffect)(()=>{if(!t)return;let e=e=>{let t=n.current;if(!t||Pk(e.target))return;let r=e.metaKey||e.ctrlKey,i=e.key.toLowerCase();if(r&&i===`z`)e.preventDefault(),e.shiftKey?t.redo():t.undo();else if(r&&i===`y`)e.preventDefault(),t.redo();else if(!r&&!e.altKey){let n=jA.find(e=>e.key.toLowerCase()===i);n?t.setTool(n.tool):/^[1-4]$/.test(e.key)&&t.setInk(Qw[Number(e.key)-1])}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t])}function RA({editor:e,end:t,compact:n=!1}){return(0,R.jsxs)(`div`,{"data-ui":!0,className:`flex items-center gap-0.5`,children:[jA.map(t=>(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[t.label,` `,(0,R.jsx)(S_,{children:t.key})]}),children:(0,R.jsx)(`button`,{type:`button`,"aria-label":t.label,"aria-pressed":e.tool===t.tool,onClick:()=>e.setTool(t.tool),className:J(`inline-flex h-ctrl w-ctrl shrink-0 cursor-pointer items-center justify-center rounded-[6px] border p-0 transition-[color,background-color,scale] duration-100 active:scale-[0.94]`,e.tool===t.tool?`border-action-line bg-action-soft text-action`:`border-transparent bg-transparent text-muted hover:bg-soft2 hover:text-ink2`),children:(0,R.jsx)(X,{name:t.icon,size:16})})},t.tool)),(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),n?(0,R.jsx)(ow,{side:`top`,align:`center`,width:170,trigger:(0,R.jsx)(`button`,{type:`button`,"aria-label":`Ink: ${MA[e.ink]}`,className:`inline-flex h-ctrl w-ctrl shrink-0 cursor-pointer items-center justify-center rounded-[6px] border-0 bg-transparent p-0 hover:bg-soft2`,children:(0,R.jsx)(`span`,{className:`size-[14px] rounded-full`,style:{background:wA[e.ink]}})}),children:Qw.map((t,n)=>(0,R.jsxs)(lw,{active:e.ink===t,onSelect:()=>e.setInk(t),hint:n+1,children:[(0,R.jsx)(`span`,{className:`size-[12px] rounded-full`,style:{background:wA[t]}}),MA[t]]},t))}):null,n?null:Qw.map((t,n)=>(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[MA[t],` `,(0,R.jsx)(S_,{children:n+1})]}),children:(0,R.jsx)(`button`,{type:`button`,"aria-label":MA[t],"aria-pressed":e.ink===t,onClick:()=>e.setInk(t),className:J(`inline-flex h-ctrl w-[26px] shrink-0 cursor-pointer items-center justify-center rounded-[6px] border-0 bg-transparent p-0 hover:bg-soft2`),children:(0,R.jsx)(`span`,{className:J(`size-[14px] rounded-full`,e.ink===t&&`ring-2 ring-action ring-offset-2 ring-offset-surface`),style:{background:wA[t]}})})},t)),(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Undo `,(0,R.jsx)(S_,{children:`⌘Z`})]}),children:(0,R.jsx)(N_,{icon:`undo`,label:`Undo`,disabled:!e.canUndo,onClick:e.undo})}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Redo `,(0,R.jsx)(S_,{children:`⇧⌘Z`})]}),children:(0,R.jsx)(N_,{icon:`redo`,label:`Redo`,disabled:!e.canRedo,onClick:e.redo})}),(0,R.jsx)(kx,{content:`Erase everything`,children:(0,R.jsx)(N_,{icon:`trash`,label:`Erase everything`,onClick:e.clear})}),t]})}function zA({client:e,drawingKey:t,width:n,height:r,editor:i,sizes:a,className:o,camera:s,onPointerDownCapture:c}){let{drawing:l,ghosts:u}=LO(e,t);(0,v.useLayoutEffect)(()=>{let e=d.current;if(!s||!e)return;let t=()=>{let{x:t,y:n,z:r}=s.camera;e.setAttribute(`viewBox`,`${-t/r} ${-n/r} ${(e.clientWidth||1)/r} ${(e.clientHeight||1)/r}`)};t();let n=s.subscribe(t),r=new ResizeObserver(t);return r.observe(e),()=>{n(),r.disconnect()}},[s]);let d=(0,v.useRef)(null),[f,p]=(0,v.useState)(null),[m,h]=(0,v.useState)(null),g=(0,v.useRef)(null),_=e=>{let t=d.current,n=t?.getScreenCTM();if(!t||!n)return null;let r=new DOMPoint(e.clientX,e.clientY).matrixTransform(n.inverse());return{x:r.x,y:r.y,scale:n.a||1}},y=(0,v.useRef)(null);y.current=m;let b=(0,v.useRef)(i);b.current=i;let x=(0,v.useCallback)(()=>{let e=y.current,t=b.current;y.current=null,h(null),e&&t&&e.value.trim()&&t.add([{id:uT(),kind:`text`,ink:t.ink,size:a.text,points:[PA(e.x),PA(e.y)],text:e.value.replace(/\s+$/,``)}])},[a.text]),S=i?.tool;(0,v.useEffect)(()=>{S!==`text`&&x()},[S,x]),(0,v.useEffect)(()=>x,[x]);let C=n=>{let r=g.current;if(!r?.stroke)return;let i=performance.now();if(!n&&i-r.lastSend<40)return;r.lastSend=i;let a=r.stroke.kind===`pen`?r.sent:0;e.live(t,r.stroke,a),r.sent=r.stroke.points.length},w=(n,r,a)=>{let o=g.current,s=e.store.get().drawings[t]?.strokes??[],c=8/a,l=s.filter(e=>AA(e,n,r)<=c+e.size/2);l.length&&i&&(i.eraseNow(l),o?.erased.push(...l))},T=e=>{if(!i||e.button!==0||c?.(e))return;e.stopPropagation(),e.preventDefault();let t=_(e);if(!t)return;if(m){x();return}d.current?.setPointerCapture(e.pointerId);let n={id:uT(),ink:i.ink},r=null;if(i.tool===`pen`){let i=e.pointerType===`pen`&&e.pressure||.5;r={...n,kind:`pen`,size:a.pen,points:[PA(t.x),PA(t.y),i]}}else(i.tool===`arrow`||i.tool===`rect`)&&(r={...n,kind:i.tool,size:a.line,points:[t.x,t.y,t.x,t.y]});g.current={stroke:r,sent:0,lastSend:0,frame:0,erased:[],startX:t.x,startY:t.y,pointer:e.pointerId},i.tool===`eraser`&&w(t.x,t.y,t.scale),p(r)},E=e=>{let t=g.current;if(!t||t.pointer!==e.pointerId||!i)return;let n=e.nativeEvent.getCoalescedEvents?.()??[e.nativeEvent];for(let r of n.length?n:[e.nativeEvent]){let e=_(r);if(e){if(i.tool===`eraser`)w(e.x,e.y,e.scale);else if(t.stroke?.kind===`pen`){let n=r.pointerType===`pen`&&r.pressure||.5;t.stroke.points.push(PA(e.x),PA(e.y),n)}else t.stroke&&(t.stroke.points=[t.stroke.points[0],t.stroke.points[1],e.x,e.y])}}t.stroke&&!t.frame&&(t.frame=requestAnimationFrame(()=>{t.frame=0,t.stroke&&p({...t.stroke,points:[...t.stroke.points]})})),C(!1)},D=n=>{let r=g.current;if(!r||r.pointer!==n.pointerId||!i)return;g.current=null,cancelAnimationFrame(r.frame),p(null);let o=_(n);if(i.tool===`eraser`){i.record({kind:`erase`,strokes:r.erased});return}if(i.tool===`text`){o&&Math.hypot(o.x-r.startX,o.y-r.startY)*o.scale<6&&h({x:r.startX,y:r.startY-a.text*.6,value:``});return}let s=r.stroke;if(s){if(r.sent&&e.liveEnd(t,s.id),s.kind!==`pen`){let[e=0,t=0,n=0,r=0]=s.points;if(Math.hypot(n-e,r-t)*(o?.scale??1)<4)return;s.points=s.points.map(PA)}i.add([s])}},O=n=>{let r=g.current;r&&r.pointer===n.pointerId&&(g.current=null,cancelAnimationFrame(r.frame),p(null),r.stroke&&r.sent&&e.liveEnd(t,r.stroke.id),r.erased.length&&i?.record({kind:`erase`,strokes:r.erased}))},k=i?i.tool===`text`?`text`:i.tool===`eraser`?`cell`:`crosshair`:void 0,A=(0,v.useMemo)(()=>m?xT({id:`draft`,kind:`text`,ink:`ink`,size:a.text,points:[m.x,m.y],text:m.value}):null,[m,a.text]);return(0,R.jsxs)(`svg`,{ref:d,viewBox:s?void 0:`0 0 ${n??0} ${r??0}`,preserveAspectRatio:s?`xMinYMin meet`:`xMidYMid meet`,role:`img`,"aria-label":i?`Drawing: draw here`:`Drawing`,className:J(`block touch-none select-none`,o),style:{cursor:k,pointerEvents:i?`auto`:`none`},onPointerDown:T,onPointerMove:E,onPointerUp:D,onPointerCancel:O,children:[(0,R.jsx)(kA,{drawing:l,ghosts:u,draft:f}),m&&A&&i?(0,R.jsx)(`foreignObject`,{x:m.x,y:m.y,width:Math.max(A.w+a.text*2,a.text*8),height:A.h+8,children:(0,R.jsx)(`textarea`,{autoFocus:!0,"aria-label":`Text`,value:m.value,onChange:e=>h({...m,value:e.target.value}),onBlur:x,onPointerDown:e=>e.stopPropagation(),onKeyDown:e=>{e.stopPropagation(),(e.key===`Enter`&&!e.shiftKey||e.key===`Escape`)&&(e.preventDefault(),x())},spellCheck:!1,className:`block h-full w-full resize-none overflow-hidden border-0 bg-transparent p-0 outline-none`,style:{font:`500 ${a.text}px/1.25 var(--font-sans)`,color:wA[i.ink],caretColor:wA[i.ink],whiteSpace:`pre`}})}):null]})}var BA={pen:5,line:3.5,text:28},VA=56,HA=(e,t)=>`foss-design.board.${e}.${t}`,UA=(e,t)=>`foss-design.board-camera.${e}.${t}`;function WA(e){try{return sessionStorage.getItem(e)===`1`}catch{return!1}}function GA({client:e,canvasId:t,page:n}){let r=oT(n.id),i=Y(e.store,e=>e.ready),a=Y(e.store,e=>e.canDraw),{drawing:o}=LO(e,r),s=HA(t,n.id),[c,l]=(0,v.useState)(()=>WA(s));if((0,v.useEffect)(()=>{try{c?sessionStorage.setItem(s,`1`):sessionStorage.removeItem(s)}catch{}},[c,s]),!i||!a&&yT(o))return null;let u=`board:${t}:${n.id}`;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ed,{initial:!1,children:c?(0,R.jsx)(qA,{layoutId:u,client:e,canvasId:t,page:n,canDraw:a,onClose:()=>l(!1)},`panel`):null}),c?null:(0,R.jsx)(KA,{layoutId:u,client:e,page:n,onOpen:()=>l(!0)})]})}function KA({layoutId:e,client:t,page:n,onOpen:r}){let{drawing:i,ghosts:a}=LO(t,oT(n.id)),o=(0,v.useMemo)(()=>wT([...i?.strokes??[],...a.map(e=>e.stroke)]),[i,a]);return(0,R.jsx)(kx,{content:`Idea board`,side:`left`,children:(0,R.jsx)(Kf.button,{type:`button`,"data-ui":!0,layoutId:e,"aria-label":`Open the idea board`,onClick:r,style:{borderRadius:10},transition:{type:`spring`,duration:.34,bounce:.12},className:`absolute right-4 bottom-[76px] z-20 flex size-[92px] cursor-pointer flex-col items-center justify-center gap-1 overflow-hidden border border-rule bg-surface p-0 text-muted shadow-pop hover:text-ink2`,children:o?(0,R.jsx)(`svg`,{viewBox:`${o.x-VA} ${o.y-VA} ${o.w+112} ${o.h+112}`,className:`h-full w-full p-1.5`,"aria-hidden":`true`,children:(0,R.jsx)(kA,{drawing:i,ghosts:a})}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(X,{name:`lightbulb`,size:20}),(0,R.jsx)(`span`,{className:`text-[11.5px] font-medium`,children:`Ideas`})]})})})}function qA({layoutId:e,client:t,canvasId:n,page:r,canDraw:i,onClose:a}){let o=oT(r.id),s=FA(i?t:null,o),c=Y(t.store,e=>e.online),l=(0,v.useMemo)(()=>new HO,[]),u=(0,v.useRef)(null),d=(0,v.useCallback)((e=!0)=>{let n=u.current;if(!n)return;let r=wT(t.store.get().drawings[o]?.strokes??[]),i=r?WO(r,n.clientWidth,n.clientHeight,VA,1,l.minZoom):{x:VA,y:VA,z:1};e?l.animateTo(i):l.set(i)},[l,t,o]),f=UA(n,r.id);return(0,v.useLayoutEffect)(()=>{let e=UO(f);e?l.set(e):d(!1);let t,n=l.subscribe(e=>{clearTimeout(t),t=setTimeout(()=>{try{sessionStorage.setItem(f,JSON.stringify(e))}catch{}},250)});return()=>{n(),clearTimeout(t)}},[l,f,d]),LA(s,!0),(0,v.useEffect)(()=>{let e=e=>{Pk(e.target)||(e.key===`Escape`?a():e.shiftKey&&e.code===`Digit1`&&d())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,d]),(0,R.jsx)(Kf.div,{"data-ui":!0,role:`dialog`,"aria-label":`Idea board`,layoutId:e,style:{borderRadius:12},transition:{type:`spring`,duration:.34,bounce:.12},className:`absolute inset-4 z-30 flex flex-col overflow-hidden border border-rule bg-surface shadow-pop`,children:(0,R.jsxs)(Kf.div,{initial:{opacity:0},animate:{opacity:1,transition:{delay:.12,duration:.16}},exit:{opacity:0,transition:{duration:.08}},className:`flex min-h-0 grow flex-col`,children:[(0,R.jsxs)(`div`,{className:`flex h-[52px] shrink-0 items-center gap-2 border-b border-rule pr-2 pl-4`,children:[(0,R.jsx)(X,{name:`lightbulb`,size:16,className:`text-muted`}),(0,R.jsx)(`span`,{className:`text-[14px] font-semibold`,children:`Ideas`}),(0,R.jsx)(`span`,{className:`min-w-0 truncate text-[13px] text-muted`,children:r.title}),c?null:(0,R.jsx)(`span`,{className:`text-[12.5px] text-muted`,children:`· Reconnecting…`}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[s?(0,R.jsx)(RA,{editor:s}):(0,R.jsx)(`span`,{className:`px-2 text-[12.5px] text-muted`,children:`View only`}),(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Show all `,(0,R.jsx)(S_,{children:`⇧1`})]}),children:(0,R.jsx)(N_,{icon:`fit`,label:`Show all of the board`,onClick:()=>d()})}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Close `,(0,R.jsx)(S_,{children:`Esc`})]}),children:(0,R.jsx)(N_,{icon:`minimize`,label:`Close the idea board`,onClick:a})})]})]}),(0,R.jsx)(JA,{sheetRef:u,client:t,drawingKey:o,editor:s,camera:l})]})})}function JA({sheetRef:e,client:t,drawingKey:n,editor:r,camera:i}){let a=(0,v.useRef)(null),o=IA(),s=(0,v.useRef)(null),[c,l]=(0,v.useState)(!1);(0,v.useLayoutEffect)(()=>{let e=qO(a.current);return e(i.camera),i.subscribe(e)},[i]),(0,v.useEffect)(()=>{let t=e.current,n=e=>{e.preventDefault();let n=t.getBoundingClientRect(),r=e.deltaMode===1?16:e.deltaMode===2?n.height:1;if(e.ctrlKey||e.metaKey){let t=e.deltaY*r,a=Math.abs(t)<40?.012:.0025;i.zoomAt(e.clientX-n.left,e.clientY-n.top,Math.exp(-t*a))}else i.panBy(-e.deltaX*r,-e.deltaY*r)};return t.addEventListener(`wheel`,n,{passive:!1}),()=>t.removeEventListener(`wheel`,n)},[i,e]);let u=e=>e.button===1||o.current===!0||!r&&e.button===0;return(0,R.jsxs)(`div`,{ref:e,className:J(`relative min-h-0 grow touch-none overflow-hidden bg-surface`,c&&`cursor-grabbing`),onPointerDown:e=>{u(e)&&(e.preventDefault(),i.interrupt(),e.currentTarget.setPointerCapture(e.pointerId),s.current={id:e.pointerId,x:e.clientX,y:e.clientY},l(!0))},onPointerMove:e=>{let t=s.current;t&&t.id===e.pointerId&&(i.panBy(e.clientX-t.x,e.clientY-t.y),t.x=e.clientX,t.y=e.clientY)},onPointerUp:e=>{s.current?.id===e.pointerId&&(s.current=null,l(!1))},onPointerCancel:()=>{s.current=null,l(!1)},children:[(0,R.jsx)(`div`,{ref:a,className:`canvas-grid`}),(0,R.jsx)(zA,{client:t,drawingKey:n,editor:r,sizes:BA,camera:i,className:`absolute inset-0 h-full w-full`,onPointerDownCapture:u})]})}function YA({items:e,value:t,onChange:n,label:r,stretch:i,size:a=`ctrl`}){let o=(0,v.useId)();return(0,R.jsx)(`div`,{role:`group`,"aria-label":r,className:J(`shrink-0 items-center gap-0.5 rounded-[6px] bg-track p-[3px]`,a===`ctrl`?`h-ctrl`:`h-7`,i?`flex`:`inline-flex`),children:e.map(e=>{let r=e.value===t;return(0,R.jsxs)(`button`,{type:`button`,"aria-pressed":r,title:e.title,onClick:()=>n(e.value),className:J(`relative flex h-full cursor-pointer items-center justify-center whitespace-nowrap rounded-[4px] border-0 bg-transparent font-medium transition-colors`,a===`ctrl`?`px-2.5 text-ctrl`:`px-2 text-[12.5px]`,i&&`flex-1`,r?`text-ink`:`text-muted hover:text-ink2`),children:[r?(0,R.jsx)(Kf.span,{layoutId:o,className:`absolute inset-0 z-0 rounded-[4px] bg-surface shadow-[0_1px_2px_rgba(0,0,0,0.10)]`,transition:{type:`spring`,stiffness:520,damping:42}}):null,(0,R.jsx)(`span`,{className:`relative z-[1] flex items-center gap-1.5`,children:e.label})]},e.value)})})}var XA=new WeakMap,ZA=2200;function QA(e,t=`var(--action)`){clearTimeout(XA.get(e)),e.classList.remove(`target-ripple`),e.offsetWidth,e.style.setProperty(`--ripple-color`,t),e.classList.add(`target-ripple`),XA.set(e,setTimeout(()=>{e.classList.remove(`target-ripple`),e.style.removeProperty(`--ripple-color`)},ZA))}var $A=5500,ej=350,tj=(e,t)=>e>=window.innerWidth/2&&t<=window.innerHeight/2;function nj({frame:e,note:t,badge:n,children:r}){let[i,a]=(0,v.useState)(!0),[o,s]=(0,v.useState)(!1),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(0),g=(0,v.useRef)(null),_=(0,v.useRef)(void 0),y=(0,v.useRef)(void 0),b=e=>{a(!0),clearTimeout(_.current),_.current=setTimeout(()=>a(!1),e)},x=(e,t)=>{let n=e>=0&&tj(e,t);clearTimeout(y.current),n?s(!0):y.current=setTimeout(()=>s(!1),ej)};(0,v.useEffect)(()=>{if(!e)return;let t=()=>{cO(e,{type:`pointer`}),b($A),h(e=>e+1)};e.addEventListener(`load`,t);let n=sO(e,t=>{if(t.type!==`pointer`)return;if(d(!0),t.x<0)return x(-1,-1);let n=e.getBoundingClientRect(),r=n.left+t.x,i=n.top+t.y;t.down&&tj(r,i)?b($A):x(r,i)});return()=>{e.removeEventListener(`load`,t),n()}},[e]),(0,v.useEffect)(()=>{let e=e=>x(e.clientX,e.clientY),t=e=>{e.relatedTarget||x(-1,-1)};return window.addEventListener(`pointermove`,e,{passive:!0}),document.addEventListener(`pointerout`,t),()=>{window.removeEventListener(`pointermove`,e),document.removeEventListener(`pointerout`,t),clearTimeout(_.current),clearTimeout(y.current)}},[]),(0,v.useEffect)(()=>{if(u)return;let e=document.documentElement,t=()=>p(!0),n=()=>p(!1);return e.addEventListener(`pointerenter`,t),e.addEventListener(`pointerleave`,n),()=>{e.removeEventListener(`pointerenter`,t),e.removeEventListener(`pointerleave`,n)}},[u]);let S=i||o||c||!u&&f;return(0,v.useEffect)(()=>{if(!m)return;let e=setTimeout(()=>g.current&&QA(g.current),200);return()=>clearTimeout(e)},[m]),(0,R.jsxs)(R.Fragment,{children:[n?(0,R.jsx)(Kf.button,{type:`button`,"aria-label":`Show the page's notice`,initial:!1,animate:S?{opacity:0,scale:.8}:{opacity:1,scale:1},transition:{duration:.2,delay:S?0:.25},onClick:()=>b($A),tabIndex:S?-1:0,className:J(`absolute top-3 right-3 inline-flex h-7 cursor-pointer items-center gap-1.5 rounded-full border border-rule bg-surface/90 px-2.5 text-[11.5px] text-muted shadow-[0_1px_3px_rgb(0_0_0/0.08)] backdrop-blur-sm hover:text-ink2`,S&&`pointer-events-none`),children:n}):null,(0,R.jsx)(Kf.div,{ref:g,initial:{opacity:0,scale:.94,y:-4},animate:S?{opacity:1,scale:1,y:0}:{opacity:0,scale:.97,y:-2},transition:S?{type:`spring`,stiffness:420,damping:30}:{duration:.45,ease:`easeOut`},style:{transformOrigin:`top right`},className:J(`absolute top-3 right-3 flex max-w-[calc(100%-24px)] flex-col items-end rounded-[8px]`,!S&&`pointer-events-none`),"aria-hidden":!S||void 0,onFocus:()=>l(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||l(!1)},children:(0,R.jsxs)(`div`,{className:`flex max-w-full flex-wrap items-center justify-end gap-x-2 gap-y-1 rounded-[8px] border border-rule bg-surface p-1 shadow-pop`,children:[t?(0,R.jsxs)(`div`,{className:`flex min-h-8 min-w-0 flex-[1_1_auto] items-center gap-1.5 pl-2 text-[12px] leading-snug text-muted last:pr-2`,children:[(0,R.jsx)(X,{name:`info`,size:13,className:`shrink-0`}),(0,R.jsx)(`span`,{className:`min-w-0`,children:t})]}):null,r?(0,R.jsx)(`div`,{className:`flex items-center gap-1`,children:r}):null]})})]})}var rj=(e,t,n)=>`/c/${encodeURIComponent(e)}/full/${encodeURIComponent(t)}?theme=${n}`;function ij(e,t,n){let{frameSandbox:r}=e_(),{base:i}=le();return t?t.kind===`url`?t.url:hO(r?`${i}${rj(e,t.id,t.theme??n)}`:mO(t.url,t.theme??n)):null}function aj({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=i_(e),[,a]=I(),{frameSandbox:o,frameAllow:s,slots:c}=e_(),l=b_(),u=(0,v.useRef)(null),[d,f]=(0,v.useState)(null),p=(0,v.useCallback)(e=>{u.current=e,f(e)},[]),m=new URLSearchParams(window.location.search).get(`theme`),h=n?n.pages.flatMap(e=>e.sections.flatMap(e=>e.items.filter(e=>e.kind===`screen`||e.kind===`url`))):[],g=h.find(e=>e.id===t),_=(g?.kind===`screen`?g.theme:void 0)??(m===`light`||m===`dark`?m:n?.theme??l),y=g?g.kind===`screen`?mO(g.url,_):g.url:``,b=`/c/${encodeURIComponent(e)}`;return(0,v.useEffect)(()=>{g&&(document.title=`${g.title} · ${n?.title??``}`)},[g,n?.title]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a(b)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,b]),(0,v.useEffect)(()=>{let r=u.current;if(r&&g?.kind===`screen`)return sO(r,r=>{if(r.type===`keydown`&&r.code===`Escape`)a(b);else if(r.type===`go`){let t=r.target.includes(`/`)?r.target.split(`/`)[1]:r.target;h.some(e=>e.id===t)&&a(rj(e,t,_),{replace:!0})}else r.type===`link`&&n&&gO(r,n,t=>a(rj(e,t,_),{replace:!0}),t)})},[y,g?.kind]),r?(0,R.jsx)(zO,{title:`Canvas not found`,text:r.message}):i||!n?(0,R.jsx)(`div`,{className:`h-dvh bg-surface`}):g?(0,R.jsxs)(`div`,{className:`fixed inset-0 bg-surface`,children:[(0,R.jsx)(`iframe`,{ref:p,src:y,title:g.title,allow:s,sandbox:o,className:`block h-full w-full border-0`,style:{colorScheme:_},onLoad:()=>g.kind===`screen`&&dO(u.current,_)},`${g.id}:${g.kind===`screen`?g.rev:g.url}`),(0,R.jsxs)(nj,{frame:d,note:c.fullPlate?.note,badge:c.fullPlate?.badge,children:[(0,R.jsxs)(ye,{href:b,className:`flex h-8 min-w-0 items-center gap-2 rounded-[6px] px-2 text-[12.5px] text-ink2 no-underline hover:bg-soft2 hover:text-ink`,children:[(0,R.jsx)(X,{name:`x`,size:14}),(0,R.jsxs)(`span`,{className:`truncate`,children:[`Back to `,n.title]}),(0,R.jsx)(S_,{children:`esc`})]}),c.fullPlate?.actions]})]}):(0,R.jsx)(zO,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`})}function oj(e){return e.kind===`note`?`note`:e.kind===`image`?`image`:e.kind===`url`?`globe`:e.frame.width<600?`smartphone`:e.frame.width<1100?`tablet`:`monitor`}function sj(e,t){return`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(t.id)}`}function cj({canvas:e,page:t,store:n,onPick:r}){let i=Y(n,e=>e.selected),a=Y(n,e=>e.frames);return(0,R.jsxs)(`aside`,{"data-ui":!0,className:`flex w-[264px] shrink-0 flex-col overflow-hidden border-r border-rule bg-surface`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 border-b border-rule px-4 py-3.5`,children:[(0,R.jsx)(`div`,{className:`truncate text-[14px] font-semibold`,children:e.title}),e.description?(0,R.jsx)(`div`,{className:`line-clamp-3 text-[12.5px] leading-[1.45] text-muted`,children:e.description}):null]}),(0,R.jsxs)(`div`,{className:`min-h-0 grow overflow-y-auto pb-4`,children:[e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:`Pages`}),(0,R.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2`,children:e.pages.map(n=>{let r=n.sections.reduce((e,t)=>e+t.items.filter(e=>e.kind===`screen`||e.kind===`url`).length,0);return(0,R.jsxs)(ye,{href:sj(e,n),className:J(`flex h-8 items-center gap-2 rounded-[6px] px-2.5 text-[13.5px] no-underline transition-colors focus-visible:outline-offset-[-2px]`,n.id===t.id?`bg-soft2 font-medium text-ink`:`text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(X,{name:`file`,size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:n.title}),(0,R.jsx)(`span`,{className:`text-[12px] text-muted tabular`,children:r})]},n.id)})})]}):null,(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:e.pages.length>1?t.title:`Layers`}),(0,R.jsx)(`div`,{className:`flex flex-col px-2`,children:t.sections.map(e=>(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[e.title?(0,R.jsxs)(`div`,{className:`flex h-7 items-center gap-2 px-2.5 pt-1 text-[12px] font-medium text-ink2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:e.title}),(0,R.jsx)(R_,{value:e.items.length})]}):null,e.items.map(t=>{let n=(a[t.id]?.errors.length??0)>0||t.kind===`screen`&&t.missing;return(0,R.jsxs)(`button`,{type:`button`,onClick:()=>r(t.id),className:J(`flex h-8 w-full cursor-pointer items-center gap-2 rounded-[6px] border-0 px-2.5 text-left text-[13px] transition-colors focus-visible:outline-offset-[-2px]`,e.title&&`pl-4`,i===t.id?`bg-action-soft text-ink`:`bg-transparent text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(X,{name:oj(t),size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:t.title||(t.kind===`note`?`Note`:t.id)}),n?(0,R.jsx)(`span`,{className:`size-[7px] shrink-0 rounded-full bg-danger`}):null]},t.id)})]},e.id))})]})]})}function lj({canvas:e,page:t,theme:n,onTheme:r,sidebar:i,onSidebar:a,onPlay:o,canPlay:s,inspect:c,onInspect:l}){let[,u]=I(),{slots:d,scope:f}=e_(),p=(0,v.useRef)(null),m=(0,v.useRef)(null),h=vw(p,m,[e.title,t?.title,e.pages.length]);return(0,R.jsxs)(_w,{value:h,children:[(0,R.jsxs)(gw,{children:[d.barStart,d.brand?d.brand:f?(0,R.jsx)(mw,{}):(0,R.jsx)(kx,{content:`All canvases`,children:(0,R.jsx)(ye,{href:`/`,className:`flex items-center`,"aria-label":`All canvases`,children:(0,R.jsx)(mw,{})})}),(0,R.jsx)(N_,{icon:`panel-left`,label:i?`Hide sidebar (⌘\\)`:`Show sidebar (⌘\\)`,onClick:()=>a(!i)}),(0,R.jsxs)(`div`,{ref:p,className:`flex min-w-0 items-center gap-1.5 text-[14px]`,children:[(0,R.jsx)(`span`,{"data-fit":!0,className:`truncate font-semibold`,children:e.title}),t&&e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(X,{name:`chevron-right`,size:14,className:`shrink-0 text-muted`}),(0,R.jsxs)(ow,{width:240,trigger:(0,R.jsxs)(`button`,{type:`button`,className:`flex h-ctrl cursor-pointer items-center gap-1 rounded-[6px] border-0 bg-transparent px-2 text-[14px] text-ink2 hover:bg-soft2`,children:[(0,R.jsx)(`span`,{"data-fit":!0,className:`truncate`,children:t.title}),(0,R.jsx)(X,{name:`chevron-down`,size:14,className:`text-muted`})]}),children:[(0,R.jsx)(dw,{children:`Pages`}),e.pages.map(n=>(0,R.jsxs)(lw,{active:n.id===t.id,onSelect:()=>u(sj(e,n)),children:[(0,R.jsx)(X,{name:`file`,size:15,className:`text-muted`}),n.title]},n.id))]})]}):null]}),(0,R.jsxs)(`div`,{ref:m,className:`ml-auto flex shrink-0 items-center gap-2`,children:[(0,R.jsx)(YA,{label:`Screen theme`,value:n,onChange:r,items:[{value:`light`,label:(0,R.jsx)(X,{name:`sun`,size:15}),title:`Light screens`},{value:`dark`,label:(0,R.jsx)(X,{name:`moon`,size:15}),title:`Dark screens`}]}),(0,R.jsx)(pj,{on:c,onChange:l,compact:h}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Play `,(0,R.jsx)(S_,{children:`P`})]}),children:(0,R.jsx)(A_,{kind:`secondary`,icon:`play`,onClick:o,disabled:!s,"aria-label":`Play`,className:h?`w-ctrl px-0`:void 0,children:h?null:`Play`})}),(0,R.jsx)(Mx,{width:180,label:`Search`,compact:h}),(0,R.jsx)(pw,{}),d.barEnd]})]}),d.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:d.belowBar}):null]})}function uj({children:e}){return(0,R.jsx)(`div`,{"data-ui":!0,className:`pointer-events-none absolute inset-x-4 bottom-5 z-20 grid grid-cols-[minmax(var(--dock-left,0px),1fr)_minmax(0,auto)_minmax(var(--dock-right,0px),1fr)]`,children:(0,R.jsx)(`div`,{className:`col-start-2 flex min-w-0 justify-center`,children:e})})}function dj({canvas:e,store:t,layoutItems:n,theme:r,onPlay:i,inspect:a,onMarkup:o}){let s=Y(t,e=>e.selected),c=n.find(e=>e.id===s);return(0,R.jsx)(uj,{children:(0,R.jsx)(ed,{children:c?(0,R.jsx)(fj,{canvas:e,store:t,item:c,theme:r,onPlay:i,inspect:a,onMarkup:o},`bar`):null})})}function fj({canvas:e,store:t,item:n,theme:r,onPlay:i,inspect:a,onMarkup:o}){let{slots:s}=e_(),c=Y(t,e=>e.frames[n.id]),l=ij(e.id,n.kind===`screen`||n.kind===`url`?n:void 0,r),u=n.kind===`screen`||n.kind===`url`,d=()=>fO(document.querySelector(`[data-item="${CSS.escape(n.id)}"] iframe`)),f=c?.errors??[];return(0,R.jsxs)(Kf.div,{initial:{opacity:0,y:10,scale:.98},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:10,scale:.98,transition:{duration:.14,ease:`easeIn`}},transition:{type:`spring`,duration:.26,bounce:.12},className:`relative flex w-fit max-w-full min-w-0 flex-col`,children:[(0,R.jsx)(`div`,{className:`pointer-events-none absolute inset-x-5 bottom-full flex justify-center`,children:(0,R.jsx)(ed,{children:u&&a?(0,R.jsx)(Kf.div,{initial:{y:`100%`,opacity:0},animate:{y:0,opacity:.9},exit:{y:`100%`,opacity:0},transition:{type:`spring`,duration:.28,bounce:.15},className:`flex h-[22px] min-w-0 items-center rounded-t-[7px] border border-b-0 border-rule bg-surface/80 px-3 text-[11.5px] whitespace-nowrap text-muted backdrop-blur-md`,children:(0,R.jsx)(`span`,{className:`truncate`,children:`Click an element to inspect it`})},`inspect`):null})}),(0,R.jsxs)(`div`,{className:`pointer-events-auto relative flex max-w-full flex-col overflow-hidden rounded-[10px] border border-rule bg-surface shadow-pop`,children:[f.length?(0,R.jsxs)(`div`,{className:`flex max-h-40 items-start gap-2 overflow-y-auto border-b border-rule bg-danger-soft px-3.5 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(X,{name:`alert`,size:14,className:`mt-px`}),(0,R.jsx)(`span`,{className:`min-w-0`,children:f.join(`
130
130
  `)})]}):null,(0,R.jsxs)(`div`,{className:`flex h-[44px] items-center gap-1 pr-1.5 pl-3.5 [&>:not(:first-child)]:shrink-0`,children:[(0,R.jsx)(`span`,{className:`min-w-0 truncate pr-2 text-[13.5px] font-medium`,children:n.title||n.id}),u?(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Play `,(0,R.jsx)(S_,{children:`↵`})]}),children:(0,R.jsx)(N_,{icon:`play`,label:`Play`,onClick:()=>i(n.id)})}):null,l?(0,R.jsx)(kx,{content:`Open in a new tab`,children:(0,R.jsx)(`a`,{href:l,target:`_blank`,rel:`noreferrer`,"aria-label":`Open in a new tab`,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,children:(0,R.jsx)(X,{name:`external`,size:16})})}):null,u?(0,R.jsx)(kx,{content:`Reload`,children:(0,R.jsx)(N_,{icon:`refresh`,label:`Reload`,onClick:d})}):null,n.kind===`screen`&&o?(0,R.jsx)(kx,{content:`Mark up`,children:(0,R.jsx)(N_,{icon:`edit`,label:`Mark up`,onClick:()=>o(n.id)})}):null,n.kind===`screen`?(0,R.jsx)(kx,{content:`Copy source path`,children:(0,R.jsx)(N_,{icon:`copy`,label:`Copy source path`,onClick:()=>void FT(n.file,`Path copied`)})}):null,s.selectionActions?.(e.id,n),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Zoom to `,(0,R.jsx)(S_,{children:`⇧2`})]}),children:(0,R.jsx)(N_,{icon:`fit`,label:`Zoom to`,onClick:()=>window.dispatchEvent(new CustomEvent(`design:focus`,{detail:{canvas:e.id,item:n.id}}))})})]})]})]})}function pj({on:e,onChange:t,compact:n=!1}){return(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Inspect elements `,(0,R.jsx)(S_,{children:`I`})]}),children:(0,R.jsxs)(`button`,{type:`button`,"aria-pressed":e,"aria-label":`Inspect elements`,onClick:()=>t(!e),className:J(`inline-flex h-ctrl shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-[6px] border text-ctrl font-medium`,n?`w-ctrl px-0`:`px-ctrl`,e?`border-action-line bg-action-soft text-action`:`border-rule-strong bg-surface text-ink hover:bg-soft`),children:[(0,R.jsx)(X,{name:`pointer`,size:15}),n?null:`Inspect`]})})}var mj={pen:4,line:3,text:20},hj=600;function gj({layout:e,client:t,store:n,editor:r}){let i=Y(n,e=>e.markup),a=Y(t.store,e=>[...new Set([...Object.keys(e.drawings).filter(t=>e.drawings[t].strokes.length),...Object.keys(e.ghosts)])].sort().join(`
131
131
  `)),o=(0,v.useMemo)(()=>new Set(a.split(`
132
132
  `)),[a]),s=IA();return(0,R.jsx)(R.Fragment,{children:e.items.filter(e=>e.item.kind===`screen`&&(e.item.id===i||o.has(sT(e.item.id)))).map(e=>(0,R.jsx)(_j,{placed:e,client:t,editor:e.item.id===i?r:null,space:s},e.item.id))})}var _j=(0,v.memo)(function({placed:e,client:t,editor:n,space:r}){let{item:i,x:a,y:o,w:s,h:c}=e;return(0,R.jsx)(`div`,{className:`absolute`,style:{left:a,top:o,width:s,height:c,pointerEvents:n?`auto`:`none`},children:(0,R.jsx)(zA,{client:t,drawingKey:sT(i.id),width:s,height:c,editor:n,sizes:mj,className:`h-full w-full overflow-visible`,onPointerDownCapture:e=>e.button===1||r.current===!0})})});function vj({item:e,editor:t,onDone:n,room:r}){return(0,R.jsx)(uj,{children:(0,R.jsxs)(Kf.div,{initial:{opacity:0,y:10,scale:.98},animate:{opacity:1,y:0,scale:1},transition:{type:`spring`,duration:.26,bounce:.12},className:`pointer-events-auto flex h-[46px] max-w-full min-w-0 items-center gap-1 rounded-[10px] border border-rule bg-surface pr-1.5 pl-3.5 shadow-pop`,children:[(0,R.jsxs)(`span`,{className:`min-w-0 truncate pr-2 text-[13.5px]`,children:[(0,R.jsx)(`span`,{className:`text-muted`,children:`Marking up`}),` `,(0,R.jsx)(`span`,{className:`font-medium`,children:e.title||e.id})]}),(0,R.jsx)(RA,{editor:t,compact:r<hj,end:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`mx-1 h-5 w-px bg-rule`}),(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Done `,(0,R.jsx)(S_,{children:`Esc`})]}),children:(0,R.jsx)(A_,{kind:`secondary`,onClick:n,children:`Done`})})]})})]})})}var yj=new URLSearchParams(window.location.search),bj=yj.has(`capture`),xj=(e,t)=>`foss-design.camera.${e}.${t}`;function Sj(e){let t=b_(),n=yj.get(`theme`),[r,i]=(0,v.useState)(n===`dark`||n===`light`?n:null);return[r??e?.theme??t,i]}function Cj({canvasId:e,pageId:t}){let{data:n,error:r,isLoading:i}=i_(e);if(r)return(0,R.jsx)(zO,{title:`Canvas not found`,text:r.message});if(i||!n)return(0,R.jsx)(`div`,{className:`canvas-dots grow`});let a=t??yj.get(`page`)??void 0,o=n.pages.find(e=>e.id===a)??n.pages[0];return(0,R.jsx)(wj,{canvas:n,page:o},`${n.id}/${o?.id??``}`)}function wj({canvas:e,page:t}){let[,n]=I(),r=(0,v.useMemo)(()=>YO(),[]),i=(0,v.useMemo)(()=>new HO,[]),a=(0,v.useRef)(null),[o,s]=Sj(e),[c,l]=(0,v.useState)(()=>!bj&&window.innerWidth>900),[u,d]=(0,v.useState)(!1),f=Y(r,e=>e.sizes),p=(0,v.useMemo)(()=>t?mk(t,f):{items:[],sections:[],bounds:{x:0,y:0,w:0,h:0}},[t,f]),m=Aj(Y(r,e=>e.frameEls),p),h=vO(m),g=u||h;(0,v.useEffect)(()=>{r.set(e=>e.inspecting===g?e:{...e,inspecting:g,active:null})},[g,r]);let _=_O(m,g,{onEscape:()=>d(!1)}),y=!!_.info;(0,v.useEffect)(()=>{y&&d(!0)},[y]);let b=_.info;(0,v.useEffect)(()=>{let e=_.frame;if(!e||!b)return;let t=Object.entries(r.get().frameEls).find(([,t])=>t===e)?.[0];t&&r.get().selected!==t&&r.set(e=>({...e,selected:t}))},[_.frame,b,r]);let x=(0,v.useMemo)(()=>hk(p),[p]),S=xj(e.id,t?.id??``),C=(0,v.useRef)(null),w=(0,v.useRef)(null),T=(0,v.useRef)(null),E=kj(C,w,T,e.issues.length>0),D=FO(e.id,!bj),O=Y(D?.store??RO,e=>e.ready&&e.canDraw),k=Y(r,e=>e.markup),A=k?p.items.find(e=>e.item.id===k)?.item:void 0,j=FA(A&&O?D:null,k?sT(k):null,`red`);LA(j,!!j);let M=(0,v.useCallback)(()=>r.set(e=>e.markup?{...e,markup:null}:e),[r]);(0,v.useEffect)(()=>{k&&(!A||!O||g)&&M()},[k,A,O,g,M]);let ee=(0,v.useRef)(!1);(0,v.useEffect)(()=>{if(ee.current||!p.bounds.w)return;ee.current=!0;let t=u_(e.id),n=bj?null:UO(S);t?(r.set(e=>({...e,selected:t})),requestAnimationFrame(()=>a.current?.fitItem(t,!1))):n&&n.z>=i.minZoom?i.set(n):requestAnimationFrame(()=>bj?a.current?.fitAll(!1):a.current?.openView())},[p,i,S,e.id,r]),(0,v.useEffect)(()=>{if(bj)return;let e,t=i.subscribe(t=>{clearTimeout(e),e=setTimeout(()=>sessionStorage.setItem(S,JSON.stringify(t)),250)});return()=>{t(),clearTimeout(e)}},[i,S]);let N=(0,v.useCallback)(e=>{let t=e?p.items.find(t=>t.item.id===e)?.item:void 0;r.set(e=>({...e,selected:t?t.id:null,active:t&&dk(t)?t.id:null,hovered:null,markup:t&&t.id===e.markup?e.markup:null}))},[p,r]),P=(0,v.useCallback)(e=>{d(!1),r.set(t=>({...t,selected:e,active:null,markup:e,hovered:null})),a.current?.fitItem(e)},[r]),te=(0,v.useCallback)(e=>{N(e),a.current?.fitItem(e)},[N]),ne=(0,v.useCallback)(r=>n(`/c/${encodeURIComponent(e.id)}/play/${encodeURIComponent(r)}${t?`?page=${encodeURIComponent(t.id)}`:``}`),[e.id,t,n]),F=(0,v.useCallback)(()=>{let e=r.get().selected,t=e&&x.find(t=>t.item.id===e)||x[0];t&&ne(t.item.id)},[r,x,ne]);(0,v.useEffect)(()=>{let t=t=>{let n=t.detail;n.canvas===e.id&&p.items.some(e=>e.item.id===n.item)&&(u_(e.id),te(n.item))};return window.addEventListener(`design:focus`,t),()=>window.removeEventListener(`design:focus`,t)},[e.id,p,te]);let re=(0,v.useMemo)(()=>({onGo(r,i){let[a,o]=i.includes(`/`)?i.split(`/`):[null,i],s=a?e.pages.filter(e=>e.id===a):[t,...e.pages.filter(e=>e!==t)];for(let r of s)if(r&&r.sections.some(e=>e.items.some(e=>e.id===o))){r===t?te(o):(n(sj(e,r)),window.dispatchEvent(new CustomEvent(`design:focus`,{detail:{canvas:e.id,item:o}})));return}console.warn(`[design] go("${i}"): no such screen`)},onLink(t,n){gO(n,e,e=>this.onGo(t,e),t)},onWheel(e,t){let n=e.closest(`.canvas-root`);if(!n)return;let r=n.getBoundingClientRect(),a=e.getBoundingClientRect(),o=i.camera.z;if(t.zoom){let e=Math.abs(t.deltaY)<40?.012:.0025;i.zoomAt(a.left-r.left+t.x*o,a.top-r.top+t.y*o,Math.exp(-t.deltaY*e))}else i.panBy(-t.deltaX,-t.deltaY)},onEscape(){r.set(e=>({...e,active:null,selected:null}))}}),[e,t,i,r,te,n]);return(0,v.useEffect)(()=>{if(!bj)return;let e=Date.now(),t=setInterval(()=>{let n=r.get().frames;(x.every(e=>n[e.item.id]?.ready||e.item.kind===`screen`&&e.item.missing)||Date.now()-e>6e4)&&(clearInterval(t),a.current?.fitAll(!1),requestAnimationFrame(()=>requestAnimationFrame(()=>window.__DESIGN_CANVAS_READY__=!0)))},250);return()=>clearInterval(t)},[x,r]),(0,v.useEffect)(()=>{let i=i=>{if(Pk(i.target)||document.querySelector(`[role="dialog"]`))return;let o=a.current,s=r.get(),c=i.metaKey||i.ctrlKey;if(s.markup){i.key===`Escape`&&M();return}if(i.key===`Escape`)_.info?_.select(null):u?d(!1):(s.active||s.selected)&&r.set(e=>({...e,active:null,selected:null}));else if(i.key===`i`&&!c&&!i.altKey)d(e=>!e);else if(i.key===`p`&&!c&&!i.altKey)F();else if(i.shiftKey&&i.code===`Digit1`)o?.fitAll();else if(i.shiftKey&&i.code===`Digit2`&&s.selected)o?.fitItem(s.selected);else if(i.shiftKey&&i.code===`Digit0`)o?.zoomTo(1);else if((i.key===`=`||i.key===`+`)&&!i.altKey)i.preventDefault(),o?.zoomBy(1.4);else if(i.key===`-`&&!i.altKey)i.preventDefault(),o?.zoomBy(1/1.4);else if(c&&i.key===`0`)i.preventDefault(),o?.zoomTo(1);else if(c&&i.key===`\\`)i.preventDefault(),l(e=>!e);else if([`ArrowRight`,`ArrowDown`,`ArrowLeft`,`ArrowUp`].includes(i.key)&&x.length){i.preventDefault();let e=x.findIndex(e=>e.item.id===s.selected),t=i.key===`ArrowRight`||i.key===`ArrowDown`?1:-1,n=x[e===-1?0:(e+t+x.length)%x.length];r.set(e=>({...e,selected:n.item.id,active:null})),o?.fitItem(n.item.id)}else if(i.key===`Enter`&&s.selected){let e=p.items.find(e=>e.item.id===s.selected)?.item;e&&dk(e)&&ne(e.id)}else if(i.key===`]`||i.key===`[`){let r=t?e.pages.indexOf(t):-1,a=e.pages[r+(i.key===`]`?1:-1)];a&&n(sj(e,a))}};return window.addEventListener(`keydown`,i),()=>window.removeEventListener(`keydown`,i)},[r,x,p,ne,F,e,t,n,u,_,M]),bj?(0,R.jsx)(`div`,{className:`flex h-dvh`,children:(0,R.jsx)(Mk,{layout:p,theme:o,store:r,camera:i,events:re,capture:!0,apiRef:a,onPlay:()=>{},onSelect:()=>{}})}):(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(lj,{canvas:e,page:t,theme:o,onTheme:s,sidebar:c,onSidebar:l,inspect:u,onInspect:d,onPlay:F,canPlay:x.length>0}),(0,R.jsxs)(`div`,{className:`flex min-h-0 grow basis-0`,children:[(0,R.jsx)(MO,{open:c&&!!t,side:`left`,width:264,children:t?(0,R.jsx)(cj,{canvas:e,page:t,store:r,onPick:te}):null}),(0,R.jsxs)(`div`,{ref:C,className:`relative min-w-0 grow`,style:E.style,children:[t&&p.items.length?(0,R.jsx)(Mk,{layout:p,theme:o,store:r,camera:i,events:re,capture:!1,apiRef:a,onPlay:ne,over:D?(0,R.jsx)(gj,{layout:p,client:D,store:r,editor:j}):null,onSelect:e=>{e||(_.select(null),d(!1)),N(e)}}):(0,R.jsx)(`div`,{className:`canvas-dots flex h-full`,children:(0,R.jsx)(tv,{title:t?`This page is empty`:`This canvas has no pages`,text:(0,R.jsxs)(R.Fragment,{children:[`Add sections and screens to`,` `,(0,R.jsxs)(`code`,{className:`font-mono text-[13px]`,children:[`.design/canvas/`,e.id,`/canvas.json`]}),`.`]})})}),A&&j?(0,R.jsx)(vj,{item:A,editor:j,onDone:M,room:E.room}):(0,R.jsx)(dj,{canvas:e,store:r,layoutItems:p.items.map(e=>e.item),theme:o,onPlay:ne,inspect:g,onMarkup:O?P:void 0}),(0,R.jsx)(Ej,{ref:w,camera:i,apiRef:a}),D&&t?(0,R.jsx)(GA,{client:D,canvasId:e.id,page:t}):null,e.issues.length?(0,R.jsx)(Dj,{ref:T,canvas:e}):null]}),(0,R.jsx)(MO,{open:u,side:`right`,width:320,children:(0,R.jsx)(OO,{info:_.info,active:!0,onSelect:e=>_.select(e),onClose:()=>{d(!1),_.select(null)}})})]})]})}function Tj({camera:e}){let[t,n]=(0,v.useState)(e.camera.z);return(0,v.useEffect)(()=>{let t=0;return e.subscribe(e=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>n(e.z))})},[e]),(0,R.jsxs)(R.Fragment,{children:[Math.round(t*100),`%`]})}function Ej({ref:e,camera:t,apiRef:n}){return(0,R.jsxs)(`div`,{ref:e,"data-ui":!0,className:`absolute right-4 bottom-5 z-20 flex h-[46px] items-center gap-0.5 rounded-[10px] border border-rule bg-surface px-1.5 shadow-pop`,children:[(0,R.jsx)(N_,{icon:`zoom-out`,label:`Zoom out (−)`,onClick:()=>n.current?.zoomBy(1/1.4)}),(0,R.jsxs)(ow,{side:`top`,align:`end`,width:210,trigger:(0,R.jsx)(`button`,{type:`button`,className:`h-ctrl min-w-[56px] cursor-pointer rounded-[6px] border-0 bg-transparent px-1.5 text-[12.5px] font-medium text-ink2 tabular hover:bg-soft2`,children:(0,R.jsx)(Tj,{camera:t})}),children:[(0,R.jsx)(lw,{onSelect:()=>n.current?.fitAll(),hint:`⇧1`,children:`Zoom to fit`}),(0,R.jsx)(lw,{onSelect:()=>n.current?.zoomTo(1),hint:`⇧0`,children:`100%`}),(0,R.jsx)(uw,{}),[.25,.5,2].map(e=>(0,R.jsxs)(lw,{onSelect:()=>n.current?.zoomTo(e),children:[e*100,`%`]},e))]}),(0,R.jsx)(N_,{icon:`zoom-in`,label:`Zoom in (+)`,onClick:()=>n.current?.zoomBy(1.4)}),(0,R.jsx)(`div`,{className:`mx-0.5 h-5 w-px bg-rule`}),(0,R.jsx)(N_,{icon:`fit`,label:`Zoom to fit (⇧1)`,onClick:()=>n.current?.fitAll()})]})}function Dj({ref:e,canvas:t}){let n=t.issues.filter(e=>e.severity===`error`).length;return(0,R.jsxs)(Jw,{children:[(0,R.jsx)(Yw,{asChild:!0,children:(0,R.jsxs)(`button`,{ref:e,type:`button`,"data-ui":!0,className:`absolute bottom-5 left-4 z-20 flex h-[46px] cursor-pointer items-center gap-2 rounded-[10px] border border-rule bg-surface px-3.5 text-[13px] font-medium shadow-pop hover:bg-soft`,children:[(0,R.jsx)(X,{name:`alert`,size:15,className:n?`text-danger-text`:`text-action`}),t.issues.length,` `,t.issues.length===1?`problem`:`problems`,` in canvas.json`]})}),(0,R.jsx)(Xw,{children:(0,R.jsx)(Zw,{side:`top`,align:`start`,sideOffset:8,collisionPadding:12,onFocusOutside:sw,className:`z-50 max-h-[50vh] w-[460px] max-w-[calc(100vw-24px)] overflow-y-auto rounded-[10px] border border-rule bg-surface shadow-pop outline-none data-[state=open]:animate-[q-pop_120ms_ease-out]`,children:(0,R.jsx)(kO,{issues:t.issues})})})]})}var Oj=10;function kj(e,t,n,r){let[i,a]=(0,v.useState)({area:0,left:0,right:0});return(0,v.useLayoutEffect)(()=>{let r=()=>a(r=>{let i={area:e.current?.clientWidth??0,left:n.current?n.current.offsetWidth+Oj:0,right:t.current?t.current.offsetWidth+Oj:0};return i.area===r.area&&i.left===r.left&&i.right===r.right?r:i});r();let i=new ResizeObserver(r);for(let r of[e.current,n.current,t.current])r&&i.observe(r);return()=>i.disconnect()},[e,n,t,r]),{style:{"--dock-left":`${i.left}px`,"--dock-right":`${i.right}px`},room:Math.max(0,i.area-32-i.left-i.right)}}function Aj(e,t){let n=(0,v.useRef)([]);return(0,v.useMemo)(()=>{let r=new Set(t.items.filter(e=>e.item.kind===`screen`).map(e=>e.item.id)),i=Object.entries(e).filter(e=>!!e[1]&&r.has(e[0])).map(([,e])=>e);return i.length===n.current.length&&i.every((e,t)=>e===n.current[t])||(n.current=i),n.current},[e,t])}var jj=48,Mj=Math.max(0,Math.floor(Number(new URLSearchParams(window.location.search).get(`max`))||0));function Nj(e){let t=e<1e3?Math.min(2,1e3/e):1,n=Mj?Math.min(Mj,3200):3200;return e*t>n?n/e:t}var Pj=(e,t)=>Mj&&e&&t?Math.min(1,Mj/Math.max(e,t)):1;function Fj(e,t=0,n=0,r=1){(0,v.useEffect)(()=>{if(!e)return;window.__DESIGN_DRAWING_SIZE__=t&&n?{width:t,height:n}:void 0,window.__DESIGN_DRAWING_PARTS__=r;let i=requestAnimationFrame(()=>requestAnimationFrame(()=>{window.__DESIGN_DRAWING_READY__=!0}));return()=>cancelAnimationFrame(i)},[e,t,n,r])}function Ij({canvasId:e,pageId:t}){let n=FO(e),r=Y(n?.store??RO,e=>e.ready);return n?(0,R.jsx)(Lj,{client:n,pageId:t,ready:r}):null}function Lj({client:e,pageId:t,ready:n}){let{drawing:r}=LO(e,oT(t)),i=(0,v.useMemo)(()=>TT(r?.strokes??[]).map(({box:e,strokes:t})=>{let n={x:e.x-jj,y:e.y-jj,w:e.w+96,h:e.h+96},r=Nj(Math.max(n.w,n.h));return{crop:n,strokes:t,width:Math.ceil(n.w*r),height:Math.ceil(n.h*r)}}),[r]);return Fj(n,Math.max(0,...i.map(e=>e.width)),i.reduce((e,t)=>e+t.height,0),i.length),(0,R.jsx)(`div`,{className:`flex flex-col items-start`,children:i.map((e,t)=>(0,R.jsx)(`div`,{"data-part":t,className:`bg-surface`,style:{width:e.width,height:e.height},children:(0,R.jsx)(`svg`,{viewBox:`${e.crop.x} ${e.crop.y} ${e.crop.w} ${e.crop.h}`,width:e.width,height:e.height,"aria-hidden":`true`,children:(0,R.jsx)(kA,{drawing:{strokes:e.strokes,erased:[]}})})},e.strokes[0].id))})}var Rj={onGo(){},onLink(){},onWheel(){},onEscape(){}};function zj({canvasId:e,itemId:t}){let{data:n,error:r}=i_(e),i=FO(e),a=(0,v.useMemo)(()=>YO(),[]),o=Y(a,e=>e.sizes),s=(0,v.useMemo)(()=>{for(let e of n?.pages??[])for(let n of e.sections)for(let e of n.items)if(e.id===t&&e.kind===`screen`)return{item:e,section:n};return null},[n,t]),c=Y(a,e=>s?!!e.frames[s.item.id]?.ready:!1),l=Y(i?.store??RO,e=>e.ready),u=s?fk(s.item,o):{w:0,h:0},d=Pj(u.w,u.h);if(Fj(c&&l,Math.round(u.w*d),Math.ceil(u.h*d)),r)return(0,R.jsx)(zO,{title:`Canvas not found`,text:r.message});if(!n||!i)return null;if(!s)return(0,R.jsx)(zO,{title:`Screen not found`,text:`No screen "${t}" in "${e}".`});let f=new URLSearchParams(window.location.search).get(`theme`),p=f===`dark`||f===`light`?f:n.theme??`light`,m={item:s.item,section:s.section,x:0,y:0,w:u.w,h:u.h};return(0,R.jsx)(`div`,{className:`overflow-hidden`,style:{width:u.w*d,height:u.h*d},children:(0,R.jsxs)(`div`,{className:`relative origin-top-left`,style:{width:u.w,height:u.h,transform:d<1?`scale(${d})`:void 0},children:[(0,R.jsx)(tk,{placed:m,mode:`live`,thumb:!1,theme:p,store:a,events:Rj,capture:!0}),(0,R.jsx)(`div`,{className:`absolute inset-0`,children:(0,R.jsx)(zA,{client:i,drawingKey:sT(t),width:u.w,height:u.h,sizes:mj,className:`h-full w-full overflow-visible`})})]})})}function Bj({open:e,onOpenChange:t,title:n,children:r}){return(0,R.jsx)(gg,{open:e,onOpenChange:t,children:(0,R.jsx)(ed,{children:e?(0,R.jsxs)(bg,{forceMount:!0,children:[(0,R.jsx)(Sg,{asChild:!0,forceMount:!0,children:(0,R.jsx)(Kf.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.16},className:`fixed inset-0 z-50 bg-overlay`})}),(0,R.jsx)(Eg,{asChild:!0,forceMount:!0,"aria-describedby":void 0,children:(0,R.jsxs)(Kf.div,{initial:{y:`100%`},animate:{y:0},exit:{y:`100%`,transition:{duration:.18,ease:`easeIn`}},transition:{type:`spring`,stiffness:420,damping:40},className:`fixed inset-x-0 bottom-0 z-50 flex max-h-[82dvh] flex-col rounded-t-[14px] border-t border-rule bg-surface pb-[env(safe-area-inset-bottom)] shadow-pop outline-none`,children:[(0,R.jsx)(`div`,{className:`flex justify-center pt-2`,children:(0,R.jsx)(`span`,{"aria-hidden":!0,className:`h-1 w-9 rounded-full bg-rule-strong`})}),(0,R.jsxs)(`div`,{className:`flex min-h-[48px] items-center justify-between gap-3 pr-2 pl-4`,children:[(0,R.jsx)(jg,{className:`m-0 truncate text-[15px] font-semibold`,children:n}),(0,R.jsx)(Ng,{asChild:!0,children:(0,R.jsx)(N_,{icon:`x`,label:`Close`})})]}),(0,R.jsx)(`div`,{className:`min-h-0 overflow-y-auto overscroll-contain border-t border-rule`,children:r})]})})]}):null})})}function Vj(e,t){return(t?e.pages.filter(e=>e.id===t):e.pages).flatMap(t=>t.sections.flatMap(n=>n.items.filter(e=>e.kind===`screen`||e.kind===`url`).map(r=>({item:r,pageId:t.id,where:[e.pages.length>1?t.title:null,n.title].filter(Boolean).join(` · `)}))))}var Hj=(e,t,n)=>`/c/${encodeURIComponent(e)}/play/${encodeURIComponent(t)}?page=${encodeURIComponent(n)}`;function Uj({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=i_(e);return r?(0,R.jsx)(zO,{title:`Canvas not found`,text:r.message}):i||!n?null:(0,R.jsx)(Wj,{canvas:n,itemId:t})}function Wj({canvas:e,itemId:t}){let[,n]=I(),{frameSandbox:r,frameAllow:i,slots:a}=e_(),o=new URLSearchParams(window.location.search).get(`page`)??(window.location.hash.split(`?`)[1]?new URLSearchParams(window.location.hash.split(`?`)[1]).get(`page`):null),s=(0,v.useMemo)(()=>Vj(e,null),[e]),c=s.find(e=>e.item.id===t),l=o??c?.pageId??null,u=(0,v.useMemo)(()=>l?Vj(e,l):s,[e,l,s]),d=u.findIndex(e=>e.item.id===t),f=b_(),[p,m]=(0,v.useState)(e.theme??f),[h,g]=(0,v.useState)(`fit`),_=(0,v.useRef)(null),y=(0,v.useRef)(null),[b,x]=(0,v.useState)(null),S=(0,v.useCallback)(e=>{y.current=e,x(e)},[]),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)({w:0,h:0}),[D,O]=(0,v.useState)([]),k=l?`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(l)}`:`/c/${encodeURIComponent(e.id)}`,A=t=>{if(!u.length)return;let r=u[(d+t+u.length)%u.length];n(Hj(e.id,r.item.id,r.pageId),{replace:!0})};(0,v.useLayoutEffect)(()=>{let e=_.current;if(!e)return;let t=new ResizeObserver(()=>E({w:e.clientWidth,h:e.clientHeight}));return t.observe(e),()=>t.disconnect()},[]),(0,v.useEffect)(()=>{let e=e=>{Pk(e.target)||document.querySelector(`[role="dialog"]`)||(e.key===`ArrowRight`?A(1):e.key===`ArrowLeft`?A(-1):e.key===`i`&&!e.metaKey&&!e.ctrlKey&&!e.altKey?w(e=>!e):e.key===`Escape`&&(re.info?re.select(null):C?w(!1):n(k)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let j=u[d],M=j?.item,ee=M?.kind===`screen`?M.theme??p:p,N=ij(e.id,M,ee),[P]=(0,v.useState)(ee),te=M?M.kind===`screen`?mO(M.url,P):M.url:``,ne=(0,v.useMemo)(()=>b&&M?.kind===`screen`?[b]:[],[b,M?.kind]),F=vO(ne),re=_O(ne,C||F,{onEscape:()=>w(!1)}),ie=!!re.info;if((0,v.useEffect)(()=>{ie&&w(!0)},[ie]),(0,v.useEffect)(()=>{let t=y.current;if(t&&M?.kind===`screen`)return O([]),sO(t,t=>{if(t.type===`error`)O(e=>aO(e,t.message));else if(t.type===`updated`)O([]);else if(t.type===`keydown`&&t.code===`Escape`)n(k);else if(t.type===`go`){let[r,i]=t.target.includes(`/`)?t.target.split(`/`):[null,t.target],a=s.find(e=>e.item.id===i&&(!r||e.pageId===r));a&&n(Hj(e.id,a.item.id,a.pageId))}else t.type===`link`&&gO(t,e,t=>{let r=s.find(e=>e.item.id===t);r&&n(Hj(e.id,r.item.id,r.pageId))},M?.id)})},[M,te,s,e.id,n,k]),(0,v.useEffect)(()=>{M?.kind===`screen`&&dO(y.current,ee)},[ee,M]),!M)return(0,R.jsx)(zO,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`});let ae=M.frame.width,oe=M.frame.height===`auto`?Math.max(T.h-48,400):M.frame.height,se=h===`fit`?Math.min(1,(T.w-48)/ae,(T.h-48)/oe):1,ce=ae<=T.w-48&&oe<=T.h-48;return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsxs)(gw,{children:[a.barStart,(0,R.jsx)(kx,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Back to canvas `,(0,R.jsx)(S_,{children:`esc`})]}),children:(0,R.jsx)(ye,{href:k,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,"aria-label":`Back to canvas`,children:(0,R.jsx)(X,{name:`arrow-left`,size:16})})}),(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[(0,R.jsx)(`span`,{className:`truncate text-[14px] font-semibold`,children:M.title}),(0,R.jsx)(`span`,{className:`truncate text-[12px] text-muted`,children:[e.title,j.where].filter(Boolean).join(` · `)})]}),(0,R.jsxs)(`div`,{className:`mx-auto flex items-center gap-1`,children:[(0,R.jsx)(N_,{icon:`chevron-left`,label:`Previous screen (←)`,onClick:()=>A(-1),disabled:u.length<2}),(0,R.jsxs)(`span`,{className:`min-w-[52px] text-center text-[12.5px] text-muted tabular`,children:[d+1,` / `,u.length]}),(0,R.jsx)(N_,{icon:`chevron-right`,label:`Next screen (→)`,onClick:()=>A(1),disabled:u.length<2})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ce?null:(0,R.jsx)(YA,{label:`Scale`,value:h,onChange:g,items:[{value:`fit`,label:`Fit`},{value:`actual`,label:`100%`}]}),M.kind===`screen`&&!M.theme?(0,R.jsx)(YA,{label:`Screen theme`,value:p,onChange:m,items:[{value:`light`,label:(0,R.jsx)(X,{name:`sun`,size:15}),title:`Light`},{value:`dark`,label:(0,R.jsx)(X,{name:`moon`,size:15}),title:`Dark`}]}):null,M.kind===`screen`?(0,R.jsx)(pj,{on:C,onChange:w}):null,(0,R.jsx)(N_,{icon:`refresh`,label:`Reload`,onClick:()=>fO(y.current)}),N?(0,R.jsx)(`a`,{href:N,target:`_blank`,rel:`noreferrer`,title:`Open in a new tab`,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,children:(0,R.jsx)(X,{name:`external`,size:16})}):null,(0,R.jsx)(pw,{}),a.barEnd]})]}),a.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:a.belowBar}):null,(0,R.jsxs)(`div`,{className:`flex min-h-0 grow basis-0`,children:[(0,R.jsxs)(`div`,{ref:_,className:`canvas-dots relative min-w-0 grow overscroll-none ${h===`actual`?`overflow-auto`:`overflow-hidden`}`,children:[D.length?(0,R.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(X,{name:`alert`,size:14,className:`mt-px`}),D.join(`
@@ -14,8 +14,8 @@
14
14
  document.documentElement.dataset.theme = dark ? 'dark' : 'light'
15
15
  } catch (e) {}
16
16
  </script>
17
- <script type="module" crossorigin src="./assets/index-xErZjcMe.js"></script>
18
- <link rel="stylesheet" crossorigin href="./assets/index-Dg5nDlgF.css">
17
+ <script type="module" crossorigin src="./assets/index-Dv7u094m.js"></script>
18
+ <link rel="stylesheet" crossorigin href="./assets/index-DWLWsAwJ.css">
19
19
  </head>
20
20
  <body>
21
21
  <div id="root"></div>
@@ -14097,7 +14097,7 @@ function CornerPlate({ frame, note, badge, children }) {
14097
14097
  children: /* @__PURE__ */ jsxs("div", {
14098
14098
  className: "flex max-w-full flex-wrap items-center justify-end gap-x-2 gap-y-1 rounded-[8px] border border-rule bg-surface p-1 shadow-pop",
14099
14099
  children: [note ? /* @__PURE__ */ jsxs("div", {
14100
- className: "flex min-h-8 min-w-0 flex-[1_1_auto] items-center gap-1.5 pl-2 text-[12px] leading-snug text-muted",
14100
+ className: "flex min-h-8 min-w-0 flex-[1_1_auto] items-center gap-1.5 pl-2 text-[12px] leading-snug text-muted last:pr-2",
14101
14101
  children: [/* @__PURE__ */ jsx(Icon, {
14102
14102
  name: "info",
14103
14103
  size: 13,
@@ -2407,6 +2407,10 @@
2407
2407
  border-top-width: 0;
2408
2408
  }
2409
2409
 
2410
+ .last\:pr-2:last-child {
2411
+ padding-right: calc(var(--spacing) * 2);
2412
+ }
2413
+
2410
2414
  .focus-within\:outline-2:focus-within {
2411
2415
  outline-style: var(--tw-outline-style);
2412
2416
  outline-width: 2px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foss-design",
3
- "version": "0.9.14",
3
+ "version": "0.9.15",
4
4
  "description": "Design canvases and design systems for coding agents: live, animated, clickable screens on an infinite canvas, served locally from a .design folder.",
5
5
  "type": "module",
6
6
  "license": "MIT",