cross-seed 7.0.0-2 → 7.0.0-4

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 (58) hide show
  1. package/dist/routes/staticFrontendPlugin.js +4 -2
  2. package/dist/routes/staticFrontendPlugin.js.map +1 -1
  3. package/dist/trpc/routers/index.d.ts +3 -3
  4. package/dist/trpc/routers/settings.d.ts +3 -3
  5. package/package.json +17 -58
  6. package/LICENSE +0 -201
  7. package/README.md +0 -33
  8. package/dist/webui/assets/FieldInfo-Bxj_j8SJ.js +0 -1
  9. package/dist/webui/assets/Page-C3rteCZt.js +0 -1
  10. package/dist/webui/assets/array-field-DVSC6nHP.js +0 -1
  11. package/dist/webui/assets/badge-DTZMtS0e.js +0 -1
  12. package/dist/webui/assets/check-Bu3ldi63.js +0 -1
  13. package/dist/webui/assets/chevron-down-CRy8M0kJ.js +0 -1
  14. package/dist/webui/assets/clients-CW8oEZoQ.js +0 -1
  15. package/dist/webui/assets/connect-YBNsnjWT.js +0 -1
  16. package/dist/webui/assets/debug-mz8-WYZj.js +0 -1
  17. package/dist/webui/assets/directories-BSK28RgR.js +0 -1
  18. package/dist/webui/assets/duration-field-C6xoSlJg.js +0 -1
  19. package/dist/webui/assets/general-lJJxZhH7.js +0 -1
  20. package/dist/webui/assets/health-CXbsVrie.js +0 -1
  21. package/dist/webui/assets/index-Bi48hI2z.js +0 -54
  22. package/dist/webui/assets/index-C-Ul7GNg.css +0 -1
  23. package/dist/webui/assets/index-C2cH1Gst.js +0 -1
  24. package/dist/webui/assets/index-Cc5bDmJr.js +0 -1
  25. package/dist/webui/assets/jobs-CxmNab9w.js +0 -1
  26. package/dist/webui/assets/library-vaj2W8sE.js +0 -1
  27. package/dist/webui/assets/loader-circle-M0gu1gZ-.js +0 -1
  28. package/dist/webui/assets/logs-Cu9RyKS0.js +0 -1
  29. package/dist/webui/assets/search-2R5sIdT8.js +0 -1
  30. package/dist/webui/assets/select-field-BCqNLDrJ.js +0 -1
  31. package/dist/webui/assets/select-zHgqMzLj.js +0 -1
  32. package/dist/webui/assets/settings-CMYjpTbZ.js +0 -1
  33. package/dist/webui/assets/submit-button-BtcnyggQ.js +0 -1
  34. package/dist/webui/assets/switch-G0W3uJVN.js +0 -1
  35. package/dist/webui/assets/switch-field-IBd9ORNq.js +0 -1
  36. package/dist/webui/assets/table-DvgJU7Gh.js +0 -1
  37. package/dist/webui/assets/test-tube-BIwmoM45.js +0 -1
  38. package/dist/webui/assets/text-field-DruSbGhy.js +0 -1
  39. package/dist/webui/assets/time-BSMZjmyW.js +0 -1
  40. package/dist/webui/assets/trackers-D-OpAe63.js +0 -7
  41. package/dist/webui/assets/use-form-validation-context-BkAfWAh0.js +0 -1
  42. package/dist/webui/assets/use-settings-form-submit-CDRh-E9U.js +0 -2
  43. package/dist/webui/assets/useQuery-A4Hv_4uX.js +0 -1
  44. package/dist/webui/index.html +0 -13
  45. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts +0 -261
  46. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +0 -1
  47. package/node_modules/@cross-seed/shared/dist/configSchema.js +0 -53
  48. package/node_modules/@cross-seed/shared/dist/configSchema.js.map +0 -1
  49. package/node_modules/@cross-seed/shared/dist/constants.d.ts +0 -122
  50. package/node_modules/@cross-seed/shared/dist/constants.d.ts.map +0 -1
  51. package/node_modules/@cross-seed/shared/dist/constants.js +0 -127
  52. package/node_modules/@cross-seed/shared/dist/constants.js.map +0 -1
  53. package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +0 -1
  54. package/node_modules/@cross-seed/shared/dist/utils.d.ts +0 -6
  55. package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +0 -1
  56. package/node_modules/@cross-seed/shared/dist/utils.js +0 -9
  57. package/node_modules/@cross-seed/shared/dist/utils.js.map +0 -1
  58. package/node_modules/@cross-seed/shared/package.json +0 -22
