@coffer-org/web 5.0.0 → 6.0.0
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/dist/assets/ChatWidget-qpAe26bF.js +31 -0
- package/dist/assets/{DiagnosticsPage-D_AO8VVI.js → DiagnosticsPage-7qim0xtf.js} +1 -1
- package/dist/assets/{NewRecordView-DUZMiN50.js → NewRecordView-X6Bro17s.js} +1 -1
- package/dist/assets/{PluginSettingsPage-OR2USDcf.js → PluginSettingsPage-C3iGqJEb.js} +1 -1
- package/dist/assets/ScanSummary-xKGEaOS0.js +1 -0
- package/dist/assets/{SettingsForm-BZrcG7PG.js → SettingsForm-BAjKJ1MR.js} +1 -1
- package/dist/assets/SettingsPage-DbAk9URh.js +3 -0
- package/dist/assets/{ThemeSwitcher-CCakzR9t.js → ThemeSwitcher-CADoC9xw.js} +1 -1
- package/dist/assets/{data-size-BzMyF1we.js → data-size-oPRYOwnj.js} +1 -1
- package/dist/assets/{extend-u4UeeES5.js → extend-BTkr7oJ8.js} +1 -1
- package/dist/assets/{fields-DMchbbOm.js → fields-BtCN_frr.js} +1 -1
- package/dist/assets/index-CHlM3CU9.js +28 -0
- package/dist/assets/index-KdG4mu3z.css +2 -0
- package/dist/assets/{list-cache-DpFBka0W.js → list-cache-D1eUf-Pp.js} +1 -1
- package/dist/assets/settings-BfEurOH1.js +1 -0
- package/dist/assets/{shelf-DmAuGkTS.js → shelf-CRUDKiTz.js} +1 -1
- package/dist/assets/{showcase-DwzheZMA.js → showcase-Boajqdx8.js} +1 -1
- package/dist/assets/src-54Qdjl2W.js +4 -0
- package/dist/assets/src-6lNAeDcP.js +1 -0
- package/dist/assets/{src-vXu15Im-.js → src-B3nX_MMy.js} +1 -1
- package/dist/assets/src-BRzAjJX_.js +6 -0
- package/dist/assets/{src-lX-LLjmo.js → src-BTv3nocd.js} +1 -1
- package/dist/assets/{src-Bay9M7eI.js → src-BYHuqMQ7.js} +4 -4
- package/dist/assets/src-B_YWtyQn.js +4 -0
- package/dist/assets/{src-Cmv7hauh.js → src-BiJuengh.js} +1 -1
- package/dist/assets/{src-Celn4l3M2.js → src-BinvE9sd2.js} +1 -1
- package/dist/assets/src-Br4oAdCy.js +1 -0
- package/dist/assets/{src-CLp6CaAC.js → src-C-Xmuyui.js} +1 -1
- package/dist/assets/{src-DSS8nZOn2.js → src-C4BNu6EC.js} +1 -1
- package/dist/assets/{src-aKeR5FZD.js → src-CFcpeTQ5.js} +1 -1
- package/dist/assets/src-CO3npa8j.js +1 -0
- package/dist/assets/src-CYiAjCO3.js +1 -0
- package/dist/assets/src-Cr_oHzOc.js +1 -0
- package/dist/assets/{src-CcepgUty.js → src-CustHESR.js} +1 -1
- package/dist/assets/src-CzmJIKcf.js +1 -0
- package/dist/assets/{src-BgUirxhE.js → src-DVO-Ghnz.js} +1 -1
- package/dist/assets/{src-M--RK4iO.js → src-DWgNUcSX2.js} +1 -1
- package/dist/assets/{src-Ci3LBUkd.js → src-DiE6pP9S.js} +1 -1
- package/dist/assets/{src-B-LFXYq3.js → src-DsNlLMpF.js} +1 -1
- package/dist/assets/{src-BD5Jx1R6.js → src-Ys25cnOv.js} +1 -1
- package/dist/assets/{ui-hoL_b3fm.js → ui-BgqTuhxj2.js} +2 -2
- package/dist/assets/{ui-BgMkXxiS.js → ui-CImMNxCk.js} +2 -2
- package/dist/assets/{ui-DtrkuhyS.js → ui-Cy5oShj4.js} +1 -1
- package/dist/index.html +9 -9
- package/dist-vendor/web-ui.js +9982 -9814
- package/package.json +1 -1
- package/dist/assets/ChatWidget-BLbWUv1t.js +0 -31
- package/dist/assets/NoMac-BazkVXEy.js +0 -1
- package/dist/assets/ScanSummary-B8hGwTtd.js +0 -1
- package/dist/assets/SettingsPage-wZH0coJv.js +0 -3
- package/dist/assets/index-B5P0VtoK.css +0 -2
- package/dist/assets/index-DSKrqebU.js +0 -28
- package/dist/assets/settings-mXXsgRiF.js +0 -1
- package/dist/assets/src-B3cKJlPg.js +0 -6
- package/dist/assets/src-B5S006_b.js +0 -1
- package/dist/assets/src-Bal28z0o.js +0 -1
- package/dist/assets/src-Bayfjx1G.js +0 -1
- package/dist/assets/src-BbLDg7Jt.js +0 -1
- package/dist/assets/src-CNJybBpP.js +0 -4
- package/dist/assets/src-Cqe2vlJJ.js +0 -1
- package/dist/assets/src-Dz7A3kLJ.js +0 -4
- package/dist/assets/src-ziyxxA8g.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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-content:"";--tw-divide-x-reverse:0;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", sans-serif;--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, 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-red-600:oklch(57.7% .245 27.325);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:6px;--radius-xl:16px;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", sans-serif;--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-surface:var(--surface);--color-elevated:var(--elevated);--color-border:var(--border);--color-border2:var(--border2);--color-text:var(--text);--color-muted:var(--muted);--color-accent:var(--accent);--color-danger:var(--danger);--radius-full:9999px;--breakpoint-panel:1000px;--breakpoint-list:640px}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}h1,h2,h3,h4{line-height:1.2}a:focus-visible,button:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{background:var(--color-bg);border:1px solid var(--color-border2);border-radius:var(--radius-sm);color:var(--color-text);outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab, red, red)){input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}}input::placeholder,textarea::placeholder{color:var(--color-muted)}input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--color-accent)}input[type=search]{appearance:none}input[type=search]::-webkit-search-cancel-button{appearance:none}input[type=search]::-webkit-search-decoration{appearance:none}textarea{resize:vertical;min-height:80px}select option{background:var(--color-elevated)}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-x-px{inset-inline:1px}.inset-y-0{inset-block:0}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[0\.15em\]{top:.15em}.top-\[52px\]{top:52px}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-full{bottom:100%}.bottom-px{bottom:1px}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-\[5px\]{left:5px}.left-full{left:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[10\]{z-index:10}.z-\[45\]{z-index:45}.z-\[60\]{z-index:60}.z-\[100\]{z-index:100}.z-\[\<n\>\]{z-index:<n>}.order-first{order:-9999}.order-last{order:9999}.col-span-6{grid-column:span 6/span 6}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.row-start-1{grid-row-start:1}.clear-both{clear:both}.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1000px){.container{max-width:1000px}}@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}}.m-0{margin:0}.m-1{margin:var(--spacing)}.m-auto{margin:auto}.-mx-0\.5{margin-inline:calc(var(--spacing) * -.5)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mr-1{margin-right:var(--spacing)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-px{margin-bottom:1px}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-2\.5{margin-left:calc(var(--spacing) * -2.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.scrollbar-none{scrollbar-width:none}.scrollbar-none::-webkit-scrollbar{display:none}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-\[2\/3\]{aspect-ratio:2/3}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.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-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.h-\(--cell-size\){height:var(--cell-size)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-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-28{height:calc(var(--spacing) * 28)}.h-36{height:calc(var(--spacing) * 36)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-56{height:calc(var(--spacing) * 56)}.h-64{height:calc(var(--spacing) * 64)}.h-72{height:calc(var(--spacing) * 72)}.h-96{height:calc(var(--spacing) * 96)}.h-\[12\.5rem\]{height:12.5rem}.h-\[18\.5rem\]{height:18.5rem}.h-\[52px\]{height:52px}.h-\[60dvh\]{height:60dvh}.h-\[85dvh\]{height:85dvh}.h-\[88dvh\]{height:88dvh}.h-\[200px\]{height:200px}.h-\[560px\]{height:560px}.h-\[calc\(--spacing\(5\.5\)\)\]{height:calc(calc(var(--spacing) * 5.5))}.h-\[calc\(100dvh-52px\)\]{height:calc(100dvh - 52px)}.h-\[calc\(100dvh-140px\)\]{height:calc(100dvh - 140px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-auto\!{height:auto!important}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80dvh\]{max-height:80dvh}.max-h-\[88dvh\]{max-height:88dvh}.max-h-\[90dvh\]{max-height:90dvh}.max-h-\[92dvh\]{max-height:92dvh}.max-h-\[200px\]{max-height:200px}.max-h-\[min\(calc\(--spacing\(96\)---spacing\(9\)\)\,calc\(var\(--available-height\)---spacing\(9\)\)\)\]{max-height:min(calc(calc(var(--spacing) * 96) - calc(var(--spacing) * 9)), calc(var(--available-height) - calc(var(--spacing) * 9)))}.max-h-\[min\(var\(--available-height\)\,24rem\)\]{max-height:min(var(--available-height), 24rem)}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-20{min-height:calc(var(--spacing) * 20)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-48{min-height:calc(var(--spacing) * 48)}.min-h-dvh{min-height:100dvh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-\(--cell-size\){width:var(--cell-size)}.w-\(--radix-popover-trigger-width\){width:var(--radix-popover-trigger-width)}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-\[5\.25rem\]{width:5.25rem}.w-\[12\.5rem\]{width:12.5rem}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[380px\]{width:380px}.w-\[min\(32rem\,calc\(100vw-2rem\)\)\]{width:min(32rem,100vw - 2rem)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-xs{width:var(--container-xs)}.max-w-\(--available-width\){max-width:var(--available-width)}.max-w-\(--radix-popover-trigger-width\){max-width:var(--radix-popover-trigger-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[45vw\]{max-width:45vw}.max-w-\[65ch\]{max-width:65ch}.max-w-\[85\%\]{max-width:85%}.max-w-\[92vw\]{max-width:92vw}.max-w-\[95\%\]{max-width:95%}.max-w-\[280px\]{max-width:280px}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(16rem\,100\%\)\]{max-width:min(16rem,100%)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-0{min-width:0}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-\[3rem\]{min-width:3rem}.min-w-\[34rem\]{min-width:34rem}.min-w-\[90px\]{min-width:90px}.min-w-\[140px\]{min-width:140px}.min-w-\[calc\(var\(--anchor-width\)\+--spacing\(7\)\)\]{min-width:calc(var(--anchor-width) + calc(var(--spacing) * 7))}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.border-spacing-1{--tw-border-spacing-x:var(--spacing);--tw-border-spacing-y:var(--spacing);border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-zoom-in{cursor:zoom-in}.touch-manipulation{touch-action:manipulation}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.scroll-py-1{scroll-padding-block:var(--spacing)}.scroll-pt-2{scroll-padding-top:calc(var(--spacing) * 2)}.scroll-pb-2{scroll-padding-bottom:calc(var(--spacing) * 2)}.\[scrollbar-width\:none\],.scrollbar-none{scrollbar-width:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.auto-cols-\[1rem\]{grid-auto-columns:1rem}.grid-flow-col{grid-auto-flow:column}.auto-rows-auto{grid-auto-rows:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[1fr_auto_auto\]{grid-template-columns:1fr auto auto}.grid-cols-\[110px_1fr\]{grid-template-columns:110px 1fr}.grid-cols-\[repeat\(7\,minmax\(2\.25rem\,1fr\)\)\]{grid-template-columns:repeat(7,minmax(2.25rem,1fr))}.grid-rows-7{grid-template-rows:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:var(--spacing)}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-3\.5{row-gap:calc(var(--spacing) * 3.5)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-dashed>:not(:last-child)){--tw-border-style:dashed;border-style:dashed}:where(.divide-border>:not(:last-child)),:where(.divide-border\/30>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/30>:not(:last-child)){border-color:color-mix(in oklab, var(--border) 30%, transparent)}}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.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}.overscroll-contain{overscroll-behavior:contain}.overscroll-x-contain{overscroll-behavior-x:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[3px\]{border-radius:3px}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-md{border-radius:8px}.rounded-none{border-radius:0}.rounded-sm{border-radius:6px}.rounded-xl{border-radius:16px}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-xl{border-top-left-radius:16px;border-top-right-radius:16px}.rounded-l-md{border-top-left-radius:8px;border-bottom-left-radius:8px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-md{border-top-right-radius:8px;border-bottom-right-radius:8px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-r-xl{border-top-right-radius:16px;border-bottom-right-radius:16px}.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-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[6px\]{border-left-style:var(--tw-border-style);border-left-width:6px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-accent,.border-accent\/30{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.border-accent\/40{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-accent\/40{border-color:color-mix(in oklab, var(--accent) 40%, transparent)}}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab, var(--border) 40%, transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border) 60%, transparent)}}.border-border\/80{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/80{border-color:color-mix(in oklab, var(--border) 80%, transparent)}}.border-border2{border-color:var(--border2)}.border-current\/30{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/30{border-color:color-mix(in oklab, currentcolor 30%, transparent)}}.border-danger,.border-danger\/30{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/30{border-color:color-mix(in oklab, var(--danger) 30%, transparent)}}.border-danger\/40{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/40{border-color:color-mix(in oklab, var(--danger) 40%, transparent)}}.border-danger\/60{border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.border-danger\/60{border-color:color-mix(in oklab, var(--danger) 60%, transparent)}}.border-destructive{border-color:var(--danger)}.border-input{border-color:var(--border)}.border-text{border-color:var(--text)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--warning)}.border-t-current{border-top-color:currentColor}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-accent,.bg-accent\/5{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/5{background-color:color-mix(in oklab, var(--accent) 5%, transparent)}}.bg-accent\/10{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.bg-accent\/15{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/15{background-color:color-mix(in oklab, var(--accent) 15%, transparent)}}.bg-accent\/20{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/20{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.bg-background,.bg-bg,.bg-bg\/60{background-color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.bg-bg\/60{background-color:color-mix(in oklab, var(--bg) 60%, transparent)}}.bg-bg\/70{background-color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.bg-bg\/70{background-color:color-mix(in oklab, var(--bg) 70%, transparent)}}.bg-bg\/85{background-color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.bg-bg\/85{background-color:color-mix(in oklab, var(--bg) 85%, transparent)}}.bg-bg\/95{background-color:var(--bg)}@supports (color:color-mix(in lab, red, red)){.bg-bg\/95{background-color:color-mix(in oklab, var(--bg) 95%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\/55{background-color:color-mix(in oklab, var(--color-black) 55%, 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-black\/65{background-color:#000000a6}@supports (color:color-mix(in lab, red, red)){.bg-black\/65{background-color:color-mix(in oklab, var(--color-black) 65%, transparent)}}.bg-black\/85{background-color:#000000d9}@supports (color:color-mix(in lab, red, red)){.bg-black\/85{background-color:color-mix(in oklab, var(--color-black) 85%, transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/20{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-card\/20{background-color:color-mix(in oklab, var(--surface) 20%, transparent)}}.bg-danger,.bg-danger\/10{background-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.bg-danger\/10{background-color:color-mix(in oklab, var(--danger) 10%, transparent)}}.bg-destructive{background-color:var(--danger)}.bg-elevated{background-color:var(--elevated)}.bg-muted,.bg-muted\/5{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/5{background-color:color-mix(in oklab, var(--muted) 5%, transparent)}}.bg-muted\/10{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/10{background-color:color-mix(in oklab, var(--muted) 10%, transparent)}}.bg-muted\/15{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/15{background-color:color-mix(in oklab, var(--muted) 15%, transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/40{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.bg-popover{background-color:var(--surface)}.bg-primary{background-color:var(--accent)}.bg-secondary{background-color:var(--elevated)}.bg-surface,.bg-surface\/40{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/40{background-color:color-mix(in oklab, var(--surface) 40%, transparent)}}.bg-surface\/80{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/80{background-color:color-mix(in oklab, var(--surface) 80%, transparent)}}.bg-surface\/95{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/95{background-color:color-mix(in oklab, var(--surface) 95%, transparent)}}.bg-transparent{background-color:#0000}.bg-warning\/10{background-color:var(--warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--warning) 10%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-clip-padding{background-clip:padding-box}.fill-current{fill:currentColor}.fill-yellow-400{fill:var(--color-yellow-400)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-px{padding:1px}.px-\(--cell-size\){padding-inline:var(--cell-size)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-20{padding-inline:calc(var(--spacing) * 20)}.py-0{padding-block:0}.py-0\!{padding-block:0!important}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[10vh\]{padding-top:10vh}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pr-24{padding-right:calc(var(--spacing) * 24)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-20{padding-bottom:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[28px\]{font-size:28px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--accent)}.text-accent-foreground{color:var(--on-accent)}.text-amber-600{color:var(--color-amber-600)}.text-border{color:var(--border)}.text-card-foreground{color:var(--text)}.text-current{color:currentColor}.text-danger,.text-destructive{color:var(--danger)}.text-destructive-foreground{color:var(--on-danger)}.text-foreground,.text-foreground\/50{color:var(--text)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/50{color:color-mix(in oklab, var(--text) 50%, transparent)}}.text-foreground\/80{color:var(--text)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--text) 80%, transparent)}}.text-muted,.text-muted-foreground,.text-muted\/40{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.text-muted\/40{color:color-mix(in oklab, var(--muted) 40%, transparent)}}.text-muted\/50{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.text-muted\/50{color:color-mix(in oklab, var(--muted) 50%, transparent)}}.text-muted\/70{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.text-muted\/70{color:color-mix(in oklab, var(--muted) 70%, transparent)}}.text-popover-foreground{color:var(--text)}.text-primary{color:var(--accent)}.text-primary-foreground{color:var(--on-accent)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground,.text-text,.text-text\/80{color:var(--text)}@supports (color:color-mix(in lab, red, red)){.text-text\/80{color:color-mix(in oklab, var(--text) 80%, transparent)}}.text-text\/90{color:var(--text)}@supports (color:color-mix(in lab, red, red)){.text-text\/90{color:color-mix(in oklab, var(--text) 90%, transparent)}}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xs{--tw-shadow:0 1px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_-16px_40px_-12px_rgba\(0\,0\,0\,0\.75\)\]{--tw-shadow:0 -16px 40px -12px var(--tw-shadow-color,#000000bf);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--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-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0\!{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.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-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-accent2{--tw-ring-color:var(--accent2)}.ring-destructive\/20{--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.ring-destructive\/20{--tw-ring-color:color-mix(in oklab, var(--danger) 20%, transparent)}}.ring-foreground\/10{--tw-ring-color:var(--text)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--text) 10%, transparent)}}.ring-ring{--tw-ring-color:var(--accent)}.ring-surface{--tw-ring-color:var(--surface)}.ring-offset-background{--tw-ring-offset-color:var(--bg)}.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}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.invert{--tw-invert:invert(100%);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,)}.sepia{--tw-sepia:sepia(100%);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,)}.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{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[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-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.outline-none{--tw-outline-style:none;outline-style:none}.outline-none\!{--tw-outline-style:none!important;outline-style:none!important}.select-none{-webkit-user-select:none;user-select:none}.\[--cell-size\:--spacing\(8\)\]{--cell-size:calc(var(--spacing) * 8)}.\[clip-path\:polygon\(50\%_100\%\,0_0\,100\%_0\)\]{clip-path:polygon(50% 100%,0 0,100% 0)}.running{animation-play-state:running}.not-last\:border-r:not(:last-child){border-right-style:var(--tw-border-style);border-right-width:1px}@media (hover:hover){.group-hover\:text-accent:is(:where(.group):hover *){color:var(--accent)}.group-hover\:text-text:is(:where(.group):hover *){color:var(--text)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/field\:opacity-100:is(:where(.group\/field):hover *),.group-hover\/group\:opacity-100:is(:where(.group\/group):hover *),.group-hover\/group2\:opacity-100:is(:where(.group\/group2):hover *),.group-hover\/group3\:opacity-100:is(:where(.group\/group3):hover *),.group-hover\/group4\:opacity-100:is(:where(.group\/group4):hover *){opacity:1}}.group-has-data-\[slot\=combobox-clear\]\/input-group\:hidden:is(:where(.group\/input-group):has([data-slot=combobox-clear]) *){display:none}.group-has-\[\>input\]\/input-group\:pt-2\.5:is(:where(.group\/input-group):has(>input) *){padding-top:calc(var(--spacing) * 2.5)}.group-has-\[\>input\]\/input-group\:pb-2\.5:is(:where(.group\/input-group):has(>input) *){padding-bottom:calc(var(--spacing) * 2.5)}.group-data-empty\/combobox-content\:flex:is(:where(.group\/combobox-content)[data-empty] *){display:flex}.group-data-\[disabled\=true\]\/input-group\:opacity-50:is(:where(.group\/input-group)[data-disabled=true] *){opacity:.5}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--accent)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=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)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.first-letter\:float-left:first-letter{float:left}.first-letter\:mr-2:first-letter{margin-right:calc(var(--spacing) * 2)}.first-letter\:text-5xl:first-letter{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.first-letter\:leading-\[0\.8\]:first-letter{--tw-leading:.8;line-height:.8}.first-letter\:font-bold:first-letter{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.selection\:bg-primary ::selection{background-color:var(--accent)}.selection\:bg-primary::selection{background-color:var(--accent)}.selection\:text-primary-foreground ::selection{color:var(--on-accent)}.selection\:text-primary-foreground::selection{color:var(--on-accent)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--text)}.placeholder\:text-muted::placeholder,.placeholder\:text-muted-foreground::placeholder,.placeholder\:text-muted\/40::placeholder{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-muted\/40::placeholder{color:color-mix(in oklab, var(--muted) 40%, transparent)}}.before\:mr-1:before{content:var(--tw-content);margin-right:var(--spacing)}.before\:mr-2:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 2)}.before\:text-muted:before{content:var(--tw-content);color:var(--muted)}.before\:content-\[\'·\'\]:before{--tw-content:"·";content:var(--tw-content)}.before\:content-\[\'—\'\]:before{--tw-content:"—";content:var(--tw-content)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:border-accent:focus-within,.focus-within\:border-ring:focus-within{border-color:var(--accent)}.focus-within\:ring-\[3px\]:focus-within{--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-within\:ring-ring\/50:focus-within{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}@media (hover:hover){.hover\:border-accent:hover,.hover\:border-accent\/60:hover{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/60:hover{border-color:color-mix(in oklab, var(--accent) 60%, transparent)}}.hover\:border-border2:hover{border-color:var(--border2)}.hover\:border-danger:hover,.hover\:border-destructive:hover{border-color:var(--danger)}.hover\:bg-accent:hover,.hover\:bg-accent\/10:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/10:hover{background-color:color-mix(in oklab, var(--accent) 10%, transparent)}}.hover\:bg-accent\/20:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab, var(--accent) 30%, transparent)}}.hover\:bg-accent2:hover{background-color:var(--accent2)}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.hover\:bg-border:hover{background-color:var(--border)}.hover\:bg-danger\/10:hover{background-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/10:hover{background-color:color-mix(in oklab, var(--danger) 10%, transparent)}}.hover\:bg-destructive:hover{background-color:var(--danger)}.hover\:bg-elevated:hover,.hover\:bg-elevated\/60:hover{background-color:var(--elevated)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-elevated\/60:hover{background-color:color-mix(in oklab, var(--elevated) 60%, transparent)}}.hover\:bg-muted\/10:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/10:hover{background-color:color-mix(in oklab, var(--muted) 10%, transparent)}}.hover\:bg-muted\/15:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/15:hover{background-color:color-mix(in oklab, var(--muted) 15%, transparent)}}.hover\:bg-muted\/20:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/20:hover{background-color:color-mix(in oklab, var(--muted) 20%, transparent)}}.hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/40:hover{background-color:color-mix(in oklab, var(--muted) 40%, transparent)}}.hover\:bg-surface:hover{background-color:var(--surface)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.hover\:text-accent:hover{color:var(--accent)}.hover\:text-accent-foreground:hover{color:var(--on-accent)}.hover\:text-accent2:hover{color:var(--accent2)}.hover\:text-danger:hover,.hover\:text-danger\/80:hover{color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.hover\:text-danger\/80:hover{color:color-mix(in oklab, var(--danger) 80%, transparent)}}.hover\:text-destructive-foreground:hover{color:var(--on-danger)}.hover\:text-foreground:hover{color:var(--text)}.hover\:text-primary\/80:hover{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--accent) 80%, transparent)}}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-text:hover{color:var(--text)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}}.focus\:z-1:focus{z-index:1}.focus\:z-10:focus{z-index:10}.focus\:border-accent:focus,.focus\:border-ring:focus{border-color:var(--accent)}.focus\:bg-elevated:focus{background-color:var(--elevated)}.focus\:bg-transparent:focus{background-color:#0000}.focus\:text-text:focus{color:var(--text)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[3px\]:focus{--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\:ring-ring:focus,.focus\:ring-ring\/50:focus{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-ring\/50:focus{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-border:focus-visible{border-color:var(--border)}.focus-visible\:border-ring:focus-visible{border-color:var(--accent)}.focus-visible\:bg-elevated:focus-visible{background-color:var(--elevated)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-accent:focus-visible,.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.focus-visible\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--bg)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-focus\:border-ring:has(:focus){border-color:var(--accent)}.has-focus\:ring-\[3px\]:has(:focus){--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)}.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.has-disabled\:pointer-events-none:has(:disabled){pointer-events:none}.has-disabled\:cursor-not-allowed:has(:disabled){cursor:not-allowed}.has-disabled\:opacity-50:has(:disabled){opacity:.5}.has-aria-invalid\:border-destructive:has([aria-invalid=true]){border-color:var(--danger)}.has-aria-invalid\:ring-\[3px\]:has([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)}.has-aria-invalid\:ring-destructive\/20:has([aria-invalid=true]){--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.has-aria-invalid\:ring-destructive\/20:has([aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--danger) 20%, transparent)}}.has-data-\[slot\=combobox-chip\]\:px-1\.5:has([data-slot=combobox-chip]){padding-inline:calc(var(--spacing) * 1.5)}.has-data-\[slot\=combobox-chip-remove\]\:pr-0:has([data-slot=combobox-chip-remove]){padding-right:0}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:var(--accent)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]: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)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){border-color:var(--danger)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--danger) 20%, transparent)}}.has-\[input\:focus\]\:border-ring:has(:is(input:focus)){border-color:var(--accent)}.has-\[input\:focus\]\:ring-\[3px\]:has(:is(input:focus)){--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)}.has-\[input\:focus\]\:ring-ring\/50:has(:is(input:focus)){--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.has-\[input\:focus\]\:ring-ring\/50:has(:is(input:focus)){--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>button\]\:mr-\[-0\.45rem\]:has(>button){margin-right:-.45rem}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-inline:calc(var(--spacing) * 2)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--danger)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--danger) 20%, transparent)}}.aria-pressed\:bg-transparent[aria-pressed=true]{background-color:#0000}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted)}.data-closed\:animate-out[data-closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-empty\:p-0[data-empty]{padding:0}.data-highlighted\:bg-accent\/15[data-highlighted]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.data-highlighted\:bg-accent\/15[data-highlighted]{background-color:color-mix(in oklab, var(--accent) 15%, transparent)}}.data-highlighted\:text-accent[data-highlighted]{color:var(--accent)}.data-open\:animate-in[data-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-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}.data-pressed\:bg-transparent[data-pressed]{background-color:#0000}.data-selected\:bg-primary[data-selected]{background-color:var(--accent)}.data-selected\:text-primary-foreground[data-selected]{color:var(--on-accent)}@media (hover:hover){.data-selected\:hover\:bg-primary[data-selected]:hover{background-color:var(--accent)}.data-selected\:hover\:text-primary-foreground[data-selected]:hover{color:var(--on-accent)}}.data-\[chips\=true\]\:min-w-\(--anchor-width\)[data-chips=true]{min-width:var(--anchor-width)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted)}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:8px}.data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:8px;border-bottom-right-radius:8px}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--accent)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--on-accent)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--on-accent)}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:8px}.data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:8px;border-bottom-left-radius:8px}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--accent)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--on-accent)}.data-\[selected\]\:bg-primary[data-selected]{background-color:var(--accent)}.data-\[selected\]\:text-primary-foreground[data-selected]{color:var(--on-accent)}@media (hover:hover){.data-\[selected\]\:hover\:bg-primary[data-selected]:hover{background-color:var(--accent)}}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--accent)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--on-accent)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}:is(.\*\:data-\[slot\=input-group\]\:m-1>*)[data-slot=input-group]{margin:var(--spacing)}:is(.\*\:data-\[slot\=input-group\]\:mb-0>*)[data-slot=input-group]{margin-bottom:0}:is(.\*\:data-\[slot\=input-group\]\:h-8>*)[data-slot=input-group]{height:calc(var(--spacing) * 8)}:is(.\*\:data-\[slot\=input-group\]\:border-input\/30>*)[data-slot=input-group]{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=input-group\]\:border-input\/30>*)[data-slot=input-group]{border-color:color-mix(in oklab, var(--border) 30%, transparent)}}:is(.\*\:data-\[slot\=input-group\]\:bg-input\/30>*)[data-slot=input-group]{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=input-group\]\:bg-input\/30>*)[data-slot=input-group]{background-color:color-mix(in oklab, var(--border) 30%, transparent)}}:is(.\*\:data-\[slot\=input-group\]\:bg-transparent>*)[data-slot=input-group]{background-color:#0000}:is(.\*\:data-\[slot\=input-group\]\:shadow-none>*)[data-slot=input-group]{--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)}:is(.\*\*\:data-\[slot\=scroll-area-scrollbar\]\:m-0 *)[data-slot=scroll-area-scrollbar]{margin:0}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--accent)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--accent)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--on-accent)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:duration-200[data-state=closed]{--tw-duration:.2s;transition-duration:.2s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=empty\]\:text-border[data-state=empty]{color:var(--border)}.data-\[state\=indeterminate\]\:border-primary[data-state=indeterminate]{border-color:var(--accent)}.data-\[state\=indeterminate\]\:bg-primary[data-state=indeterminate]{background-color:var(--accent)}.data-\[state\=indeterminate\]\:text-primary-foreground[data-state=indeterminate]{color:var(--on-accent)}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-border[data-state=unchecked]{background-color:var(--border)}@media (width>=640px){.list\:block{display:block}.list\:hidden{display:none}}@media (width>=768px){.nav\:bottom-4{bottom:calc(var(--spacing) * 4)}.nav\:block{display:block}.nav\:flex{display:flex}.nav\:hidden{display:none}.nav\:pb-0{padding-bottom:0}.nav\:pl-52{padding-left:calc(var(--spacing) * 52)}}@media (width>=1000px){.panel\:block{display:block}.panel\:hidden{display:none}}@media (width>=40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:row-span-2{grid-row:span 2/span 2}.sm\:float-left{float:left}.sm\:float-right{float:right}.sm\:mr-4{margin-right:calc(var(--spacing) * 4)}.sm\:mb-2{margin-bottom:calc(var(--spacing) * 2)}.sm\:ml-4{margin-left:calc(var(--spacing) * 4)}.sm\:inline{display:inline}.sm\:h-40{height:calc(var(--spacing) * 40)}.sm\:h-96{height:calc(var(--spacing) * 96)}.sm\:max-h-40{max-height:calc(var(--spacing) * 40)}.sm\:w-\(--illus-w\){width:var(--illus-w)}.sm\:w-\(--img-w\){width:var(--img-w)}.sm\:w-40{width:calc(var(--spacing) * 40)}.sm\:w-64{width:calc(var(--spacing) * 64)}.sm\:w-auto{width:auto}.sm\:\[grid-template-columns\:var\(--split\)\]{grid-template-columns:var(--split)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[7rem_7rem_1fr\]{grid-template-columns:7rem 7rem 1fr}.sm\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_14rem\]{grid-template-columns:minmax(0,1fr) 14rem}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing) * 4)}:where(.sm\:divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.sm\:divide-border>:not(:last-child)){border-color:var(--border)}.sm\:self-auto{align-self:auto}.sm\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.sm\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.sm\:border-border{border-color:var(--border)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:pt-0{padding-top:0}.sm\:pl-4{padding-left:calc(var(--spacing) * 4)}.sm\:first\:pl-0:first-child{padding-left:0}}@media (width>=48rem){.md\:inset-x-auto{inset-inline:auto}.md\:top-1\/2{top:50%}.md\:right-6{right:calc(var(--spacing) * 6)}.md\:bottom-auto{bottom:auto}.md\:left-1\/2{left:50%}.md\:left-6{left:calc(var(--spacing) * 6)}.md\:hidden{display:none}.md\:h-64{height:calc(var(--spacing) * 64)}.md\:h-\[85dvh\]{height:85dvh}.md\:h-\[min\(80dvh\,52rem\)\]{height:min(80dvh,52rem)}.md\:max-h-\[85dvh\]{max-height:85dvh}.md\:min-h-64{min-height:calc(var(--spacing) * 64)}.md\:w-\[80vw\]{width:80vw}.md\:w-full{width:100%}.md\:max-w-5xl{max-width:var(--container-5xl)}.md\:max-w-\[1040px\]{max-width:1040px}.md\:max-w-md{max-width:var(--container-md)}.md\:max-w-xl{max-width:var(--container-xl)}.md\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:calc(var(--spacing) * 2)}.md\:overflow-hidden{overflow:hidden}.md\:overflow-y-hidden{overflow-y:hidden}.md\:rounded-2xl{border-radius:var(--radius-2xl)}.md\:rounded-xl{border-radius:16px}.md\:px-4{padding-inline:calc(var(--spacing) * 4)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:px-6{padding-inline:calc(var(--spacing) * 6)}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-3{padding-block:calc(var(--spacing) * 3)}.md\:py-10{padding-block:calc(var(--spacing) * 10)}.md\:pt-5{padding-top:calc(var(--spacing) * 5)}.md\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.md\:pb-5{padding-bottom:calc(var(--spacing) * 5)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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\:data-\[state\=closed\]\:slide-out-to-bottom-0[data-state=closed]{--tw-exit-translate-y:calc(0*100%)}.md\:data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.md\:data-\[state\=open\]\:slide-in-from-bottom-0[data-state=open]{--tw-enter-translate-y:calc(0*100%)}.md\:data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}}@media (width>=64rem){.lg\:inline-flex{display:inline-flex}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (width>=20rem){.\@\[20rem\]\:w-full{width:100%}.\@\[20rem\]\:flex-col{flex-direction:column}.\@\[20rem\]\:items-stretch{align-items:stretch}.\@\[20rem\]\:gap-0{gap:0}}@container (width>=24rem){.\@sm\:col-span-4{grid-column:span 4/span 4}.\@sm\:col-span-6{grid-column:span 6/span 6}.\@sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width>=28rem){.\@md\:col-span-2{grid-column:span 2/span 2}.\@md\:col-span-3{grid-column:span 3/span 3}.\@md\:col-span-4{grid-column:span 4/span 4}.\@md\:col-span-8{grid-column:span 8/span 8}.\@md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (width>=32rem){.\@lg\:col-span-9{grid-column:span 9/span 9}}@container (width>=42rem){.\@2xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-color-scheme:dark){.dark\:bg-input\/30{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--border) 30%, transparent)}}.dark\:bg-transparent{background-color:#0000}@media (hover:hover){.dark\:hover\:text-accent-foreground:hover{color:var(--on-accent)}}.dark\:disabled\:bg-input\/80:disabled{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:disabled{background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.dark\:has-aria-invalid\:border-destructive\/50:has([aria-invalid=true]){border-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.dark\:has-aria-invalid\:border-destructive\/50:has([aria-invalid=true]){border-color:color-mix(in oklab, var(--danger) 50%, transparent)}}.dark\:has-aria-invalid\:ring-destructive\/40:has([aria-invalid=true]){--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.dark\:has-aria-invalid\:ring-destructive\/40:has([aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--danger) 40%, transparent)}}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--danger) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--danger) 40%, transparent)}}}@media (pointer:coarse){.pointer-coarse\:size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.pointer-coarse\:px-3{padding-inline:calc(var(--spacing) * 3)}.pointer-coarse\:py-2{padding-block:calc(var(--spacing) * 2)}.pointer-coarse\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.pointer-coarse\:opacity-100{opacity:1}}.\[\&_\*\[data-slot\=combobox-trigger\]\]\:border-destructive [data-slot=combobox-trigger]{border-color:var(--danger)}.\[\&_\*\[data-slot\=combobox-trigger\]\]\:ring-destructive\/50 [data-slot=combobox-trigger]{--tw-ring-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.\[\&_\*\[data-slot\=combobox-trigger\]\]\:ring-destructive\/50 [data-slot=combobox-trigger]{--tw-ring-color:color-mix(in oklab, var(--danger) 50%, transparent)}}.\[\&_\[data-slot\=scroll-area-viewport\]\]\:h-full [data-slot=scroll-area-viewport]{height:100%}.\[\&_\[data-slot\=scroll-area-viewport\]\]\:overscroll-contain [data-slot=scroll-area-viewport]{overscroll-behavior:contain}.\[\&_img\]\:rounded-none img{border-radius:0}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:transition-colors svg{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))}.\[\&_svg\]\:duration-200 svg{--tw-duration:.2s;transition-duration:.2s}.data-\[state\=empty\]\:\[\&_svg\]\:fill-transparent[data-state=empty] svg{fill:#0000}.data-\[state\=full\]\:\[\&_svg\]\:fill-current[data-state=full] svg{fill:currentColor}.data-\[state\=partial\]\:\[\&_svg\]\:fill-\(--partial-fill\)[data-state=partial] svg{fill:var(--partial-fill)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-full svg:not([class*=size-]){width:100%;height:100%}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-full\! svg:not([class*=size-]){width:100%!important;height:100%!important}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:rounded-\[5px\] svg:not([class*=size-]){border-radius:5px}.\[\&\:\:-webkit-calendar-picker-indicator\]\:hidden::-webkit-calendar-picker-indicator{display:none}.\[\&\:\:-webkit-calendar-picker-indicator\]\:appearance-none::-webkit-calendar-picker-indicator{appearance:none}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:8px;border-bottom-left-radius:8px}.\[\.border-b\]\:pb-3.border-b{padding-bottom:calc(var(--spacing) * 3)}.\[\.border-t\]\:pt-3.border-t{padding-top:calc(var(--spacing) * 3)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180: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] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180: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] *) *):is(.rdp-button_previous>svg){rotate:180deg}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:8px;border-bottom-right-radius:8px}.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button{border-top-left-radius:8px;border-bottom-left-radius:8px}.\[\&\>\*\]\:rounded-none>*{border-radius:0}.\[\&\>div\]\:h-\[60dvh\]>div{height:60dvh}.\[\&\>input\]\:h-auto>input{height:auto}.\[\&\>input\]\:rounded-none>input{border-radius:0}.\[\&\>input\]\:border-0>input{border-style:var(--tw-border-style);border-width:0}.\[\&\>input\]\:bg-transparent>input{background-color:#0000}.\[\&\>input\]\:shadow-none>input{--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)}.\[\&\>input\]\:focus-visible\:ring-0>input:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3:has(>[data-align=block-end])>input{padding-top:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3:has(>[data-align=block-start])>input{padding-bottom:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2:has(>[data-align=inline-end])>input{padding-right:calc(var(--spacing) * 2)}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2:has(>[data-align=inline-start])>input{padding-left:calc(var(--spacing) * 2)}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted)}.\[\&\>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)}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}@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{--bg:#0c0e13;--surface:#13161e;--elevated:#1a1e28;--border:#242836;--border2:#2e3444;--text:#e8eaf0;--muted:#7b859a;--accent:#8689e6;--accent2:#6f72d8;--on-accent:#0c0e13;--danger:#ff6b6b;--on-danger:#0c0e13;--success:#4ade80;--warning:#fbbf24;--shadow:0 8px 24px #0006}:root[data-theme=light]{--bg:#f7f8fa;--surface:#fff;--elevated:#f0f2f6;--border:#e2e5ea;--border2:#d3d7df;--text:#1a1d24;--muted:#687083;--accent:#4f46e5;--accent2:#4338ca;--on-accent:#fff;--danger:#d92d20;--on-danger:#fff;--success:#15803d;--warning:#b45309;--shadow:0 8px 24px #2832501f}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#f7f8fa;--surface:#fff;--elevated:#f0f2f6;--border:#e2e5ea;--border2:#d3d7df;--text:#1a1d24;--muted:#687083;--accent:#4f46e5;--accent2:#4338ca;--on-accent:#fff;--danger:#d92d20;--on-danger:#fff;--success:#15803d;--warning:#b45309;--shadow:0 8px 24px #2832501f}}:root[data-theme=eink]{--bg:#fff;--surface:#fff;--elevated:#f2f2f2;--border:#000;--border2:#000;--text:#000;--muted:#3a3a3a;--accent:#0d3bb0;--accent2:#082a85;--on-accent:#fff;--danger:#b80016;--on-danger:#fff;--success:#0a6e1d;--warning:#9a5200;--shadow:none;--cat-1:#b80016;--cat-2:#9a5200;--cat-3:#6e5b00;--cat-4:#0a6e1d;--cat-5:#006d6d;--cat-6:#0d3bb0;--cat-7:#5b1aa6;--cat-8:#a80060}:root[data-theme=eink] .cat-chip{color:var(--cat);border-color:var(--cat)}:root[data-theme=eink] .eink-solid{background-color:var(--bg);-webkit-backdrop-filter:none}:root[data-theme=eink] .bg-accent\/10,:root[data-theme=eink] .bg-accent\/15{background-color:var(--elevated)!important;color:var(--text)!important}:root[data-theme=eink] .bg-accent\/10.text-accent,:root[data-theme=eink] .bg-accent\/15.text-accent,:root[data-theme=eink] .bg-accent\/10 .text-accent,:root[data-theme=eink] .bg-accent\/15 .text-accent{color:var(--text)!important}:root[data-theme=eink] *,:root[data-theme=eink] :before,:root[data-theme=eink] :after{box-shadow:none!important;transition:none!important;animation:none!important}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;line-height:1.45}.login-page{isolation:isolate;background:radial-gradient(circle at 12% 15%, var(--accent), transparent 28%), radial-gradient(circle at 90% 88%, #32d7bb12, transparent 28%), var(--bg);place-items:center;min-height:100dvh;padding:32px 20px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.login-page{background:radial-gradient(circle at 12% 15%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 28%), radial-gradient(circle at 90% 88%, #32d7bb12, transparent 28%), var(--bg)}}.login-page:before{z-index:-1;background-image:linear-gradient(var(--text) 1px, transparent 1px), linear-gradient(90deg, var(--text) 1px, transparent 1px);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.login-page:before{background-image:linear-gradient(color-mix(in srgb, var(--text) 3%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text) 3%, transparent) 1px, transparent 1px)}}.login-page:before{content:"";opacity:.34;background-size:44px 44px;-webkit-mask-image:linear-gradient(#000,#0000 75%);mask-image:linear-gradient(#000,#0000 75%)}.login-shell{grid-template-columns:minmax(0,1fr) minmax(360px,430px);align-items:stretch;gap:64px;width:min(100%,920px);display:grid}.login-intro{flex-direction:column;justify-content:space-between;min-height:510px;padding:22px 0;display:flex}.login-brand,.login-mobile-brand{color:var(--text);letter-spacing:-.04em;align-items:center;gap:10px;font-size:20px;font-weight:750;display:inline-flex}.login-brand-mark{border:1px solid var(--accent);grid-template-rows:repeat(2,7px);grid-template-columns:repeat(2,7px);place-content:center;gap:4px;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.login-brand-mark{border:1px solid color-mix(in srgb, var(--accent) 55%, white 10%)}}.login-brand-mark{background:linear-gradient(145deg, var(--accent), #4fbdc9);box-shadow:0 10px 28px var(--accent);border-radius:11px}@supports (color:color-mix(in lab, red, red)){.login-brand-mark{box-shadow:0 10px 28px color-mix(in srgb, var(--accent) 28%, transparent)}}.login-brand-mark i{opacity:.92;background:#fff;border-radius:2px;display:block}.login-brand-mark i:nth-child(2),.login-brand-mark i:nth-child(3){opacity:.62}.login-intro-copy{max-width:450px;margin-top:auto;margin-bottom:auto}.login-eyebrow,.login-card-kicker{color:var(--accent);letter-spacing:.14em;margin:0 0 16px;font-size:11px;font-weight:700}.login-intro h2{max-width:440px;color:var(--text);letter-spacing:-.065em;margin:0;font-size:clamp(36px,5vw,58px);line-height:1.02}.login-intro-copy>p:last-child{max-width:340px;color:var(--muted);margin:24px 0 0;font-size:16px;line-height:1.6}.login-status{color:var(--muted);align-items:center;gap:9px;font-size:12px;display:flex}.login-status-dot{background:#43d6a1;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #43d6a124}.login-card{border:1px solid var(--border2);width:100%;padding:42px;position:relative}@supports (color:color-mix(in lab, red, red)){.login-card{border:1px solid color-mix(in srgb, var(--border2) 82%, white 4%)}}.login-card{background:var(--surface);border-radius:28px}@supports (color:color-mix(in lab, red, red)){.login-card{background:color-mix(in srgb, var(--surface) 92%, transparent)}}.login-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 28px 80px #00000047,inset 0 1px #ffffff12}.login-card-heading h1{color:var(--text);letter-spacing:-.045em;margin:0;font-size:30px}.login-card-subtitle{color:var(--muted);margin:10px 0 0;font-size:14px;line-height:1.5}.login-mobile-brand{margin-bottom:28px;display:none}.login-fields{flex-direction:column;gap:17px;margin:30px 0 24px;display:flex}.login-fields>div{width:100%}.login-fields>div>div{min-width:0;flex:100%!important;width:100%!important;max-width:none!important}.login-fields [class~=group\/field]{width:100%!important}.login-fields label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.login-fields input{border-color:var(--border);background:var(--bg);border-radius:13px;height:50px}@supports (color:color-mix(in lab, red, red)){.login-fields input{background:color-mix(in srgb, var(--bg) 70%, var(--surface))}}.login-fields input{padding:0 15px;font-size:15px}.login-fields input:hover{border-color:var(--border2)}.login-fields input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent)}@supports (color:color-mix(in lab, red, red)){.login-fields input:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent)}}.login-error{border:1px solid var(--danger);margin-top:22px}@supports (color:color-mix(in lab, red, red)){.login-error{border:1px solid color-mix(in srgb, var(--danger) 45%, transparent)}}.login-error{background:var(--danger);border-radius:12px}@supports (color:color-mix(in lab, red, red)){.login-error{background:color-mix(in srgb, var(--danger) 10%, transparent)}}.login-error{color:var(--danger);padding:12px 14px;font-size:13px}.login-submit{background:linear-gradient(110deg, var(--accent), #6e9be8);width:100%;height:52px;box-shadow:0 12px 24px var(--accent);border-radius:13px;justify-content:space-between;padding:0 17px 0 20px;font-size:14px}@supports (color:color-mix(in lab, red, red)){.login-submit{box-shadow:0 12px 24px color-mix(in srgb, var(--accent) 20%, transparent)}}.login-submit:hover{background:linear-gradient(110deg, var(--accent2), #5e89dc)}.login-submit-arrow{font-size:21px;line-height:1;transition:transform .2s}.login-submit:hover .login-submit-arrow{transform:translate(3px)}.login-footer{text-align:center;color:var(--muted);margin:22px 0 0;font-size:11px}.login-orb{z-index:-1;filter:blur(70px);opacity:.12;border-radius:50%;width:260px;height:260px;position:absolute}.login-orb-one{background:var(--accent);top:-90px;left:23%}.login-orb-two{background:#30cbb0;bottom:-80px;right:-70px}@media (width<=720px){.login-page{padding:20px 16px}.login-shell{width:min(100%,440px);display:block}.login-intro{display:none}.login-card{border-radius:22px;padding:30px 24px 26px}.login-mobile-brand{display:inline-flex}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border2);border-radius:4px}@media (pointer:fine){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--color-bg);background-clip:padding-box}}@media (width<=767px){[data-toolbar] [data-slot=button]{min-height:44px}[data-toolbar] [data-slot=button][class*=w-]{min-width:44px}}.folder-tree{padding:2px 4px 6px}.folder-tree-scroll,.folder-tree-nodes{min-width:0}.folder-tree-header{letter-spacing:.09em;color:var(--color-muted);padding:2px 8px 6px;font-size:10px;font-weight:600}.folder-children{border-left:1px solid var(--color-border);margin-left:14px}.folder-node{cursor:pointer;border-radius:7px;align-items:center;gap:5px;margin:1px 0;padding:8px;font-size:13px;transition:background .1s,color .1s;display:flex;position:relative}.folder-node:hover{background:var(--text)}@supports (color:color-mix(in lab, red, red)){.folder-node:hover{background:color-mix(in srgb, var(--text) 5%, transparent)}}.folder-node.active{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.folder-node.active{background:color-mix(in srgb, var(--accent) 15%, transparent)}}.folder-node.active{color:var(--color-accent);font-weight:500}:root[data-theme=eink] .folder-node.active{background:var(--elevated);color:var(--text);font-weight:700}.folder-icon{flex-shrink:0;font-size:15px}.folder-caret{width:16px;height:16px;color:var(--color-muted);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.folder-caret:hover{background:var(--color-border);color:var(--color-text)}.folder-caret-spacer{flex-shrink:0;width:16px}.folder-name{flex:0 auto;min-width:0}.folder-actions{visibility:hidden;opacity:0;gap:2px;transition:opacity .1s;display:flex}.folder-node:hover .folder-actions,.folder-node:focus-within .folder-actions,:root[data-theme=eink] .folder-actions{visibility:visible;opacity:1}.folder-btn{color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 5px;font-size:12px;line-height:1}.folder-btn:hover{background:var(--color-border);color:var(--color-text)}.folder-btn-del:hover{color:var(--color-danger)!important}.folder-add-btn{border:1px dashed var(--color-border2);width:calc(100% - 8px);color:var(--color-muted);cursor:pointer;text-align:left;background:0 0;border-radius:8px;margin:4px;padding:6px 10px;font-size:12px;display:block}.folder-add-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.folder-new-input{align-items:center;gap:5px;padding:4px 8px;display:flex}.folder-new-input input{flex:1;padding:4px 8px;font-size:13px}.folder-rename-input{flex:1;padding:3px 6px;font-size:13px}.btn-add{border:1px dashed var(--color-border2);color:var(--color-muted);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:13px}.btn-add:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-remove{color:var(--color-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.btn-remove:hover{color:var(--color-danger)}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#0009;animation:.15s fade-in;position:fixed;inset:0}.drawer{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:51;border-radius:20px 20px 0 0;flex-direction:column;max-height:92dvh;animation:.2s slide-up;display:flex;position:fixed;bottom:0;left:0;right:0}.drawer-handle{background:var(--color-border2);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:12px auto 0}.drawer-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.drawer-title{font-size:16px;font-weight:600}.drawer-close{background:var(--color-elevated);color:var(--color-muted);border-radius:var(--radius-full);cursor:pointer;border:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;display:flex}.drawer-body{flex:1;padding:20px;overflow-y:auto}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#000000a6;justify-content:center;align-items:flex-start;padding:48px 20px;animation:.15s fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-shrink:0;width:100%;max-width:600px;padding:28px;animation:.2s slide-down}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-title{margin:0;font-size:17px;font-weight:600}.modal-close{background:var(--color-elevated);color:var(--color-muted);border-radius:var(--radius-full);cursor:pointer;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.modal-close:hover{background:var(--color-border);color:var(--color-text)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.lightbox-btn{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:9999px;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s;display:flex}.lightbox-btn:hover{background:#fff3}.md-editor .ProseMirror{outline:none;min-height:8rem}.md-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;pointer-events:none;height:0;color:var(--color-muted)}.md-editor ul[data-type=taskList] input[type=checkbox],.md-static ul[data-type=taskList] input[type=checkbox]{accent-color:var(--color-accent);width:.95em;height:.95em}.md-editor ul[data-type=taskList],.md-static ul[data-type=taskList]{padding-left:0;list-style:none}.md-editor ul[data-type=taskList] li,.md-static ul[data-type=taskList] li{align-items:flex-start;gap:.5em;display:flex}.md-editor ul[data-type=taskList] li>label,.md-static ul[data-type=taskList] li>label{margin-top:.15em}.md-editor ul[data-type=taskList] li>div,.md-static ul[data-type=taskList] li>div{flex:1;min-width:0}.md-editor .tableWrapper,.md-static .table-wrapper{max-width:100%;overflow-x:auto}.md-editor .selectedCell:after{content:"";background:var(--color-accent);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.md-editor .selectedCell:after{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}}.md-editor .selectedCell:after{pointer-events:none}.md-editor td,.md-editor th{position:relative}.md-editor img,.md-static img{border-radius:.5rem;max-width:100%;height:auto}.md-editor img.ProseMirror-selectednode{outline:2px solid var(--color-accent)}.json-editor-wrap>div{background:var(--color-bg)}.json-editor-wrap textarea{outline:none}.md-static{color:var(--color-text);font-size:14px;line-height:1.6}.md-static :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-sans);color:var(--color-text);margin:1.1em 0 .45em;line-height:1.3}.md-static h1{font-size:1.6em;font-weight:700}.md-static h2{font-size:1.35em;font-weight:700}.md-static h3{font-size:1.15em;font-weight:600}.md-static h4{font-size:1em;font-weight:600}.md-static h5{font-size:.9em;font-weight:600}.md-static h6{color:var(--color-muted);font-size:.85em;font-weight:600}.md-static>:first-child{margin-top:0}.md-static>:last-child{margin-bottom:0}.md-static p{margin:.5em 0}.md-static a{color:var(--color-accent);text-decoration:underline}.md-static blockquote{border-left:3px solid var(--color-accent);color:var(--color-muted);margin:.7em 0;padding-left:.9em}.md-static pre{font-family:var(--font-mono,ui-monospace, monospace);background:var(--color-elevated);border-radius:8px;margin:.6em 0;padding:.6em .8em;font-size:.9em;overflow-x:auto}.md-static :not(pre)>code{font-family:var(--font-mono,ui-monospace, monospace);color:var(--color-accent);background:var(--color-elevated);border-radius:4px;padding:.1em .3em;font-size:.9em}.md-static ul,.md-static ol{margin:.5em 0;padding-left:1.4em;list-style-position:outside}.md-static ul{list-style-type:disc}.md-static ol{list-style-type:decimal}.md-static ul ul{list-style-type:circle}.md-static li::marker{color:var(--color-muted)}.md-static ul[data-type=taskList]{list-style-type:none}.md-static li{margin:.2em 0}.md-static table{border-collapse:collapse;width:max-content;max-width:100%;margin:.6em 0;font-size:.95em;display:block;overflow-x:auto}.md-static th,.md-static td{border:1px solid var(--color-border);text-align:left;padding:.35em .6em}.md-static th{background:var(--color-elevated);font-weight:600}.md-static details{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;margin:.5em 0;padding:.4em .75em}.md-static summary{cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.md-static details[open] summary{margin-bottom:.5em}.md-chat{font-size:.8125rem;line-height:1.55}.md-chat.md-chat-sub{color:var(--color-muted);font-size:.75rem}.md-chat :is(h1,h2,h3,h4,h5,h6){margin:.9em 0 .35em}.md-chat h1{font-size:1.25em}.md-chat h2{font-size:1.15em}.md-chat h3{font-size:1.05em}.md-chat :is(h4,h5){font-size:1em}.md-chat h6{font-size:.95em}.md-chat p{margin:.4em 0}.md-chat ul,.md-chat ol{padding-left:1.25em}.md-chat blockquote{font-style:italic}.md-chat table{width:max-content;max-width:max(100%,34rem);display:table;overflow-x:visible}.md-chat th{white-space:nowrap}.md-chat th,.md-chat td{padding:.3em .55em}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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-content{syntax:"*";inherits:false;initial-value:""}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@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))}}@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-text,.w-tc-editor-preview{min-height:16px}.w-tc-editor-preview pre{white-space:inherit;font-family:inherit;font-size:inherit;margin:0;padding:0}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.property-access .token.method,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.keyword{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-value,.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-name{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.selector .class,.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.class-name{color:var(--color-prettylights-syntax-entity)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gr as e,en as t}from"./src-Dz7A3kLJ.js";import{C as n,O as r,_ as i,d as a,g as o,h as s,i as c,m as l,p as u,u as d}from"./fields-DMchbbOm.js";import{D as f,E as p,a as m,c as h,m as g,u as _,v,w as y}from"./shelf-DmAuGkTS.js";import{n as b}from"./extend-u4UeeES5.js";import{t as ee}from"./plugin-CFEkHH3f.js";var x=(()=>{try{return Intl.supportedValuesOf(`currency`)}catch{return[`USD`,`EUR`,`UAH`,`GBP`,`PLN`]}})();new Set(x);function S(e,t){try{return new Intl.NumberFormat(t,{style:`currency`,currency:e,currencyDisplay:`narrowSymbol`}).formatToParts(0).find(e=>e.type===`currency`)?.value??e}catch{return e}}function C(e,t=`en`){try{return new Intl.DisplayNames([t],{type:`currency`}).of(e)??e}catch{return e}}var te=[{name:`countries`,options:t.map(e=>({value:e.code,title:`core.countries.${e.code}`,icon:{kind:`icon`,value:`flag:${e.code}`},subtitle:e.code.toUpperCase()}))},{name:`colors`,options:e.map(e=>({value:e.name,title:`core.colors.${e.name}`,icon:{kind:`swatch`,value:e.hex},subtitle:e.hex}))},{name:`sex`,options:[...o]},{name:`weekdays`,options:[...i]},{name:`languages`,options:s.map(e=>({value:e.code,title:e.name}))},{name:`currencies`,options:x.map(e=>({value:e,title:C(e),subtitle:S(e)}))}],w=class extends Error{};function T(e,t){let n=e.split(`.`);for(let e of n)if(e===``)throw new w(`[mutate-path] '${t}': empty segment — a path may not contain '..', a leading '.' beyond the first character, or a trailing '.'`);return n}function E(e){if(typeof e!=`string`||e.trim()===``)throw new w(`[mutate-path] a target path must be a non-empty string`);let t=e.startsWith(`.`),n=t?e.slice(1):e;if(n===``)throw new w(`[mutate-path] '${e}': nothing after the leading '.'`);let r=n.split(`/`);if(r.some(e=>e===``))throw new w(`[mutate-path] '${e}': empty side of a '/' — both a relation path and a target path are required`);let i=T(r[r.length-1],e);return{hops:r.slice(0,-1).map(t=>T(t,e)),path:i,relative:t}}function D(e,t){if(!e.relative)return e;let n=[...t];return e.hops.length>0?{hops:[[...n,...e.hops[0]],...e.hops.slice(1)],path:e.path,relative:!1}:{hops:[],path:[...n,...e.path],relative:!1}}var O=class extends Error{};function k(e,t){return`${e}#${t.join(`.`)}`}function A(e,t){return M(e,t,0)}function j(e,t,n,r){let i=n[r],a=r===n.length-1,o=e.parts?.find(e=>e.key===i)??e.parts?.find(e=>e.role===i);return o?a?{relation:o.meta.relation,desc:`part '${i}' of composite '${t}' (kind '${o.meta.kind}')`}:o.meta.parts?j(o.meta,`${t}.${i}`,n,r+1):null:e.columns&&i in e.columns&&a?{desc:`sub-column '${i}' of composite '${t}'`}:null}function M(e,t,n){let r=t[n],i=n===t.length-1;for(let o of e){if(a(o)){if(o.key!==r)continue;return i?{relation:o.type.relation,desc:`field '${r}' (kind '${o.type.kind}')`}:j(o.type,r,t,n+1)}if(c(o)){if(!u(o)){let e=M(o.fields,t,n);if(e)return e;continue}if(o.key===r){if(i)return o.compute===void 0?null:{desc:`group '${r}' (a container)`};let e=M(o.fields,t,n+1);if(e)return e;continue}}}return null}function N(e,t){if(t.startsWith(`extend:`)){let n=t.slice(7);return e.extends_.find(e=>e.id===n).fields}let n=t.indexOf(`/`);return e.getShelf(t.slice(0,n),t.slice(n+1)).fields}function P(e,t,n,r,i){let a=`[mutate] ${t}.${n.join(`.`)}: target '${r}'`,o=t,s=N(e,o);for(let t of i.hops){let n=A(s,t);if(!n)throw new O(`${a} — unknown segment in relation hop '${t.join(`.`)}'`);if(!n.relation)throw new O(`${a} — '${t.join(`.`)}' is not a relation — it is ${n.desc}`);o=`${n.relation.library}/${n.relation.shelf}`,s=N(e,o)}if(!A(s,i.path))throw new O(`${a} — unknown segment in path '${i.path.join(`.`)}' (looked up in ${o})`);return o}function F(e,t,n){for(let r of e)if(a(r)){let e=[...t,r.key];r.type.mutate?.length&&n.push({path:e,scope:t,meta:r.type});for(let i of r.type.parts??[])i.meta.mutate?.length&&n.push({path:[...e,i.key],scope:t,meta:i.meta})}else c(r)&&F(r.fields,u(r)?[...t,r.key]:t,n)}function I(e){for(let t of e)if(c(t)){if(u(t)&&t.compute!==void 0){for(let e of t.fields)if(a(e)&&e.type.compute!==void 0)throw new O(`[mutate] group '${t.key}': child '${e.key}' carries its own value while the group already carries value — two writers for one column, drop one of the two computations.`)}I(t.fields)}}function L(e){let t=new Map;for(let[n,r]of e)for(let e of r){let r=k(n,e.from),i=k(e.toShelf,e.to.path),a=t.get(r);a?a.push(i):t.set(r,[i])}let n=new Map,r=[],i=e=>{n.set(e,1),r.push(e);for(let a of t.get(e)??[]){let e=n.get(a)??0;if(e===0){let e=i(a);if(e)return e}else if(e===1){let e=r.indexOf(a);return[...r.slice(e),a]}}return r.pop(),n.set(e,2),null};for(let e of t.keys())if((n.get(e)??0)===0){let t=i(e);if(t)return t}return null}function R(e,t,n,r){for(let i of e)if(a(i)){let e=[...n,i.key],a=i.type;a.compute!==void 0&&r.push({scope:t,path:e,cache:a.cache});for(let n of a.parts??[])n.mode===`computedStored`&&r.push({scope:t,path:[...e,n.key],cache:n.meta?.cache})}else if(c(i)){let e=u(i)?[...n,i.key]:n;u(i)&&i.compute!==void 0&&r.push({scope:t,path:e,cache:void 0}),R(i.fields,t,e,r)}}function z(e,t){let n=new Set;for(let e of t.values())for(let t of e)n.add(k(t.toShelf,t.to.path));let r=[...(e.shelves??[]).map(e=>({scope:`${e.library}/${e.shelf}`,fields:e.fields})),...(e.extends_??[]).map(e=>({scope:`extend:${e.id}`,fields:e.fields}))];for(let{scope:e,fields:t}of r){let r=[];R(t,e,[],r);for(let t of r)t.cache===void 0&&(n.has(k(t.scope,t.path))||console.warn(`[mutate-graph] ${e}: '${t.path.join(`.`)}' is a computed-and-stored unit with no incoming mutate edge and no cache — nothing will ever trigger its recompute after it is first written.`))}}function B(e){let t=new Map,n=[...(e.shelves??[]).map(e=>({scope:`${e.library}/${e.shelf}`,fields:e.fields})),...(e.extends_??[]).map(e=>({scope:`extend:${e.id}`,fields:e.fields}))];for(let{fields:e}of n)I(e);for(let{scope:r,fields:i}of n){let n=[];if(F(i,[],n),!n.length)continue;let a=[];for(let t of n)for(let n of t.meta.mutate??[]){let i=D(E(n),t.scope),o=P(e,r,t.path,n,i);a.push({from:t.path,to:i,toShelf:o})}t.set(r,a)}let r=L(t);if(r)throw new O(`[mutate] cycle: ${r.join(` -> `)}`);return z(e,t),t}var V=63,H=`__cachedAt`;V-10;var U=`_parent_id_index`;V-16;function W(e,t){for(let n of t){let t=`key`in n?n.key:void 0;if(t?.includes(`__`))throw Error(`[storage] ${e}: key '${t}' contains '__', the storage path separator — two different paths would spell one column name. Rename the key; an enclosing group's prefix supplies the '__'.`);c(n)&&W(e,n.fields)}}function G(e,t,n){if(t.length>47)throw Error(`[storage] ${e}: table name '${t}' is ${t.length} characters, over the 47-character budget (${V} minus '${U}', the identifier the ORM derives from it). PostgreSQL truncates a longer one silently. Shorten the library, the shelf, or a collection key along the path.`);let r=new Map;for(let[t,i]of h(n)){if(i.columns){if(!i.parts)throw Error(`[storage] ${e}.${t}: sets \`columns\` without \`parts\` — build a composite's columns from roles via resolveParts (see f.measured), or store the value whole with \`json: true\``);if(i.json)throw Error(`[storage] ${e}.${t}: is both a composite (\`columns\`) and JSON-stored (\`json\`) — a field persists one way or the other`)}for(let[n]of v(t,i)){let i=r.get(n);if(i!==void 0&&i!==t)throw Error(`[storage] ${e}: fields '${i}' and '${t}' both generate the column '${n}' — one value would overwrite the other and the second field would vanish from every response. Rename one.`);if(r.set(n,t),n.length>53)throw Error(`[storage] ${e}.${t}: generated column '${n}' is ${n.length} characters, over the 53-character budget (${V} minus '${H}'). PostgreSQL truncates a longer one silently. Shorten a key along the path.`)}}W(e,n);for(let r of m(n))G(`${e}/${r.key}`,`${t}__${r.key}`,r.group.fields)}function K(e,t={}){let i=t.disabled??new Set,o=e.filter(e=>!i.has(e.id)),s=new Map;for(let e of o){for(let t of e.libraries??[])for(let n of t.shelves)s.set(`${n.library}/${n.shelf}`,e.id);for(let t of e.libraryShelves??[])s.set(`${t.library}/${t.shelf}`,e.id)}let u=(e,t)=>s.get(`${e}/${t}`);for(let e of o)for(let t of e.dependsOn)if(i.has(t))throw Error(`[plugin] '${e.id}' is enabled, but its dependency '${t}' is disabled`);let m=ee(o),{order:v,libraries:x}=m,S=m.shelves.map(n),C=m.extends_.map(n),w=new Map(o.filter(e=>e.settings).map(e=>[e.id,n(e.settings).fields]));for(let e of t.settingsGroups??[])if(w.has(e.id))throw Error(`[settings] group '${e.id}' is declared by a plugin and passed in by the caller — pick one owner`);let T=[...[...w].map(([e,t])=>({id:e,fields:t})),...t.settingsGroups??[]],E=new Map;for(let e of o)for(let t of e.fieldContribs??[]){let e=`${t.library}/${t.shelf}/${t.field}`,n=E.get(e)??{options:[],suggestions:[]};t.options&&n.options.push(...t.options),t.suggestions&&n.suggestions.push(...t.suggestions),E.set(e,n)}let D=(e,t)=>{if(t.options.length){let n=new Set((e.options??[]).map(e=>e.value));e.options=[...e.options??[],...t.options.filter(e=>!n.has(e.value))]}if(t.suggestions.length){let n=e.hints.suggestions??[],r=new Set(n);e.hints.suggestions=[...n,...t.suggestions.filter(e=>!r.has(e))]}},O=new Map;for(let e of te)O.set(e.name,e.options);for(let e of o)for(let t of e.optionLists??[])O.set(t.name,t.options);let k=e=>O.get(e)??[];for(let[e,t,n]of[...S.map(e=>[`${e.library}/${e.shelf}`,`${e.library}__${e.shelf}`,e.fields]),...T.map(e=>[`_settings/${e.id}`,`_settings__${e.id}`,e.fields]),...C.map(e=>[`extend/${e.id}`,`extend__${e.id}`,e.fields])])G(e,t,n);for(let e of S)for(let[t,n]of h(e.fields)){let r=E.get(`${e.library}/${e.shelf}/${t}`);r&&D(n,r)}for(let e of T)for(let[t,n]of h(e.fields)){let i=E.get(`_settings/${e.id}/${t}`);i&&(D(n,i),l(n)&&n.options?.length&&r(n,n.options.map(e=>e.value)))}let A=new Map;for(let e of S)for(let[t,n]of h(e.fields)){let i=n.hints.source,a=n.options??[],o=i?O.get(i)??[]:[],s=new Set(a.map(e=>e.value)),c=[...a,...o.filter(e=>!s.has(e.value))];l(n)&&c.length&&r(n,c.map(e=>e.value)),c.length&&(n.options=c,A.set(`${e.library}/${e.shelf}/${t}`,c))}let j=e=>{let t=[];for(let n of e)a(n)?t.push(n.type):c(n)&&t.push(...j(n.fields));return t};for(let e of C)for(let t of j(e.fields)){if(!l(t))continue;let e=t.hints.source;if(!e)continue;let n=O.get(e)??[],i=t.options??[],a=new Set(i.map(e=>e.value)),o=[...i,...n.filter(e=>!a.has(e.value))];o.length&&r(t,o.map(e=>e.value))}let M=(e,t,n)=>{let r=e[t];if(!r)throw Error(n);return r},N=[];for(let e of o)for(let t of e.showcases??[]){let e=S.find(e=>e.library===t.source.library&&e.shelf===t.source.shelf);if(!e)throw Error(`[showcase] ${t.library}/${t.id}: unknown source shelf ${t.source.library}/${t.source.shelf}`);let n=Object.fromEntries(h(e.fields));for(let e of p(t.filter)){let r=M(n,e,`[showcase] ${t.library}/${t.id}: filter field '${e}' is not in ${t.source.library}/${t.source.shelf}`),i=f(t.filter,e),a=i.filter(e=>y.has(e));if(a.length&&!r.hints.multiple)throw Error(`[showcase] ${t.library}/${t.id}: operator '${a[0]}' on '${e}' needs a multiple field, but ${t.source.library}/${t.source.shelf}.${e} stores a single value`);if(d(r)&&a.length!==i.length)throw Error(`[showcase] ${t.library}/${t.id}: filter field '${e}' is stored as JSON — only ${[...y].join(`/`)} applies`);if(r.columns)throw Error(`[showcase] ${t.library}/${t.id}: filter field '${e}' is a composite scalar stored across sub-columns`)}let r=g(e);for(let e of t.columns){if(!n[e])throw Error(`[showcase] ${t.library}/${t.id}: column '${e}' is not in ${t.source.library}/${t.source.shelf}`);if(!r.includes(e))throw Error(`[showcase] ${t.library}/${t.id}: column '${e}' is outside ${t.source.library}/${t.source.shelf}'s list projection (views.list/groupBy/inline) and would render blank`)}if(t.defaultGroupBy!==void 0){if(!n[t.defaultGroupBy])throw Error(`[showcase] ${t.library}/${t.id}: defaultGroupBy '${t.defaultGroupBy}' is not in ${t.source.library}/${t.source.shelf}`);if(!_(e).includes(t.defaultGroupBy))throw Error(`[showcase] ${t.library}/${t.id}: defaultGroupBy '${t.defaultGroupBy}' is not a grouping candidate of ${t.source.library}/${t.source.shelf} (views.groupBy)`)}if(N.some(e=>e.library===t.library&&e.id===t.id))throw Error(`[showcase] duplicate ${t.library}/${t.id}`);N.push(t)}let P=[...S.map(e=>({label:`${e.library}/${e.shelf}`,fields:e.fields})),...C.map(e=>({label:`extend '${e.id}'`,fields:e.fields}))];for(let{label:e,fields:t}of P)for(let[n,r]of h(t)){let t=r.relation;if(!t)continue;let i=S.find(e=>e.library===t.library&&e.shelf===t.shelf);if(!i)throw Error(`[relation] ${e}.${n}: unknown target shelf ${t.library}/${t.shelf}`);if(!t.filter)continue;let a=Object.fromEntries(h(i.fields));for(let r of p(t.filter))M(a,r,`[relation] ${e}.${n}: filter key '${r}' is not in ${t.library}/${t.shelf}`)}let F={order:v,libraries:x,shelves:S,extends_:C,showcases:N,getShowcase:(e,t)=>N.find(n=>n.library===e&&n.id===t),getShowcasesFor:e=>N.filter(t=>t.library===e),getShelf:(e,t)=>S.find(n=>n.library===e&&n.shelf===t),getLibrary:e=>x.find(t=>t.meta.id===e),getExtendsFor:(e,t)=>C.filter(n=>b(n,e,t)),getFieldOptions:(e,t,n)=>A.get(`${e}/${t}/${n}`)??[],getOptionList:k,getShelfOwner:u,mutateGraph:new Map};return F.mutateGraph=B(F),F}var q=null;function J(e){q=K(e)}function Y(){if(!q)throw Error(`[registry] not initialized — call initRegistry() in the boot loader`);return q}var X=(e,t)=>Y().getShelf(e,t),Z=(e,t)=>Y().getExtendsFor(e,t),ne=e=>Y().getOptionList(e),re=(e,t)=>Y().getShowcase(e,t),ie=e=>Y().getShowcasesFor(e),ae=()=>Y().libraries,oe=()=>Y().shelves,se=()=>Y().extends_,Q=20,$=new Map;function ce(e){let t=$.get(e);if(t)return $.delete(e),$.set(e,t),t}function le(e,t){for($.delete(e),$.set(e,{rows:t,ts:Date.now()});$.size>Q;){let e=$.keys().next();if(e.done)break;$.delete(e.value)}}function ue(e){for(let t of[...$.keys()])(t===e||t.startsWith(`${e}?`))&&$.delete(t)}function de(e,t){let n=String(t.id??``);if(n)for(let[r,i]of $){if(r!==e&&!r.startsWith(`${e}?`))continue;let a=!1,o=i.rows.map(e=>{if(String(e.id)!==n)return e;a=!0;let r={...e};for(let n of Object.keys(e))n in t&&(r[n]=t[n]);return r});a&&$.set(r,{rows:o,ts:i.ts})}}export{se as a,ne as c,re as d,ie as f,le as i,X as l,S as m,de as n,Z as o,J as p,ce as r,ae as s,ue as t,oe as u};
|
|
1
|
+
import{Jr as e,rn as t}from"./src-54Qdjl2W.js";import{C as n,O as r,_ as i,d as a,g as o,h as s,i as c,m as l,p as u,u as d}from"./fields-BtCN_frr.js";import{D as f,E as p,a as m,c as h,m as g,u as _,v,w as y}from"./shelf-CRUDKiTz.js";import{n as b}from"./extend-BTkr7oJ8.js";import{t as ee}from"./plugin-CFEkHH3f.js";var x=(()=>{try{return Intl.supportedValuesOf(`currency`)}catch{return[`USD`,`EUR`,`UAH`,`GBP`,`PLN`]}})();new Set(x);function S(e,t){try{return new Intl.NumberFormat(t,{style:`currency`,currency:e,currencyDisplay:`narrowSymbol`}).formatToParts(0).find(e=>e.type===`currency`)?.value??e}catch{return e}}function C(e,t=`en`){try{return new Intl.DisplayNames([t],{type:`currency`}).of(e)??e}catch{return e}}var te=[{name:`countries`,options:t.map(e=>({value:e.code,title:`core.countries.${e.code}`,icon:{kind:`icon`,value:`flag:${e.code}`},subtitle:e.code.toUpperCase()}))},{name:`colors`,options:e.map(e=>({value:e.name,title:`core.colors.${e.name}`,icon:{kind:`swatch`,value:e.hex},subtitle:e.hex}))},{name:`sex`,options:[...o]},{name:`weekdays`,options:[...i]},{name:`languages`,options:s.map(e=>({value:e.code,title:e.name}))},{name:`currencies`,options:x.map(e=>({value:e,title:C(e),subtitle:S(e)}))}],w=class extends Error{};function T(e,t){let n=e.split(`.`);for(let e of n)if(e===``)throw new w(`[mutate-path] '${t}': empty segment — a path may not contain '..', a leading '.' beyond the first character, or a trailing '.'`);return n}function E(e){if(typeof e!=`string`||e.trim()===``)throw new w(`[mutate-path] a target path must be a non-empty string`);let t=e.startsWith(`.`),n=t?e.slice(1):e;if(n===``)throw new w(`[mutate-path] '${e}': nothing after the leading '.'`);let r=n.split(`/`);if(r.some(e=>e===``))throw new w(`[mutate-path] '${e}': empty side of a '/' — both a relation path and a target path are required`);let i=T(r[r.length-1],e);return{hops:r.slice(0,-1).map(t=>T(t,e)),path:i,relative:t}}function D(e,t){if(!e.relative)return e;let n=[...t];return e.hops.length>0?{hops:[[...n,...e.hops[0]],...e.hops.slice(1)],path:e.path,relative:!1}:{hops:[],path:[...n,...e.path],relative:!1}}var O=class extends Error{};function k(e,t){return`${e}#${t.join(`.`)}`}function A(e,t){return M(e,t,0)}function j(e,t,n,r){let i=n[r],a=r===n.length-1,o=e.parts?.find(e=>e.key===i)??e.parts?.find(e=>e.role===i);return o?a?{relation:o.meta.relation,desc:`part '${i}' of composite '${t}' (kind '${o.meta.kind}')`}:o.meta.parts?j(o.meta,`${t}.${i}`,n,r+1):null:e.columns&&i in e.columns&&a?{desc:`sub-column '${i}' of composite '${t}'`}:null}function M(e,t,n){let r=t[n],i=n===t.length-1;for(let o of e){if(a(o)){if(o.key!==r)continue;return i?{relation:o.type.relation,desc:`field '${r}' (kind '${o.type.kind}')`}:j(o.type,r,t,n+1)}if(c(o)){if(!u(o)){let e=M(o.fields,t,n);if(e)return e;continue}if(o.key===r){if(i)return o.compute===void 0?null:{desc:`group '${r}' (a container)`};let e=M(o.fields,t,n+1);if(e)return e;continue}}}return null}function N(e,t){if(t.startsWith(`extend:`)){let n=t.slice(7);return e.extends_.find(e=>e.id===n).fields}let n=t.indexOf(`/`);return e.getShelf(t.slice(0,n),t.slice(n+1)).fields}function P(e,t,n,r,i){let a=`[mutate] ${t}.${n.join(`.`)}: target '${r}'`,o=t,s=N(e,o);for(let t of i.hops){let n=A(s,t);if(!n)throw new O(`${a} — unknown segment in relation hop '${t.join(`.`)}'`);if(!n.relation)throw new O(`${a} — '${t.join(`.`)}' is not a relation — it is ${n.desc}`);o=`${n.relation.library}/${n.relation.shelf}`,s=N(e,o)}if(!A(s,i.path))throw new O(`${a} — unknown segment in path '${i.path.join(`.`)}' (looked up in ${o})`);return o}function F(e,t,n){for(let r of e)if(a(r)){let e=[...t,r.key];r.type.mutate?.length&&n.push({path:e,scope:t,meta:r.type});for(let i of r.type.parts??[])i.meta.mutate?.length&&n.push({path:[...e,i.key],scope:t,meta:i.meta})}else c(r)&&F(r.fields,u(r)?[...t,r.key]:t,n)}function I(e){for(let t of e)if(c(t)){if(u(t)&&t.compute!==void 0){for(let e of t.fields)if(a(e)&&e.type.compute!==void 0)throw new O(`[mutate] group '${t.key}': child '${e.key}' carries its own value while the group already carries value — two writers for one column, drop one of the two computations.`)}I(t.fields)}}function L(e){let t=new Map;for(let[n,r]of e)for(let e of r){let r=k(n,e.from),i=k(e.toShelf,e.to.path),a=t.get(r);a?a.push(i):t.set(r,[i])}let n=new Map,r=[],i=e=>{n.set(e,1),r.push(e);for(let a of t.get(e)??[]){let e=n.get(a)??0;if(e===0){let e=i(a);if(e)return e}else if(e===1){let e=r.indexOf(a);return[...r.slice(e),a]}}return r.pop(),n.set(e,2),null};for(let e of t.keys())if((n.get(e)??0)===0){let t=i(e);if(t)return t}return null}function R(e,t,n,r){for(let i of e)if(a(i)){let e=[...n,i.key],a=i.type;a.compute!==void 0&&r.push({scope:t,path:e,cache:a.cache});for(let n of a.parts??[])n.mode===`computedStored`&&r.push({scope:t,path:[...e,n.key],cache:n.meta?.cache})}else if(c(i)){let e=u(i)?[...n,i.key]:n;u(i)&&i.compute!==void 0&&r.push({scope:t,path:e,cache:void 0}),R(i.fields,t,e,r)}}function z(e,t){let n=new Set;for(let e of t.values())for(let t of e)n.add(k(t.toShelf,t.to.path));let r=[...(e.shelves??[]).map(e=>({scope:`${e.library}/${e.shelf}`,fields:e.fields})),...(e.extends_??[]).map(e=>({scope:`extend:${e.id}`,fields:e.fields}))];for(let{scope:e,fields:t}of r){let r=[];R(t,e,[],r);for(let t of r)t.cache===void 0&&(n.has(k(t.scope,t.path))||console.warn(`[mutate-graph] ${e}: '${t.path.join(`.`)}' is a computed-and-stored unit with no incoming mutate edge and no cache — nothing will ever trigger its recompute after it is first written.`))}}function B(e){let t=new Map,n=[...(e.shelves??[]).map(e=>({scope:`${e.library}/${e.shelf}`,fields:e.fields})),...(e.extends_??[]).map(e=>({scope:`extend:${e.id}`,fields:e.fields}))];for(let{fields:e}of n)I(e);for(let{scope:r,fields:i}of n){let n=[];if(F(i,[],n),!n.length)continue;let a=[];for(let t of n)for(let n of t.meta.mutate??[]){let i=D(E(n),t.scope),o=P(e,r,t.path,n,i);a.push({from:t.path,to:i,toShelf:o})}t.set(r,a)}let r=L(t);if(r)throw new O(`[mutate] cycle: ${r.join(` -> `)}`);return z(e,t),t}var V=63,H=`__cachedAt`;V-10;var U=`_parent_id_index`;V-16;function W(e,t){for(let n of t){let t=`key`in n?n.key:void 0;if(t?.includes(`__`))throw Error(`[storage] ${e}: key '${t}' contains '__', the storage path separator — two different paths would spell one column name. Rename the key; an enclosing group's prefix supplies the '__'.`);c(n)&&W(e,n.fields)}}function G(e,t,n){if(t.length>47)throw Error(`[storage] ${e}: table name '${t}' is ${t.length} characters, over the 47-character budget (${V} minus '${U}', the identifier the ORM derives from it). PostgreSQL truncates a longer one silently. Shorten the library, the shelf, or a collection key along the path.`);let r=new Map;for(let[t,i]of h(n)){if(i.columns){if(!i.parts)throw Error(`[storage] ${e}.${t}: sets \`columns\` without \`parts\` — build a composite's columns from roles via resolveParts (see f.measured), or store the value whole with \`json: true\``);if(i.json)throw Error(`[storage] ${e}.${t}: is both a composite (\`columns\`) and JSON-stored (\`json\`) — a field persists one way or the other`)}for(let[n]of v(t,i)){let i=r.get(n);if(i!==void 0&&i!==t)throw Error(`[storage] ${e}: fields '${i}' and '${t}' both generate the column '${n}' — one value would overwrite the other and the second field would vanish from every response. Rename one.`);if(r.set(n,t),n.length>53)throw Error(`[storage] ${e}.${t}: generated column '${n}' is ${n.length} characters, over the 53-character budget (${V} minus '${H}'). PostgreSQL truncates a longer one silently. Shorten a key along the path.`)}}W(e,n);for(let r of m(n))G(`${e}/${r.key}`,`${t}__${r.key}`,r.group.fields)}function K(e,t={}){let i=t.disabled??new Set,o=e.filter(e=>!i.has(e.id)),s=new Map;for(let e of o){for(let t of e.libraries??[])for(let n of t.shelves)s.set(`${n.library}/${n.shelf}`,e.id);for(let t of e.libraryShelves??[])s.set(`${t.library}/${t.shelf}`,e.id)}let u=(e,t)=>s.get(`${e}/${t}`);for(let e of o)for(let t of e.dependsOn)if(i.has(t))throw Error(`[plugin] '${e.id}' is enabled, but its dependency '${t}' is disabled`);let m=ee(o),{order:v,libraries:x}=m,S=m.shelves.map(n),C=m.extends_.map(n),w=new Map(o.filter(e=>e.settings).map(e=>[e.id,n(e.settings).fields]));for(let e of t.settingsGroups??[])if(w.has(e.id))throw Error(`[settings] group '${e.id}' is declared by a plugin and passed in by the caller — pick one owner`);let T=[...[...w].map(([e,t])=>({id:e,fields:t})),...t.settingsGroups??[]],E=new Map;for(let e of o)for(let t of e.fieldContribs??[]){let e=`${t.library}/${t.shelf}/${t.field}`,n=E.get(e)??{options:[],suggestions:[]};t.options&&n.options.push(...t.options),t.suggestions&&n.suggestions.push(...t.suggestions),E.set(e,n)}let D=(e,t)=>{if(t.options.length){let n=new Set((e.options??[]).map(e=>e.value));e.options=[...e.options??[],...t.options.filter(e=>!n.has(e.value))]}if(t.suggestions.length){let n=e.hints.suggestions??[],r=new Set(n);e.hints.suggestions=[...n,...t.suggestions.filter(e=>!r.has(e))]}},O=new Map;for(let e of te)O.set(e.name,e.options);for(let e of o)for(let t of e.optionLists??[])O.set(t.name,t.options);let k=e=>O.get(e)??[];for(let[e,t,n]of[...S.map(e=>[`${e.library}/${e.shelf}`,`${e.library}__${e.shelf}`,e.fields]),...T.map(e=>[`_settings/${e.id}`,`_settings__${e.id}`,e.fields]),...C.map(e=>[`extend/${e.id}`,`extend__${e.id}`,e.fields])])G(e,t,n);for(let e of S)for(let[t,n]of h(e.fields)){let r=E.get(`${e.library}/${e.shelf}/${t}`);r&&D(n,r)}for(let e of T)for(let[t,n]of h(e.fields)){let i=E.get(`_settings/${e.id}/${t}`);i&&(D(n,i),l(n)&&n.options?.length&&r(n,n.options.map(e=>e.value)))}let A=new Map;for(let e of S)for(let[t,n]of h(e.fields)){let i=n.hints.source,a=n.options??[],o=i?O.get(i)??[]:[],s=new Set(a.map(e=>e.value)),c=[...a,...o.filter(e=>!s.has(e.value))];l(n)&&c.length&&r(n,c.map(e=>e.value)),c.length&&(n.options=c,A.set(`${e.library}/${e.shelf}/${t}`,c))}let j=e=>{let t=[];for(let n of e)a(n)?t.push(n.type):c(n)&&t.push(...j(n.fields));return t};for(let e of C)for(let t of j(e.fields)){if(!l(t))continue;let e=t.hints.source;if(!e)continue;let n=O.get(e)??[],i=t.options??[],a=new Set(i.map(e=>e.value)),o=[...i,...n.filter(e=>!a.has(e.value))];o.length&&r(t,o.map(e=>e.value))}let M=(e,t,n)=>{let r=e[t];if(!r)throw Error(n);return r},N=[];for(let e of o)for(let t of e.showcases??[]){let e=S.find(e=>e.library===t.source.library&&e.shelf===t.source.shelf);if(!e)throw Error(`[showcase] ${t.library}/${t.id}: unknown source shelf ${t.source.library}/${t.source.shelf}`);let n=Object.fromEntries(h(e.fields));for(let e of p(t.filter)){let r=M(n,e,`[showcase] ${t.library}/${t.id}: filter field '${e}' is not in ${t.source.library}/${t.source.shelf}`),i=f(t.filter,e),a=i.filter(e=>y.has(e));if(a.length&&!r.hints.multiple)throw Error(`[showcase] ${t.library}/${t.id}: operator '${a[0]}' on '${e}' needs a multiple field, but ${t.source.library}/${t.source.shelf}.${e} stores a single value`);if(d(r)&&a.length!==i.length)throw Error(`[showcase] ${t.library}/${t.id}: filter field '${e}' is stored as JSON — only ${[...y].join(`/`)} applies`);if(r.columns)throw Error(`[showcase] ${t.library}/${t.id}: filter field '${e}' is a composite scalar stored across sub-columns`)}let r=g(e);for(let e of t.columns){if(!n[e])throw Error(`[showcase] ${t.library}/${t.id}: column '${e}' is not in ${t.source.library}/${t.source.shelf}`);if(!r.includes(e))throw Error(`[showcase] ${t.library}/${t.id}: column '${e}' is outside ${t.source.library}/${t.source.shelf}'s list projection (views.list/groupBy/inline) and would render blank`)}if(t.defaultGroupBy!==void 0){if(!n[t.defaultGroupBy])throw Error(`[showcase] ${t.library}/${t.id}: defaultGroupBy '${t.defaultGroupBy}' is not in ${t.source.library}/${t.source.shelf}`);if(!_(e).includes(t.defaultGroupBy))throw Error(`[showcase] ${t.library}/${t.id}: defaultGroupBy '${t.defaultGroupBy}' is not a grouping candidate of ${t.source.library}/${t.source.shelf} (views.groupBy)`)}if(N.some(e=>e.library===t.library&&e.id===t.id))throw Error(`[showcase] duplicate ${t.library}/${t.id}`);N.push(t)}let P=[...S.map(e=>({label:`${e.library}/${e.shelf}`,fields:e.fields})),...C.map(e=>({label:`extend '${e.id}'`,fields:e.fields}))];for(let{label:e,fields:t}of P)for(let[n,r]of h(t)){let t=r.relation;if(!t)continue;let i=S.find(e=>e.library===t.library&&e.shelf===t.shelf);if(!i)throw Error(`[relation] ${e}.${n}: unknown target shelf ${t.library}/${t.shelf}`);if(!t.filter)continue;let a=Object.fromEntries(h(i.fields));for(let r of p(t.filter))M(a,r,`[relation] ${e}.${n}: filter key '${r}' is not in ${t.library}/${t.shelf}`)}let F={order:v,libraries:x,shelves:S,extends_:C,showcases:N,getShowcase:(e,t)=>N.find(n=>n.library===e&&n.id===t),getShowcasesFor:e=>N.filter(t=>t.library===e),getShelf:(e,t)=>S.find(n=>n.library===e&&n.shelf===t),getLibrary:e=>x.find(t=>t.meta.id===e),getExtendsFor:(e,t)=>C.filter(n=>b(n,e,t)),getFieldOptions:(e,t,n)=>A.get(`${e}/${t}/${n}`)??[],getOptionList:k,getShelfOwner:u,mutateGraph:new Map};return F.mutateGraph=B(F),F}var q=null;function J(e){q=K(e)}function Y(){if(!q)throw Error(`[registry] not initialized — call initRegistry() in the boot loader`);return q}var X=(e,t)=>Y().getShelf(e,t),Z=(e,t)=>Y().getExtendsFor(e,t),ne=e=>Y().getOptionList(e),re=(e,t)=>Y().getShowcase(e,t),ie=e=>Y().getShowcasesFor(e),ae=()=>Y().libraries,oe=()=>Y().shelves,se=()=>Y().extends_,Q=20,$=new Map;function ce(e){let t=$.get(e);if(t)return $.delete(e),$.set(e,t),t}function le(e,t){for($.delete(e),$.set(e,{rows:t,ts:Date.now()});$.size>Q;){let e=$.keys().next();if(e.done)break;$.delete(e.value)}}function ue(e){for(let t of[...$.keys()])(t===e||t.startsWith(`${e}?`))&&$.delete(t)}function de(e,t){let n=String(t.id??``);if(n)for(let[r,i]of $){if(r!==e&&!r.startsWith(`${e}?`))continue;let a=!1,o=i.rows.map(e=>{if(String(e.id)!==n)return e;a=!0;let r={...e};for(let n of Object.keys(e))n in t&&(r[n]=t[n]);return r});a&&$.set(r,{rows:o,ts:i.ts})}}export{se as a,ne as c,re as d,ie as f,le as i,X as l,S as m,de as n,Z as o,J as p,ce as r,ae as s,ue as t,oe as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e}from"./fields-BtCN_frr.js";function t(t){return e(t)}export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,H as n,L as r,P as i,S as a,T as o,U as s,a as c,c as l,d as u,i as d,l as f,o as ee,p as te,v as ne,y as re}from"./fields-DMchbbOm.js";var ie=/^[a-z][a-z0-9+.-]*:\/\//i;function p(e){let t=e.trim();if(!t)return null;let n=ie.test(t),r;try{r=new URL(n?t:`http://${t}`)}catch{return{host:t}}let i={};return n&&(i.scheme=r.protocol.replace(/:$/,``)),r.username&&(i.username=r.username),r.password&&(i.password=r.password),r.hostname&&(i.host=r.hostname),r.port&&(i.port=Number(r.port)),r.pathname&&r.pathname!==`/`&&(i.path=r.pathname),r.search&&(i.query=r.search.slice(1)),r.hash&&(i.hash=r.hash.slice(1)),i}function m(e){return e?`${e.scheme?`${e.scheme}://`:``}${e.username?`${e.username}${e.password?`:${e.password}`:``}@`:``}${e.host??``}${e.port==null?``:`:${e.port}`}${e.path??``}${e.query?`?${e.query}`:``}${e.hash?`#${e.hash}`:``}`:``}function ae(e){return!e||!m(e)?``:e.scheme?m(e):`https://${m(e)}`}var h=function(e,t){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},h(e,t)};function g(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);h(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var _=function(e){var t=`[object `+e+`]`;return function(e){return oe(e)===t}},oe=function(e){return Object.prototype.toString.call(e)},v=function(e){return e instanceof Date?e.getTime():y(e)?e.map(v):e&&typeof e.toJSON==`function`?e.toJSON():e},se=function(e){return e??null},y=_(`Array`),ce=_(`Object`),b=_(`Function`),le=function(e,t){return e.hasOwnProperty(t)&&!b(e[t])},ue=function(e){return e&&(e.constructor===Object||e.constructor===Array||e.constructor.toString()===`function Object() { [native code] }`||e.constructor.toString()===`function Array() { [native code] }`)&&!e.toJSON},x=function(e,t){if(e==null&&e==t||e===t)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(t))return!1;if(y(e)){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;n++)if(!x(e[n],t[n]))return!1;return!0}else if(ce(e)){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var i in e)if(!x(e[i],t[i]))return!1;return!0}return!1},S=function(e,t,n,r,i,a){var o=t[r];if(y(e)&&isNaN(Number(o))&&!le(e,o)){for(var s=0,c=e.length;s<c;s++)if(!S(e[s],t,n,r,s,e))return!1}return r===t.length||e==null?n(e,i,a,r===0,r===t.length):S(e[o],t,n,r+1,o,e)},C=function(){function e(e,t,n,r){this.params=e,this.owneryQuery=t,this.options=n,this.name=r,this.init()}return e.prototype.init=function(){},e.prototype.reset=function(){this.done=!1,this.keep=!1},e}(),w=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r)||this;return a.children=i,a}return t.prototype.reset=function(){this.keep=!1,this.done=!1;for(var e=0,t=this.children.length;e<t;e++)this.children[e].reset()},t.prototype.childrenNext=function(e,t,n,r,i){for(var a=!0,o=!0,s=0,c=this.children.length;s<c;s++){var l=this.children[s];if(l.done||l.next(e,t,n,r,i),l.keep||(o=!1),l.done){if(!l.keep)break}else a=!1}this.done=a,this.keep=o},t}(C),de=function(e){g(t,e);function t(t,n,r,i,a){var o=e.call(this,t,n,r,i)||this;return o.name=a,o}return t}(w),fe=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(w),T=function(e){g(t,e);function t(t,n,r,i,a){var o=e.call(this,n,r,i,a)||this;return o.keyPath=t,o.propop=!0,o._nextNestedValue=function(e,t,n,r,i){return o.childrenNext(e,t,n,r,i),!o.done},o}return t.prototype.next=function(e,t,n){S(e,this.keyPath,this._nextNestedValue,0,t,n)},t}(w),E=function(e,t){if(e instanceof Function)return e;if(e instanceof RegExp)return function(t){var n=typeof t==`string`&&e.test(t);return e.lastIndex=0,n};var n=v(e);return function(e){return t(n,v(e))}},D=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._test=E(this.params,this.options.compare)},t.prototype.next=function(e,t,n){(!Array.isArray(n)||n.hasOwnProperty(t))&&this._test(e,t,n)&&(this.done=!0,this.keep=!0)},t}(C),pe=function(e){return function(t,n,r,i){return e(t,n,r,i)}},O=function(e){return pe(function(t,n,r,i){var a=typeof v(t),o=e(t);return new D(function(e){var t=se(e);return typeof v(t)===a&&o(t)},n,r,i)})},me=function(e,t,n,r){var i=r.operations[e];return i||k(e),i(t,n,r,e)},k=function(e){throw Error(`Unsupported operation: ${e}`)},he=function(e,t){for(var n in e)if(t.operations.hasOwnProperty(n)||n.charAt(0)===`$`)return!0;return!1},ge=function(e,t,n,r,i){if(he(t,i)){var a=j(t,n,i),o=a[0];if(a[1].length)throw Error(`Property queries must contain only operations, or exact objects.`);return new T(e,t,r,i,o)}return new T(e,t,r,i,[new D(t,r,i)])},A=function(e,t,n){t===void 0&&(t=null);var r=n===void 0?{}:n,i=r.compare,a=r.operations,o={compare:i||x,operations:Object.assign({},a||{})},s=j(e,null,o),c=s[0],l=s[1],u=[];return c.length&&u.push(new T([],e,t,o,c)),u.push.apply(u,l),u.length===1?u[0]:new fe(e,t,o,u)},j=function(e,t,n){var r=[],i=[];if(!ue(e))return r.push(new D(e,e,n)),[r,i];for(var a in e)if(n.operations.hasOwnProperty(a)){var o=me(a,e[a],e,n);if(o&&!o.propop&&t&&!n.operations[t])throw Error(`Malformed query. ${a} cannot be matched against property.`);o!=null&&r.push(o)}else a.charAt(0)===`$`?k(a):i.push(ge(a.split(`.`),e[a],a,e,n));return[r,i]},_e=function(e){return function(t,n,r){return e.reset(),e.next(t,n,r),e.keep}},ve=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._test=E(this.params,this.options.compare)},t.prototype.reset=function(){e.prototype.reset.call(this),this.keep=!0},t.prototype.next=function(e){this._test(e)&&(this.done=!0,this.keep=!1)},t}(C),ye=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){if(!this.params||typeof this.params!=`object`)throw Error(`Malformed query. $elemMatch must by an object.`);this._queryOperation=A(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){e.prototype.reset.call(this),this._queryOperation.reset()},t.prototype.next=function(e){if(y(e)){for(var t=0,n=e.length;t<n;t++){this._queryOperation.reset();var r=e[t];this._queryOperation.next(r,t,e,!1),this.keep=this.keep||this._queryOperation.keep}this.done=!0}else this.done=!1,this.keep=!1},t}(C),be=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._queryOperation=A(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){e.prototype.reset.call(this),this._queryOperation.reset()},t.prototype.next=function(e,t,n,r){this._queryOperation.next(e,t,n,r),this.done=this._queryOperation.done,this.keep=!this._queryOperation.keep},t}(C),M=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){},t.prototype.next=function(e){y(e)&&e.length===this.params&&(this.done=!0,this.keep=!0)},t}(C),xe=function(e){if(e.length===0)throw Error(`$and/$or/$nor must be a nonempty array`)},Se=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!1,t}return t.prototype.init=function(){var e=this;xe(this.params),this._ops=this.params.map(function(t){return A(t,null,e.options)})},t.prototype.reset=function(){this.done=!1,this.keep=!1;for(var e=0,t=this._ops.length;e<t;e++)this._ops[e].reset()},t.prototype.next=function(e,t,n){for(var r=!1,i=!1,a=0,o=this._ops.length;a<o;a++){var s=this._ops[a];if(s.next(e,t,n),s.keep){r=!0,i=s.keep;break}}this.keep=i,this.done=r},t}(C),Ce=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!1,t}return t.prototype.next=function(t,n,r){e.prototype.next.call(this,t,n,r),this.keep=!this.keep},t}(Se),we=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){var e=this,t=Array.isArray(this.params)?this.params:[this.params];this._testers=t.map(function(t){if(he(t,e.options))throw Error(`cannot nest \$ under ${e.name.toLowerCase()}`);return E(t,e.options.compare)})},t.prototype.next=function(e,t,n){for(var r=!1,i=!1,a=0,o=this._testers.length;a<o;a++){var s=this._testers[a];if(s(e)){r=!0,i=!0;break}}this.keep=i,this.done=r},t}(C),Te=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,i)||this;return a.propop=!0,a._in=new we(t,n,r,i),a}return t.prototype.next=function(e,t,n,r){this._in.next(e,t,n),y(n)&&!r?this._in.keep?(this.keep=!1,this.done=!0):t==n.length-1&&(this.keep=!0,this.done=!0):(this.keep=!this._in.keep,this.done=!0)},t.prototype.reset=function(){e.prototype.reset.call(this),this._in.reset()},t}(C),Ee=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.next=function(e,t,n,r,i){i?n.hasOwnProperty(t)===this.params&&(this.done=!0,this.keep=!0):(this.done=!0,this.keep=!this.params)},t}(C),De=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,t.map(function(e){return A(e,n,r)}),i)||this;return a.propop=!1,xe(t),a}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(de),Oe=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,t.map(function(e){return A(e,n,r)}),i)||this;return a.propop=!0,a}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(de),ke=function(e,t,n){return new D(e,t,n)},Ae=function(e,t,n,r){return new ve(e,t,n,r)},je=function(e,t,n,r){return new Se(e,t,n,r)},Me=function(e,t,n,r){return new Ce(e,t,n,r)},Ne=function(e,t,n,r){return new ye(e,t,n,r)},Pe=function(e,t,n,r){return new Te(e,t,n,r)},Fe=function(e,t,n,r){return new we(e,t,n,r)},Ie=O(function(e){return function(t){return t!=null&&t<e}}),Le=O(function(e){return function(t){return t===e||t<=e}}),Re=O(function(e){return function(t){return t!=null&&t>e}}),ze=O(function(e){return function(t){return t===e||t>=e}}),Be=function(e,t,n){var r=e[0],i=e[1];return new D(function(e){return v(e)%r===i},t,n)},Ve=function(e,t,n,r){return new Ee(e,t,n,r)},He=function(e,t,n){return new D(new RegExp(e,t.$options),t,n)},Ue=function(e,t,n,r){return new be(e,t,n,r)},We={number:function(e){return typeof e==`number`},string:function(e){return typeof e==`string`},bool:function(e){return typeof e==`boolean`},array:function(e){return Array.isArray(e)},null:function(e){return e===null},timestamp:function(e){return e instanceof Date}},Ge=Object.freeze({__proto__:null,$Size:M,$all:function(e,t,n,r){return new Oe(e,t,n,r)},$and:function(e,t,n,r){return new De(e,t,n,r)},$elemMatch:Ne,$eq:ke,$exists:Ve,$gt:Re,$gte:ze,$in:Fe,$lt:Ie,$lte:Le,$mod:Be,$ne:Ae,$nin:Pe,$nor:Me,$not:Ue,$options:function(){return null},$or:je,$regex:He,$size:function(e,t,n){return new M(e,t,n,`$size`)},$type:function(e,t,n){return new D(function(t){if(typeof e==`string`){if(!We[e])throw Error(`Type alias does not exist`);return We[e](t)}return t==null?!1:t instanceof e||t.constructor===e},t,n)},$where:function(e,t,n){var r;if(b(e))r=e;else if(!{}.CSP_ENABLED)r=Function(`obj`,`return `+e);else throw Error(`In CSP mode, sift does not support strings in "$where" condition`);return new D(function(e){return r.bind(e)(e)},t,n)}}),Ke=function(e,t,n){var r=n===void 0?{}:n,i=r.compare,a=r.operations;return A(e,t,{compare:i,operations:Object.assign({},Ge,a||{})})},qe=function(e,t){return t===void 0&&(t={}),_e(Ke(e,null,t))},Je=new Set([`$eq`,`$ne`,`$gt`,`$gte`,`$lt`,`$lte`]),Ye=new Set([`$in`,`$nin`]),Xe=new Set([`$contains`]),Ze=qe.createEqualsOperation,Qe=e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`,$e=(e,t)=>String(e)===String(t),et={$contains(e,t,n){return Ze(t=>Array.isArray(t)&&t.some(t=>$e(t,e)),t,n)}};function N(e,t){if(!e)return!0;try{return qe(e,{operations:et})(t)}catch{return!1}}function P(e,t){return typeof e==`boolean`?e:e?N(e,t):!1}function tt(e,t,n){if(Qe(t))return[`${e} = ${n(t)}`];let r=[];for(let[i,a]of Object.entries(t))if(a!==void 0)switch(i){case`$eq`:r.push(`${e} = ${n(a)}`);break;case`$ne`:r.push(`${e} ≠ ${n(a)}`);break;case`$gt`:r.push(`${e} > ${String(a)}`);break;case`$lt`:r.push(`${e} < ${String(a)}`);break;case`$gte`:r.push(`${e} ≥ ${String(a)}`);break;case`$lte`:r.push(`${e} ≤ ${String(a)}`);break;case`$in`:r.push(`${e} ∈ {${a.map(n).join(`, `)}}`);break;case`$nin`:r.push(`${e} ∉ {${a.map(n).join(`, `)}}`);break;case`$contains`:r.push(`${e} contains ${n(a)}`);break;default:break}return r}function F(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e))if(r!==void 0){if(n===`$and`||n===`$or`){for(let e of r)t.push(...F(e));continue}t.push(n)}return[...new Set(t)]}function I(e,t){if(!e)return[];let n=[];for(let[r,i]of Object.entries(e))if(i!==void 0){if(r===`$and`||r===`$or`){for(let e of i)n.push(...I(e,t));continue}r===t&&(typeof i==`object`&&i&&!Array.isArray(i)?n.push(...Object.keys(i)):n.push(`$eq`))}return[...new Set(n)]}function nt(e,t,n){let r=n===void 0?void 0:new Set(Array.isArray(n)?n:[n]);return e.filter(e=>r!==void 0&&e.value!==void 0&&r.has(e.value)||!e.when||N(e.when,t))}function L(e,t,n){if(!e)return[];let r=[];for(let[i,a]of Object.entries(e))if(a!==void 0){if(i===`$and`){for(let e of a)r.push(...L(e,t,n));continue}if(i===`$or`){let e=a.map(e=>L(e,t,n)).filter(e=>e.length>0).map(e=>e.length>1?`(${e.join(` and `)})`:e[0]);e.length&&r.push(e.join(` or `));continue}r.push(...tt(t(i),a,e=>n?n(i,e):String(e)))}return r}function R(e){let t=[];for(let n of e){let e=o(n)?a(n):n;if(u(e))t.push([e.key,e.type]);else if(d(e)){if(l(e))continue;let n=f(e)?`${e.key}__`:``;for(let[r,i]of R(e.fields))t.push([n+r,i])}}return t}function rt(e,t){return t.columns?Object.entries(t.columns).map(([t,n])=>[`${e}__${t}`,n]):[[e,t.column]]}function z(e,t,n,r){let i={},a=!1;for(let o of e.parts??[]){let e=`${t}__${o.key}`;if(o.meta.parts){let t=z(o.meta,e,n,r);t!==void 0&&(i[o.key]=t,a=!0);continue}if(!(e in n))continue;let s=n[e];r?.(e),i[o.key]=s,s!=null&&s!==``&&(a=!0)}return a?i:void 0}function it(e,t,n){return!e.columns||n[t]!==void 0?n[t]:z(e,t,n)}function at(e){if(e.columns)return Object.keys(e.columns)[0]}function ot(e,t){let n=e;for(let e of t.split(`__`)){if(typeof n!=`object`||!n||Array.isArray(n))return;n=n[e]}return n}function st(e,t,n){let r=e=>e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{},i=t.split(`__`),a=r(e),o=a;for(let e of i.slice(0,-1))o[e]=r(o[e]),o=o[e];return o[i[i.length-1]]=n,a}function B(e){let t=[];for(let n of e){let e=o(n)?a(n):n;d(e)&&(l(e)?t.push({key:e.key,group:e}):t.push(...B(e.fields)))}return t}var V=new WeakMap;function H(e){let t=V.get(e);return t||(t=Object.fromEntries(R(e)),V.set(e,t)),t}function U(e,t){for(let n of e){if(`value`in n&&typeof n.value==`function`)throw Error(`${t}: computed element needs a key — the server computes it and needs a name to return it under`);d(n)&&U(n.fields,t)}}function W(e,t,n=``){for(let r of e){if(d(r)){W(r.fields,t,te(r)?`${n}${r.key}.`:n);continue}if(!(ee(r)&&r.key!==void 0)||!r.type.parts)continue;let e=re(r.type.parts);if(!e)continue;let i=ne(r.type.required,r.type.parts);i.length&&console.warn(`${t}: composite '${n}${r.key}' mandates a client-owned stored part (${i.join(`, `)}) and mixes it with a server-owned stored part (${e.server.join(`, `)}) — a mandated part is the client's to declare, so the write path does NOT materialize this composite and the computed part stays absent until a client sends the field. Either drop \`required\` (from the field or from the ${i.join(`/`)} filling), or give every stored part a \`value\` (the composite becomes fully server-owned).`)}}function G(e,t){U(e,t),W(e,t)}function ct(e){let n=t(e),r=R(n.fields).map(([e])=>e),i=r.find((e,t)=>r.indexOf(e)!==t);if(i)throw Error(`[shelf] ${n.library}/${n.shelf}: duplicate key '${i}'`);if(n.single&&!n.claude)throw Error(`[shelf] ${n.library}/${n.shelf}: single shelf requires \`claude\` — the agent cannot find it otherwise`);if(n.views?.list!==void 0&&!Array.isArray(n.views.list))throw Error(`[shelf] ${n.library}/${n.shelf}: views.list is a flat array of field keys — the { kind, fields } form is gone; use views.list: [...] plus views.listKind`);if(n.standalone!==!1&&!n.single&&!n.views?.list?.length&&console.warn(`[shelf] ${n.library}/${n.shelf}: standalone shelf without an explicit views.list`),n.views?.title&&!K(n.fields).some(([e])=>e===n.views.title))throw Error(`[shelf] ${n.library}/${n.shelf}: views.title '${n.views.title}' is not a field`);n.views?.list?.includes(q(n))&&console.warn(`[shelf] ${n.library}/${n.shelf}: views.list repeats the title '${q(n)}' — the title is declared separately`);let a=K(n.fields).filter(([,e])=>e.kind===`title`);return a.length>1&&console.warn(`[shelf] ${n.library}/${n.shelf}: ${a.length} title fields (${a.map(([e])=>e).join(`, `)}) — '${a[0][0]}' wins`),n.standalone!==!1&&!n.single&&q(n)===`id`&&console.warn(`[shelf] ${n.library}/${n.shelf}: no title declared (field.title() or views.title) — the record renders no heading`),G(n.fields,`[shelf] ${n.library}/${n.shelf}`),n}function K(e){let t=[];for(let n of e)u(n)?t.push([n.key,n.type]):d(n)&&!l(n)&&!f(n)&&t.push(...K(n.fields));return t}function q(e){if(e.views?.title)return e.views.title;let t=K(e.fields).find(([,e])=>e.kind===`title`);return t?t[0]:`id`}function J(e,t){return String(t[q(e)]??t.id??``)}function Y(e,t){let n=H(e.fields);return t.filter(e=>n[e])}var lt=new Set([`image`,`media`,`avatar`,`cover`]),X=e=>lt.has(e);function Z(e){let t=e.views?.inline?.length?Y(e,e.views.inline):[];return t.length?t:[q(e)]}function ut(e){let t=H(e.fields);return Z(e).find(e=>t[e]&&X(t[e].kind))}function dt(e,t){let n=H(e.fields);return Z(e).reduce((e,r)=>{if(!n[r]||!X(n[r].kind)){let n=t[r];n!=null&&n!==``&&e.push(String(n))}return e},[]).join(` `).trim()||J(e,t)}function ft(e){let t=q(e);return[t,...e.views?.list?.length?Y(e,e.views.list.filter(e=>e!==t)):[]]}function pt(e){return e.views?.listKind??`table`}var mt=new Set([`checkbox`,`relation`]);function Q(e){return e.views?.groupBy?.length?Y(e,e.views.groupBy):R(e.fields).filter(([,e])=>mt.has(e.prim)||c(e)).map(([e])=>e)}function ht(e){let t=e.views?.defaultGroupBy;return t&&H(e.fields)[t]?t:Q(e)[0]}function gt(e){return R(e.fields).find(([,e])=>e.kind===`cover`)?.[0]}function _t(e){let t=H(e.fields),n=[],r=e=>{!e||e===`id`||n.includes(e)||t[e]&&n.push(e)};r(q(e)),ft(e).forEach(r),Q(e).forEach(r),Z(e).forEach(r),r(ut(e)),r(gt(e));let i=e.views?.select;return i&&(r(i.icon),(Array.isArray(i.title)?i.title:[i.title]).forEach(r),r(i.subtitle)),[`id`,...n]}function $(t,a){let o={};for(let c of t)if(u(c)){if(c.type.compute){o[c.key]=e({error:()=>i(`derived`)}).optional();continue}o[c.key]=a?c.type.zod.optional():c.type.zod}else if(d(c))if(l(c)){let e=r(n($(c.fields,a)).passthrough());o[c.key]=a?e.optional():c.required?e:e.optional()}else if(f(c)){let e=n($(c.fields,a)).passthrough();c.kind===`url`&&(e=s(e=>typeof e==`string`?p(e)??{}:e,e)),o[c.key]=a?e.optional():c.required?e:e.optional()}else Object.assign(o,$(c.fields,a));return o}var vt=e=>e==null||e===``||Array.isArray(e)&&e.length===0;function yt(e,t,n){return e.superRefine((e,r)=>{for(let[i,a]of R(t.fields))i.includes(`__`)||n&&!(i in e)||a.required!==!0&&P(a.required,e)&&vt(e[i])&&r.addIssue({code:`custom`,path:[i],message:JSON.stringify({code:`required`})})})}function bt(e){return yt(n($(e.fields,!1)),e,!1)}function xt(e){return yt(n($(e.fields,!0)),e,!0)}export{P as A,Ye as C,I as D,F as E,m as M,ae as N,L as O,p as P,st as S,Je as T,J as _,B as a,q as b,R as c,ut as d,dt as f,at as g,pt as h,G as i,nt as j,N as k,H as l,_t as m,xt as n,ht as o,X as p,it as r,ct as s,bt as t,Q as u,rt as v,Xe as w,ft as x,ot as y};
|
|
1
|
+
import{B as e,C as t,H as n,L as r,P as i,S as a,T as o,U as s,a as c,c as l,d as u,i as d,l as f,o as ee,p as te,v as ne,y as re}from"./fields-BtCN_frr.js";var ie=/^[a-z][a-z0-9+.-]*:\/\//i;function p(e){let t=e.trim();if(!t)return null;let n=ie.test(t),r;try{r=new URL(n?t:`http://${t}`)}catch{return{host:t}}let i={};return n&&(i.scheme=r.protocol.replace(/:$/,``)),r.username&&(i.username=r.username),r.password&&(i.password=r.password),r.hostname&&(i.host=r.hostname),r.port&&(i.port=Number(r.port)),r.pathname&&r.pathname!==`/`&&(i.path=r.pathname),r.search&&(i.query=r.search.slice(1)),r.hash&&(i.hash=r.hash.slice(1)),i}function m(e){return e?`${e.scheme?`${e.scheme}://`:``}${e.username?`${e.username}${e.password?`:${e.password}`:``}@`:``}${e.host??``}${e.port==null?``:`:${e.port}`}${e.path??``}${e.query?`?${e.query}`:``}${e.hash?`#${e.hash}`:``}`:``}function ae(e){return!e||!m(e)?``:e.scheme?m(e):`https://${m(e)}`}var h=function(e,t){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},h(e,t)};function g(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);h(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var _=function(e){var t=`[object `+e+`]`;return function(e){return oe(e)===t}},oe=function(e){return Object.prototype.toString.call(e)},v=function(e){return e instanceof Date?e.getTime():y(e)?e.map(v):e&&typeof e.toJSON==`function`?e.toJSON():e},se=function(e){return e??null},y=_(`Array`),ce=_(`Object`),b=_(`Function`),le=function(e,t){return e.hasOwnProperty(t)&&!b(e[t])},ue=function(e){return e&&(e.constructor===Object||e.constructor===Array||e.constructor.toString()===`function Object() { [native code] }`||e.constructor.toString()===`function Array() { [native code] }`)&&!e.toJSON},x=function(e,t){if(e==null&&e==t||e===t)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(t))return!1;if(y(e)){if(e.length!==t.length)return!1;for(var n=0,r=e.length;n<r;n++)if(!x(e[n],t[n]))return!1;return!0}else if(ce(e)){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var i in e)if(!x(e[i],t[i]))return!1;return!0}return!1},S=function(e,t,n,r,i,a){var o=t[r];if(y(e)&&isNaN(Number(o))&&!le(e,o)){for(var s=0,c=e.length;s<c;s++)if(!S(e[s],t,n,r,s,e))return!1}return r===t.length||e==null?n(e,i,a,r===0,r===t.length):S(e[o],t,n,r+1,o,e)},C=function(){function e(e,t,n,r){this.params=e,this.owneryQuery=t,this.options=n,this.name=r,this.init()}return e.prototype.init=function(){},e.prototype.reset=function(){this.done=!1,this.keep=!1},e}(),w=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r)||this;return a.children=i,a}return t.prototype.reset=function(){this.keep=!1,this.done=!1;for(var e=0,t=this.children.length;e<t;e++)this.children[e].reset()},t.prototype.childrenNext=function(e,t,n,r,i){for(var a=!0,o=!0,s=0,c=this.children.length;s<c;s++){var l=this.children[s];if(l.done||l.next(e,t,n,r,i),l.keep||(o=!1),l.done){if(!l.keep)break}else a=!1}this.done=a,this.keep=o},t}(C),de=function(e){g(t,e);function t(t,n,r,i,a){var o=e.call(this,t,n,r,i)||this;return o.name=a,o}return t}(w),fe=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(w),T=function(e){g(t,e);function t(t,n,r,i,a){var o=e.call(this,n,r,i,a)||this;return o.keyPath=t,o.propop=!0,o._nextNestedValue=function(e,t,n,r,i){return o.childrenNext(e,t,n,r,i),!o.done},o}return t.prototype.next=function(e,t,n){S(e,this.keyPath,this._nextNestedValue,0,t,n)},t}(w),E=function(e,t){if(e instanceof Function)return e;if(e instanceof RegExp)return function(t){var n=typeof t==`string`&&e.test(t);return e.lastIndex=0,n};var n=v(e);return function(e){return t(n,v(e))}},D=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._test=E(this.params,this.options.compare)},t.prototype.next=function(e,t,n){(!Array.isArray(n)||n.hasOwnProperty(t))&&this._test(e,t,n)&&(this.done=!0,this.keep=!0)},t}(C),pe=function(e){return function(t,n,r,i){return e(t,n,r,i)}},O=function(e){return pe(function(t,n,r,i){var a=typeof v(t),o=e(t);return new D(function(e){var t=se(e);return typeof v(t)===a&&o(t)},n,r,i)})},me=function(e,t,n,r){var i=r.operations[e];return i||k(e),i(t,n,r,e)},k=function(e){throw Error(`Unsupported operation: ${e}`)},he=function(e,t){for(var n in e)if(t.operations.hasOwnProperty(n)||n.charAt(0)===`$`)return!0;return!1},ge=function(e,t,n,r,i){if(he(t,i)){var a=j(t,n,i),o=a[0];if(a[1].length)throw Error(`Property queries must contain only operations, or exact objects.`);return new T(e,t,r,i,o)}return new T(e,t,r,i,[new D(t,r,i)])},A=function(e,t,n){t===void 0&&(t=null);var r=n===void 0?{}:n,i=r.compare,a=r.operations,o={compare:i||x,operations:Object.assign({},a||{})},s=j(e,null,o),c=s[0],l=s[1],u=[];return c.length&&u.push(new T([],e,t,o,c)),u.push.apply(u,l),u.length===1?u[0]:new fe(e,t,o,u)},j=function(e,t,n){var r=[],i=[];if(!ue(e))return r.push(new D(e,e,n)),[r,i];for(var a in e)if(n.operations.hasOwnProperty(a)){var o=me(a,e[a],e,n);if(o&&!o.propop&&t&&!n.operations[t])throw Error(`Malformed query. ${a} cannot be matched against property.`);o!=null&&r.push(o)}else a.charAt(0)===`$`?k(a):i.push(ge(a.split(`.`),e[a],a,e,n));return[r,i]},_e=function(e){return function(t,n,r){return e.reset(),e.next(t,n,r),e.keep}},ve=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._test=E(this.params,this.options.compare)},t.prototype.reset=function(){e.prototype.reset.call(this),this.keep=!0},t.prototype.next=function(e){this._test(e)&&(this.done=!0,this.keep=!1)},t}(C),ye=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){if(!this.params||typeof this.params!=`object`)throw Error(`Malformed query. $elemMatch must by an object.`);this._queryOperation=A(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){e.prototype.reset.call(this),this._queryOperation.reset()},t.prototype.next=function(e){if(y(e)){for(var t=0,n=e.length;t<n;t++){this._queryOperation.reset();var r=e[t];this._queryOperation.next(r,t,e,!1),this.keep=this.keep||this._queryOperation.keep}this.done=!0}else this.done=!1,this.keep=!1},t}(C),be=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){this._queryOperation=A(this.params,this.owneryQuery,this.options)},t.prototype.reset=function(){e.prototype.reset.call(this),this._queryOperation.reset()},t.prototype.next=function(e,t,n,r){this._queryOperation.next(e,t,n,r),this.done=this._queryOperation.done,this.keep=!this._queryOperation.keep},t}(C),M=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){},t.prototype.next=function(e){y(e)&&e.length===this.params&&(this.done=!0,this.keep=!0)},t}(C),xe=function(e){if(e.length===0)throw Error(`$and/$or/$nor must be a nonempty array`)},Se=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!1,t}return t.prototype.init=function(){var e=this;xe(this.params),this._ops=this.params.map(function(t){return A(t,null,e.options)})},t.prototype.reset=function(){this.done=!1,this.keep=!1;for(var e=0,t=this._ops.length;e<t;e++)this._ops[e].reset()},t.prototype.next=function(e,t,n){for(var r=!1,i=!1,a=0,o=this._ops.length;a<o;a++){var s=this._ops[a];if(s.next(e,t,n),s.keep){r=!0,i=s.keep;break}}this.keep=i,this.done=r},t}(C),Ce=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!1,t}return t.prototype.next=function(t,n,r){e.prototype.next.call(this,t,n,r),this.keep=!this.keep},t}(Se),we=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.init=function(){var e=this,t=Array.isArray(this.params)?this.params:[this.params];this._testers=t.map(function(t){if(he(t,e.options))throw Error(`cannot nest \$ under ${e.name.toLowerCase()}`);return E(t,e.options.compare)})},t.prototype.next=function(e,t,n){for(var r=!1,i=!1,a=0,o=this._testers.length;a<o;a++){var s=this._testers[a];if(s(e)){r=!0,i=!0;break}}this.keep=i,this.done=r},t}(C),Te=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,i)||this;return a.propop=!0,a._in=new we(t,n,r,i),a}return t.prototype.next=function(e,t,n,r){this._in.next(e,t,n),y(n)&&!r?this._in.keep?(this.keep=!1,this.done=!0):t==n.length-1&&(this.keep=!0,this.done=!0):(this.keep=!this._in.keep,this.done=!0)},t.prototype.reset=function(){e.prototype.reset.call(this),this._in.reset()},t}(C),Ee=function(e){g(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.propop=!0,t}return t.prototype.next=function(e,t,n,r,i){i?n.hasOwnProperty(t)===this.params&&(this.done=!0,this.keep=!0):(this.done=!0,this.keep=!this.params)},t}(C),De=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,t.map(function(e){return A(e,n,r)}),i)||this;return a.propop=!1,xe(t),a}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(de),Oe=function(e){g(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r,t.map(function(e){return A(e,n,r)}),i)||this;return a.propop=!0,a}return t.prototype.next=function(e,t,n,r){this.childrenNext(e,t,n,r)},t}(de),ke=function(e,t,n){return new D(e,t,n)},Ae=function(e,t,n,r){return new ve(e,t,n,r)},je=function(e,t,n,r){return new Se(e,t,n,r)},Me=function(e,t,n,r){return new Ce(e,t,n,r)},Ne=function(e,t,n,r){return new ye(e,t,n,r)},Pe=function(e,t,n,r){return new Te(e,t,n,r)},Fe=function(e,t,n,r){return new we(e,t,n,r)},Ie=O(function(e){return function(t){return t!=null&&t<e}}),Le=O(function(e){return function(t){return t===e||t<=e}}),Re=O(function(e){return function(t){return t!=null&&t>e}}),ze=O(function(e){return function(t){return t===e||t>=e}}),Be=function(e,t,n){var r=e[0],i=e[1];return new D(function(e){return v(e)%r===i},t,n)},Ve=function(e,t,n,r){return new Ee(e,t,n,r)},He=function(e,t,n){return new D(new RegExp(e,t.$options),t,n)},Ue=function(e,t,n,r){return new be(e,t,n,r)},We={number:function(e){return typeof e==`number`},string:function(e){return typeof e==`string`},bool:function(e){return typeof e==`boolean`},array:function(e){return Array.isArray(e)},null:function(e){return e===null},timestamp:function(e){return e instanceof Date}},Ge=Object.freeze({__proto__:null,$Size:M,$all:function(e,t,n,r){return new Oe(e,t,n,r)},$and:function(e,t,n,r){return new De(e,t,n,r)},$elemMatch:Ne,$eq:ke,$exists:Ve,$gt:Re,$gte:ze,$in:Fe,$lt:Ie,$lte:Le,$mod:Be,$ne:Ae,$nin:Pe,$nor:Me,$not:Ue,$options:function(){return null},$or:je,$regex:He,$size:function(e,t,n){return new M(e,t,n,`$size`)},$type:function(e,t,n){return new D(function(t){if(typeof e==`string`){if(!We[e])throw Error(`Type alias does not exist`);return We[e](t)}return t==null?!1:t instanceof e||t.constructor===e},t,n)},$where:function(e,t,n){var r;if(b(e))r=e;else if(!{}.CSP_ENABLED)r=Function(`obj`,`return `+e);else throw Error(`In CSP mode, sift does not support strings in "$where" condition`);return new D(function(e){return r.bind(e)(e)},t,n)}}),Ke=function(e,t,n){var r=n===void 0?{}:n,i=r.compare,a=r.operations;return A(e,t,{compare:i,operations:Object.assign({},Ge,a||{})})},qe=function(e,t){return t===void 0&&(t={}),_e(Ke(e,null,t))},Je=new Set([`$eq`,`$ne`,`$gt`,`$gte`,`$lt`,`$lte`]),Ye=new Set([`$in`,`$nin`]),Xe=new Set([`$contains`]),Ze=qe.createEqualsOperation,Qe=e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`,$e=(e,t)=>String(e)===String(t),et={$contains(e,t,n){return Ze(t=>Array.isArray(t)&&t.some(t=>$e(t,e)),t,n)}};function N(e,t){if(!e)return!0;try{return qe(e,{operations:et})(t)}catch{return!1}}function P(e,t){return typeof e==`boolean`?e:e?N(e,t):!1}function tt(e,t,n){if(Qe(t))return[`${e} = ${n(t)}`];let r=[];for(let[i,a]of Object.entries(t))if(a!==void 0)switch(i){case`$eq`:r.push(`${e} = ${n(a)}`);break;case`$ne`:r.push(`${e} ≠ ${n(a)}`);break;case`$gt`:r.push(`${e} > ${String(a)}`);break;case`$lt`:r.push(`${e} < ${String(a)}`);break;case`$gte`:r.push(`${e} ≥ ${String(a)}`);break;case`$lte`:r.push(`${e} ≤ ${String(a)}`);break;case`$in`:r.push(`${e} ∈ {${a.map(n).join(`, `)}}`);break;case`$nin`:r.push(`${e} ∉ {${a.map(n).join(`, `)}}`);break;case`$contains`:r.push(`${e} contains ${n(a)}`);break;default:break}return r}function F(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e))if(r!==void 0){if(n===`$and`||n===`$or`){for(let e of r)t.push(...F(e));continue}t.push(n)}return[...new Set(t)]}function I(e,t){if(!e)return[];let n=[];for(let[r,i]of Object.entries(e))if(i!==void 0){if(r===`$and`||r===`$or`){for(let e of i)n.push(...I(e,t));continue}r===t&&(typeof i==`object`&&i&&!Array.isArray(i)?n.push(...Object.keys(i)):n.push(`$eq`))}return[...new Set(n)]}function nt(e,t,n){let r=n===void 0?void 0:new Set(Array.isArray(n)?n:[n]);return e.filter(e=>r!==void 0&&e.value!==void 0&&r.has(e.value)||!e.when||N(e.when,t))}function L(e,t,n){if(!e)return[];let r=[];for(let[i,a]of Object.entries(e))if(a!==void 0){if(i===`$and`){for(let e of a)r.push(...L(e,t,n));continue}if(i===`$or`){let e=a.map(e=>L(e,t,n)).filter(e=>e.length>0).map(e=>e.length>1?`(${e.join(` and `)})`:e[0]);e.length&&r.push(e.join(` or `));continue}r.push(...tt(t(i),a,e=>n?n(i,e):String(e)))}return r}function R(e){let t=[];for(let n of e){let e=o(n)?a(n):n;if(u(e))t.push([e.key,e.type]);else if(d(e)){if(l(e))continue;let n=f(e)?`${e.key}__`:``;for(let[r,i]of R(e.fields))t.push([n+r,i])}}return t}function rt(e,t){return t.columns?Object.entries(t.columns).map(([t,n])=>[`${e}__${t}`,n]):[[e,t.column]]}function z(e,t,n,r){let i={},a=!1;for(let o of e.parts??[]){let e=`${t}__${o.key}`;if(o.meta.parts){let t=z(o.meta,e,n,r);t!==void 0&&(i[o.key]=t,a=!0);continue}if(!(e in n))continue;let s=n[e];r?.(e),i[o.key]=s,s!=null&&s!==``&&(a=!0)}return a?i:void 0}function it(e,t,n){return!e.columns||n[t]!==void 0?n[t]:z(e,t,n)}function at(e){if(e.columns)return Object.keys(e.columns)[0]}function ot(e,t){let n=e;for(let e of t.split(`__`)){if(typeof n!=`object`||!n||Array.isArray(n))return;n=n[e]}return n}function st(e,t,n){let r=e=>e&&typeof e==`object`&&!Array.isArray(e)?{...e}:{},i=t.split(`__`),a=r(e),o=a;for(let e of i.slice(0,-1))o[e]=r(o[e]),o=o[e];return o[i[i.length-1]]=n,a}function B(e){let t=[];for(let n of e){let e=o(n)?a(n):n;d(e)&&(l(e)?t.push({key:e.key,group:e}):t.push(...B(e.fields)))}return t}var V=new WeakMap;function H(e){let t=V.get(e);return t||(t=Object.fromEntries(R(e)),V.set(e,t)),t}function U(e,t){for(let n of e){if(`value`in n&&typeof n.value==`function`)throw Error(`${t}: computed element needs a key — the server computes it and needs a name to return it under`);d(n)&&U(n.fields,t)}}function W(e,t,n=``){for(let r of e){if(d(r)){W(r.fields,t,te(r)?`${n}${r.key}.`:n);continue}if(!(ee(r)&&r.key!==void 0)||!r.type.parts)continue;let e=re(r.type.parts);if(!e)continue;let i=ne(r.type.required,r.type.parts);i.length&&console.warn(`${t}: composite '${n}${r.key}' mandates a client-owned stored part (${i.join(`, `)}) and mixes it with a server-owned stored part (${e.server.join(`, `)}) — a mandated part is the client's to declare, so the write path does NOT materialize this composite and the computed part stays absent until a client sends the field. Either drop \`required\` (from the field or from the ${i.join(`/`)} filling), or give every stored part a \`value\` (the composite becomes fully server-owned).`)}}function G(e,t){U(e,t),W(e,t)}function ct(e){let n=t(e),r=R(n.fields).map(([e])=>e),i=r.find((e,t)=>r.indexOf(e)!==t);if(i)throw Error(`[shelf] ${n.library}/${n.shelf}: duplicate key '${i}'`);if(n.single&&!n.agent)throw Error(`[shelf] ${n.library}/${n.shelf}: single shelf requires \`agent\` — the agent cannot find it otherwise`);if(n.views?.list!==void 0&&!Array.isArray(n.views.list))throw Error(`[shelf] ${n.library}/${n.shelf}: views.list is a flat array of field keys — the { kind, fields } form is gone; use views.list: [...] plus views.listKind`);if(n.standalone!==!1&&!n.single&&!n.views?.list?.length&&console.warn(`[shelf] ${n.library}/${n.shelf}: standalone shelf without an explicit views.list`),n.views?.title&&!K(n.fields).some(([e])=>e===n.views.title))throw Error(`[shelf] ${n.library}/${n.shelf}: views.title '${n.views.title}' is not a field`);n.views?.list?.includes(q(n))&&console.warn(`[shelf] ${n.library}/${n.shelf}: views.list repeats the title '${q(n)}' — the title is declared separately`);let a=K(n.fields).filter(([,e])=>e.kind===`title`);return a.length>1&&console.warn(`[shelf] ${n.library}/${n.shelf}: ${a.length} title fields (${a.map(([e])=>e).join(`, `)}) — '${a[0][0]}' wins`),n.standalone!==!1&&!n.single&&q(n)===`id`&&console.warn(`[shelf] ${n.library}/${n.shelf}: no title declared (field.title() or views.title) — the record renders no heading`),G(n.fields,`[shelf] ${n.library}/${n.shelf}`),n}function K(e){let t=[];for(let n of e)u(n)?t.push([n.key,n.type]):d(n)&&!l(n)&&!f(n)&&t.push(...K(n.fields));return t}function q(e){if(e.views?.title)return e.views.title;let t=K(e.fields).find(([,e])=>e.kind===`title`);return t?t[0]:`id`}function J(e,t){return String(t[q(e)]??t.id??``)}function Y(e,t){let n=H(e.fields);return t.filter(e=>n[e])}var lt=new Set([`image`,`media`,`avatar`,`cover`]),X=e=>lt.has(e);function Z(e){let t=e.views?.inline?.length?Y(e,e.views.inline):[];return t.length?t:[q(e)]}function ut(e){let t=H(e.fields);return Z(e).find(e=>t[e]&&X(t[e].kind))}function dt(e,t){let n=H(e.fields);return Z(e).reduce((e,r)=>{if(!n[r]||!X(n[r].kind)){let n=t[r];n!=null&&n!==``&&e.push(String(n))}return e},[]).join(` `).trim()||J(e,t)}function ft(e){let t=q(e);return[t,...e.views?.list?.length?Y(e,e.views.list.filter(e=>e!==t)):[]]}function pt(e){return e.views?.listKind??`table`}var mt=new Set([`checkbox`,`relation`]);function Q(e){return e.views?.groupBy?.length?Y(e,e.views.groupBy):R(e.fields).filter(([,e])=>mt.has(e.prim)||c(e)).map(([e])=>e)}function ht(e){let t=e.views?.defaultGroupBy;return t&&H(e.fields)[t]?t:Q(e)[0]}function gt(e){return R(e.fields).find(([,e])=>e.kind===`cover`)?.[0]}function _t(e){let t=H(e.fields),n=[],r=e=>{!e||e===`id`||n.includes(e)||t[e]&&n.push(e)};r(q(e)),ft(e).forEach(r),Q(e).forEach(r),Z(e).forEach(r),r(ut(e)),r(gt(e));let i=e.views?.select;return i&&(r(i.icon),(Array.isArray(i.title)?i.title:[i.title]).forEach(r),r(i.subtitle)),[`id`,...n]}function $(t,a){let o={};for(let c of t)if(u(c)){if(c.type.compute){o[c.key]=e({error:()=>i(`derived`)}).optional();continue}o[c.key]=a?c.type.zod.optional():c.type.zod}else if(d(c))if(l(c)){let e=r(n($(c.fields,a)).passthrough());o[c.key]=a?e.optional():c.required?e:e.optional()}else if(f(c)){let e=n($(c.fields,a)).passthrough();c.kind===`url`&&(e=s(e=>typeof e==`string`?p(e)??{}:e,e)),o[c.key]=a?e.optional():c.required?e:e.optional()}else Object.assign(o,$(c.fields,a));return o}var vt=e=>e==null||e===``||Array.isArray(e)&&e.length===0;function yt(e,t,n){return e.superRefine((e,r)=>{for(let[i,a]of R(t.fields))i.includes(`__`)||n&&!(i in e)||a.required!==!0&&P(a.required,e)&&vt(e[i])&&r.addIssue({code:`custom`,path:[i],message:JSON.stringify({code:`required`})})})}function bt(e){return yt(n($(e.fields,!1)),e,!1)}function xt(e){return yt(n($(e.fields,!0)),e,!0)}export{P as A,Ye as C,I as D,F as E,m as M,ae as N,L as O,p as P,st as S,Je as T,J as _,B as a,q as b,R as c,ut as d,dt as f,at as g,pt as h,G as i,nt as j,N as k,H as l,_t as m,xt as n,ht as o,X as p,it as r,ct as s,bt as t,Q as u,rt as v,Xe as w,ft as x,ot as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,T as t,w as n}from"./shelf-
|
|
1
|
+
import{C as e,T as t,w as n}from"./shelf-CRUDKiTz.js";var r=new Set([...t,...e,...n]);function i(e,t){for(let[n,a]of Object.entries(e))if(a!==void 0){if(n===`$and`||n===`$or`){for(let e of a)i(e,t);continue}if(typeof a==`object`&&a){for(let e of Object.keys(a))if(!r.has(e))throw Error(`[showcase] ${t}: operator '${e}' on '${n}' does not compile to SQL`)}}}function a(e){if(!e.id)throw Error(`[showcase] missing id`);if(!e.library)throw Error(`[showcase] ${e.id}: missing library`);if(!e.source?.library||!e.source?.shelf)throw Error(`[showcase] ${e.id}: missing source library/shelf`);if(!e.columns?.length)throw Error(`[showcase] ${e.id}: columns must not be empty`);if(!e.filter||Object.keys(e.filter).length===0)throw Error(`[showcase] ${e.id}: filter must not be empty — an unfiltered showcase is the shelf itself`);return i(e.filter,e.id),e}export{a as t};
|