overmux 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +7 -0
  3. package/dist/auth/.vite/manifest.json +11 -0
  4. package/dist/auth/assets/index-Bx8JhwVi.css +1 -0
  5. package/dist/auth/assets/index-CHIE7qYj.js +72 -0
  6. package/dist/auth/index.html +14 -0
  7. package/dist/bin.js +4863 -7897
  8. package/dist/bin.js.map +1 -0
  9. package/dist/docs/000-index.md +21 -0
  10. package/dist/docs/100-introduction/100-what-is-overmux.md +7 -0
  11. package/dist/docs/100-introduction/200-how-overmux-works.md +7 -0
  12. package/dist/docs/100-introduction/300-why-overmux.md +22 -0
  13. package/dist/docs/200-getting-started/100-install-and-run-overmux.md +50 -0
  14. package/dist/docs/200-getting-started/200-install-overmux-desktop.md +41 -0
  15. package/dist/docs/200-getting-started/300-install-overmux-pwa.mdx +92 -0
  16. package/dist/docs/200-getting-started/400-secure-with-https/100-choose-an-https-setup.md +14 -0
  17. package/dist/docs/200-getting-started/400-secure-with-https/200-tailscale-serve.md +44 -0
  18. package/dist/docs/200-getting-started/400-secure-with-https/300-cloudflare-tunnel.md +59 -0
  19. package/dist/docs/200-getting-started/400-secure-with-https/400-self-hosted-reverse-proxy.md +32 -0
  20. package/dist/docs/300-fundamentals/100-project-structure.md +23 -0
  21. package/dist/docs/300-fundamentals/200-configuration.md +3 -0
  22. package/dist/docs/300-fundamentals/300-theming.md +3 -0
  23. package/dist/docs/300-fundamentals/400-server.md +3 -0
  24. package/dist/docs/300-fundamentals/500-client.md +3 -0
  25. package/dist/docs/300-fundamentals/600-operations.md +3 -0
  26. package/dist/docs/300-fundamentals/700-resources.md +3 -0
  27. package/dist/docs/300-fundamentals/800-streams.md +3 -0
  28. package/dist/docs/300-fundamentals/900-authentication-and-security.md +3 -0
  29. package/dist/docs/400-reference/100-configuration.md +3 -0
  30. package/dist/docs/400-reference/200-server-api.md +3 -0
  31. package/dist/docs/400-reference/300-client-api.md +20 -0
  32. package/dist/docs/400-reference/400-cli/050-init.md +17 -0
  33. package/dist/docs/400-reference/400-cli/100-serve.md +33 -0
  34. package/dist/docs/400-reference/400-cli/200-auth.md +52 -0
  35. package/dist/docs/400-reference/400-cli/300-call.md +28 -0
  36. package/dist/docs/400-reference/400-cli/400-check.md +20 -0
  37. package/dist/docs/400-reference/400-cli/500-ai-context.md +102 -0
  38. package/dist/docs/400-reference/400-cli/600-docs.md +23 -0
  39. package/dist/docs/400-reference/400-cli/700-desktop.md +35 -0
  40. package/dist/docs/500-hosted-pages.md +31 -0
  41. package/dist/exports/client.d.ts +254 -0
  42. package/dist/exports/client.d.ts.map +1 -0
  43. package/dist/exports/client.js +1665 -0
  44. package/dist/exports/client.js.map +1 -0
  45. package/dist/exports/index-D3_Dpy_T.d.ts +155 -0
  46. package/dist/exports/index-D3_Dpy_T.d.ts.map +1 -0
  47. package/dist/exports/index.d.ts +2 -0
  48. package/dist/exports/index.js +49 -0
  49. package/dist/exports/index.js.map +1 -0
  50. package/dist/exports/notifications-kDp16bU_.js +56 -0
  51. package/dist/exports/notifications-kDp16bU_.js.map +1 -0
  52. package/dist/exports/server.d.ts +63 -0
  53. package/dist/exports/server.d.ts.map +1 -0
  54. package/dist/exports/server.js +1120 -0
  55. package/dist/exports/server.js.map +1 -0
  56. package/dist/exports/style.css +368 -0
  57. package/dist/internal/server/coordinator/server-child.d.ts +1 -0
  58. package/dist/internal/server/coordinator/server-child.js +3299 -0
  59. package/dist/internal/server/coordinator/server-child.js.map +1 -0
  60. package/docs/000-index.md +21 -0
  61. package/docs/100-introduction/100-what-is-overmux.md +7 -0
  62. package/docs/100-introduction/200-how-overmux-works.md +7 -0
  63. package/docs/100-introduction/300-why-overmux.md +22 -0
  64. package/docs/200-getting-started/100-install-and-run-overmux.md +50 -0
  65. package/docs/200-getting-started/200-install-overmux-desktop.md +41 -0
  66. package/docs/200-getting-started/300-install-overmux-pwa.mdx +92 -0
  67. package/docs/200-getting-started/400-secure-with-https/100-choose-an-https-setup.md +14 -0
  68. package/docs/200-getting-started/400-secure-with-https/200-tailscale-serve.md +44 -0
  69. package/docs/200-getting-started/400-secure-with-https/300-cloudflare-tunnel.md +59 -0
  70. package/docs/200-getting-started/400-secure-with-https/400-self-hosted-reverse-proxy.md +32 -0
  71. package/docs/300-fundamentals/100-project-structure.md +23 -0
  72. package/docs/300-fundamentals/200-configuration.md +3 -0
  73. package/docs/300-fundamentals/300-theming.md +3 -0
  74. package/docs/300-fundamentals/400-server.md +3 -0
  75. package/docs/300-fundamentals/500-client.md +3 -0
  76. package/docs/300-fundamentals/600-operations.md +3 -0
  77. package/docs/300-fundamentals/700-resources.md +3 -0
  78. package/docs/300-fundamentals/800-streams.md +3 -0
  79. package/docs/300-fundamentals/900-authentication-and-security.md +3 -0
  80. package/docs/400-reference/100-configuration.md +3 -0
  81. package/docs/400-reference/200-server-api.md +3 -0
  82. package/docs/400-reference/300-client-api.md +20 -0
  83. package/docs/400-reference/400-cli/050-init.md +17 -0
  84. package/docs/400-reference/400-cli/100-serve.md +33 -0
  85. package/docs/400-reference/400-cli/200-auth.md +52 -0
  86. package/docs/400-reference/400-cli/300-call.md +28 -0
  87. package/docs/400-reference/400-cli/400-check.md +20 -0
  88. package/docs/400-reference/400-cli/500-ai-context.md +102 -0
  89. package/docs/400-reference/400-cli/600-docs.md +23 -0
  90. package/docs/400-reference/400-cli/700-desktop.md +35 -0
  91. package/docs/500-hosted-pages.md +31 -0
  92. package/package.json +59 -18
  93. package/src/internal/cli/app.ts +76 -0
  94. package/src/internal/cli/bin.ts +3 -0
  95. package/src/internal/cli/commands/ai.ts +44 -0
  96. package/src/internal/cli/commands/auth.ts +195 -0
  97. package/src/internal/cli/commands/call.ts +128 -0
  98. package/src/internal/cli/commands/check.ts +48 -0
  99. package/src/internal/cli/commands/desktop-installer.ts +446 -0
  100. package/src/internal/cli/commands/desktop-release.ts +190 -0
  101. package/src/internal/cli/commands/desktop.ts +47 -0
  102. package/src/internal/cli/commands/docs.ts +34 -0
  103. package/src/internal/cli/commands/init-template.ts +146 -0
  104. package/src/internal/cli/commands/init.ts +267 -0
  105. package/src/internal/cli/commands/integration.ts +15 -0
  106. package/src/internal/cli/commands/serve.ts +322 -0
  107. package/src/internal/cli/commands/zellij-install.ts +96 -0
  108. package/src/internal/cli/environment.ts +54 -0
  109. package/src/internal/cli/login.ts +46 -0
  110. package/src/internal/cli/managed-vite.ts +267 -0
  111. package/src/internal/cli/parse-port.ts +8 -0
  112. package/src/internal/client/auth/auth-api.ts +53 -0
  113. package/src/internal/client/auth/auth-shell.css +74 -0
  114. package/src/internal/client/auth/auth-shell.tsx +167 -0
  115. package/src/internal/client/auth/entry.tsx +26 -0
  116. package/src/internal/client/auth/index.html +13 -0
  117. package/src/internal/client/background-notifications.ts +194 -0
  118. package/src/internal/client/browser-api.ts +97 -0
  119. package/src/internal/client/client-definition.ts +184 -0
  120. package/src/internal/client/clipboard.ts +22 -0
  121. package/src/internal/client/commands.tsx +260 -0
  122. package/src/internal/client/host/browser-log-forwarding.ts +149 -0
  123. package/src/internal/client/host/desktop-host.ts +12 -0
  124. package/src/internal/client/host/hosted-pages/browser-notification-settings.tsx +118 -0
  125. package/src/internal/client/host/hosted-pages/hosted-page.css +87 -0
  126. package/src/internal/client/host/hosted-pages/hosted-page.tsx +9 -0
  127. package/src/internal/client/host/hosted-pages/logout-page.tsx +75 -0
  128. package/src/internal/client/host/hosted-pages/settings-page.tsx +45 -0
  129. package/src/internal/client/host/notification-forwarding.ts +13 -0
  130. package/src/internal/client/host/overmux-host.tsx +200 -0
  131. package/src/internal/client/host/recovery-screen.css +75 -0
  132. package/src/internal/client/host/recovery-screen.tsx +17 -0
  133. package/src/internal/client/host/update-popover.css +82 -0
  134. package/src/internal/client/host/update-popover.tsx +166 -0
  135. package/src/internal/client/index.ts +45 -0
  136. package/src/internal/client/overmux-react.ts +283 -0
  137. package/src/internal/client/shortcuts.tsx +373 -0
  138. package/src/internal/client/theme-scope.css +114 -0
  139. package/src/internal/client/theme-scope.tsx +107 -0
  140. package/src/internal/client/transport.ts +69 -0
  141. package/src/internal/client/websocket.ts +449 -0
  142. package/src/internal/server/auth/auth-http.ts +414 -0
  143. package/src/internal/server/auth/auth-service.ts +627 -0
  144. package/src/internal/server/auth/auth-shell-http.ts +90 -0
  145. package/src/internal/server/auth/instance-control.ts +381 -0
  146. package/src/internal/server/check-overmux.ts +364 -0
  147. package/src/internal/server/coordinator/ipc-protocol.ts +44 -0
  148. package/src/internal/server/coordinator/server-child.ts +108 -0
  149. package/src/internal/server/coordinator/server-coordinator.ts +262 -0
  150. package/src/internal/server/coordinator/update-watcher.ts +54 -0
  151. package/src/internal/server/http/authenticated-http-app-test-helper.ts +45 -0
  152. package/src/internal/server/http/background-notification-handlers.ts +83 -0
  153. package/src/internal/server/http/control-handlers.ts +44 -0
  154. package/src/internal/server/http/create-http-app.ts +53 -0
  155. package/src/internal/server/http/development-web-backend.ts +83 -0
  156. package/src/internal/server/http/operation-handler.ts +93 -0
  157. package/src/internal/server/http/request-logging.ts +34 -0
  158. package/src/internal/server/http/routes.ts +241 -0
  159. package/src/internal/server/http/runtime-manifest-handler.ts +12 -0
  160. package/src/internal/server/index.ts +16 -0
  161. package/src/internal/server/notifications/background-notification-payload.ts +74 -0
  162. package/src/internal/server/notifications/background-notification-service.ts +139 -0
  163. package/src/internal/server/notifications/background-notification-store.ts +162 -0
  164. package/src/internal/server/notifications/notification-service.ts +70 -0
  165. package/src/internal/server/notifications/private-json-file.ts +84 -0
  166. package/src/internal/server/paths.ts +13 -0
  167. package/src/internal/server/rate-limiter.ts +58 -0
  168. package/src/internal/server/runtime/create-runtime.ts +87 -0
  169. package/src/internal/server/runtime/resource-dependency-graph.ts +128 -0
  170. package/src/internal/server/runtime/runtime-lifecycle.ts +95 -0
  171. package/src/internal/server/runtime/runtime-operations.ts +78 -0
  172. package/src/internal/server/runtime/runtime-resources.ts +201 -0
  173. package/src/internal/server/runtime/runtime-streams.ts +130 -0
  174. package/src/internal/server/server-logger.ts +110 -0
  175. package/src/internal/server/server-startup-options.ts +51 -0
  176. package/src/internal/server/start-application-server.ts +412 -0
  177. package/src/internal/server/start-overmux-server.ts +26 -0
  178. package/src/internal/server/test-port.ts +23 -0
  179. package/src/internal/server/vite-websocket-proxy.ts +201 -0
  180. package/src/internal/server/websocket-connection.ts +586 -0
  181. package/src/internal/server/websocket-limits.ts +2 -0
  182. package/src/internal/server/websocket-server.ts +311 -0
  183. package/src/internal/shared/background-notifications.ts +37 -0
  184. package/src/internal/shared/index.ts +2 -0
  185. package/src/internal/shared/protocol.ts +317 -0
  186. package/src/internal/shared/routes.ts +3 -0
  187. package/src/public/ai-context.ts +44 -0
  188. package/src/public/client.ts +57 -0
  189. package/src/public/config.ts +287 -0
  190. package/src/public/contracts.ts +55 -0
  191. package/src/public/index.ts +57 -0
  192. package/src/public/notifications.ts +10 -0
  193. package/src/public/server.ts +16 -0
  194. package/dist/public/core.ts +0 -119
  195. package/dist/public/protocol.ts +0 -51
  196. package/dist/public/terminal.ts +0 -23
  197. package/dist/web/assets/index-DC___IUw.css +0 -2
  198. package/dist/web/assets/index-DF9Cptse.js +0 -74
  199. package/dist/web/assets/terminal-component-BrP-ENHg.css +0 -1
  200. package/dist/web/assets/terminal-component-DyLEbMrx.js +0 -36
  201. package/dist/web/index.html +0 -14
