cyreader 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/server/dist/config/paths.js +3 -0
- package/bundle/server/dist/library/cache.js +70 -0
- package/bundle/server/dist/library/scan.js +54 -8
- package/bundle/server/dist/library/scan.test.js +99 -18
- package/bundle/server/dist/library/service.js +5 -1
- package/bundle/server/dist/library/service.test.js +16 -1
- package/bundle/server/dist/reading/progress/merge.js +5 -4
- package/bundle/server/dist/reading/progress/schema.js +39 -3
- package/bundle/server/dist/reading/progress/schema.test.js +36 -3
- package/bundle/server/dist/reading/progress/service.js +2 -3
- package/bundle/server/dist/reading/progress/service.test.js +10 -9
- package/bundle/server/dist/routes/library.test.js +8 -1
- package/bundle/web/dist/assets/_shell-Bm2pxAQP.js +5 -0
- package/bundle/web/dist/assets/_shell-Cij8gMSv.js +1 -0
- package/bundle/web/dist/assets/comic._id-Djtr8diE.js +1 -0
- package/bundle/web/dist/assets/dist-DzLEGVNH.js +1 -0
- package/bundle/web/dist/assets/dist-QfKKfHSL.js +1 -0
- package/bundle/web/dist/assets/index-BHhqsr5H.js +10 -0
- package/bundle/web/dist/assets/index-D9hL3zrL.css +2 -0
- package/bundle/web/dist/assets/library-D_1sil_O.js +1 -0
- package/bundle/web/dist/assets/library-utils-BRrejTkM.js +1 -0
- package/bundle/web/dist/assets/mutation-ChAIwNv3.js +1 -0
- package/bundle/web/dist/assets/novel._id-C62VYvcl.js +4 -0
- package/bundle/web/dist/assets/query-keys-CbbgiZx4.js +1 -0
- package/bundle/web/dist/assets/reading-BozmJNi1.js +1 -0
- package/bundle/web/dist/assets/reading-progress-C5bkK-vF.js +1 -0
- package/bundle/web/dist/assets/save-reading-progress-D231ROaQ.js +1 -0
- package/bundle/web/dist/assets/scroll-area-CyEO8R_G.js +1 -0
- package/bundle/web/dist/assets/{settings-2-CCv0KiQI.js → settings-2-8mnAuSax.js} +1 -1
- package/bundle/web/dist/assets/settings-BRi0XyRg.js +1 -0
- package/bundle/web/dist/assets/shell-context-Buw4m44t.js +41 -0
- package/bundle/web/dist/assets/use-library-Bh7Bunn1.js +1 -0
- package/bundle/web/dist/assets/{useNavigate-BMyovDLu.js → useNavigate-B29ssGbr.js} +1 -1
- package/bundle/web/dist/assets/useRouterState-4dM5FKiy.js +1 -0
- package/bundle/web/dist/assets/utils-ChkMmPzE.js +1 -0
- package/bundle/web/dist/index.html +11 -5
- package/package.json +2 -2
- package/bundle/server/dist/app.test.js +0 -9
- package/bundle/web/dist/assets/_shell-DPQLbvwD.js +0 -5
- package/bundle/web/dist/assets/_shell-gkEQU-gF.js +0 -1
- package/bundle/web/dist/assets/comic._id-BjwrciUv.js +0 -1
- package/bundle/web/dist/assets/dist-Da_WaNYN.js +0 -1
- package/bundle/web/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/bundle/web/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/bundle/web/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/bundle/web/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/bundle/web/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/bundle/web/dist/assets/image-BZKAkGUy.js +0 -1
- package/bundle/web/dist/assets/index-BpBtuR9k.css +0 -2
- package/bundle/web/dist/assets/index-CaXGEWDb.js +0 -10
- package/bundle/web/dist/assets/input-DcKYfXao.js +0 -41
- package/bundle/web/dist/assets/library-Dw1qyl0v.js +0 -1
- package/bundle/web/dist/assets/mutation-CwzbY9ri.js +0 -1
- package/bundle/web/dist/assets/novel._id-DsL8say-.js +0 -4
- package/bundle/web/dist/assets/query-keys-CDsPIOEO.js +0 -1
- package/bundle/web/dist/assets/reading-BseNE7P3.js +0 -1
- package/bundle/web/dist/assets/reading-progress-BcmbUd_d.js +0 -1
- package/bundle/web/dist/assets/save-reading-progress-AuKXiup6.js +0 -1
- package/bundle/web/dist/assets/scroll-area-Bzi-DiTy.js +0 -1
- package/bundle/web/dist/assets/settings-2wiLHSOF.js +0 -1
- package/bundle/web/dist/assets/shell-context-BT0BT8PF.js +0 -1
- package/bundle/web/dist/assets/toggle-group-DDKezi4R.js +0 -1
- package/bundle/web/dist/assets/utils-BmM72imW.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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:"Inter", "Noto Sans SC", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-green-500:oklch(72.3% .219 149.579);--color-indigo-500:oklch(58.5% .233 277.117);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-md:calc(var(--radius) * .8);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Inter", "Noto Sans SC", sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-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}*{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)}html{font-family:Inter,Noto Sans SC,sans-serif}#root{height:100%}}@layer components;@layer utilities{.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}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-14{top:calc(var(--spacing) * 14)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-auto{margin-top:auto}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-\[1\.2em\]{margin-bottom:1.2em}.ml-auto{margin-left:auto}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.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{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.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-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.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-3{height:calc(var(--spacing) * 3)}.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-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-40{height:calc(var(--spacing) * 40)}.h-\[3px\]{height:3px}.h-\[34px\]{height:34px}.h-\[70vh\]{height:70vh}.h-\[180px\]{height:180px}.h-\[244px\]{height:244px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-1\/2{width:50%}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-80{width:calc(var(--spacing) * 80)}.w-\[220px\]{width:220px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[520px\]{max-width:520px}.max-w-\[720px\]{max-width:720px}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-\[100px\]{min-width:100px}.min-w-\[108px\]{min-width:108px}.min-w-\[220px\]{min-width:220px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.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-px{--tw-translate-x:-1px;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-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);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)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.grid-cols-\[40px_1fr_1fr_80px_100px\]{grid-template-columns:40px 1fr 1fr 80px 100px}.grid-cols-\[repeat\(auto-fill\,minmax\(140px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[--spacing\(var\(--gap\)\)\]{gap:calc(var(--spacing) * var(--gap))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded-4xl{border-radius:calc(var(--radius) * 2.6)}.rounded-\[2px\]{border-radius:2px}.rounded-\[10px\]{border-radius:10px}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#2a2a32\]{border-color:#2a2a32}.border-\[\#25252a\]{border-color:#25252a}.border-\[var\(--reader-accent\)\]{border-color:var(--reader-accent)}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-ring{border-color:var(--ring)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.bg-\[\#0a0a0f\]{background-color:#0a0a0f}.bg-\[\#1a1a20\]{background-color:#1a1a20}.bg-\[\#1e1e24\]{background-color:#1e1e24}.bg-\[\#2a2a32\]{background-color:#2a2a32}.bg-\[\#25252a\]{background-color:#25252a}.bg-\[\#141418\]{background-color:#141418}.bg-background{background-color:var(--background)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-green-500{background-color:var(--color-green-500)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground{background-color:var(--muted-foreground)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.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-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-\[18px\]{padding-inline:18px}.py-0{padding-block:calc(var(--spacing) * 0)}.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-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.indent-\[2em\]{text-indent:2em}.font-heading{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/relaxed{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.85em\]{font-size:.85em}.text-\[1\.4em\]{font-size:1.4em}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.8px\]{--tw-tracking:.8px;letter-spacing:.8px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-\[\#6b6b78\]{color:#6b6b78}.text-\[\#9f9fad\]{color:#9f9fad}.text-\[\#c2c2ca\]{color:#c2c2ca}.text-\[\#d4c5a9\]{color:#d4c5a9}.text-\[\#e2e2e8\]{color:#e2e2e8}.text-\[\#f3f3f7\]{color:#f3f3f7}.text-background{color:var(--background)}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--foreground) 80%, transparent)}}.text-indigo-500{color:var(--color-indigo-500)}.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-red-400{color:var(--color-red-400)}.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)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-80{opacity:.8}.shadow-\[0_0_0_1px_var\(--sidebar-border\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,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-\[0_0_6px_rgba\(34\,197\,94\,0\.4\)\]{--tw-shadow:0 0 6px var(--tw-shadow-color,#22c55e66);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_6px_rgba\(99\,102\,241\,0\.4\)\]{--tw-shadow:0 0 6px var(--tw-shadow-color,#6366f166);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)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.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}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[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-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-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}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.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\]\: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-\[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-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *){border-radius:0}.group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.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)}.group-data-\[variant\=floating\]\:ring-1:is(:where(.group)[data-variant=floating] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-sidebar-border:is(:where(.group)[data-variant=floating] *){--tw-ring-color:var(--sidebar-border)}@media (hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){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)}.peer-data-active\/menu-button\:text-sidebar-accent-foreground:is(:is(:where(.peer\/menu-button):where([data-state=active]),:where(.peer\/menu-button):where([data-active]:not([data-active=false])))~*){color:var(--sidebar-accent-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.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-\[\#4a4a56\]::placeholder{color:#4a4a56}.placeholder\:text-\[\#6b6b78\]::placeholder{color:#6b6b78}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.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\:start-1\/2:after{content:var(--tw-content);inset-inline-start: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\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#3a3a44\]:hover{border-color:#3a3a44}.hover\:border-indigo-500:hover{border-color:var(--color-indigo-500)}.hover\:bg-\[\#1e1e24\]:hover{background-color:#1e1e24}.hover\:bg-\[\#2a2a32\]:hover{background-color:#2a2a32}.hover\:bg-\[\#5558e0\]:hover{background-color:#5558e0}.hover\:bg-\[\#23232a\]:hover{background-color:#23232a}.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-\[\#d5d5dd\]:hover{color:#d5d5dd}.hover\:text-\[\#e2e2e8\]:hover{color:#e2e2e8}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,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\:ring-3:hover{--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)}.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\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus,:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.focus-visible\:border-indigo-500:focus-visible{border-color:var(--color-indigo-500)}.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-3:focus-visible,.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-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.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)}.active\:ring-3:active{--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)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.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}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[slot\=kbd\]\:pr-1\.5:has([data-slot=kbd]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-expanded\:opacity-100[aria-expanded=true]{opacity:1}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--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)}.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)}}.aria-pressed\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[active\=true\]\:bg-\[\#1e1e24\][data-active=true]{background-color:#1e1e24}.data-\[active\=true\]\:font-normal[data-active=true]{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.data-\[active\=true\]\:text-\[\#e2e2e8\][data-active=true]{color:#e2e2e8}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[position\=popper\]\:h-\(--radix-select-trigger-height\)[data-position=popper]{height:var(--radix-select-trigger-height)}.data-\[position\=popper\]\:w-full[data-position=popper]{width:100%}.data-\[position\=popper\]\:min-w-\(--radix-select-trigger-width\)[data-position=popper]{min-width:var(--radix-select-trigger-width)}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:calc(var(--spacing) * 0)}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:calc(var(--spacing) * 0)}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.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\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:calc(var(--spacing) * 0)}.data-\[side\=left\]\:left-0[data-side=left]{left:calc(var(--spacing) * 0)}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.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\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=left\]\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=left]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:calc(var(--spacing) * 0)}.data-\[side\=right\]\:right-0[data-side=right]{right:calc(var(--spacing) * 0)}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.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\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=right\]\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=right]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:calc(var(--spacing) * 0)}.data-\[side\=top\]\:top-0[data-side=top]{top:calc(var(--spacing) * 0)}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.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\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=md\]\:text-sm[data-size=md]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md), 10px)}.data-\[size\=sm\]\:text-xs[data-size=sm]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}:is(.\*\*\:data-\[slot\=kbd\]\:relative *)[data-slot=kbd]{position:relative}:is(.\*\*\:data-\[slot\=kbd\]\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.\*\*\:data-\[slot\=kbd\]\:z-50 *)[data-slot=kbd]{z-index:50}:is(.\*\*\:data-\[slot\=kbd\]\:rounded-sm *)[data-slot=kbd]{border-radius:calc(var(--radius) * .6)}: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-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-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\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=on\]\:border-\[\#3e3e52\][data-state=on]{border-color:#3e3e52}.data-\[state\=on\]\:bg-\[\#2a2a3a\][data-state=on]{background-color:#2a2a3a}.data-\[state\=on\]\:bg-muted[data-state=on]{background-color:var(--muted)}.data-\[state\=on\]\:text-\[\#e2e2e8\][data-state=on]{color:#e2e2e8}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media (width>=40rem){.sm\:flex{display:flex}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left],.data-\[side\=right\]\:sm\:max-w-sm[data-side=right]{max-width:var(--container-sm)}}@media (width>=48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.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) * 1.4)}.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}}.ltr\:-translate-x-1\/2:where(:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=ltr],[dir=ltr] *),.rtl\:-translate-x-1\/2:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.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)}}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, 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\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 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\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, 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)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){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-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}@media (hover:hover){:is(.data-open\:hover\:bg-sidebar-accent:where([data-state=open]),.data-open\:hover\:bg-sidebar-accent:where([data-open]:not([data-open=false]))):hover{background-color:var(--sidebar-accent)}:is(.data-open\:hover\:text-sidebar-accent-foreground:where([data-state=open]),.data-open\:hover\:text-sidebar-accent-foreground:where([data-open]:not([data-open=false]))):hover{color:var(--sidebar-accent-foreground)}}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-state=open]),.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-state=open]),.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-state=open]),.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-state=open]),.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*-100%)}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){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-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-state=closed]),.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-state=closed]),.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-state=closed]),.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-state=closed]),.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*-100%)}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-active\:bg-sidebar-accent:where([data-state=active]),.data-active\:bg-sidebar-accent:where([data-active]:not([data-active=false])){background-color:var(--sidebar-accent)}.data-active\:font-medium:where([data-state=active]),.data-active\:font-medium:where([data-active]:not([data-active=false])){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-active\:text-sidebar-accent-foreground:where([data-state=active]),.data-active\:text-sidebar-accent-foreground:where([data-active]:not([data-active=false])){color:var(--sidebar-accent-foreground)}.data-horizontal\:h-1:where([data-orientation=horizontal]){height:calc(var(--spacing) * 1)}.data-horizontal\:h-2\.5:where([data-orientation=horizontal]){height:calc(var(--spacing) * 2.5)}.data-horizontal\:h-full:where([data-orientation=horizontal]){height:100%}.data-horizontal\:h-px:where([data-orientation=horizontal]){height:1px}.data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.data-horizontal\:border-t:where([data-orientation=horizontal]){border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent:where([data-orientation=horizontal]){border-top-color:#0000}.data-vertical\:h-full:where([data-orientation=vertical]){height:100%}.data-vertical\:min-h-40:where([data-orientation=vertical]){min-height:calc(var(--spacing) * 40)}.data-vertical\:w-1:where([data-orientation=vertical]){width:calc(var(--spacing) * 1)}.data-vertical\:w-2\.5:where([data-orientation=vertical]){width:calc(var(--spacing) * 2.5)}.data-vertical\:w-auto:where([data-orientation=vertical]){width:auto}.data-vertical\:w-full:where([data-orientation=vertical]){width:100%}.data-vertical\:w-px:where([data-orientation=vertical]){width:1px}.data-vertical\:flex-col:where([data-orientation=vertical]){flex-direction:column}.data-vertical\:items-stretch:where([data-orientation=vertical]){align-items:stretch}.data-vertical\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.data-vertical\:border-l:where([data-orientation=vertical]){border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent:where([data-orientation=vertical]){border-left-color:#0000}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}@media (hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}}: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)}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>a\:hover\]\:text-primary>a:hover{color:var(--primary)}.\[\&\>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)!important;height:calc(var(--spacing) * 3)!important}.\[\&\>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)}[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}}@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}:root{--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(20.5% 0 0);--primary-foreground:oklch(98.5% 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(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.625rem;--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:#0f0f12;--foreground:#e2e2e8;--card:#1a1a20;--card-foreground:#e2e2e8;--popover:#1a1a20;--popover-foreground:#e2e2e8;--primary:#6366f1;--primary-foreground:#fff;--secondary:#1a1a20;--secondary-foreground:#9f9fad;--muted:#252530;--muted-foreground:#6b6b78;--accent:#1e1e24;--accent-foreground:#e2e2e8;--destructive:oklch(70.4% .191 22.216);--border:#25252a;--input:#2a2a32;--ring:#6366f1;--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:#141418;--sidebar-foreground:#9f9fad;--sidebar-primary:#6366f1;--sidebar-primary-foreground:#fff;--sidebar-accent:#1e1e24;--sidebar-accent-foreground:#e2e2e8;--sidebar-border:#25252a;--sidebar-ring:#6366f1}.reader-scrollbar{scrollbar-width:thin;scrollbar-color:var(--reader-text) transparent}@supports (color:color-mix(in lab, red, red)){.reader-scrollbar{scrollbar-color:color-mix(in srgb, var(--reader-text) 18%, transparent) transparent}}.reader-scrollbar:hover{scrollbar-color:var(--reader-text) transparent}@supports (color:color-mix(in lab, red, red)){.reader-scrollbar:hover{scrollbar-color:color-mix(in srgb, var(--reader-text) 32%, transparent) transparent}}.reader-scrollbar::-webkit-scrollbar{width:6px}.reader-scrollbar::-webkit-scrollbar-track{background:0 0}.reader-scrollbar::-webkit-scrollbar-thumb{background-color:var(--reader-text);border-radius:9999px}@supports (color:color-mix(in lab, red, red)){.reader-scrollbar::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--reader-text) 18%, transparent)}}.reader-scrollbar::-webkit-scrollbar-thumb{background-clip:padding-box;border:2px solid #0000}.reader-scrollbar:hover::-webkit-scrollbar-thumb{background-color:var(--reader-text)}@supports (color:color-mix(in lab, red, red)){.reader-scrollbar:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb, var(--reader-text) 32%, transparent)}}.reader-scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}.reader-scrollbar-none::-webkit-scrollbar{display:none}.reader-scope [data-slot=button][data-variant=ghost]{color:var(--reader-text)}.reader-scope [data-slot=button][data-variant=ghost]:hover{background:var(--reader-control-hover);color:var(--reader-text)}.reader-scope [data-slot=button][data-variant=outline]{border-color:var(--reader-control-border);background:var(--reader-control-bg);color:var(--reader-text)}.reader-scope [data-slot=button][data-variant=outline]:hover{background:var(--reader-control-hover);color:var(--reader-text)}.reader-scope [data-slot=toggle-group-item]{border-color:var(--reader-control-border);color:var(--reader-text)}.reader-scope [data-slot=toggle-group-item]:hover{background:var(--reader-control-hover);color:var(--reader-text)}.reader-scope [data-slot=toggle-group-item][data-state=on],.reader-scope [data-slot=toggle-group-item][data-state=on]:hover{background:var(--reader-accent);color:var(--reader-accent-fg)}.reader-scope [data-slot=slider-track]{background:var(--reader-control-bg)}.reader-scope [data-slot=slider-range]{background:var(--reader-accent)}.reader-scope [data-slot=slider-thumb]{border-color:var(--reader-accent);background:var(--reader-bg)}.reader-scope [data-slot=skeleton]{background:var(--reader-skeleton)}.reader-scope .reader-settings-active{background:var(--reader-accent)}@supports (color:color-mix(in lab, red, red)){.reader-scope .reader-settings-active{background:color-mix(in srgb, var(--reader-accent) 18%, transparent)}}.reader-scope .reader-settings-active{color:var(--reader-accent)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@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))}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./query-keys-CbbgiZx4.js";function t(){return e(`/api/library`)}function n(t){return e(`/api/library/${t}`)}async function r(){let e=await fetch(`/api/library/scan`,{method:`POST`});if(e.status!==202&&e.status!==409&&!e.ok){let t=await e.json();throw Error(t.error??e.statusText)}}export{n,r,t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as e}from"./utils-ChkMmPzE.js";import{i as t}from"./reading-progress-C5bkK-vF.js";var n=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),r=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});function i(e,t){return r.compare(e.title,t.title)}var a={all:`全部`,novel:`小说`,comic:`漫画`,reading:`阅读中`,unread:`未开始`,completed:`已完成`};function o(e){return a[e]}function s(e,n,r){let i=[...e];n===`novel`||n===`comic`?i=i.filter(e=>e.type===n):(n===`reading`||n===`unread`||n===`completed`)&&(i=i.filter(e=>t(e.progress)===n));let a=r.trim().toLowerCase();return a&&(i=i.filter(e=>e.title.toLowerCase().includes(a))),i}function c(e,t){return t===`name`?[...e].toSorted(i):[...e].toSorted((e,t)=>{let n=t.addedAt.localeCompare(e.addedAt);return n===0?i(e,t):n})}function l(e){return e.reduce((e,n)=>{let r=t(n.progress);return e[r]+=1,e},{reading:0,unread:0,completed:0})}export{n as a,c as i,s as n,o as r,l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e,T as t,w as n}from"./utils-ChkMmPzE.js";var r=class extends n{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let n=()=>{this.#i({type:`continue`})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=t({fn:()=>this.options.mutationFn?this.options.mutationFn(e,r):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let i=this.state.status===`pending`,a=!this.#r.canStart();try{if(i)n();else{this.#i({type:`pending`,variables:e,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,r);let t=await this.options.onMutate?.(e,r);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:a})}let t=await this.#r.start();return await this.#n.config.onSuccess?.(t,e,this.state.context,this,r),await this.options.onSuccess?.(t,e,this.state.context,r),await this.#n.config.onSettled?.(t,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(t,null,e,this.state.context,r),this.#i({type:`success`,data:t}),t}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(t){let n=e=>{switch(t.type){case`failed`:return{...e,failureCount:t.failureCount,failureReason:t.error};case`pause`:return{...e,isPaused:!0};case`continue`:return{...e,isPaused:!1};case`pending`:return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:`pending`,variables:t.variables,submittedAt:Date.now()};case`success`:return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:`error`}}};this.state=n(this.state),e.batch(()=>{this.#t.forEach(e=>{e.onMutationUpdate(t)}),this.#n.notify({mutation:this,type:`updated`,action:t})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}export{i as n,r as t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{Y as e,a as t,b as n,h as r,l as i,s as a,t as o,u as s,x as c}from"./utils-ChkMmPzE.js";import{i as l,o as u,r as d,t as f}from"./query-keys-CbbgiZx4.js";import{t as p}from"./useRouterState-4dM5FKiy.js";import{a as m,c as h,d as g,i as _,l as v,n as y,o as b,r as x,s as S,t as ee,u as C}from"./save-reading-progress-D231ROaQ.js";import{t as w}from"./settings-2-8mnAuSax.js";import{n as T,t as E}from"./dist-QfKKfHSL.js";import{n as D,t as O}from"./dist-DzLEGVNH.js";import{a as k,i as A}from"./reading-BozmJNi1.js";import{d as j,n as M,y as te}from"./index-BHhqsr5H.js";import{o as ne,r as re,t as ie}from"./reading-progress-C5bkK-vF.js";var N=e(c(),1),P=n(),F=[`PageUp`,`PageDown`],I=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],L={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},R=`Slider`,[z,B,ae]=T(R),[V,oe]=i(R,[ae]),[H,U]=V(R),W=N.forwardRef((e,n)=>{let{name:r,min:i=0,max:o=100,step:s=1,orientation:c=`horizontal`,disabled:l=!1,minStepsBetweenThumbs:u=0,defaultValue:d=[i],value:f,onValueChange:p=()=>{},onValueCommit:m=()=>{},inverted:h=!1,form:g,..._}=e,v=N.useRef(new Set),y=N.useRef(0),b=N.useRef(!1),x=c===`horizontal`?se:ce,[S=[],ee]=t({prop:f,defaultProp:d,onChange:e=>{[...v.current][y.current]?.focus({preventScroll:!0,focusVisible:b.current}),b.current=!1,p(e)}}),C=N.useRef(S);function w(e){D(e,xe(S,e))}function T(e){D(e,y.current)}function E(){let e=C.current[y.current];S[y.current]!==e&&m(S)}function D(e,t,{commit:n}={commit:!1}){let r=Te(s),a=O(Ee(Math.round((e-i)/s)*s+i,r),[i,o]);ee((e=[])=>{let r=ve(e,a,t);if(we(r,u*s)){y.current=r.indexOf(a);let t=String(r)!==String(e);return t&&n&&m(r),t?r:e}else return e})}return(0,P.jsx)(H,{scope:e.__scopeSlider,name:r,disabled:l,min:i,max:o,valueIndexToChangeRef:y,thumbs:v.current,values:S,orientation:c,form:g,children:(0,P.jsx)(z.Provider,{scope:e.__scopeSlider,children:(0,P.jsx)(z.Slot,{scope:e.__scopeSlider,children:(0,P.jsx)(x,{"aria-disabled":l,"data-disabled":l?``:void 0,..._,ref:n,onPointerDown:a(_.onPointerDown,()=>{l||(C.current=S,b.current=!1)}),min:i,max:o,inverted:h,onSlideStart:l?void 0:w,onSlideMove:l?void 0:T,onSlideEnd:l?void 0:E,onHomeKeyDown:()=>{l||(b.current=!0,D(i,0,{commit:!0}))},onEndKeyDown:()=>{l||(b.current=!0,D(o,S.length-1,{commit:!0}))},onStepKeyDown:({event:e,direction:t})=>{if(!l){b.current=!0;let n=F.includes(e.key)||e.shiftKey&&I.includes(e.key)?10:1,r=y.current,i=S[r];D(i+s*n*t,r,{commit:!0})}}})})})})});W.displayName=R;var[G,K]=V(R,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),se=N.forwardRef((e,t)=>{let{min:n,max:i,dir:a,inverted:o,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:u,...d}=e,[f,p]=N.useState(null),m=r(t,e=>p(e)),h=N.useRef(void 0),g=E(a),_=g===`ltr`,v=_&&!o||!_&&o;function y(e){let t=h.current||f.getBoundingClientRect(),r=$([0,t.width],v?[n,i]:[i,n]);return h.current=t,r(e-t.left)}return(0,P.jsx)(G,{scope:e.__scopeSlider,startEdge:v?`left`:`right`,endEdge:v?`right`:`left`,direction:v?1:-1,size:`width`,children:(0,P.jsx)(q,{dir:g,"data-orientation":`horizontal`,...d,ref:m,style:{...d.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=y(e.clientX);s?.(t)},onSlideMove:e=>{let t=y(e.clientX);c?.(t)},onSlideEnd:()=>{h.current=void 0,l?.()},onStepKeyDown:e=>{let t=L[v?`from-left`:`from-right`].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),ce=N.forwardRef((e,t)=>{let{min:n,max:i,inverted:a,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,d=N.useRef(null),f=r(t,d),p=N.useRef(void 0),m=!a;function h(e){let t=p.current||d.current.getBoundingClientRect(),r=$([0,t.height],m?[i,n]:[n,i]);return p.current=t,r(e-t.top)}return(0,P.jsx)(G,{scope:e.__scopeSlider,startEdge:m?`bottom`:`top`,endEdge:m?`top`:`bottom`,size:`height`,direction:m?1:-1,children:(0,P.jsx)(q,{"data-orientation":`vertical`,...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=h(e.clientY);o?.(t)},onSlideMove:e=>{let t=h(e.clientY);s?.(t)},onSlideEnd:()=>{p.current=void 0,c?.()},onStepKeyDown:e=>{let t=L[m?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),q=N.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:o,onHomeKeyDown:c,onEndKeyDown:l,onStepKeyDown:u,...d}=e,f=U(R,n);return(0,P.jsx)(s.span,{...d,ref:t,onKeyDown:a(e.onKeyDown,e=>{e.key===`Home`?(c(e),e.preventDefault()):e.key===`End`?(l(e),e.preventDefault()):F.concat(I).includes(e.key)&&(u(e),e.preventDefault())}),onPointerDown:a(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),f.thumbs.has(t)?t.focus({preventScroll:!0,focusVisible:!1}):r(e)}),onPointerMove:a(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:a(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),o(e))})})}),J=`SliderTrack`,Y=N.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=U(J,n);return(0,P.jsx)(s.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});Y.displayName=J;var X=`SliderRange`,Z=N.forwardRef((e,t)=>{let{__scopeSlider:n,...i}=e,a=U(X,n),o=K(X,n),c=r(t,N.useRef(null)),l=a.values.length,u=a.values.map(e=>ye(e,a.min,a.max)),d=l>1?Math.min(...u):0,f=100-Math.max(...u);return(0,P.jsx)(s.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?``:void 0,...i,ref:c,style:{...e.style,[o.startEdge]:d+`%`,[o.endEdge]:f+`%`}})});Z.displayName=X;var le=`SliderThumb`,[ue,de]=V(le),fe=`SliderThumbProvider`;function pe(e){let{__scopeSlider:t,name:n,children:r,internal_do_not_use_render:i}=e,a=U(fe,t),o=B(t),[s,c]=N.useState(null),l=N.useMemo(()=>s?o().findIndex(e=>e.ref.current===s):-1,[o,s]),u=j(s),d=s?!!a.form||!!s.closest(`form`):!0,f=a.values[l],p=n??(a.name?a.name+(a.values.length>1?`[]`:``):void 0),m=f===void 0?0:ye(f,a.min,a.max);N.useEffect(()=>{if(s)return a.thumbs.add(s),()=>{a.thumbs.delete(s)}},[s,a.thumbs]);let h={value:f,name:p,form:a.form,isFormControl:d,index:l,thumb:s,onThumbChange:c,percent:m,size:u};return(0,P.jsx)(ue,{scope:t,...h,children:De(i)?i(h):r})}pe.displayName=fe;var Q=`SliderThumbTrigger`,me=N.forwardRef((e,t)=>{let{__scopeSlider:n,...i}=e,o=U(Q,n),c=K(Q,n),{index:l,value:u,percent:d,size:f,onThumbChange:p}=de(Q,n),m=r(t,e=>p(e)),h=be(l,o.values.length),g=f?.[c.size],_=g?Se(g,d,c.direction):0;return(0,P.jsx)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[c.startEdge]:`calc(${d}% + ${_}px)`},children:(0,P.jsx)(z.ItemSlot,{scope:n,children:(0,P.jsx)(s.span,{role:`slider`,"aria-label":e[`aria-label`]||h,"aria-valuemin":o.min,"aria-valuenow":u,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,tabIndex:o.disabled?void 0:0,...i,ref:m,style:u===void 0?{display:`none`}:e.style,onFocus:a(e.onFocus,()=>{o.valueIndexToChangeRef.current=l})})})})});me.displayName=Q;var he=N.forwardRef((e,t)=>{let{__scopeSlider:n,name:r,...i}=e;return(0,P.jsx)(pe,{__scopeSlider:n,name:r,internal_do_not_use_render:({index:e,isFormControl:r})=>(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(me,{...i,ref:t,__scopeSlider:n}),r?(0,P.jsx)(_e,{__scopeSlider:n},e):null]})})});he.displayName=le;var ge=`SliderBubbleInput`,_e=N.forwardRef(({__scopeSlider:e,...t},n)=>{let{value:i,name:a,form:o}=de(ge,e),c=N.useRef(null),l=r(c,n),u=D(i);return N.useEffect(()=>{let e=c.current;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(u!==i&&n){let t=new Event(`input`,{bubbles:!0});n.call(e,i),e.dispatchEvent(t)}},[u,i]),(0,P.jsx)(s.input,{style:{display:`none`},name:a,form:o,...t,ref:l,defaultValue:i})});_e.displayName=ge;function ve(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function ye(e,t,n){return O(100/(n-t)*(e-t),[0,100])}function be(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function xe(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function Se(e,t,n){let r=e/2;return(r-$([0,50],[0,r])(t)*n)*n}function Ce(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function we(e,t){if(t>0){let n=Ce(e);return Math.min(...n)>=t}return!0}function $(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Te(e){if(!Number.isFinite(e))return 0;let t=e.toString();if(t.includes(`e`)){let[e,n]=t.split(`e`),r=e.split(`.`)[1]||``,i=Number(n);return Math.max(0,r.length-i)}let n=t.split(`.`)[1];return n?n.length:0}function Ee(e,t){let n=10**t;return Math.round(e*n)/n}function De(e){return typeof e==`function`}function Oe(e,t){return`/static/${e}/${encodeURIComponent(t)}`}async function ke(e,t){let n=await fetch(Oe(e,t));if(!n.ok)throw Error(n.statusText);return n.text()}function Ae(e,t){return u({queryKey:f.novelContent(e??``,t??``),queryFn:()=>ke(e,t),enabled:!!(e&&t)})}function je(e){let t=e.replace(/\r\n?/g,`
|
|
2
|
+
`).trim();if(!t)return[];let n=t.split(/\n{2,}/);return n.length>1?n.flatMap(e=>e.split(`
|
|
3
|
+
`).map(e=>e.trim()).filter(Boolean)):t.split(`
|
|
4
|
+
`).map(e=>e.trim()).filter(Boolean)}function Me({className:e,defaultValue:t,value:n,min:r=0,max:i=100,...a}){let s=N.useMemo(()=>Array.isArray(n)?n:Array.isArray(t)?t:[r,i],[n,t,r,i]);return(0,P.jsxs)(W,{"data-slot":`slider`,defaultValue:t,value:n,min:r,max:i,className:o(`relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col`,e),...a,children:[(0,P.jsx)(Y,{"data-slot":`slider-track`,className:`relative grow overflow-hidden rounded-full bg-muted data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1`,children:(0,P.jsx)(Z,{"data-slot":`slider-range`,className:`absolute bg-primary select-none data-horizontal:h-full data-vertical:w-full`})}),Array.from({length:s.length},(e,t)=>(0,P.jsx)(he,{"data-slot":`slider-thumb`,className:`relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50`},t))]})}function Ne({open:e,fontSize:t,lineHeight:n,theme:r,contentFont:i,onFontSizeChange:a,onLineHeightChange:s,onThemeChange:c,onContentFontChange:u,readerStyle:d}){return e?(0,P.jsxs)(`div`,{className:`absolute top-14 right-0 z-20 flex w-80 flex-col gap-4 border-l border-b p-4`,style:{...d,borderColor:`var(--reader-border)`},children:[(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,P.jsx)(`span`,{className:`text-sm`,style:{color:`var(--reader-text)`},children:`字体大小`}),(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>a(t-1),children:`A-`}),(0,P.jsx)(Me,{value:[t],min:14,max:26,step:1,onValueChange:e=>a(e[0]??t),className:`w-24`}),(0,P.jsx)(l,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>a(t+1),children:`A+`})]})]}),(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,P.jsx)(`span`,{className:`text-sm`,style:{color:`var(--reader-text)`},children:`行间距`}),(0,P.jsxs)(A,{type:`single`,value:String(n),onValueChange:e=>{e&&s(Number(e))},variant:`outline`,size:`sm`,children:[(0,P.jsx)(k,{value:`1.6`,children:`紧凑`}),(0,P.jsx)(k,{value:`1.8`,children:`适中`}),(0,P.jsx)(k,{value:`2.2`,children:`宽松`})]})]}),(0,P.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,P.jsx)(`span`,{className:`text-sm`,style:{color:`var(--reader-text)`},children:`字体`}),(0,P.jsx)(A,{type:`single`,value:i,onValueChange:e=>{e&&u(e)},variant:`outline`,size:`sm`,children:Object.keys(h).map(e=>(0,P.jsx)(k,{value:e,children:h[e].label},e))})]}),(0,P.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,P.jsx)(`span`,{className:`text-sm`,style:{color:`var(--reader-text)`},children:`阅读主题`}),(0,P.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Object.keys(b).map(e=>(0,P.jsx)(`button`,{type:`button`,"aria-label":b[e].label,onClick:()=>c(e),className:o(`size-8 rounded-full border-2 transition-transform hover:scale-105`,r===e?`border-[var(--reader-accent)]`:`border-transparent`),style:{background:b[e].bg,boxShadow:r===e?void 0:`inset 0 0 0 1px ${b[e].controlBorder}`}},e))})]})]}):null}function Pe(e,t){return e*t*2+e*1.2}function Fe({title:e,paragraphs:t,fontSize:n,lineHeight:r,contentFont:i,initialParagraphIndex:a=0,onParagraphChange:s,onReachEnd:c}){let l=(0,N.useRef)(null),u=(0,N.useRef)(null),[d,f]=(0,N.useState)(0),p=(0,N.useRef)(!1),m=(0,N.useRef)(e),g=(0,N.useRef)(s),_=(0,N.useRef)(c);g.current=s,_.current=c;let v=(0,N.useCallback)(()=>{u.current&&f(u.current.offsetTop)},[]),y=C({count:t.length,getScrollElement:()=>l.current,estimateSize:()=>Pe(n,r),overscan:10,scrollMargin:d,getItemKey:e=>e}),b=(0,N.useRef)(y.measure);b.current=y.measure;let x=(0,N.useRef)(y.scrollToIndex);return x.current=y.scrollToIndex,(0,N.useLayoutEffect)(()=>{v()},[e,n,r,v]),(0,N.useLayoutEffect)(()=>{let e=u.current;if(!e)return;let t=new ResizeObserver(()=>{v()});return t.observe(e),e.previousElementSibling instanceof HTMLElement&&t.observe(e.previousElementSibling),()=>{t.disconnect()}},[e,v]),(0,N.useLayoutEffect)(()=>{b.current()},[n,r,i]),(0,N.useLayoutEffect)(()=>{if(t.length===0||p.current)return;let e=u.current;if(!e)return;let n=e.offsetTop;if(d!==n){f(n);return}p.current=!0;let r=Math.min(Math.max(a,0),t.length-1);b.current(),x.current(r,{align:`start`})},[a,t.length,d]),(0,N.useEffect)(()=>{m.current!==e&&(m.current=e,p.current=!1)},[e]),(0,N.useEffect)(()=>{let e=l.current;if(!e)return;let t,n=()=>{t&&clearTimeout(t),t=setTimeout(()=>{let t=y.range;if(t){let n=e.scrollTop,r=y.getVirtualItems(),i=t.startIndex;for(let e of r)if(e.start+e.size>n){i=e.size>0&&Math.max(0,n-e.start)>e.size/2?e.index+1:e.index;break}g.current?.(i)}e.scrollTop+e.clientHeight>=e.scrollHeight-32&&_.current?.()},100)};return e.addEventListener(`scroll`,n,{passive:!0}),()=>{e.removeEventListener(`scroll`,n),t&&clearTimeout(t)}},[y]),(0,P.jsx)(`div`,{ref:l,className:`reader-scrollbar h-full overflow-y-auto`,children:(0,P.jsxs)(`article`,{className:`mx-auto max-w-[720px] px-6 py-8`,style:{fontSize:`var(--reader-font-size)`,lineHeight:`var(--reader-line-height)`,color:`var(--reader-text)`,...i!=="default"&&{fontFamily:h[i].family}},children:[(0,P.jsx)(`h1`,{className:`mb-2 text-[1.4em] font-bold`,children:e}),(0,P.jsx)(`div`,{className:`mb-6 border-b pb-4 text-[0.85em]`,style:{borderColor:`var(--reader-border)`,color:`var(--reader-text-muted)`},children:`—`}),(0,P.jsx)(`div`,{ref:u,style:{height:y.getTotalSize(),width:`100%`,position:`relative`},children:y.getVirtualItems().map(e=>(0,P.jsx)(`div`,{"data-index":e.index,ref:y.measureElement,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${e.start-y.options.scrollMargin}px)`},children:(0,P.jsx)(`p`,{className:o(`mb-[1.2em] text-justify`,e.index===0?``:`indent-[2em]`),children:t[e.index]})},e.key))})]})})}function Ie({id:e}){let t=p({select:e=>e.location.state?.readerTitle}),{data:n,isPending:r,error:i}=v(e),a=n&&n.type===`novel`?n:null,{data:s,isPending:c,error:u}=Ae(a?.directoryId,a?.filename),[f,h]=(0,N.useState)(!1),{settings:b,patchSettings:C}=m(`novel`),{fontSize:T,lineHeight:E,theme:D,contentFont:O}=b,[k,A]=(0,N.useState)(0),[j,M]=(0,N.useState)(null),F=(0,N.useMemo)(()=>S(D,T,E),[T,E,D]),I=t??n?.title??`加载中...`,L=r||a!==null&&c,R=i??u,z=R?R instanceof Error?R.message:`加载失败`:null,B=(0,N.useMemo)(()=>s?je(s):[],[s]),ae=(0,N.useMemo)(()=>re(k,B.length),[k,B.length]),V=(0,N.useCallback)((t,n=null)=>{if(B.length===0)return;let r=Math.min(Math.max(t,0),B.length-1);y(e,{type:`novel`,paragraphIndex:r,anchor:ie(B[r]??``),layout:{paragraphCount:B.length,charCount:B.reduce((e,t)=>e+t.length,0)},completedAt:n})},[e,B]),oe=(0,N.useCallback)(e=>{A(e),V(e,null)},[V]),H=(0,N.useCallback)(()=>{if(B.length===0)return;let e=B.length-1;A(e),V(e,new Date().toISOString())},[B.length,V]);return(0,N.useEffect)(()=>{M(null),A(0)},[e]),(0,N.useEffect)(()=>{if(B.length===0||j!==null)return;let e=ne(a?.progress,B);M(e),A(e)},[a?.progress,B,j]),(0,N.useEffect)(()=>(_(e),()=>{x(e),ee(e)}),[e]),(0,N.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),f&&h(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[f]),(0,P.jsxs)(`div`,{className:`reader-scope relative flex h-screen flex-col overflow-hidden`,style:F,children:[(0,P.jsxs)(`header`,{className:`relative z-10 flex h-14 shrink-0 items-center gap-3 border-b px-4`,style:{borderColor:`var(--reader-border)`},children:[(0,P.jsx)(l,{type:`button`,variant:`ghost`,size:`sm`,asChild:!0,children:(0,P.jsxs)(te,{to:`/`,children:[(0,P.jsx)(g,{"data-icon":`inline-start`}),`返回`]})}),(0,P.jsx)(`div`,{className:`flex-1 truncate text-center text-sm font-medium`,children:I}),(0,P.jsx)(l,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:()=>h(e=>!e),className:o(f&&`reader-settings-active`),children:(0,P.jsx)(w,{})})]}),(0,P.jsx)(Ne,{open:f,fontSize:T,lineHeight:E,theme:D,contentFont:O,onFontSizeChange:e=>C({fontSize:Math.min(26,Math.max(14,e))}),onLineHeightChange:e=>C({lineHeight:e}),onThemeChange:e=>C({theme:e}),onContentFontChange:e=>C({contentFont:e}),readerStyle:F}),(0,P.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[L&&!s?(0,P.jsxs)(`div`,{className:`flex flex-col gap-3 p-8`,children:[(0,P.jsx)(d,{className:`h-8 w-1/2`}),(0,P.jsx)(d,{className:`h-4 w-full`}),(0,P.jsx)(d,{className:`h-4 w-full`}),(0,P.jsx)(d,{className:`h-4 w-3/4`})]}):null,z?(0,P.jsx)(`div`,{className:`p-8 text-sm`,style:{color:`var(--reader-error)`},children:z}):null,!r&&!z&&n&&n.type!==`novel`?(0,P.jsx)(`div`,{className:`p-8 text-sm`,style:{color:`var(--reader-error)`},children:`作品类型不匹配`}):null,a&&s&&j!==null?(0,P.jsx)(Fe,{title:a.title,paragraphs:B,fontSize:T,lineHeight:E,contentFont:O,initialParagraphIndex:j,onParagraphChange:oe,onReachEnd:H},e):null]}),(0,P.jsxs)(`footer`,{className:`flex h-11 shrink-0 items-center justify-center border-t text-xs`,style:{borderColor:`var(--reader-border)`,color:`var(--reader-text-muted)`},children:[`已读 `,ae,`%`]})]})}function Le(){let{id:e}=M.useParams();return(0,P.jsx)(Ie,{id:e})}export{Le as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,C as t,D as n,G as r,H as i,I as a,K as o,N as s,O as c,R as l,V as u,W as d,Y as f,b as p,f as m,k as h,n as g,q as _,t as v,x as y,y as b,z as x}from"./utils-ChkMmPzE.js";var S=class extends _{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=c(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),w(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return T(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return T(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(t){let n=this.options,r=this.#t;if(this.options=this.#e.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof x(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),n._defaulted&&!u(this.options,n)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let i=this.hasListeners();i&&E(this.#t,r,this.options,n)&&this.#h(),this.updateResult(),i&&(this.#t!==r||x(this.options.enabled,this.#t)!==x(n.enabled,this.#t)||e(this.options.staleTime,this.#t)!==e(n.staleTime,this.#t))&&this.#g();let a=this.#_();i&&(this.#t!==r||x(this.options.enabled,this.#t)!==x(n.enabled,this.#t)||a!==this.#p)&&this.#v(a)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return O(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(a)),t}#g(){this.#b();let t=e(this.options.staleTime,this.#t);if(h.isServer()||this.#r.isStale||!s(t))return;let n=d(this.#r.dataUpdatedAt,t)+1;this.#d=r.setTimeout(()=>{this.#r.isStale||this.updateResult()},n)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(h.isServer()||x(this.options.enabled,this.#t)===!1||!s(this.#p)||this.#p===0)&&(this.#f=r.setInterval(()=>{(this.options.refetchIntervalInBackground||o.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(r.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(r.clearInterval(this.#f),this.#f=void 0)}createResult(e,n){let r=this.#t,i=this.options,a=this.#r,o=this.#i,s=this.#a,u=e===r?this.#n:e.state,{state:d}=e,f={...d},p=!1,m;if(n._optimisticResults){let a=this.hasListeners(),o=!a&&w(e,n),s=a&&E(e,r,n,i);(o||s)&&(f={...f,...t(d.data,e.options)}),n._optimisticResults===`isRestoring`&&(f.fetchStatus=`idle`)}let{error:h,errorUpdatedAt:g,status:_}=f;m=f.data;let v=!1;if(n.placeholderData!==void 0&&m===void 0&&_===`pending`){let e;a?.isPlaceholderData&&n.placeholderData===s?.placeholderData?(e=a.data,v=!0):e=typeof n.placeholderData==`function`?n.placeholderData(this.#u?.state.data,this.#u):n.placeholderData,e!==void 0&&(_=`success`,m=l(a?.data,e,n),p=!0)}if(n.select&&m!==void 0&&!v)if(a&&m===o?.data&&n.select===this.#c)m=this.#l;else try{this.#c=n.select,m=n.select(m),m=l(a?.data,m,n),this.#l=m,this.#s=null}catch(e){this.#s=e}this.#s&&(h=this.#s,m=this.#l,g=Date.now(),_=`error`);let y=f.fetchStatus===`fetching`,b=_===`pending`,S=_===`error`,C=b&&y,T=m!==void 0,O={status:_,fetchStatus:f.fetchStatus,isPending:b,isSuccess:_===`success`,isError:S,isInitialLoading:C,isLoading:C,data:m,dataUpdatedAt:f.dataUpdatedAt,error:h,errorUpdatedAt:g,failureCount:f.fetchFailureCount,failureReason:f.fetchFailureReason,errorUpdateCount:f.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:f.dataUpdateCount>u.dataUpdateCount||f.errorUpdateCount>u.errorUpdateCount,isFetching:y,isRefetching:y&&!b,isLoadingError:S&&!T,isPaused:f.fetchStatus===`paused`,isPlaceholderData:p,isRefetchError:S&&T,isStale:D(e,n),refetch:this.refetch,promise:this.#o,isEnabled:x(n.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=O.data!==void 0,n=O.status===`error`&&!t,i=e=>{n?e.reject(O.error):t&&e.resolve(O.data)},a=()=>{i(this.#o=O.promise=c())},o=this.#o;switch(o.status){case`pending`:e.queryHash===r.queryHash&&i(o);break;case`fulfilled`:(n||O.data!==o.value)&&a();break;case`rejected`:(!n||O.error!==o.reason)&&a();break}}return O}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!u(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){n.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function C(e,t){return x(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&x(t.retryOnMount,e)===!1)}function w(e,t){return C(e,t)||e.state.data!==void 0&&T(e,t,t.refetchOnMount)}function T(t,n,r){if(x(n.enabled,t)!==!1&&e(n.staleTime,t)!==`static`){let e=typeof r==`function`?r(t):r;return e===`always`||e!==!1&&D(t,n)}return!1}function E(e,t,n,r){return(e!==t||x(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&D(e,n)}function D(t,n){return x(n.enabled,t)!==!1&&t.isStaleByTime(e(n.staleTime,t))}function O(e,t){return!u(e.getCurrentResult(),t)}var k=p(),A=f(y(),1),j=A.createContext(!1),M=()=>A.useContext(j);j.Provider;function N(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var P=A.createContext(N()),F=()=>A.useContext(P),I=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?i(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},L=e=>{A.useEffect(()=>{e.clearReset()},[e])},R=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:a})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(a&&e.data===void 0||i(n,[e.error,r])),z=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},B=(e,t)=>e.isLoading&&e.isFetching&&!t,V=(e,t)=>e?.suspense&&t.isPending,H=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function U(e,t,r){let i=M(),o=F(),s=b(r),c=s.defaultQueryOptions(e);s.getDefaultOptions().queries?._experimental_beforeQuery?.(c);let l=s.getQueryCache().get(c.queryHash),u=e.subscribed!==!1;c._optimisticResults=i?`isRestoring`:u?`optimistic`:void 0,z(c),I(c,o,l),L(o);let d=!s.getQueryCache().get(c.queryHash),[f]=A.useState(()=>new t(s,c)),p=f.getOptimisticResult(c),m=!i&&u;if(A.useSyncExternalStore(A.useCallback(e=>{let t=m?f.subscribe(n.batchCalls(e)):a;return f.updateResult(),t},[f,m]),()=>f.getCurrentResult(),()=>f.getCurrentResult()),A.useEffect(()=>{f.setOptions(c)},[c,f]),V(c,p))throw H(c,f,o);if(R({result:p,errorResetBoundary:o,throwOnError:c.throwOnError,query:l,suspense:c.suspense}))throw p.error;return s.getDefaultOptions().queries?._experimental_afterQuery?.(c,p),c.experimental_prefetchInRender&&!h.isServer()&&B(p,i)&&(d?H(c,f,o):l?.promise)?.catch(a).finally(()=>{f.updateResult()}),c.notifyOnChangeProps?p:f.trackResult(p)}function W(e,t){return U(e,S,t)}var G=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,K=g,q=(e,t)=>n=>{if(t?.variants==null)return K(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=G(t)||G(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return K(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},J=q(`group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/80`,outline:`border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground`,ghost:`hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50`,destructive:`bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,xs:`h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5`,lg:`h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,icon:`size-8`,"icon-xs":`size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg`,"icon-lg":`size-9`}},defaultVariants:{variant:`default`,size:`default`}});function Y({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i}){return(0,k.jsx)(r?m:`button`,{"data-slot":`button`,"data-variant":t,"data-size":n,className:v(J({variant:t,size:n,className:e})),...i})}function X({className:e,...t}){return(0,k.jsx)(`div`,{"data-slot":`skeleton`,className:v(`animate-pulse rounded-md bg-muted`,e),...t})}var Z=class extends Error{status;constructor(e,t){super(e),this.name=`ApiRequestError`,this.status=t}};async function Q(e){try{return(await e.json()).error??e.statusText}catch{return e.statusText}}async function $(e,t){let n=await fetch(e,t);if(!n.ok)throw new Z(await Q(n),n.status);if(n.status!==204)return n.json()}var ee={library:[`library`],config:[`config`],recent:[`reading`,`recent`],libraryItem:e=>[`library`,e],novelContent:(e,t)=>[`novel-content`,e,t]};export{q as a,Y as i,$ as n,W as o,X as r,ee as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e,a as t,b as n,h as r,i,l as a,r as o,s,t as c,u as l,x as u}from"./utils-ChkMmPzE.js";import{a as d,n as f}from"./query-keys-CbbgiZx4.js";import{n as p,t as m}from"./dist-QfKKfHSL.js";var h=e(u(),1),g=n(),_=`rovingFocusGroup.onEntryFocus`,v={bubbles:!1,cancelable:!0},y=`RovingFocusGroup`,[b,x,S]=p(y),[C,w]=a(y,[S]),[T,E]=C(y),D=h.forwardRef((e,t)=>(0,g.jsx)(b.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,g.jsx)(b.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,g.jsx)(O,{...e,ref:t})})}));D.displayName=y;var O=h.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:i,orientation:a,loop:c=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:f,onCurrentTabStopIdChange:p,onEntryFocus:b,preventScrollOnEntryFocus:S=!1,...C}=e,w=h.useRef(null),E=r(n,w),D=m(u),[O,k]=t({prop:d,defaultProp:f??null,onChange:p,caller:y}),[A,j]=h.useState(!1),M=o(b),N=x(i),F=h.useRef(!1),[I,L]=h.useState(0);return h.useEffect(()=>{let e=w.current;if(e)return e.addEventListener(_,M),()=>e.removeEventListener(_,M)},[M]),(0,g.jsx)(T,{scope:i,orientation:a,dir:D,loop:c,currentTabStopId:O,onItemFocus:h.useCallback(e=>k(e),[k]),onItemShiftTab:h.useCallback(()=>j(!0),[]),onFocusableItemAdd:h.useCallback(()=>L(e=>e+1),[]),onFocusableItemRemove:h.useCallback(()=>L(e=>e-1),[]),children:(0,g.jsx)(l.div,{tabIndex:A||I===0?-1:0,"data-orientation":a,...C,ref:E,style:{outline:`none`,...e.style},onMouseDown:s(e.onMouseDown,()=>{F.current=!0}),onFocus:s(e.onFocus,e=>{let t=!F.current;if(e.target===e.currentTarget&&t&&!A){let t=new CustomEvent(_,v);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=N().filter(e=>e.focusable);P([e.find(e=>e.active),e.find(e=>e.id===O),...e].filter(Boolean).map(e=>e.ref.current),S)}}F.current=!1}),onBlur:s(e.onBlur,()=>j(!1))})})}),k=`RovingFocusGroupItem`,A=h.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:c,...u}=e,d=i(),f=o||d,p=E(k,n),m=p.currentTabStopId===f,_=x(n),{onFocusableItemAdd:v,onFocusableItemRemove:y,currentTabStopId:S}=p;return h.useEffect(()=>{if(r)return v(),()=>y()},[r,v,y]),(0,g.jsx)(b.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:(0,g.jsx)(l.span,{tabIndex:m?0:-1,"data-orientation":p.orientation,...u,ref:t,onMouseDown:s(e.onMouseDown,e=>{r?p.onItemFocus(f):e.preventDefault()}),onFocus:s(e.onFocus,()=>p.onItemFocus(f)),onKeyDown:s(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){p.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=N(e,p.orientation,p.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=_().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=p.loop?F(n,r+1):n.slice(r+1)}setTimeout(()=>P(n))}}),children:typeof c==`function`?c({isCurrentTabStop:m,hasTabStop:S!=null}):c})})});A.displayName=k;var j={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function M(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function N(e,t,n){let r=M(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return j[r]}function P(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function F(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var I=D,L=A,R=`Toggle`,z=h.forwardRef((e,n)=>{let{pressed:r,defaultPressed:i,onPressedChange:a,...o}=e,[c,u]=t({prop:r,onChange:a,defaultProp:i??!1,caller:R});return(0,g.jsx)(l.button,{type:`button`,"aria-pressed":c,"data-state":c?`on`:`off`,"data-disabled":e.disabled?``:void 0,...o,ref:n,onClick:s(e.onClick,()=>{e.disabled||u(!c)})})});z.displayName=R;var B=`ToggleGroup`,[V,ee]=a(B,[w]),H=w(),U=h.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,g.jsx)(K,{...r,ref:t});if(n===`multiple`)return(0,g.jsx)(q,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${B}\``)});U.displayName=B;var[W,G]=V(B),K=h.forwardRef((e,n)=>{let{value:r,defaultValue:i,onValueChange:a=()=>{},...o}=e,[s,c]=t({prop:r,defaultProp:i??``,onChange:a,caller:B});return(0,g.jsx)(W,{scope:e.__scopeToggleGroup,type:`single`,value:h.useMemo(()=>s?[s]:[],[s]),onItemActivate:c,onItemDeactivate:h.useCallback(()=>c(``),[c]),children:(0,g.jsx)(Y,{...o,ref:n})})}),q=h.forwardRef((e,n)=>{let{value:r,defaultValue:i,onValueChange:a=()=>{},...o}=e,[s,c]=t({prop:r,defaultProp:i??[],onChange:a,caller:B}),l=h.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=h.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,g.jsx)(W,{scope:e.__scopeToggleGroup,type:`multiple`,value:s,onItemActivate:l,onItemDeactivate:u,children:(0,g.jsx)(Y,{...o,ref:n})})});U.displayName=B;var[J,te]=V(B),Y=h.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,u=H(n),d=m(o),f={role:`group`,dir:d,...c};return(0,g.jsx)(J,{scope:n,rovingFocus:i,disabled:r,children:i?(0,g.jsx)(I,{asChild:!0,...u,orientation:a,dir:d,loop:s,children:(0,g.jsx)(l.div,{...f,ref:t})}):(0,g.jsx)(l.div,{...f,ref:t})})}),X=`ToggleGroupItem`,Z=h.forwardRef((e,t)=>{let n=G(X,e.__scopeToggleGroup),r=te(X,e.__scopeToggleGroup),i=H(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=h.useRef(null);return r.rovingFocus?(0,g.jsx)(L,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,g.jsx)(Q,{...s,ref:t})}):(0,g.jsx)(Q,{...s,ref:t})});Z.displayName=X;var Q=h.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=G(X,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,g.jsx)(z,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),ne=U,re=Z,ie=d(`group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-muted`},size:{default:`h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,sm:`h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5`,lg:`h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`}},defaultVariants:{variant:`default`,size:`default`}}),$=h.createContext({size:`default`,variant:`default`,spacing:2,orientation:`horizontal`});function ae({className:e,variant:t,size:n,spacing:r=2,orientation:i=`horizontal`,children:a,...o}){return(0,g.jsx)(ne,{"data-slot":`toggle-group`,"data-variant":t,"data-size":n,"data-spacing":r,"data-orientation":i,style:{"--gap":r},className:c(`group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch`,e),...o,children:(0,g.jsx)($.Provider,{value:{variant:t,size:n,spacing:r,orientation:i},children:a})})}function oe({className:e,children:t,variant:n=`default`,size:r=`default`,...i}){let a=h.useContext($);return(0,g.jsx)(re,{"data-slot":`toggle-group-item`,"data-variant":a.variant||n,"data-size":a.size||r,"data-spacing":a.spacing,className:c(`shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t`,ie({variant:a.variant||n,size:a.size||r}),e),...i,children:t})}function se(){return f(`/api/reading/recent`)}function ce(e){return f(`/api/reading/recent`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({itemId:e})})}function le(e,t){return f(`/api/reading/progress/${e}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})}export{oe as a,ae as i,ce as n,le as r,se as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=60,t=20;function n(e){return e?e.completedAt?`completed`:`reading`:`unread`}function r(e){return Math.round(Math.min(Math.max(e,0),1)*100)}function i(e,t){return t<=0?0:t===1?e>0?100:0:Math.round(e/(t-1)*100)}function a(t){return t.trim().slice(0,e)}function o(e,n){if(n.length===0||!e)return 0;let r=Math.min(Math.max(e.paragraphIndex,0),n.length-1);if(!e.anchor)return r;let i=e.anchor;if(a(n[r]??``)===i)return r;let o=Math.max(0,r-t),s=Math.min(n.length-1,r+t);for(let e=o;e<=s;e+=1)if(a(n[e]??``)===i)return e;return r}function s(e){if(!e.progress)return 0;if(e.type===`comic`&&e.progress.type===`comic`)return r(e.progress.scrollRatio);if(e.type===`novel`&&e.progress.type===`novel`){let t=e.progress.layout?.paragraphCount??0;return i(e.progress.paragraphIndex,t)}return 0}export{s as a,n as i,r as n,o,i as r,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e,_ as t,g as n,x as r}from"./utils-ChkMmPzE.js";import{o as i,t as a}from"./query-keys-CbbgiZx4.js";import{n as o,r as s}from"./reading-BozmJNi1.js";import{_ as c}from"./index-BHhqsr5H.js";import{n as l}from"./library-D_1sil_O.js";var u=n(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),d=e(r(),1),f=e(t(),1);function p(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function m(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function h(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var g=(e,t)=>Math.abs(e-t)<1.01,ee=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},_,v=()=>{if(_!==void 0)return _;if(typeof navigator>`u`)return _=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return _=!0;let e=navigator.maxTouchPoints;return _=navigator.platform===`MacIntel`&&e!==void 0&&e>0},y=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},b=e=>e,x=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},te=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(y(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(y(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},S={passive:!0},ne=typeof window>`u`?!0:`onscrollend`in window,re=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&ne,o=0,s=a?null:ee(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,S),a&&r.addEventListener(`scrollend`,u,S),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},C=(e,t)=>re(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),w=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},T=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},E=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:b,rangeExtractor:x,onChange:()=>{},measureElement:w,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=m(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!v()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,S),e.addEventListener(`touchend`,n,S),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(v()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=m(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=m(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=p(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),d=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(d[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,f=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=d[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},d[s]=i}return this.measurementsCache=u,u},{key:!1,debug:()=>this.options.debug}),this.calculateRange=m(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?O({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:r===1&&this._flatMeasurements!=null?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=m(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&this.scrollDirection!==`backward`:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=m(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return h(t[D(0,t.length-1,r?e=>n[e*2]:e=>h(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(v()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&g(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},D=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function O({measurements:e,outerSize:t,scrollOffset:n,lanes:r,flat:i}){let a=e.length-1,o=i?e=>i[e*2]:t=>e[t].start,s=i?e=>i[e*2]+i[e*2+1]:t=>e[t].end;if(e.length<=r)return{startIndex:0,endIndex:a};let c=D(0,a,o,n),l=c;if(r===1)for(;l<a&&s(l)<n+t;)l++;else if(r>1){let i=Array(r).fill(0);for(;l<a&&i.some(e=>e<n+t);){let t=e[l];i[t.lane]=t.end,l++}let o=Array(r).fill(n+t);for(;c>=0&&o.some(e=>e>=n);){let t=e[c];o[t.lane]=t.start,c--}c=Math.max(0,c-c%r),l=Math.min(a,l+(r-1-l%r))}return{startIndex:c,endIndex:l}}var k=typeof document<`u`?d.useLayoutEffect:d.useEffect;function ie({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=d.useReducer(e=>e+1,0)[1],a=d.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled)return;let n=e.getTotalSize();if(t.container&&n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}let r=!!e.options.horizontal,i=t.mode===`transform`,o=r?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let n of c){let a=n.start-s,c=e.elementsCache.get(n.key);c&&t.lastPositions.get(c)!==a&&(t.lastPositions.set(c,a),i?c.style.transform=r?`translate3d(${a}px, 0, 0)`:`translate3d(0, ${a}px, 0)`:c.style[o]=`${a}px`)}},s={...r,onChange:(t,n)=>{var s;let c=a.current,l=!0;if(c.enabled){o(t);let e=t.range,n=c.prevRange;l=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,l&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}l&&(e&&n?(0,f.flushSync)(i):i()),(s=r.onChange)==null||s.call(r,t,n)}},[c]=d.useState(()=>{let e=new E(s);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return c.setOptions(s),k(()=>c._didMount(),[]),k(()=>c._willUpdate()),k(()=>{o(c)}),c}function ae(e){return ie({observeElementRect:te,observeElementOffset:C,scrollToFn:T,...e})}function oe(e){return i({queryKey:a.libraryItem(e),queryFn:()=>l(e)})}var A={default:{label:`默认`},heiti:{label:`黑体`,family:`"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif`},serif:{label:`宋体`,family:`"Noto Serif SC", "Source Han Serif SC", serif`}},j={dark:{bg:`#1a1a1e`,text:`#d8d0c0`,textMuted:`#9a9488`,border:`#2e2e34`,controlBg:`#25252c`,controlBorder:`#3a3a42`,controlHover:`#2e2e36`,accent:`#8b7e6a`,accentFg:`#f5f0e8`,error:`#e07070`,skeleton:`#2a2a30`,label:`深色`},paper:{bg:`#f3ead3`,text:`#4a3f35`,textMuted:`#7a6e62`,border:`#e0d4bc`,controlBg:`#ebe2cc`,controlBorder:`#d4c8b0`,controlHover:`#e5dbc4`,accent:`#8b6914`,accentFg:`#faf6ee`,error:`#c04040`,skeleton:`#e5dbc4`,label:`羊皮纸`},light:{bg:`#fafafa`,text:`#1f1f1f`,textMuted:`#6b6b6b`,border:`#e5e5e5`,controlBg:`#f0f0f0`,controlBorder:`#d8d8d8`,controlHover:`#eaeaea`,accent:`#404040`,accentFg:`#ffffff`,error:`#d04040`,skeleton:`#ececec`,label:`浅色`},green:{bg:`#cfecd8`,text:`#2e4a35`,textMuted:`#5a7a62`,border:`#b5dbbb`,controlBg:`#c0e4ca`,controlBorder:`#a8d4b2`,controlHover:`#b8dfc2`,accent:`#3d6b4a`,accentFg:`#f0faf2`,error:`#c04040`,skeleton:`#b8dfc2`,label:`护眼绿`}};function M(e,t,n){let r=j[e];return{"--reader-bg":r.bg,"--reader-text":r.text,"--reader-text-muted":r.textMuted,"--reader-border":r.border,"--reader-control-bg":r.controlBg,"--reader-control-border":r.controlBorder,"--reader-control-hover":r.controlHover,"--reader-accent":r.accent,"--reader-accent-fg":r.accentFg,"--reader-error":r.error,"--reader-skeleton":r.skeleton,"--reader-font-size":`${t}px`,"--reader-line-height":String(n),background:r.bg,color:r.text}}var N=[1.6,1.8,2.2],P={fontSize:18,lineHeight:1.8,theme:`dark`,contentFont:`default`},F={direction:`ltr`},I=new Set([`ltr`,`rtl`]),L=`cyreader:reader-settings`,R=Object.keys(j),z=Object.keys(A);function B(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function V(e,t){return typeof e!=`number`||!Number.isFinite(e)?t:Math.min(26,Math.max(14,Math.round(e)))}function H(e,t){return typeof e==`number`&&N.includes(e)?e:t}function U(e,t){return typeof e==`string`&&R.includes(e)?e:t}function W(e,t){return typeof e==`string`&&z.includes(e)?e:t}function G(e){let t=P;return B(e)?{fontSize:V(e.fontSize,t.fontSize),lineHeight:H(e.lineHeight,t.lineHeight),theme:U(e.theme,t.theme),contentFont:W(e.contentFont,t.contentFont)}:{...t}}function K(e,t){return typeof e==`string`&&I.has(e)?e:t}function q(e){let t=F;return B(e)?{direction:K(e.direction,t.direction)}:{...t}}function se(e){return!(`novel`in e)&&(`fontSize`in e||`lineHeight`in e||`theme`in e||`contentFont`in e)}function ce(e){return B(e)?se(e)?{version:1,novel:G(e),comic:{...F}}:{version:1,novel:G(e.novel),comic:q(e.comic)}:{version:1,novel:{...P},comic:{...F}}}function J(){if(typeof window>`u`)return{version:1,novel:{...P},comic:{...F}};try{let e=window.localStorage.getItem(L);return e?ce(JSON.parse(e)):{version:1,novel:{...P},comic:{...F}}}catch{return{version:1,novel:{...P},comic:{...F}}}}function le(e){if(!(typeof window>`u`))try{window.localStorage.setItem(L,JSON.stringify(e))}catch{}}function ue(e,t){let n=J(),r={version:1,novel:e===`novel`?t:n.novel,comic:e===`comic`?t:n.comic};return le(r),r}function de(e){let[t,n]=(0,d.useState)(()=>J()[e]);return{settings:t,patchSettings:(0,d.useCallback)(t=>{n(n=>{let r={...n,...t};return ue(e===`novel`?`novel`:`comic`,r),r})},[e])}}var fe=300,Y=new Map;function pe(e){let t=Y.get(e);t&&clearTimeout(t),Y.set(e,setTimeout(()=>{Y.delete(e),o(e).then(()=>c.invalidateQueries({queryKey:a.recent})).catch(()=>{})},fe))}function me(e){let t=Y.get(e);t&&(clearTimeout(t),Y.delete(e))}function X(e,t){c.setQueryData(a.libraryItem(e),e=>{if(!e||e.type!==t.type)return e;let n=new Date().toISOString();return t.type===`comic`&&e.type===`comic`?{...e,progress:{type:`comic`,scrollRatio:t.scrollRatio,updatedAt:n,completedAt:t.completedAt??null}}:t.type===`novel`&&e.type===`novel`?{...e,progress:{type:`novel`,paragraphIndex:t.paragraphIndex,updatedAt:n,anchor:t.anchor,layout:t.layout,completedAt:t.completedAt??null}}:e})}var he=800,Z=new Map,Q=new Map;function ge(e,t){Q.set(e,t);let n=Z.get(e);n&&clearTimeout(n),Z.set(e,setTimeout(()=>{Z.delete(e),$(e)},he))}async function $(e){let t=Z.get(e);t&&(clearTimeout(t),Z.delete(e));let n=Q.get(e);if(n){Q.delete(e);try{await s(e,n),X(e,n),await Promise.all([c.invalidateQueries({queryKey:a.library}),c.invalidateQueries({queryKey:a.recent})])}catch{}}}function _e(e){let t=Z.get(e);t&&(clearTimeout(t),Z.delete(e));let n=Q.get(e);Q.delete(e),n&&s(e,n).then(()=>(X(e,n),Promise.all([c.invalidateQueries({queryKey:a.library}),c.invalidateQueries({queryKey:a.recent})]))).catch(()=>{})}typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{for(let e of Q.keys())$(e)});export{de as a,A as c,u as d,pe as i,oe as l,ge as n,j as o,me as r,M as s,_e as t,ae as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e,_ as t,a as n,b as r,g as i,h as a,i as o,l as s,o as c,p as l,r as u,s as d,t as f,u as p,x as m}from"./utils-ChkMmPzE.js";import{n as h,t as g}from"./dist-QfKKfHSL.js";import{a as _,i as v,o as y,s as b}from"./shell-context-Buw4m44t.js";import{n as x,t as S}from"./dist-DzLEGVNH.js";import{c as C,f as w,h as T,l as E,m as D,o as O,p as k,s as ee,u as A}from"./index-BHhqsr5H.js";var j=i(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),te=i(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),ne=i(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),M=e(m(),1),N=r();function P(e,t){return M.useReducer((e,n)=>t[e][n]??e,e)}var F=`ScrollArea`,[I,L]=s(F),[R,z]=I(F),B=M.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:o=600,...s}=e,[c,l]=M.useState(null),[u,d]=M.useState(null),[f,m]=M.useState(null),[h,_]=M.useState(null),[v,y]=M.useState(null),[b,x]=M.useState(0),[S,C]=M.useState(0),[w,T]=M.useState(!1),[E,D]=M.useState(!1),O=a(t,e=>l(e)),k=g(i);return(0,N.jsx)(R,{scope:n,type:r,dir:k,scrollHideDelay:o,scrollArea:c,viewport:u,onViewportChange:d,content:f,onContentChange:m,scrollbarX:h,onScrollbarXChange:_,scrollbarXEnabled:w,onScrollbarXEnabledChange:T,scrollbarY:v,onScrollbarYChange:y,scrollbarYEnabled:E,onScrollbarYEnabledChange:D,onCornerWidthChange:x,onCornerHeightChange:C,children:(0,N.jsx)(p.div,{dir:k,...s,ref:O,style:{position:`relative`,"--radix-scroll-area-corner-width":b+`px`,"--radix-scroll-area-corner-height":S+`px`,...e.style}})})});B.displayName=F;var V=`ScrollAreaViewport`,re=M.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...o}=e,s=z(V,n),c=a(t,M.useRef(null),s.onViewportChange);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,N.jsx)(p.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,N.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});re.displayName=V;var H=`ScrollAreaScrollbar`,ie=M.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=z(H,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return M.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,N.jsx)(ae,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,N.jsx)(oe,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,N.jsx)(se,{...r,ref:t,forceMount:n}):i.type===`always`?(0,N.jsx)(ce,{...r,ref:t,"data-state":`visible`}):null});ie.displayName=H;var ae=M.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=z(H,e.__scopeScrollArea),[a,o]=M.useState(!1);return M.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,N.jsx)(D,{present:n||a,children:(0,N.jsx)(se,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),oe=M.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=z(H,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=G(()=>c(`SCROLL_END`),100),[s,c]=P(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return M.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),M.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,N.jsx)(D,{present:n||s!==`hidden`,children:(0,N.jsx)(ce,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:d(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:d(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),se=M.forwardRef((e,t)=>{let n=z(H,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=M.useState(!1),s=e.orientation===`horizontal`,c=G(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return K(n.viewport,c),K(n.content,c),(0,N.jsx)(D,{present:r||a,children:(0,N.jsx)(ce,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),ce=M.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=z(H,e.__scopeScrollArea),a=M.useRef(null),o=M.useRef(0),[s,c]=M.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=be(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return xe(e,o.current,s,t)}return n===`horizontal`?(0,N.jsx)(le,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Se(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,N.jsx)(ue,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Se(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),le=M.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,o=z(H,e.__scopeScrollArea),[s,c]=M.useState(),l=M.useRef(null),u=a(t,l,o.onScrollbarXChange);return M.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,N.jsx)(pe,{"data-orientation":`horizontal`,...i,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":W(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),we(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:U(s.paddingLeft),paddingEnd:U(s.paddingRight)}})}})}),ue=M.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,o=z(H,e.__scopeScrollArea),[s,c]=M.useState(),l=M.useRef(null),u=a(t,l,o.onScrollbarYChange);return M.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,N.jsx)(pe,{"data-orientation":`vertical`,...i,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":W(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),we(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:U(s.paddingTop),paddingEnd:U(s.paddingBottom)}})}})}),[de,fe]=I(H),pe=M.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:o,onThumbPointerUp:s,onThumbPointerDown:c,onThumbPositionChange:l,onDragScroll:f,onWheelScroll:m,onResize:h,...g}=e,_=z(H,n),[v,y]=M.useState(null),b=a(t,e=>y(e)),x=M.useRef(null),S=M.useRef(``),C=_.viewport,w=r.content-r.viewport,T=u(m),E=u(l),D=G(h,10);function O(e){x.current&&f({x:e.clientX-x.current.left,y:e.clientY-x.current.top})}return M.useEffect(()=>{let e=e=>{let t=e.target;v?.contains(t)&&T(e,w)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[C,v,w,T]),M.useEffect(E,[r,E]),K(v,D),K(_.content,D),(0,N.jsx)(de,{scope:n,scrollbar:v,hasThumb:i,onThumbChange:u(o),onThumbPointerUp:u(s),onThumbPositionChange:E,onThumbPointerDown:u(c),children:(0,N.jsx)(p.div,{...g,ref:b,style:{position:`absolute`,...g.style},onPointerDown:d(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),x.current=v.getBoundingClientRect(),S.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,_.viewport&&(_.viewport.style.scrollBehavior=`auto`),O(e))}),onPointerMove:d(e.onPointerMove,O),onPointerUp:d(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=S.current,_.viewport&&(_.viewport.style.scrollBehavior=``),x.current=null})})})}),me=`ScrollAreaThumb`,he=M.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=fe(me,e.__scopeScrollArea);return(0,N.jsx)(D,{present:n||i.hasThumb,children:(0,N.jsx)(ge,{ref:t,...r})})}),ge=M.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,o=z(me,n),s=fe(me,n),{onThumbPositionChange:c}=s,l=a(t,e=>s.onThumbChange(e)),u=M.useRef(void 0),f=G(()=>{u.current&&=(u.current(),void 0)},100);return M.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{f(),u.current||(u.current=Te(e,c),c())};return c(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,f,c]),(0,N.jsx)(p.div,{"data-state":s.hasThumb?`visible`:`hidden`,...i,ref:l,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:d(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})}),onPointerUp:d(e.onPointerUp,s.onThumbPointerUp)})});he.displayName=me;var _e=`ScrollAreaCorner`,ve=M.forwardRef((e,t)=>{let n=z(_e,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,N.jsx)(ye,{...e,ref:t}):null});ve.displayName=_e;var ye=M.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=z(_e,n),[a,o]=M.useState(0),[s,c]=M.useState(0),l=!!(a&&s);return K(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),K(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,N.jsx)(p.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function U(e){return e?parseInt(e,10):0}function be(e,t){let n=e/t;return isNaN(n)?0:n}function W(e){let t=be(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function xe(e,t,n,r=`ltr`){let i=W(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return Ce([c,l],d)(e)}function Se(e,t,n=`ltr`){let r=W(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=S(e,n===`ltr`?[0,o]:[o*-1,0]);return Ce([0,o],[0,s])(c)}function Ce(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function we(e,t){return e>0&&e<t}var Te=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function G(e,t){let n=u(e),r=M.useRef(0);return M.useEffect(()=>()=>window.clearTimeout(r.current),[]),M.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function K(e,t){let n=u(t);c(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var Ee=B,De=re,Oe=ve,ke=e(t(),1),Ae=[` `,`Enter`,`ArrowUp`,`ArrowDown`],je=[` `,`Enter`],q=`Select`,[Me,Ne,Pe]=h(q),[J,Fe]=s(q,[Pe,A]),Ie=A(),[Le,Y]=J(q),[Re,ze]=J(q),Be=`SelectProvider`;function Ve(e){let{__scopeSelect:t,children:r,open:i,defaultOpen:a,onOpenChange:s,value:c,defaultValue:l,onValueChange:u,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:_,internal_do_not_use_render:v}=e,y=Ie(t),[b,x]=M.useState(null),[S,C]=M.useState(null),[w,T]=M.useState(!1),D=g(d),[O,k]=n({prop:i,defaultProp:a??!1,onChange:s,caller:q}),[ee,A]=n({prop:c,defaultProp:l,onChange:u,caller:q}),j=M.useRef(null),te=b?!!_||!!b.closest(`form`):!0,[ne,P]=M.useState(new Set),F=o(),I=Array.from(ne).map(e=>e.props.value).join(`;`),L=M.useCallback(e=>{P(t=>new Set(t).add(e))},[]),R=M.useCallback(e=>{P(t=>{let n=new Set(t);return n.delete(e),n})},[]),z={required:h,trigger:b,onTriggerChange:x,valueNode:S,onValueNodeChange:C,valueNodeHasChildren:w,onValueNodeHasChildrenChange:T,contentId:F,value:ee,onValueChange:A,open:O,onOpenChange:k,dir:D,triggerPointerDownPosRef:j,disabled:m,name:f,autoComplete:p,form:_,nativeOptions:ne,nativeSelectKey:I,isFormControl:te};return(0,N.jsx)(E,{...y,children:(0,N.jsx)(Le,{scope:t,...z,children:(0,N.jsx)(Me.Provider,{scope:t,children:(0,N.jsx)(Re,{scope:t,onNativeOptionAdd:L,onNativeOptionRemove:R,children:Lt(v)?v(z):r})})})})}Ve.displayName=Be;var He=e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,N.jsx)(Ve,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,N.jsxs)(N.Fragment,{children:[n,e?(0,N.jsx)(It,{__scopeSelect:t}):null]})})};He.displayName=q;var Ue=`SelectTrigger`,We=M.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,o=Ie(n),s=Y(Ue,n),c=s.disabled||r,l=a(t,s.onTriggerChange),u=Ne(n),f=M.useRef(`touch`),[m,h,g]=zt(e=>{let t=u().filter(e=>!e.disabled),n=Bt(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),_=e=>{c||(s.onOpenChange(!0),g()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,N.jsx)(O,{asChild:!0,...o,children:(0,N.jsx)(p.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":Rt(s.value)?``:void 0,...i,ref:l,onClick:d(i.onClick,e=>{e.currentTarget.focus(),f.current!==`mouse`&&_(e)}),onPointerDown:d(i.onPointerDown,e=>{f.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:d(i.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&h(e.key),!(t&&e.key===` `)&&Ae.includes(e.key)&&(_(),e.preventDefault())})})})});We.displayName=Ue;var Ge=`SelectValue`,Ke=M.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:o,placeholder:s=``,...l}=e,u=Y(Ge,n),{onValueNodeHasChildrenChange:d}=u,f=o!==void 0,m=a(t,u.onValueNodeChange);c(()=>{d(f)},[d,f]);let h=Rt(u.value);return(0,N.jsx)(p.span,{...l,asChild:h?!1:l.asChild,ref:m,style:{pointerEvents:`none`},children:(0,N.jsx)(M.Fragment,{children:h?s:o},h?`placeholder`:`value`)})});Ke.displayName=Ge;var qe=`SelectIcon`,Je=M.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,N.jsx)(p.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});Je.displayName=qe;var Ye=`SelectPortal`,[Xe,Ze]=J(Ye,{forceMount:void 0}),Qe=e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,N.jsx)(Xe,{scope:e.__scopeSelect,forceMount:n,children:(0,N.jsx)(w,{asChild:!0,...r})})};Qe.displayName=Ye;var X=`SelectContent`,$e=M.forwardRef((e,t)=>{let n=Ze(X,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Y(X,e.__scopeSelect),[o,s]=M.useState();return c(()=>{s(new DocumentFragment)},[]),(0,N.jsx)(D,{present:r||a.open,children:({present:e})=>e?(0,N.jsx)(it,{...i,ref:t}):(0,N.jsx)(et,{...i,fragment:o})})});$e.displayName=X;var et=M.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,fragment:i}=e;return i?ke.createPortal((0,N.jsx)(tt,{scope:n,children:(0,N.jsx)(Me.Slot,{scope:n,children:(0,N.jsx)(`div`,{ref:t,children:r})})}),i):null});et.displayName=`SelectContentFragment`;var Z=10,[tt,Q]=J(X),nt=`SelectContentImpl`,rt=l(`SelectContent.RemoveScroll`),it=M.forwardRef((e,t)=>{let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:s,side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:x,avoidCollisions:S,...C}=e,w=Y(X,n),[T,E]=M.useState(null),[D,O]=M.useState(null),ee=a(t,e=>E(e)),[A,j]=M.useState(null),[te,ne]=M.useState(null),P=Ne(n),[F,I]=M.useState(!1),L=M.useRef(!1);M.useEffect(()=>{if(T)return v(T)},[T]),y();let R=M.useCallback(e=>{let[t,...n]=P().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&D&&(D.scrollTop=0),n===r&&D&&(D.scrollTop=D.scrollHeight),n?.focus(),document.activeElement!==i))return},[P,D]),z=M.useCallback(()=>R([A,T]),[R,A,T]);M.useEffect(()=>{F&&z()},[F,z]);let{onOpenChange:B,triggerPointerDownPosRef:V}=w;M.useEffect(()=>{if(T){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(V.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(V.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(T)||B(!1),document.removeEventListener(`pointermove`,t),V.current=null};return V.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[T,B,V]),M.useEffect(()=>{let e=()=>B(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[B]);let[re,H]=zt(e=>{let t=P().filter(e=>!e.disabled),n=Bt(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),ie=M.useCallback((e,t,n)=>{let r=!L.current&&!n;(w.value!==void 0&&w.value===t||r)&&(j(e),r&&(L.current=!0))},[w.value]),ae=M.useCallback(()=>T?.focus(),[T]),oe=M.useCallback((e,t,n)=>{let r=!L.current&&!n;(w.value!==void 0&&w.value===t||r)&&ne(e)},[w.value]),se=r===`popper`?ct:ot,ce=se===ct?{side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:x,avoidCollisions:S}:{};return(0,N.jsx)(tt,{scope:n,content:T,viewport:D,onViewportChange:O,itemRefCallback:ie,selectedItem:A,onItemLeave:ae,itemTextRefCallback:oe,focusSelectedItem:z,selectedItemText:te,position:r,isPositioned:F,searchRef:re,children:(0,N.jsx)(_,{as:rt,allowPinchZoom:!0,children:(0,N.jsx)(b,{asChild:!0,trapped:w.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:d(i,e=>{w.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,N.jsx)(k,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>w.onOpenChange(!1),children:(0,N.jsx)(se,{role:`listbox`,id:w.contentId,"data-state":w.open?`open`:`closed`,dir:w.dir,onContextMenu:e=>e.preventDefault(),...C,...ce,onPlaced:()=>I(!0),ref:ee,style:{display:`flex`,flexDirection:`column`,outline:`none`,...C.style},onKeyDown:d(C.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&H(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=P().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>R(t)),e.preventDefault()}})})})})})})});it.displayName=nt;var at=`SelectItemAlignedPosition`,ot=M.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,o=Y(X,n),s=Q(X,n),[l,u]=M.useState(null),[d,f]=M.useState(null),m=a(t,e=>f(e)),h=Ne(n),g=M.useRef(!1),_=M.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=s,C=M.useCallback(()=>{if(o.trigger&&o.valueNode&&l&&d&&v&&y&&b){let e=o.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=o.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(o.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-Z,d=S(a,[Z,Math.max(Z,u-c)]);l.style.minWidth=s+`px`,l.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-Z,d=S(a,[Z,Math.max(Z,u-c)]);l.style.minWidth=s+`px`,l.style.right=d+`px`}let a=h(),s=window.innerHeight-Z*2,c=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+c+_+m,C=Math.min(y.offsetHeight*5,x),w=window.getComputedStyle(v),T=parseInt(w.paddingTop,10),E=parseInt(w.paddingBottom,10),D=e.top+e.height/2-Z,O=s-D,k=y.offsetHeight/2,ee=y.offsetTop+k,A=f+p+ee,j=x-A;if(A<=D){let e=a.length>0&&y===a[a.length-1].ref.current;l.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=A+Math.max(O,k+(e?E:0)+t+m);l.style.height=n+`px`}else{let e=a.length>0&&y===a[0].ref.current;l.style.top=`0px`;let t=Math.max(D,f+v.offsetTop+(e?T:0)+k)+j;l.style.height=t+`px`,v.scrollTop=A-D+v.offsetTop}l.style.margin=`${Z}px 0`,l.style.minHeight=C+`px`,l.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,o.trigger,o.valueNode,l,d,v,y,b,o.dir,r]);c(()=>C(),[C]);let[w,T]=M.useState();return c(()=>{d&&T(window.getComputedStyle(d).zIndex)},[d]),(0,N.jsx)(lt,{scope:n,contentWrapper:l,shouldExpandOnScrollRef:g,onScrollButtonChange:M.useCallback(e=>{e&&_.current===!0&&(C(),x?.(),_.current=!1)},[C,x]),children:(0,N.jsx)(`div`,{ref:u,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:w},children:(0,N.jsx)(p.div,{...i,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});ot.displayName=at;var st=`SelectPopperPosition`,ct=M.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Z,...a}=e,o=Ie(n);return(0,N.jsx)(C,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.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)`}})});ct.displayName=st;var[lt,ut]=J(X,{}),dt=`SelectViewport`,ft=M.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,o=Q(dt,n),s=ut(dt,n),c=a(t,o.onViewportChange),l=M.useRef(0);return(0,N.jsxs)(N.Fragment,{children:[(0,N.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:r}),(0,N.jsx)(Me.Slot,{scope:n,children:(0,N.jsx)(p.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:d(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Z*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});ft.displayName=dt;var pt=`SelectGroup`,[mt,ht]=J(pt),gt=M.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=o();return(0,N.jsx)(mt,{scope:n,id:i,children:(0,N.jsx)(p.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});gt.displayName=pt;var _t=`SelectLabel`,vt=M.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=ht(_t,n);return(0,N.jsx)(p.div,{id:i.id,...r,ref:t})});vt.displayName=_t;var yt=`SelectItem`,[bt,xt]=J(yt),St=M.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:s,...c}=e,l=Y(yt,n),u=Q(yt,n),f=l.value===r,[m,h]=M.useState(s??``),[g,_]=M.useState(!1),v=a(t,e=>u.itemRefCallback?.(e,r,i)),y=o(),b=M.useRef(`touch`),x=()=>{i||(l.onValueChange(r),l.onOpenChange(!1))};if(r===``)throw 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(0,N.jsx)(bt,{scope:n,value:r,disabled:i,textId:y,isSelected:f,onItemTextChange:M.useCallback(e=>{h(t=>t||(e?.textContent??``).trim())},[]),children:(0,N.jsx)(Me.ItemSlot,{scope:n,value:r,disabled:i,textValue:m,children:(0,N.jsx)(p.div,{role:`option`,"aria-labelledby":y,"data-highlighted":g?``:void 0,"aria-selected":f&&g,"data-state":f?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...c,ref:v,onFocus:d(c.onFocus,()=>_(!0)),onBlur:d(c.onBlur,()=>_(!1)),onClick:d(c.onClick,()=>{b.current!==`mouse`&&x()}),onPointerUp:d(c.onPointerUp,()=>{b.current===`mouse`&&x()}),onPointerDown:d(c.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:d(c.onPointerMove,e=>{b.current=e.pointerType,i?u.onItemLeave?.():b.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:d(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:d(c.onKeyDown,e=>{u.searchRef?.current!==``&&e.key===` `||(je.includes(e.key)&&x(),e.key===` `&&e.preventDefault())})})})})});St.displayName=yt;var $=`SelectItemText`,Ct=M.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...o}=e,s=Y($,n),l=Q($,n),u=xt($,n),d=ze($,n),[f,m]=M.useState(null),h=a(t,e=>m(e),u.onItemTextChange,e=>l.itemTextRefCallback?.(e,u.value,u.disabled)),g=f?.textContent,_=M.useMemo(()=>(0,N.jsx)(`option`,{value:u.value,disabled:u.disabled,children:g},u.value),[u.disabled,u.value,g]),{onNativeOptionAdd:v,onNativeOptionRemove:y}=d;return c(()=>(v(_),()=>y(_)),[v,y,_]),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(p.span,{id:u.textId,...o,ref:h}),u.isSelected&&s.valueNode&&!s.valueNodeHasChildren?ke.createPortal(o.children,s.valueNode):null]})});Ct.displayName=$;var wt=`SelectItemIndicator`,Tt=M.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return xt(wt,n).isSelected?(0,N.jsx)(p.span,{"aria-hidden":!0,...r,ref:t}):null});Tt.displayName=wt;var Et=`SelectScrollUpButton`,Dt=M.forwardRef((e,t)=>{let n=Q(Et,e.__scopeSelect),r=ut(Et,e.__scopeSelect),[i,o]=M.useState(!1),s=a(t,r.onScrollButtonChange);return c(()=>{if(n.viewport&&n.isPositioned){let e=function(){o(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,N.jsx)(At,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Dt.displayName=Et;var Ot=`SelectScrollDownButton`,kt=M.forwardRef((e,t)=>{let n=Q(Ot,e.__scopeSelect),r=ut(Ot,e.__scopeSelect),[i,o]=M.useState(!1),s=a(t,r.onScrollButtonChange);return c(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;o(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,N.jsx)(At,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});kt.displayName=Ot;var At=M.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Q(`SelectScrollButton`,n),o=M.useRef(null),s=Ne(n),l=M.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return M.useEffect(()=>()=>l(),[l]),c(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,N.jsx)(p.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:d(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:d(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:d(i.onPointerLeave,()=>{l()})})}),jt=`SelectSeparator`,Mt=M.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,N.jsx)(p.div,{"aria-hidden":!0,...r,ref:t})});Mt.displayName=jt;var Nt=`SelectArrow`,Pt=M.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=Ie(n);return Q(Nt,n).position===`popper`?(0,N.jsx)(ee,{...i,...r,ref:t}):null});Pt.displayName=Nt;var Ft=`SelectBubbleInput`,It=M.forwardRef(({__scopeSelect:e,...t},n)=>{let r=Y(Ft,e),{value:i,onValueChange:o,required:s,disabled:c,name:l,autoComplete:u,form:d}=r,{nativeOptions:f,nativeSelectKey:m}=r,h=M.useRef(null),g=a(n,h),_=i??``,v=x(_);return M.useEffect(()=>{let e=h.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==_&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,_),e.dispatchEvent(t)}},[v,_]),(0,N.jsxs)(p.select,{"aria-hidden":!0,required:s,tabIndex:-1,name:l,autoComplete:u,disabled:c,form:d,onChange:e=>o(e.target.value),...t,style:{...T,...t.style},ref:g,defaultValue:_,children:[Rt(i)?(0,N.jsx)(`option`,{value:``}):null,Array.from(f)]},m)});It.displayName=Ft;function Lt(e){return typeof e==`function`}function Rt(e){return e===``||e===void 0}function zt(e){let t=u(e),n=M.useRef(``),r=M.useRef(0),i=M.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=M.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return M.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function Bt(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Vt(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Vt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Ht({...e}){return(0,N.jsx)(He,{"data-slot":`select`,...e})}function Ut({className:e,...t}){return(0,N.jsx)(gt,{"data-slot":`select-group`,className:f(`scroll-my-1 p-1`,e),...t})}function Wt({...e}){return(0,N.jsx)(Ke,{"data-slot":`select-value`,...e})}function Gt({className:e,size:t=`default`,children:n,...r}){return(0,N.jsxs)(We,{"data-slot":`select-trigger`,"data-size":t,className:f(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,N.jsx)(Je,{asChild:!0,children:(0,N.jsx)(te,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function Kt({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,N.jsx)(Qe,{children:(0,N.jsxs)($e,{"data-slot":`select-content`,"data-align-trigger":n===`item-aligned`,className:f(`relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none 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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n===`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`,e),position:n,align:r,...i,children:[(0,N.jsx)(Jt,{}),(0,N.jsx)(ft,{"data-position":n,className:f(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,n===`popper`&&``),children:t}),(0,N.jsx)(Yt,{})]})})}function qt({className:e,children:t,...n}){return(0,N.jsxs)(St,{"data-slot":`select-item`,className:f(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground 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`,e),...n,children:[(0,N.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,N.jsx)(Tt,{children:(0,N.jsx)(j,{className:`pointer-events-none`})})}),(0,N.jsx)(Ct,{children:t})]})}function Jt({className:e,...t}){return(0,N.jsx)(Dt,{"data-slot":`select-scroll-up-button`,className:f(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,N.jsx)(ne,{})})}function Yt({className:e,...t}){return(0,N.jsx)(kt,{"data-slot":`select-scroll-down-button`,className:f(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,N.jsx)(te,{})})}function Xt({className:e,children:t,...n}){return(0,N.jsxs)(Ee,{"data-slot":`scroll-area`,className:f(`relative`,e),...n,children:[(0,N.jsx)(De,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`,children:t}),(0,N.jsx)(Zt,{}),(0,N.jsx)(Oe,{})]})}function Zt({className:e,orientation:t=`vertical`,...n}){return(0,N.jsx)(ie,{"data-slot":`scroll-area-scrollbar`,"data-orientation":t,orientation:t,className:f(`flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,e),...n,children:(0,N.jsx)(he,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}export{qt as a,Ut as i,Ht as n,Gt as o,Kt as r,Wt as s,Xt as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{g as e}from"./utils-ChkMmPzE.js";var t=e(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e,b as t,g as n,t as r,x as i,y as a}from"./utils-ChkMmPzE.js";import{i as o,n as s,o as c,r as l,t as u}from"./query-keys-CbbgiZx4.js";import{a as d,i as f,n as p,r as m}from"./use-library-Bh7Bunn1.js";import{a as h,i as g,n as _,o as v,r as y,s as b,t as x}from"./scroll-area-CyEO8R_G.js";import{t as S}from"./settings-2-8mnAuSax.js";import{n as C,r as w}from"./shell-context-Buw4m44t.js";import{g as T}from"./index-BHhqsr5H.js";var E=n(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),D=n(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),O=n(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),k=e(i(),1),A=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,j=(e=21)=>{let t=``,n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=A[n[e]&63];return t};function M(){return s(`/api/config`)}function N(e){return s(`/api/config`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}function P(){return c({queryKey:u.config,queryFn:M})}function F(){let e=a();return d({mutationFn:e=>N(e),onSuccess:t=>{e.setQueryData(u.config,t),e.invalidateQueries({queryKey:u.library})}})}var I=t();function L(e=``){return{id:j(),path:e}}function R(e){return e.length>0?e.map(e=>({...e})):[L()]}function z(e){return e.map(e=>({id:e.id,path:e.path.trim()})).filter(e=>e.path)}function B(e){let t=new Set;for(let n of e){let e=n.path.trim();if(e){if(t.has(e))return e;t.add(e)}}return null}function V(){let{scanning:e}=C(),{data:t,isPending:n,isError:i}=P(),a=F(),s=p(),[c,u]=(0,k.useState)([L()]),[d,A]=(0,k.useState)([L()]),[j,M]=(0,k.useState)(`ignore`);(0,k.useEffect)(()=>{t&&(u(R(t.novelDirectories)),A(R(t.comicDirectories)),M(t.gbkNovelHandling??`ignore`))},[t]),(0,k.useEffect)(()=>{i&&T.error(`加载设置失败`)},[i]);let N=(e,t,n)=>{(e===`novel`?u:A)(e=>e.map(e=>e.id===t?{...e,path:n}:e))},V=e=>{(e===`novel`?u:A)(e=>[...e,L()])},H=(e,t)=>{(e===`novel`?u:A)(e=>e.length===1?[L()]:e.filter(e=>e.id!==t))},U=()=>{let e=B(c);if(e){T.error(`小说目录存在重复路径:${e}`);return}let t=B(d);if(t){T.error(`漫画目录存在重复路径:${t}`);return}a.mutate({novelDirectories:z(c),comicDirectories:z(d),gbkNovelHandling:j},{onSuccess:()=>T.success(`设置已保存`),onError:()=>T.error(`保存设置失败`)})},W=()=>{s.mutate(void 0,{onSuccess:()=>T.success(`已开始重新扫描`),onError:()=>T.error(`重新扫描失败`)})},G=(e,t,n)=>(0,I.jsxs)(`section`,{className:`mb-4 rounded-[10px] border border-border bg-card px-5 py-4`,children:[(0,I.jsxs)(`div`,{className:`mb-3 flex items-center gap-2 text-sm font-semibold text-[#c2c2ca]`,children:[e===`novel`?(0,I.jsx)(f,{className:`size-4 text-indigo-500`}):(0,I.jsx)(m,{className:`size-4 text-indigo-500`}),t]}),(0,I.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map(t=>(0,I.jsxs)(`div`,{className:`flex gap-2`,children:[(0,I.jsx)(w,{value:t.path,onChange:n=>N(e,t.id,n.target.value),placeholder:`输入目录路径,如 D:/Books/Novels/`,className:`h-9 border-[#2a2a32] bg-[#141418] text-[13px] text-[#e2e2e8] placeholder:text-[#4a4a56] focus-visible:border-indigo-500`}),(0,I.jsx)(o,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:()=>H(e,t.id),"aria-label":`删除目录`,className:`shrink-0 text-[#6b6b78] hover:bg-[#2a2a32] hover:text-[#e2e2e8]`,children:(0,I.jsx)(O,{})})]},t.id))}),(0,I.jsxs)(o,{type:`button`,variant:`ghost`,size:`sm`,className:`mt-1 h-8 border border-dashed border-[#2a2a32] bg-transparent px-3 text-xs text-[#9f9fad] hover:border-indigo-500 hover:bg-transparent hover:text-[#d5d5dd]`,onClick:()=>V(e),children:[(0,I.jsx)(E,{"data-icon":`inline-start`}),`添加目录`]})]});return(0,I.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,I.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center gap-3 border-b px-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5 text-[15px] font-semibold text-[#e2e2e8]`,children:[(0,I.jsx)(S,{className:`size-4 text-indigo-500`}),`设置`]}),(0,I.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,I.jsxs)(o,{type:`button`,variant:`outline`,onClick:W,disabled:e||s.isPending||n,className:`h-9 border-[#2a2a32] bg-transparent px-[18px] text-[13px] font-medium text-[#c2c2ca] hover:bg-[#1e1e24] hover:text-[#e2e2e8]`,children:[(0,I.jsx)(D,{"data-icon":`inline-start`,className:r(e&&`animate-spin`)}),e?`扫描中...`:`重新扫描`]}),(0,I.jsx)(o,{type:`button`,onClick:U,disabled:a.isPending||n,className:`h-9 bg-indigo-500 px-[18px] text-[13px] font-medium text-white hover:bg-[#5558e0]`,children:a.isPending?`保存中...`:`保存设置`})]})]}),(0,I.jsx)(x,{className:`min-h-0 flex-1`,children:n?(0,I.jsxs)(`div`,{className:`flex flex-col gap-4 p-5`,children:[(0,I.jsx)(l,{className:`h-24 w-full`}),(0,I.jsx)(l,{className:`h-24 w-full`})]}):(0,I.jsxs)(`div`,{className:`px-5 pt-2 pb-5`,children:[G(`novel`,`小说目录`,c),(0,I.jsxs)(`section`,{className:`mb-4 rounded-[10px] border border-border bg-card px-5 py-4`,children:[(0,I.jsx)(`div`,{className:`mb-3 text-sm font-semibold text-[#c2c2ca]`,children:`GBK 编码小说`}),(0,I.jsxs)(_,{value:j,onValueChange:e=>M(e),children:[(0,I.jsx)(v,{size:`sm`,className:r(`h-9 min-w-[220px] border-[#2a2a32] bg-[#141418] text-[13px] text-[#e2e2e8]`),children:(0,I.jsx)(b,{})}),(0,I.jsx)(y,{children:(0,I.jsxs)(g,{children:[(0,I.jsx)(h,{value:`ignore`,children:`忽略(扫描时跳过 GBK 小说)`}),(0,I.jsx)(h,{value:`convert-to-utf-8`,children:`转为 UTF-8(扫描时转换并覆盖原文件)`})]})})]}),j===`convert-to-utf-8`?(0,I.jsx)(`p`,{className:`mt-2 text-xs text-[#6b6b78]`,children:`扫描时会将 GBK 小说转为 UTF-8 并覆盖磁盘上的原文件。`}):null]}),G(`comic`,`漫画目录`,d)]})})]})}function H(){return(0,I.jsx)(V,{})}export{H as component};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import{Y as e,b as t,h as n,r,t as i,u as a,x as o}from"./utils-ChkMmPzE.js";var s=e(o(),1),c=t(),l=`focusScope.autoFocusOnMount`,u=`focusScope.autoFocusOnUnmount`,d={bubbles:!1,cancelable:!0},f=`FocusScope`,p=s.forwardRef((e,t)=>{let{loop:i=!1,trapped:o=!1,onMountAutoFocus:f,onUnmountAutoFocus:p,..._}=e,[v,y]=s.useState(null),S=r(f),C=r(p),T=s.useRef(null),E=n(t,e=>y(e)),D=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(o){let e=function(e){if(D.paused||!v)return;let t=e.target;v.contains(t)?T.current=t:b(T.current,{select:!0})},t=function(e){if(D.paused||!v)return;let t=e.relatedTarget;t!==null&&(v.contains(t)||b(T.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&b(v)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return v&&r.observe(v,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[o,v,D.paused]),s.useEffect(()=>{if(v){x.add(D);let e=document.activeElement;if(!v.contains(e)){let t=new CustomEvent(l,d);v.addEventListener(l,S),v.dispatchEvent(t),t.defaultPrevented||(m(w(g(v)),{select:!0}),document.activeElement===e&&b(v))}return()=>{v.removeEventListener(l,S),setTimeout(()=>{let t=new CustomEvent(u,d);v.addEventListener(u,C),v.dispatchEvent(t),t.defaultPrevented||b(e??document.body,{select:!0}),v.removeEventListener(u,C),x.remove(D)},0)}}},[v,S,C,D]);let O=s.useCallback(e=>{if(!i&&!o||D.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){let t=e.currentTarget,[r,a]=h(t);r&&a?!e.shiftKey&&n===a?(e.preventDefault(),i&&b(r,{select:!0})):e.shiftKey&&n===r&&(e.preventDefault(),i&&b(a,{select:!0})):n===t&&e.preventDefault()}},[i,o,D.paused]);return(0,c.jsx)(a.div,{tabIndex:-1,..._,ref:E,onKeyDown:O})});p.displayName=f;function m(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(b(r,{select:t}),document.activeElement!==n)return}function h(e){let t=g(e);return[_(t,e),_(t.reverse(),e)]}function g(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function _(e,t){for(let n of e)if(!v(n,{upTo:t}))return n}function v(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function y(e){return e instanceof HTMLInputElement&&`select`in e}function b(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&y(e)&&t&&e.select()}}var x=S();function S(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=C(e,t),e.unshift(t)},remove(t){e=C(e,t),e[0]?.resume()}}}function C(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function w(e){return e.filter(e=>e.tagName!==`A`)}var T=0,E=null;function D(){s.useEffect(()=>{E||={start:O(),end:O()};let{start:e,end:t}=E;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),T++,()=>{T===1&&(E?.start.remove(),E?.end.remove(),E=null),T=Math.max(0,T-1)}},[])}function O(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var k=function(){return k=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},k.apply(this,arguments)};function A(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function ee(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var j=`right-scroll-bar-position`,M=`width-before-scroll-bar`,te=`with-scroll-bars-hidden`,ne=`--removed-body-scroll-bar-size`;function N(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function re(e,t){var n=(0,s.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var ie=typeof window<`u`?s.useLayoutEffect:s.useEffect,P=new WeakMap;function ae(e,t){var n=re(t||null,function(t){return e.forEach(function(e){return N(e,t)})});return ie(function(){var t=P.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||N(e,null)}),i.forEach(function(e){r.has(e)||N(e,a)})}P.set(n,e)},[e]),n}function oe(e){return e}function se(e,t){t===void 0&&(t=oe);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function ce(e){e===void 0&&(e={});var t=se(null);return t.options=k({async:!0,ssr:!1},e),t}var le=function(e){var t=e.sideCar,n=A(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return s.createElement(r,k({},n))};le.isSideCarExport=!0;function ue(e,t){return e.useMedium(t),le}var de=ce(),F=function(){},I=s.forwardRef(function(e,t){var n=s.useRef(null),r=s.useState({onScrollCapture:F,onWheelCapture:F,onTouchMoveCapture:F}),i=r[0],a=r[1],o=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,p=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=A(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=p,C=ae([n,t]),w=k(k({},x),i);return s.createElement(s.Fragment,null,d&&s.createElement(S,{sideCar:de,removeScrollBar:u,shards:f,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),o?s.cloneElement(s.Children.only(c),k(k({},w),{ref:C})):s.createElement(y,k({},w,{className:l,ref:C}),c))});I.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},I.classNames={fullWidth:M,zeroRight:j};var L,fe=function(){if(L)return L;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function pe(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=fe();return t&&e.setAttribute(`nonce`,t),e}function me(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function he(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var ge=function(){var e=0,t=null;return{add:function(n){e==0&&(t=pe())&&(me(t,n),he(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},_e=function(){var e=ge();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},R=function(){var e=_e();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},ve={left:0,top:0,right:0,gap:0},z=function(e){return parseInt(e||``,10)||0},ye=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[z(n),z(r),z(i)]},be=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return ve;var t=ye(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},xe=R(),B=`data-scroll-locked`,Se=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
2
|
+
.${te} {
|
|
3
|
+
overflow: hidden ${r};
|
|
4
|
+
padding-right: ${s}px ${r};
|
|
5
|
+
}
|
|
6
|
+
body[${B}] {
|
|
7
|
+
overflow: hidden ${r};
|
|
8
|
+
overscroll-behavior: contain;
|
|
9
|
+
${[t&&`position: relative ${r};`,n===`margin`&&`
|
|
10
|
+
padding-left: ${i}px;
|
|
11
|
+
padding-top: ${a}px;
|
|
12
|
+
padding-right: ${o}px;
|
|
13
|
+
margin-left:0;
|
|
14
|
+
margin-top:0;
|
|
15
|
+
margin-right: ${s}px ${r};
|
|
16
|
+
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.${j} {
|
|
20
|
+
right: ${s}px ${r};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.${M} {
|
|
24
|
+
margin-right: ${s}px ${r};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.${j} .${j} {
|
|
28
|
+
right: 0 ${r};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.${M} .${M} {
|
|
32
|
+
margin-right: 0 ${r};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
body[${B}] {
|
|
36
|
+
${ne}: ${s}px;
|
|
37
|
+
}
|
|
38
|
+
`},V=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},Ce=function(){s.useEffect(function(){return document.body.setAttribute(B,(V()+1).toString()),function(){var e=V()-1;e<=0?document.body.removeAttribute(B):document.body.setAttribute(B,e.toString())}},[])},we=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;Ce();var a=s.useMemo(function(){return be(i)},[i]);return s.createElement(xe,{styles:Se(a,!t,i,n?``:`!important`)})},H=!1;if(typeof window<`u`)try{var U=Object.defineProperty({},"passive",{get:function(){return H=!0,!0}});window.addEventListener(`test`,U,U),window.removeEventListener(`test`,U,U)}catch{H=!1}var W=H?{passive:!1}:!1,Te=function(e){return e.tagName===`TEXTAREA`},G=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Te(e)&&n[t]===`visible`)},Ee=function(e){return G(e,`overflowY`)},De=function(e){return G(e,`overflowX`)},Oe=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),je(e,r)){var i=Me(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},ke=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Ae=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},je=function(e,t){return e===`v`?Ee(t):De(t)},Me=function(e,t){return e===`v`?ke(t):Ae(t)},Ne=function(e,t){return e===`h`&&t===`rtl`?-1:1},Pe=function(e,t,n,r,i){var a=Ne(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Me(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&je(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},K=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Fe=function(e){return[e.deltaX,e.deltaY]},Ie=function(e){return e&&`current`in e?e.current:e},Le=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Re=function(e){return`
|
|
39
|
+
.block-interactivity-${e} {pointer-events: none;}
|
|
40
|
+
.allow-interactivity-${e} {pointer-events: all;}
|
|
41
|
+
`},ze=0,q=[];function Be(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),i=s.useState(ze++)[0],a=s.useState(R)[0],o=s.useRef(e);s.useEffect(function(){o.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=ee([e.lockRef.current],(e.shards||[]).map(Ie),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var c=s.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=K(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Oe(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Oe(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Pe(h,t,e,h===`h`?s:c,!0)},[]),l=s.useCallback(function(e){var n=e;if(!(!q.length||q[q.length-1]!==a)){var r=`deltaY`in n?Fe(n):K(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Le(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var s=(o.current.shards||[]).map(Ie).filter(Boolean).filter(function(e){return e.contains(n.target)});(s.length>0?c(n,s[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),u=s.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Ve(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=s.useCallback(function(e){n.current=K(e),r.current=void 0},[]),f=s.useCallback(function(t){u(t.type,Fe(t),t.target,c(t,e.lockRef.current))},[]),p=s.useCallback(function(t){u(t.type,K(t),t.target,c(t,e.lockRef.current))},[]);s.useEffect(function(){return q.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener(`wheel`,l,W),document.addEventListener(`touchmove`,l,W),document.addEventListener(`touchstart`,d,W),function(){q=q.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,l,W),document.removeEventListener(`touchmove`,l,W),document.removeEventListener(`touchstart`,d,W)}},[]);var m=e.removeScrollBar,h=e.inert;return s.createElement(s.Fragment,null,h?s.createElement(a,{styles:Re(i)}):null,m?s.createElement(we,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Ve(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var He=ue(de,Be),J=s.forwardRef(function(e,t){return s.createElement(I,k({},e,{ref:t,sideCar:He}))});J.classNames=I.classNames;var Ue=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Y=new WeakMap,X=new WeakMap,Z={},Q=0,We=function(e){return e&&(e.host||We(e.parentNode))},Ge=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=We(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Ke=function(e,t,n,r){var i=Ge(t,Array.isArray(e)?e:[e]);Z[n]||(Z[n]=new WeakMap);var a=Z[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Y.get(e)||0)+1,l=(a.get(e)||0)+1;Y.set(e,c),a.set(e,l),o.push(e),c===1&&i&&X.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Q++,function(){o.forEach(function(e){var t=Y.get(e)-1,i=a.get(e)-1;Y.set(e,t),a.set(e,i),t||(X.has(e)||e.removeAttribute(r),X.delete(e)),i||e.removeAttribute(n)}),Q--,Q||(Y=new WeakMap,Y=new WeakMap,X=new WeakMap,Z={})}},qe=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Ue(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Ke(r,i,n,`aria-hidden`)):function(){return null}};function Je({className:e,type:t,...n}){return(0,c.jsx)(`input`,{type:t,"data-slot":`input`,className:i(`h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,e),...n})}var $=(0,s.createContext)(null);function Ye({value:e,children:t}){return(0,c.jsx)($.Provider,{value:e,children:t})}function Xe(){let e=(0,s.useContext)($);if(!e)throw Error(`useShellContext must be used within ShellProvider`);return e}export{J as a,qe as i,Xe as n,D as o,Je as r,p as s,Ye as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e,H as t,I as n,V as r,Y as i,g as a,j as o,q as s,x as c,y as l}from"./utils-ChkMmPzE.js";import{o as u,t as d}from"./query-keys-CbbgiZx4.js";import{n as f}from"./mutation-ChAIwNv3.js";import{r as p,t as m}from"./library-D_1sil_O.js";var h=class extends s{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),r(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&o(t.mutationKey)!==o(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??f();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(t){e.batch(()=>{if(this.#r&&this.hasListeners()){let e=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type===`success`){try{this.#r.onSuccess?.(t.data,e,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(t.data,null,e,n,r)}catch(e){Promise.reject(e)}}else if(t?.type===`error`){try{this.#r.onError?.(t.error,e,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,t.error,e,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},g=i(c(),1);function _(r,i){let a=l(i),[o]=g.useState(()=>new h(a,r));g.useEffect(()=>{o.setOptions(r)},[o,r]);let s=g.useSyncExternalStore(g.useCallback(t=>o.subscribe(e.batchCalls(t)),[o]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),c=g.useCallback((e,t)=>{o.mutate(e,t).catch(n)},[o]);if(s.error&&t(o.options.throwOnError,[s.error]))throw s.error;return{...s,mutate:c,mutateAsync:s.mutate}}var v=a(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),y=a(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]);function b(){let e=u({queryKey:d.library,queryFn:m,refetchInterval:e=>e.state.data?.scanning?1500:!1});return{state:e.data??null,error:e.error?e.error instanceof Error?e.error.message:`Failed to load library`:null,loading:e.isPending,refresh:async()=>{await e.refetch()}}}function x(){let e=l();return _({mutationFn:p,onSuccess:()=>{e.invalidateQueries({queryKey:d.library})}})}export{_ as a,v as i,x as n,y as r,b as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Y as e,x as t}from"./utils-ChkMmPzE.js";var n=e(t(),1),r=n.use,i=typeof window<`u`?n.useLayoutEffect:n.useEffect;function a(e){let t=n.useRef({value:e,prev:null}),r=t.current.value;return e!==r&&(t.current={value:e,prev:r}),t.current.prev}function o(e,t,r={},i={}){n.useEffect(()=>{if(!e.current||i.disabled||typeof IntersectionObserver!=`function`)return;let n=new IntersectionObserver(([e])=>{t(e)},r);return n.observe(e.current),()=>{n.disconnect()}},[t,r,i.disabled,e])}function s(e){let t=n.useRef(null);return n.useImperativeHandle(e,()=>t.current,[]),t}var c=n.createContext(null);function l(e){return n.useContext(c)}function u(e){let t=l();return n.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}export{s as a,a as c,r as i,l as n,o,c as r,i as s,u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as e,x as t}from"./utils-ChkMmPzE.js";import{n}from"./useNavigate-B29ssGbr.js";import{b as r,x as i}from"./index-BHhqsr5H.js";var a=e(t(),1);function o(e){let t=n({warn:e?.router===void 0}),o=e?.router||t,s=(0,a.useRef)(void 0);return r(o.stores.__store,t=>{if(e?.select){if(e.structuralSharing??o.options.defaultStructuralSharing){let n=i(s.current,e.select(t));return s.current=n,n}return e.select(t)}return t})}export{o as t};
|