@@ -1 +0,0 @@
1
- .form-fieldset{grid-template-columns:repeat(2,1fr);grid-template-areas:"col1 col2";margin-block-end:1.25rem;padding-block:1rem;display:grid}.form-fieldset legend{padding-inline:.75rem;font-size:1.125rem;font-weight:600}.form-fieldset:nth-child(odd){grid-area:col1}.form-fieldset:nth-child(2n){grid-area:col2}.form-field-switches{flex-direction:row;grid-column:span 2;display:flex}.form-field-switches .form-field__switch{width:color-mix(in oklab,.25rem 600%,transparent)}.form-input{box-shadow:none;padding-block:.25rem;padding-inline:.5rem}.form-input[aria-invalid=true]{border-color:var(--color-destructive);box-shadow:0 0 0 2px var(--color-destructive)}@supports (color:color-mix(in lab,red,red)){.form-input[aria-invalid=true]{box-shadow:0 0 0 2px color-mix(in oklab,var(--color-destructive)40%,transparent)}}.form__submit{box-shadow:0 -25px 25px var(--color-background)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-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-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,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;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--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: 1.5 ;--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);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--radius-xs:.125rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--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-destructive:var(--destructive)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(61% .156 146.9);--primary-foreground:oklch(100% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(61% .156 146.9);--primary-foreground:oklch(100% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\@container\/main{container:main/inline-size}.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-3\.5{top:calc(var(--spacing)*3.5)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-0{margin-inline:calc(var(--spacing)*0)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.my-1{margin-block:calc(var(--spacing)*1)}.-mt-4{margin-top:calc(var(--spacing)*-4)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.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)}.mb-7{margin-bottom:calc(var(--spacing)*7)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-4{height:calc(var(--spacing)*4)}.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-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-32{height:calc(var(--spacing)*32)}.h-48{height:calc(var(--spacing)*48)}.h-\[1\.2rem\]{height:1.2rem}.h-\[1\.15rem\]{height:1.15rem}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[25vh\]{max-height:25vh}.max-h-\[40vh\]{max-height:40vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-96{min-height:calc(var(--spacing)*96)}.min-h-\[3rem\]{min-height:3rem}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-16{width:calc(var(--spacing)*16)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-\[1\.2rem\]{width:1.2rem}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-lg{width:var(--container-lg)}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-\[25vw\]{max-width:25vw}.max-w-\[40vw\]{max-width:40vw}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.list-disc{list-style-type:disc}.auto-cols-max{grid-auto-columns:max-content}.grid-flow-col{grid-auto-flow:column}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-12{column-gap:calc(var(--spacing)*12)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.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}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab,red,red)){.border-amber-500\/60{border-color:color-mix(in oklab,var(--color-amber-500)60%,transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-border{border-color:var(--border)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab,red,red)){.border-emerald-500\/30{border-color:color-mix(in oklab,var(--color-emerald-500)30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-input{border-color:var(--input)}.border-purple-200{border-color:var(--color-purple-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-500{border-color:var(--color-red-500)}.border-red-500\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab,red,red)){.border-red-500\/60{border-color:color-mix(in oklab,var(--color-red-500)60%,transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-sky-500\/60{border-color:#00a5ef99}@supports (color:color-mix(in lab,red,red)){.border-sky-500\/60{border-color:color-mix(in oklab,var(--color-sky-500)60%,transparent)}}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab,red,red)){.bg-emerald-500\/10{background-color:color-mix(in oklab,var(--color-emerald-500)10%,transparent)}}.bg-gray-500{background-color:var(--color-gray-500)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-700{background-color:var(--color-green-700)}.bg-muted,.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-700{background-color:var(--color-red-700)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab,red,red)){.bg-sky-500\/10{background-color:color-mix(in oklab,var(--color-sky-500)10%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.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:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-3\.5{padding-top:calc(var(--spacing)*3.5)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.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)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.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-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-blue-500{color:var(--color-blue-500)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground{color:var(--foreground)}.text-gray-500{color:var(--color-gray-500)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-purple-500{color:var(--color-purple-500)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-800{color:var(--color-yellow-800)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[animation-duration\:1\.5s\]{animation-duration:1.5s}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-\[-0px\]:before{content:var(--tw-content);inset:0}.before\:animate-pulse:before{content:var(--tw-content);animation:var(--animate-pulse)}.before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\:text-amber-200:before{content:var(--tw-content);color:var(--color-amber-200)}.before\:text-destructive\/20:before{content:var(--tw-content);color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.before\:text-destructive\/20:before{color:color-mix(in oklab,var(--destructive)20%,transparent)}}.before\:text-emerald-200:before{content:var(--tw-content);color:var(--color-emerald-200)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}@media(hover:hover){.hover\:bg-accent:hover,.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-purple-600:hover{background-color:var(--color-purple-600)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-yellow-100:hover{background-color:var(--color-yellow-100)}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing)*2.5)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:gap-4{gap:calc(var(--spacing)*4)}}.dark\:scale-0:is(.dark *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:scale-100:is(.dark *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.dark\:-rotate-90:is(.dark *){rotate:-90deg}.dark\:rotate-0:is(.dark *){rotate:none}.dark\:border-gray-600:is(.dark *){border-color:var(--color-gray-600)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-red-400:is(.dark *){border-color:var(--color-red-400)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-gray-900:is(.dark *){background-color:var(--color-gray-900)}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-red-900\/20:is(.dark *){background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20:is(.dark *){background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:text-gray-100:is(.dark *){color:var(--color-gray-100)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@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-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
@@ -1 +0,0 @@
1
- import{r as u}from"./index-Bi48hI2z.js";function o(r){const e=u.useRef({value:r,previous:r});return u.useMemo(()=>(e.current.value!==r&&(e.current.previous=e.current.value,e.current.value=r),e.current.previous),[r])}export{o as u};
@@ -1 +0,0 @@
1
- import{j as e,i as o,u as m,k as c,r as g}from"./index-Bi48hI2z.js";import{P as p}from"./Page-C3rteCZt.js";function s({title:i,value:t,description:n,className:r,trend:a}){return e.jsxs("div",{className:o("bg-card text-card-foreground rounded-lg border p-6 shadow-sm",r),children:[e.jsx("div",{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:e.jsx("h3",{className:"text-sm font-medium tracking-tight",children:i})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("div",{className:"text-2xl font-bold",children:t}),a&&e.jsxs("div",{className:"text-muted-foreground text-xs",children:[e.jsxs("span",{className:o("font-medium",a.value>0?"text-green-600":"text-red-600"),children:[a.value>0?"+":"",a.value]})," ",a.label]})]}),n&&e.jsx("p",{className:"text-muted-foreground text-xs",children:n})]})}function y(){const i=m(),{data:t}=c(i.stats.getOverview.queryOptions()),{data:n}=c(i.stats.getIndexerStats.queryOptions()),r=g.useMemo(()=>t.queryCount!==t.totalSearchees,[t.queryCount,t.totalSearchees]),a=r,l=r?"lg:grid-cols-5":"lg:grid-cols-4",d=a?"lg:grid-cols-4":"lg:grid-cols-3",x=t.allIndexersHealthy?"Indexer Health":"Unhealthy Indexers",h=t.allIndexersHealthy?`All ${t.totalIndexers.toLocaleString()}`:t.unhealthyIndexers.toLocaleString(),u=t.allIndexersHealthy?"Indexers are all reporting healthy":`${t.unhealthyIndexers.toLocaleString()} of ${t.totalIndexers.toLocaleString()} indexers need attention`;return e.jsx(p,{breadcrumbs:["Dashboard"],children:e.jsx("div",{className:"main space-y-8",children:e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{className:`grid gap-4 md:grid-cols-2 ${l}`,children:[e.jsx(s,{title:"Total Searchees",value:t.totalSearchees.toLocaleString(),description:"Torrents being monitored"}),r&&e.jsx(s,{title:"Total Search Queries",value:t.queryCount.toLocaleString(),description:"Distinct estimated searches"}),e.jsx(s,{title:"Total Query-Indexer Pairs",value:t.queryIndexerCount.toLocaleString(),description:"Unique indexer searches"}),e.jsx(s,{title:"Total Snatches",value:t.snatchCount.toLocaleString(),description:"Unique infohash attempts"}),e.jsx(s,{title:"Total Matches",value:t.totalMatches.toLocaleString(),description:"Unique cross-seeds found"})]}),e.jsxs("div",{className:`grid gap-4 md:grid-cols-2 ${d}`,children:[e.jsx(s,{title:"Matches per Searchee",value:t.matchRate.toFixed(2),description:"Average matches per monitored torrent"}),a&&e.jsx(s,{title:"Matches per Query",value:t.matchesPerQuery.toFixed(2),description:"Matches per search estimate"}),e.jsx(s,{title:"Match Rate",value:`${(t.matchesPerQueryIndexer*100).toFixed(1)}%`,description:"of indexer searches find a match"}),e.jsx(s,{title:"Wasted Snatches",value:`${(t.wastedSnatchRate*100).toFixed(1)}%`,description:`${t.wastedSnatchCount.toLocaleString()} snatched but mismatched`})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(s,{title:x,value:h,description:u}),e.jsx(s,{title:"Recent Activity",value:t.recentMatches.toLocaleString(),description:"Matches in last 24h"})]})]})})})}export{y as component};
@@ -1 +0,0 @@
1
- import{c as j,u as f,r as N,k as v,l as b,j as e,B as S}from"./index-Bi48hI2z.js";import{B as i}from"./badge-DTZMtS0e.js";import{T,a as w,b as d,c as t,d as y,e as a}from"./table-DvgJU7Gh.js";import{f as m}from"./time-BSMZjmyW.js";import{P as E}from"./Page-C3rteCZt.js";import{C as R}from"./check-Bu3ldi63.js";const C=[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]],B=j("Play",C);function _(){const o=f(),[u,c]=N.useState(new Set),{data:x}=v(o.jobs.getJobStatuses.queryOptions(void 0,{refetchInterval:5e3})),{mutate:h}=b(o.jobs.triggerJob.mutationOptions({onSuccess:(s,{name:n})=>{c(r=>new Set(r).add(n)),setTimeout(()=>{c(r=>{const l=new Set(r);return l.delete(n),l})},3e3)},onError:s=>{console.error("Failed to trigger job:",s.message)}})),g=s=>s.isActive?e.jsx(i,{variant:"default",className:"bg-blue-500",children:"Running"}):s.nextExecution==="now"?e.jsx(i,{variant:"secondary",children:"Ready"}):e.jsx(i,{variant:"outline",children:"Scheduled"}),p=s=>s.split(/(?=[A-Z])/).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ");return e.jsx(E,{children:e.jsx("div",{className:"overflow-x-auto rounded-lg border",children:e.jsxs(T,{children:[e.jsx(w,{className:"bg-muted sticky top-0 z-10",children:e.jsxs(d,{className:"border-b",children:[e.jsx(t,{children:"Name"}),e.jsx(t,{children:"Interval"}),e.jsx(t,{children:"Last Execution"}),e.jsx(t,{children:"Next Execution"}),e.jsx(t,{children:"Status"}),e.jsx(t,{className:"text-right",children:"Actions"})]})}),e.jsx(y,{children:x?.map(s=>e.jsxs(d,{children:[e.jsx(a,{className:"font-medium",children:p(s.name)}),e.jsx(a,{children:s.interval}),e.jsx(a,{children:s.lastExecution?m(s.lastExecution):"Never"}),e.jsx(a,{children:s.nextExecution==="now"?"Now":m(s.nextExecution)}),e.jsx(a,{children:g(s)}),e.jsx(a,{className:"text-right",children:e.jsx(S,{variant:"outline",size:"sm",disabled:s.isActive||!s.canRunNow,onClick:()=>h({name:s.name}),children:u.has(s.name)?e.jsxs(e.Fragment,{children:[e.jsx(R,{className:"mr-1 h-4 w-4 text-green-600"}),"Started"]}):e.jsxs(e.Fragment,{children:[e.jsx(B,{className:"mr-1 h-4 w-4"}),"Run"]})})})]},s.name))})]})})})}export{_ as component};
@@ -1 +0,0 @@
1
- import{c as D,r as m,j as e,b as te,P as ae,d as q,e as ne,f as X,g as O,h as re,i as oe,u as ce,k as ie,l as de,t as T,B as E,m as le,n as he}from"./index-Bi48hI2z.js";import{T as ue,a as me,b as A,c as z,d as pe,e as _}from"./table-DvgJU7Gh.js";import{P as xe,D as fe,a as be,b as ge,c as H,C as ke}from"./Page-C3rteCZt.js";import{f as Ce}from"./time-BSMZjmyW.js";import{u as je}from"./index-C2cH1Gst.js";import{C as ve}from"./check-Bu3ldi63.js";import{L as Ne}from"./loader-circle-M0gu1gZ-.js";import{C as ye}from"./chevron-down-CRy8M0kJ.js";const Se=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],we=D("ChevronLeft",Se);const Pe=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],Ee=D("ChevronsLeft",Pe);const _e=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],Ie=D("ChevronsRight",_e);var L="Checkbox",[Re]=te(L),[Me,F]=Re(L);function ze(t){const{__scopeCheckbox:n,checked:c,children:l,defaultChecked:d,disabled:r,form:g,name:o,onCheckedChange:h,required:k,value:C="on",internal_do_not_use_render:x}=t,[i,w]=ne({prop:c,defaultProp:d??!1,onChange:h,caller:L}),[j,v]=m.useState(null),[P,a]=m.useState(null),p=m.useRef(!1),I=j?!!g||!!j.closest("form"):!0,R={checked:i,disabled:r,setChecked:w,control:j,setControl:v,name:o,form:g,value:C,hasConsumerStoppedPropagationRef:p,required:k,defaultChecked:S(d)?!1:d,isFormControl:I,bubbleInput:P,setBubbleInput:a};return e.jsx(Me,{scope:n,...R,children:Be(x)?x(R):l})}var Q="CheckboxTrigger",Z=m.forwardRef(({__scopeCheckbox:t,onKeyDown:n,onClick:c,...l},d)=>{const{control:r,value:g,disabled:o,checked:h,required:k,setControl:C,setChecked:x,hasConsumerStoppedPropagationRef:i,isFormControl:w,bubbleInput:j}=F(Q,t),v=X(d,C),P=m.useRef(h);return m.useEffect(()=>{const a=r?.form;if(a){const p=()=>x(P.current);return a.addEventListener("reset",p),()=>a.removeEventListener("reset",p)}},[r,x]),e.jsx(q.button,{type:"button",role:"checkbox","aria-checked":S(h)?"mixed":h,"aria-required":k,"data-state":se(h),"data-disabled":o?"":void 0,disabled:o,value:g,...l,ref:v,onKeyDown:O(n,a=>{a.key==="Enter"&&a.preventDefault()}),onClick:O(c,a=>{x(p=>S(p)?!0:!p),j&&w&&(i.current=a.isPropagationStopped(),i.current||a.stopPropagation())})})});Z.displayName=Q;var J=m.forwardRef((t,n)=>{const{__scopeCheckbox:c,name:l,checked:d,defaultChecked:r,required:g,disabled:o,value:h,onCheckedChange:k,form:C,...x}=t;return e.jsx(ze,{__scopeCheckbox:c,checked:d,defaultChecked:r,disabled:o,required:g,onCheckedChange:k,name:l,form:C,value:h,internal_do_not_use_render:({isFormControl:i})=>e.jsxs(e.Fragment,{children:[e.jsx(Z,{...x,ref:n,__scopeCheckbox:c}),i&&e.jsx(ee,{__scopeCheckbox:c})]})})});J.displayName=L;var V="CheckboxIndicator",W=m.forwardRef((t,n)=>{const{__scopeCheckbox:c,forceMount:l,...d}=t,r=F(V,c);return e.jsx(ae,{present:l||S(r.checked)||r.checked===!0,children:e.jsx(q.span,{"data-state":se(r.checked),"data-disabled":r.disabled?"":void 0,...d,ref:n,style:{pointerEvents:"none",...t.style}})})});W.displayName=V;var Y="CheckboxBubbleInput",ee=m.forwardRef(({__scopeCheckbox:t,...n},c)=>{const{control:l,hasConsumerStoppedPropagationRef:d,checked:r,defaultChecked:g,required:o,disabled:h,name:k,value:C,form:x,bubbleInput:i,setBubbleInput:w}=F(Y,t),j=X(c,w),v=je(r),P=re(l);m.useEffect(()=>{const p=i;if(!p)return;const I=window.HTMLInputElement.prototype,N=Object.getOwnPropertyDescriptor(I,"checked").set,$=!d.current;if(v!==r&&N){const M=new Event("click",{bubbles:$});p.indeterminate=S(r),N.call(p,S(r)?!1:r),p.dispatchEvent(M)}},[i,v,r,d]);const a=m.useRef(S(r)?!1:r);return e.jsx(q.input,{type:"checkbox","aria-hidden":!0,defaultChecked:g??a.current,required:o,disabled:h,name:k,value:C,form:x,...n,tabIndex:-1,ref:j,style:{...n.style,...P,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});ee.displayName=Y;function Be(t){return typeof t=="function"}function S(t){return t==="indeterminate"}function se(t){return S(t)?"indeterminate":t?"checked":"unchecked"}function K({className:t,...n}){return e.jsx(J,{"data-slot":"checkbox",className:oe("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...n,children:e.jsx(W,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:e.jsx(ve,{className:"size-3.5"})})})}function U(t){return t===!0}const y=25,B=20;function Oe(){const t=ce(),[n,c]=m.useState(0),[l,d]=m.useState(()=>new Map),r=m.useMemo(()=>({limit:y,offset:n*y}),[n]),g=ie(t.searchees.list.queryOptions(r)),{data:o,isFetching:h}=g;m.useEffect(()=>{if(n*y<o.total)return;if(o.total===0){c(0);return}const s=Math.max(0,Math.ceil(o.total/y)-1);s!==n&&c(s)},[o.total,n]);const k=Math.max(1,Math.ceil(o.total/y)),C=n>0,x=(n+1)*y<o.total,i=o.items,w=o.total===0?0:n*y+1,j=o.total===0?0:n*y+i.length,v=i.length>0&&i.every(s=>l.has(s.id)),P=i.some(s=>l.has(s.id)),a=l.size,p=s=>{d(f=>{const b=new Map(f);return s?i.forEach(u=>b.set(u.id,{id:u.id,name:u.name})):i.forEach(u=>b.delete(u.id)),b})},I=(s,f)=>{d(b=>{const u=new Map(b);return f?u.set(s.id,s):u.delete(s.id),u})},R=()=>d(new Map),N=de(t.searchees.bulkSearch.mutationOptions({onSuccess:s=>{const{attempted:f,totalFound:b,skipped:u}=s;f===0?T.info("No eligible items to search",{description:u>0?`${u} item${u===1?"":"s"} were skipped by filters.`:void 0}):T.success("Bulk search complete",{description:`${f} item${f===1?"":"s"} searched${u?` (${u} skipped)`:""}. Found ${b} match${b===1?"":"es"}.`}),R(),g.refetch()},onError:s=>{T.error("Bulk search failed",{description:s.message})}})),$=a===0||a>B||N.isPending,M=s=>{if(a===0)return;if(a>B){T.error(`Bulk search supports up to ${B} items at a time.`);return}const f=Array.from(l.values()).map(b=>b.name);N.mutate({names:f,force:s})},G=s=>s?Ce(s):"Never";return e.jsxs(xe,{children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-semibold",children:"Library"}),e.jsxs("p",{className:"text-muted-foreground text-sm",children:["Showing ",w,"-",j," of ",o.total," items"]})]}),e.jsxs("div",{className:"bg-muted/30 text-muted-foreground flex flex-col gap-2 rounded-lg border px-3 py-2 text-sm lg:flex-row lg:items-center lg:gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:a>0?`${a} item${a===1?"":"s"} selected`:"No items selected"}),e.jsxs(fe,{children:[e.jsx(be,{asChild:!0,children:e.jsxs(E,{variant:"outline",size:"sm",disabled:$,onClick:()=>M(!1),children:[N.isPending?e.jsx(Ne,{className:"mr-2 size-4 animate-spin"}):e.jsx(le,{className:"mr-2 size-4"}),"Search",e.jsx(ye,{className:"ml-1 size-4"})]})}),e.jsxs(ge,{align:"start",className:"w-40",children:[e.jsx(H,{disabled:N.isPending||a===0,onSelect:s=>{s.preventDefault(),M(!1)},children:"Search"}),e.jsx(H,{disabled:N.isPending||a===0,onSelect:s=>{s.preventDefault(),M(!0)},children:"Force search"})]})]})]}),e.jsx("div",{className:"bg-border hidden h-4 w-px lg:block"}),e.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsxs("span",{children:["Page ",Math.min(n+1,k)," of ",k]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsxs(E,{variant:"outline",size:"icon",className:"hidden h-7 w-7 p-0 lg:flex",onClick:()=>c(0),disabled:!C||h,children:[e.jsx("span",{className:"sr-only",children:"Go to first page"}),e.jsx(Ee,{className:"size-4"})]}),e.jsxs(E,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:()=>c(s=>Math.max(0,s-1)),disabled:!C||h,children:[e.jsx("span",{className:"sr-only",children:"Go to previous page"}),e.jsx(we,{className:"size-4"})]}),e.jsxs(E,{variant:"outline",size:"icon",className:"h-7 w-7",onClick:()=>c(s=>s+1),disabled:!x||h,children:[e.jsx("span",{className:"sr-only",children:"Go to next page"}),e.jsx(ke,{className:"size-4"})]}),e.jsxs(E,{variant:"outline",size:"icon",className:"hidden h-7 w-7 p-0 lg:flex",onClick:()=>c(k-1),disabled:!x||h,children:[e.jsx("span",{className:"sr-only",children:"Go to last page"}),e.jsx(Ie,{className:"size-4"})]})]})]}),a>B&&e.jsxs("span",{className:"text-destructive text-xs",children:["Bulk search is limited to ",B," items at a time."]})]})]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border",children:e.jsxs(ue,{children:[e.jsx(me,{className:"bg-muted sticky top-0 z-10",children:e.jsxs(A,{className:"border-b",children:[e.jsx(z,{className:"w-10",children:e.jsx(K,{"aria-label":"Select all items on this page",checked:v?!0:P?"indeterminate":!1,onCheckedChange:s=>p(U(s))})}),e.jsx(z,{children:"Name"}),e.jsx(z,{children:"Indexers Searched"}),e.jsx(z,{children:"First Searched"}),e.jsx(z,{children:"Last Searched"})]})}),e.jsx(pe,{children:i.length===0?e.jsx(A,{children:e.jsx(_,{colSpan:5,className:"py-10 text-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx("span",{className:"text-muted-foreground text-sm",children:"No items indexed yet."}),e.jsx("span",{className:"text-muted-foreground text-xs",children:"Add a torrent client to start building your library."}),e.jsx(E,{asChild:!0,size:"sm",children:e.jsx(he,{to:"/settings/clients",children:"Add torrent client"})})]})})}):i.map(s=>{const f=l.has(s.id);return e.jsxs(A,{"data-state":f?"selected":void 0,className:f?"bg-muted/60":void 0,children:[e.jsx(_,{children:e.jsx(K,{"aria-label":`Select ${s.name}`,checked:f,onCheckedChange:b=>I(s,U(b))})}),e.jsx(_,{className:"font-medium",children:s.name}),e.jsx(_,{children:s.indexerCount}),e.jsx(_,{children:G(s.firstSearchedAt)}),e.jsx(_,{children:G(s.lastSearchedAt)})]},s.id)})})]})})]})}export{Oe as component};
@@ -1 +0,0 @@
1
- import{c as e}from"./index-Bi48hI2z.js";const o=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],a=e("LoaderCircle",o);export{a as L};
@@ -1 +0,0 @@
1
- import{r as a,u as S,a as L,j as s,S as E,L as T}from"./index-Bi48hI2z.js";import{B as l}from"./badge-DTZMtS0e.js";import{S as R}from"./switch-G0W3uJVN.js";import{T as F,a as B,b as p,c as i,d as C,e as c}from"./table-DvgJU7Gh.js";import{f as k}from"./time-BSMZjmyW.js";import{P as H}from"./Page-C3rteCZt.js";import"./index-C2cH1Gst.js";function M(){const[n,g]=a.useState([]),[b,w]=a.useState(!0),[o,v]=a.useState(new Set(["error","warn","info","verbose","debug"])),[d,j]=a.useState(!1),[m,x]=a.useState(new Set),N=S(),y=a.useRef(null);L(N.logs.subscribe.subscriptionOptions({limit:100},{enabled:!0,onData:e=>{g((t=[])=>[...t,e].slice(-500))},onError:e=>{console.error("Log subscription error:",e)}})),a.useEffect(()=>{const e=()=>{const t=window.innerHeight+window.scrollY,r=document.documentElement.scrollHeight,h=t>=r&&window.scrollY>0;w(h)};return window.addEventListener("scroll",e),e(),()=>window.removeEventListener("scroll",e)},[]),a.useLayoutEffect(()=>{b&&n.length>0&&window.scrollTo({top:document.documentElement.scrollHeight,behavior:"instant"})},[n,b]);const u=a.useMemo(()=>{const e=new Set;return n.forEach(t=>{t.label&&e.add(t.label)}),Array.from(e).sort()},[n]);a.useEffect(()=>{x(e=>{const t=new Set(e);return u.forEach(r=>t.add(r)),t})},[u]);const f=a.useMemo(()=>{const e=n.filter(t=>{const r=o.has(t.level),h=!t.label||m.has(t.label);return r&&h});return d&&e.reverse(),e},[n,d,o,m]);return s.jsxs("div",{className:"w-full space-y-6",children:[s.jsxs("div",{className:"flex flex-wrap items-stretch justify-between gap-4",children:[s.jsx("div",{className:"flex flex-wrap items-center gap-2",children:["error","warn","info","verbose","debug"].map(e=>s.jsx(l,{variant:o.has(e)?"default":"outline",className:`hover:bg-muted cursor-pointer select-none ${e==="error"?o.has(e)?"bg-red-500 hover:bg-red-600":"border-red-200 text-red-500":e==="warn"?o.has(e)?"bg-yellow-500 hover:bg-yellow-600":"border-yellow-200 text-yellow-500":e==="info"?o.has(e)?"bg-blue-500 hover:bg-blue-600":"border-blue-200 text-blue-500":e==="verbose"?o.has(e)?"bg-gray-500 hover:bg-gray-600":"border-gray-200 text-gray-500":e==="debug"?o.has(e)?"bg-purple-500 hover:bg-purple-600":"border-purple-200 text-purple-500":""}`,onClick:()=>{v(t=>{const r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},children:e},e))}),s.jsx("div",{children:s.jsx(E,{orientation:"vertical",className:"h-6"})}),s.jsx("div",{className:"flex flex-wrap items-center gap-2",children:u.map(e=>s.jsx(l,{variant:m.has(e)?"default":"outline",className:"hover:bg-muted cursor-pointer font-mono text-xs select-none",onClick:()=>{x(t=>{const r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},children:e},e))}),s.jsxs(T,{className:"ml-auto",children:[s.jsx("span",{className:"text-sm font-medium",children:"Show newest first"}),s.jsx(R,{checked:d,onCheckedChange:j})]})]}),f.length>0?s.jsx("div",{className:"overflow-x-auto rounded-lg border",children:s.jsxs(F,{ref:y,children:[s.jsx(B,{className:"bg-muted sticky top-0 z-10",children:s.jsxs(p,{className:"border-b",children:[s.jsx(i,{className:"w-32",children:"Time"}),s.jsx(i,{className:"w-24",children:"Level"}),s.jsx(i,{className:"w-32",children:"Label"}),s.jsx(i,{children:"Message"})]})}),s.jsx(C,{children:f.map((e,t)=>s.jsxs(p,{className:"hover:bg-muted/50 h-8",children:[s.jsx(c,{className:"font-mono text-xs",title:new Date(e.timestamp).toLocaleString(),children:k(e.timestamp)}),s.jsx(c,{className:"py-1",children:s.jsx(l,{variant:e.level==="error"?"destructive":e.level==="warn"?"secondary":e.level==="info"?"default":e.level==="debug"?"outline":"secondary",className:e.level==="warn"?"bg-yellow-100 text-yellow-800 hover:bg-yellow-100":e.level==="info"?"bg-blue-500 text-white hover:bg-blue-600":e.level==="verbose"?"bg-gray-500 text-white hover:bg-gray-600":e.level==="debug"?"bg-purple-500 text-white hover:bg-purple-600":"",children:e.level})}),s.jsx(c,{className:"py-1 font-medium",children:e.label&&s.jsx(l,{variant:"outline",className:"py-1 font-mono text-xs",children:e.label})}),s.jsx(c,{className:"py-1 font-mono text-xs",children:s.jsx("div",{className:"whitespace-pre-wrap",title:e.message,children:e.message})})]},`${e.timestamp}-${t}`))})]})}):s.jsxs("div",{className:"text-muted-foreground items-center justify-center py-16",children:[s.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[s.jsx("div",{className:"h-2 w-2 animate-pulse rounded-full bg-green-500"}),s.jsx("span",{className:"text-sm font-medium",children:n.length===0?"Waiting for logs...":"No logs match current filters"})]}),n.length===0&&s.jsx("p",{className:"text-xs",children:"Real-time streaming from server logs"})]})]})}function z(){return s.jsx(H,{breadcrumbs:["Diagnostics","Logs"],children:s.jsx(M,{})})}export{z as component};
@@ -1 +0,0 @@
1
- import{u as o,j as e}from"./index-Bi48hI2z.js";import{u as m,f as u,p,a as x,b as h,s as l,c as i,F as f,M as j}from"./use-settings-form-submit-CDRh-E9U.js";import{u as F}from"./useQuery-A4Hv_4uX.js";import{P as S}from"./Page-C3rteCZt.js";function v(){const t=o(),{isFieldRequired:r}=m(l),{data:n}=F(t.settings.get.queryOptions(void 0,{select:a=>{const c=u(a.config);return p(l,c,{includeUndefined:!0})}})),d=x(),s=h({...i,defaultValues:n??i.defaultValues,onSubmit:d,validators:{onSubmit:l}});return e.jsx(S,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Search & RSS Settings"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage search and RSS options."})]}),e.jsx(f,{isFieldRequired:r,children:e.jsx("form",{className:"form flex flex-col gap-4",onSubmit:a=>{a.preventDefault(),a.stopPropagation(),s.handleSubmit()},noValidate:!0,children:e.jsxs("div",{className:"flex flex-wrap gap-6",children:[e.jsxs("fieldset",{className:"form-fieldset w-full gap-6",children:[e.jsx(s.AppField,{name:"delay",children:a=>e.jsx(a.TextField,{label:"Delay",type:"number"})}),e.jsx(s.AppField,{name:"matchMode",children:a=>e.jsx(a.SelectField,{label:"Match Mode",options:j})}),e.jsx(s.AppField,{name:"rssCadence",children:a=>e.jsx(a.DurationField,{label:"RSS Cadence"})}),e.jsx(s.AppField,{name:"searchCadence",children:a=>e.jsx(a.DurationField,{label:"Search Cadence"})}),e.jsx(s.AppField,{name:"searchTimeout",children:a=>e.jsx(a.DurationField,{label:"Search Timeout"})}),e.jsx(s.AppField,{name:"searchLimit",children:a=>e.jsx(a.TextField,{label:"Search Limit",type:"number"})}),e.jsx(s.AppField,{name:"excludeOlder",children:a=>e.jsx(a.DurationField,{label:"Exclude Older"})}),e.jsx(s.AppField,{name:"excludeRecentSearch",children:a=>e.jsx(a.DurationField,{label:"Exclude Recent Search"})})]}),e.jsx(s.AppForm,{children:e.jsx(s.SubmitButton,{})})]})})})]})})}export{v as component};
@@ -1 +0,0 @@
1
- import{j as e,i,L as m}from"./index-Bi48hI2z.js";import{m as n}from"./use-settings-form-submit-CDRh-E9U.js";import{F as c}from"./FieldInfo-Bxj_j8SJ.js";import{S as d,a as u,b as f,c as h,d as p}from"./select-zHgqMzLj.js";import{u as x,R as j}from"./use-form-validation-context-BkAfWAh0.js";import"./Page-C3rteCZt.js";import"./index-C2cH1Gst.js";import"./chevron-down-CRy8M0kJ.js";import"./check-Bu3ldi63.js";function R({className:t,label:l,options:r}){const a=n(),{isFieldRequired:o}=x();return e.jsxs("div",{className:i("space-y-3",t),children:[e.jsxs(m,{htmlFor:a.name,className:"block w-full",children:[l,o(a.name)&&e.jsx(j,{})]}),e.jsxs(d,{name:a.name,defaultValue:a.state.value,onValueChange:s=>a.handleChange(s),children:[e.jsx(u,{className:"w-full shadow-none",children:e.jsx(f,{placeholder:"Select a link type"})}),e.jsx(h,{children:Object.values(r).map(s=>e.jsx(p,{value:s.toLowerCase(),className:"hover:bg-accent/50",children:s.toLowerCase()},s.toLowerCase()))})]},`${a.name}-${a.state.value}`),e.jsx(c,{fieldMeta:a.state.meta})]})}export{R as default};
@@ -1 +0,0 @@
1
- import{c as ot,r as n,j as a,Z as nt,a2 as Ee,e as Te,a3 as rt,b as st,a0 as Ie,f as L,a4 as at,d as j,g as P,ag as $,a5 as lt,ah as _e,ai as it,a1 as ct,a6 as dt,a8 as ut,a9 as pt,aa as ft,ab as mt,ac as ht,ad as gt,i as te}from"./index-Bi48hI2z.js";import{u as vt,f as xt}from"./Page-C3rteCZt.js";import{u as St}from"./index-C2cH1Gst.js";import{C as Ne}from"./chevron-down-CRy8M0kJ.js";import{C as wt}from"./check-Bu3ldi63.js";const Ct=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],yt=ot("ChevronUp",Ct);function Pe(t,[o,e]){return Math.min(e,Math.max(o,t))}function It(t){const o=bt(t),e=n.forwardRef((s,r)=>{const{children:d,...l}=s,i=n.Children.toArray(d),c=i.find(Pt);if(c){const p=c.props.children,g=i.map(x=>x===c?n.Children.count(p)>1?n.Children.only(null):n.isValidElement(p)?p.props.children:null:x);return a.jsx(o,{...l,ref:r,children:n.isValidElement(p)?n.cloneElement(p,void 0,g):null})}return a.jsx(o,{...l,ref:r,children:d})});return e.displayName=`${t}.Slot`,e}function bt(t){const o=n.forwardRef((e,s)=>{const{children:r,...d}=e;if(n.isValidElement(r)){const l=_t(r),i=Et(d,r.props);return r.type!==n.Fragment&&(i.ref=s?nt(s,l):l),n.cloneElement(r,i)}return n.Children.count(r)>1?n.Children.only(null):null});return o.displayName=`${t}.SlotClone`,o}var Tt=Symbol("radix.slottable");function Pt(t){return n.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===Tt}function Et(t,o){const e={...o};for(const s in o){const r=t[s],d=o[s];/^on[A-Z]/.test(s)?r&&d?e[s]=(...i)=>{const c=d(...i);return r(...i),c}:r&&(e[s]=r):s==="style"?e[s]={...r,...d}:s==="className"&&(e[s]=[r,d].filter(Boolean).join(" "))}return{...t,...e}}function _t(t){let o=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,e=o&&"isReactWarning"in o&&o.isReactWarning;return e?t.ref:(o=Object.getOwnPropertyDescriptor(t,"ref")?.get,e=o&&"isReactWarning"in o&&o.isReactWarning,e?t.props.ref:t.props.ref||t.ref)}var Nt=[" ","Enter","ArrowUp","ArrowDown"],Rt=[" ","Enter"],J="Select",[ce,de,jt]=xt(J),[oe]=st(J,[jt,Ee]),ue=Ee(),[Mt,G]=oe(J),[At,Ot]=oe(J),Re=t=>{const{__scopeSelect:o,children:e,open:s,defaultOpen:r,onOpenChange:d,value:l,defaultValue:i,onValueChange:c,dir:p,name:g,autoComplete:x,disabled:E,required:b,form:y}=t,u=ue(o),[h,S]=n.useState(null),[m,v]=n.useState(null),[F,M]=n.useState(!1),ne=vt(p),[_,O]=Te({prop:s,defaultProp:r??!1,onChange:d,caller:J}),[U,Z]=Te({prop:l,defaultProp:i,onChange:c,caller:J}),k=n.useRef(null),V=h?y||!!h.closest("form"):!0,[z,B]=n.useState(new Set),H=Array.from(z).map(N=>N.props.value).join(";");return a.jsx(rt,{...u,children:a.jsxs(Mt,{required:b,scope:o,trigger:h,onTriggerChange:S,valueNode:m,onValueNodeChange:v,valueNodeHasChildren:F,onValueNodeHasChildrenChange:M,contentId:Ie(),value:U,onValueChange:Z,open:_,onOpenChange:O,dir:ne,triggerPointerDownPosRef:k,disabled:E,children:[a.jsx(ce.Provider,{scope:o,children:a.jsx(At,{scope:t.__scopeSelect,onNativeOptionAdd:n.useCallback(N=>{B(D=>new Set(D).add(N))},[]),onNativeOptionRemove:n.useCallback(N=>{B(D=>{const W=new Set(D);return W.delete(N),W})},[]),children:e})}),V?a.jsxs(Je,{"aria-hidden":!0,required:b,tabIndex:-1,name:g,autoComplete:x,value:U,onChange:N=>Z(N.target.value),disabled:E,form:y,children:[U===void 0?a.jsx("option",{value:""}):null,Array.from(z)]},H):null]})})};Re.displayName=J;var je="SelectTrigger",Me=n.forwardRef((t,o)=>{const{__scopeSelect:e,disabled:s=!1,...r}=t,d=ue(e),l=G(je,e),i=l.disabled||s,c=L(o,l.onTriggerChange),p=de(e),g=n.useRef("touch"),[x,E,b]=et(u=>{const h=p().filter(v=>!v.disabled),S=h.find(v=>v.value===l.value),m=tt(h,u,S);m!==void 0&&l.onValueChange(m.value)}),y=u=>{i||(l.onOpenChange(!0),b()),u&&(l.triggerPointerDownPosRef.current={x:Math.round(u.pageX),y:Math.round(u.pageY)})};return a.jsx(at,{asChild:!0,...d,children:a.jsx(j.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:i,"data-disabled":i?"":void 0,"data-placeholder":Qe(l.value)?"":void 0,...r,ref:c,onClick:P(r.onClick,u=>{u.currentTarget.focus(),g.current!=="mouse"&&y(u)}),onPointerDown:P(r.onPointerDown,u=>{g.current=u.pointerType;const h=u.target;h.hasPointerCapture(u.pointerId)&&h.releasePointerCapture(u.pointerId),u.button===0&&u.ctrlKey===!1&&u.pointerType==="mouse"&&(y(u),u.preventDefault())}),onKeyDown:P(r.onKeyDown,u=>{const h=x.current!=="";!(u.ctrlKey||u.altKey||u.metaKey)&&u.key.length===1&&E(u.key),!(h&&u.key===" ")&&Nt.includes(u.key)&&(y(),u.preventDefault())})})})});Me.displayName=je;var Ae="SelectValue",Oe=n.forwardRef((t,o)=>{const{__scopeSelect:e,className:s,style:r,children:d,placeholder:l="",...i}=t,c=G(Ae,e),{onValueNodeHasChildrenChange:p}=c,g=d!==void 0,x=L(o,c.onValueNodeChange);return $(()=>{p(g)},[p,g]),a.jsx(j.span,{...i,ref:x,style:{pointerEvents:"none"},children:Qe(c.value)?a.jsx(a.Fragment,{children:l}):d})});Oe.displayName=Ae;var Dt="SelectIcon",De=n.forwardRef((t,o)=>{const{__scopeSelect:e,children:s,...r}=t;return a.jsx(j.span,{"aria-hidden":!0,...r,ref:o,children:s||"▼"})});De.displayName=Dt;var Lt="SelectPortal",Le=t=>a.jsx(lt,{asChild:!0,...t});Le.displayName=Lt;var Q="SelectContent",ke=n.forwardRef((t,o)=>{const e=G(Q,t.__scopeSelect),[s,r]=n.useState();if($(()=>{r(new DocumentFragment)},[]),!e.open){const d=s;return d?_e.createPortal(a.jsx(Ve,{scope:t.__scopeSelect,children:a.jsx(ce.Slot,{scope:t.__scopeSelect,children:a.jsx("div",{children:t.children})})}),d):null}return a.jsx(Be,{...t,ref:o})});ke.displayName=Q;var A=10,[Ve,Y]=oe(Q),kt="SelectContentImpl",Vt=It("SelectContent.RemoveScroll"),Be=n.forwardRef((t,o)=>{const{__scopeSelect:e,position:s="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:d,onPointerDownOutside:l,side:i,sideOffset:c,align:p,alignOffset:g,arrowPadding:x,collisionBoundary:E,collisionPadding:b,sticky:y,hideWhenDetached:u,avoidCollisions:h,...S}=t,m=G(Q,e),[v,F]=n.useState(null),[M,ne]=n.useState(null),_=L(o,f=>F(f)),[O,U]=n.useState(null),[Z,k]=n.useState(null),V=de(e),[z,B]=n.useState(!1),H=n.useRef(!1);n.useEffect(()=>{if(v)return dt(v)},[v]),ut();const N=n.useCallback(f=>{const[I,...R]=V().map(T=>T.ref.current),[w]=R.slice(-1),C=document.activeElement;for(const T of f)if(T===C||(T?.scrollIntoView({block:"nearest"}),T===I&&M&&(M.scrollTop=0),T===w&&M&&(M.scrollTop=M.scrollHeight),T?.focus(),document.activeElement!==C))return},[V,M]),D=n.useCallback(()=>N([O,v]),[N,O,v]);n.useEffect(()=>{z&&D()},[z,D]);const{onOpenChange:W,triggerPointerDownPosRef:K}=m;n.useEffect(()=>{if(v){let f={x:0,y:0};const I=w=>{f={x:Math.abs(Math.round(w.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(w.pageY)-(K.current?.y??0))}},R=w=>{f.x<=10&&f.y<=10?w.preventDefault():v.contains(w.target)||W(!1),document.removeEventListener("pointermove",I),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",I),document.addEventListener("pointerup",R,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",R,{capture:!0})}}},[v,W,K]),n.useEffect(()=>{const f=()=>W(!1);return window.addEventListener("blur",f),window.addEventListener("resize",f),()=>{window.removeEventListener("blur",f),window.removeEventListener("resize",f)}},[W]);const[pe,ae]=et(f=>{const I=V().filter(C=>!C.disabled),R=I.find(C=>C.ref.current===document.activeElement),w=tt(I,f,R);w&&setTimeout(()=>w.ref.current.focus())}),fe=n.useCallback((f,I,R)=>{const w=!H.current&&!R;(m.value!==void 0&&m.value===I||w)&&(U(f),w&&(H.current=!0))},[m.value]),me=n.useCallback(()=>v?.focus(),[v]),ee=n.useCallback((f,I,R)=>{const w=!H.current&&!R;(m.value!==void 0&&m.value===I||w)&&k(f)},[m.value]),le=s==="popper"?xe:He,re=le===xe?{side:i,sideOffset:c,align:p,alignOffset:g,arrowPadding:x,collisionBoundary:E,collisionPadding:b,sticky:y,hideWhenDetached:u,avoidCollisions:h}:{};return a.jsx(Ve,{scope:e,content:v,viewport:M,onViewportChange:ne,itemRefCallback:fe,selectedItem:O,onItemLeave:me,itemTextRefCallback:ee,focusSelectedItem:D,selectedItemText:Z,position:s,isPositioned:z,searchRef:pe,children:a.jsx(pt,{as:Vt,allowPinchZoom:!0,children:a.jsx(ft,{asChild:!0,trapped:m.open,onMountAutoFocus:f=>{f.preventDefault()},onUnmountAutoFocus:P(r,f=>{m.trigger?.focus({preventScroll:!0}),f.preventDefault()}),children:a.jsx(mt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:d,onPointerDownOutside:l,onFocusOutside:f=>f.preventDefault(),onDismiss:()=>m.onOpenChange(!1),children:a.jsx(le,{role:"listbox",id:m.contentId,"data-state":m.open?"open":"closed",dir:m.dir,onContextMenu:f=>f.preventDefault(),...S,...re,onPlaced:()=>B(!0),ref:_,style:{display:"flex",flexDirection:"column",outline:"none",...S.style},onKeyDown:P(S.onKeyDown,f=>{const I=f.ctrlKey||f.altKey||f.metaKey;if(f.key==="Tab"&&f.preventDefault(),!I&&f.key.length===1&&ae(f.key),["ArrowUp","ArrowDown","Home","End"].includes(f.key)){let w=V().filter(C=>!C.disabled).map(C=>C.ref.current);if(["ArrowUp","End"].includes(f.key)&&(w=w.slice().reverse()),["ArrowUp","ArrowDown"].includes(f.key)){const C=f.target,T=w.indexOf(C);w=w.slice(T+1)}setTimeout(()=>N(w)),f.preventDefault()}})})})})})})});Be.displayName=kt;var Bt="SelectItemAlignedPosition",He=n.forwardRef((t,o)=>{const{__scopeSelect:e,onPlaced:s,...r}=t,d=G(Q,e),l=Y(Q,e),[i,c]=n.useState(null),[p,g]=n.useState(null),x=L(o,_=>g(_)),E=de(e),b=n.useRef(!1),y=n.useRef(!0),{viewport:u,selectedItem:h,selectedItemText:S,focusSelectedItem:m}=l,v=n.useCallback(()=>{if(d.trigger&&d.valueNode&&i&&p&&u&&h&&S){const _=d.trigger.getBoundingClientRect(),O=p.getBoundingClientRect(),U=d.valueNode.getBoundingClientRect(),Z=S.getBoundingClientRect();if(d.dir!=="rtl"){const C=Z.left-O.left,T=U.left-C,q=_.left-T,X=_.width+q,he=Math.max(X,O.width),ge=window.innerWidth-A,ve=Pe(T,[A,Math.max(A,ge-he)]);i.style.minWidth=X+"px",i.style.left=ve+"px"}else{const C=O.right-Z.right,T=window.innerWidth-U.right-C,q=window.innerWidth-_.right-T,X=_.width+q,he=Math.max(X,O.width),ge=window.innerWidth-A,ve=Pe(T,[A,Math.max(A,ge-he)]);i.style.minWidth=X+"px",i.style.right=ve+"px"}const k=E(),V=window.innerHeight-A*2,z=u.scrollHeight,B=window.getComputedStyle(p),H=parseInt(B.borderTopWidth,10),N=parseInt(B.paddingTop,10),D=parseInt(B.borderBottomWidth,10),W=parseInt(B.paddingBottom,10),K=H+N+z+W+D,pe=Math.min(h.offsetHeight*5,K),ae=window.getComputedStyle(u),fe=parseInt(ae.paddingTop,10),me=parseInt(ae.paddingBottom,10),ee=_.top+_.height/2-A,le=V-ee,re=h.offsetHeight/2,f=h.offsetTop+re,I=H+N+f,R=K-I;if(I<=ee){const C=k.length>0&&h===k[k.length-1].ref.current;i.style.bottom="0px";const T=p.clientHeight-u.offsetTop-u.offsetHeight,q=Math.max(le,re+(C?me:0)+T+D),X=I+q;i.style.height=X+"px"}else{const C=k.length>0&&h===k[0].ref.current;i.style.top="0px";const q=Math.max(ee,H+u.offsetTop+(C?fe:0)+re)+R;i.style.height=q+"px",u.scrollTop=I-ee+u.offsetTop}i.style.margin=`${A}px 0`,i.style.minHeight=pe+"px",i.style.maxHeight=V+"px",s?.(),requestAnimationFrame(()=>b.current=!0)}},[E,d.trigger,d.valueNode,i,p,u,h,S,d.dir,s]);$(()=>v(),[v]);const[F,M]=n.useState();$(()=>{p&&M(window.getComputedStyle(p).zIndex)},[p]);const ne=n.useCallback(_=>{_&&y.current===!0&&(v(),m?.(),y.current=!1)},[v,m]);return a.jsx(Wt,{scope:e,contentWrapper:i,shouldExpandOnScrollRef:b,onScrollButtonChange:ne,children:a.jsx("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:F},children:a.jsx(j.div,{...r,ref:x,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});He.displayName=Bt;var Ht="SelectPopperPosition",xe=n.forwardRef((t,o)=>{const{__scopeSelect:e,align:s="start",collisionPadding:r=A,...d}=t,l=ue(e);return a.jsx(ht,{...l,...d,ref:o,align:s,collisionPadding:r,style:{boxSizing:"border-box",...d.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});xe.displayName=Ht;var[Wt,be]=oe(Q,{}),Se="SelectViewport",We=n.forwardRef((t,o)=>{const{__scopeSelect:e,nonce:s,...r}=t,d=Y(Se,e),l=be(Se,e),i=L(o,d.onViewportChange),c=n.useRef(0);return a.jsxs(a.Fragment,{children:[a.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),a.jsx(ce.Slot,{scope:e,children:a.jsx(j.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:i,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:P(r.onScroll,p=>{const g=p.currentTarget,{contentWrapper:x,shouldExpandOnScrollRef:E}=l;if(E?.current&&x){const b=Math.abs(c.current-g.scrollTop);if(b>0){const y=window.innerHeight-A*2,u=parseFloat(x.style.minHeight),h=parseFloat(x.style.height),S=Math.max(u,h);if(S<y){const m=S+b,v=Math.min(y,m),F=m-v;x.style.height=v+"px",x.style.bottom==="0px"&&(g.scrollTop=F>0?F:0,x.style.justifyContent="flex-end")}}}c.current=g.scrollTop})})})]})});We.displayName=Se;var Fe="SelectGroup",[Ft,Ut]=oe(Fe),zt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...s}=t,r=Ie();return a.jsx(Ft,{scope:e,id:r,children:a.jsx(j.div,{role:"group","aria-labelledby":r,...s,ref:o})})});zt.displayName=Fe;var Ue="SelectLabel",Kt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...s}=t,r=Ut(Ue,e);return a.jsx(j.div,{id:r.id,...s,ref:o})});Kt.displayName=Ue;var ie="SelectItem",[$t,ze]=oe(ie),Ke=n.forwardRef((t,o)=>{const{__scopeSelect:e,value:s,disabled:r=!1,textValue:d,...l}=t,i=G(ie,e),c=Y(ie,e),p=i.value===s,[g,x]=n.useState(d??""),[E,b]=n.useState(!1),y=L(o,m=>c.itemRefCallback?.(m,s,r)),u=Ie(),h=n.useRef("touch"),S=()=>{r||(i.onValueChange(s),i.onOpenChange(!1))};if(s==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return a.jsx($t,{scope:e,value:s,disabled:r,textId:u,isSelected:p,onItemTextChange:n.useCallback(m=>{x(v=>v||(m?.textContent??"").trim())},[]),children:a.jsx(ce.ItemSlot,{scope:e,value:s,disabled:r,textValue:g,children:a.jsx(j.div,{role:"option","aria-labelledby":u,"data-highlighted":E?"":void 0,"aria-selected":p&&E,"data-state":p?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...l,ref:y,onFocus:P(l.onFocus,()=>b(!0)),onBlur:P(l.onBlur,()=>b(!1)),onClick:P(l.onClick,()=>{h.current!=="mouse"&&S()}),onPointerUp:P(l.onPointerUp,()=>{h.current==="mouse"&&S()}),onPointerDown:P(l.onPointerDown,m=>{h.current=m.pointerType}),onPointerMove:P(l.onPointerMove,m=>{h.current=m.pointerType,r?c.onItemLeave?.():h.current==="mouse"&&m.currentTarget.focus({preventScroll:!0})}),onPointerLeave:P(l.onPointerLeave,m=>{m.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:P(l.onKeyDown,m=>{c.searchRef?.current!==""&&m.key===" "||(Rt.includes(m.key)&&S(),m.key===" "&&m.preventDefault())})})})})});Ke.displayName=ie;var se="SelectItemText",$e=n.forwardRef((t,o)=>{const{__scopeSelect:e,className:s,style:r,...d}=t,l=G(se,e),i=Y(se,e),c=ze(se,e),p=Ot(se,e),[g,x]=n.useState(null),E=L(o,S=>x(S),c.onItemTextChange,S=>i.itemTextRefCallback?.(S,c.value,c.disabled)),b=g?.textContent,y=n.useMemo(()=>a.jsx("option",{value:c.value,disabled:c.disabled,children:b},c.value),[c.disabled,c.value,b]),{onNativeOptionAdd:u,onNativeOptionRemove:h}=p;return $(()=>(u(y),()=>h(y)),[u,h,y]),a.jsxs(a.Fragment,{children:[a.jsx(j.span,{id:c.textId,...d,ref:E}),c.isSelected&&l.valueNode&&!l.valueNodeHasChildren?_e.createPortal(d.children,l.valueNode):null]})});$e.displayName=se;var Ge="SelectItemIndicator",Ye=n.forwardRef((t,o)=>{const{__scopeSelect:e,...s}=t;return ze(Ge,e).isSelected?a.jsx(j.span,{"aria-hidden":!0,...s,ref:o}):null});Ye.displayName=Ge;var we="SelectScrollUpButton",Ze=n.forwardRef((t,o)=>{const e=Y(we,t.__scopeSelect),s=be(we,t.__scopeSelect),[r,d]=n.useState(!1),l=L(o,s.onScrollButtonChange);return $(()=>{if(e.viewport&&e.isPositioned){let i=function(){const p=c.scrollTop>0;d(p)};const c=e.viewport;return i(),c.addEventListener("scroll",i),()=>c.removeEventListener("scroll",i)}},[e.viewport,e.isPositioned]),r?a.jsx(Xe,{...t,ref:l,onAutoScroll:()=>{const{viewport:i,selectedItem:c}=e;i&&c&&(i.scrollTop=i.scrollTop-c.offsetHeight)}}):null});Ze.displayName=we;var Ce="SelectScrollDownButton",qe=n.forwardRef((t,o)=>{const e=Y(Ce,t.__scopeSelect),s=be(Ce,t.__scopeSelect),[r,d]=n.useState(!1),l=L(o,s.onScrollButtonChange);return $(()=>{if(e.viewport&&e.isPositioned){let i=function(){const p=c.scrollHeight-c.clientHeight,g=Math.ceil(c.scrollTop)<p;d(g)};const c=e.viewport;return i(),c.addEventListener("scroll",i),()=>c.removeEventListener("scroll",i)}},[e.viewport,e.isPositioned]),r?a.jsx(Xe,{...t,ref:l,onAutoScroll:()=>{const{viewport:i,selectedItem:c}=e;i&&c&&(i.scrollTop=i.scrollTop+c.offsetHeight)}}):null});qe.displayName=Ce;var Xe=n.forwardRef((t,o)=>{const{__scopeSelect:e,onAutoScroll:s,...r}=t,d=Y("SelectScrollButton",e),l=n.useRef(null),i=de(e),c=n.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return n.useEffect(()=>()=>c(),[c]),$(()=>{i().find(g=>g.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[i]),a.jsx(j.div,{"aria-hidden":!0,...r,ref:o,style:{flexShrink:0,...r.style},onPointerDown:P(r.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(s,50))}),onPointerMove:P(r.onPointerMove,()=>{d.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(s,50))}),onPointerLeave:P(r.onPointerLeave,()=>{c()})})}),Gt="SelectSeparator",Yt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...s}=t;return a.jsx(j.div,{"aria-hidden":!0,...s,ref:o})});Yt.displayName=Gt;var ye="SelectArrow",Zt=n.forwardRef((t,o)=>{const{__scopeSelect:e,...s}=t,r=ue(e),d=G(ye,e),l=Y(ye,e);return d.open&&l.position==="popper"?a.jsx(gt,{...r,...s,ref:o}):null});Zt.displayName=ye;var qt="SelectBubbleInput",Je=n.forwardRef(({__scopeSelect:t,value:o,...e},s)=>{const r=n.useRef(null),d=L(s,r),l=St(o);return n.useEffect(()=>{const i=r.current;if(!i)return;const c=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(c,"value").set;if(l!==o&&g){const x=new Event("change",{bubbles:!0});g.call(i,o),i.dispatchEvent(x)}},[l,o]),a.jsx(j.select,{...e,style:{...it,...e.style},ref:d,defaultValue:o})});Je.displayName=qt;function Qe(t){return t===""||t===void 0}function et(t){const o=ct(t),e=n.useRef(""),s=n.useRef(0),r=n.useCallback(l=>{const i=e.current+l;o(i),(function c(p){e.current=p,window.clearTimeout(s.current),p!==""&&(s.current=window.setTimeout(()=>c(""),1e3))})(i)},[o]),d=n.useCallback(()=>{e.current="",window.clearTimeout(s.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(s.current),[]),[e,r,d]}function tt(t,o,e){const r=o.length>1&&Array.from(o).every(p=>p===o[0])?o[0]:o,d=e?t.indexOf(e):-1;let l=Xt(t,Math.max(d,0));r.length===1&&(l=l.filter(p=>p!==e));const c=l.find(p=>p.textValue.toLowerCase().startsWith(r.toLowerCase()));return c!==e?c:void 0}function Xt(t,o){return t.map((e,s)=>t[(o+s)%t.length])}var Jt=Re,Qt=Me,eo=Oe,to=De,oo=Le,no=ke,ro=We,so=Ke,ao=$e,lo=Ye,io=Ze,co=qe;function xo({...t}){return a.jsx(Jt,{"data-slot":"select",...t})}function So({...t}){return a.jsx(eo,{"data-slot":"select-value",...t})}function wo({className:t,size:o="default",children:e,...s}){return a.jsxs(Qt,{"data-slot":"select-trigger","data-size":o,className:te("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s,children:[e,a.jsx(to,{asChild:!0,children:a.jsx(Ne,{className:"size-4 opacity-50"})})]})}function Co({className:t,children:o,position:e="popper",...s}){return a.jsx(oo,{children:a.jsxs(no,{"data-slot":"select-content",className:te("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",e==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:e,...s,children:[a.jsx(uo,{}),a.jsx(ro,{className:te("p-1",e==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:o}),a.jsx(po,{})]})})}function yo({className:t,children:o,...e}){return a.jsxs(so,{"data-slot":"select-item",className:te("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...e,children:[a.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:a.jsx(lo,{children:a.jsx(wt,{className:"size-4"})})}),a.jsx(ao,{children:o})]})}function uo({className:t,...o}){return a.jsx(io,{"data-slot":"select-scroll-up-button",className:te("flex cursor-default items-center justify-center py-1",t),...o,children:a.jsx(yt,{className:"size-4"})})}function po({className:t,...o}){return a.jsx(co,{"data-slot":"select-scroll-down-button",className:te("flex cursor-default items-center justify-center py-1",t),...o,children:a.jsx(Ne,{className:"size-4"})})}export{xo as S,wo as a,So as b,Co as c,yo as d};
@@ -1 +0,0 @@
1
- import{j as t,O as o}from"./index-Bi48hI2z.js";function e(){return t.jsx(o,{})}export{e as component};
@@ -1 +0,0 @@
1
- import{j as s,B as d,i as x}from"./index-Bi48hI2z.js";import{o as p}from"./use-settings-form-submit-CDRh-E9U.js";import{L as u}from"./loader-circle-M0gu1gZ-.js";function g({label:m,actionLabel:a,size:t="md"}){const o=p();return s.jsx(s.Fragment,{children:s.jsx(o.Subscribe,{selector:e=>[e.canSubmit,e.isSubmitting,e.errors,e.fieldMeta],children:([e,i,n,c])=>s.jsxs("div",{className:"form__submit bg-background sticky right-0 bottom-0 left-0 w-full pt-4",children:[s.jsx(d,{type:"submit",className:x("w-full rounded-md transition-colors duration-150",{"opacity-70":i,"px-4 py-6":t==="lg","px-4 py-2":t==="md","px-2 py-1":t==="sm"}),disabled:!e||i,children:i?s.jsxs(s.Fragment,{children:[s.jsx(u,{className:"size-4 animate-spin"})," ",a??"Saving..."]}):s.jsx(s.Fragment,{children:m??"Save"})}),Object.keys(n).length>0&&s.jsxs("div",{className:"mt-4 rounded-md bg-red-50 p-4 text-sm text-red-700",children:[s.jsx("h4",{className:"font-medium",children:"Please fix the following errors:"}),s.jsxs("ul",{className:"mt-2 list-disc pl-5",children:[JSON.stringify(c),Object.entries(n).map(([l,r])=>s.jsxs("li",{children:[l,":"," ",typeof r=="string"?r:JSON.stringify(r)]},l))]})]})]})})})}export{g as default};
@@ -1 +0,0 @@
1
- import{r as s,f as C,e as T,j as o,b as I,d as y,g as M,h as H,i as S}from"./index-Bi48hI2z.js";import{u as z}from"./index-C2cH1Gst.js";var b="Switch",[A]=I(b),[U,q]=A(b),P=s.forwardRef((e,r)=>{const{__scopeSwitch:t,name:n,checked:a,defaultChecked:m,required:d,disabled:c,value:u="on",onCheckedChange:k,form:i,...w}=e,[l,p]=s.useState(null),v=C(r,f=>p(f)),g=s.useRef(!1),x=l?i||!!l.closest("form"):!0,[h,N]=T({prop:a,defaultProp:m??!1,onChange:k,caller:b});return o.jsxs(U,{scope:t,checked:h,disabled:c,children:[o.jsx(y.button,{type:"button",role:"switch","aria-checked":h,"aria-required":d,"data-state":_(h),"data-disabled":c?"":void 0,disabled:c,value:u,...w,ref:v,onClick:M(e.onClick,f=>{N(B=>!B),x&&(g.current=f.isPropagationStopped(),g.current||f.stopPropagation())})}),x&&o.jsx(j,{control:l,bubbles:!g.current,name:n,value:u,checked:h,required:d,disabled:c,form:i,style:{transform:"translateX(-100%)"}})]})});P.displayName=b;var E="SwitchThumb",R=s.forwardRef((e,r)=>{const{__scopeSwitch:t,...n}=e,a=q(E,t);return o.jsx(y.span,{"data-state":_(a.checked),"data-disabled":a.disabled?"":void 0,...n,ref:r})});R.displayName=E;var L="SwitchBubbleInput",j=s.forwardRef(({__scopeSwitch:e,control:r,checked:t,bubbles:n=!0,...a},m)=>{const d=s.useRef(null),c=C(d,m),u=z(t),k=H(r);return s.useEffect(()=>{const i=d.current;if(!i)return;const w=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(w,"checked").set;if(u!==t&&p){const v=new Event("click",{bubbles:n});p.call(i,t),i.dispatchEvent(v)}},[u,t,n]),o.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:t,...a,tabIndex:-1,ref:c,style:{...a.style,...k,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});j.displayName=L;function _(e){return e?"checked":"unchecked"}var O=P,D=R;function X({className:e,...r}){return o.jsx(O,{"data-slot":"switch",className:S("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:o.jsx(D,{"data-slot":"switch-thumb",className:S("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}export{X as S};
@@ -1 +0,0 @@
1
- import{j as s,i,L as m}from"./index-Bi48hI2z.js";import{m as r}from"./use-settings-form-submit-CDRh-E9U.js";import{S as n}from"./switch-G0W3uJVN.js";import"./index-C2cH1Gst.js";const h=({className:t,label:a})=>{const e=r();return s.jsxs("div",{className:i("form-field__switch flex items-center",t),children:[s.jsx(m,{htmlFor:e.name,className:"mr-3",children:a}),s.jsx(n,{id:e.name,checked:e.state.value,onCheckedChange:e.handleChange})]})};export{h as default};
@@ -1 +0,0 @@
1
- import{j as t,i as l}from"./index-Bi48hI2z.js";function o({className:a,...e}){return t.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:t.jsx("table",{"data-slot":"table",className:l("w-full caption-bottom text-sm",a),...e})})}function r({className:a,...e}){return t.jsx("thead",{"data-slot":"table-header",className:l("[&_tr]:border-b",a),...e})}function n({className:a,...e}){return t.jsx("tbody",{"data-slot":"table-body",className:l("[&_tr:last-child]:border-0",a),...e})}function d({className:a,...e}){return t.jsx("tr",{"data-slot":"table-row",className:l("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",a),...e})}function c({className:a,...e}){return t.jsx("th",{"data-slot":"table-head",className:l("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...e})}function b({className:a,...e}){return t.jsx("td",{"data-slot":"table-cell",className:l("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...e})}export{o as T,r as a,d as b,c,n as d,b as e};
@@ -1 +0,0 @@
1
- import{c}from"./index-Bi48hI2z.js";const e=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],l=c("Ellipsis",e);const s=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],i=c("Eye",s);const o=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],y=c("Pencil",o);const a=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],d=c("Plus",a);const t=[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]],h=c("TestTube",t);export{l as E,y as P,h as T,i as a,d as b};
@@ -1 +0,0 @@
1
- import{j as a,i as o,L as m,J as d}from"./index-Bi48hI2z.js";import{m as u}from"./use-settings-form-submit-CDRh-E9U.js";import{F as c}from"./FieldInfo-Bxj_j8SJ.js";import{u as f,R as x}from"./use-form-validation-context-BkAfWAh0.js";const v=({className:s,label:t,hideLabel:l=!1,...i})=>{const e=u(),{isFieldRequired:n}=f();return a.jsxs("div",{className:o("space-y-3",s),children:[!l&&a.jsxs(m,{htmlFor:e.name,className:"block w-full",children:[t,n(e.name)&&a.jsx(x,{})]}),a.jsx(d,{type:"text",className:"form-input",name:e.name,id:e.name,value:e.state.value??"","aria-invalid":e.state.meta.isTouched&&e.state.meta.errors?.length>0,onBlur:e.handleBlur,onChange:r=>e.handleChange(r.target.value),...i}),a.jsx(c,{fieldMeta:e.state.meta})]})};export{v as default};
@@ -1 +0,0 @@
1
- import{o as v}from"./index-Bi48hI2z.js";var h,l;function M(){if(l)return h;l=1;var t=1e3,a=t*60,i=a*60,s=i*24,f=s*7,m=s*365.25;h=function(e,r){r=r||{};var n=typeof e;if(n==="string"&&e.length>0)return c(e);if(n==="number"&&isFinite(e))return r.long?g(e):u(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function c(e){if(e=String(e),!(e.length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var n=parseFloat(r[1]),d=(r[2]||"ms").toLowerCase();switch(d){case"years":case"year":case"yrs":case"yr":case"y":return n*m;case"weeks":case"week":case"w":return n*f;case"days":case"day":case"d":return n*s;case"hours":case"hour":case"hrs":case"hr":case"h":return n*i;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function u(e){var r=Math.abs(e);return r>=s?Math.round(e/s)+"d":r>=i?Math.round(e/i)+"h":r>=a?Math.round(e/a)+"m":r>=t?Math.round(e/t)+"s":e+"ms"}function g(e){var r=Math.abs(e);return r>=s?o(e,r,s,"day"):r>=i?o(e,r,i,"hour"):r>=a?o(e,r,a,"minute"):r>=t?o(e,r,t,"second"):e+" ms"}function o(e,r,n,d){var w=r>=n*1.5;return Math.round(e/n)+" "+d+(w?"s":"")}return h}var p=M();const y=v(p);function D(t){const a=typeof t=="string"?new Date(t):new Date(t),s=new Date().getTime()-a.getTime();if(Math.abs(s)>y("7d"))return a.toLocaleDateString("en",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"});const f=y(Math.ceil(s/1e3)*1e3,{long:!0}),[m,c]=f.split(" "),u=new Intl.RelativeTimeFormat("en",{numeric:"auto"});return c==="ms"?u.format(0,"second"):u.format(-parseInt(m),c)}export{D as f};
@@ -1,7 +0,0 @@
1
- import{c as z,j as e,r as o,p as Y,R as Re,f as J,W as Me,b as Pe,C as _e,g as Ie,T as $e,D as Le,q as X,s as Fe,v as Ue,w as qe,i as y,x as Z,u as G,l as C,t as d,y as ee,z as se,A as te,E as ae,F as re,L as j,B as b,G as ne,H as le,I as ie,J as V,k as Ve}from"./index-Bi48hI2z.js";import{S as Be,a as Ke,b as ze,c as Ge,d as He}from"./select-zHgqMzLj.js";import{B as h}from"./badge-DTZMtS0e.js";import{T as Qe,a as We,b as B,c as I,d as Ye,e as k}from"./table-DvgJU7Gh.js";import{P as Je,D as Xe,a as Ze,b as es,d as ss,c as $,e as ts}from"./Page-C3rteCZt.js";import{L as K}from"./loader-circle-M0gu1gZ-.js";import{T as H,P as oe,E as as,a as rs,b as ns}from"./test-tube-BIwmoM45.js";import{S as ls}from"./switch-G0W3uJVN.js";import"./index-C2cH1Gst.js";import"./chevron-down-CRy8M0kJ.js";import"./check-Bu3ldi63.js";const is=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]],os=z("GitMerge",is);const cs=[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"8",cy:"12",r:"2",key:"1nvbw3"}]],ds=z("ToggleLeft",cs);const us=[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"6",ry:"6",key:"f2vt7d"}],["circle",{cx:"16",cy:"12",r:"2",key:"4ma0v8"}]],ms=z("ToggleRight",us);var gs=Symbol("radix.slottable");function hs(t){const r=({children:a})=>e.jsx(e.Fragment,{children:a});return r.displayName=`${t}.Slottable`,r.__radixId=gs,r}var ce="AlertDialog",[ps]=Pe(ce,[Y]),v=Y(),de=t=>{const{__scopeAlertDialog:r,...a}=t,n=v(r);return e.jsx(Re,{...n,...a,modal:!0})};de.displayName=ce;var xs="AlertDialogTrigger",fs=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,...n}=t,l=v(a);return e.jsx(qe,{...l,...n,ref:r})});fs.displayName=xs;var js="AlertDialogPortal",ue=t=>{const{__scopeAlertDialog:r,...a}=t,n=v(r);return e.jsx(Fe,{...n,...a})};ue.displayName=js;var vs="AlertDialogOverlay",me=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,...n}=t,l=v(a);return e.jsx(Ue,{...l,...n,ref:r})});me.displayName=vs;var E="AlertDialogContent",[Ns,bs]=ps(E),ys=hs("AlertDialogContent"),ge=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,children:n,...l}=t,p=v(a),u=o.useRef(null),x=J(r,u),m=o.useRef(null);return e.jsx(Me,{contentName:E,titleName:he,docsSlug:"alert-dialog",children:e.jsx(Ns,{scope:a,cancelRef:m,children:e.jsxs(_e,{role:"alertdialog",...p,...l,ref:x,onOpenAutoFocus:Ie(l.onOpenAutoFocus,c=>{c.preventDefault(),m.current?.focus({preventScroll:!0})}),onPointerDownOutside:c=>c.preventDefault(),onInteractOutside:c=>c.preventDefault(),children:[e.jsx(ys,{children:n}),e.jsx(Cs,{contentRef:u})]})})})});ge.displayName=E;var he="AlertDialogTitle",pe=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,...n}=t,l=v(a);return e.jsx($e,{...l,...n,ref:r})});pe.displayName=he;var xe="AlertDialogDescription",fe=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,...n}=t,l=v(a);return e.jsx(Le,{...l,...n,ref:r})});fe.displayName=xe;var Ss="AlertDialogAction",je=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,...n}=t,l=v(a);return e.jsx(X,{...l,...n,ref:r})});je.displayName=Ss;var ve="AlertDialogCancel",Ne=o.forwardRef((t,r)=>{const{__scopeAlertDialog:a,...n}=t,{cancelRef:l}=bs(ve,a),p=v(a),u=J(r,l);return e.jsx(X,{...p,...n,ref:u})});Ne.displayName=ve;var Cs=({contentRef:t})=>{const r=`\`${E}\` requires a description for the component to be accessible for screen reader users.
2
-
3
- You can add a description to the \`${E}\` by passing a \`${xe}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
-
5
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${E}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
-
7
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return o.useEffect(()=>{document.getElementById(t.current?.getAttribute("aria-describedby"))||console.warn(r)},[r,t]),null},Ts=de,As=ue,ws=me,Ds=ge,ks=je,Es=Ne,Os=pe,Rs=fe;function Ms({...t}){return e.jsx(Ts,{"data-slot":"alert-dialog",...t})}function Ps({...t}){return e.jsx(As,{"data-slot":"alert-dialog-portal",...t})}function _s({className:t,...r}){return e.jsx(ws,{"data-slot":"alert-dialog-overlay",className:y("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...r})}function Is({className:t,...r}){return e.jsxs(Ps,{children:[e.jsx(_s,{}),e.jsx(Ds,{"data-slot":"alert-dialog-content",className:y("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...r})]})}function $s({className:t,...r}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:y("flex flex-col gap-2 text-center sm:text-left",t),...r})}function Ls({className:t,...r}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:y("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...r})}function Fs({className:t,...r}){return e.jsx(Os,{"data-slot":"alert-dialog-title",className:y("text-lg font-semibold",t),...r})}function Us({className:t,...r}){return e.jsx(Rs,{"data-slot":"alert-dialog-description",className:y("text-muted-foreground text-sm",t),...r})}function qs({className:t,...r}){return e.jsx(ks,{className:y(Z(),t),...r})}function Vs({className:t,...r}){return e.jsx(Es,{className:y(Z({variant:"outline"}),t),...r})}function Bs({open:t,onOpenChange:r,sourceTracker:a,targetId:n,onTargetChange:l,onConfirm:p,isMerging:u,availableTargets:x}){const m=c=>{l(Number(c))};return e.jsx(Ms,{open:t,onOpenChange:r,children:e.jsxs(Is,{children:[e.jsxs($s,{children:[e.jsx(Fs,{children:"Merge Disabled Tracker"}),e.jsxs(Us,{children:["Move timestamp history from"," ",e.jsx("span",{className:"font-medium",children:a?.name||a?.url||""})," ","into another tracker before permanently deleting it."]})]}),e.jsx("div",{className:"space-y-3",children:e.jsxs("div",{children:[e.jsx("span",{className:"text-sm font-medium",children:"Merge into"}),e.jsxs(Be,{value:n?.toString(),onValueChange:m,disabled:u,children:[e.jsx(Ke,{className:"mt-1 min-h-[3rem] items-center justify-between",children:e.jsx(ze,{placeholder:"Select a tracker"})}),e.jsx(Ge,{children:x.map(c=>e.jsx(He,{value:c.id.toString(),children:e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{children:c.name||c.url}),e.jsx("span",{className:"text-muted-foreground text-xs break-all",children:c.url})]})},c.id))})]})]})}),e.jsxs(Ls,{children:[e.jsx(Vs,{disabled:u,children:"Cancel"}),e.jsx(qs,{onClick:p,disabled:u||!n,children:u?"Merging…":"Merge"})]})]})})}function Ks({tvIdCaps:t,movieIdCaps:r}){const a=new Set([...t?Object.keys(t):[],...r?Object.keys(r):[]]),n=[];return a.forEach(l=>{t?.[l]&&r?.[l]&&n.push(e.jsx(h,{variant:"outline",className:"text-xs",children:l},l))}),a.forEach(l=>{t?.[l]&&!r?.[l]&&n.push(e.jsxs(h,{variant:"outline",className:"text-xs",children:[l," (TV)"]},`${l}-tv`))}),a.forEach(l=>{!t?.[l]&&r?.[l]&&n.push(e.jsxs(h,{variant:"outline",className:"text-xs",children:[l," (Movies)"]},`${l}-movie`))}),n.length>0?e.jsx(e.Fragment,{children:n}):e.jsx("span",{className:"text-muted-foreground text-sm",children:"No external ID support detected"})}function zs({open:t,onOpenChange:r,tracker:a,onEdit:n}){const l=G(),[p,u]=o.useState(!1),{mutate:x}=C(l.indexers.testExisting.mutationOptions({onSuccess:c=>{u(!1),c.success?d.success("Connection test successful!"):d.error(`Connection test failed: ${c.message}`)},onError:c=>{u(!1),d.error(`Test failed: ${c.message}`)}})),m=()=>{a&&(u(!0),x({id:a.id}))};return a?e.jsx(ee,{open:t,onOpenChange:r,children:e.jsxs(se,{className:"sm:max-w-md",children:[e.jsxs(te,{children:[e.jsx(ae,{children:"View Tracker"}),e.jsx(re,{children:"View tracker details and capabilities."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{children:"Tracker Name"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 text-sm",children:a.name||"Unnamed"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{children:"Status"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:e.jsx(h,{variant:a.enabled?"default":"secondary",children:a.enabled?"Enabled":"Disabled"})})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{children:"URL"}),e.jsx("div",{className:"bg-muted/50 rounded-md border px-3 py-2 font-mono text-sm break-all",children:a.url})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{children:"Search Capabilities"}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.searchCap&&e.jsx(h,{variant:"outline",className:"text-xs",children:"Search"}),a.tvSearchCap&&e.jsx(h,{variant:"outline",className:"text-xs",children:"TV"}),a.movieSearchCap&&e.jsx(h,{variant:"outline",className:"text-xs",children:"Movies"}),a.musicSearchCap&&e.jsx(h,{variant:"outline",className:"text-xs",children:"Music"}),a.audioSearchCap&&e.jsx(h,{variant:"outline",className:"text-xs",children:"Audio"}),a.bookSearchCap&&e.jsx(h,{variant:"outline",className:"text-xs",children:"Books"}),!a.searchCap&&!a.tvSearchCap&&!a.movieSearchCap&&!a.musicSearchCap&&!a.audioSearchCap&&!a.bookSearchCap&&e.jsx("span",{className:"text-muted-foreground text-sm",children:"No search capabilities detected"})]})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{children:"Supported External IDs"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:e.jsx(Ks,{tvIdCaps:a.tvIdCaps,movieIdCaps:a.movieIdCaps})})]}),e.jsx(b,{type:"button",variant:"outline",onClick:m,disabled:p,className:"w-full",children:p?e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"mr-2 h-4 w-4 animate-spin"}),"Testing Connection..."]}):e.jsxs(e.Fragment,{children:[e.jsx(H,{className:"mr-2 h-4 w-4"}),"Test Connection"]})})]}),e.jsxs(ne,{children:[n&&e.jsxs(b,{type:"button",onClick:()=>n(a),className:"flex-1",children:[e.jsx(oe,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsx(le,{asChild:!0,children:e.jsx(b,{type:"button",variant:"outline",className:"flex-1",children:"Close"})})]})]})}):null}function Gs({open:t,onOpenChange:r,mode:a,tracker:n}){const l=G(),p=ie(),[u,x]=o.useState(n?.name||""),[m,c]=o.useState(n?.url||""),[f,T]=o.useState(""),[O,N]=o.useState(n?.enabled??!0),[L,S]=o.useState(!1);o.useEffect(()=>{t&&(x(n?.name||""),c(n?.url||""),T(""),N(n?.enabled??!0))},[t,n]);const{mutate:A,isPending:R}=C(l.indexers.create.mutationOptions({onSuccess:async()=>{d.success("Tracker created successfully"),await p.invalidateQueries({queryKey:l.indexers.getAll.queryKey()}),r(!1)},onError:g=>{d.error(`Failed to create tracker: ${g.message}`)}})),{mutate:M,isPending:w}=C(l.indexers.update.mutationOptions({onSuccess:async()=>{d.success("Tracker updated successfully"),await p.invalidateQueries({queryKey:l.indexers.getAll.queryKey()}),r(!1)},onError:g=>{d.error(`Failed to update tracker: ${g.message}`)}})),{mutate:D}=C(l.indexers.testNew.mutationOptions({onSuccess:g=>{S(!1),g.success?d.success("Connection test successful!"):d.error(`Connection test failed: ${g.message}`)},onError:g=>{S(!1),d.error(`Test failed: ${g.message}`)}})),U=g=>{if(g.preventDefault(),!m.trim()){d.error("URL is required");return}const F=m.trim();if(!F.endsWith("/api")){d.error("URL must end with /api");return}try{new URL(F)}catch{d.error("Invalid URL format");return}if(!f.trim()){d.error("API key is required");return}a==="edit"&&n?M({id:n.id,name:u.trim()||null,url:m.trim(),apikey:f.trim(),enabled:O}):a==="create"&&A({name:u.trim()||void 0,url:m.trim(),apikey:f.trim(),enabled:O})},q=()=>{if(!m.trim()||!f.trim()){d.error("URL and API key are required for testing");return}S(!0),D({url:m.trim(),apikey:f.trim()})},P=R||w;return e.jsx(ee,{open:t,onOpenChange:r,children:e.jsx(se,{className:"sm:max-w-md",children:e.jsxs("form",{onSubmit:U,children:[e.jsxs(te,{children:[e.jsx(ae,{children:a==="edit"?"Edit Tracker":"Add Tracker"}),e.jsx(re,{children:a==="edit"?"Update the tracker details below.":"Add a new torznab indexer or tracker."})]}),e.jsxs("div",{className:"grid flex-1 auto-rows-min gap-6 px-4",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{htmlFor:"name",children:"Tracker Name"}),e.jsx(V,{id:"name",value:u,onChange:g=>x(g.target.value),placeholder:"My Indexer",autoComplete:"off"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(j,{htmlFor:"tracker-enabled",className:"text-sm font-medium",children:"Enable Search and RSS"}),e.jsx(ls,{id:"tracker-enabled",checked:O,onCheckedChange:N})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{htmlFor:"url",children:"URL"}),e.jsx(V,{id:"url",type:"url",value:m,onChange:g=>c(g.target.value),placeholder:"https://indexer.example.com/api",autoComplete:"url",required:!0})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsx(j,{htmlFor:"apikey",children:"API Key"}),e.jsx(V,{id:"apikey",type:"password",value:f,onChange:g=>T(g.target.value),placeholder:"Enter API key",autoComplete:"off",required:!0})]}),e.jsx(b,{type:"button",variant:"outline",onClick:q,disabled:L||!m.trim()||!f.trim(),className:"w-full",children:L?e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"mr-2 h-4 w-4 animate-spin"}),"Testing Connection..."]}):e.jsxs(e.Fragment,{children:[e.jsx(H,{className:"mr-2 h-4 w-4"}),"Test Connection"]})})]}),e.jsxs(ne,{children:[e.jsx(b,{type:"submit",disabled:P,children:P?e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"mr-2 h-4 w-4 animate-spin"}),a==="edit"?"Updating...":"Creating..."]}):a==="edit"?"Update":"Create"}),e.jsx(le,{asChild:!0,children:e.jsx(b,{type:"button",variant:"outline",disabled:P,children:"Cancel"})})]})]})})})}function rt(){const t=G(),r=ie(),[a,n]=o.useState(!1),[l,p]=o.useState(!1),[u,x]=o.useState("create"),[m,c]=o.useState(null),[f,T]=o.useState(null),[O,N]=o.useState(null),[L,S]=o.useState(!1),[A,R]=o.useState(null),[M,w]=o.useState(null),{data:D}=Ve(t.indexers.getAll.queryOptions()),{mutate:U}=C(t.indexers.update.mutationOptions({onSuccess:async()=>{d.success("Tracker updated successfully"),await r.invalidateQueries({queryKey:t.indexers.getAll.queryKey()})},onError:s=>{d.error(`Failed to update tracker: ${s.message}`)}})),{mutate:q}=C(t.indexers.testExisting.mutationOptions({onSuccess:s=>{T(null),s.success?d.success(s.message):d.error(s.message)},onError:s=>{T(null),d.error(`Test failed: ${s.message}`)}})),{mutate:P,isPending:g}=C(t.indexers.mergeDisabled.mutationOptions({onSuccess:async s=>{d.success(s.mergedCount?`Merged ${s.mergedCount.toLocaleString()} timestamp entries`:"No timestamps needed merging."),await r.invalidateQueries({queryKey:t.indexers.getAll.queryKey()}),S(!1),R(null),w(null)},onError:s=>{d.error(`Failed to merge tracker data: ${s.message}`)}})),F=s=>new Date(s).toLocaleString(),be=s=>s.enabled?s.status==="RATE_LIMITED"?s.retryAfter&&Date.now()<s.retryAfter?e.jsx(h,{variant:"destructive",className:"bg-red-700",title:`Rate limited until ${F(s.retryAfter)}`,children:"Rate Limited"}):e.jsx(h,{variant:"default",className:"bg-green-700",children:"OK"}):s.status==="UNKNOWN_ERROR"?e.jsx(h,{variant:"destructive",className:"bg-red-700",children:"Error"}):s.searchCap===null?e.jsx(h,{variant:"outline",children:"Unknown"}):s.status===null||s.status==="OK"?e.jsx(h,{variant:"default",className:"bg-green-700",children:"OK"}):e.jsx(h,{variant:"outline",children:s.status}):e.jsx(h,{variant:"secondary",children:"Disabled"}),ye=s=>{const i=[];return s.searchCap&&i.push("Search"),s.tvSearchCap&&i.push("TV"),s.movieSearchCap&&i.push("Movies"),s.musicSearchCap&&i.push("Music"),s.audioSearchCap&&i.push("Audio"),s.bookSearchCap&&i.push("Books"),i.length===0?e.jsx("span",{className:"text-muted-foreground text-sm",children:"Unknown"}):e.jsx("div",{className:"grid auto-cols-max grid-flow-col gap-1",children:i.map(_=>e.jsx(h,{variant:"outline",className:"text-xs",children:_},_))})},Se=()=>{c(null),x("create"),p(!0)},Ce=s=>{n(s),s||N(null)},Te=s=>{p(s),s||N(null)},Q=s=>{N(null),c(s),n(!0)},W=s=>{N(null),c(s),x("edit"),n(!1),p(!0)},Ae=s=>{U({id:s.id,enabled:!s.enabled})},we=s=>{T(s.id),q({id:s.id})},De=s=>{const i=D?.filter(_=>_.enabled&&_.id!==s.id)??[];if(!i.length){d.error("No enabled trackers available to merge into.");return}R(s),w(i[0]?.id??null),S(!0)},ke=s=>{S(s),s||(R(null),w(null))},Ee=()=>{if(!A||!M){d.error("Select a destination tracker to merge into.");return}P({sourceId:A.id,targetId:M})},Oe=e.jsxs(b,{onClick:Se,size:"sm",children:[e.jsx(ns,{className:"mr-2 h-4 w-4"}),"Add Tracker"]});return e.jsxs(Je,{breadcrumbs:["Settings","Trackers"],actions:Oe,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Trackers"}),e.jsx("p",{className:"text-muted-foreground",children:"Manage your torznab indexers and trackers"})]}),e.jsx("div",{className:"overflow-x-auto rounded-lg border",children:e.jsxs(Qe,{children:[e.jsx(We,{className:"bg-muted sticky top-0 z-10",children:e.jsxs(B,{className:"border-b",children:[e.jsx(I,{children:"Name"}),e.jsx(I,{children:"URL"}),e.jsx(I,{children:"Status"}),e.jsx(I,{children:"Capabilities"}),e.jsx(I,{className:"text-right",children:"Actions"})]})}),e.jsxs(Ye,{children:[D?.map(s=>e.jsxs(B,{className:"hover:bg-muted/50 cursor-pointer",onClick:()=>Q(s),children:[e.jsx(k,{className:"font-medium",children:s.name||"Unnamed"}),e.jsx(k,{className:"font-mono text-sm",children:s.url}),e.jsx(k,{children:be(s)}),e.jsx(k,{children:ye(s)}),e.jsx(k,{className:"text-right",children:e.jsxs(Xe,{open:O===s.id,onOpenChange:i=>N(i?s.id:null),children:[e.jsx(Ze,{asChild:!0,children:e.jsxs(b,{variant:"ghost",className:"h-8 w-8 p-0",onClick:i=>i.stopPropagation(),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(as,{className:"h-4 w-4"})]})}),e.jsxs(es,{align:"end",children:[e.jsx(ss,{children:"Actions"}),e.jsxs($,{onClick:i=>{i.stopPropagation(),Q(s)},children:[e.jsx(rs,{className:"mr-2 h-4 w-4"}),"View Details"]}),e.jsxs($,{onClick:i=>{i.stopPropagation(),W(s)},children:[e.jsx(oe,{className:"mr-2 h-4 w-4"}),"Edit"]}),e.jsx(ts,{}),e.jsxs($,{onClick:i=>{i.stopPropagation(),we(s)},disabled:f===s.id,children:[e.jsx(H,{className:"mr-2 h-4 w-4"}),f===s.id?"Testing...":"Test Connection"]}),e.jsx($,{onClick:i=>{i.stopPropagation(),Ae(s)},children:s.enabled?e.jsxs(e.Fragment,{children:[e.jsx(ds,{className:"mr-2 h-4 w-4"}),"Disable"]}):e.jsxs(e.Fragment,{children:[e.jsx(ms,{className:"mr-2 h-4 w-4"}),"Enable"]})}),!s.enabled&&e.jsxs($,{onClick:i=>{i.stopPropagation(),De(s)},children:[e.jsx(os,{className:"mr-2 h-4 w-4"}),"Merge"]})]})]})})]},s.id)),D?.length===0&&e.jsx(B,{children:e.jsx(k,{colSpan:5,className:"py-8 text-center",children:e.jsx("div",{className:"text-muted-foreground",children:"No trackers configured. Add your first tracker to get started."})})})]})]})})]}),e.jsx(zs,{open:a,onOpenChange:Ce,tracker:m,onEdit:m?W:void 0}),e.jsx(Gs,{open:l,onOpenChange:Te,mode:u,tracker:m}),e.jsx(Bs,{open:L,onOpenChange:ke,sourceTracker:A,targetId:M,onTargetChange:w,onConfirm:Ee,isMerging:g,availableTargets:(D??[]).filter(s=>s.enabled&&s.id!==A?.id).map(s=>({id:s.id,name:s.name,url:s.url}))})]})}export{rt as component};
@@ -1 +0,0 @@
1
- import{j as r,r as o}from"./index-Bi48hI2z.js";import{n as e}from"./use-settings-form-submit-CDRh-E9U.js";function a(){return r.jsx("span",{className:"text-red-500",title:"Required",children:"*"})}const s=()=>{const t=o.useContext(e);if(!t)throw new Error("useFormValidation must be used within a FormValidationProvider");return t};export{a as R,s as u};