@@ -1,23 +0,0 @@
1
- import { clientComponent, defineTabType, paneRefSchema } from "./core.ts";
2
- import { z } from "zod";
3
-
4
- export const terminalTabDataSchema = z.object({
5
- pane: paneRefSchema,
6
- readOnly: z.boolean().default(true),
7
- });
8
-
9
- export type TerminalTabData = z.infer<typeof terminalTabDataSchema>;
10
-
11
- export const terminalTabType = defineTabType({
12
- component: clientComponent("overmux/tabs/terminal-component"),
13
- data: terminalTabDataSchema,
14
- type: "terminal",
15
- });
16
-
17
- export type TerminalRenderer = {
18
- dispose: () => void;
19
- mount: (element: HTMLElement) => void;
20
- onInput: (handler: (bytes: Uint8Array) => void) => () => void;
21
- resize: (size: { cols: number; rows: number }) => void;
22
- write: (bytes: Uint8Array) => void;
23
- };
@@ -1,2 +0,0 @@
1
- /*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-500:oklch(69.6% .17 162.48);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:#111214;--color-panel:#181a1d;--color-panel-muted:#202328;--color-border:#30343a;--color-foreground:#f2f4f7;--color-muted:#9ba2ad;--color-accent:#75d5a3}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,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{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}:-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}}@layer components;@layer utilities{.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.block{display:block}.flex{display:flex}.grid{display:grid}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[70vh\]{min-height:70vh}.min-h-screen{min-height:100vh}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.grid-cols-\[18rem_1fr\]{grid-template-columns:18rem 1fr}.flex-col{flex-direction:column}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.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-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab,var(--color-amber-500)40%,transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab,var(--color-emerald-500)40%,transparent)}}.bg-accent\/15{background-color:#75d5a326}@supports (color:color-mix(in lab, red, red)){.bg-accent\/15{background-color:color-mix(in oklab,var(--color-accent)15%,transparent)}}.bg-background{background-color:var(--color-background)}.bg-panel{background-color:var(--color-panel)}.bg-panel-muted{background-color:var(--color-panel-muted)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-accent{color:var(--color-accent)}.text-amber-300{color:var(--color-amber-300)}.text-emerald-300{color:var(--color-emerald-300)}.text-foreground{color:var(--color-foreground)}.text-muted{color:var(--color-muted)}.text-red-300{color:var(--color-red-300)}.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,visibility,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))}@media (hover:hover){.hover\:bg-panel-muted:hover{background-color:var(--color-panel-muted)}}}:root{color:var(--color-foreground);background:var(--color-background);font-family:var(--font-sans)}*{border-color:var(--color-border)}body{min-width:320px;min-height:100vh;margin:0}button,a{outline-color:var(--color-accent)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}