kff-ui-kit 0.1.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/README.md +30 -0
- package/dist/index.cjs +6145 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +490 -0
- package/dist/index.d.ts +490 -0
- package/dist/index.js +5977 -0
- package/dist/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","#style-inject:#style-inject","../src/styles/generated.css","../src/components/ui/alert.tsx","../src/lib/utils.ts","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/button.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/input.tsx","../src/components/ui/progress.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/sidebar.tsx","../src/hooks/use-mobile.ts","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sonner.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/kff/action-button/action-button.tsx","../src/components/kff/app-sidebar/app-sidebar.tsx","../src/components/kff/attachment-field/attachment-field.tsx","../src/components/kff/checklist-panel/checklist-panel.tsx","../src/lib/kff/format.ts","../src/components/kff/detail-table/detail-table.tsx","../src/components/kff/export-job-card/export-job-card.tsx","../src/components/kff/validation-summary/validation-summary.tsx","../src/components/kff/form-dialog/form-dialog.tsx","../src/components/kff/value-cell/value-cell.tsx","../src/components/kff/form-row/form-row.tsx","../src/components/kff/issue-card/issue-card.tsx","../src/components/kff/page-header/page-header.tsx","../src/components/kff/section-tabs/section-tabs.tsx","../src/components/kff/status-badge/status-badge.tsx","../src/components/kff/toaster/toaster.tsx"],"sourcesContent":["import \"./styles/generated.css\";\n\n// Примитивы (shadcn/base-ui)\nexport * from \"./components/ui/alert\";\nexport * from \"./components/ui/badge\";\nexport * from \"./components/ui/breadcrumb\";\nexport * from \"./components/ui/button\";\nexport * from \"./components/ui/card\";\nexport * from \"./components/ui/checkbox\";\nexport * from \"./components/ui/collapsible\";\nexport * from \"./components/ui/dialog\";\nexport * from \"./components/ui/dropdown-menu\";\nexport * from \"./components/ui/input\";\nexport * from \"./components/ui/progress\";\nexport * from \"./components/ui/separator\";\nexport * from \"./components/ui/sheet\";\nexport * from \"./components/ui/sidebar\";\nexport * from \"./components/ui/skeleton\";\nexport { Toaster as ToasterPrimitive } from \"./components/ui/sonner\";\nexport * from \"./components/ui/table\";\nexport * from \"./components/ui/tabs\";\nexport * from \"./components/ui/toggle\";\nexport * from \"./components/ui/toggle-group\";\nexport * from \"./components/ui/tooltip\";\n\n// Компоненты КФФ (composed)\nexport * from \"./components/kff/action-button\";\nexport * from \"./components/kff/app-sidebar\";\nexport * from \"./components/kff/attachment-field\";\nexport * from \"./components/kff/checklist-panel\";\nexport * from \"./components/kff/detail-table\";\nexport * from \"./components/kff/export-job-card\";\nexport * from \"./components/kff/form-dialog\";\nexport * from \"./components/kff/form-row\";\nexport * from \"./components/kff/issue-card\";\nexport * from \"./components/kff/page-header\";\nexport * from \"./components/kff/section-tabs\";\nexport * from \"./components/kff/status-badge\";\nexport * from \"./components/kff/toaster\";\nexport * from \"./components/kff/validation-summary\";\nexport * from \"./components/kff/value-cell\";\n\n// Утилиты\nexport * from \"./lib/utils\";\n","\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\"/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\\n@layer properties {\\n @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {\\n *,\\n :before,\\n :after,\\n ::backdrop {\\n --tw-translate-x:0;\\n --tw-translate-y:0;\\n --tw-translate-z:0;\\n --tw-space-y-reverse:0;\\n --tw-border-style:solid;\\n --tw-leading:initial;\\n --tw-font-weight:initial;\\n --tw-tracking:initial;\\n --tw-ordinal:initial;\\n --tw-slashed-zero:initial;\\n --tw-numeric-figure:initial;\\n --tw-numeric-spacing:initial;\\n --tw-numeric-fraction:initial;\\n --tw-shadow:0 0 #0000;\\n --tw-shadow-color:initial;\\n --tw-shadow-alpha:100%;\\n --tw-inset-shadow:0 0 #0000;\\n --tw-inset-shadow-color:initial;\\n --tw-inset-shadow-alpha:100%;\\n --tw-ring-color:initial;\\n --tw-ring-shadow:0 0 #0000;\\n --tw-inset-ring-color:initial;\\n --tw-inset-ring-shadow:0 0 #0000;\\n --tw-ring-inset:initial;\\n --tw-ring-offset-width:0px;\\n --tw-ring-offset-color:#fff;\\n --tw-ring-offset-shadow:0 0 #0000;\\n --tw-outline-style:solid;\\n --tw-blur:initial;\\n --tw-brightness:initial;\\n --tw-contrast:initial;\\n --tw-grayscale:initial;\\n --tw-hue-rotate:initial;\\n --tw-invert:initial;\\n --tw-opacity:initial;\\n --tw-saturate:initial;\\n --tw-sepia:initial;\\n --tw-drop-shadow:initial;\\n --tw-drop-shadow-color:initial;\\n --tw-drop-shadow-alpha:100%;\\n --tw-drop-shadow-size:initial;\\n --tw-duration:initial;\\n --tw-ease:initial;\\n --tw-content:\\\"\\\";\\n --tw-backdrop-blur:initial;\\n --tw-backdrop-brightness:initial;\\n --tw-backdrop-contrast:initial;\\n --tw-backdrop-grayscale:initial;\\n --tw-backdrop-hue-rotate:initial;\\n --tw-backdrop-invert:initial;\\n --tw-backdrop-opacity:initial;\\n --tw-backdrop-saturate:initial;\\n --tw-backdrop-sepia:initial;\\n }\\n }\\n}\\n@layer theme {\\n :root,\\n :host {\\n --color-black:#000;\\n --color-white:#fff;\\n --spacing:.25rem;\\n --container-xs:20rem;\\n --container-sm:24rem;\\n --text-xs:.75rem;\\n --text-xs--line-height:calc(1 / .75);\\n --text-sm:.875rem;\\n --text-sm--line-height:calc(1.25 / .875);\\n --text-base:1rem;\\n --text-base--line-height:calc(1.5 / 1);\\n --text-lg:1.125rem;\\n --text-lg--line-height:calc(1.75 / 1.125);\\n --text-xl:1.25rem;\\n --text-xl--line-height:calc(1.75 / 1.25);\\n --font-weight-normal:400;\\n --font-weight-medium:500;\\n --font-weight-semibold:600;\\n --tracking-wide:.025em;\\n --tracking-widest:.1em;\\n --leading-snug:1.375;\\n --leading-relaxed:1.625;\\n --radius-md:0rem;\\n --radius-4xl:2rem;\\n --ease-in-out:cubic-bezier(.4, 0, .2, 1);\\n --animate-spin:spin 1s linear infinite;\\n --animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;\\n --blur-xs:4px;\\n --default-transition-duration:.15s;\\n --default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);\\n --default-font-family:\\\"Helvetica Neue\\\",\\n Helvetica,\\n Arial,\\n sans-serif;\\n --default-mono-font-family:\\\"IBM Plex Mono\\\", monospace;\\n }\\n}\\n@layer base {\\n *,\\n :after,\\n :before,\\n ::backdrop {\\n box-sizing: border-box;\\n border: 0 solid;\\n margin: 0;\\n padding: 0;\\n }\\n ::file-selector-button {\\n box-sizing: border-box;\\n border: 0 solid;\\n margin: 0;\\n padding: 0;\\n }\\n html,\\n :host {\\n -webkit-text-size-adjust: 100%;\\n tab-size: 4;\\n line-height: 1.5;\\n 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\\\");\\n font-feature-settings: var(--default-font-feature-settings,normal);\\n font-variation-settings: var(--default-font-variation-settings,normal);\\n -webkit-tap-highlight-color: transparent;\\n }\\n hr {\\n height: 0;\\n color: inherit;\\n border-top-width: 1px;\\n }\\n abbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n }\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-size: inherit;\\n font-weight: inherit;\\n }\\n a {\\n color: inherit;\\n -webkit-text-decoration: inherit;\\n -webkit-text-decoration: inherit;\\n -webkit-text-decoration: inherit;\\n text-decoration: inherit;\\n }\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n code,\\n kbd,\\n samp,\\n pre {\\n font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace);\\n font-feature-settings: var(--default-mono-font-feature-settings,normal);\\n font-variation-settings: var(--default-mono-font-variation-settings,normal);\\n font-size: 1em;\\n }\\n small {\\n font-size: 80%;\\n }\\n sub,\\n sup {\\n vertical-align: baseline;\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n }\\n sub {\\n bottom: -.25em;\\n }\\n sup {\\n top: -.5em;\\n }\\n table {\\n text-indent: 0;\\n border-color: inherit;\\n border-collapse: collapse;\\n }\\n :-moz-focusring:where(:not(iframe)) {\\n outline: auto;\\n }\\n progress {\\n vertical-align: baseline;\\n }\\n summary {\\n display: list-item;\\n }\\n ol,\\n ul,\\n menu {\\n list-style: none;\\n }\\n img,\\n svg,\\n video,\\n canvas,\\n audio,\\n iframe,\\n embed,\\n object {\\n vertical-align: middle;\\n display: block;\\n }\\n img,\\n video {\\n max-width: 100%;\\n height: auto;\\n }\\n button,\\n input,\\n select,\\n optgroup,\\n textarea {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n opacity: 1;\\n background-color: #0000;\\n border-radius: 0;\\n }\\n ::file-selector-button {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n opacity: 1;\\n background-color: #0000;\\n border-radius: 0;\\n }\\n :where(select:is([multiple], [size])) optgroup {\\n font-weight: bolder;\\n }\\n :where(select:is([multiple], [size])) optgroup option {\\n padding-inline-start: 20px;\\n }\\n ::file-selector-button {\\n margin-inline-end: 4px;\\n }\\n ::placeholder {\\n opacity: 1;\\n }\\n @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {\\n ::placeholder {\\n color: currentColor;\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n ::placeholder {\\n color: color-mix(in oklab, currentcolor 50%, transparent);\\n }\\n }\\n }\\n textarea {\\n resize: vertical;\\n }\\n ::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n ::-webkit-date-and-time-value {\\n min-height: 1lh;\\n text-align: inherit;\\n }\\n ::-webkit-datetime-edit {\\n display: inline-flex;\\n }\\n ::-webkit-datetime-edit-fields-wrapper {\\n padding: 0;\\n }\\n ::-webkit-datetime-edit {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-year-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-month-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-day-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-hour-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-minute-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-second-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-millisecond-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-meridiem-field {\\n padding-block: 0;\\n }\\n ::-webkit-calendar-picker-indicator {\\n line-height: 1;\\n }\\n :-moz-ui-invalid {\\n box-shadow: none;\\n }\\n button,\\n input:where([type=button], [type=reset], [type=submit]) {\\n appearance: button;\\n }\\n ::file-selector-button {\\n appearance: button;\\n }\\n ::-webkit-inner-spin-button {\\n height: auto;\\n }\\n ::-webkit-outer-spin-button {\\n height: auto;\\n }\\n [hidden]:where(:not([hidden=until-found])) {\\n display: none !important;\\n }\\n :root {\\n --background:0 0% 100%;\\n --foreground:216 80% 20%;\\n --card:0 0% 100%;\\n --card-foreground:216 80% 20%;\\n --popover:0 0% 100%;\\n --popover-foreground:216 80% 20%;\\n --primary:216 80% 20%;\\n --primary-foreground:0 0% 100%;\\n --secondary:218 47% 97%;\\n --secondary-foreground:216 80% 20%;\\n --muted:217 34% 92%;\\n --muted-foreground:214 24% 48%;\\n --accent:49 100% 50%;\\n --accent-foreground:216 80% 20%;\\n --destructive:216 80% 20%;\\n --destructive-foreground:0 0% 100%;\\n --border:216 29% 82%;\\n --input:216 80% 20%;\\n --ring:49 100% 50%;\\n --sidebar:218 47% 97%;\\n --sidebar-foreground:216 80% 20%;\\n --sidebar-primary:216 80% 20%;\\n --sidebar-primary-foreground:0 0% 100%;\\n --sidebar-accent:217 34% 92%;\\n --sidebar-accent-foreground:216 80% 20%;\\n --sidebar-border:216 29% 82%;\\n --sidebar-ring:49 100% 50%;\\n --radius:0rem;\\n }\\n * {\\n border-color: hsl(var(--border));\\n outline-color: hsl(var(--ring));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n * {\\n outline-color: color-mix(in oklab, hsl(var(--ring)) 50%, transparent);\\n }\\n }\\n body {\\n background-color: hsl(var(--background));\\n color: hsl(var(--foreground));\\n }\\n}\\n@layer components;\\n@layer utilities {\\n .\\\\@container\\\\/card-header {\\n container: card-header/inline-size;\\n }\\n .pointer-events-none {\\n pointer-events: none;\\n }\\n .sr-only {\\n clip-path: inset(50%);\\n white-space: nowrap;\\n border-width: 0;\\n width: 1px;\\n height: 1px;\\n margin: -1px;\\n padding: 0;\\n position: absolute;\\n overflow: hidden;\\n }\\n .absolute {\\n position: absolute;\\n }\\n .fixed {\\n position: fixed;\\n }\\n .relative {\\n position: relative;\\n }\\n .sticky {\\n position: sticky;\\n }\\n .inset-0 {\\n inset: 0;\\n }\\n .inset-y-0 {\\n inset-block: 0;\\n }\\n .top-0 {\\n top: 0;\\n }\\n .top-1\\\\.5 {\\n top: calc(var(--spacing) * 1.5);\\n }\\n .top-1\\\\/2 {\\n top: 50%;\\n }\\n .top-2 {\\n top: calc(var(--spacing) * 2);\\n }\\n .top-3 {\\n top: calc(var(--spacing) * 3);\\n }\\n .top-3\\\\.5 {\\n top: calc(var(--spacing) * 3.5);\\n }\\n .right-1 {\\n right: var(--spacing);\\n }\\n .right-2 {\\n right: calc(var(--spacing) * 2);\\n }\\n .right-3 {\\n right: calc(var(--spacing) * 3);\\n }\\n .left-0 {\\n left: 0;\\n }\\n .left-1\\\\/2 {\\n left: 50%;\\n }\\n .isolate {\\n isolation: isolate;\\n }\\n .z-10 {\\n z-index: 10;\\n }\\n .z-20 {\\n z-index: 20;\\n }\\n .z-50 {\\n z-index: 50;\\n }\\n .col-start-2 {\\n grid-column-start: 2;\\n }\\n .row-span-2 {\\n grid-row: span 2/span 2;\\n }\\n .row-start-1 {\\n grid-row-start: 1;\\n }\\n .-mx-1 {\\n margin-inline: calc(var(--spacing) * -1);\\n }\\n .-mx-4 {\\n margin-inline: calc(var(--spacing) * -4);\\n }\\n .mx-0 {\\n margin-inline: 0;\\n }\\n .mx-2 {\\n margin-inline: calc(var(--spacing) * 2);\\n }\\n .mx-3\\\\.5 {\\n margin-inline: calc(var(--spacing) * 3.5);\\n }\\n .my-1 {\\n margin-block: var(--spacing);\\n }\\n .mt-0\\\\.5 {\\n margin-top: calc(var(--spacing) * .5);\\n }\\n .mt-0\\\\.75 {\\n margin-top: calc(var(--spacing) * .75);\\n }\\n .mt-1 {\\n margin-top: var(--spacing);\\n }\\n .mt-1\\\\.5 {\\n margin-top: calc(var(--spacing) * 1.5);\\n }\\n .mt-1\\\\.25 {\\n margin-top: calc(var(--spacing) * 1.25);\\n }\\n .mt-2 {\\n margin-top: calc(var(--spacing) * 2);\\n }\\n .mt-4 {\\n margin-top: calc(var(--spacing) * 4);\\n }\\n .mt-auto {\\n margin-top: auto;\\n }\\n .-mb-4 {\\n margin-bottom: calc(var(--spacing) * -4);\\n }\\n .mb-0 {\\n margin-bottom: 0;\\n }\\n .mb-1\\\\.5 {\\n margin-bottom: calc(var(--spacing) * 1.5);\\n }\\n .mb-1\\\\.25 {\\n margin-bottom: calc(var(--spacing) * 1.25);\\n }\\n .mb-1\\\\.75 {\\n margin-bottom: calc(var(--spacing) * 1.75);\\n }\\n .mb-2 {\\n margin-bottom: calc(var(--spacing) * 2);\\n }\\n .mb-2\\\\.5 {\\n margin-bottom: calc(var(--spacing) * 2.5);\\n }\\n .ml-2 {\\n margin-left: calc(var(--spacing) * 2);\\n }\\n .ml-auto {\\n margin-left: auto;\\n }\\n .block {\\n display: block;\\n }\\n .flex {\\n display: flex;\\n }\\n .grid {\\n display: grid;\\n }\\n .hidden {\\n display: none;\\n }\\n .inline-block {\\n display: inline-block;\\n }\\n .inline-flex {\\n display: inline-flex;\\n }\\n .table {\\n display: table;\\n }\\n .table-caption {\\n display: table-caption;\\n }\\n .table-cell {\\n display: table-cell;\\n }\\n .table-row {\\n display: table-row;\\n }\\n .aspect-square {\\n aspect-ratio: 1;\\n }\\n .size-2\\\\.5 {\\n width: calc(var(--spacing) * 2.5);\\n height: calc(var(--spacing) * 2.5);\\n }\\n .size-4 {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n .size-5 {\\n width: calc(var(--spacing) * 5);\\n height: calc(var(--spacing) * 5);\\n }\\n .size-6 {\\n width: calc(var(--spacing) * 6);\\n height: calc(var(--spacing) * 6);\\n }\\n .size-7 {\\n width: calc(var(--spacing) * 7);\\n height: calc(var(--spacing) * 7);\\n }\\n .size-8 {\\n width: calc(var(--spacing) * 8);\\n height: calc(var(--spacing) * 8);\\n }\\n .size-9 {\\n width: calc(var(--spacing) * 9);\\n height: calc(var(--spacing) * 9);\\n }\\n .size-full {\\n width: 100%;\\n height: 100%;\\n }\\n .h-1 {\\n height: var(--spacing);\\n }\\n .h-4 {\\n height: calc(var(--spacing) * 4);\\n }\\n .h-5 {\\n height: calc(var(--spacing) * 5);\\n }\\n .h-6 {\\n height: calc(var(--spacing) * 6);\\n }\\n .h-7 {\\n height: calc(var(--spacing) * 7);\\n }\\n .h-8 {\\n height: calc(var(--spacing) * 8);\\n }\\n .h-9 {\\n height: calc(var(--spacing) * 9);\\n }\\n .h-10 {\\n height: calc(var(--spacing) * 10);\\n }\\n .h-12 {\\n height: calc(var(--spacing) * 12);\\n }\\n .h-\\\\[calc\\\\(100\\\\%-1px\\\\)\\\\] {\\n height: calc(100% - 1px);\\n }\\n .h-auto {\\n height: auto;\\n }\\n .h-dvh {\\n height: 100dvh;\\n }\\n .h-full {\\n height: 100%;\\n }\\n .h-px {\\n height: 1px;\\n }\\n .h-screen {\\n height: 100vh;\\n }\\n .h-svh {\\n height: 100svh;\\n }\\n .max-h-\\\\(--available-height\\\\) {\\n max-height: var(--available-height);\\n }\\n .min-h-0 {\\n min-height: 0;\\n }\\n .min-h-svh {\\n min-height: 100svh;\\n }\\n .w-\\\\(--anchor-width\\\\) {\\n width: var(--anchor-width);\\n }\\n .w-\\\\(--sidebar-width\\\\) {\\n width: var(--sidebar-width);\\n }\\n .w-4 {\\n width: calc(var(--spacing) * 4);\\n }\\n .w-5 {\\n width: calc(var(--spacing) * 5);\\n }\\n .w-18\\\\.5 {\\n width: calc(var(--spacing) * 18.5);\\n }\\n .w-37 {\\n width: calc(var(--spacing) * 37);\\n }\\n .w-90 {\\n width: calc(var(--spacing) * 90);\\n }\\n .w-115 {\\n width: calc(var(--spacing) * 115);\\n }\\n .w-160 {\\n width: calc(var(--spacing) * 160);\\n }\\n .w-\\\\[74px\\\\] {\\n width: 74px;\\n }\\n .w-auto {\\n width: auto;\\n }\\n .w-fit {\\n width: fit-content;\\n }\\n .w-full {\\n width: 100%;\\n }\\n .max-w-\\\\(--skeleton-width\\\\) {\\n max-width: var(--skeleton-width);\\n }\\n .max-w-115 {\\n max-width: calc(var(--spacing) * 115);\\n }\\n .max-w-\\\\[580px\\\\] {\\n max-width: 580px;\\n }\\n .max-w-\\\\[640px\\\\] {\\n max-width: 640px;\\n }\\n .max-w-\\\\[calc\\\\(100\\\\%-2rem\\\\)\\\\] {\\n max-width: calc(100% - 2rem);\\n }\\n .max-w-xs {\\n max-width: var(--container-xs);\\n }\\n .min-w-0 {\\n min-width: 0;\\n }\\n .min-w-5 {\\n min-width: calc(var(--spacing) * 5);\\n }\\n .min-w-7 {\\n min-width: calc(var(--spacing) * 7);\\n }\\n .min-w-8 {\\n min-width: calc(var(--spacing) * 8);\\n }\\n .min-w-9 {\\n min-width: calc(var(--spacing) * 9);\\n }\\n .min-w-32 {\\n min-width: calc(var(--spacing) * 32);\\n }\\n .min-w-\\\\[96px\\\\] {\\n min-width: 96px;\\n }\\n .flex-1 {\\n flex: 1;\\n }\\n .shrink-0 {\\n flex-shrink: 0;\\n }\\n .caption-bottom {\\n caption-side: bottom;\\n }\\n .origin-\\\\(--transform-origin\\\\) {\\n transform-origin: var(--transform-origin);\\n }\\n .-translate-x-1\\\\/2 {\\n --tw-translate-x:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-x-px {\\n --tw-translate-x:-1px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-x-px {\\n --tw-translate-x:1px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .-translate-y-1\\\\/2 {\\n --tw-translate-y:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .translate-y-\\\\[calc\\\\(-50\\\\%-2px\\\\)\\\\] {\\n --tw-translate-y:calc(-50% - 2px);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .rotate-45 {\\n rotate: 45deg;\\n }\\n .animate-pulse {\\n animation: var(--animate-pulse);\\n }\\n .animate-spin {\\n animation: var(--animate-spin);\\n }\\n .cursor-default {\\n cursor: default;\\n }\\n .cursor-pointer {\\n cursor: pointer;\\n }\\n .auto-rows-min {\\n grid-auto-rows: min-content;\\n }\\n .grid-cols-\\\\[1fr_148px\\\\] {\\n grid-template-columns: 1fr 148px;\\n }\\n .grid-cols-\\\\[14px_1fr\\\\] {\\n grid-template-columns: 14px 1fr;\\n }\\n .flex-col {\\n flex-direction: column;\\n }\\n .flex-col-reverse {\\n flex-direction: column-reverse;\\n }\\n .flex-row {\\n flex-direction: row;\\n }\\n .flex-wrap {\\n flex-wrap: wrap;\\n }\\n .place-content-center {\\n place-content: center;\\n }\\n .items-baseline {\\n align-items: baseline;\\n }\\n .items-center {\\n align-items: center;\\n }\\n .items-start {\\n align-items: flex-start;\\n }\\n .justify-between {\\n justify-content: space-between;\\n }\\n .justify-center {\\n justify-content: center;\\n }\\n .justify-end {\\n justify-content: flex-end;\\n }\\n .justify-start {\\n justify-content: flex-start;\\n }\\n .gap-\\\\(--card-spacing\\\\) {\\n gap: var(--card-spacing);\\n }\\n .gap-0 {\\n gap: 0;\\n }\\n .gap-0\\\\.5 {\\n gap: calc(var(--spacing) * .5);\\n }\\n .gap-1 {\\n gap: var(--spacing);\\n }\\n .gap-1\\\\.5 {\\n gap: calc(var(--spacing) * 1.5);\\n }\\n .gap-2 {\\n gap: calc(var(--spacing) * 2);\\n }\\n .gap-2\\\\.5 {\\n gap: calc(var(--spacing) * 2.5);\\n }\\n .gap-2\\\\.25 {\\n gap: calc(var(--spacing) * 2.25);\\n }\\n .gap-2\\\\.75 {\\n gap: calc(var(--spacing) * 2.75);\\n }\\n .gap-3 {\\n gap: calc(var(--spacing) * 3);\\n }\\n .gap-3\\\\.5 {\\n gap: calc(var(--spacing) * 3.5);\\n }\\n .gap-4 {\\n gap: calc(var(--spacing) * 4);\\n }\\n .gap-5 {\\n gap: calc(var(--spacing) * 5);\\n }\\n .gap-\\\\[--spacing\\\\(var\\\\(--gap\\\\)\\\\)\\\\] {\\n gap: calc(var(--spacing) * var(--gap));\\n }\\n :where(.space-y-0\\\\.5 > :not(:last-child)) {\\n --tw-space-y-reverse:0;\\n margin-block-start: calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));\\n margin-block-end: calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)));\\n }\\n :where(.space-y-1 > :not(:last-child)) {\\n --tw-space-y-reverse:0;\\n margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));\\n margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));\\n }\\n :where(.space-y-2 > :not(:last-child)) {\\n --tw-space-y-reverse:0;\\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\\n }\\n :where(.space-y-2\\\\.5 > :not(:last-child)) {\\n --tw-space-y-reverse:0;\\n margin-block-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));\\n margin-block-end: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)));\\n }\\n :where(.space-y-3\\\\.5 > :not(:last-child)) {\\n --tw-space-y-reverse:0;\\n margin-block-start: calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));\\n margin-block-end: calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)));\\n }\\n :where(.space-y-4 > :not(:last-child)) {\\n --tw-space-y-reverse:0;\\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\\n }\\n .self-start {\\n align-self: flex-start;\\n }\\n .justify-self-end {\\n justify-self: flex-end;\\n }\\n .truncate {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n }\\n .overflow-auto {\\n overflow: auto;\\n }\\n .overflow-hidden {\\n overflow: hidden;\\n }\\n .overflow-x-auto {\\n overflow-x: auto;\\n }\\n .overflow-x-hidden {\\n overflow-x: hidden;\\n }\\n .overflow-y-auto {\\n overflow-y: auto;\\n }\\n .rounded-4xl {\\n border-radius: var(--radius-4xl);\\n }\\n .rounded-\\\\[2px\\\\] {\\n border-radius: 2px;\\n }\\n .rounded-\\\\[4px\\\\] {\\n border-radius: 4px;\\n }\\n .rounded-\\\\[min\\\\(var\\\\(--radius-md\\\\)\\\\,10px\\\\)\\\\] {\\n border-radius: min(var(--radius-md), 10px);\\n }\\n .rounded-\\\\[min\\\\(var\\\\(--radius-md\\\\)\\\\,12px\\\\)\\\\] {\\n border-radius: min(var(--radius-md), 12px);\\n }\\n .rounded-full {\\n border-radius: 3.40282e38px;\\n }\\n .rounded-lg,\\n .rounded-md,\\n .rounded-none,\\n .rounded-xl {\\n border-radius: 0;\\n }\\n .rounded-t-xl {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n }\\n .rounded-b-xl {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .border {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n .border-0 {\\n border-style: var(--tw-border-style);\\n border-width: 0;\\n }\\n .border-2 {\\n border-style: var(--tw-border-style);\\n border-width: 2px;\\n }\\n .border-t {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 1px;\\n }\\n .border-t-2 {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 2px;\\n }\\n .border-b {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n .border-b-\\\\[3px\\\\] {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 3px;\\n }\\n .border-l {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 1px;\\n }\\n .border-l-\\\\[3px\\\\] {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 3px;\\n }\\n .border-dashed {\\n --tw-border-style:dashed;\\n border-style: dashed;\\n }\\n .border-dotted {\\n --tw-border-style:dotted;\\n border-style: dotted;\\n }\\n .border-double {\\n --tw-border-style:double;\\n border-style: double;\\n }\\n .border-accent {\\n border-color: hsl(var(--accent));\\n }\\n .border-border {\\n border-color: hsl(var(--border));\\n }\\n .border-input {\\n border-color: hsl(var(--input));\\n }\\n .border-muted-foreground {\\n border-color: hsl(var(--muted-foreground));\\n }\\n .border-primary {\\n border-color: hsl(var(--primary));\\n }\\n .border-sidebar-border {\\n border-color: hsl(var(--sidebar-border));\\n }\\n .border-transparent {\\n border-color: #0000;\\n }\\n .border-t-primary {\\n border-top-color: hsl(var(--primary));\\n }\\n .border-b-muted {\\n border-bottom-color: hsl(var(--muted));\\n }\\n .bg-\\\\[\\\\#EDF1F8\\\\] {\\n background-color: #edf1f8;\\n }\\n .bg-\\\\[\\\\#F8FAFD\\\\] {\\n background-color: #f8fafd;\\n }\\n .bg-\\\\[hsl\\\\(var\\\\(--accent\\\\)\\\\)\\\\],\\n .bg-accent {\\n background-color: hsl(var(--accent));\\n }\\n .bg-background {\\n background-color: hsl(var(--background));\\n }\\n .bg-black\\\\/10 {\\n background-color: #0000001a;\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .bg-black\\\\/10 {\\n background-color: color-mix(in oklab, var(--color-black) 10%, transparent);\\n }\\n }\\n .bg-border {\\n background-color: hsl(var(--border));\\n }\\n .bg-card {\\n background-color: hsl(var(--card));\\n }\\n .bg-destructive\\\\/10 {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .bg-destructive\\\\/10 {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 10%, transparent);\\n }\\n }\\n .bg-foreground {\\n background-color: hsl(var(--foreground));\\n }\\n .bg-muted {\\n background-color: hsl(var(--muted));\\n }\\n .bg-muted-foreground\\\\/50 {\\n background-color: hsl(var(--muted-foreground));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .bg-muted-foreground\\\\/50 {\\n background-color: color-mix(in oklab, hsl(var(--muted-foreground)) 50%, transparent);\\n }\\n }\\n .bg-muted\\\\/50 {\\n background-color: hsl(var(--muted));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .bg-muted\\\\/50 {\\n background-color: color-mix(in oklab, hsl(var(--muted)) 50%, transparent);\\n }\\n }\\n .bg-popover {\\n background-color: hsl(var(--popover));\\n }\\n .bg-primary {\\n background-color: hsl(var(--primary));\\n }\\n .bg-secondary {\\n background-color: hsl(var(--secondary));\\n }\\n .bg-sidebar {\\n background-color: hsl(var(--sidebar));\\n }\\n .bg-sidebar-border {\\n background-color: hsl(var(--sidebar-border));\\n }\\n .bg-transparent {\\n background-color: #0000;\\n }\\n .bg-clip-padding {\\n background-clip: padding-box;\\n }\\n .fill-foreground {\\n fill: hsl(var(--foreground));\\n }\\n .p-\\\\(--card-spacing\\\\) {\\n padding: var(--card-spacing);\\n }\\n .p-0 {\\n padding: 0;\\n }\\n .p-1 {\\n padding: var(--spacing);\\n }\\n .p-2 {\\n padding: calc(var(--spacing) * 2);\\n }\\n .p-3 {\\n padding: calc(var(--spacing) * 3);\\n }\\n .p-4 {\\n padding: calc(var(--spacing) * 4);\\n }\\n .p-8 {\\n padding: calc(var(--spacing) * 8);\\n }\\n .p-\\\\[3px\\\\] {\\n padding: 3px;\\n }\\n .px-\\\\(--card-spacing\\\\) {\\n padding-inline: var(--card-spacing);\\n }\\n .px-1 {\\n padding-inline: var(--spacing);\\n }\\n .px-1\\\\.5 {\\n padding-inline: calc(var(--spacing) * 1.5);\\n }\\n .px-1\\\\.75 {\\n padding-inline: calc(var(--spacing) * 1.75);\\n }\\n .px-2 {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n .px-2\\\\.5 {\\n padding-inline: calc(var(--spacing) * 2.5);\\n }\\n .px-2\\\\.75 {\\n padding-inline: calc(var(--spacing) * 2.75);\\n }\\n .px-3 {\\n padding-inline: calc(var(--spacing) * 3);\\n }\\n .px-3\\\\.5 {\\n padding-inline: calc(var(--spacing) * 3.5);\\n }\\n .px-4 {\\n padding-inline: calc(var(--spacing) * 4);\\n }\\n .px-4\\\\.5 {\\n padding-inline: calc(var(--spacing) * 4.5);\\n }\\n .px-5 {\\n padding-inline: calc(var(--spacing) * 5);\\n }\\n .px-8 {\\n padding-inline: calc(var(--spacing) * 8);\\n }\\n .py-\\\\(--card-spacing\\\\) {\\n padding-block: var(--card-spacing);\\n }\\n .py-0 {\\n padding-block: 0;\\n }\\n .py-0\\\\.5 {\\n padding-block: calc(var(--spacing) * .5);\\n }\\n .py-0\\\\.75 {\\n padding-block: calc(var(--spacing) * .75);\\n }\\n .py-1 {\\n padding-block: var(--spacing);\\n }\\n .py-1\\\\.5 {\\n padding-block: calc(var(--spacing) * 1.5);\\n }\\n .py-2 {\\n padding-block: calc(var(--spacing) * 2);\\n }\\n .py-2\\\\.5 {\\n padding-block: calc(var(--spacing) * 2.5);\\n }\\n .py-2\\\\.25 {\\n padding-block: calc(var(--spacing) * 2.25);\\n }\\n .py-2\\\\.75 {\\n padding-block: calc(var(--spacing) * 2.75);\\n }\\n .py-3 {\\n padding-block: calc(var(--spacing) * 3);\\n }\\n .py-4 {\\n padding-block: calc(var(--spacing) * 4);\\n }\\n .py-4\\\\.5 {\\n padding-block: calc(var(--spacing) * 4.5);\\n }\\n .py-5 {\\n padding-block: calc(var(--spacing) * 5);\\n }\\n .py-px {\\n padding-block: 1px;\\n }\\n .pt-0 {\\n padding-top: 0;\\n }\\n .pt-2\\\\.5 {\\n padding-top: calc(var(--spacing) * 2.5);\\n }\\n .pt-4\\\\.5 {\\n padding-top: calc(var(--spacing) * 4.5);\\n }\\n .pr-8 {\\n padding-right: calc(var(--spacing) * 8);\\n }\\n .pb-3\\\\.5 {\\n padding-bottom: calc(var(--spacing) * 3.5);\\n }\\n .pl-1\\\\.5 {\\n padding-left: calc(var(--spacing) * 1.5);\\n }\\n .pl-6\\\\.5 {\\n padding-left: calc(var(--spacing) * 6.5);\\n }\\n .pl-11 {\\n padding-left: calc(var(--spacing) * 11);\\n }\\n .pl-\\\\[26px\\\\] {\\n padding-left: 26px;\\n }\\n .pl-\\\\[44px\\\\] {\\n padding-left: 44px;\\n }\\n .text-center {\\n text-align: center;\\n }\\n .text-left {\\n text-align: left;\\n }\\n .text-right {\\n text-align: right;\\n }\\n .align-middle {\\n vertical-align: middle;\\n }\\n .font-mono {\\n font-family: IBM Plex Mono, monospace;\\n }\\n .font-sans {\\n font-family:\\n Helvetica Neue,\\n Helvetica,\\n Arial,\\n sans-serif;\\n }\\n .text-base {\\n font-size: var(--text-base);\\n line-height: var(--tw-leading,var(--text-base--line-height));\\n }\\n .text-lg {\\n font-size: var(--text-lg);\\n line-height: var(--tw-leading,var(--text-lg--line-height));\\n }\\n .text-sm {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading,var(--text-sm--line-height));\\n }\\n .text-xl {\\n font-size: var(--text-xl);\\n line-height: var(--tw-leading,var(--text-xl--line-height));\\n }\\n .text-xs {\\n font-size: var(--text-xs);\\n line-height: var(--tw-leading,var(--text-xs--line-height));\\n }\\n .text-\\\\[0\\\\.8rem\\\\] {\\n font-size: .8rem;\\n }\\n .text-\\\\[9px\\\\] {\\n font-size: 9px;\\n }\\n .text-\\\\[10px\\\\] {\\n font-size: 10px;\\n }\\n .text-\\\\[11px\\\\] {\\n font-size: 11px;\\n }\\n .text-\\\\[12px\\\\] {\\n font-size: 12px;\\n }\\n .text-\\\\[13px\\\\] {\\n font-size: 13px;\\n }\\n .text-\\\\[16px\\\\] {\\n font-size: 16px;\\n }\\n .text-\\\\[19px\\\\] {\\n font-size: 19px;\\n }\\n .leading-\\\\[1\\\\.9\\\\] {\\n --tw-leading:1.9;\\n line-height: 1.9;\\n }\\n .leading-none {\\n --tw-leading:1;\\n line-height: 1;\\n }\\n .leading-relaxed {\\n --tw-leading:var(--leading-relaxed);\\n line-height: var(--leading-relaxed);\\n }\\n .leading-snug {\\n --tw-leading:var(--leading-snug);\\n line-height: var(--leading-snug);\\n }\\n .font-medium {\\n --tw-font-weight:var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .font-normal {\\n --tw-font-weight:var(--font-weight-normal);\\n font-weight: var(--font-weight-normal);\\n }\\n .font-semibold {\\n --tw-font-weight:var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .tracking-\\\\[0\\\\.08em\\\\] {\\n --tw-tracking:.08em;\\n letter-spacing: .08em;\\n }\\n .tracking-\\\\[0\\\\.12em\\\\] {\\n --tw-tracking:.12em;\\n letter-spacing: .12em;\\n }\\n .tracking-wide {\\n --tw-tracking:var(--tracking-wide);\\n letter-spacing: var(--tracking-wide);\\n }\\n .tracking-widest {\\n --tw-tracking:var(--tracking-widest);\\n letter-spacing: var(--tracking-widest);\\n }\\n .text-balance {\\n text-wrap: balance;\\n }\\n .text-wrap {\\n text-wrap: wrap;\\n }\\n .wrap-break-word {\\n overflow-wrap: break-word;\\n }\\n .whitespace-nowrap {\\n white-space: nowrap;\\n }\\n .text-\\\\[\\\\#7C93B8\\\\] {\\n color: #7c93b8;\\n }\\n .text-\\\\[\\\\#8AA0C0\\\\] {\\n color: #8aa0c0;\\n }\\n .text-\\\\[\\\\#33507F\\\\] {\\n color: #33507f;\\n }\\n .text-\\\\[\\\\#C3CEE0\\\\] {\\n color: #c3cee0;\\n }\\n .text-background {\\n color: hsl(var(--background));\\n }\\n .text-card-foreground {\\n color: hsl(var(--card-foreground));\\n }\\n .text-current {\\n color: currentColor;\\n }\\n .text-destructive {\\n color: hsl(var(--destructive));\\n }\\n .text-foreground,\\n .text-foreground\\\\/60 {\\n color: hsl(var(--foreground));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .text-foreground\\\\/60 {\\n color: color-mix(in oklab, hsl(var(--foreground)) 60%, transparent);\\n }\\n }\\n .text-muted-foreground {\\n color: hsl(var(--muted-foreground));\\n }\\n .text-popover-foreground {\\n color: hsl(var(--popover-foreground));\\n }\\n .text-primary {\\n color: hsl(var(--primary));\\n }\\n .text-primary-foreground {\\n color: hsl(var(--primary-foreground));\\n }\\n .text-secondary-foreground {\\n color: hsl(var(--secondary-foreground));\\n }\\n .text-sidebar-foreground,\\n .text-sidebar-foreground\\\\/70 {\\n color: hsl(var(--sidebar-foreground));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .text-sidebar-foreground\\\\/70 {\\n color: color-mix(in oklab, hsl(var(--sidebar-foreground)) 70%, transparent);\\n }\\n }\\n .uppercase {\\n text-transform: uppercase;\\n }\\n .italic {\\n font-style: italic;\\n }\\n .not-italic {\\n font-style: normal;\\n }\\n .tabular-nums {\\n --tw-numeric-spacing:tabular-nums;\\n font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);\\n }\\n .underline-offset-4 {\\n text-underline-offset: 4px;\\n }\\n .shadow-\\\\[0_0_0_1px_var\\\\(--sidebar-border\\\\)\\\\] {\\n --tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-border));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-\\\\[5px_5px_0_rgba\\\\(10\\\\,42\\\\,94\\\\,0\\\\.18\\\\)\\\\] {\\n --tw-shadow:5px 5px 0 var(--tw-shadow-color,#0a2a5e2e);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-lg {\\n --tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-md {\\n --tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .shadow-none {\\n --tw-shadow:0 0 #0000;\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring,\\n .ring-1 {\\n --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .ring-foreground\\\\/10 {\\n --tw-ring-color:hsl(var(--foreground));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .ring-foreground\\\\/10 {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--foreground)) 10%, transparent);\\n }\\n }\\n .ring-sidebar-ring {\\n --tw-ring-color:hsl(var(--sidebar-ring));\\n }\\n .outline-hidden {\\n --tw-outline-style:none;\\n outline-style: none;\\n }\\n @media (forced-colors: active) {\\n .outline-hidden {\\n outline-offset: 2px;\\n outline: 2px solid #0000;\\n }\\n }\\n .outline {\\n outline-style: var(--tw-outline-style);\\n outline-width: 1px;\\n }\\n .grayscale {\\n --tw-grayscale:grayscale(100%);\\n 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,);\\n }\\n .transition {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to,\\n opacity,\\n box-shadow,\\n transform,\\n translate,\\n scale,\\n rotate,\\n filter,\\n -webkit-backdrop-filter,\\n backdrop-filter,\\n display,\\n content-visibility,\\n overlay,\\n pointer-events;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-\\\\[left\\\\,right\\\\,width\\\\] {\\n transition-property:\\n left,\\n right,\\n width;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-\\\\[margin\\\\,opacity\\\\] {\\n transition-property: margin, opacity;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-\\\\[width\\\\,height\\\\,padding\\\\] {\\n transition-property:\\n width,\\n height,\\n padding;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-\\\\[width\\\\] {\\n transition-property: width;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-all {\\n transition-property: all;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-colors {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-opacity {\\n transition-property: opacity;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-transform {\\n transition-property:\\n transform,\\n translate,\\n scale,\\n rotate;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .transition-none {\\n transition-property: none;\\n }\\n .duration-100 {\\n --tw-duration:.1s;\\n transition-duration: .1s;\\n }\\n .duration-150 {\\n --tw-duration:.15s;\\n transition-duration: .15s;\\n }\\n .duration-200 {\\n --tw-duration:.2s;\\n transition-duration: .2s;\\n }\\n .ease-in-out {\\n --tw-ease:var(--ease-in-out);\\n transition-timing-function: var(--ease-in-out);\\n }\\n .ease-linear {\\n --tw-ease:linear;\\n transition-timing-function: linear;\\n }\\n .outline-none {\\n --tw-outline-style:none;\\n outline-style: none;\\n }\\n .select-none {\\n -webkit-user-select: none;\\n user-select: none;\\n }\\n .\\\\[--card-spacing\\\\:--spacing\\\\(4\\\\)\\\\] {\\n --card-spacing:calc(var(--spacing) * 4);\\n }\\n .group-focus-within\\\\/menu-item\\\\:opacity-100:is(:where(.group\\\\/menu-item):focus-within *) {\\n opacity: 1;\\n }\\n @media (hover: hover) {\\n .group-hover\\\\/menu-item\\\\:opacity-100:is(:where(.group\\\\/menu-item):hover *) {\\n opacity: 1;\\n }\\n }\\n .group-focus\\\\/dropdown-menu-item\\\\:text-accent-foreground:is(:where(.group\\\\/dropdown-menu-item):focus *) {\\n color: hsl(var(--accent-foreground));\\n }\\n .group-has-disabled\\\\/field\\\\:opacity-50:is(:where(.group\\\\/field):has(:disabled) *) {\\n opacity: .5;\\n }\\n .group-has-data-\\\\[sidebar\\\\=menu-action\\\\]\\\\/menu-item\\\\:pr-8:is(:where(.group\\\\/menu-item):has([data-sidebar=menu-action]) *) {\\n padding-right: calc(var(--spacing) * 8);\\n }\\n .group-has-\\\\[\\\\>svg\\\\]\\\\/alert\\\\:col-start-2:is(:where(.group\\\\/alert):has(> svg) *) {\\n grid-column-start: 2;\\n }\\n .group-aria-pressed\\\\/toggle\\\\:text-accent:is(:where(.group\\\\/toggle)[aria-pressed=true] *),\\n .group-data-active\\\\/menu-button\\\\:text-accent:is(:where(.group\\\\/menu-button)[data-active] *) {\\n color: hsl(var(--accent));\\n }\\n .group-data-horizontal\\\\/tabs\\\\:h-8:is(:where(.group\\\\/tabs)[data-horizontal] *) {\\n height: calc(var(--spacing) * 8);\\n }\\n .group-data-vertical\\\\/tabs\\\\:h-fit:is(:where(.group\\\\/tabs)[data-vertical] *) {\\n height: fit-content;\\n }\\n .group-data-vertical\\\\/tabs\\\\:w-full:is(:where(.group\\\\/tabs)[data-vertical] *) {\\n width: 100%;\\n }\\n .group-data-vertical\\\\/tabs\\\\:flex-col:is(:where(.group\\\\/tabs)[data-vertical] *) {\\n flex-direction: column;\\n }\\n .group-data-vertical\\\\/tabs\\\\:justify-start:is(:where(.group\\\\/tabs)[data-vertical] *) {\\n justify-content: flex-start;\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:-mt-8:is(:where(.group)[data-collapsible=icon] *) {\\n margin-top: calc(var(--spacing) * -8);\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:hidden:is(:where(.group)[data-collapsible=icon] *) {\\n display: none;\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:size-8\\\\!:is(:where(.group)[data-collapsible=icon] *) {\\n width: calc(var(--spacing) * 8) !important;\\n height: calc(var(--spacing) * 8) !important;\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:w-\\\\(--sidebar-width-icon\\\\):is(:where(.group)[data-collapsible=icon] *) {\\n width: var(--sidebar-width-icon);\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:w-\\\\[calc\\\\(var\\\\(--sidebar-width-icon\\\\)\\\\+\\\\(--spacing\\\\(4\\\\)\\\\)\\\\)\\\\]:is(:where(.group)[data-collapsible=icon] *) {\\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)));\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:w-\\\\[calc\\\\(var\\\\(--sidebar-width-icon\\\\)\\\\+\\\\(--spacing\\\\(4\\\\)\\\\)\\\\+2px\\\\)\\\\]:is(:where(.group)[data-collapsible=icon] *) {\\n width: calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px);\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *) {\\n overflow: hidden;\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:p-0\\\\!:is(:where(.group)[data-collapsible=icon] *) {\\n padding: 0 !important;\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:p-2\\\\!:is(:where(.group)[data-collapsible=icon] *) {\\n padding: calc(var(--spacing) * 2) !important;\\n }\\n .group-data-\\\\[collapsible\\\\=icon\\\\]\\\\:opacity-0:is(:where(.group)[data-collapsible=icon] *) {\\n opacity: 0;\\n }\\n .group-data-\\\\[collapsible\\\\=offcanvas\\\\]\\\\:w-0:is(:where(.group)[data-collapsible=offcanvas] *) {\\n width: 0;\\n }\\n .group-data-\\\\[collapsible\\\\=offcanvas\\\\]\\\\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *) {\\n --tw-translate-x:0px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .group-data-\\\\[side\\\\=left\\\\]\\\\:-right-4:is(:where(.group)[data-side=left] *) {\\n right: calc(var(--spacing) * -4);\\n }\\n .group-data-\\\\[side\\\\=left\\\\]\\\\:border-r:is(:where(.group)[data-side=left] *) {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 1px;\\n }\\n .group-data-\\\\[side\\\\=right\\\\]\\\\:left-0:is(:where(.group)[data-side=right] *) {\\n left: 0;\\n }\\n .group-data-\\\\[side\\\\=right\\\\]\\\\:rotate-180:is(:where(.group)[data-side=right] *) {\\n rotate: 180deg;\\n }\\n .group-data-\\\\[side\\\\=right\\\\]\\\\:border-l:is(:where(.group)[data-side=right] *) {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 1px;\\n }\\n .group-data-\\\\[size\\\\=sm\\\\]\\\\/card\\\\:text-sm:is(:where(.group\\\\/card)[data-size=sm] *) {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading,var(--text-sm--line-height));\\n }\\n .group-data-\\\\[spacing\\\\=0\\\\]\\\\/toggle-group\\\\:rounded-none:is(:where(.group\\\\/toggle-group)[data-spacing=\\\"0\\\"] *) {\\n border-radius: 0;\\n }\\n .group-data-\\\\[spacing\\\\=0\\\\]\\\\/toggle-group\\\\:px-2:is(:where(.group\\\\/toggle-group)[data-spacing=\\\"0\\\"] *) {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n .group-data-\\\\[state\\\\=on\\\\]\\\\/toggle\\\\:text-accent:is(:where(.group\\\\/toggle)[data-state=on] *) {\\n color: hsl(var(--accent));\\n }\\n .group-data-\\\\[variant\\\\=floating\\\\]\\\\:rounded-lg:is(:where(.group)[data-variant=floating] *) {\\n border-radius: 0;\\n }\\n .group-data-\\\\[variant\\\\=floating\\\\]\\\\:shadow-sm:is(:where(.group)[data-variant=floating] *) {\\n --tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .group-data-\\\\[variant\\\\=floating\\\\]\\\\:ring-1:is(:where(.group)[data-variant=floating] *) {\\n --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .group-data-\\\\[variant\\\\=floating\\\\]\\\\:ring-sidebar-border:is(:where(.group)[data-variant=floating] *) {\\n --tw-ring-color:hsl(var(--sidebar-border));\\n }\\n .group-data-\\\\[variant\\\\=line\\\\]\\\\/tabs-list\\\\:bg-transparent:is(:where(.group\\\\/tabs-list)[data-variant=line] *) {\\n background-color: #0000;\\n }\\n @media (hover: hover) {\\n .peer-hover\\\\/menu-button\\\\:text-sidebar-accent-foreground:is(:where(.peer\\\\/menu-button):hover ~ *) {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n }\\n .peer-data-active\\\\/menu-button\\\\:text-sidebar-accent-foreground:is(:where(.peer\\\\/menu-button)[data-active] ~ *) {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n .peer-data-\\\\[size\\\\=default\\\\]\\\\/menu-button\\\\:top-1\\\\.5:is(:where(.peer\\\\/menu-button)[data-size=default] ~ *) {\\n top: calc(var(--spacing) * 1.5);\\n }\\n .peer-data-\\\\[size\\\\=lg\\\\]\\\\/menu-button\\\\:top-2\\\\.5:is(:where(.peer\\\\/menu-button)[data-size=lg] ~ *) {\\n top: calc(var(--spacing) * 2.5);\\n }\\n .peer-data-\\\\[size\\\\=sm\\\\]\\\\/menu-button\\\\:top-1:is(:where(.peer\\\\/menu-button)[data-size=sm] ~ *) {\\n top: var(--spacing);\\n }\\n .file\\\\:inline-flex::file-selector-button {\\n display: inline-flex;\\n }\\n .file\\\\:h-6::file-selector-button {\\n height: calc(var(--spacing) * 6);\\n }\\n .file\\\\:border-0::file-selector-button {\\n border-style: var(--tw-border-style);\\n border-width: 0;\\n }\\n .file\\\\:bg-transparent::file-selector-button {\\n background-color: #0000;\\n }\\n .file\\\\:text-sm::file-selector-button {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading,var(--text-sm--line-height));\\n }\\n .file\\\\:font-medium::file-selector-button {\\n --tw-font-weight:var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .file\\\\:text-foreground::file-selector-button {\\n color: hsl(var(--foreground));\\n }\\n .placeholder\\\\:text-muted-foreground::placeholder {\\n color: hsl(var(--muted-foreground));\\n }\\n .after\\\\:absolute:after {\\n content: var(--tw-content);\\n position: absolute;\\n }\\n .after\\\\:-inset-2:after {\\n content: var(--tw-content);\\n inset: calc(var(--spacing) * -2);\\n }\\n .after\\\\:-inset-x-3:after {\\n content: var(--tw-content);\\n inset-inline: calc(var(--spacing) * -3);\\n }\\n .after\\\\:-inset-y-2:after {\\n content: var(--tw-content);\\n inset-block: calc(var(--spacing) * -2);\\n }\\n .after\\\\:inset-y-0:after {\\n content: var(--tw-content);\\n inset-block: 0;\\n }\\n .after\\\\:start-1\\\\/2:after {\\n content: var(--tw-content);\\n inset-inline-start: 50%;\\n }\\n .after\\\\:w-\\\\[2px\\\\]:after {\\n content: var(--tw-content);\\n width: 2px;\\n }\\n .after\\\\:bg-foreground:after {\\n content: var(--tw-content);\\n background-color: hsl(var(--foreground));\\n }\\n .after\\\\:opacity-0:after {\\n content: var(--tw-content);\\n opacity: 0;\\n }\\n .after\\\\:transition-opacity:after {\\n content: var(--tw-content);\\n transition-property: opacity;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n .group-data-horizontal\\\\/tabs\\\\:after\\\\:inset-x-0:is(:where(.group\\\\/tabs)[data-horizontal] *):after {\\n content: var(--tw-content);\\n inset-inline: 0;\\n }\\n .group-data-horizontal\\\\/tabs\\\\:after\\\\:bottom-\\\\[-5px\\\\]:is(:where(.group\\\\/tabs)[data-horizontal] *):after {\\n content: var(--tw-content);\\n bottom: -5px;\\n }\\n .group-data-horizontal\\\\/tabs\\\\:after\\\\:h-0\\\\.5:is(:where(.group\\\\/tabs)[data-horizontal] *):after {\\n content: var(--tw-content);\\n height: calc(var(--spacing) * .5);\\n }\\n .group-data-vertical\\\\/tabs\\\\:after\\\\:inset-y-0:is(:where(.group\\\\/tabs)[data-vertical] *):after {\\n content: var(--tw-content);\\n inset-block: 0;\\n }\\n .group-data-vertical\\\\/tabs\\\\:after\\\\:-right-1:is(:where(.group\\\\/tabs)[data-vertical] *):after {\\n content: var(--tw-content);\\n right: calc(var(--spacing) * -1);\\n }\\n .group-data-vertical\\\\/tabs\\\\:after\\\\:w-0\\\\.5:is(:where(.group\\\\/tabs)[data-vertical] *):after {\\n content: var(--tw-content);\\n width: calc(var(--spacing) * .5);\\n }\\n .group-data-\\\\[collapsible\\\\=offcanvas\\\\]\\\\:after\\\\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after {\\n content: var(--tw-content);\\n left: 100%;\\n }\\n .last\\\\:border-b-0:last-child {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 0;\\n }\\n @media (hover: hover) {\\n .hover\\\\:bg-\\\\[\\\\#33507F\\\\]:hover {\\n background-color: #33507f;\\n }\\n .hover\\\\:bg-\\\\[color-mix\\\\(in_oklch\\\\,var\\\\(--secondary\\\\)\\\\,var\\\\(--foreground\\\\)_5\\\\%\\\\)\\\\]:hover {\\n background-color: var(--secondary);\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .hover\\\\:bg-\\\\[color-mix\\\\(in_oklch\\\\,var\\\\(--secondary\\\\)\\\\,var\\\\(--foreground\\\\)_5\\\\%\\\\)\\\\]:hover {\\n background-color: color-mix(in oklch, var(--secondary), var(--foreground) 5%);\\n }\\n }\\n .hover\\\\:bg-\\\\[hsl\\\\(var\\\\(--accent\\\\)\\\\)\\\\]\\\\/90:hover {\\n background-color: hsl(var(--accent));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .hover\\\\:bg-\\\\[hsl\\\\(var\\\\(--accent\\\\)\\\\)\\\\]\\\\/90:hover {\\n background-color: color-mix(in oklab, hsl(var(--accent)) 90%, transparent);\\n }\\n }\\n .hover\\\\:bg-accent\\\\!:hover {\\n background-color: hsl(var(--accent)) !important;\\n }\\n .hover\\\\:bg-background\\\\!:hover {\\n background-color: hsl(var(--background)) !important;\\n }\\n .hover\\\\:bg-destructive\\\\/10\\\\!:hover {\\n background-color: hsl(var(--destructive)) !important;\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .hover\\\\:bg-destructive\\\\/10\\\\!:hover {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 10%, transparent) !important;\\n }\\n }\\n .hover\\\\:bg-destructive\\\\/20:hover {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .hover\\\\:bg-destructive\\\\/20:hover {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 20%, transparent);\\n }\\n }\\n .hover\\\\:bg-muted:hover,\\n .hover\\\\:bg-muted\\\\/50:hover {\\n background-color: hsl(var(--muted));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .hover\\\\:bg-muted\\\\/50:hover {\\n background-color: color-mix(in oklab, hsl(var(--muted)) 50%, transparent);\\n }\\n }\\n .hover\\\\:bg-primary:hover {\\n background-color: hsl(var(--primary));\\n }\\n .hover\\\\:bg-primary\\\\!:hover {\\n background-color: hsl(var(--primary)) !important;\\n }\\n .hover\\\\:bg-primary\\\\/80:hover {\\n background-color: hsl(var(--primary));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .hover\\\\:bg-primary\\\\/80:hover {\\n background-color: color-mix(in oklab, hsl(var(--primary)) 80%, transparent);\\n }\\n }\\n .hover\\\\:bg-secondary\\\\!:hover {\\n background-color: hsl(var(--secondary)) !important;\\n }\\n .hover\\\\:bg-sidebar-accent:hover {\\n background-color: hsl(var(--sidebar-accent));\\n }\\n .hover\\\\:bg-transparent:hover {\\n background-color: #0000;\\n }\\n .hover\\\\:bg-transparent\\\\!:hover {\\n background-color: #0000 !important;\\n }\\n .hover\\\\:text-\\\\[\\\\#C3CEE0\\\\]:hover {\\n color: #c3cee0;\\n }\\n .hover\\\\:text-foreground:hover {\\n color: hsl(var(--foreground));\\n }\\n .hover\\\\:text-inherit\\\\!:hover {\\n color: inherit !important;\\n }\\n .hover\\\\:text-muted-foreground:hover {\\n color: hsl(var(--muted-foreground));\\n }\\n .hover\\\\:text-muted-foreground\\\\!:hover {\\n color: hsl(var(--muted-foreground)) !important;\\n }\\n .hover\\\\:text-sidebar-accent-foreground:hover {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n .hover\\\\:no-underline\\\\!:hover {\\n text-decoration-line: none !important;\\n }\\n .hover\\\\:underline:hover {\\n text-decoration-line: underline;\\n }\\n .hover\\\\:shadow-\\\\[0_0_0_1px_var\\\\(--sidebar-accent\\\\)\\\\]:hover {\\n --tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-accent));\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .hover\\\\:group-data-\\\\[collapsible\\\\=offcanvas\\\\]\\\\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *) {\\n background-color: hsl(var(--sidebar));\\n }\\n .hover\\\\:after\\\\:bg-sidebar-border:hover:after {\\n content: var(--tw-content);\\n background-color: hsl(var(--sidebar-border));\\n }\\n }\\n .focus\\\\:z-10:focus {\\n z-index: 10;\\n }\\n .focus\\\\:bg-accent:focus {\\n background-color: hsl(var(--accent));\\n }\\n .focus\\\\:text-accent-foreground:focus,\\n :is(.focus\\\\:\\\\*\\\\*\\\\:text-accent-foreground:focus *),\\n :is(.not-data-\\\\[variant\\\\=destructive\\\\]\\\\:focus\\\\:\\\\*\\\\*\\\\:text-accent-foreground:not([data-variant=destructive]):focus *) {\\n color: hsl(var(--accent-foreground));\\n }\\n .focus-visible\\\\:z-10:focus-visible {\\n z-index: 10;\\n }\\n .focus-visible\\\\:border-destructive\\\\/40:focus-visible {\\n border-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .focus-visible\\\\:border-destructive\\\\/40:focus-visible {\\n border-color: color-mix(in oklab, hsl(var(--destructive)) 40%, transparent);\\n }\\n }\\n .focus-visible\\\\:border-primary:focus-visible {\\n border-color: hsl(var(--primary));\\n }\\n .focus-visible\\\\:border-ring:focus-visible {\\n border-color: hsl(var(--ring));\\n }\\n .focus-visible\\\\:ring-2:focus-visible {\\n --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .focus-visible\\\\:ring-3:focus-visible,\\n .focus-visible\\\\:ring-\\\\[3px\\\\]:focus-visible {\\n --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .focus-visible\\\\:ring-accent:focus-visible {\\n --tw-ring-color:hsl(var(--accent));\\n }\\n .focus-visible\\\\:ring-destructive\\\\/20:focus-visible {\\n --tw-ring-color:hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .focus-visible\\\\:ring-destructive\\\\/20:focus-visible {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--destructive)) 20%, transparent);\\n }\\n }\\n .focus-visible\\\\:ring-primary\\\\/50:focus-visible {\\n --tw-ring-color:hsl(var(--primary));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .focus-visible\\\\:ring-primary\\\\/50:focus-visible {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--primary)) 50%, transparent);\\n }\\n }\\n .focus-visible\\\\:ring-ring\\\\/50:focus-visible {\\n --tw-ring-color:hsl(var(--ring));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .focus-visible\\\\:ring-ring\\\\/50:focus-visible {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--ring)) 50%, transparent);\\n }\\n }\\n .focus-visible\\\\:outline-1:focus-visible {\\n outline-style: var(--tw-outline-style);\\n outline-width: 1px;\\n }\\n .focus-visible\\\\:outline-ring:focus-visible {\\n outline-color: hsl(var(--ring));\\n }\\n .active\\\\:translate-y-0\\\\!:active {\\n --tw-translate-y:0px !important;\\n translate: var(--tw-translate-x) var(--tw-translate-y) !important;\\n }\\n .active\\\\:bg-sidebar-accent:active {\\n background-color: hsl(var(--sidebar-accent));\\n }\\n .active\\\\:text-sidebar-accent-foreground:active {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n .active\\\\:not-aria-\\\\[haspopup\\\\]\\\\:translate-y-px:active:not([aria-haspopup]) {\\n --tw-translate-y:1px;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .disabled\\\\:pointer-events-none:disabled {\\n pointer-events: none;\\n }\\n .disabled\\\\:cursor-not-allowed:disabled {\\n cursor: not-allowed;\\n }\\n .disabled\\\\:border-border:disabled {\\n border-color: hsl(var(--border));\\n }\\n .disabled\\\\:bg-input\\\\/50:disabled {\\n background-color: hsl(var(--input));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .disabled\\\\:bg-input\\\\/50:disabled {\\n background-color: color-mix(in oklab, hsl(var(--input)) 50%, transparent);\\n }\\n }\\n .disabled\\\\:bg-muted:disabled {\\n background-color: hsl(var(--muted));\\n }\\n .disabled\\\\:text-muted-foreground:disabled {\\n color: hsl(var(--muted-foreground));\\n }\\n .disabled\\\\:opacity-50:disabled {\\n opacity: .5;\\n }\\n .disabled\\\\:opacity-100:disabled {\\n opacity: 1;\\n }\\n :where([data-side=left]) .in-data-\\\\[side\\\\=left\\\\]\\\\:cursor-w-resize {\\n cursor: w-resize;\\n }\\n :where([data-side=right]) .in-data-\\\\[side\\\\=right\\\\]\\\\:cursor-e-resize {\\n cursor: e-resize;\\n }\\n :where([data-slot=button-group]) .in-data-\\\\[slot\\\\=button-group\\\\]\\\\:rounded-lg {\\n border-radius: 0;\\n }\\n .has-aria-expanded\\\\:bg-muted\\\\/50:has([aria-expanded=true]) {\\n background-color: hsl(var(--muted));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .has-aria-expanded\\\\:bg-muted\\\\/50:has([aria-expanded=true]) {\\n background-color: color-mix(in oklab, hsl(var(--muted)) 50%, transparent);\\n }\\n }\\n .has-data-\\\\[icon\\\\=inline-end\\\\]\\\\:pr-1:has([data-icon=inline-end]) {\\n padding-right: var(--spacing);\\n }\\n .has-data-\\\\[icon\\\\=inline-end\\\\]\\\\:pr-1\\\\.5:has([data-icon=inline-end]) {\\n padding-right: calc(var(--spacing) * 1.5);\\n }\\n .has-data-\\\\[icon\\\\=inline-end\\\\]\\\\:pr-2:has([data-icon=inline-end]) {\\n padding-right: calc(var(--spacing) * 2);\\n }\\n .group-data-\\\\[spacing\\\\=0\\\\]\\\\/toggle-group\\\\:has-data-\\\\[icon\\\\=inline-end\\\\]\\\\:pr-1\\\\.5:is(:where(.group\\\\/toggle-group)[data-spacing=\\\"0\\\"] *):has([data-icon=inline-end]) {\\n padding-right: calc(var(--spacing) * 1.5);\\n }\\n .has-data-\\\\[icon\\\\=inline-start\\\\]\\\\:pl-1:has([data-icon=inline-start]) {\\n padding-left: var(--spacing);\\n }\\n .has-data-\\\\[icon\\\\=inline-start\\\\]\\\\:pl-1\\\\.5:has([data-icon=inline-start]) {\\n padding-left: calc(var(--spacing) * 1.5);\\n }\\n .has-data-\\\\[icon\\\\=inline-start\\\\]\\\\:pl-2:has([data-icon=inline-start]) {\\n padding-left: calc(var(--spacing) * 2);\\n }\\n .group-data-\\\\[spacing\\\\=0\\\\]\\\\/toggle-group\\\\:has-data-\\\\[icon\\\\=inline-start\\\\]\\\\:pl-1\\\\.5:is(:where(.group\\\\/toggle-group)[data-spacing=\\\"0\\\"] *):has([data-icon=inline-start]) {\\n padding-left: calc(var(--spacing) * 1.5);\\n }\\n .has-data-\\\\[slot\\\\=alert-action\\\\]\\\\:relative:has([data-slot=alert-action]) {\\n position: relative;\\n }\\n .has-data-\\\\[slot\\\\=alert-action\\\\]\\\\:pr-18:has([data-slot=alert-action]) {\\n padding-right: calc(var(--spacing) * 18);\\n }\\n .has-data-\\\\[slot\\\\=card-action\\\\]\\\\:grid-cols-\\\\[1fr_auto\\\\]:has([data-slot=card-action]) {\\n grid-template-columns: 1fr auto;\\n }\\n .has-data-\\\\[slot\\\\=card-description\\\\]\\\\:grid-rows-\\\\[auto_auto\\\\]:has([data-slot=card-description]) {\\n grid-template-rows: auto auto;\\n }\\n .has-data-\\\\[slot\\\\=card-footer\\\\]\\\\:pb-0:has([data-slot=card-footer]) {\\n padding-bottom: 0;\\n }\\n .has-data-\\\\[slot\\\\=kbd\\\\]\\\\:pr-1\\\\.5:has([data-slot=kbd]) {\\n padding-right: calc(var(--spacing) * 1.5);\\n }\\n .has-data-\\\\[variant\\\\=inset\\\\]\\\\:bg-sidebar:has([data-variant=inset]) {\\n background-color: hsl(var(--sidebar));\\n }\\n .has-\\\\[\\\\>img\\\\:first-child\\\\]\\\\:pt-0:has(> img:first-child) {\\n padding-top: 0;\\n }\\n .has-\\\\[\\\\>svg\\\\]\\\\:grid-cols-\\\\[auto_1fr\\\\]:has(> svg) {\\n grid-template-columns: auto 1fr;\\n }\\n .has-\\\\[\\\\>svg\\\\]\\\\:gap-x-2:has(> svg) {\\n column-gap: calc(var(--spacing) * 2);\\n }\\n .aria-disabled\\\\:pointer-events-none[aria-disabled=true] {\\n pointer-events: none;\\n }\\n .aria-disabled\\\\:opacity-50[aria-disabled=true] {\\n opacity: .5;\\n }\\n .aria-expanded\\\\:bg-muted[aria-expanded=true] {\\n background-color: hsl(var(--muted));\\n }\\n .aria-expanded\\\\:bg-secondary[aria-expanded=true] {\\n background-color: hsl(var(--secondary));\\n }\\n .aria-expanded\\\\:text-foreground[aria-expanded=true] {\\n color: hsl(var(--foreground));\\n }\\n .aria-expanded\\\\:text-secondary-foreground[aria-expanded=true] {\\n color: hsl(var(--secondary-foreground));\\n }\\n .aria-expanded\\\\:opacity-100[aria-expanded=true] {\\n opacity: 1;\\n }\\n .aria-invalid\\\\:border-destructive[aria-invalid=true] {\\n border-color: hsl(var(--destructive));\\n }\\n .aria-invalid\\\\:ring-3[aria-invalid=true] {\\n --tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .aria-invalid\\\\:ring-destructive\\\\/20[aria-invalid=true] {\\n --tw-ring-color:hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .aria-invalid\\\\:ring-destructive\\\\/20[aria-invalid=true] {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--destructive)) 20%, transparent);\\n }\\n }\\n .aria-invalid\\\\:aria-checked\\\\:border-primary[aria-invalid=true][aria-checked=true],\\n .aria-pressed\\\\:border-primary[aria-pressed=true] {\\n border-color: hsl(var(--primary));\\n }\\n .aria-pressed\\\\:bg-muted[aria-pressed=true] {\\n background-color: hsl(var(--muted));\\n }\\n .aria-pressed\\\\:bg-primary[aria-pressed=true] {\\n background-color: hsl(var(--primary));\\n }\\n .aria-pressed\\\\:text-primary-foreground[aria-pressed=true] {\\n color: hsl(var(--primary-foreground));\\n }\\n .data-active\\\\:border-b-accent[data-active] {\\n border-bottom-color: hsl(var(--accent));\\n }\\n .data-active\\\\:border-l-accent[data-active] {\\n border-left-color: hsl(var(--accent));\\n }\\n .data-active\\\\:bg-\\\\[\\\\#33507F\\\\][data-active] {\\n background-color: #33507f;\\n }\\n .data-active\\\\:bg-background[data-active] {\\n background-color: hsl(var(--background));\\n }\\n .data-active\\\\:bg-sidebar-accent[data-active] {\\n background-color: hsl(var(--sidebar-accent));\\n }\\n .data-active\\\\:bg-transparent[data-active] {\\n background-color: #0000;\\n }\\n .data-active\\\\:font-medium[data-active] {\\n --tw-font-weight:var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .data-active\\\\:font-semibold[data-active] {\\n --tw-font-weight:var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .data-active\\\\:text-foreground[data-active] {\\n color: hsl(var(--foreground));\\n }\\n .data-active\\\\:text-primary[data-active] {\\n color: hsl(var(--primary));\\n }\\n .data-active\\\\:text-sidebar-accent-foreground[data-active] {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n .data-active\\\\:text-white[data-active] {\\n color: var(--color-white);\\n }\\n .data-active\\\\:shadow-none[data-active] {\\n --tw-shadow:0 0 #0000;\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .group-data-\\\\[variant\\\\=default\\\\]\\\\/tabs-list\\\\:data-active\\\\:shadow-sm:is(:where(.group\\\\/tabs-list)[data-variant=default] *)[data-active] {\\n --tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .group-data-\\\\[variant\\\\=line\\\\]\\\\/tabs-list\\\\:data-active\\\\:bg-transparent:is(:where(.group\\\\/tabs-list)[data-variant=line] *)[data-active] {\\n background-color: #0000;\\n }\\n .group-data-\\\\[variant\\\\=line\\\\]\\\\/tabs-list\\\\:data-active\\\\:shadow-none:is(:where(.group\\\\/tabs-list)[data-variant=line] *)[data-active] {\\n --tw-shadow:0 0 #0000;\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .group-data-\\\\[variant\\\\=line\\\\]\\\\/tabs-list\\\\:data-active\\\\:after\\\\:opacity-100:is(:where(.group\\\\/tabs-list)[data-variant=line] *)[data-active]:after {\\n content: var(--tw-content);\\n opacity: 1;\\n }\\n @media (hover: hover) {\\n .data-active\\\\:hover\\\\:text-primary[data-active]:hover {\\n color: hsl(var(--primary));\\n }\\n }\\n .data-checked\\\\:border-primary[data-checked] {\\n border-color: hsl(var(--primary));\\n }\\n .data-checked\\\\:bg-primary[data-checked] {\\n background-color: hsl(var(--primary));\\n }\\n .data-checked\\\\:text-primary-foreground[data-checked] {\\n color: hsl(var(--primary-foreground));\\n }\\n .data-closed\\\\:overflow-hidden[data-closed] {\\n overflow: hidden;\\n }\\n .data-disabled\\\\:pointer-events-none[data-disabled] {\\n pointer-events: none;\\n }\\n .data-disabled\\\\:opacity-50[data-disabled] {\\n opacity: .5;\\n }\\n .data-ending-style\\\\:opacity-0[data-ending-style] {\\n opacity: 0;\\n }\\n .data-horizontal\\\\:h-px[data-horizontal] {\\n height: 1px;\\n }\\n .data-horizontal\\\\:w-full[data-horizontal] {\\n width: 100%;\\n }\\n .data-horizontal\\\\:flex-col[data-horizontal] {\\n flex-direction: column;\\n }\\n .data-inset\\\\:pl-7[data-inset] {\\n padding-left: calc(var(--spacing) * 7);\\n }\\n .data-open\\\\:bg-accent[data-open] {\\n background-color: hsl(var(--accent));\\n }\\n .data-open\\\\:text-accent-foreground[data-open] {\\n color: hsl(var(--accent-foreground));\\n }\\n @media (hover: hover) {\\n .data-open\\\\:hover\\\\:bg-sidebar-accent[data-open]:hover {\\n background-color: hsl(var(--sidebar-accent));\\n }\\n .data-open\\\\:hover\\\\:text-sidebar-accent-foreground[data-open]:hover {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n }\\n .data-popup-open\\\\:bg-accent[data-popup-open] {\\n background-color: hsl(var(--accent));\\n }\\n .data-popup-open\\\\:text-accent-foreground[data-popup-open] {\\n color: hsl(var(--accent-foreground));\\n }\\n .data-starting-style\\\\:opacity-0[data-starting-style] {\\n opacity: 0;\\n }\\n .data-vertical\\\\:w-px[data-vertical] {\\n width: 1px;\\n }\\n .data-vertical\\\\:flex-col[data-vertical] {\\n flex-direction: column;\\n }\\n .data-vertical\\\\:items-stretch[data-vertical] {\\n align-items: stretch;\\n }\\n .data-vertical\\\\:self-stretch[data-vertical] {\\n align-self: stretch;\\n }\\n .data-\\\\[active\\\\=true\\\\]\\\\:border-l-\\\\[hsl\\\\(var\\\\(--accent\\\\)\\\\)\\\\][data-active=true] {\\n border-left-color: hsl(var(--accent));\\n }\\n .data-\\\\[active\\\\=true\\\\]\\\\:bg-\\\\[\\\\#33507F\\\\][data-active=true] {\\n background-color: #33507f;\\n }\\n .data-\\\\[active\\\\=true\\\\]\\\\:font-semibold[data-active=true] {\\n --tw-font-weight:var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .data-\\\\[active\\\\=true\\\\]\\\\:text-white[data-active=true] {\\n color: var(--color-white);\\n }\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:inset-x-0[data-side=bottom] {\\n inset-inline: 0;\\n }\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:top-1[data-side=bottom] {\\n top: var(--spacing);\\n }\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:bottom-0[data-side=bottom] {\\n bottom: 0;\\n }\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:h-auto[data-side=bottom] {\\n height: auto;\\n }\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:border-t[data-side=bottom] {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 1px;\\n }\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:data-ending-style\\\\:translate-y-\\\\[2\\\\.5rem\\\\][data-side=bottom][data-ending-style],\\n .data-\\\\[side\\\\=bottom\\\\]\\\\:data-starting-style\\\\:translate-y-\\\\[2\\\\.5rem\\\\][data-side=bottom][data-starting-style] {\\n --tw-translate-y:2.5rem;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=inline-end\\\\]\\\\:top-1\\\\/2\\\\![data-side=inline-end] {\\n top: 50% !important;\\n }\\n .data-\\\\[side\\\\=inline-end\\\\]\\\\:-left-1[data-side=inline-end] {\\n left: calc(var(--spacing) * -1);\\n }\\n .data-\\\\[side\\\\=inline-end\\\\]\\\\:-translate-y-1\\\\/2[data-side=inline-end] {\\n --tw-translate-y:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=inline-start\\\\]\\\\:top-1\\\\/2\\\\![data-side=inline-start] {\\n top: 50% !important;\\n }\\n .data-\\\\[side\\\\=inline-start\\\\]\\\\:-right-1[data-side=inline-start] {\\n right: calc(var(--spacing) * -1);\\n }\\n .data-\\\\[side\\\\=inline-start\\\\]\\\\:-translate-y-1\\\\/2[data-side=inline-start] {\\n --tw-translate-y:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:inset-y-0[data-side=left] {\\n inset-block: 0;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:top-1\\\\/2\\\\![data-side=left] {\\n top: 50% !important;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:-right-1[data-side=left] {\\n right: calc(var(--spacing) * -1);\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:left-0[data-side=left] {\\n left: 0;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:h-full[data-side=left] {\\n height: 100%;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:w-3\\\\/4[data-side=left] {\\n width: 75%;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:-translate-y-1\\\\/2[data-side=left] {\\n --tw-translate-y:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:border-r[data-side=left] {\\n border-right-style: var(--tw-border-style);\\n border-right-width: 1px;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:group-data-\\\\[collapsible\\\\=offcanvas\\\\]\\\\:left-\\\\[calc\\\\(var\\\\(--sidebar-width\\\\)\\\\*-1\\\\)\\\\][data-side=left]:is(:where(.group)[data-collapsible=offcanvas] *) {\\n left: calc(var(--sidebar-width) * -1);\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:data-ending-style\\\\:translate-x-\\\\[-2\\\\.5rem\\\\][data-side=left][data-ending-style],\\n .data-\\\\[side\\\\=left\\\\]\\\\:data-starting-style\\\\:translate-x-\\\\[-2\\\\.5rem\\\\][data-side=left][data-starting-style] {\\n --tw-translate-x:-2.5rem;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:inset-y-0[data-side=right] {\\n inset-block: 0;\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:top-1\\\\/2\\\\![data-side=right] {\\n top: 50% !important;\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:right-0[data-side=right] {\\n right: 0;\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:-left-1[data-side=right] {\\n left: calc(var(--spacing) * -1);\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:h-full[data-side=right] {\\n height: 100%;\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:w-3\\\\/4[data-side=right] {\\n width: 75%;\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:-translate-y-1\\\\/2[data-side=right] {\\n --tw-translate-y:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:border-l[data-side=right] {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 1px;\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:group-data-\\\\[collapsible\\\\=offcanvas\\\\]\\\\:right-\\\\[calc\\\\(var\\\\(--sidebar-width\\\\)\\\\*-1\\\\)\\\\][data-side=right]:is(:where(.group)[data-collapsible=offcanvas] *) {\\n right: calc(var(--sidebar-width) * -1);\\n }\\n .data-\\\\[side\\\\=right\\\\]\\\\:data-ending-style\\\\:translate-x-\\\\[2\\\\.5rem\\\\][data-side=right][data-ending-style],\\n .data-\\\\[side\\\\=right\\\\]\\\\:data-starting-style\\\\:translate-x-\\\\[2\\\\.5rem\\\\][data-side=right][data-starting-style] {\\n --tw-translate-x:2.5rem;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[side\\\\=top\\\\]\\\\:inset-x-0[data-side=top] {\\n inset-inline: 0;\\n }\\n .data-\\\\[side\\\\=top\\\\]\\\\:top-0[data-side=top] {\\n top: 0;\\n }\\n .data-\\\\[side\\\\=top\\\\]\\\\:-bottom-2\\\\.5[data-side=top] {\\n bottom: calc(var(--spacing) * -2.5);\\n }\\n .data-\\\\[side\\\\=top\\\\]\\\\:h-auto[data-side=top] {\\n height: auto;\\n }\\n .data-\\\\[side\\\\=top\\\\]\\\\:border-b[data-side=top] {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n .data-\\\\[side\\\\=top\\\\]\\\\:data-ending-style\\\\:translate-y-\\\\[-2\\\\.5rem\\\\][data-side=top][data-ending-style],\\n .data-\\\\[side\\\\=top\\\\]\\\\:data-starting-style\\\\:translate-y-\\\\[-2\\\\.5rem\\\\][data-side=top][data-starting-style] {\\n --tw-translate-y:-2.5rem;\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n .data-\\\\[size\\\\=md\\\\]\\\\:text-sm[data-size=md] {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading,var(--text-sm--line-height));\\n }\\n .data-\\\\[size\\\\=sm\\\\]\\\\:rounded-\\\\[min\\\\(var\\\\(--radius-md\\\\)\\\\,10px\\\\)\\\\][data-size=sm] {\\n border-radius: min(var(--radius-md), 10px);\\n }\\n .data-\\\\[size\\\\=sm\\\\]\\\\:text-xs[data-size=sm] {\\n font-size: var(--text-xs);\\n line-height: var(--tw-leading,var(--text-xs--line-height));\\n }\\n .data-\\\\[size\\\\=sm\\\\]\\\\:\\\\[--card-spacing\\\\:--spacing\\\\(3\\\\)\\\\][data-size=sm] {\\n --card-spacing:calc(var(--spacing) * 3);\\n }\\n .data-\\\\[size\\\\=sm\\\\]\\\\:has-data-\\\\[slot\\\\=card-footer\\\\]\\\\:pb-0[data-size=sm]:has([data-slot=card-footer]) {\\n padding-bottom: 0;\\n }\\n :is(.\\\\*\\\\:data-\\\\[slot\\\\=alert-description\\\\]\\\\:text-destructive\\\\/90 > *)[data-slot=alert-description] {\\n color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n :is(.\\\\*\\\\:data-\\\\[slot\\\\=alert-description\\\\]\\\\:text-destructive\\\\/90 > *)[data-slot=alert-description] {\\n color: color-mix(in oklab, hsl(var(--destructive)) 90%, transparent);\\n }\\n }\\n :is(.\\\\*\\\\*\\\\:data-\\\\[slot\\\\=kbd\\\\]\\\\:relative *)[data-slot=kbd] {\\n position: relative;\\n }\\n :is(.\\\\*\\\\*\\\\:data-\\\\[slot\\\\=kbd\\\\]\\\\:isolate *)[data-slot=kbd] {\\n isolation: isolate;\\n }\\n :is(.\\\\*\\\\*\\\\:data-\\\\[slot\\\\=kbd\\\\]\\\\:z-50 *)[data-slot=kbd] {\\n z-index: 50;\\n }\\n :is(.\\\\*\\\\*\\\\:data-\\\\[slot\\\\=kbd\\\\]\\\\:rounded-sm *)[data-slot=kbd] {\\n border-radius: 0;\\n }\\n .group-data-horizontal\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:first\\\\:rounded-l-lg:is(:where(.group\\\\/toggle-group)[data-horizontal] *)[data-spacing=\\\"0\\\"]:first-child {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .group-data-vertical\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:first\\\\:rounded-t-lg:is(:where(.group\\\\/toggle-group)[data-vertical] *)[data-spacing=\\\"0\\\"]:first-child {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n }\\n .group-data-horizontal\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:last\\\\:rounded-r-lg:is(:where(.group\\\\/toggle-group)[data-horizontal] *)[data-spacing=\\\"0\\\"]:last-child {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n }\\n .group-data-vertical\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:last\\\\:rounded-b-lg:is(:where(.group\\\\/toggle-group)[data-vertical] *)[data-spacing=\\\"0\\\"]:last-child {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n .data-\\\\[state\\\\=active\\\\]\\\\:border-b-\\\\[hsl\\\\(var\\\\(--accent\\\\)\\\\)\\\\][data-state=active] {\\n border-bottom-color: hsl(var(--accent));\\n }\\n .data-\\\\[state\\\\=active\\\\]\\\\:font-semibold[data-state=active] {\\n --tw-font-weight:var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .data-\\\\[state\\\\=active\\\\]\\\\:text-foreground[data-state=active] {\\n color: hsl(var(--foreground));\\n }\\n .data-\\\\[state\\\\=active\\\\]\\\\:shadow-none[data-state=active] {\\n --tw-shadow:0 0 #0000;\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .data-\\\\[state\\\\=on\\\\]\\\\:border-primary[data-state=on] {\\n border-color: hsl(var(--primary));\\n }\\n .data-\\\\[state\\\\=on\\\\]\\\\:bg-muted[data-state=on] {\\n background-color: hsl(var(--muted));\\n }\\n .data-\\\\[state\\\\=on\\\\]\\\\:bg-primary[data-state=on] {\\n background-color: hsl(var(--primary));\\n }\\n .data-\\\\[state\\\\=on\\\\]\\\\:text-primary-foreground[data-state=on] {\\n color: hsl(var(--primary-foreground));\\n }\\n .data-\\\\[state\\\\=selected\\\\]\\\\:bg-muted[data-state=selected] {\\n background-color: hsl(var(--muted));\\n }\\n .data-\\\\[variant\\\\=destructive\\\\]\\\\:text-destructive[data-variant=destructive] {\\n color: hsl(var(--destructive));\\n }\\n .data-\\\\[variant\\\\=destructive\\\\]\\\\:focus\\\\:bg-destructive\\\\/10[data-variant=destructive]:focus {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .data-\\\\[variant\\\\=destructive\\\\]\\\\:focus\\\\:bg-destructive\\\\/10[data-variant=destructive]:focus {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 10%, transparent);\\n }\\n }\\n .data-\\\\[variant\\\\=destructive\\\\]\\\\:focus\\\\:text-destructive[data-variant=destructive]:focus {\\n color: hsl(var(--destructive));\\n }\\n .data-\\\\[variant\\\\=line\\\\]\\\\:rounded-none[data-variant=line] {\\n border-radius: 0;\\n }\\n .group-data-horizontal\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:data-\\\\[variant\\\\=outline\\\\]\\\\:border-l-0:is(:where(.group\\\\/toggle-group)[data-horizontal] *)[data-spacing=\\\"0\\\"][data-variant=outline] {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 0;\\n }\\n .group-data-vertical\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:data-\\\\[variant\\\\=outline\\\\]\\\\:border-t-0:is(:where(.group\\\\/toggle-group)[data-vertical] *)[data-spacing=\\\"0\\\"][data-variant=outline] {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 0;\\n }\\n .group-data-horizontal\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:data-\\\\[variant\\\\=outline\\\\]\\\\:first\\\\:border-l:is(:where(.group\\\\/toggle-group)[data-horizontal] *)[data-spacing=\\\"0\\\"][data-variant=outline]:first-child {\\n border-left-style: var(--tw-border-style);\\n border-left-width: 1px;\\n }\\n .group-data-vertical\\\\/toggle-group\\\\:data-\\\\[spacing\\\\=0\\\\]\\\\:data-\\\\[variant\\\\=outline\\\\]\\\\:first\\\\:border-t:is(:where(.group\\\\/toggle-group)[data-vertical] *)[data-spacing=\\\"0\\\"][data-variant=outline]:first-child {\\n border-top-style: var(--tw-border-style);\\n border-top-width: 1px;\\n }\\n @supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))) {\\n .supports-backdrop-filter\\\\:backdrop-blur-xs {\\n --tw-backdrop-blur:blur(var(--blur-xs));\\n -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,);\\n 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,);\\n }\\n }\\n @media (min-width: 40rem) {\\n .sm\\\\:flex {\\n display: flex;\\n }\\n .sm\\\\:max-w-sm {\\n max-width: var(--container-sm);\\n }\\n .sm\\\\:flex-row {\\n flex-direction: row;\\n }\\n .sm\\\\:justify-end {\\n justify-content: flex-end;\\n }\\n .data-\\\\[side\\\\=left\\\\]\\\\:sm\\\\:max-w-sm[data-side=left],\\n .data-\\\\[side\\\\=right\\\\]\\\\:sm\\\\:max-w-sm[data-side=right] {\\n max-width: var(--container-sm);\\n }\\n }\\n @media (min-width: 48rem) {\\n .md\\\\:block {\\n display: block;\\n }\\n .md\\\\:flex {\\n display: flex;\\n }\\n .md\\\\:text-sm {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading,var(--text-sm--line-height));\\n }\\n .md\\\\:text-pretty {\\n text-wrap: pretty;\\n }\\n .md\\\\:opacity-0 {\\n opacity: 0;\\n }\\n .md\\\\:peer-data-\\\\[variant\\\\=inset\\\\]\\\\:m-2:is(:where(.peer)[data-variant=inset] ~ *) {\\n margin: calc(var(--spacing) * 2);\\n }\\n .md\\\\:peer-data-\\\\[variant\\\\=inset\\\\]\\\\:ml-0:is(:where(.peer)[data-variant=inset] ~ *) {\\n margin-left: 0;\\n }\\n .md\\\\:peer-data-\\\\[variant\\\\=inset\\\\]\\\\:rounded-xl:is(:where(.peer)[data-variant=inset] ~ *) {\\n border-radius: 0;\\n }\\n .md\\\\:peer-data-\\\\[variant\\\\=inset\\\\]\\\\:shadow-sm:is(:where(.peer)[data-variant=inset] ~ *) {\\n --tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .md\\\\:peer-data-\\\\[variant\\\\=inset\\\\]\\\\:peer-data-\\\\[state\\\\=collapsed\\\\]\\\\:ml-2:is(:where(.peer)[data-variant=inset] ~ *):is(:where(.peer)[data-state=collapsed] ~ *) {\\n margin-left: calc(var(--spacing) * 2);\\n }\\n .md\\\\:after\\\\:hidden:after {\\n content: var(--tw-content);\\n display: none;\\n }\\n }\\n .ltr\\\\:-translate-x-1\\\\/2:where(:dir(ltr), [dir=ltr], [dir=ltr] *),\\n .rtl\\\\:-translate-x-1\\\\/2:where(:dir(rtl), [dir=rtl], [dir=rtl] *) {\\n --tw-translate-x:calc(calc(1 / 2 * 100%) * -1);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n @media (prefers-color-scheme: dark) {\\n .dark\\\\:border-input {\\n border-color: hsl(var(--input));\\n }\\n .dark\\\\:bg-background {\\n background-color: hsl(var(--background));\\n }\\n .dark\\\\:bg-destructive\\\\/20 {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:bg-destructive\\\\/20 {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 20%, transparent);\\n }\\n }\\n .dark\\\\:bg-input\\\\/30 {\\n background-color: hsl(var(--input));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:bg-input\\\\/30 {\\n background-color: color-mix(in oklab, hsl(var(--input)) 30%, transparent);\\n }\\n }\\n .dark\\\\:text-muted-foreground {\\n color: hsl(var(--muted-foreground));\\n }\\n @media (hover: hover) {\\n .dark\\\\:hover\\\\:bg-background\\\\!:hover {\\n background-color: hsl(var(--background)) !important;\\n }\\n .dark\\\\:hover\\\\:bg-destructive\\\\/20\\\\!:hover {\\n background-color: hsl(var(--destructive)) !important;\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:hover\\\\:bg-destructive\\\\/20\\\\!:hover {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 20%, transparent) !important;\\n }\\n }\\n .dark\\\\:hover\\\\:bg-destructive\\\\/30:hover {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:hover\\\\:bg-destructive\\\\/30:hover {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 30%, transparent);\\n }\\n }\\n .dark\\\\:hover\\\\:bg-input\\\\/50:hover {\\n background-color: hsl(var(--input));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:hover\\\\:bg-input\\\\/50:hover {\\n background-color: color-mix(in oklab, hsl(var(--input)) 50%, transparent);\\n }\\n }\\n .dark\\\\:hover\\\\:bg-muted\\\\/50:hover {\\n background-color: hsl(var(--muted));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:hover\\\\:bg-muted\\\\/50:hover {\\n background-color: color-mix(in oklab, hsl(var(--muted)) 50%, transparent);\\n }\\n }\\n .dark\\\\:hover\\\\:bg-transparent\\\\!:hover {\\n background-color: #0000 !important;\\n }\\n .dark\\\\:hover\\\\:text-foreground:hover {\\n color: hsl(var(--foreground));\\n }\\n }\\n .dark\\\\:focus-visible\\\\:ring-destructive\\\\/40:focus-visible {\\n --tw-ring-color:hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:focus-visible\\\\:ring-destructive\\\\/40:focus-visible {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--destructive)) 40%, transparent);\\n }\\n }\\n .dark\\\\:disabled\\\\:bg-input\\\\/80:disabled {\\n background-color: hsl(var(--input));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:disabled\\\\:bg-input\\\\/80:disabled {\\n background-color: color-mix(in oklab, hsl(var(--input)) 80%, transparent);\\n }\\n }\\n .dark\\\\:aria-invalid\\\\:border-destructive\\\\/50[aria-invalid=true] {\\n border-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:aria-invalid\\\\:border-destructive\\\\/50[aria-invalid=true] {\\n border-color: color-mix(in oklab, hsl(var(--destructive)) 50%, transparent);\\n }\\n }\\n .dark\\\\:aria-invalid\\\\:ring-destructive\\\\/40[aria-invalid=true] {\\n --tw-ring-color:hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:aria-invalid\\\\:ring-destructive\\\\/40[aria-invalid=true] {\\n --tw-ring-color:color-mix(in oklab, hsl(var(--destructive)) 40%, transparent);\\n }\\n }\\n .dark\\\\:data-active\\\\:border-input[data-active] {\\n border-color: hsl(var(--input));\\n }\\n .dark\\\\:data-active\\\\:border-transparent[data-active] {\\n border-color: #0000;\\n }\\n .dark\\\\:data-active\\\\:border-b-accent[data-active] {\\n border-bottom-color: hsl(var(--accent));\\n }\\n .dark\\\\:data-active\\\\:bg-input\\\\/30[data-active] {\\n background-color: hsl(var(--input));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:data-active\\\\:bg-input\\\\/30[data-active] {\\n background-color: color-mix(in oklab, hsl(var(--input)) 30%, transparent);\\n }\\n }\\n .dark\\\\:data-active\\\\:bg-transparent[data-active] {\\n background-color: #0000;\\n }\\n .dark\\\\:data-active\\\\:text-foreground[data-active] {\\n color: hsl(var(--foreground));\\n }\\n .dark\\\\:group-data-\\\\[variant\\\\=line\\\\]\\\\/tabs-list\\\\:data-active\\\\:border-transparent:is(:where(.group\\\\/tabs-list)[data-variant=line] *)[data-active] {\\n border-color: #0000;\\n }\\n .dark\\\\:group-data-\\\\[variant\\\\=line\\\\]\\\\/tabs-list\\\\:data-active\\\\:bg-transparent:is(:where(.group\\\\/tabs-list)[data-variant=line] *)[data-active] {\\n background-color: #0000;\\n }\\n .dark\\\\:data-checked\\\\:bg-primary[data-checked] {\\n background-color: hsl(var(--primary));\\n }\\n .dark\\\\:data-\\\\[variant\\\\=destructive\\\\]\\\\:focus\\\\:bg-destructive\\\\/20[data-variant=destructive]:focus {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .dark\\\\:data-\\\\[variant\\\\=destructive\\\\]\\\\:focus\\\\:bg-destructive\\\\/20[data-variant=destructive]:focus {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 20%, transparent);\\n }\\n }\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:underline a {\\n text-decoration-line: underline;\\n }\\n .\\\\[\\\\&_a\\\\]\\\\:underline-offset-3 a {\\n text-underline-offset: 3px;\\n }\\n @media (hover: hover) {\\n .\\\\[\\\\&_a\\\\]\\\\:hover\\\\:text-foreground a:hover {\\n color: hsl(var(--foreground));\\n }\\n }\\n .\\\\[\\\\&_p\\\\:not\\\\(\\\\:last-child\\\\)\\\\]\\\\:mb-4 p:not(:last-child) {\\n margin-bottom: calc(var(--spacing) * 4);\\n }\\n .\\\\[\\\\&_svg\\\\]\\\\:pointer-events-none svg {\\n pointer-events: none;\\n }\\n .\\\\[\\\\&_svg\\\\]\\\\:size-4 svg {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n .\\\\[\\\\&_svg\\\\]\\\\:shrink-0 svg {\\n flex-shrink: 0;\\n }\\n .\\\\[\\\\&_svg\\\\:not\\\\(\\\\[class\\\\*\\\\=\\\\'size-\\\\'\\\\]\\\\)\\\\]\\\\:size-3 svg:not([class*=size-]) {\\n width: calc(var(--spacing) * 3);\\n height: calc(var(--spacing) * 3);\\n }\\n .\\\\[\\\\&_svg\\\\:not\\\\(\\\\[class\\\\*\\\\=\\\\'size-\\\\'\\\\]\\\\)\\\\]\\\\:size-3\\\\.5 svg:not([class*=size-]) {\\n width: calc(var(--spacing) * 3.5);\\n height: calc(var(--spacing) * 3.5);\\n }\\n .\\\\[\\\\&_svg\\\\:not\\\\(\\\\[class\\\\*\\\\=\\\\'size-\\\\'\\\\]\\\\)\\\\]\\\\:size-4 svg:not([class*=size-]) {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n .\\\\[\\\\&_th\\\\]\\\\:text-primary-foreground th {\\n color: hsl(var(--primary-foreground));\\n }\\n .\\\\[\\\\&_tr\\\\]\\\\:border-b tr {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 1px;\\n }\\n .\\\\[\\\\&_tr\\\\:last-child\\\\]\\\\:border-0 tr:last-child {\\n border-style: var(--tw-border-style);\\n border-width: 0;\\n }\\n .\\\\[\\\\&\\\\:has\\\\(\\\\[role\\\\=checkbox\\\\]\\\\)\\\\]\\\\:pr-0:has([role=checkbox]) {\\n padding-right: 0;\\n }\\n .\\\\[\\\\.border-b\\\\]\\\\:pb-\\\\(--card-spacing\\\\).border-b {\\n padding-bottom: var(--card-spacing);\\n }\\n :is(.\\\\*\\\\:\\\\[a\\\\]\\\\:underline > *):is(a) {\\n text-decoration-line: underline;\\n }\\n :is(.\\\\*\\\\:\\\\[a\\\\]\\\\:underline-offset-3 > *):is(a) {\\n text-underline-offset: 3px;\\n }\\n @media (hover: hover) {\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-destructive\\\\/20:is(a):hover {\\n background-color: hsl(var(--destructive));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-destructive\\\\/20:is(a):hover {\\n background-color: color-mix(in oklab, hsl(var(--destructive)) 20%, transparent);\\n }\\n }\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-muted:is(a):hover {\\n background-color: hsl(var(--muted));\\n }\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-primary\\\\/80:is(a):hover {\\n background-color: hsl(var(--primary));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-primary\\\\/80:is(a):hover {\\n background-color: color-mix(in oklab, hsl(var(--primary)) 80%, transparent);\\n }\\n }\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-secondary\\\\/80:is(a):hover {\\n background-color: hsl(var(--secondary));\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n .\\\\[a\\\\]\\\\:hover\\\\:bg-secondary\\\\/80:is(a):hover {\\n background-color: color-mix(in oklab, hsl(var(--secondary)) 80%, transparent);\\n }\\n }\\n .\\\\[a\\\\]\\\\:hover\\\\:text-muted-foreground:is(a):hover {\\n color: hsl(var(--muted-foreground));\\n }\\n :is(.\\\\*\\\\:\\\\[a\\\\]\\\\:hover\\\\:text-foreground > *):is(a):hover {\\n color: hsl(var(--foreground));\\n }\\n }\\n :is(.\\\\*\\\\:\\\\[img\\\\:first-child\\\\]\\\\:rounded-t-xl > *):is(img:first-child) {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n }\\n :is(.\\\\*\\\\:\\\\[img\\\\:last-child\\\\]\\\\:rounded-b-xl > *):is(img:last-child) {\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n }\\n :is(.\\\\*\\\\:\\\\[svg\\\\]\\\\:row-span-2 > *):is(svg) {\\n grid-row: span 2/span 2;\\n }\\n :is(.\\\\*\\\\:\\\\[svg\\\\]\\\\:translate-y-0\\\\.5 > *):is(svg) {\\n --tw-translate-y:calc(var(--spacing) * .5);\\n translate: var(--tw-translate-x) var(--tw-translate-y);\\n }\\n :is(.\\\\*\\\\:\\\\[svg\\\\]\\\\:text-current > *):is(svg) {\\n color: currentColor;\\n }\\n :is(.data-\\\\[variant\\\\=destructive\\\\]\\\\:\\\\*\\\\:\\\\[svg\\\\]\\\\:text-destructive[data-variant=destructive] > *):is(svg) {\\n color: hsl(var(--destructive));\\n }\\n :is(.\\\\*\\\\:\\\\[svg\\\\:not\\\\(\\\\[class\\\\*\\\\=\\\\'size-\\\\'\\\\]\\\\)\\\\]\\\\:size-4 > *):is(svg:not([class*=size-])) {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n .\\\\[\\\\&\\\\>button\\\\]\\\\:hidden > button {\\n display: none;\\n }\\n .\\\\[\\\\&\\\\>button\\\\]\\\\:border-muted > button {\\n border-color: hsl(var(--muted));\\n }\\n .\\\\[\\\\&\\\\>span\\\\:last-child\\\\]\\\\:truncate > span:last-child {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:pointer-events-none > svg {\\n pointer-events: none;\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:size-3\\\\! > svg {\\n width: calc(var(--spacing) * 3) !important;\\n height: calc(var(--spacing) * 3) !important;\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:size-3\\\\.5 > svg {\\n width: calc(var(--spacing) * 3.5);\\n height: calc(var(--spacing) * 3.5);\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:size-4 > svg {\\n width: calc(var(--spacing) * 4);\\n height: calc(var(--spacing) * 4);\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:shrink-0 > svg {\\n flex-shrink: 0;\\n }\\n .\\\\[\\\\&\\\\>svg\\\\]\\\\:text-sidebar-accent-foreground > svg {\\n color: hsl(var(--sidebar-accent-foreground));\\n }\\n .\\\\[\\\\&\\\\>tr\\\\]\\\\:last\\\\:border-b-0 > tr:last-child {\\n border-bottom-style: var(--tw-border-style);\\n border-bottom-width: 0;\\n }\\n [data-side=left][data-collapsible=offcanvas] .\\\\[\\\\[data-side\\\\=left\\\\]\\\\[data-collapsible\\\\=offcanvas\\\\]_\\\\&\\\\]\\\\:-right-2 {\\n right: calc(var(--spacing) * -2);\\n }\\n [data-side=left][data-state=collapsed] .\\\\[\\\\[data-side\\\\=left\\\\]\\\\[data-state\\\\=collapsed\\\\]_\\\\&\\\\]\\\\:cursor-e-resize {\\n cursor: e-resize;\\n }\\n [data-side=right][data-collapsible=offcanvas] .\\\\[\\\\[data-side\\\\=right\\\\]\\\\[data-collapsible\\\\=offcanvas\\\\]_\\\\&\\\\]\\\\:-left-2 {\\n left: calc(var(--spacing) * -2);\\n }\\n [data-side=right][data-state=collapsed] .\\\\[\\\\[data-side\\\\=right\\\\]\\\\[data-state\\\\=collapsed\\\\]_\\\\&\\\\]\\\\:cursor-w-resize {\\n cursor: w-resize;\\n }\\n}\\n.bg-hatch {\\n background-image:\\n repeating-linear-gradient(\\n 45deg,\\n hsl(var(--border)) 0 1px,\\n #fff 1px 5px);\\n}\\n@property --tw-translate-x { syntax:\\\"*\\\";inherits:false;initial-value:0 }\\n@property --tw-translate-y { syntax:\\\"*\\\";inherits:false;initial-value:0 }\\n@property --tw-translate-z { syntax:\\\"*\\\";inherits:false;initial-value:0 }\\n@property --tw-space-y-reverse { syntax:\\\"*\\\";inherits:false;initial-value:0 }\\n@property --tw-border-style { syntax:\\\"*\\\";inherits:false;initial-value:solid }\\n@property --tw-leading { syntax:\\\"*\\\";inherits:false }\\n@property --tw-font-weight { syntax:\\\"*\\\";inherits:false }\\n@property --tw-tracking { syntax:\\\"*\\\";inherits:false }\\n@property --tw-ordinal { syntax:\\\"*\\\";inherits:false }\\n@property --tw-slashed-zero { syntax:\\\"*\\\";inherits:false }\\n@property --tw-numeric-figure { syntax:\\\"*\\\";inherits:false }\\n@property --tw-numeric-spacing { syntax:\\\"*\\\";inherits:false }\\n@property --tw-numeric-fraction { syntax:\\\"*\\\";inherits:false }\\n@property --tw-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-shadow-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-shadow-alpha { syntax:\\\"<percentage>\\\";inherits:false;initial-value:100% }\\n@property --tw-inset-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-inset-shadow-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-inset-shadow-alpha { syntax:\\\"<percentage>\\\";inherits:false;initial-value:100% }\\n@property --tw-ring-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-ring-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-inset-ring-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-inset-ring-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-ring-inset { syntax:\\\"*\\\";inherits:false }\\n@property --tw-ring-offset-width { syntax:\\\"<length>\\\";inherits:false;initial-value:0 }\\n@property --tw-ring-offset-color { syntax:\\\"*\\\";inherits:false;initial-value:#fff }\\n@property --tw-ring-offset-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-outline-style { syntax:\\\"*\\\";inherits:false;initial-value:solid }\\n@property --tw-blur { syntax:\\\"*\\\";inherits:false }\\n@property --tw-brightness { syntax:\\\"*\\\";inherits:false }\\n@property --tw-contrast { syntax:\\\"*\\\";inherits:false }\\n@property --tw-grayscale { syntax:\\\"*\\\";inherits:false }\\n@property --tw-hue-rotate { syntax:\\\"*\\\";inherits:false }\\n@property --tw-invert { syntax:\\\"*\\\";inherits:false }\\n@property --tw-opacity { syntax:\\\"*\\\";inherits:false }\\n@property --tw-saturate { syntax:\\\"*\\\";inherits:false }\\n@property --tw-sepia { syntax:\\\"*\\\";inherits:false }\\n@property --tw-drop-shadow { syntax:\\\"*\\\";inherits:false }\\n@property --tw-drop-shadow-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-drop-shadow-alpha { syntax:\\\"<percentage>\\\";inherits:false;initial-value:100% }\\n@property --tw-drop-shadow-size { syntax:\\\"*\\\";inherits:false }\\n@property --tw-duration { syntax:\\\"*\\\";inherits:false }\\n@property --tw-ease { syntax:\\\"*\\\";inherits:false }\\n@property --tw-content { syntax:\\\"*\\\";inherits:false;initial-value:\\\"\\\" }\\n@property --tw-backdrop-blur { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-brightness { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-contrast { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-grayscale { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-hue-rotate { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-invert { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-opacity { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-saturate { syntax:\\\"*\\\";inherits:false }\\n@property --tw-backdrop-sepia { syntax:\\\"*\\\";inherits:false }\\n@keyframes spin {\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes pulse {\\n 50% {\\n opacity: .5;\\n }\\n}\\n\")","import * as React from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst alertVariants = cva(\r\n \"group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4\",\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-card text-card-foreground',\r\n destructive:\r\n 'bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n },\r\n);\r\n\r\nfunction Alert({\r\n className,\r\n variant,\r\n ...props\r\n}: React.ComponentProps<'div'> & VariantProps<typeof alertVariants>) {\r\n return (\r\n <div\r\n data-slot=\"alert\"\r\n role=\"alert\"\r\n className={cn(alertVariants({ variant }), className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"alert-title\"\r\n className={cn(\r\n 'font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"alert-description\"\r\n className={cn(\r\n 'text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction AlertAction({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div data-slot=\"alert-action\" className={cn('absolute top-2 right-2', className)} {...props} />\r\n );\r\n}\r\n\r\nexport { Alert, AlertTitle, AlertDescription, AlertAction };\r\n","import { clsx, type ClassValue } from 'clsx';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","import { mergeProps } from '@base-ui/react/merge-props';\r\nimport { useRender } from '@base-ui/react/use-render';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst badgeVariants = cva(\r\n 'group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-primary text-primary-foreground [a]:hover:bg-primary/80',\r\n secondary: 'bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80',\r\n destructive:\r\n 'bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20',\r\n outline: 'border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground',\r\n ghost: 'hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n },\r\n);\r\n\r\nfunction Badge({\r\n className,\r\n variant = 'default',\r\n render,\r\n ...props\r\n}: useRender.ComponentProps<'span'> & VariantProps<typeof badgeVariants>) {\r\n return useRender({\r\n defaultTagName: 'span',\r\n props: mergeProps<'span'>(\r\n {\r\n className: cn(badgeVariants({ variant }), className),\r\n },\r\n props,\r\n ),\r\n render,\r\n state: {\r\n slot: 'badge',\r\n variant,\r\n },\r\n });\r\n}\r\n\r\nexport { Badge, badgeVariants };\r\n","import * as React from 'react';\r\nimport { mergeProps } from '@base-ui/react/merge-props';\r\nimport { useRender } from '@base-ui/react/use-render';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';\r\n\r\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {\r\n return (\r\n <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" className={cn(className)} {...props} />\r\n );\r\n}\r\n\r\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\r\n return (\r\n <ol\r\n data-slot=\"breadcrumb-list\"\r\n className={cn(\r\n 'flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\r\n return (\r\n <li\r\n data-slot=\"breadcrumb-item\"\r\n className={cn('inline-flex items-center gap-1', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction BreadcrumbLink({ className, render, ...props }: useRender.ComponentProps<'a'>) {\r\n return useRender({\r\n defaultTagName: 'a',\r\n props: mergeProps<'a'>(\r\n {\r\n className: cn('transition-colors hover:text-foreground', className),\r\n },\r\n props,\r\n ),\r\n render,\r\n state: {\r\n slot: 'breadcrumb-link',\r\n },\r\n });\r\n}\r\n\r\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\r\n return (\r\n <span\r\n data-slot=\"breadcrumb-page\"\r\n role=\"link\"\r\n aria-disabled=\"true\"\r\n aria-current=\"page\"\r\n className={cn('font-normal text-foreground', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<'li'>) {\r\n return (\r\n <li\r\n data-slot=\"breadcrumb-separator\"\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn('[&>svg]:size-3.5', className)}\r\n {...props}\r\n >\r\n {children ?? <ChevronRightIcon />}\r\n </li>\r\n );\r\n}\r\n\r\nfunction BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\r\n return (\r\n <span\r\n data-slot=\"breadcrumb-ellipsis\"\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n className={cn('flex size-5 items-center justify-center [&>svg]:size-4', className)}\r\n {...props}\r\n >\r\n <MoreHorizontalIcon />\r\n <span className=\"sr-only\">More</span>\r\n </span>\r\n );\r\n}\r\n\r\nexport {\r\n Breadcrumb,\r\n BreadcrumbList,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n BreadcrumbEllipsis,\r\n};\r\n","import { Button as ButtonPrimitive } from '@base-ui/react/button';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst buttonVariants = cva(\r\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-primary text-primary-foreground hover:bg-primary/80',\r\n outline:\r\n 'border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50',\r\n secondary:\r\n 'bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground',\r\n ghost:\r\n 'hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50',\r\n destructive:\r\n 'bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40',\r\n link: 'text-primary underline-offset-4 hover:underline',\r\n },\r\n size: {\r\n default:\r\n 'h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\r\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\r\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\r\n lg: 'h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\r\n icon: 'size-8',\r\n 'icon-xs':\r\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\r\n 'icon-sm':\r\n 'size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg',\r\n 'icon-lg': 'size-9',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default',\r\n },\r\n },\r\n);\r\n\r\nfunction Button({\r\n className,\r\n variant = 'default',\r\n size = 'default',\r\n ...props\r\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\r\n return (\r\n <ButtonPrimitive\r\n data-slot=\"button\"\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Button, buttonVariants };\r\n","import * as React from 'react';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Card({\r\n className,\r\n size = 'default',\r\n ...props\r\n}: React.ComponentProps<'div'> & { size?: 'default' | 'sm' }) {\r\n return (\r\n <div\r\n data-slot=\"card\"\r\n data-size={size}\r\n className={cn(\r\n 'group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-header\"\r\n className={cn(\r\n 'group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-title\"\r\n className={cn(\r\n 'text-base leading-snug font-medium group-data-[size=sm]/card:text-sm',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-description\"\r\n className={cn('text-sm text-muted-foreground', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-action\"\r\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div data-slot=\"card-content\" className={cn('px-(--card-spacing)', className)} {...props} />\r\n );\r\n}\r\n\r\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"card-footer\"\r\n className={cn(\r\n 'flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };\r\n","import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { CheckIcon } from 'lucide-react';\r\n\r\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\r\n return (\r\n <CheckboxPrimitive.Root\r\n data-slot=\"checkbox\"\r\n className={cn(\r\n 'peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator\r\n data-slot=\"checkbox-indicator\"\r\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\r\n >\r\n <CheckIcon />\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n );\r\n}\r\n\r\nexport { Checkbox };\r\n","import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';\r\n\r\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\r\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\r\n}\r\n\r\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\r\n return <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />;\r\n}\r\n\r\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\r\n return <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />;\r\n}\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\r\n","import * as React from 'react';\r\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { Button } from '@/components/ui/button';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\r\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\r\n}\r\n\r\nfunction DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {\r\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\r\n}\r\n\r\nfunction DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {\r\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\r\n}\r\n\r\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\r\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\r\n}\r\n\r\nfunction DialogOverlay({ className, ...props }: DialogPrimitive.Backdrop.Props) {\r\n return (\r\n <DialogPrimitive.Backdrop\r\n data-slot=\"dialog-overlay\"\r\n className={cn(\r\n 'fixed inset-0 isolate z-50 bg-muted-foreground/50 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogContent({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n ...props\r\n}: DialogPrimitive.Popup.Props & {\r\n showCloseButton?: boolean;\r\n}) {\r\n return (\r\n <DialogPortal>\r\n <DialogOverlay />\r\n <DialogPrimitive.Popup\r\n data-slot=\"dialog-content\"\r\n className={cn(\r\n 'fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogPrimitive.Close\r\n data-slot=\"dialog-close\"\r\n render={<Button variant=\"ghost\" className=\"absolute top-2 right-2\" size=\"icon-sm\" />}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n )}\r\n </DialogPrimitive.Popup>\r\n </DialogPortal>\r\n );\r\n}\r\n\r\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div data-slot=\"dialog-header\" className={cn('flex flex-col gap-2', className)} {...props} />\r\n );\r\n}\r\n\r\nfunction DialogFooter({\r\n className,\r\n showCloseButton = false,\r\n children,\r\n ...props\r\n}: React.ComponentProps<'div'> & {\r\n showCloseButton?: boolean;\r\n}) {\r\n return (\r\n <div\r\n data-slot=\"dialog-footer\"\r\n className={cn(\r\n '-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>Close</DialogPrimitive.Close>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nfunction DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {\r\n return (\r\n <DialogPrimitive.Title\r\n data-slot=\"dialog-title\"\r\n className={cn('text-base leading-none font-medium', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogDescription({ className, ...props }: DialogPrimitive.Description.Props) {\r\n return (\r\n <DialogPrimitive.Description\r\n data-slot=\"dialog-description\"\r\n className={cn(\r\n 'text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogOverlay,\r\n DialogPortal,\r\n DialogTitle,\r\n DialogTrigger,\r\n};\r\n","import * as React from 'react';\r\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { ChevronRightIcon, CheckIcon } from 'lucide-react';\r\n\r\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\r\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\r\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\r\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuContent({\r\n align = 'start',\r\n alignOffset = 0,\r\n side = 'bottom',\r\n sideOffset = 4,\r\n className,\r\n ...props\r\n}: MenuPrimitive.Popup.Props &\r\n Pick<MenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\r\n return (\r\n <MenuPrimitive.Portal>\r\n <MenuPrimitive.Positioner\r\n className=\"isolate z-50 outline-none\"\r\n align={align}\r\n alignOffset={alignOffset}\r\n side={side}\r\n sideOffset={sideOffset}\r\n >\r\n <MenuPrimitive.Popup\r\n data-slot=\"dropdown-menu-content\"\r\n className={cn(\r\n 'z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n </MenuPrimitive.Positioner>\r\n </MenuPrimitive.Portal>\r\n );\r\n}\r\n\r\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\r\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuLabel({\r\n className,\r\n inset,\r\n ...props\r\n}: MenuPrimitive.GroupLabel.Props & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <MenuPrimitive.GroupLabel\r\n data-slot=\"dropdown-menu-label\"\r\n data-inset={inset}\r\n className={cn(\r\n 'px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuItem({\r\n className,\r\n inset,\r\n variant = 'default',\r\n ...props\r\n}: MenuPrimitive.Item.Props & {\r\n inset?: boolean;\r\n variant?: 'default' | 'destructive';\r\n}) {\r\n return (\r\n <MenuPrimitive.Item\r\n data-slot=\"dropdown-menu-item\"\r\n data-inset={inset}\r\n data-variant={variant}\r\n className={cn(\r\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\r\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuSubTrigger({\r\n className,\r\n inset,\r\n children,\r\n ...props\r\n}: MenuPrimitive.SubmenuTrigger.Props & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <MenuPrimitive.SubmenuTrigger\r\n data-slot=\"dropdown-menu-sub-trigger\"\r\n data-inset={inset}\r\n className={cn(\r\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRightIcon className=\"ml-auto\" />\r\n </MenuPrimitive.SubmenuTrigger>\r\n );\r\n}\r\n\r\nfunction DropdownMenuSubContent({\r\n align = 'start',\r\n alignOffset = -3,\r\n side = 'right',\r\n sideOffset = 0,\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuContent>) {\r\n return (\r\n <DropdownMenuContent\r\n data-slot=\"dropdown-menu-sub-content\"\r\n className={cn(\r\n 'w-auto min-w-[96px] rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\r\n className,\r\n )}\r\n align={align}\r\n alignOffset={alignOffset}\r\n side={side}\r\n sideOffset={sideOffset}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuCheckboxItem({\r\n className,\r\n children,\r\n checked,\r\n inset,\r\n ...props\r\n}: MenuPrimitive.CheckboxItem.Props & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <MenuPrimitive.CheckboxItem\r\n data-slot=\"dropdown-menu-checkbox-item\"\r\n data-inset={inset}\r\n className={cn(\r\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className,\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span\r\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\r\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\r\n >\r\n <MenuPrimitive.CheckboxItemIndicator>\r\n <CheckIcon />\r\n </MenuPrimitive.CheckboxItemIndicator>\r\n </span>\r\n {children}\r\n </MenuPrimitive.CheckboxItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\r\n return <MenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuRadioItem({\r\n className,\r\n children,\r\n inset,\r\n ...props\r\n}: MenuPrimitive.RadioItem.Props & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <MenuPrimitive.RadioItem\r\n data-slot=\"dropdown-menu-radio-item\"\r\n data-inset={inset}\r\n className={cn(\r\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <span\r\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\r\n data-slot=\"dropdown-menu-radio-item-indicator\"\r\n >\r\n <MenuPrimitive.RadioItemIndicator>\r\n <CheckIcon />\r\n </MenuPrimitive.RadioItemIndicator>\r\n </span>\r\n {children}\r\n </MenuPrimitive.RadioItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props) {\r\n return (\r\n <MenuPrimitive.Separator\r\n data-slot=\"dropdown-menu-separator\"\r\n className={cn('-mx-1 my-1 h-px bg-border', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\r\n return (\r\n <span\r\n data-slot=\"dropdown-menu-shortcut\"\r\n className={cn(\r\n 'ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuPortal,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuLabel,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioGroup,\r\n DropdownMenuRadioItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuSubContent,\r\n};\r\n","import * as React from 'react';\r\nimport { Input as InputPrimitive } from '@base-ui/react/input';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\r\n return (\r\n <InputPrimitive\r\n type={type}\r\n data-slot=\"input\"\r\n className={cn(\r\n 'h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Input };\r\n","import { Progress as ProgressPrimitive } from '@base-ui/react/progress';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Progress({ className, children, value, ...props }: ProgressPrimitive.Root.Props) {\r\n return (\r\n <ProgressPrimitive.Root\r\n value={value}\r\n data-slot=\"progress\"\r\n className={cn('flex flex-wrap gap-3', className)}\r\n {...props}\r\n >\r\n {children}\r\n <ProgressTrack>\r\n <ProgressIndicator />\r\n </ProgressTrack>\r\n </ProgressPrimitive.Root>\r\n );\r\n}\r\n\r\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\r\n return (\r\n <ProgressPrimitive.Track\r\n className={cn(\r\n 'relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted',\r\n className,\r\n )}\r\n data-slot=\"progress-track\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props) {\r\n return (\r\n <ProgressPrimitive.Indicator\r\n data-slot=\"progress-indicator\"\r\n className={cn('h-full bg-primary transition-all', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\r\n return (\r\n <ProgressPrimitive.Label\r\n className={cn('text-sm font-medium', className)}\r\n data-slot=\"progress-label\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\r\n return (\r\n <ProgressPrimitive.Value\r\n className={cn('ml-auto text-sm text-muted-foreground tabular-nums', className)}\r\n data-slot=\"progress-value\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue };\r\n","import { Separator as SeparatorPrimitive } from '@base-ui/react/separator';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Separator({ className, orientation = 'horizontal', ...props }: SeparatorPrimitive.Props) {\r\n return (\r\n <SeparatorPrimitive\r\n data-slot=\"separator\"\r\n orientation={orientation}\r\n className={cn(\r\n 'shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Separator };\r\n","import * as React from 'react';\r\nimport { Dialog as SheetPrimitive } from '@base-ui/react/dialog';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { Button } from '@/components/ui/button';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\r\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\r\n}\r\n\r\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\r\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\r\n}\r\n\r\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\r\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\r\n}\r\n\r\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\r\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\r\n}\r\n\r\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\r\n return (\r\n <SheetPrimitive.Backdrop\r\n data-slot=\"sheet-overlay\"\r\n className={cn(\r\n 'fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SheetContent({\r\n className,\r\n children,\r\n side = 'right',\r\n showCloseButton = true,\r\n ...props\r\n}: SheetPrimitive.Popup.Props & {\r\n side?: 'top' | 'right' | 'bottom' | 'left';\r\n showCloseButton?: boolean;\r\n}) {\r\n return (\r\n <SheetPortal>\r\n <SheetOverlay />\r\n <SheetPrimitive.Popup\r\n data-slot=\"sheet-content\"\r\n data-side={side}\r\n className={cn(\r\n 'fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <SheetPrimitive.Close\r\n data-slot=\"sheet-close\"\r\n render={<Button variant=\"ghost\" className=\"absolute top-3 right-3\" size=\"icon-sm\" />}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </SheetPrimitive.Close>\r\n )}\r\n </SheetPrimitive.Popup>\r\n </SheetPortal>\r\n );\r\n}\r\n\r\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sheet-header\"\r\n className={cn('flex flex-col gap-0.5 p-4', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sheet-footer\"\r\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\r\n return (\r\n <SheetPrimitive.Title\r\n data-slot=\"sheet-title\"\r\n className={cn('text-base font-medium text-foreground', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SheetDescription({ className, ...props }: SheetPrimitive.Description.Props) {\r\n return (\r\n <SheetPrimitive.Description\r\n data-slot=\"sheet-description\"\r\n className={cn('text-sm text-muted-foreground', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Sheet,\r\n SheetTrigger,\r\n SheetClose,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n};\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\nimport { mergeProps } from '@base-ui/react/merge-props';\r\nimport { useRender } from '@base-ui/react/use-render';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { useIsMobile } from '@/hooks/use-mobile';\r\nimport { cn } from '@/lib/utils';\r\nimport { Button } from '@/components/ui/button';\r\nimport { Input } from '@/components/ui/input';\r\nimport { Separator } from '@/components/ui/separator';\r\nimport {\r\n Sheet,\r\n SheetContent,\r\n SheetDescription,\r\n SheetHeader,\r\n SheetTitle,\r\n} from '@/components/ui/sheet';\r\nimport { Skeleton } from '@/components/ui/skeleton';\r\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\r\nimport { PanelLeftIcon } from 'lucide-react';\r\n\r\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = '16rem';\r\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\r\nconst SIDEBAR_WIDTH_ICON = '3rem';\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\r\n\r\ntype SidebarContextProps = {\r\n state: 'expanded' | 'collapsed';\r\n open: boolean;\r\n setOpen: (open: boolean) => void;\r\n openMobile: boolean;\r\n setOpenMobile: (open: boolean) => void;\r\n isMobile: boolean;\r\n toggleSidebar: () => void;\r\n};\r\n\r\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\r\n\r\nfunction useSidebar() {\r\n const context = React.useContext(SidebarContext);\r\n if (!context) {\r\n throw new Error('useSidebar must be used within a SidebarProvider.');\r\n }\r\n\r\n return context;\r\n}\r\n\r\nfunction SidebarProvider({\r\n defaultOpen = true,\r\n open: openProp,\r\n onOpenChange: setOpenProp,\r\n className,\r\n style,\r\n children,\r\n ...props\r\n}: React.ComponentProps<'div'> & {\r\n defaultOpen?: boolean;\r\n open?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n}) {\r\n const isMobile = useIsMobile();\r\n const [openMobile, setOpenMobile] = React.useState(false);\r\n\r\n // This is the internal state of the sidebar.\r\n // We use openProp and setOpenProp for control from outside the component.\r\n const [_open, _setOpen] = React.useState(defaultOpen);\r\n const open = openProp ?? _open;\r\n const setOpen = React.useCallback(\r\n (value: boolean | ((value: boolean) => boolean)) => {\r\n const openState = typeof value === 'function' ? value(open) : value;\r\n if (setOpenProp) {\r\n setOpenProp(openState);\r\n } else {\r\n _setOpen(openState);\r\n }\r\n\r\n // This sets the cookie to keep the sidebar state.\r\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n },\r\n [setOpenProp, open],\r\n );\r\n\r\n // Helper to toggle the sidebar.\r\n const toggleSidebar = React.useCallback(() => {\r\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\r\n }, [isMobile, setOpen, setOpenMobile]);\r\n\r\n // Adds a keyboard shortcut to toggle the sidebar.\r\n React.useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n event.preventDefault();\r\n toggleSidebar();\r\n }\r\n };\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => window.removeEventListener('keydown', handleKeyDown);\r\n }, [toggleSidebar]);\r\n\r\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n // This makes it easier to style the sidebar with Tailwind classes.\r\n const state = open ? 'expanded' : 'collapsed';\r\n\r\n const contextValue = React.useMemo<SidebarContextProps>(\r\n () => ({\r\n state,\r\n open,\r\n setOpen,\r\n isMobile,\r\n openMobile,\r\n setOpenMobile,\r\n toggleSidebar,\r\n }),\r\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\r\n );\r\n\r\n return (\r\n <SidebarContext.Provider value={contextValue}>\r\n <div\r\n data-slot=\"sidebar-wrapper\"\r\n style={\r\n {\r\n '--sidebar-width': SIDEBAR_WIDTH,\r\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n className={cn(\r\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </SidebarContext.Provider>\r\n );\r\n}\r\n\r\nfunction Sidebar({\r\n side = 'left',\r\n variant = 'sidebar',\r\n collapsible = 'offcanvas',\r\n className,\r\n children,\r\n dir,\r\n ...props\r\n}: React.ComponentProps<'div'> & {\r\n side?: 'left' | 'right';\r\n variant?: 'sidebar' | 'floating' | 'inset';\r\n collapsible?: 'offcanvas' | 'icon' | 'none';\r\n}) {\r\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\r\n\r\n if (collapsible === 'none') {\r\n return (\r\n <div\r\n data-slot=\"sidebar\"\r\n className={cn(\r\n 'flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n if (isMobile) {\r\n return (\r\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\r\n <SheetContent\r\n dir={dir}\r\n data-sidebar=\"sidebar\"\r\n data-slot=\"sidebar\"\r\n data-mobile=\"true\"\r\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\r\n style={\r\n {\r\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\r\n } as React.CSSProperties\r\n }\r\n side={side}\r\n >\r\n <SheetHeader className=\"sr-only\">\r\n <SheetTitle>Sidebar</SheetTitle>\r\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\r\n </SheetHeader>\r\n <div className=\"flex h-full w-full flex-col\">{children}</div>\r\n </SheetContent>\r\n </Sheet>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n className=\"group peer hidden text-sidebar-foreground md:block\"\r\n data-state={state}\r\n data-collapsible={state === 'collapsed' ? collapsible : ''}\r\n data-variant={variant}\r\n data-side={side}\r\n data-slot=\"sidebar\"\r\n >\r\n {/* This is what handles the sidebar gap on desktop */}\r\n <div\r\n data-slot=\"sidebar-gap\"\r\n className={cn(\r\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\r\n 'group-data-[collapsible=offcanvas]:w-0',\r\n 'group-data-[side=right]:rotate-180',\r\n variant === 'floating' || variant === 'inset'\r\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\r\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\r\n )}\r\n />\r\n <div\r\n data-slot=\"sidebar-container\"\r\n data-side={side}\r\n className={cn(\r\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex',\r\n // Adjust the padding for floating and inset variants.\r\n variant === 'floating' || variant === 'inset'\r\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\r\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <div\r\n data-sidebar=\"sidebar\"\r\n data-slot=\"sidebar-inner\"\r\n className=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border\"\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\r\n const { toggleSidebar } = useSidebar();\r\n\r\n return (\r\n <Button\r\n data-sidebar=\"trigger\"\r\n data-slot=\"sidebar-trigger\"\r\n variant=\"ghost\"\r\n size=\"icon-sm\"\r\n className={cn(className)}\r\n onClick={(event) => {\r\n onClick?.(event);\r\n toggleSidebar();\r\n }}\r\n {...props}\r\n >\r\n <PanelLeftIcon />\r\n <span className=\"sr-only\">Toggle Sidebar</span>\r\n </Button>\r\n );\r\n}\r\n\r\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\r\n const { toggleSidebar } = useSidebar();\r\n\r\n return (\r\n <button\r\n data-sidebar=\"rail\"\r\n data-slot=\"sidebar-rail\"\r\n aria-label=\"Toggle Sidebar\"\r\n tabIndex={-1}\r\n onClick={toggleSidebar}\r\n title=\"Toggle Sidebar\"\r\n className={cn(\r\n 'absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2',\r\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\r\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\r\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar',\r\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\r\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\r\n return (\r\n <main\r\n data-slot=\"sidebar-inset\"\r\n className={cn(\r\n 'relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\r\n return (\r\n <Input\r\n data-slot=\"sidebar-input\"\r\n data-sidebar=\"input\"\r\n className={cn('h-8 w-full bg-background shadow-none', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-header\"\r\n data-sidebar=\"header\"\r\n className={cn('flex flex-col gap-2 p-2', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-footer\"\r\n data-sidebar=\"footer\"\r\n className={cn('flex flex-col gap-2 p-2', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\r\n return (\r\n <Separator\r\n data-slot=\"sidebar-separator\"\r\n data-sidebar=\"separator\"\r\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-content\"\r\n data-sidebar=\"content\"\r\n className={cn(\r\n 'no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-group\"\r\n data-sidebar=\"group\"\r\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarGroupLabel({\r\n className,\r\n render,\r\n ...props\r\n}: useRender.ComponentProps<'div'> & React.ComponentProps<'div'>) {\r\n return useRender({\r\n defaultTagName: 'div',\r\n props: mergeProps<'div'>(\r\n {\r\n className: cn(\r\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\r\n className,\r\n ),\r\n },\r\n props,\r\n ),\r\n render,\r\n state: {\r\n slot: 'sidebar-group-label',\r\n sidebar: 'group-label',\r\n },\r\n });\r\n}\r\n\r\nfunction SidebarGroupAction({\r\n className,\r\n render,\r\n ...props\r\n}: useRender.ComponentProps<'button'> & React.ComponentProps<'button'>) {\r\n return useRender({\r\n defaultTagName: 'button',\r\n props: mergeProps<'button'>(\r\n {\r\n className: cn(\r\n 'absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\r\n className,\r\n ),\r\n },\r\n props,\r\n ),\r\n render,\r\n state: {\r\n slot: 'sidebar-group-action',\r\n sidebar: 'group-action',\r\n },\r\n });\r\n}\r\n\r\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-group-content\"\r\n data-sidebar=\"group-content\"\r\n className={cn('w-full text-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\r\n return (\r\n <ul\r\n data-slot=\"sidebar-menu\"\r\n data-sidebar=\"menu\"\r\n className={cn('flex w-full min-w-0 flex-col gap-0', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\r\n return (\r\n <li\r\n data-slot=\"sidebar-menu-item\"\r\n data-sidebar=\"menu-item\"\r\n className={cn('group/menu-item relative', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nconst sidebarMenuButtonVariants = cva(\r\n 'peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\r\n outline:\r\n 'bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]',\r\n },\r\n size: {\r\n default: 'h-8 text-sm',\r\n sm: 'h-7 text-xs',\r\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default',\r\n },\r\n },\r\n);\r\n\r\nfunction SidebarMenuButton({\r\n render,\r\n isActive = false,\r\n variant = 'default',\r\n size = 'default',\r\n tooltip,\r\n className,\r\n ...props\r\n}: useRender.ComponentProps<'button'> &\r\n React.ComponentProps<'button'> & {\r\n isActive?: boolean;\r\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\r\n const { isMobile, state } = useSidebar();\r\n const comp = useRender({\r\n defaultTagName: 'button',\r\n props: mergeProps<'button'>(\r\n {\r\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\r\n },\r\n props,\r\n ),\r\n render: !tooltip ? render : <TooltipTrigger render={render} />,\r\n state: {\r\n slot: 'sidebar-menu-button',\r\n sidebar: 'menu-button',\r\n size,\r\n active: isActive,\r\n },\r\n });\r\n\r\n if (!tooltip) {\r\n return comp;\r\n }\r\n\r\n if (typeof tooltip === 'string') {\r\n tooltip = {\r\n children: tooltip,\r\n };\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n {comp}\r\n <TooltipContent\r\n side=\"right\"\r\n align=\"center\"\r\n hidden={state !== 'collapsed' || isMobile}\r\n {...tooltip}\r\n />\r\n </Tooltip>\r\n );\r\n}\r\n\r\nfunction SidebarMenuAction({\r\n className,\r\n render,\r\n showOnHover = false,\r\n ...props\r\n}: useRender.ComponentProps<'button'> &\r\n React.ComponentProps<'button'> & {\r\n showOnHover?: boolean;\r\n }) {\r\n return useRender({\r\n defaultTagName: 'button',\r\n props: mergeProps<'button'>(\r\n {\r\n className: cn(\r\n 'absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\r\n showOnHover &&\r\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0',\r\n className,\r\n ),\r\n },\r\n props,\r\n ),\r\n render,\r\n state: {\r\n slot: 'sidebar-menu-action',\r\n sidebar: 'menu-action',\r\n },\r\n });\r\n}\r\n\r\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"sidebar-menu-badge\"\r\n data-sidebar=\"menu-badge\"\r\n className={cn(\r\n 'pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarMenuSkeleton({\r\n className,\r\n showIcon = false,\r\n ...props\r\n}: React.ComponentProps<'div'> & {\r\n showIcon?: boolean;\r\n}) {\r\n // Random width between 50 to 90%.\r\n const [width] = React.useState(() => {\r\n return `${Math.floor(Math.random() * 40) + 50}%`;\r\n });\r\n\r\n return (\r\n <div\r\n data-slot=\"sidebar-menu-skeleton\"\r\n data-sidebar=\"menu-skeleton\"\r\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\r\n {...props}\r\n >\r\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\r\n <Skeleton\r\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\r\n data-sidebar=\"menu-skeleton-text\"\r\n style={\r\n {\r\n '--skeleton-width': width,\r\n } as React.CSSProperties\r\n }\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\r\n return (\r\n <ul\r\n data-slot=\"sidebar-menu-sub\"\r\n data-sidebar=\"menu-sub\"\r\n className={cn(\r\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\r\n return (\r\n <li\r\n data-slot=\"sidebar-menu-sub-item\"\r\n data-sidebar=\"menu-sub-item\"\r\n className={cn('group/menu-sub-item relative', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction SidebarMenuSubButton({\r\n render,\r\n size = 'md',\r\n isActive = false,\r\n className,\r\n ...props\r\n}: useRender.ComponentProps<'a'> &\r\n React.ComponentProps<'a'> & {\r\n size?: 'sm' | 'md';\r\n isActive?: boolean;\r\n }) {\r\n return useRender({\r\n defaultTagName: 'a',\r\n props: mergeProps<'a'>(\r\n {\r\n className: cn(\r\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden group-data-[collapsible=icon]:hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground',\r\n className,\r\n ),\r\n },\r\n props,\r\n ),\r\n render,\r\n state: {\r\n slot: 'sidebar-menu-sub-button',\r\n sidebar: 'menu-sub-button',\r\n size,\r\n active: isActive,\r\n },\r\n });\r\n}\r\n\r\nexport {\r\n Sidebar,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupAction,\r\n SidebarGroupContent,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarInput,\r\n SidebarInset,\r\n SidebarMenu,\r\n SidebarMenuAction,\r\n SidebarMenuBadge,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n SidebarMenuSkeleton,\r\n SidebarMenuSub,\r\n SidebarMenuSubButton,\r\n SidebarMenuSubItem,\r\n SidebarProvider,\r\n SidebarRail,\r\n SidebarSeparator,\r\n SidebarTrigger,\r\n useSidebar,\r\n};\r\n","import * as React from 'react';\r\n\r\nconst MOBILE_BREAKPOINT = 768;\r\n\r\nexport function useIsMobile() {\r\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\r\n\r\n React.useEffect(() => {\r\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\r\n const onChange = () => {\r\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\r\n };\r\n mql.addEventListener('change', onChange);\r\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\r\n return () => mql.removeEventListener('change', onChange);\r\n }, []);\r\n\r\n return !!isMobile;\r\n}\r\n","import { cn } from '@/lib/utils';\r\n\r\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\r\n return (\r\n <div\r\n data-slot=\"skeleton\"\r\n className={cn('animate-pulse rounded-md bg-muted', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Skeleton };\r\n","import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction TooltipProvider({ delay = 0, ...props }: TooltipPrimitive.Provider.Props) {\r\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delay={delay} {...props} />;\r\n}\r\n\r\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\r\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\r\n}\r\n\r\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\r\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\r\n}\r\n\r\nfunction TooltipContent({\r\n className,\r\n side = 'top',\r\n sideOffset = 4,\r\n align = 'center',\r\n alignOffset = 0,\r\n children,\r\n ...props\r\n}: TooltipPrimitive.Popup.Props &\r\n Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\r\n return (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Positioner\r\n align={align}\r\n alignOffset={alignOffset}\r\n side={side}\r\n sideOffset={sideOffset}\r\n className=\"isolate z-50\"\r\n >\r\n <TooltipPrimitive.Popup\r\n data-slot=\"tooltip-content\"\r\n className={cn(\r\n 'z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\r\n </TooltipPrimitive.Popup>\r\n </TooltipPrimitive.Positioner>\r\n </TooltipPrimitive.Portal>\r\n );\r\n}\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\r\n","import { useTheme } from 'next-themes';\r\nimport { Toaster as Sonner, type ToasterProps } from 'sonner';\r\nimport {\r\n CircleCheckIcon,\r\n InfoIcon,\r\n TriangleAlertIcon,\r\n OctagonXIcon,\r\n Loader2Icon,\r\n} from 'lucide-react';\r\n\r\nconst Toaster = ({ ...props }: ToasterProps) => {\r\n const { theme = 'system' } = useTheme();\r\n\r\n return (\r\n <Sonner\r\n theme={theme as ToasterProps['theme']}\r\n className=\"toaster group\"\r\n icons={{\r\n success: <CircleCheckIcon className=\"size-4\" />,\r\n info: <InfoIcon className=\"size-4\" />,\r\n warning: <TriangleAlertIcon className=\"size-4\" />,\r\n error: <OctagonXIcon className=\"size-4\" />,\r\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\r\n }}\r\n style={\r\n {\r\n '--normal-bg': 'var(--popover)',\r\n '--normal-text': 'var(--popover-foreground)',\r\n '--normal-border': 'var(--border)',\r\n '--border-radius': 'var(--radius)',\r\n } as React.CSSProperties\r\n }\r\n toastOptions={{\r\n classNames: {\r\n toast: 'cn-toast',\r\n },\r\n }}\r\n {...props}\r\n />\r\n );\r\n};\r\n\r\nexport { Toaster };\r\n","import * as React from 'react';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\r\n return (\r\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\r\n <table\r\n data-slot=\"table\"\r\n className={cn('w-full caption-bottom text-sm', className)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\r\n return <thead data-slot=\"table-header\" className={cn('[&_tr]:border-b', className)} {...props} />;\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\r\n return (\r\n <tbody\r\n data-slot=\"table-body\"\r\n className={cn('[&_tr:last-child]:border-0', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\r\n return (\r\n <tfoot\r\n data-slot=\"table-footer\"\r\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\r\n return (\r\n <tr\r\n data-slot=\"table-row\"\r\n className={cn(\r\n 'border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\r\n return (\r\n <th\r\n data-slot=\"table-head\"\r\n className={cn(\r\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\r\n return (\r\n <td\r\n data-slot=\"table-cell\"\r\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\r\n return (\r\n <caption\r\n data-slot=\"table-caption\"\r\n className={cn('mt-4 text-sm text-muted-foreground', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\r\n","import { Tabs as TabsPrimitive } from '@base-ui/react/tabs';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Tabs({ className, orientation = 'horizontal', ...props }: TabsPrimitive.Root.Props) {\r\n return (\r\n <TabsPrimitive.Root\r\n data-slot=\"tabs\"\r\n data-orientation={orientation}\r\n className={cn('group/tabs flex gap-2 data-horizontal:flex-col', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nconst tabsListVariants = cva(\r\n 'group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-muted',\r\n line: 'gap-1 bg-transparent',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n },\r\n);\r\n\r\nfunction TabsList({\r\n className,\r\n variant = 'default',\r\n ...props\r\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\r\n return (\r\n <TabsPrimitive.List\r\n data-slot=\"tabs-list\"\r\n data-variant={variant}\r\n className={cn(tabsListVariants({ variant }), className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\r\n return (\r\n <TabsPrimitive.Tab\r\n data-slot=\"tabs-trigger\"\r\n className={cn(\r\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n 'group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent',\r\n 'data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground',\r\n 'after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\r\n return (\r\n <TabsPrimitive.Panel\r\n data-slot=\"tabs-content\"\r\n className={cn('flex-1 text-sm outline-none', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };\r\n","'use client';\r\n\r\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst toggleVariants = cva(\r\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n {\r\n variants: {\r\n variant: {\r\n default: 'bg-transparent',\r\n outline: 'border border-input bg-transparent hover:bg-muted',\r\n },\r\n size: {\r\n default:\r\n 'h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\r\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\r\n lg: 'h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n size: 'default',\r\n },\r\n },\r\n);\r\n\r\nfunction Toggle({\r\n className,\r\n variant = 'default',\r\n size = 'default',\r\n ...props\r\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\r\n return (\r\n <TogglePrimitive\r\n data-slot=\"toggle\"\r\n className={cn(toggleVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Toggle, toggleVariants };\r\n","import * as React from 'react';\r\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\r\nimport { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group';\r\nimport { type VariantProps } from 'class-variance-authority';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { toggleVariants } from '@/components/ui/toggle';\r\n\r\nconst ToggleGroupContext = React.createContext<\r\n VariantProps<typeof toggleVariants> & {\r\n spacing?: number;\r\n orientation?: 'horizontal' | 'vertical';\r\n }\r\n>({\r\n size: 'default',\r\n variant: 'default',\r\n spacing: 2,\r\n orientation: 'horizontal',\r\n});\r\n\r\nfunction ToggleGroup({\r\n className,\r\n variant,\r\n size,\r\n spacing = 2,\r\n orientation = 'horizontal',\r\n children,\r\n ...props\r\n}: ToggleGroupPrimitive.Props &\r\n VariantProps<typeof toggleVariants> & {\r\n spacing?: number;\r\n orientation?: 'horizontal' | 'vertical';\r\n }) {\r\n return (\r\n <ToggleGroupPrimitive\r\n data-slot=\"toggle-group\"\r\n data-variant={variant}\r\n data-size={size}\r\n data-spacing={spacing}\r\n data-orientation={orientation}\r\n style={{ '--gap': spacing } as React.CSSProperties}\r\n className={cn(\r\n 'group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <ToggleGroupContext.Provider value={{ variant, size, spacing, orientation }}>\r\n {children}\r\n </ToggleGroupContext.Provider>\r\n </ToggleGroupPrimitive>\r\n );\r\n}\r\n\r\nfunction ToggleGroupItem({\r\n className,\r\n children,\r\n variant = 'default',\r\n size = 'default',\r\n ...props\r\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\r\n const context = React.useContext(ToggleGroupContext);\r\n\r\n return (\r\n <TogglePrimitive\r\n data-slot=\"toggle-group-item\"\r\n data-variant={context.variant || variant}\r\n data-size={context.size || size}\r\n data-spacing={context.spacing}\r\n className={cn(\r\n 'shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t',\r\n toggleVariants({\r\n variant: context.variant || variant,\r\n size: context.size || size,\r\n }),\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </TogglePrimitive>\r\n );\r\n}\r\n\r\nexport { ToggleGroup, ToggleGroupItem };\r\n","import type { ComponentProps } from 'react';\r\nimport { cva } from 'class-variance-authority';\r\n\r\nimport { Button } from '@/components/ui/button';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst actionButtonVariants = cva(\r\n 'cursor-pointer rounded-none border border-primary font-mono text-[11px] tracking-wide active:translate-y-0! disabled:border-border disabled:bg-muted disabled:text-muted-foreground disabled:opacity-100',\r\n {\r\n variants: {\r\n size: {\r\n default: 'h-9 px-4',\r\n sm: 'h-8 px-3',\r\n },\r\n variant: {\r\n default: 'hover:bg-primary!',\r\n outline:\r\n 'bg-background hover:bg-background! hover:text-inherit! dark:bg-background dark:hover:bg-background!',\r\n secondary: 'hover:bg-secondary!',\r\n ghost:\r\n 'border-border text-muted-foreground hover:bg-transparent! hover:text-muted-foreground! dark:hover:bg-transparent!',\r\n destructive: 'hover:bg-destructive/10! dark:hover:bg-destructive/20!',\r\n link: 'hover:no-underline!',\r\n },\r\n dashed: {\r\n true: 'border-dashed bg-background text-primary hover:bg-background!',\r\n },\r\n accent: {\r\n true: 'bg-accent text-primary hover:bg-accent!',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'default',\r\n variant: 'default',\r\n },\r\n },\r\n);\r\n\r\ntype Props = ComponentProps<typeof Button> & {\r\n dashed?: boolean;\r\n accent?: boolean;\r\n};\r\n\r\nexport function ActionButton({\r\n className,\r\n variant,\r\n size,\r\n dashed,\r\n accent,\r\n render,\r\n ...props\r\n}: Props) {\r\n return (\r\n <Button\r\n variant={variant}\r\n size={size}\r\n render={render}\r\n nativeButton={render == null}\r\n {...props}\r\n className={cn(\r\n actionButtonVariants({\r\n size: size === 'sm' ? 'sm' : 'default',\r\n variant: variant ?? 'default',\r\n dashed,\r\n accent,\r\n }),\r\n className,\r\n )}\r\n />\r\n );\r\n}\r\n","import type { ComponentProps, ElementType, ReactNode } from 'react';\r\nimport {\r\n Sidebar,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarMenu,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n} from '@/components/ui/sidebar';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport type SidebarNavItem = {\r\n id: string;\r\n href: string;\r\n glyph: string;\r\n label: string;\r\n badge?: number;\r\n};\r\n\r\nexport type SidebarNavGroup = {\r\n label: string;\r\n items: SidebarNavItem[];\r\n};\r\n\r\n// Полиморфный компонент ссылки: по умолчанию нативный <a> (не тянет\r\n// react-router-dom, безопасно для вынесения в отдельную ui-kit библиотеку).\r\n// Приложение может передать свой адаптер, чтобы включить клиентский роутинг.\r\nexport type SidebarLinkComponent = ElementType<{ href: string } & ComponentProps<'a'>>;\r\n\r\nexport function AppSidebar({\r\n groups,\r\n activeId,\r\n header,\r\n footer,\r\n linkAs: LinkAs = 'a',\r\n}: {\r\n groups: SidebarNavGroup[];\r\n activeId: string;\r\n header?: ReactNode;\r\n footer?: ReactNode;\r\n linkAs?: SidebarLinkComponent;\r\n}) {\r\n return (\r\n <Sidebar\r\n collapsible=\"none\"\r\n className=\"sticky top-0 h-screen border-0 bg-primary text-primary-foreground\"\r\n >\r\n {header && <SidebarHeader className=\"gap-0 p-0\">{header}</SidebarHeader>}\r\n <SidebarContent className=\"gap-0 py-4.5\">\r\n {groups.map((g, i) => (\r\n <SidebarGroup key={g.label} className=\"p-0\">\r\n <SidebarGroupLabel\r\n className={cn(\r\n 'h-auto px-5 pb-3.5 font-mono text-[9px] text-[#7C93B8] tracking-[0.12em] uppercase',\r\n i === 0 ? 'pt-0' : 'pt-4.5',\r\n )}\r\n >\r\n {g.label}\r\n </SidebarGroupLabel>\r\n <SidebarMenu className=\"gap-0\">\r\n {g.items.map((item) => {\r\n const active = item.id === activeId;\r\n return (\r\n <SidebarMenuItem key={item.id}>\r\n <SidebarMenuButton\r\n isActive={active}\r\n className={cn(\r\n 'h-auto gap-2.75 rounded-none border-l-[3px] border-transparent px-5 py-2.25',\r\n 'text-[13px] text-[#C3CEE0] hover:bg-[#33507F] hover:text-[#C3CEE0]',\r\n 'focus-visible:ring-2 focus-visible:ring-accent',\r\n 'data-active:border-l-accent data-active:bg-[#33507F] data-active:font-semibold data-active:text-white',\r\n )}\r\n render={\r\n <LinkAs href={item.href}>\r\n <span\r\n aria-hidden\r\n className=\"w-4 font-mono text-[12px] text-[#7C93B8] group-data-active/menu-button:text-accent\"\r\n >\r\n {item.glyph}\r\n </span>\r\n <span className=\"flex-1\">{item.label}</span>\r\n {item.badge ? (\r\n <span className=\"bg-accent px-1.5 font-mono text-[10px] text-primary\">\r\n {item.badge}\r\n </span>\r\n ) : null}\r\n </LinkAs>\r\n }\r\n />\r\n </SidebarMenuItem>\r\n );\r\n })}\r\n </SidebarMenu>\r\n </SidebarGroup>\r\n ))}\r\n </SidebarContent>\r\n {footer && <SidebarFooter className=\"gap-0 p-0\">{footer}</SidebarFooter>}\r\n </Sidebar>\r\n );\r\n}\r\n","import { useState, type ChangeEvent, type DragEvent } from 'react';\r\nimport { Input } from '@/components/ui/input';\r\nimport { ActionButton } from '@/components/kff/action-button';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport const ACCEPTED_MIME = [\r\n 'application/pdf',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'image/png',\r\n 'image/jpeg',\r\n] as const;\r\n\r\nexport const MAX_FILE_BYTES = 25 * 1024 * 1024; // FILE-015\r\n\r\nexport type ScanState = 'SCANNING' | 'CLEAN' | 'INFECTED';\r\n\r\nexport type AttachmentValue = {\r\n name: string;\r\n scan: ScanState;\r\n};\r\n\r\nexport function validateAttachment(file: File): string | null {\r\n if (!ACCEPTED_MIME.includes(file.type as (typeof ACCEPTED_MIME)[number])) {\r\n return 'Допустимы PDF, DOCX, XLSX, PNG, JPEG.';\r\n }\r\n if (file.size > MAX_FILE_BYTES) {\r\n return 'Файл больше 25 МБ — лимит на один файл.';\r\n }\r\n return null;\r\n}\r\n\r\nexport function AttachmentField({\r\n value,\r\n error,\r\n onUpload,\r\n onRemove,\r\n}: {\r\n value?: AttachmentValue;\r\n error?: string;\r\n onUpload: (file?: File) => void;\r\n onRemove: () => void;\r\n}) {\r\n const [isDragging, setIsDragging] = useState(false);\r\n\r\n const handleDragOver = (e: DragEvent<HTMLLabelElement>) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = (e: DragEvent<HTMLLabelElement>) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: DragEvent<HTMLLabelElement>) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n onUpload(e.dataTransfer.files?.[0]);\r\n };\r\n\r\n return (\r\n <div className=\"space-y-2.5\">\r\n <label\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n className={cn(\r\n 'block cursor-pointer border border-dashed border-primary bg-background px-4 py-5 text-center font-mono text-[11px] leading-[1.9] text-muted-foreground',\r\n isDragging && 'border-2 border-accent bg-secondary',\r\n )}\r\n >\r\n <span className=\"block text-[13px] text-primary\">+ Перетащите файл или выберите</span>\r\n <span>PDF, DOCX, XLSX, PNG, JPEG · до 25 МБ</span>\r\n <Input\r\n type=\"file\"\r\n className=\"sr-only\"\r\n accept={ACCEPTED_MIME.join(',')}\r\n onChange={(e: ChangeEvent<HTMLInputElement>) => onUpload(e.target.files?.[0])}\r\n />\r\n </label>\r\n\r\n {value && (\r\n <div\r\n className={cn(\r\n 'flex items-center justify-between gap-3 border border-border bg-background px-3.5 py-2.75',\r\n value.scan === 'SCANNING' && 'border-primary bg-hatch',\r\n value.scan === 'INFECTED' && 'border-2 border-primary',\r\n )}\r\n >\r\n <div className=\"min-w-0\">\r\n <p className=\"truncate text-[12px] font-semibold text-primary\">{value.name}</p>\r\n <p className=\"mt-0.75 font-mono text-[10px] text-muted-foreground\">\r\n {value.scan === 'CLEAN'\r\n ? '✓ CLEAN'\r\n : value.scan === 'SCANNING'\r\n ? '⟳ SCANNING · не учитывается в готовности'\r\n : '✕ INFECTED · файл заблокирован'}\r\n </p>\r\n </div>\r\n <ActionButton size=\"sm\" variant=\"outline\" onClick={onRemove}>\r\n ✕\r\n </ActionButton>\r\n </div>\r\n )}\r\n\r\n {error && (\r\n <div className=\"border-2 border-primary bg-background px-3.5 py-2.75\">\r\n <div className=\"mb-1.25 font-mono text-[10px] text-primary\">▲ файл отклонён</div>\r\n <div className=\"text-[12px] leading-relaxed text-primary\">{error}</div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport type ChecklistItem = {\r\n title: string;\r\n covered: boolean;\r\n};\r\n\r\nexport function ChecklistPanel({ items, covered }: { items: ChecklistItem[]; covered: number }) {\r\n return (\r\n <Collapsible defaultOpen>\r\n <div className=\"border border-primary bg-[#EDF1F8] px-3.5 py-3\">\r\n <CollapsibleTrigger className=\"flex w-full cursor-pointer items-center justify-between font-mono text-[10px] tracking-wide text-muted-foreground uppercase\">\r\n Чек-лист КФФ · {items.length} разделов\r\n <span aria-hidden>▾</span>\r\n </CollapsibleTrigger>\r\n\r\n <CollapsibleContent className=\"mt-2 space-y-0.5\">\r\n <p className=\"mb-2.5 text-[11px] leading-relaxed text-muted-foreground\">\r\n Подсказка, а не обязательная структура. Пропуск пункта не блокирует отправку.\r\n </p>\r\n\r\n {items.map((i, n) => (\r\n <div\r\n key={i.title}\r\n className={cn(\r\n 'grid grid-cols-[14px_1fr] items-baseline gap-2 py-0.5 text-[11px] text-primary',\r\n !i.covered && 'text-[#8AA0C0]',\r\n )}\r\n >\r\n <span aria-hidden className=\"font-mono text-[10px]\">\r\n {i.covered ? '✓' : '○'}\r\n </span>\r\n <span>\r\n {n + 1}. {i.title}\r\n </span>\r\n </div>\r\n ))}\r\n\r\n <p className=\"pt-2.5 font-mono text-[10px] text-muted-foreground\">\r\n {covered} из {items.length} разделов чек-листа раскрыты\r\n </p>\r\n </CollapsibleContent>\r\n </div>\r\n </Collapsible>\r\n );\r\n}\r\n","export const fmtKzt = (n: number) =>\r\n n < 0 ? `(${Math.abs(n).toLocaleString('ru-RU')})` : n.toLocaleString('ru-RU');\r\n","import type { ReactNode } from 'react';\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableFooter,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from '@/components/ui/table';\r\nimport { fmtKzt } from '@/lib/kff/format';\r\nimport { cn } from '@/lib/utils';\r\nimport { ActionButton } from '@/components/kff/action-button';\r\n\r\nexport type ColumnDef<T> = {\r\n key: keyof T & string;\r\n header: string;\r\n width?: string;\r\n align?: 'left' | 'right';\r\n kind?: 'text' | 'amount' | 'date' | 'status';\r\n total?: boolean;\r\n};\r\n\r\nexport type DetailBlockConfig<T> = {\r\n formNumber: string; // \"Форма №8 «Тр Кт»\"\r\n title: string;\r\n targetLine: string; // BALANCE.PAYABLE_TRANSFER_ST\r\n columns: ColumnDef<T>[];\r\n emptyConfirmable: boolean;\r\n rowAttachments: boolean;\r\n};\r\n\r\nfunction DetailRow<T extends { id: string }>({\r\n row,\r\n config,\r\n onEdit,\r\n onDelete,\r\n}: {\r\n row: T;\r\n config: DetailBlockConfig<T>;\r\n onEdit: (row: T) => void;\r\n onDelete: (row: T) => void;\r\n}) {\r\n return (\r\n <TableRow>\r\n {config.columns.map((c, i) => (\r\n <TableCell\r\n key={c.key}\r\n style={{ width: c.width }}\r\n className={cn(\r\n 'font-mono text-[12px] text-primary',\r\n c.align === 'right' && 'text-right',\r\n i === 0 && 'sticky left-0 z-10 bg-background font-sans font-semibold',\r\n )}\r\n >\r\n {c.kind === 'amount'\r\n ? row[c.key] == null\r\n ? '—'\r\n : fmtKzt(Number(row[c.key]))\r\n : (row[c.key] as ReactNode)}\r\n </TableCell>\r\n ))}\r\n <TableCell className=\"w-18.5 text-center\">\r\n <div className=\"flex items-center justify-center gap-1.5\">\r\n <button\r\n type=\"button\"\r\n aria-label=\"Редактировать\"\r\n onClick={() => onEdit(row)}\r\n className=\"cursor-pointer border border-border px-1.5 py-px font-mono text-[11px] text-primary\"\r\n >\r\n ✎\r\n </button>\r\n <button\r\n type=\"button\"\r\n aria-label=\"Удалить\"\r\n onClick={() => onDelete(row)}\r\n className=\"cursor-pointer border border-border px-1.5 py-px font-mono text-[11px] text-primary\"\r\n >\r\n ✕\r\n </button>\r\n </div>\r\n </TableCell>\r\n </TableRow>\r\n );\r\n}\r\n\r\nexport function DetailTable<T extends { id: string }>({\r\n config,\r\n rows,\r\n onAdd,\r\n onEdit,\r\n onDelete,\r\n}: {\r\n config: DetailBlockConfig<T>;\r\n rows: T[];\r\n onAdd: () => void;\r\n onEdit: (row: T) => void;\r\n onDelete: (row: T) => void;\r\n}) {\r\n const totals = config.columns\r\n .filter((c) => c.total)\r\n .map((c) => [c.key, rows.reduce((a, r) => a + Number(r[c.key] ?? 0), 0)] as const);\r\n\r\n return (\r\n <Table className=\"border border-primary\">\r\n <TableHeader className=\"bg-primary [&_th]:text-primary-foreground\">\r\n <TableRow className=\"hover:bg-primary\">\r\n {config.columns.map((c, i) => (\r\n <TableHead\r\n key={c.key}\r\n style={{ width: c.width }}\r\n className={cn(\r\n 'font-mono text-[12px] tracking-wide uppercase',\r\n c.align === 'right' && 'text-right',\r\n i === 0 && 'sticky left-0 z-10 bg-primary',\r\n )}\r\n >\r\n {c.header}\r\n </TableHead>\r\n ))}\r\n <TableHead className=\"w-18.5 text-center font-mono text-[12px]\">Строка</TableHead>\r\n </TableRow>\r\n </TableHeader>\r\n\r\n <TableBody>\r\n {rows.length === 0 && config.emptyConfirmable && (\r\n <TableRow className=\"hover:bg-transparent\">\r\n <TableCell\r\n colSpan={config.columns.length + 1}\r\n className=\"py-3 text-center font-mono text-[12px] text-primary\"\r\n >\r\n операций не было\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n\r\n {rows.map((row) => (\r\n <DetailRow key={row.id} row={row} config={config} onEdit={onEdit} onDelete={onDelete} />\r\n ))}\r\n\r\n <TableRow className=\"hover:bg-transparent\">\r\n <TableCell colSpan={config.columns.length + 1} className=\"p-0\">\r\n <ActionButton\r\n dashed\r\n onClick={onAdd}\r\n className=\"h-9 w-full justify-start rounded-none border-0 border-t px-3\"\r\n >\r\n + Добавить строку\r\n </ActionButton>\r\n </TableCell>\r\n </TableRow>\r\n </TableBody>\r\n\r\n <TableFooter className=\"bg-hatch border-t-2 border-t-primary hover:bg-hatch\">\r\n <TableRow className=\"hover:bg-transparent\">\r\n <TableCell className=\"sticky left-0 z-10 bg-hatch font-mono text-[12px] font-semibold text-primary\">\r\n Итого → {config.targetLine}\r\n </TableCell>\r\n {config.columns.slice(1).map((c) => {\r\n const total = totals.find(([key]) => key === c.key);\r\n return (\r\n <TableCell\r\n key={c.key}\r\n className={cn(\r\n 'font-mono text-[12px] text-primary',\r\n c.kind !== 'status' && 'font-semibold',\r\n c.align === 'right' && 'text-right',\r\n )}\r\n >\r\n {total ? fmtKzt(total[1]) : null}\r\n </TableCell>\r\n );\r\n })}\r\n <TableCell />\r\n </TableRow>\r\n </TableFooter>\r\n </Table>\r\n );\r\n}\r\n","import { Progress as ProgressPrimitive } from '@base-ui/react/progress';\r\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\r\nimport { ProgressIndicator, ProgressTrack } from '@/components/ui/progress';\r\nimport { ActionButton } from '@/components/kff/action-button';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport type JobState = 'QUEUED' | 'RUNNING' | 'DONE' | 'FAILED';\r\n\r\nexport type ExportJobFile = {\r\n name: string;\r\n sha: string;\r\n size: string;\r\n url: string;\r\n};\r\n\r\nexport type ExportJob = {\r\n title: string;\r\n state: JobState;\r\n progress?: number;\r\n error?: string;\r\n files?: ExportJobFile[];\r\n};\r\n\r\nconst JOB: Record<JobState, { glyph: string; label: string; chip: string }> = {\r\n QUEUED: { glyph: '○', label: 'в очереди', chip: 'border-dashed' },\r\n RUNNING: { glyph: '⟳', label: 'выполняется', chip: 'bg-hatch' },\r\n DONE: {\r\n glyph: '✓',\r\n label: 'готово',\r\n chip: 'bg-primary text-primary-foreground',\r\n },\r\n FAILED: { glyph: '▲', label: 'ошибка', chip: 'border-2' },\r\n};\r\n\r\nexport function ExportJobCard({ job, onRetry }: { job: ExportJob; onRetry: () => void }) {\r\n const s = JOB[job.state];\r\n return (\r\n <Card className=\"gap-0 rounded-none border-primary bg-background py-0 text-primary\">\r\n <CardHeader className=\"flex-row items-center justify-between gap-3 border-b border-border px-3.5 py-3\">\r\n <CardTitle className=\"text-[13px] font-semibold text-primary\">{job.title}</CardTitle>\r\n <span\r\n className={cn(\r\n 'w-fit border border-primary px-2 py-1 font-mono text-[10px] text-primary',\r\n s.chip,\r\n )}\r\n >\r\n <span aria-hidden>{s.glyph}</span> {s.label}\r\n </span>\r\n </CardHeader>\r\n\r\n <CardContent className=\"p-0\">\r\n {job.state === 'RUNNING' && (\r\n <ProgressPrimitive.Root value={job.progress ?? null}>\r\n <ProgressTrack className=\"h-1 rounded-none\">\r\n <ProgressIndicator className=\"rounded-none\" />\r\n </ProgressTrack>\r\n </ProgressPrimitive.Root>\r\n )}\r\n\r\n {job.state === 'FAILED' && (\r\n <div className=\"space-y-2 px-3.5 py-3\">\r\n <p className=\"text-[12px] text-primary\">{job.error}</p>\r\n <ActionButton size=\"sm\" variant=\"outline\" onClick={onRetry}>\r\n Повторить формирование\r\n </ActionButton>\r\n </div>\r\n )}\r\n\r\n {job.state === 'DONE' &&\r\n job.files?.map((f) => (\r\n <div\r\n key={f.name}\r\n className=\"flex items-center justify-between gap-3 border-b border-border px-3.5 py-2.5 last:border-b-0\"\r\n >\r\n <div className=\"min-w-0\">\r\n <p className=\"truncate font-mono text-[11px] text-primary\">{f.name}</p>\r\n <p className=\"mt-0.5 font-mono text-[10px] text-muted-foreground\">\r\n sha256 {f.sha.slice(0, 4)}…{f.sha.slice(-4)} · {f.size}\r\n </p>\r\n </div>\r\n <ActionButton\r\n size=\"sm\"\r\n variant=\"outline\"\r\n render={\r\n <a href={f.url} download>\r\n ↓ скачать\r\n </a>\r\n }\r\n />\r\n </div>\r\n ))}\r\n </CardContent>\r\n </Card>\r\n );\r\n}\r\n","import { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert';\r\n\r\nexport function ValidationSummary({ errors }: { errors: string[] }) {\r\n if (errors.length === 0) return null;\r\n\r\n return (\r\n <Alert className=\"rounded-none border-2 border-primary bg-background p-0\">\r\n <AlertTitle className=\"bg-hatch border-b border-primary px-3 py-2 font-mono text-[10px]\">\r\n ▲ проверка не пройдена\r\n </AlertTitle>\r\n <AlertDescription className=\"space-y-1 px-3 py-2 text-xs text-primary\">\r\n {errors.map((e) => (\r\n <p key={e}>{e}</p>\r\n ))}\r\n </AlertDescription>\r\n </Alert>\r\n );\r\n}\r\n","import type { ReactNode } from 'react';\r\nimport {\r\n Dialog,\r\n DialogClose,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n} from '@/components/ui/dialog';\r\nimport { ActionButton } from '@/components/kff/action-button';\r\nimport { ValidationSummary } from '@/components/kff/validation-summary';\r\n\r\nexport type FormDialogProps = {\r\n open: boolean;\r\n onOpenChange: (open: boolean) => void;\r\n requirement: string;\r\n title: string;\r\n description: string;\r\n errors?: string[];\r\n children?: ReactNode;\r\n primaryLabel: string;\r\n onSubmit: () => void;\r\n};\r\n\r\nexport function FormDialog({\r\n open,\r\n onOpenChange,\r\n requirement,\r\n title,\r\n description,\r\n errors = [],\r\n children,\r\n primaryLabel,\r\n onSubmit,\r\n}: FormDialogProps) {\r\n return (\r\n <Dialog open={open} onOpenChange={onOpenChange}>\r\n <DialogContent\r\n showCloseButton={false}\r\n className=\"max-w-115 gap-0 rounded-none border-2 border-primary bg-background p-0 text-primary\"\r\n >\r\n <DialogHeader className=\"bg-hatch flex-row items-center justify-between gap-3.5 border-b border-primary px-4 py-2.75\">\r\n <span className=\"w-fit bg-background px-2 py-0.75 font-mono text-[10px]\">\r\n {requirement}\r\n </span>\r\n <DialogClose className=\"w-fit cursor-pointer bg-background px-1.75 py-0.75 font-mono text-[10px]\">\r\n ✕\r\n </DialogClose>\r\n </DialogHeader>\r\n\r\n <div className=\"space-y-3.5 px-4.5 py-4\">\r\n <DialogTitle className=\"text-[16px] font-semibold text-primary\">{title}</DialogTitle>\r\n <DialogDescription className=\"text-[12px] leading-relaxed text-primary\">\r\n {description}\r\n </DialogDescription>\r\n\r\n <ValidationSummary errors={errors} />\r\n\r\n {children}\r\n </div>\r\n\r\n <DialogFooter className=\"mx-0 mb-0 flex-row justify-end gap-2.25 rounded-none border-t border-primary bg-secondary px-4.5 py-3\">\r\n <ActionButton variant=\"outline\" onClick={() => onOpenChange(false)}>\r\n Отмена\r\n </ActionButton>\r\n <ActionButton onClick={onSubmit}>{primaryLabel}</ActionButton>\r\n </DialogFooter>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n","import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\r\nimport { fmtKzt } from '@/lib/kff/format';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport type CellState = 'value' | 'unanswered' | 'empty' | 'na' | 'computed';\r\n\r\nexport function ValueCell({\r\n state,\r\n value,\r\n reason,\r\n source,\r\n onEdit,\r\n}: {\r\n state: CellState;\r\n value?: number;\r\n reason?: string;\r\n source?: string;\r\n onEdit?: () => void;\r\n}) {\r\n const body =\r\n state === 'value'\r\n ? fmtKzt(value ?? 0)\r\n : state === 'computed'\r\n ? `${fmtKzt(value ?? 0)} ƒ`\r\n : state === 'unanswered'\r\n ? ''\r\n : state === 'na'\r\n ? '— ⓘ'\r\n : '—';\r\n\r\n const cell = (\r\n <button\r\n type=\"button\"\r\n onClick={state === 'computed' ? undefined : onEdit}\r\n aria-label={state === 'unanswered' ? 'не отвечено' : undefined}\r\n className={cn(\r\n 'w-full border-l px-3.5 py-2.5 text-right font-mono text-[12px] text-primary',\r\n state === 'unanswered' && 'bg-hatch',\r\n state === 'computed' && 'cursor-default bg-secondary',\r\n )}\r\n >\r\n {body}\r\n </button>\r\n );\r\n\r\n if (!reason && !source) return cell;\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger render={cell} />\r\n <TooltipContent className=\"rounded-none font-mono text-[12px]\">\r\n {reason ?? `рассчитано из ${source}`}\r\n </TooltipContent>\r\n </Tooltip>\r\n );\r\n}\r\n","import type { ComponentProps } from 'react';\r\nimport { TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';\r\nimport { cn } from '@/lib/utils';\r\nimport { ValueCell } from '@/components/kff/value-cell';\r\n\r\nexport type RowKind = 'group' | 'row' | 'additive' | 'memo' | 'subtotal' | 'total';\r\n\r\nexport type FormRowModel = {\r\n id: string;\r\n kind: RowKind;\r\n name: string;\r\n value?: number;\r\n current: Omit<ComponentProps<typeof ValueCell>, 'onEdit'>;\r\n};\r\n\r\nexport function FormTableHeader({ title, date }: { title: string; date: string }) {\r\n return (\r\n <TableHeader>\r\n <TableRow className=\"border-b border-muted-foreground bg-muted hover:bg-muted\">\r\n <TableHead className=\"py-2.5 font-mono text-[12px] tracking-wide text-muted-foreground uppercase\">\r\n {title}\r\n </TableHead>\r\n <TableHead className=\"border-l border-border py-2.5 text-right font-mono text-[12px] tracking-wide text-muted-foreground uppercase\">\r\n {date}\r\n </TableHead>\r\n </TableRow>\r\n </TableHeader>\r\n );\r\n}\r\n\r\nexport function FormRow({ row, onEdit }: { row: FormRowModel; onEdit: () => void }) {\r\n const memo = row.kind === 'memo';\r\n const isTotal = row.kind === 'subtotal' || row.kind === 'total';\r\n\r\n return (\r\n <TableRow\r\n data-kind={row.kind}\r\n className={cn(\r\n 'border-b-muted',\r\n memo && 'bg-[#F8FAFD]',\r\n isTotal && 'border-t-2 border-t-primary bg-secondary font-semibold',\r\n )}\r\n >\r\n <TableCell\r\n className={cn(\r\n 'py-2.5 text-[12px] text-primary',\r\n row.kind === 'row' && 'pl-6.5',\r\n (memo || row.kind === 'additive') && 'pl-11',\r\n memo && 'italic text-muted-foreground',\r\n )}\r\n >\r\n {row.name}\r\n {memo && (\r\n <span className=\"ml-2 border border-dashed px-1.5 py-px font-mono text-[9px] not-italic\">\r\n memo\r\n </span>\r\n )}\r\n </TableCell>\r\n\r\n <TableCell className=\"p-0 text-primary [&>button]:border-muted\">\r\n <ValueCell {...row.current} onEdit={onEdit} />\r\n </TableCell>\r\n </TableRow>\r\n );\r\n}\r\n\r\n// сумма родителя: memo исключаются\r\nexport const sumChildren = (rows: FormRowModel[]) =>\r\n rows.filter((r) => r.kind !== 'memo').reduce((a, r) => a + (r.value ?? 0), 0);\r\n","import { Alert, AlertDescription } from '@/components/ui/alert';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport type IssueLevel = 'BLOCKING' | 'WARNING' | 'INFO';\r\n\r\nexport type Issue = {\r\n level: IssueLevel;\r\n ruleCode: string;\r\n message: string;\r\n scope?: string;\r\n};\r\n\r\nconst LEVEL: Record<IssueLevel, { glyph: string; label: string; card: string; chip: string }> = {\r\n BLOCKING: {\r\n glyph: '▲',\r\n label: 'блокирующая',\r\n card: 'border-2 border-primary bg-hatch',\r\n chip: 'border-2 border-primary bg-background text-primary',\r\n },\r\n WARNING: {\r\n glyph: '◐',\r\n label: 'предупреждение',\r\n card: 'border border-primary bg-background',\r\n chip: 'border border-primary text-primary',\r\n },\r\n INFO: {\r\n glyph: '○',\r\n label: 'информационное',\r\n card: 'border border-dashed border-border bg-secondary text-muted-foreground',\r\n chip: 'border border-dashed border-border',\r\n },\r\n};\r\n\r\nexport function IssueCard({ issue }: { issue: Issue }) {\r\n const l = LEVEL[issue.level];\r\n return (\r\n <Alert\r\n role={issue.level === 'BLOCKING' ? 'alert' : 'status'}\r\n className={cn('gap-0 rounded-none px-3.5 py-3', l.card)}\r\n >\r\n <span\r\n className={cn('mb-1.75 inline-block w-fit px-1.75 py-0.5 font-mono text-[10px]', l.chip)}\r\n >\r\n <span aria-hidden>{l.glyph}</span> {l.label} · {issue.ruleCode}\r\n </span>\r\n <AlertDescription\r\n className={cn('text-[12px] leading-relaxed', issue.level !== 'INFO' && 'text-primary')}\r\n >\r\n {issue.message}\r\n {issue.scope && (\r\n <span className=\"mt-1.5 block font-mono text-[10px] text-muted-foreground\">\r\n {issue.scope}\r\n </span>\r\n )}\r\n </AlertDescription>\r\n </Alert>\r\n );\r\n}\r\n\r\nexport const sortIssues = (list: Issue[]) =>\r\n [...list].sort(\r\n (a, b) =>\r\n ['BLOCKING', 'WARNING', 'INFO'].indexOf(a.level) -\r\n ['BLOCKING', 'WARNING', 'INFO'].indexOf(b.level),\r\n );\r\n","import { Fragment, type ReactNode } from 'react';\r\n\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbItem,\r\n BreadcrumbLink,\r\n BreadcrumbList,\r\n BreadcrumbPage,\r\n BreadcrumbSeparator,\r\n} from '@/components/ui/breadcrumb';\r\nimport { ActionButton } from '@/components/kff/action-button';\r\n\r\nexport type PageHeaderTrailItem = {\r\n label: string;\r\n href?: string;\r\n};\r\n\r\nexport function PageHeader({\r\n trail,\r\n title,\r\n actions,\r\n}: {\r\n trail: PageHeaderTrailItem[];\r\n title: string;\r\n actions?: ReactNode;\r\n}) {\r\n const back = [...trail].reverse().find((t) => t.href);\r\n\r\n return (\r\n <header className=\"flex flex-wrap items-center justify-between gap-5 border-b border-border bg-background px-8 py-5\">\r\n <div className=\"min-w-0\">\r\n <Breadcrumb>\r\n <BreadcrumbList className=\"font-mono text-[12px]\">\r\n {trail.map((t, i) => (\r\n <Fragment key={t.label}>\r\n {i > 0 && <BreadcrumbSeparator />}\r\n <BreadcrumbItem>\r\n {t.href ? (\r\n <BreadcrumbLink href={t.href}>{t.label}</BreadcrumbLink>\r\n ) : (\r\n <BreadcrumbPage className=\"text-muted-foreground\">\r\n {t.label}\r\n </BreadcrumbPage>\r\n )}\r\n </BreadcrumbItem>\r\n </Fragment>\r\n ))}\r\n </BreadcrumbList>\r\n </Breadcrumb>\r\n\r\n <div className=\"mt-1.5 flex items-center gap-3\">\r\n {back && (\r\n <ActionButton variant=\"outline\" size=\"sm\" render={<a href={back.href}>‹ Назад</a>} />\r\n )}\r\n <h1 className=\"truncate text-[19px] font-semibold text-primary\">{title}</h1>\r\n </div>\r\n </div>\r\n <div className=\"flex gap-2\">{actions}</div>\r\n </header>\r\n );\r\n}\r\n","import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs';\r\nimport { ToggleGroup, ToggleGroupItem } from '@/components/ui/toggle-group';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport function SectionTabs({\r\n value,\r\n onChange,\r\n items,\r\n}: {\r\n value: string;\r\n onChange: (v: string) => void;\r\n items: { value: string; label: string; badge?: number }[];\r\n}) {\r\n return (\r\n <Tabs value={value} onValueChange={onChange}>\r\n <TabsList className=\"h-auto w-full justify-start gap-0 rounded-none border-border border-b bg-background p-0\">\r\n {items.map((i) => (\r\n <TabsTrigger\r\n key={i.value}\r\n value={i.value}\r\n className={cn(\r\n 'cursor-pointer gap-2 rounded-none border-b-[3px] border-transparent px-4 py-2.5',\r\n 'text-[13px] text-muted-foreground shadow-none',\r\n 'hover:text-muted-foreground',\r\n 'data-active:border-b-accent data-active:font-semibold data-active:shadow-none',\r\n 'data-active:bg-transparent dark:data-active:bg-transparent',\r\n 'dark:data-active:border-transparent dark:data-active:border-b-accent',\r\n 'data-active:text-primary data-active:hover:text-primary',\r\n )}\r\n >\r\n {i.label}\r\n {i.badge ? (\r\n <span className=\"bg-accent px-1.5 font-mono text-[10px] text-primary\">{i.badge}</span>\r\n ) : null}\r\n </TabsTrigger>\r\n ))}\r\n </TabsList>\r\n </Tabs>\r\n );\r\n}\r\n\r\nexport type FormChipItem = {\r\n id: string;\r\n title: string;\r\n readiness: 'ready' | 'progress' | 'errors';\r\n};\r\n\r\nconst READINESS = { ready: '✓', progress: '◐', errors: '▲' } as const;\r\n\r\nexport function FormChips({\r\n value,\r\n onChange,\r\n forms,\r\n}: {\r\n value: string;\r\n onChange: (v: string) => void;\r\n forms: FormChipItem[];\r\n}) {\r\n return (\r\n <ToggleGroup\r\n value={[value]}\r\n onValueChange={(groupValue) => onChange(groupValue[0])}\r\n className=\"h-auto w-auto flex-wrap justify-start gap-2 rounded-none bg-secondary px-3.5 py-3\"\r\n >\r\n {forms.map((f) => (\r\n <ToggleGroupItem\r\n key={f.id}\r\n value={f.id}\r\n className={cn(\r\n 'h-auto gap-2 rounded-none border bg-background px-3 py-1.5',\r\n 'font-mono text-[11px] text-primary',\r\n 'data-[state=on]:border-primary data-[state=on]:bg-primary data-[state=on]:text-primary-foreground',\r\n 'aria-pressed:border-primary aria-pressed:bg-primary aria-pressed:text-primary-foreground',\r\n )}\r\n >\r\n <span\r\n aria-hidden\r\n className=\"text-muted-foreground group-data-[state=on]/toggle:text-accent group-aria-pressed/toggle:text-accent\"\r\n >\r\n {READINESS[f.readiness]}\r\n </span>\r\n {f.title}\r\n </ToggleGroupItem>\r\n ))}\r\n </ToggleGroup>\r\n );\r\n}\r\n","import { Badge } from '@/components/ui/badge';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport const REPORT_STATUS = {\r\n draft: { glyph: '○', label: 'черновик', ring: 'border-dashed' },\r\n submitted: {\r\n glyph: '◐',\r\n label: 'отправлен',\r\n ring: 'bg-primary text-primary-foreground',\r\n },\r\n review: { glyph: '⟳', label: 'на проверке', ring: 'bg-hatch' },\r\n needsRevision: { glyph: '↩', label: 'на доработке', ring: 'border-2' },\r\n accepted: { glyph: '✓', label: 'принят', ring: 'bg-accent' },\r\n} as const;\r\n\r\nexport type ReportStatus = keyof typeof REPORT_STATUS;\r\n\r\nexport const DEBT_STATUS = {\r\n overdue: {\r\n glyph: '▲',\r\n label: 'просроченная',\r\n ring: 'border-2 bg-hatch',\r\n doc: true,\r\n },\r\n deferred: {\r\n glyph: '→',\r\n label: 'отсроченная',\r\n ring: 'border-dashed',\r\n doc: true,\r\n },\r\n disputed: {\r\n glyph: '≠',\r\n label: 'оспариваемая',\r\n ring: 'border-2 border-double',\r\n doc: true,\r\n },\r\n review: { glyph: '⟳', label: 'на рассмотрении', ring: 'bg-muted', doc: true },\r\n conditional: {\r\n glyph: '?',\r\n label: 'условная',\r\n ring: 'border-dotted bg-secondary',\r\n doc: true,\r\n },\r\n current: { glyph: '○', label: 'непросроченная', ring: '', doc: false },\r\n paid: {\r\n glyph: '✓',\r\n label: 'оплачена',\r\n ring: 'bg-primary text-primary-foreground',\r\n doc: false,\r\n },\r\n} as const;\r\n\r\nexport type DebtStatus = keyof typeof DEBT_STATUS;\r\n\r\ntype StatusBadgeProps =\r\n { kind: 'report'; status: ReportStatus } | { kind: 'debt'; status: DebtStatus };\r\n\r\nexport function StatusBadge(props: StatusBadgeProps) {\r\n const s = props.kind === 'report' ? REPORT_STATUS[props.status] : DEBT_STATUS[props.status];\r\n\r\n return (\r\n <Badge\r\n variant=\"outline\"\r\n aria-label={s.label}\r\n className={cn(\r\n 'gap-2 rounded-none border border-primary px-2.5 py-1',\r\n 'font-mono text-[11px] font-normal text-primary p-3',\r\n s.ring,\r\n )}\r\n >\r\n <span aria-hidden>{s.glyph}</span>\r\n {s.label}\r\n </Badge>\r\n );\r\n}\r\n","import { Toaster as ToasterPrimitive } from '@/components/ui/sonner';\r\n\r\nexport function Toaster() {\r\n return (\r\n <ToasterPrimitive\r\n position=\"bottom-left\"\r\n toastOptions={{\r\n unstyled: true,\r\n classNames: {\r\n toast:\r\n 'border border-primary bg-primary px-4 py-3 font-mono text-[11px] leading-relaxed text-primary-foreground shadow-[5px_5px_0_rgba(10,42,94,0.18)] max-w-[640px]',\r\n },\r\n }}\r\n />\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCyB,SAAR,YAA6B,KAAK,EAAE,SAAS,IAAI,CAAC,GAAG;AAC1D,MAAI,CAAC,OAAO,OAAO,aAAa,YAAa;AAE7C,QAAM,OAAO,SAAS,QAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC;AACrE,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,OAAO;AAEb,MAAI,aAAa,OAAO;AACtB,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa,OAAO,KAAK,UAAU;AAAA,IAC1C,OAAO;AACL,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF,OAAO;AACL,SAAK,YAAY,KAAK;AAAA,EACxB;AAEA,MAAI,MAAM,YAAY;AACpB,UAAM,WAAW,UAAU;AAAA,EAC7B,OAAO;AACL,UAAM,YAAY,SAAS,eAAe,GAAG,CAAC;AAAA,EAChD;AACF;;;ACvB8B,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","names":["Toaster","import_class_variance_authority","import_merge_props","import_use_render","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","ButtonPrimitive","import_jsx_runtime","import_lucide_react","import_jsx_runtime","CheckboxPrimitive","import_jsx_runtime","CollapsiblePrimitive","import_lucide_react","import_jsx_runtime","DialogPrimitive","import_lucide_react","import_jsx_runtime","MenuPrimitive","import_jsx_runtime","InputPrimitive","import_jsx_runtime","ProgressPrimitive","import_jsx_runtime","SeparatorPrimitive","import_dialog","import_lucide_react","import_jsx_runtime","SheetPrimitive","React","import_merge_props","import_use_render","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","TooltipPrimitive","import_lucide_react","import_jsx_runtime","open","import_lucide_react","import_jsx_runtime","Sonner","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","TabsPrimitive","import_class_variance_authority","import_jsx_runtime","TogglePrimitive","React","import_toggle","import_jsx_runtime","ToggleGroupPrimitive","TogglePrimitive","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_progress","import_jsx_runtime","ProgressPrimitive","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Toaster"]}
|