rigscope 0.1.4 → 0.1.5

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 (94) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -3
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +6 -6
  5. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +2 -2
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  17. package/.next/server/app/administration/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/administration.html +1 -1
  19. package/.next/server/app/administration.rsc +3 -3
  20. package/.next/server/app/administration.segments/_full.segment.rsc +3 -3
  21. package/.next/server/app/administration.segments/_tree.segment.rsc +2 -2
  22. package/.next/server/app/administration.segments/administration/__PAGE__.segment.rsc +3 -3
  23. package/.next/server/app/alerts/page.js +1 -1
  24. package/.next/server/app/alerts/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/alerts.html +1 -1
  26. package/.next/server/app/alerts.rsc +4 -4
  27. package/.next/server/app/alerts.segments/_full.segment.rsc +4 -4
  28. package/.next/server/app/alerts.segments/_tree.segment.rsc +2 -2
  29. package/.next/server/app/alerts.segments/alerts/__PAGE__.segment.rsc +4 -4
  30. package/.next/server/app/connections/page.js +1 -1
  31. package/.next/server/app/connections/page.js.nft.json +1 -1
  32. package/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/connections.html +1 -1
  34. package/.next/server/app/connections.rsc +6 -6
  35. package/.next/server/app/connections.segments/_full.segment.rsc +6 -6
  36. package/.next/server/app/connections.segments/_tree.segment.rsc +2 -2
  37. package/.next/server/app/connections.segments/connections/__PAGE__.segment.rsc +6 -6
  38. package/.next/server/app/history/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/history.html +1 -1
  40. package/.next/server/app/history.rsc +3 -3
  41. package/.next/server/app/history.segments/_full.segment.rsc +3 -3
  42. package/.next/server/app/history.segments/_tree.segment.rsc +2 -2
  43. package/.next/server/app/history.segments/history/__PAGE__.segment.rsc +3 -3
  44. package/.next/server/app/index.html +1 -1
  45. package/.next/server/app/index.rsc +6 -6
  46. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  47. package/.next/server/app/index.segments/_full.segment.rsc +6 -6
  48. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  49. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/login.html +1 -1
  51. package/.next/server/app/login.rsc +2 -2
  52. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  53. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  54. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  55. package/.next/server/app/machines/[machineId]/page.js +1 -1
  56. package/.next/server/app/machines/[machineId]/page.js.nft.json +1 -1
  57. package/.next/server/app/machines/[machineId]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/page.js +1 -1
  59. package/.next/server/app/page.js.nft.json +1 -1
  60. package/.next/server/app/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/processes/page.js +1 -1
  62. package/.next/server/app/processes/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/processes.html +1 -1
  64. package/.next/server/app/processes.rsc +4 -4
  65. package/.next/server/app/processes.segments/_full.segment.rsc +4 -4
  66. package/.next/server/app/processes.segments/_tree.segment.rsc +2 -2
  67. package/.next/server/app/processes.segments/processes/__PAGE__.segment.rsc +4 -4
  68. package/.next/server/app-paths-manifest.json +3 -3
  69. package/.next/server/chunks/364.js +1 -0
  70. package/.next/server/chunks/751.js +1 -1
  71. package/.next/server/middleware-build-manifest.js +1 -1
  72. package/.next/server/pages/404.html +1 -1
  73. package/.next/server/pages/500.html +1 -1
  74. package/.next/static/chunks/103-13ec30dcc059b9d3.js +1 -0
  75. package/.next/static/chunks/{227-417939c480f50747.js → 130-e940915010276f88.js} +1 -1
  76. package/.next/static/chunks/app/alerts/{page-fe0e877778c60af8.js → page-2548b2ab0c057953.js} +1 -1
  77. package/.next/static/chunks/app/connections/{page-99cd54d6929b3f1f.js → page-07113bf16cb352e7.js} +1 -1
  78. package/.next/static/chunks/app/machines/[machineId]/{page-1a25a267563c18c0.js → page-0b89e4393a137c4d.js} +1 -1
  79. package/.next/static/chunks/app/{page-1ae9fc94c897785b.js → page-c68554c93016dd13.js} +1 -1
  80. package/.next/static/chunks/app/processes/{page-0e98a4a64e829c5f.js → page-b6d97d119f10e2a1.js} +3 -3
  81. package/.next/static/css/fb3ad9534f4681e6.css +1 -0
  82. package/CHANGELOG.md +14 -0
  83. package/DESIGN.md +27 -16
  84. package/dist/cli.cjs +1 -0
  85. package/dist/collector.cjs +1 -1
  86. package/dist/hub.cjs +1 -1
  87. package/docs/installation.md +6 -3
  88. package/docs/releasing.md +12 -12
  89. package/package.json +1 -1
  90. package/.next/server/chunks/877.js +0 -1
  91. package/.next/static/chunks/103-c47318242b24e9ac.js +0 -1
  92. package/.next/static/css/3fbf75e4c471c6a8.css +0 -1
  93. /package/.next/static/{-mNveXe-cHv8irQe97wI_ → oxwySrJXqXq8O6_7AzZGe}/_buildManifest.js +0 -0
  94. /package/.next/static/{-mNveXe-cHv8irQe97wI_ → oxwySrJXqXq8O6_7AzZGe}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--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-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-outline-style:solid}}}@layer theme{:host,:root{--font-sans:-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-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1) infinite;--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:var(--background);--color-foreground:var(--foreground)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-2{right:calc(var(--spacing) * 2)}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.order-first{order:-9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-74{margin:calc(var(--spacing) * 74)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-12{margin-block:calc(var(--spacing) * 12)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-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-14{height:calc(var(--spacing) * 14)}.h-40{height:calc(var(--spacing) * 40)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[min\(30dvh\,20rem\)\]{max-height:min(30dvh,20rem)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.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-14{min-height:calc(var(--spacing) * 14)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-dvh{min-height:100dvh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-\[12rem\]{max-width:12rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[18rem\]{max-width:18rem}.max-w-\[1500px\]{max-width:1500px}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-52{flex-basis:calc(var(--spacing) * 52)}.table-fixed{table-layout:fixed}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.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-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[3rem_minmax\(0\,1fr\)_4\.5rem\]{grid-template-columns:3rem minmax(0,1fr) 4.5rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[repeat\(auto-fit\,minmax\(3\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(3.5rem,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.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-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-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[5px\]{border-style:var(--tw-border-style);border-width:5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent\/40{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/40{border-color:color-mix(in oklab,var(--accent) 40%,transparent)}}.border-accent\/60{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/60{border-color:color-mix(in oklab,var(--accent) 60%,transparent)}}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.border-crit{border-color:var(--crit)}.border-current{border-color:currentColor}.border-transparent{border-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-card-strong,.bg-card-strong\/25{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.bg-card-strong\/25{background-color:color-mix(in oklab,var(--card-strong) 25%,transparent)}}.bg-card-strong\/30{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.bg-card-strong\/30{background-color:color-mix(in oklab,var(--card-strong) 30%,transparent)}}.bg-card-strong\/40{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.bg-card-strong\/40{background-color:color-mix(in oklab,var(--card-strong) 40%,transparent)}}.bg-cpu{background-color:var(--cpu)}.bg-crit{background-color:var(--crit)}.bg-crit-soft{background-color:var(--crit-soft)}.bg-current{background-color:currentColor}.bg-mem{background-color:var(--mem)}.bg-muted-foreground,.bg-muted-foreground\/50{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/50{background-color:color-mix(in oklab,var(--muted-foreground) 50%,transparent)}}.bg-ok{background-color:var(--ok)}.bg-ok-soft{background-color:var(--ok-soft)}.bg-selected{background-color:var(--selected)}.bg-warn{background-color:var(--warn)}.bg-warn-soft{background-color:var(--warn-soft)}.fill-foreground{fill:var(--foreground)}.fill-muted-foreground{fill:var(--muted-foreground)}.fill-warn{fill:var(--warn)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-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))}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--accent)}.text-accent-foreground{color:var(--accent-foreground)}.text-crit{color:var(--crit)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-ok{color:var(--ok)}.text-warn{color:var(--warn)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.accent-foreground{accent-color:var(--foreground)}.opacity-20{opacity:.2}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-offset-\[-2px\]{outline-offset:-2px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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-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))}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\/handle\:bg-accent:is(:where(.group\/handle):hover *){background-color:var(--accent)}}.group-focus-visible\/handle\:bg-accent:is(:where(.group\/handle):focus-visible *){background-color:var(--accent)}.peer-focus-visible\:outline:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:1px}.peer-focus-visible\:outline-2:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:2px}.peer-focus-visible\:outline-offset-2:is(:where(.peer):focus-visible~*){outline-offset:2px}.peer-focus-visible\:\[outline-color\:var\(--focus\)\]:is(:where(.peer):focus-visible~*){outline-color:var(--focus)}.peer-focus-visible\:outline-accent:is(:where(.peer):focus-visible~*){outline-color:var(--accent)}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/70::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/70::placeholder{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-muted-foreground\/40:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab,var(--muted-foreground) 40%,transparent)}}.hover\:bg-accent\/90:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/90:hover{background-color:color-mix(in oklab,var(--accent) 90%,transparent)}}.hover\:bg-card:hover{background-color:var(--card)}.hover\:bg-card-strong:hover,.hover\:bg-card-strong\/60:hover{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card-strong\/60:hover{background-color:color-mix(in oklab,var(--card-strong) 60%,transparent)}}.hover\:bg-card-strong\/70:hover{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card-strong\/70:hover{background-color:color-mix(in oklab,var(--card-strong) 70%,transparent)}}.hover\:bg-crit-soft:hover{background-color:var(--crit-soft)}.hover\:bg-selected:hover{background-color:var(--selected)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:absolute:focus{position:absolute}.focus\:start-2:focus{inset-inline-start:calc(var(--spacing) * 2)}.focus\:top-2:focus{top:calc(var(--spacing) * 2)}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-accent:focus{outline-color:var(--accent)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-offset-\[-2px\]:focus-visible{outline-offset:-2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-\[invalid\=true\]\:border-crit[aria-invalid=true]{border-color:var(--crit)}@media not all and (min-width:48rem){.max-md\:absolute{position:absolute}.max-md\:-right-1{right:calc(var(--spacing) * -1)}.max-md\:-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.max-md\:justify-center{justify-content:center}.max-md\:px-0{padding-inline:0}}@media (min-width:40rem){.sm\:order-none{order:0}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[3\.5rem_minmax\(0\,1fr\)_4\.5rem_3rem\]{grid-template-columns:3.5rem minmax(0,1fr) 4.5rem 3rem}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:hidden{display:none}.md\:inline{display:inline}.md\:w-4{width:calc(var(--spacing) * 4)}.md\:w-56{width:calc(var(--spacing) * 56)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:p-3{padding:calc(var(--spacing) * 3)}.md\:p-5{padding:calc(var(--spacing) * 5)}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}}@media (min-width:64rem){.lg\:col-span-full{grid-column:1/-1}.lg\:inline{display:inline}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,13rem\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,13rem) minmax(0,1fr)}.lg\:items-start{align-items:flex-start}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.lg\:pt-0{padding-top:0}.lg\:pl-6{padding-left:calc(var(--spacing) * 6)}}@media (min-width:80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1fr\)_24rem\]{grid-template-columns:minmax(0,1fr) 24rem}.xl\:grid-cols-\[repeat\(auto-fit\,minmax\(30rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(30rem,1fr))}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\:\:-webkit-search-cancel-button\]\:\[-webkit-appearance\:none\]::-webkit-search-cancel-button{-webkit-appearance:none}}:root{color-scheme:light;--background:#f4f5f7;--card:#fff;--card-strong:#f9fafb;--border:#e2e4e9;--foreground:#1a1b1e;--muted-foreground:#5d5f64;--accent:#1c71d8;--accent-foreground:#fff;--selected:#e8f0fb;--component-selected:#1c71d8;--ok:#2a9134;--ok-soft:#2a913421;--warn:#c67b00;--warn-soft:#c67b0024;--crit:#c33c3c;--crit-soft:#c33c3c24;--cpu:#3584e4;--mem:#33a06f;--swap:#d8a23a;--scrollbar:#c7cad0;--focus:oklab(55.8192% -.0413209 -.171246/.6)}.dark{color-scheme:dark;--background:#181a1e;--card:#22252a;--card-strong:#2d3036;--border:#3a3e45;--foreground:#f1f2f4;--muted-foreground:#afb4bd;--accent:#3584e4;--accent-foreground:#fff;--selected:#1e3a5c;--component-selected:#3584e4;--ok:#58cc8b;--ok-soft:#58cc8b26;--warn:#e5b45e;--warn-soft:#e5b45e26;--crit:#e05e5e;--crit-soft:#e05e5e26;--cpu:#4c9bf5;--mem:#58cc8b;--swap:#e5b45e;--scrollbar:#3a3e45;--focus:#4c9bf5}body,html{overscroll-behavior:none}body{background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:ui-sans-serif,system-ui,Noto Sans,Inter,sans-serif}.tnum{font-variant-numeric:tabular-nums}::selection{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){::selection{background-color:color-mix(in oklab,var(--accent) 28%,transparent)}}::selection{color:var(--foreground)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Release notes
2
2
 
3
+ ## 0.1.5
4
+
5
+ - Refresh the dark console palette and replace the sidebar machine selector with
6
+ visible machine rows. Show collector status dots and CPU models, align machine
7
+ names with navigation labels, and preserve the selected view when switching
8
+ machines. Alerts, Connections and administrator-only Administration remain
9
+ below the machine views; narrow screens retain initials and status indicators.
10
+ - Add a responsive showcase website with an installation command and copy button,
11
+ documentation and contact links, and an interactive synthetic demo. The demo
12
+ renders the actual Fleet, Overview, History and Processes components and product
13
+ stylesheet through isolated routing and data adapters, without accessing a hub.
14
+ - Validate synthetic fixtures against product contracts and check the website
15
+ build and types in the manual CI workflow to catch drift from the product UI.
16
+
3
17
  ## 0.1.4
4
18
 
5
19
  - Coordinate stopping running user services and owned foreground processes for
package/DESIGN.md CHANGED
@@ -2,25 +2,25 @@
2
2
  name: Rigscope
3
3
  description: A calm remote monitoring console with clear hierarchy, useful density, and coherent dark/light themes.
4
4
  colors:
5
- background: "#1a1b1e"
6
- card: "#26272b"
7
- card-strong: "#2d2e33"
8
- border: "#3a3b3f"
9
- foreground: "#e4e5e8"
10
- muted-foreground: "#a2a4a9"
5
+ background: "#181a1e"
6
+ card: "#22252a"
7
+ card-strong: "#2d3036"
8
+ border: "#3a3e45"
9
+ foreground: "#f1f2f4"
10
+ muted-foreground: "#afb4bd"
11
11
  accent: "#3584e4"
12
12
  accent-foreground: "#ffffff"
13
13
  selected: "#1e3a5c"
14
- ok: "#3db84a"
15
- ok-soft: "rgba(61, 184, 74, 0.15)"
16
- warn: "#e5a83b"
17
- warn-soft: "rgba(229, 168, 59, 0.15)"
14
+ ok: "#58cc8b"
15
+ ok-soft: "rgba(88, 204, 139, 0.15)"
16
+ warn: "#e5b45e"
17
+ warn-soft: "rgba(229, 180, 94, 0.15)"
18
18
  crit: "#e05e5e"
19
19
  crit-soft: "rgba(224, 94, 94, 0.15)"
20
- cpu: "#3584e4"
21
- mem: "#4ec289"
22
- swap: "#d8a23a"
23
- scrollbar: "#3a3b3f"
20
+ cpu: "#4c9bf5"
21
+ mem: "#58cc8b"
22
+ swap: "#e5b45e"
23
+ scrollbar: "#3a3e45"
24
24
  typography:
25
25
  page-title:
26
26
  fontFamily: "system-ui, ui-sans-serif, 'Noto Sans', 'Inter', sans-serif"
@@ -231,8 +231,17 @@ the toolbar stays visible and table headers remain pinned while rows scroll. Dra
231
231
  divider, or double-click to reset. View mode, per-table sorting and widths persist in the
232
232
  browser; search, expanded applications, pause and machine selection last for the tab session.
233
233
  Machine selection is shared across Fleet, Overview, History and Processes for the tab.
234
- The sidebar keeps Fleet as the parent of a single machine selector and indented
235
- Overview/History/Processes links. Global hub pages follow in a separate group. Header
234
+ The 224px desktop sidebar keeps Fleet above a visible list of authorized machines,
235
+ with names and available tags. Selected machines use a blue surface, outlined row,
236
+ stronger name and check mark. Choosing a machine preserves the active machine view
237
+ and uses the shared tab-scoped selection. The list scrolls within a bounded height
238
+ so Overview/History/Processes and the separated Alerts, Connections and admin-only
239
+ Administration links remain reachable. On the 56px mobile rail, machine initials and
240
+ view icons retain native titles and accessible names; selection remains outlined.
241
+ The logo and live connection footer retain their existing roles. Dark surfaces use
242
+ the charcoal website palette, brighter text, blue CPU, green memory and amber swap;
243
+ light tokens retain their established palette. Warning and critical meanings remain
244
+ separate, and dark keyboard focus uses a solid blue outline. Header
236
245
  breadcrumbs show Fleet / machine / view; page-level tabs and pickers are omitted. Fleet
237
246
  rows show compact CPU/memory trends received since sign-in. Overview combines CPU/GPU
238
247
  and RAM/VRAM into two charts in one fixed ten-minute panel. History owns range and metric
@@ -297,3 +306,5 @@ Rigscope is a self-hosted Linux resource/process monitor for a machine owner or
297
306
  App surfaces use Operate mode: precise data, quiet surfaces, stable live updates and familiar controls. Freshness changes update existing status indicators without inserting banners above data. Interface copy consists of labels, values and actionable errors; omit redundant explanatory paragraphs.
298
307
 
299
308
  The identity is an open rack frame around a rising trace and two sample points. `BrandMark` is the shared, decorative 24-unit SVG in the sidebar and sign-in row; the neighboring Rigscope text/link provides its accessible name. The app icon uses the same geometry with a dark backing and bright blue stroke for light/dark browser chrome. It is legible at 16–32px, with no animation, raster assets or layout changes. Keep this small brand gesture separate from metric semantics.
309
+
310
+ Machine rows use a fixed 16px status column and the same 12px gap and horizontal inset as navigation links, so every desktop label aligns. The status dot is green for fresh live samples, amber for stale or unavailable feeds, red for disconnected collectors, and muted before the first sample; the accessible name includes the status. CPU model appears below the machine name when available, with tags as the fallback. Mobile initials retain a small status dot.
package/dist/cli.cjs CHANGED
@@ -9672,6 +9672,7 @@ async function main() {
9672
9672
  for (const [key, value] of Object.entries(values)) {
9673
9673
  if (value !== void 0 && key !== "state-dir" && key !== "scope" && !(permitted[command] ?? []).includes(key)) throw new Error(`--${key} is not available for ${command}.`);
9674
9674
  }
9675
+ if (values.origin?.endsWith("/")) values.origin = values.origin.slice(0, -1);
9675
9676
  const managedState = (0, import_node_path20.basename)(ROOT) === "rigscope" && (0, import_node_path20.basename)((0, import_node_path20.dirname)(ROOT)) === "node_modules" && (0, import_node_path20.basename)((0, import_node_path20.resolve)(ROOT, "../..")) === "runtime" ? (0, import_node_path20.resolve)(ROOT, "../../..") : void 0;
9676
9677
  const dir = stateDirectory(values["state-dir"] ?? (command === "try" ? `${stateDirectory()}-trial` : process.env.RIGSCOPE_STATE_DIR ?? managedState));
9677
9678
  const explicitState = Boolean(values["state-dir"] || process.env.RIGSCOPE_STATE_DIR || managedState || command === "try" || command === "run");
@@ -5217,7 +5217,7 @@ function budget(value, fallback) {
5217
5217
  // package.json
5218
5218
  var package_default = {
5219
5219
  name: "rigscope",
5220
- version: "0.1.4",
5220
+ version: "0.1.5",
5221
5221
  private: false,
5222
5222
  engines: {
5223
5223
  node: ">=26.0.0"
package/dist/hub.cjs CHANGED
@@ -1741,7 +1741,7 @@ function describeError(error) {
1741
1741
  // package.json
1742
1742
  var package_default = {
1743
1743
  name: "rigscope",
1744
- version: "0.1.4",
1744
+ version: "0.1.5",
1745
1745
  private: false,
1746
1746
  engines: {
1747
1747
  node: ">=26.0.0"
@@ -27,7 +27,7 @@ install or source checkout is needed. The launcher and services use the installe
27
27
  runtime, so removing the npx cache does not break them.
28
28
 
29
29
  Releases are on [npm](https://www.npmjs.com/package/rigscope). `@latest` selects
30
- the current stable release; replace it with `@0.1.4` to select that exact version.
30
+ the current stable release; replace it with `@0.1.5` to select that exact version.
31
31
 
32
32
  ### Installation options
33
33
 
@@ -53,7 +53,7 @@ For a downloaded package or one built from source, run from the directory
53
53
  containing the archive, or give its absolute path:
54
54
 
55
55
  ```sh
56
- npx --yes --package ./rigscope-0.1.4.tgz rigscope install --boot
56
+ npx --yes --package ./rigscope-0.1.5.tgz rigscope install --boot
57
57
  ```
58
58
 
59
59
  The same installation options apply. npm still needs registry access or cached
@@ -135,6 +135,9 @@ DNS name. Choose the section for a new or existing installation.
135
135
 
136
136
  ### New HTTPS installation
137
137
 
138
+ `--origin` accepts a root URL with or without a trailing slash and saves it
139
+ without the slash. Paths, query strings and fragments are not allowed.
140
+
138
141
  ```sh
139
142
  npx --yes rigscope@latest install \
140
143
  --origin https://machine.example.ts.net:8081 --boot
@@ -292,7 +295,7 @@ settings and collector identities.
292
295
 
293
296
  | Alternative | Command |
294
297
  | --- | --- |
295
- | Select an exact published version | `rigscope upgrade --from rigscope@0.1.4` |
298
+ | Select an exact published version | `rigscope upgrade --from rigscope@0.1.5` |
296
299
  | Install a local archive | `rigscope upgrade --from ./rigscope-VERSION.tgz` |
297
300
  | Return to the retained previous runtime | `rigscope rollback` |
298
301
 
package/docs/releasing.md CHANGED
@@ -5,7 +5,7 @@ The first public version, `0.1.0`, is published on
5
5
  [GitHub](https://github.com/Triet1402/rigscope). The package includes MIT licensing,
6
6
  dependency notices, the security policy and [release notes](../CHANGELOG.md).
7
7
 
8
- The commands below use `0.1.4` as an example. For a new release, substitute its
8
+ The commands below use `0.1.5` as an example. For a new release, substitute its
9
9
  new version everywhere; do not attempt to republish an already published version.
10
10
  Documentation edits can be committed and pushed to GitHub independently. The published archive and
11
11
  its bundled documentation stay unchanged; ship updated package documentation
@@ -21,7 +21,7 @@ with the next version. Keep each release tag on the revision used to build it.
21
21
  4. Run the publish dry run, check the npm account, and publish the verified archive.
22
22
  5. Verify the registry version and install it into a disposable test installation.
23
23
  Check sign-in, fresh telemetry and the installed command.
24
- 6. Tag the exact source revision as `v0.1.4`, push the tag, and create a GitHub
24
+ 6. Tag the exact source revision as `v0.1.5`, push the tag, and create a GitHub
25
25
  Release with the release notes, verified archive and checksum. Announce it
26
26
  after the registry installation works.
27
27
 
@@ -45,14 +45,14 @@ npm pack --pack-destination out/release
45
45
  `npm pack` runs `prepack`, which regenerates dependency notices, builds fresh
46
46
  runtime/UI artifacts and verifies them. If notice generation changes a tracked
47
47
  file, include that change in the release commit before producing the final
48
- archive. Reuse the archive for every check below. Replace `0.1.4` in these
48
+ archive. Reuse the archive for every check below. Replace `0.1.5` in these
49
49
  commands when releasing another version.
50
50
 
51
51
  ## Verify the exact archive
52
52
 
53
53
  ```sh
54
- node scripts/verify-package.cjs ./out/release/rigscope-0.1.4.tgz
55
- npm run verify:installed -- --archive ./out/release/rigscope-0.1.4.tgz
54
+ node scripts/verify-package.cjs ./out/release/rigscope-0.1.5.tgz
55
+ npm run verify:installed -- --archive ./out/release/rigscope-0.1.5.tgz
56
56
  npm test
57
57
  node scripts/test-runtime.cjs
58
58
  node scripts/test.cjs --suite development
@@ -69,9 +69,9 @@ create disposable installations with separate state, launchers, ports and unit
69
69
  names, then remove their services. They do not select an existing installation.
70
70
 
71
71
  ```sh
72
- RIGSCOPE_TEST_ARCHIVE="$PWD/out/release/rigscope-0.1.4.tgz" \
72
+ RIGSCOPE_TEST_ARCHIVE="$PWD/out/release/rigscope-0.1.5.tgz" \
73
73
  node --import tsx --test tests/cli-install.integration.ts tests/cli-reset.integration.ts
74
- node scripts/verify-operations.cjs ./out/release/rigscope-0.1.4.tgz
74
+ node scripts/verify-operations.cjs ./out/release/rigscope-0.1.5.tgz
75
75
  ```
76
76
 
77
77
  These cover installation, pairing, independent component controls, bootstrap
@@ -93,7 +93,7 @@ Record the final checksum after verification:
93
93
 
94
94
  ```sh
95
95
  cd out/release
96
- sha256sum rigscope-0.1.4.tgz > SHA256SUMS
96
+ sha256sum rigscope-0.1.5.tgz > SHA256SUMS
97
97
  sha256sum --check SHA256SUMS
98
98
  ```
99
99
 
@@ -110,7 +110,7 @@ then verify the account and preview the exact archive:
110
110
  ```sh
111
111
  npm login --registry=https://registry.npmjs.org
112
112
  npm whoami --registry=https://registry.npmjs.org
113
- npm publish ./out/release/rigscope-0.1.4.tgz --access public --tag latest \
113
+ npm publish ./out/release/rigscope-0.1.5.tgz --access public --tag latest \
114
114
  --registry=https://registry.npmjs.org --dry-run
115
115
  ```
116
116
 
@@ -120,12 +120,12 @@ to publish or complete two-factor authentication.
120
120
  When releasing, this command actually publishes the verified archive publicly:
121
121
 
122
122
  ```sh
123
- npm publish ./out/release/rigscope-0.1.4.tgz --access public --tag latest \
123
+ npm publish ./out/release/rigscope-0.1.5.tgz --access public --tag latest \
124
124
  --registry=https://registry.npmjs.org
125
- npm view rigscope@0.1.4 version dist.integrity --registry=https://registry.npmjs.org
125
+ npm view rigscope@0.1.5 version dist.integrity --registry=https://registry.npmjs.org
126
126
  ```
127
127
 
128
- Then use `npx --yes rigscope@0.1.4 install` with a disposable `--state-dir`, an
128
+ Then use `npx --yes rigscope@0.1.5 install` with a disposable `--state-dir`, an
129
129
  unused `--port` and an isolated `XDG_BIN_HOME` for the registry installation
130
130
  check. Uninstall that test installation afterward. Use the same isolation
131
131
  settings for all test commands so the check does not select a real installation.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rigscope",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "private": false,
5
5
  "engines": {
6
6
  "node": ">=26.0.0"
@@ -1 +0,0 @@
1
- "use strict";exports.id=877,exports.ids=[877],exports.modules={4155:(a,b,c)=>{c.d(b,{E:()=>r,x:()=>q});var d=c(48249),e=c(2116),f=c.n(e),g=c(31742),h=c(50132),i=c(49187),j=c(90606),k=c(93484),l=c(12421),m=c(22338),n=c(58910);function o(a){return(0,d.jsxs)("button",{type:"button",onClick:a.onClick,className:"inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-foreground transition-colors hover:bg-card-strong",children:[(0,d.jsx)(g.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),a.children]})}function p(a){return(0,d.jsx)(f(),{href:a.href,className:a.primary?"inline-flex items-center gap-1.5 rounded-md bg-accent px-3 py-1.5 text-xs font-medium text-accent-foreground transition-colors hover:bg-accent/90":"inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-foreground transition-colors hover:bg-card-strong",children:a.children})}function q(){let{session:a,phase:b,retryConnection:c}=(0,n.M)();switch(a.kind){case"restoring":return(0,d.jsx)(m.Z,{title:"Checking session",className:"mx-auto my-12 max-w-md",children:(0,d.jsx)(m.p,{icon:h.A,note:"Checking your session…"})});case"restore-failed":return(0,d.jsxs)(m.Z,{title:"Hub unreachable",className:"mx-auto my-12 max-w-md",children:[(0,d.jsx)(m.p,{icon:i.A,note:"The hub is unreachable right now."}),(0,d.jsx)("div",{className:"flex justify-center",children:(0,d.jsx)(o,{onClick:c,children:"Check again"})})]});case"signed-out":if("expired"===b)return(0,d.jsxs)(m.Z,{title:"Session ended",className:"mx-auto my-12 max-w-md",children:[(0,d.jsx)(m.p,{icon:j.A,note:"Your session ended."}),(0,d.jsx)("div",{className:"flex justify-center",children:(0,d.jsx)(p,{href:"/login",primary:!0,children:"Sign in"})})]});return(0,d.jsxs)(m.Z,{title:"Sign in required",className:"mx-auto my-12 max-w-md",children:[(0,d.jsx)(m.p,{icon:h.A,note:"Sign in required."}),(0,d.jsx)("div",{className:"flex justify-center",children:(0,d.jsx)(p,{href:"/login",primary:!0,children:"Sign in"})})]});case"auth-unavailable":return(0,d.jsx)(m.Z,{title:"Sign-in unavailable",className:"mx-auto my-12 max-w-md",children:(0,d.jsx)(m.p,{icon:k.A,note:"Browser sign-in is not configured on this hub."})})}return"expired"===b?(0,d.jsxs)(m.Z,{title:"Session ended",className:"mx-auto my-12 max-w-md",children:[(0,d.jsx)(m.p,{icon:j.A,note:"Your session ended."}),(0,d.jsx)("div",{className:"flex justify-center",children:(0,d.jsx)(p,{href:"/login",primary:!0,children:"Sign in"})})]}):"no-permission"===b?(0,d.jsxs)(m.Z,{title:"No permission",className:"mx-auto my-12 max-w-md",children:[(0,d.jsx)(m.p,{icon:k.A,note:`You are signed in as ${a.user.username}, but this hub grants no machine view to this account.`}),(0,d.jsx)("div",{className:"flex justify-center",children:(0,d.jsx)(o,{onClick:c,children:"Check again"})})]}):null}function r(){let{phase:a,retryConnection:b}=(0,n.M)();return"reconnecting"!==a&&"disconnected"!==a&&"connecting"!==a?null:"connecting"===a?(0,d.jsxs)("div",{role:"status",className:"mb-5 flex items-center gap-2 rounded-lg border border-border bg-card px-4 py-2.5 text-xs text-muted-foreground",children:[(0,d.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),"Connecting to the live feed — waiting for the first snapshot."]}):(0,d.jsxs)("div",{role:"status",className:"mb-5 flex flex-wrap items-center gap-x-3 gap-y-2 rounded-lg border border-border bg-card px-4 py-2.5 text-xs text-muted-foreground",children:[(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 shrink-0 text-warn","aria-hidden":!0}),(0,d.jsxs)("span",{children:["Connection lost — values below are ",(0,d.jsx)("strong",{className:"font-medium text-foreground",children:"last known"}),", not live measurements","reconnecting"===a?" — retrying with backoff…":" — retries stopped."]}),"disconnected"===a?(0,d.jsx)(o,{onClick:b,children:"Retry now"}):null]})}},29356:(a,b,c)=>{c.d(b,{c:()=>e});var d=c(67484);function e(a=1e3){let[b,c]=(0,d.useState)(()=>Date.now());return b}},50280:(a,b,c)=>{c.d(b,{iL:()=>k,jB:()=>m,vw:()=>n});var d=c(48249),e=c(93224),f=c(22127);let g=2*Math.PI*70;function h(a){return Number.isFinite(a)?Math.min(100,Math.max(0,a)):0}function i(a){let{reason:b,ageLabel:c,center:e}=a;return(0,d.jsxs)("p",{className:e?"max-w-[16rem] text-center text-xs text-warn":"text-xs text-warn",children:["Unavailable — ",b,c?(0,d.jsxs)("span",{className:"text-muted-foreground",children:[" (last update ",c,")"]}):null]})}function j(a){let{reason:b,ageLabel:c}=a;return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,d.jsx)("div",{role:"img","aria-label":`Unavailable — ${b}`,className:"flex h-40 w-40 shrink-0 items-center justify-center rounded-full border-[5px] border-dashed border-border",children:(0,d.jsx)("span",{className:"tnum text-xl font-semibold text-muted-foreground",children:"—"})}),(0,d.jsx)(i,{reason:b,ageLabel:c,center:!0})]})}function k(a){let{metricName:b,field:c,ageLabel:i,isHeld:k,thresholdMs:l}=a;if("unavailable"===c.out)return(0,d.jsx)(j,{reason:c.reason,ageLabel:i??null});if("absent"===c.out)return(0,d.jsx)(j,{reason:"No sample has arrived yet.",ageLabel:i??null});let m="stale"===c.out,n=h(c.value),o=g*(1-n/100),p=m?`${b} last known ${(0,e.l9)(n)}, stale`:`${b} ${(0,e.l9)(n)}`;return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,d.jsxs)("svg",{role:"img","aria-label":p,viewBox:"0 0 160 160",className:"h-40 w-40 shrink-0",children:[(0,d.jsx)("circle",{cx:80,cy:80,r:70,fill:"none",stroke:"var(--border)",strokeWidth:8}),(0,d.jsx)("circle",{cx:80,cy:80,r:70,fill:"none",stroke:m?"var(--warn)":"var(--cpu)",strokeWidth:8,strokeLinecap:"round",strokeDasharray:g,strokeDashoffset:o,transform:"rotate(-90 80 80)"}),(0,d.jsx)("text",{x:"50%",y:m||k?"45%":"50%",dominantBaseline:"central",textAnchor:"middle",className:"fill-foreground text-xl font-semibold tnum",children:(0,e.l9)(n)}),m?(0,d.jsx)("text",{x:"50%",y:102,textAnchor:"middle",className:"fill-warn text-xs tnum",children:"last known"}):k?(0,d.jsx)("text",{x:"50%",y:102,textAnchor:"middle",className:"fill-muted-foreground text-xs tnum",children:"held"}):null]}),(0,d.jsx)("p",{className:"text-center text-xs text-muted-foreground",children:m?`Last known value — no update for over ${(0,e.$)(l??f.vz)}${i?` (${i})`:""}`:i??""})]})}function l(a){let{reason:b,ageLabel:c}=a;return(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("div",{role:"img","aria-label":`Memory unavailable — ${b}`,className:"h-3 w-full max-w-64 rounded-full border border-dashed border-border"}),(0,d.jsx)(i,{reason:b,ageLabel:c})]})}function m(a){let{field:b,ageLabel:c,isHeld:g,thresholdMs:i}=a;if("unavailable"===b.out)return(0,d.jsx)(l,{reason:b.reason,ageLabel:c??null});if("absent"===b.out)return(0,d.jsx)(l,{reason:"No sample has arrived yet.",ageLabel:c??null});let j="stale"===b.out,k=b.totalBytes,m=b.usedBytes,o=k>0?h(m/k*100)/100:0,p=j?`Memory last known ${(0,e.z3)(m)} of ${(0,e.z3)(k)}, stale`:`Memory ${(0,e.z3)(m)} of ${(0,e.z3)(k)}`;return(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("div",{role:"img","aria-label":p,className:"flex h-3 w-full max-w-64 items-stretch overflow-hidden rounded-full bg-card-strong",children:(0,d.jsx)("div",{className:"h-full rounded-full",style:{width:`${100*o}%`,backgroundColor:j?"var(--warn)":"var(--mem)",minWidth:k>0?void 0:0}})}),(0,d.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,d.jsx)("p",{className:"tnum text-sm",children:k>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-semibold",children:(0,e.z3)(m)}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[" of ",(0,e.z3)(k)]}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[" ","\xb7 ",(0,e.l9)(k>0?m/k*100:null)]})]}):(0,d.jsxs)("span",{className:"text-muted-foreground",children:[(0,e.z3)(m)," used — total size unavailable"]})}),j?(0,d.jsx)(n,{text:"last known",title:`No update for over ${(0,e.$)(i??f.vz)}`}):null,g&&!j?(0,d.jsx)(n,{text:"held",title:"Value kept while the connection is down"}):null]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:j?`Retained from the last accepted sample${c?` (${c})`:""}.`:c??""})]})}function n(a){let{text:b,title:c}=a;return(0,d.jsx)("span",{title:c,className:"tnum shrink-0 rounded-full border border-border px-2 py-0.5 text-xs text-muted-foreground",children:b})}},90606:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(65366).A)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},99837:(a,b,c)=>{c.d(b,{B4:()=>o,CE:()=>k,V5:()=>i,YL:()=>n,Zf:()=>p,cH:()=>l,cy:()=>C,d5:()=>m,fp:()=>z,hL:()=>x,rn:()=>j,v4:()=>h});var d=c(93224);function e(a,b){return{state:"value",value:a,stale:b}}function f(a){return{state:"unavailable",reason:a}}function g(a){return{state:"absent",reason:a}}function h(a){let b=a.displayName?.trim();if(b)return b;let c=a.hostname?.trim();return c||a.machineId}function i(a){let b=new Set,c=[];for(let d of a.tags??[]){if("string"!=typeof d)continue;let a=d.trim();if(!(""===a||b.has(a.toLowerCase()))&&(b.add(a.toLowerCase()),c.push(a),c.length>=32))break}return c}function j(a,b){let c=b.trim().toLowerCase().split(/\s+/).filter(Boolean);return 0===c.length?[...a]:a.filter(a=>{let b=[h(a),a.hostname,a.machineId,a.collectorId,...i(a)].filter(a=>"string"==typeof a&&""!==a.trim()).join(" ").toLowerCase();return c.every(a=>b.includes(a))})}function k(a){return null!=a&&Number.isFinite(a)?`${(0,d.z3)(a)}/s`:"—"}function l(a){return null!=a&&Number.isFinite(a)?`${Math.round(a)} \xb0C`:"—"}function m(a){return null!=a&&Number.isFinite(a)?`${Math.round(a)} W`:"—"}function n(a){return null==a||!Number.isFinite(a)||a<0?"—":`${a<10?a.toFixed(2):a.toFixed(1)} ms`}function o(a){return null!=a&&Number.isFinite(a)?Math.round(a).toLocaleString():"—"}function p(a){return null!=a&&Number.isFinite(a)?`${Math.round(a)} Mb/s`:"—"}function q(a){let b=a.filter(a=>"supported"===a.telemetry);return b.some(a=>"ok"===a.state)&&b.some(a=>"ok"!==a.state)}let r="The collector has not reported this metric family to this hub.";function s(a){return a.metrics?.payload??null}function t(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function u(a){let b=t(a);return null!==b&&b>=0?b:null}function v(a,b,c,d,h=!0){if(null===a||"object"!=typeof a)return g(d);if("unavailable"===a.status)return f(("string"==typeof a.reason?a.reason.trim():"")||"This metric family is unavailable.");if("ok"!==a.status)return g(d);let i=(h?u:t)(a[b]);return null===i?f("Not reported for this sample."):e(i,c)}function w(a){let b=s(a);return null!==b?"ok"===b.disks.status?{state:"available"}:{state:"unavailable",reason:b.disks.reason}:{state:"absent",reason:r}}function x(a,b){var c;let j,k,l,m,n,o,p,t,x,y=(0,d.vj)(a,b),z="stale"===y,A=function(a,b){let c=a.inventory?.gpus??[],d=s(a),e=d?.gpus.status==="ok"?d.gpus.devices:[],f=d?.gpus.status==="unavailable"?d.gpus.reason:null,g=new Map(e.map(a=>[a.id,a])),h=new Map(c.map(a=>[a.id,a])),i=[];for(let a of c)i.push(a.id);for(let a of e)h.has(a.id)||i.push(a.id);let j=[];for(let a of i){let c=h.get(a),d=g.get(a),e={id:a,name:c?.name??a.replace(/^gpu:/,""),vendor:c?.vendor??"other",pciBusId:c?.pciBusId??null,telemetry:c?.telemetry??"supported",stale:b};if(d?.status==="ok"){j.push({...e,state:"ok",reason:null,utilizationPercent:d.utilizationPercent,memoryUsedBytes:d.memoryUsedBytes,memoryTotalBytes:d.memoryTotalBytes??c?.memoryTotalBytes??null,temperatureC:d.temperatureC,powerWatts:d.powerWatts});continue}if(d?.status==="unavailable"){j.push({...e,state:"unavailable",reason:d.reason,utilizationPercent:null,memoryUsedBytes:null,memoryTotalBytes:c?.memoryTotalBytes??null,temperatureC:null,powerWatts:null});continue}if(c?.telemetry==="unsupported"){j.push({...e,state:"unsupported",reason:c.reason??"No supported telemetry for this adapter.",utilizationPercent:null,memoryUsedBytes:null,memoryTotalBytes:null,temperatureC:null,powerWatts:null});continue}j.push({...e,state:"unavailable",reason:f??"No current reading for this device.",utilizationPercent:null,memoryUsedBytes:null,memoryTotalBytes:c?.memoryTotalBytes??null,temperatureC:null,powerWatts:null})}return j}(a,z);return{displayName:h(a),tags:i(a),freshness:y,thresholdMs:(0,d.Cj)(a.expectedIntervalMs),stale:z,cpu:{total:void 0===(l=a.metrics?.payload.cpu)?g("No CPU reading has been received yet."):"ok"===l.status?e(l.usagePercent,z):f(l.reason),perCore:void 0===(m=a.metrics?.payload.cpu)?g("No CPU reading has been received yet; per-core values are unknown."):"ok"===m.status?e([...m.perCore],z):f(m.reason)},memory:void 0===(n=a.metrics?.payload.memory)?g("No memory reading has been received yet."):"ok"===n.status?e({usedBytes:n.usedBytes,totalBytes:n.totalBytes},z):f(n.reason),swap:void 0===(o=a.metrics?.payload.swap)?g("No swap reading has been received yet."):"ok"===o.status?e({usedBytes:o.usedBytes,totalBytes:o.totalBytes},z):f(o.reason),bottlenecks:(p=a.metrics?.payload.cpu,t=a.metrics?.payload.memory,x=a.metrics?.payload.disks,{cpuTemperature:v(p,"temperatureC",z,"No CPU reading has been received yet.",!1),cpuPower:v(p,"powerWatts",z,"No CPU reading has been received yet."),cpuIowait:v(p,"iowaitPercent",z,"No CPU reading has been received yet."),cpuPressure:v(p,"pressureSomePercent",z,"No CPU reading has been received yet."),memoryPressureSome:v(t,"pressureSomePercent",z,"No memory reading has been received yet."),memoryPressureFull:v(t,"pressureFullPercent",z,"No memory reading has been received yet."),ioPressureSome:v(x,"pressureSomePercent",z,"No disk reading has been received yet."),ioPressureFull:v(x,"pressureFullPercent",z,"No disk reading has been received yet.")}),gpus:{family:null!==(j=s(c=a))?"ok"===j.gpus.status?{state:"available"}:{state:"unavailable",reason:j.gpus.reason}:(c.inventory?.gpus.length??0)>0?{state:"absent",reason:"No GPU readings have been received yet."}:{state:"absent",reason:r+" GPU telemetry is unknown until inventory or a reading arrives."},cards:A,partial:q(A)},filesystems:{family:w(a),items:function(a,b){let c=a.inventory?.filesystems??[],d=s(a),e=d?.disks.status==="ok"?d.disks.filesystems:[],f=d?.disks.status==="unavailable"?d.disks.reason:null,g=new Map(e.map(a=>[a.id,a])),h=new Map(c.map(a=>[a.id,a])),i=[];for(let a of c)i.push(a.id);for(let a of e)h.has(a.id)||i.push(a.id);return i.map(a=>{let c=h.get(a),e=g.get(a),i={id:a,mountPoint:c?.mountPoint??a.replace(/^fs:/,""),device:c?.device??"",fsType:c?.fsType??"unknown",totalBytes:c?.totalBytes??null,inodesUsed:null,inodesTotal:null,stale:b};return e?.status==="ok"?{...i,usedBytes:e.usedBytes,totalBytes:e.totalBytes,inodesUsed:u(e.inodesUsed),inodesTotal:u(e.inodesTotal),state:"ok",reason:null}:e?.status==="unavailable"?{...i,usedBytes:null,state:"unavailable",reason:e.reason}:null!==f?{...i,usedBytes:null,state:"unavailable",reason:f}:{...i,usedBytes:null,state:"inventory",reason:null===d?r:"No current usage reading for this filesystem."}})}(a,z)},disks:{family:w(a),items:function(a,b){let c=a.inventory?.disks??[],d=s(a),e=d?.disks.status==="ok"?d.disks.devices:[],f=d?.disks.status==="unavailable"?d.disks.reason:null,g=new Map(e.map(a=>[a.id,a])),h=new Map(c.map(a=>[a.id,a])),i=[];for(let a of c)i.push(a.id);for(let a of e)h.has(a.id)||i.push(a.id);return i.map(a=>{let c=h.get(a),e=g.get(a),i={id:a,name:c?.name??a.replace(/^disk:/,""),model:c?.model??null,rotational:c?.rotational??null,sizeBytes:c?.sizeBytes??null,readLatencyMs:null,writeLatencyMs:null,ioUtilizationPercent:null,stale:b};return e?.status==="ok"?{...i,state:"ok",reason:null,readBytesPerSec:e.readBytesPerSec,writeBytesPerSec:e.writeBytesPerSec,readLatencyMs:u(e.readLatencyMs),writeLatencyMs:u(e.writeLatencyMs),ioUtilizationPercent:u(e.ioUtilizationPercent)}:e?.status==="unavailable"?{...i,state:"unavailable",reason:e.reason,readBytesPerSec:null,writeBytesPerSec:null}:null!==f?{...i,state:"unavailable",reason:f,readBytesPerSec:null,writeBytesPerSec:null}:{...i,state:"inventory",reason:null===d?r:"No current I/O reading for this device.",readBytesPerSec:null,writeBytesPerSec:null}})}(a,z)},network:{family:null!==(k=s(a))?"ok"===k.network.status?{state:"available"}:{state:"unavailable",reason:k.network.reason}:{state:"absent",reason:r},items:function(a,b){let c=a.inventory?.network??[],d=s(a),e=d?.network.status==="ok"?d.network.interfaces:[],f=d?.network.status==="unavailable"?d.network.reason:null,g=new Map(e.map(a=>[a.id,a])),h=new Map(c.map(a=>[a.id,a])),i=[];for(let a of c)i.push(a.id);for(let a of e)h.has(a.id)||i.push(a.id);return i.map(a=>{let c=h.get(a),e=g.get(a),i={id:a,name:c?.name??a.replace(/^net:/,""),mac:c?.mac??null,addresses:c?.addresses??[],virtual:c?.virtual??!1,linkState:c?.state??"unknown",speedMbps:c?.speedMbps??null,stale:b};return e?.status==="ok"?{...i,state:"ok",reason:null,rxBytesPerSec:e.rxBytesPerSec,txBytesPerSec:e.txBytesPerSec}:e?.status==="unavailable"?{...i,state:"unavailable",reason:e.reason,rxBytesPerSec:null,txBytesPerSec:null}:null!==f?{...i,state:"unavailable",reason:f,rxBytesPerSec:null,txBytesPerSec:null}:{...i,state:"inventory",reason:null===d?r:"No current rate reading for this interface.",rxBytesPerSec:null,txBytesPerSec:null}})}(a,z)}}}function y(a){if(0===a.length||a.some(a=>null===a))return null;let b=0;for(let c of a)b+=c;return b}function z(a,b){let c,d,e,f,g,h,i=x(a,b),j=i.gpus.cards,k=0===j.length?null:(e=(d=(c=j.filter(a=>"supported"===a.telemetry)).filter(a=>"ok"===a.state)).map(a=>a.utilizationPercent).filter(a=>null!==a),f=y(c.map(a=>a.memoryUsedBytes)),g=y(c.map(a=>a.memoryTotalBytes)),h=0===d.length?"unavailable"===i.gpus.family.state||"absent"===i.gpus.family.state?i.gpus.family.reason:0===c.length?"No telemetry-supported GPU was reported.":"No current GPU reading.":null,{count:j.length,supportedCount:c.length,okCount:d.length,partial:q(j),maxUtilizationPercent:0===e.length?null:Math.max(...e),memoryUsedBytes:f,memoryTotalBytes:g,stale:i.stale,reason:h}),l=i.filesystems.items.filter(a=>"ok"===a.state&&null!==a.usedBytes&&null!==a.totalBytes&&a.totalBytes>0).map(a=>a.usedBytes/a.totalBytes*100),m=0===i.filesystems.items.length?null:{maxUsedPercent:0===l.length?null:Math.max(...l),stale:i.stale,reason:0===l.length?"available"===i.filesystems.family.state?"No current filesystem usage reading.":i.filesystems.family.reason:null},n=i.network.items.filter(a=>"ok"===a.state&&null!==a.rxBytesPerSec&&null!==a.txBytesPerSec),o=0===i.network.items.length?null:{rxBytesPerSec:n.reduce((a,b)=>a+b.rxBytesPerSec,0),txBytesPerSec:n.reduce((a,b)=>a+b.txBytesPerSec,0),stale:i.stale,reason:0===n.length?"available"===i.network.family.state?"No current interface rate reading.":i.network.family.reason:null};return{cpu:i.cpu.total,memory:i.memory,gpu:k,disk:m,network:o}}let A=["cpu","memory","swap","gpus","disks","network","processes"],B={cpu:"CPU",memory:"Memory",swap:"Swap",gpus:"GPUs",disks:"Disks",network:"Network",processes:"Processes"};function C(a,b){return a.map(a=>{var c;return{machineId:a.machineId,name:h(a),collectorId:a.collectorId,connected:a.connected,cadenceMs:a.expectedIntervalMs??null,thresholdMs:(0,d.Cj)(a.expectedIntervalMs),lastReceivedAt:a.lastReceivedAt,freshness:(0,d.vj)(a,b),delivery:a.delivery?.delivery??null,deliveryCapturedAt:a.delivery?.capturedAt??null,failures:a.delivery?.failures??[],capabilities:void 0===(c=a.inventory)?null:A.map(a=>{let b=c.capabilities[a];return{key:a,label:B[a],status:b.status,reason:b.reason??null}})}})}}};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[103],{802:(e,n,r)=>{r.d(n,{B:()=>l});var t=r(5155),i=r(8500),s=r.n(i),a=r(9939);function l(){let{session:e,phase:n,signOut:r}=(0,a.M)();return"signed-in"===e.kind?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"hidden max-w-[12rem] truncate text-xs text-muted-foreground sm:inline",children:e.user.username}),(0,t.jsx)("button",{type:"button",onClick:()=>void r(),className:"rounded-md px-2.5 py-1.5 text-xs text-muted-foreground transition-colors hover:bg-card-strong hover:text-foreground",children:"Sign out"})]}):"restoring"===e.kind||"auth-unavailable"===e.kind?null:(0,t.jsx)("div",{className:"flex items-center gap-1",children:(0,t.jsx)(s(),{href:"/login",className:"rounded-md border border-border px-2.5 py-1.5 text-xs text-foreground transition-colors hover:bg-card-strong",children:"Sign in"})})}},940:(e,n,r)=>{r.d(n,{$E:()=>d,TK:()=>o});var t=r(5155),i=r(9939);let s={ok:"bg-ok",warn:"bg-warn",crit:"bg-crit",muted:"bg-muted-foreground/50"};function a(e,n){switch(e.kind){case"restoring":return{label:"Checking session…",tone:"muted"};case"restore-failed":return{label:"Hub unreachable",tone:"crit"};case"signed-out":return{label:"Signed out",tone:"muted"};case"auth-unavailable":return{label:"Sign-in unavailable",tone:"warn"}}switch(n){case"idle":return{label:"Not connected",tone:"muted"};case"connecting":return{label:"Connecting…",tone:"warn"};case"live":return{label:"Live",tone:"ok"};case"reconnecting":return{label:"Reconnecting…",tone:"warn"};case"disconnected":return{label:"Disconnected",tone:"crit"};case"expired":return{label:"Session ended",tone:"crit"};case"no-permission":return{label:"No permission",tone:"warn"}}}function l({tone:e}){return(0,t.jsx)("span",{className:`inline-block h-2 w-2 shrink-0 rounded-full ${s[e]}`,"aria-hidden":!0})}function d(){let{session:e,phase:n,lastEventKind:r,notice:s,dismissNotice:d}=(0,i.M)(),o=a(e,n),c="reset"===r&&"live"===n?"Stream resynchronized with a fresh snapshot.":null;return(0,t.jsxs)("div",{role:"status","aria-label":`Live feed status: ${o.label}`,className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(l,{tone:o.tone}),(0,t.jsx)("span",{className:"tnum truncate text-xs text-muted-foreground",children:o.label}),c?(0,t.jsxs)("span",{className:"tnum hidden truncate text-xs text-muted-foreground lg:inline",title:c,children:["\xb7 ",c]}):null,s?(0,t.jsxs)("button",{type:"button",onClick:d,className:"max-w-[16rem] truncate rounded-md border border-border px-2 py-0.5 text-xs text-foreground transition-colors hover:bg-card-strong",title:`${s} Click to dismiss.`,children:[s,(0,t.jsx)("span",{"aria-hidden":!0,children:" ✕"})]}):null]})}function o(){let{session:e,phase:n}=(0,i.M)(),r=a(e,n);return(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 text-xs",children:[(0,t.jsx)(l,{tone:r.tone}),(0,t.jsx)("span",{className:"truncate",role:"status","aria-label":`Live feed status: ${r.label}`,children:r.label})]})}},1721:(e,n,r)=>{r.d(n,{MachineBreadcrumb:()=>d});var t=r(5155),i=r(8500),s=r.n(i),a=r(9939),l=r(8664);function d({machineId:e,title:n,view:r}){let{machines:i}=(0,a.M)(),o=(0,l.FM)(),c=i.find(n=>n.machineId===e),m=c?.displayName||c?.hostname||"Machine";return(0,t.jsxs)("nav",{"aria-label":"Breadcrumb",className:"flex min-w-0 items-center gap-2 text-sm",children:[(0,t.jsx)(s(),{href:"/",className:"hidden text-muted-foreground hover:text-foreground sm:inline",children:"Fleet"}),(0,t.jsx)("span",{"aria-hidden":!0,className:"hidden text-muted-foreground sm:inline",children:"/"}),(0,t.jsx)(s(),{href:(0,l.Y2)(e,"overview"),className:"hidden max-w-48 truncate text-muted-foreground hover:text-foreground md:inline",children:m}),(0,t.jsx)("select",{"aria-label":"Machine",value:e,onChange:e=>o(e.target.value,r),className:"h-8 min-w-0 max-w-32 rounded-md border border-border bg-card px-1.5 text-sm md:hidden",children:i.map(e=>(0,t.jsx)("option",{value:e.machineId,children:e.displayName||e.hostname||e.machineId},e.machineId))}),(0,t.jsx)("span",{"aria-hidden":!0,className:"text-muted-foreground",children:"/"}),(0,t.jsx)("h1",{className:"truncate text-lg font-semibold tracking-tight",children:n})]})}},2394:(e,n,r)=>{r.d(n,{ThemeToggle:()=>l});var t=r(5155),i=r(1134),s=r(9145),a=r(460);function l(){let{resolvedTheme:e,setTheme:n}=(0,a.D)();return(0,t.jsxs)("button",{type:"button",onClick:()=>n("dark"===e?"light":"dark"),"aria-label":"Toggle theme",className:"flex h-9 w-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-selected hover:text-foreground",children:[(0,t.jsx)(i.A,{className:"h-4.5 w-4.5 dark:hidden"}),(0,t.jsx)(s.A,{className:"hidden h-4.5 w-4.5 dark:block"})]})}},2701:(e,n,r)=>{r.d(n,{Sidebar:()=>w});var t=r(5155),i=r(8500),s=r.n(i),a=r(3321),l=r(257),d=r(7233),o=r(2955),c=r(3896),m=r(9764),u=r(4201),h=r(8731),x=r(8664),f=r(8773),b=r(940),g=r(9939);let p=[{href:"/alerts",label:"Alerts",icon:l.A},{href:"/connections",label:"Connections",icon:d.A}],v=[{view:"overview",label:"Overview",icon:o.A},{view:"history",label:"History",icon:c.A},{view:"processes",label:"Processes",icon:m.A}],j=e=>["flex min-h-9 min-w-0 items-center gap-3 rounded-md px-2 text-sm transition-colors md:px-3",e?"bg-selected font-medium text-foreground":"text-muted-foreground hover:bg-card-strong hover:text-foreground"].join(" ");function w({machineId:e,machineView:n}){let r=(0,a.usePathname)(),{session:i,machines:l}=(0,g.M)(),{machine:d,view:o,selectMachine:c}=(0,x.PY)(e,n),m="signed-in"===i.kind&&!0===i.user.admin?[...p,{href:"/administration",label:"Administration",icon:u.A}]:p;return(0,t.jsxs)("aside",{className:"flex w-14 shrink-0 flex-col border-r border-border bg-card md:w-56",children:[(0,t.jsxs)(s(),{href:"/","aria-label":"Rigscope",className:"flex h-14 shrink-0 items-center gap-2.5 border-b border-border px-3 md:px-5",children:[(0,t.jsx)(f.R,{className:"h-5 w-5 shrink-0 text-accent","aria-hidden":!0}),(0,t.jsx)("span",{className:"hidden text-sm font-semibold tracking-tight text-foreground md:inline",children:"Rigscope"})]}),(0,t.jsxs)("nav",{"aria-label":"Primary",className:"flex min-h-0 flex-1 flex-col overflow-y-auto p-2 md:p-3",children:[(0,t.jsxs)(s(),{href:"/","aria-current":"/"===r?"page":void 0,title:"Fleet",className:j("/"===r),children:[(0,t.jsx)(h.A,{className:"h-4 w-4 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"hidden md:inline",children:"Fleet"})]}),d?(0,t.jsxs)("div",{className:"mb-4 mt-2 md:ms-3 md:border-s md:border-border md:ps-3",children:[(0,t.jsx)("label",{htmlFor:"sidebar-machine",className:"sr-only",children:"Machine"}),(0,t.jsx)("select",{id:"sidebar-machine",value:d.machineId,onChange:e=>c(e.target.value),className:"mb-1 hidden h-9 w-full min-w-0 rounded-md border border-border bg-background px-2 text-sm font-medium md:block",children:l.map(e=>(0,t.jsx)("option",{value:e.machineId,children:e.displayName||e.hostname||e.machineId},e.machineId))}),(0,t.jsx)("nav",{"aria-label":"Selected machine",className:"flex flex-col gap-1",children:v.map(({view:e,label:n,icon:r})=>(0,t.jsxs)(s(),{href:(0,x.Y2)(d.machineId,e),"aria-current":o===e?"page":void 0,title:`${d.displayName||d.hostname}: ${n}`,className:j(o===e),children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"hidden md:inline",children:n})]},e))})]}):null,(0,t.jsx)("div",{className:"flex flex-col gap-1 border-t border-border pt-3",children:m.map(({href:e,label:n,icon:i})=>(0,t.jsxs)(s(),{href:e,"aria-current":r===e?"page":void 0,title:n,className:j(r===e),children:[(0,t.jsx)(i,{className:"h-4 w-4 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{className:"hidden md:inline",children:n})]},e))})]}),(0,t.jsx)("footer",{className:"hidden shrink-0 border-t border-border p-3 md:block",children:(0,t.jsx)(b.TK,{})})]})}},3440:(e,n,r)=>{r.d(n,{Z:()=>i,p:()=>s});var t=r(5155);function i({title:e,action:n,className:r,children:s}){return(0,t.jsxs)("section",{className:["flex min-w-0 flex-col rounded-xl border border-border bg-card p-5",r].filter(Boolean).join(" "),children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-4",children:[(0,t.jsx)("h2",{className:"text-sm font-medium tracking-tight",children:e}),n?(0,t.jsx)("div",{className:"text-xs tabular-nums",children:n}):null]}),(0,t.jsx)("div",{className:"mt-4 flex min-h-0 flex-1 flex-col",children:s})]})}function s({icon:e,note:n,className:r}){return(0,t.jsxs)("div",{className:["flex flex-1 flex-col items-center justify-center gap-2.5 rounded-lg border border-dashed border-border px-6 py-10 text-center",r].filter(Boolean).join(" "),children:[(0,t.jsx)(e,{className:"h-5 w-5 text-muted-foreground","aria-hidden":!0}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:n})]})}},4173:(e,n,r)=>{r.d(n,{G:()=>l});var t=r(5155),i=r(1721),s=r(2701),a=r(2394);function l({title:e,headerRight:n,children:r,workspace:d=!1,machineId:o,machineView:c}){return(0,t.jsxs)("div",{className:"relative flex h-dvh overflow-hidden bg-background text-foreground",children:[(0,t.jsx)("a",{href:"#main-content",className:"sr-only z-50 rounded-md bg-card px-4 py-2 text-foreground focus:not-sr-only focus:absolute focus:start-2 focus:top-2 focus:outline-2 focus:outline-accent",children:"Skip to content"}),(0,t.jsx)(s.Sidebar,{machineId:o,machineView:c}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsxs)("header",{className:"flex min-h-14 shrink-0 flex-wrap items-center justify-between gap-2 border-b border-border px-4 py-2 md:px-6",children:[o&&c?(0,t.jsx)(i.MachineBreadcrumb,{machineId:o,title:e,view:c}):(0,t.jsx)("h1",{className:"truncate text-lg font-semibold tracking-tight",children:e}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[n?(0,t.jsx)("div",{className:"flex min-w-0 items-center gap-3",children:n}):null,(0,t.jsx)(a.ThemeToggle,{})]})]}),(0,t.jsx)("main",{id:"main-content",tabIndex:-1,className:`relative min-h-0 min-w-0 flex-1 overflow-x-hidden overscroll-contain p-4 outline-offset-[-2px] md:p-6 ${d?"flex flex-col overflow-y-hidden":"overflow-y-auto"}`,children:(0,t.jsx)("div",{className:d?"mx-auto flex h-full w-full min-h-0 min-w-0 max-w-[1500px] flex-1 flex-col":"mx-auto flex w-full min-w-0 max-w-[1500px] flex-col",children:r})})]})]})}},6114:(e,n,r)=>{r.d(n,{u:()=>u});var t=r(2115);let i="rigscope:",s=new Map,a=new Map,l=new Map,d=!1;function o(e){try{return"local"===e?window.localStorage:window.sessionStorage}catch{return null}}function c(e,n){return`${e}:${n}`}function m(e,n,r,t){let a=c(e,n);if(s.has(a))return s.get(a);let l=r,d=o(e);if(null!==d)try{let e=d.getItem(i+n);if(null!==e){let n=t(JSON.parse(e));null!==n&&(l=n)}}catch{}return s.set(a,l),l}function u(e,n,r,h="local"){let x=c(h,e);return[(0,t.useSyncExternalStore)((0,t.useCallback)(e=>{let n;return void 0===(n=a.get(x))&&(n=new Set,a.set(x,n)),n.add(e),()=>{n.delete(e)}},[x]),()=>m(h,e,n,r),()=>n),(0,t.useCallback)(t=>{let u=m(h,e,n,r),f="function"==typeof t?t(u):t;if(!Object.is(f,u)){s.set(x,f);let n=c(h,e),r=l.get(n);void 0!==r&&clearTimeout(r.timer);let t=()=>{let r=l.get(n);r&&clearTimeout(r.timer),l.delete(n);let t=o(h);if(null!==t)try{t.setItem(i+e,JSON.stringify(s.get(n)))}catch{}};if(l.set(n,{timer:setTimeout(t,250),flush:t}),!d){d=!0;let e=()=>l.forEach(e=>e.flush());window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",()=>{document.hidden&&e()})}a.get(x)?.forEach(e=>e())}},[n,x,e,h,r])]}},8664:(e,n,r)=>{r.d(n,{FM:()=>f,JG:()=>x,PY:()=>b,Y2:()=>l});var t=r(2115),i=r(3321),s=r(6114),a=r(9939);function l(e,n){let r=encodeURIComponent(e);return"overview"===n?`/machines/${r}`:`/${n}?machineId=${r}`}function d(e){let n=e.inventory?.capabilities?.processes;return void 0===n||"supported"===n.status}let o={overview:e=>e[0],history:e=>e[0],processes:e=>e.find(d)??e[0]};function c({view:e,requestedMachineId:n,rememberedMachineId:r,machines:t}){if(0===t.length)return{kind:"fleet-empty"};if(n){let e=t.find(e=>e.machineId===n);return e?{kind:"resolved",machine:e,via:"requested"}:{kind:"missing",requestedMachineId:n}}if(r){let e=t.find(e=>e.machineId===r);if(e)return{kind:"resolved",machine:e,via:"remembered"}}let i=o[e](t);return i?{kind:"resolved",machine:i,via:"fallback"}:{kind:"fleet-empty"}}let m=e=>"string"==typeof e?e:null;function u(){return(0,s.u)("machine.selected","",m,"session")}let h=new Set(["history"]);function x(e,n){let{session:r,machines:s}=(0,a.M)(),l=(0,i.useRouter)(),d=(0,i.usePathname)()||`/${e}`,o=(0,i.useSearchParams)(),[m,x]=u(),f="overview"===e?n??"":o.get("machineId")||null,b=(0,t.useMemo)(()=>c({view:e,requestedMachineId:f,rememberedMachineId:m,machines:s}),[e,f,m,s]),g="resolved"===b.kind?b.machine:void 0,p=g?.machineId??"",v="overview"===e?f??"":"processes"===e?g?.machineId??f??"":p;(0,t.useEffect)(()=>{p&&x(p)},[p,x]);let j=h.has(e);return(0,t.useEffect)(()=>{if(!j||"signed-in"!==r.kind||0===s.length||null!==f||""===p)return;let e=function(e,n,r){if(n.get("machineId"))return null;let t=new URLSearchParams(n.toString());return t.set("machineId",r),`${e}?${t.toString()}`}(d,o,p);e&&l.replace(e,{scroll:!1})},[j,r.kind,s,f,p,o,l,d]),{resolution:b,machine:g,machineId:p,navMachineId:v,requestedMachineId:f}}function f(){let e=(0,i.useRouter)(),[,n]=u();return(0,t.useCallback)((r,t)=>{n(r),e.push(l(r,t))},[n,e])}function b(e,n){let r=(0,i.usePathname)()||"/",{machines:t}=(0,a.M)(),[s]=u(),l=f(),d=n??(r.startsWith("/machines/")?"overview":"/history"===r?"history":"/processes"===r?"processes":null),o=c({view:d??"overview",requestedMachineId:t.some(n=>n.machineId===e)?e:null,rememberedMachineId:s,machines:t});return{view:d,machine:"resolved"===o.kind?o.machine:void 0,selectMachine:e=>l(e,d??"overview")}}},8773:(e,n,r)=>{r.d(n,{R:()=>i});var t=r(5155);function i(e){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",...e,children:[(0,t.jsx)("path",{d:"M8 3H4v18h4M16 3h4v18h-4"}),(0,t.jsx)("path",{d:"m8 15 4-6 4 3M8 8h.01M16 17h.01"})]})}}}]);
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--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-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-outline-style:solid}}}@layer theme{:host,:root{--font-sans:-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-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1) infinite;--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:var(--background);--color-foreground:var(--foreground)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-2{right:calc(var(--spacing) * 2)}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.order-first{order:-9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:var(--spacing)}.m-2{margin:calc(var(--spacing) * 2)}.m-3{margin:calc(var(--spacing) * 3)}.m-74{margin:calc(var(--spacing) * 74)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.my-12{margin-block:calc(var(--spacing) * 12)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-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-14{height:calc(var(--spacing) * 14)}.h-40{height:calc(var(--spacing) * 40)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-96{max-height:calc(var(--spacing) * 96)}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.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-14{min-height:calc(var(--spacing) * 14)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-64{min-height:calc(var(--spacing) * 64)}.min-h-dvh{min-height:100dvh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-9{width:calc(var(--spacing) * 9)}.w-14{width:calc(var(--spacing) * 14)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-\[12rem\]{max-width:12rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[18rem\]{max-width:18rem}.max-w-\[1500px\]{max-width:1500px}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-52{flex-basis:calc(var(--spacing) * 52)}.table-fixed{table-layout:fixed}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.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-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[3rem_minmax\(0\,1fr\)_4\.5rem\]{grid-template-columns:3rem minmax(0,1fr) 4.5rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[repeat\(auto-fit\,minmax\(3\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(3.5rem,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.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-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-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-5{row-gap:calc(var(--spacing) * 5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[5px\]{border-style:var(--tw-border-style);border-width:5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent\/40{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.border-accent\/40{border-color:color-mix(in oklab,var(--accent) 40%,transparent)}}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.border-crit{border-color:var(--crit)}.border-current{border-color:currentColor}.border-transparent{border-color:#0000}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-card-strong,.bg-card-strong\/25{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.bg-card-strong\/25{background-color:color-mix(in oklab,var(--card-strong) 25%,transparent)}}.bg-card-strong\/30{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.bg-card-strong\/30{background-color:color-mix(in oklab,var(--card-strong) 30%,transparent)}}.bg-card-strong\/40{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.bg-card-strong\/40{background-color:color-mix(in oklab,var(--card-strong) 40%,transparent)}}.bg-cpu{background-color:var(--cpu)}.bg-crit{background-color:var(--crit)}.bg-crit-soft{background-color:var(--crit-soft)}.bg-current{background-color:currentColor}.bg-mem{background-color:var(--mem)}.bg-muted-foreground\/50{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/50{background-color:color-mix(in oklab,var(--muted-foreground) 50%,transparent)}}.bg-ok{background-color:var(--ok)}.bg-ok-soft{background-color:var(--ok-soft)}.bg-selected{background-color:var(--selected)}.bg-warn{background-color:var(--warn)}.bg-warn-soft{background-color:var(--warn-soft)}.fill-foreground{fill:var(--foreground)}.fill-muted-foreground{fill:var(--muted-foreground)}.fill-warn{fill:var(--warn)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-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))}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--accent)}.text-accent-foreground{color:var(--accent-foreground)}.text-crit{color:var(--crit)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-ok{color:var(--ok)}.text-warn{color:var(--warn)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.accent-foreground{accent-color:var(--foreground)}.opacity-20{opacity:.2}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline-offset-\[-2px\]{outline-offset:-2px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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-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))}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\/handle\:bg-accent:is(:where(.group\/handle):hover *){background-color:var(--accent)}}.group-focus-visible\/handle\:bg-accent:is(:where(.group\/handle):focus-visible *){background-color:var(--accent)}.peer-focus-visible\:outline:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:1px}.peer-focus-visible\:outline-2:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:2px}.peer-focus-visible\:outline-offset-2:is(:where(.peer):focus-visible~*){outline-offset:2px}.peer-focus-visible\:\[outline-color\:var\(--focus\)\]:is(:where(.peer):focus-visible~*){outline-color:var(--focus)}.peer-focus-visible\:outline-accent:is(:where(.peer):focus-visible~*){outline-color:var(--accent)}.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted-foreground\/70::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-muted-foreground\/70::placeholder{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-muted-foreground\/40:hover{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.hover\:border-muted-foreground\/40:hover{border-color:color-mix(in oklab,var(--muted-foreground) 40%,transparent)}}.hover\:bg-accent\/90:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/90:hover{background-color:color-mix(in oklab,var(--accent) 90%,transparent)}}.hover\:bg-card:hover{background-color:var(--card)}.hover\:bg-card-strong:hover,.hover\:bg-card-strong\/60:hover{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card-strong\/60:hover{background-color:color-mix(in oklab,var(--card-strong) 60%,transparent)}}.hover\:bg-card-strong\/70:hover{background-color:var(--card-strong)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-card-strong\/70:hover{background-color:color-mix(in oklab,var(--card-strong) 70%,transparent)}}.hover\:bg-crit-soft:hover{background-color:var(--crit-soft)}.hover\:bg-selected:hover{background-color:var(--selected)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:absolute:focus{position:absolute}.focus\:start-2:focus{inset-inline-start:calc(var(--spacing) * 2)}.focus\:top-2:focus{top:calc(var(--spacing) * 2)}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-accent:focus{outline-color:var(--accent)}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.aria-\[invalid\=true\]\:border-crit[aria-invalid=true]{border-color:var(--crit)}@media (min-width:40rem){.sm\:order-none{order:0}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[3\.5rem_minmax\(0\,1fr\)_4\.5rem_3rem\]{grid-template-columns:3.5rem minmax(0,1fr) 4.5rem 3rem}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:ms-3{margin-inline-start:calc(var(--spacing) * 3)}.md\:block{display:block}.md\:hidden{display:none}.md\:inline{display:inline}.md\:w-56{width:calc(var(--spacing) * 56)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.md\:border-border{border-color:var(--border)}.md\:p-3{padding:calc(var(--spacing) * 3)}.md\:p-5{padding:calc(var(--spacing) * 5)}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:ps-3{padding-inline-start:calc(var(--spacing) * 3)}}@media (min-width:64rem){.lg\:col-span-full{grid-column:1/-1}.lg\:inline{display:inline}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,13rem\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,13rem) minmax(0,1fr)}.lg\:items-start{align-items:flex-start}.lg\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.lg\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.lg\:pt-0{padding-top:0}.lg\:pl-6{padding-left:calc(var(--spacing) * 6)}}@media (min-width:80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-5{grid-column:span 5/span 5}.xl\:col-span-7{grid-column:span 7/span 7}.xl\:col-span-12{grid-column:span 12/span 12}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1fr\)_24rem\]{grid-template-columns:minmax(0,1fr) 24rem}.xl\:grid-cols-\[repeat\(auto-fit\,minmax\(30rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(30rem,1fr))}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}.\[\&\:\:-webkit-search-cancel-button\]\:\[-webkit-appearance\:none\]::-webkit-search-cancel-button{-webkit-appearance:none}}:root{color-scheme:light;--background:#f4f5f7;--card:#fff;--card-strong:#f9fafb;--border:#e2e4e9;--foreground:#1a1b1e;--muted-foreground:#5d5f64;--accent:#1c71d8;--accent-foreground:#fff;--selected:#e8f0fb;--component-selected:#1c71d8;--ok:#2a9134;--ok-soft:#2a913421;--warn:#c67b00;--warn-soft:#c67b0024;--crit:#c33c3c;--crit-soft:#c33c3c24;--cpu:#3584e4;--mem:#33a06f;--swap:#d8a23a;--scrollbar:#c7cad0;--focus:oklab(55.8192% -.0413209 -.171246/.6)}.dark{color-scheme:dark;--background:#1a1b1e;--card:#26272b;--card-strong:#2d2e33;--border:#3a3b3f;--foreground:#e4e5e8;--muted-foreground:#a2a4a9;--accent:#3584e4;--accent-foreground:#fff;--selected:#1e3a5c;--component-selected:#3584e4;--ok:#3db84a;--ok-soft:#3db84a26;--warn:#e5a83b;--warn-soft:#e5a83b26;--crit:#e05e5e;--crit-soft:#e05e5e26;--cpu:#3584e4;--mem:#4ec289;--swap:#d8a23a;--scrollbar:#3a3b3f;--focus:oklab(61.3675% -.0415831 -.158993/.65)}body,html{overscroll-behavior:none}body{background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:ui-sans-serif,system-ui,Noto Sans,Inter,sans-serif}.tnum{font-variant-numeric:tabular-nums}::selection{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){::selection{background-color:color-mix(in oklab,var(--accent) 28%,transparent)}}::selection{color:var(--foreground)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{50%{opacity:.5}}