@tfw.in/structura-lib 0.2.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/PRODUCTION_ARCHITECTURE.md +511 -0
- package/README.md +379 -0
- package/SAVE_FUNCTIONALITY_COMPLETE.md +448 -0
- package/dist/cjs/EditableContent.js +150 -0
- package/dist/cjs/HtmlViewer.js +587 -0
- package/dist/cjs/PdfComponents.js +16 -0
- package/dist/cjs/PdfDocumentViewer.js +281 -0
- package/dist/cjs/Structura.js +806 -0
- package/dist/cjs/Table.js +164 -0
- package/dist/cjs/TableCell.js +115 -0
- package/dist/cjs/accuracyMetrics.js +39 -0
- package/dist/cjs/helpers/preprocessData.js +143 -0
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/lib/polyfills.js +15 -0
- package/dist/cjs/lib/utils.js +10 -0
- package/dist/cjs/node_modules/react-icons/fa/index.esm.js +14 -0
- package/dist/cjs/node_modules/react-icons/lib/esm/iconBase.js +69 -0
- package/dist/cjs/node_modules/react-icons/lib/esm/iconContext.js +15 -0
- package/dist/cjs/polyfills.js +19 -0
- package/dist/cjs/route.js +102 -0
- package/dist/cjs/styles.css +7 -0
- package/dist/cjs/styles.css.map +1 -0
- package/dist/cjs/ui/badge.js +34 -0
- package/dist/cjs/ui/button.js +71 -0
- package/dist/cjs/ui/card.js +86 -0
- package/dist/cjs/ui/progress.js +45 -0
- package/dist/cjs/ui/scroll-area.js +62 -0
- package/dist/cjs/ui/tabs.js +60 -0
- package/dist/cjs/worker.js +36 -0
- package/dist/esm/EditableContent.js +161 -0
- package/dist/esm/HtmlViewer.js +640 -0
- package/dist/esm/PdfComponents.js +21 -0
- package/dist/esm/PdfDocumentViewer.js +294 -0
- package/dist/esm/Structura.js +951 -0
- package/dist/esm/Table.js +182 -0
- package/dist/esm/TableCell.js +122 -0
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +305 -0
- package/dist/esm/accuracyMetrics.js +41 -0
- package/dist/esm/helpers/preprocessData.js +152 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/lib/polyfills.js +13 -0
- package/dist/esm/lib/utils.js +8 -0
- package/dist/esm/node_modules/react-icons/fa/index.esm.js +11 -0
- package/dist/esm/node_modules/react-icons/lib/esm/iconBase.js +66 -0
- package/dist/esm/node_modules/react-icons/lib/esm/iconContext.js +12 -0
- package/dist/esm/polyfills.js +17 -0
- package/dist/esm/route.js +154 -0
- package/dist/esm/styles.css +7 -0
- package/dist/esm/styles.css.map +1 -0
- package/dist/esm/types/EditableContent.d.ts +9 -0
- package/dist/esm/types/HtmlViewer.d.ts +10 -0
- package/dist/esm/types/PdfComponents.d.ts +35 -0
- package/dist/esm/types/PdfDocumentViewer.d.ts +22 -0
- package/dist/esm/types/Structura.d.ts +11 -0
- package/dist/esm/types/Table.d.ts +12 -0
- package/dist/esm/types/TableCell.d.ts +13 -0
- package/dist/esm/types/accuracy.d.ts +23 -0
- package/dist/esm/types/accuracyMetrics.d.ts +5 -0
- package/dist/esm/types/helpers/flattenJSON.d.ts +1 -0
- package/dist/esm/types/helpers/hardMerging.d.ts +2 -0
- package/dist/esm/types/helpers/index.d.ts +6 -0
- package/dist/esm/types/helpers/jsonToHtml.d.ts +40 -0
- package/dist/esm/types/helpers/preprocessData.d.ts +3 -0
- package/dist/esm/types/helpers/removeMetadata.d.ts +1 -0
- package/dist/esm/types/helpers/tableProcessor.d.ts +1 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/lib/polyfills.d.ts +1 -0
- package/dist/esm/types/lib/utils.d.ts +2 -0
- package/dist/esm/types/polyfills.d.ts +1 -0
- package/dist/esm/types/route.d.ts +45 -0
- package/dist/esm/types/test-app/src/App.d.ts +4 -0
- package/dist/esm/types/test-app/src/main.d.ts +1 -0
- package/dist/esm/types/test-app/vite.config.d.ts +2 -0
- package/dist/esm/types/types.d.ts +23 -0
- package/dist/esm/types/ui/alert.d.ts +8 -0
- package/dist/esm/types/ui/badge.d.ts +9 -0
- package/dist/esm/types/ui/button.d.ts +11 -0
- package/dist/esm/types/ui/card.d.ts +8 -0
- package/dist/esm/types/ui/progress.d.ts +6 -0
- package/dist/esm/types/ui/scroll-area.d.ts +5 -0
- package/dist/esm/types/ui/skeleton.d.ts +2 -0
- package/dist/esm/types/ui/tabs.d.ts +7 -0
- package/dist/esm/types/worker.d.ts +1 -0
- package/dist/esm/ui/badge.js +31 -0
- package/dist/esm/ui/button.js +50 -0
- package/dist/esm/ui/card.js +67 -0
- package/dist/esm/ui/progress.js +26 -0
- package/dist/esm/ui/scroll-area.js +45 -0
- package/dist/esm/ui/tabs.js +39 -0
- package/dist/esm/worker.js +50 -0
- package/dist/index.d.ts +38 -0
- package/package.json +85 -0
- package/server/README.md +203 -0
- package/server/db.js +142 -0
- package/server/server.js +165 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
async function POST(request, config) {
|
|
4
|
+
try {
|
|
5
|
+
const baseUrl = config.baseUrl || 'https://structura.theflywheel.in';
|
|
6
|
+
const apiKey = config.apiKey;
|
|
7
|
+
// Ensure required configuration is set
|
|
8
|
+
if (!apiKey) {
|
|
9
|
+
console.error("Missing required API key");
|
|
10
|
+
return {
|
|
11
|
+
error: "Missing API key",
|
|
12
|
+
status: 401
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// Forward to backend
|
|
16
|
+
try {
|
|
17
|
+
// console.log(`Connecting to backend at ${baseUrl}/api/v2/convert`);
|
|
18
|
+
const response = await fetch(`${baseUrl}/api/v2/convert`, {
|
|
19
|
+
method: "POST",
|
|
20
|
+
headers: {
|
|
21
|
+
"X-Api-Key": apiKey
|
|
22
|
+
},
|
|
23
|
+
body: request
|
|
24
|
+
});
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
const errorText = await response.text().catch(() => "Could not read error response");
|
|
27
|
+
console.error(`Backend returned error: Status ${response.status}, Message: ${errorText}`);
|
|
28
|
+
return {
|
|
29
|
+
error: `Backend error: ${response.status} ${response.statusText}`,
|
|
30
|
+
details: errorText,
|
|
31
|
+
status: response.status
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const data = await response.json();
|
|
35
|
+
// console.log("!!! Data received.");
|
|
36
|
+
return {
|
|
37
|
+
data,
|
|
38
|
+
status: 200
|
|
39
|
+
};
|
|
40
|
+
} catch (fetchError) {
|
|
41
|
+
console.error("Connection error to backend:", fetchError);
|
|
42
|
+
return {
|
|
43
|
+
error: "Failed to connect to backend service",
|
|
44
|
+
details: `Could not connect to ${baseUrl}. Make sure the backend server is running.`,
|
|
45
|
+
message: fetchError instanceof Error ? fetchError.message : String(fetchError),
|
|
46
|
+
status: 503
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
} catch (error) {
|
|
50
|
+
console.error("Error in generate API:", error);
|
|
51
|
+
return {
|
|
52
|
+
error: "Internal server error",
|
|
53
|
+
message: error instanceof Error ? error.message : String(error),
|
|
54
|
+
status: 500
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function GET(taskId, config) {
|
|
59
|
+
try {
|
|
60
|
+
const baseUrl = config.baseUrl || 'https://structura.theflywheel.in';
|
|
61
|
+
const apiKey = config.apiKey;
|
|
62
|
+
if (!apiKey) {
|
|
63
|
+
console.error("Missing required API key");
|
|
64
|
+
return {
|
|
65
|
+
error: "Missing API key",
|
|
66
|
+
status: 401
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Forward GET request to backend
|
|
70
|
+
// console.log("Getting conversion result for taskId", taskId);
|
|
71
|
+
const backendUrl = `${baseUrl}/api/v2/convert/${taskId}`;
|
|
72
|
+
const response = await fetch(backendUrl, {
|
|
73
|
+
method: "GET",
|
|
74
|
+
headers: {
|
|
75
|
+
"X-Api-Key": apiKey,
|
|
76
|
+
Accept: "application/json"
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
if (!response.ok) {
|
|
80
|
+
return {
|
|
81
|
+
error: "Failed to get conversion result",
|
|
82
|
+
status: response.status
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// console.log("!!! TaskId : ", taskId, "Response received.");
|
|
86
|
+
const data = await response.json();
|
|
87
|
+
// console.log("!!! Data : ", data)
|
|
88
|
+
return {
|
|
89
|
+
data,
|
|
90
|
+
status: 200
|
|
91
|
+
};
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error("Error in generate API GET:", error);
|
|
94
|
+
return {
|
|
95
|
+
error: "Internal server error",
|
|
96
|
+
status: 500
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
exports.GET = GET;
|
|
102
|
+
exports.POST = POST;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;700;800;900&display=swap");@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700;800&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
|
|
6
|
+
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}*{border-color:hsl(var(--border))}body,html{height:100%;overflow-y:auto;body{background-color:hsl(var(--background));color:hsl(var(--foreground))}}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:222.2 47.4% 11.2%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:222.2 84% 4.9%;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--radius:0.5rem}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--primary:210 40% 98%;--primary-foreground:222.2 47.4% 11.2%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:212.7 26.8% 83.9%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.float-right{float:right}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem}.mb-1,.my-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.ms-3{margin-inline-start:.75rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.\!block{display:block!important}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[calc\(100\%-56px\)\]{height:calc(100% - 56px)}.h-\[calc\(100vh-220px\)\]{height:calc(100vh - 220px)}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[80vh\]{max-height:80vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-full{min-height:100%}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.scale-110,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[hsl\(var\(--border\)\)\]{border-color:hsl(var(--border))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-border{border-color:hsl(var(--border))}.border-destructive\/50{border-color:hsl(var(--destructive)/.5)}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/50{border-color:hsl(var(--muted-foreground)/.5)}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[hsl\(var\(--background\)\)\],.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted)/.3)}.bg-muted\/40{background-color:hsl(var(--muted)/.4)}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-primary\/5{background-color:hsl(var(--primary)/.05)}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pl-4{padding-left:1rem}.pt-0{padding-top:0}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-\[hsl\(var\(--foreground\)\)\]{color:hsl(var(--foreground))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.running{animation-play-state:running}@reference "tailwindcss";.font-figtree{font-family:Figtree,sans-serif}h1{font-size:1.875rem;font-weight:700;line-height:2.25rem;margin-bottom:1rem}.font-nunito{font-family:Nunito,sans-serif}h2{font-size:1.5rem;font-weight:700;line-height:2rem;margin-bottom:.75rem}h3{font-size:1.25rem}h3,h4{font-weight:700;line-height:1.75rem;margin-bottom:.5rem}h4{font-size:1.125rem}ul{list-style-type:disc}ol,ul{margin-bottom:1rem;margin-left:1.5rem}ol{list-style-type:decimal}p{margin-bottom:1rem}strong{font-weight:700}em{font-style:italic}table,td,th{border:1px solid #000;padding:10px}table,td,th{border-collapse:collapse}table{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-radius:var(--radius);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin-bottom:1.5rem;overflow:hidden;width:100%}th{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1));border-bottom-width:2px;border-color:rgb(191 219 254/var(--tw-border-opacity,1));color:rgb(31 41 55/var(--tw-text-opacity,1));font-size:1rem;font-weight:700;letter-spacing:.05em;line-height:1.5rem;text-align:left}td,th{padding:1rem 1.5rem}td{--tw-border-opacity:1;--tw-text-opacity:1;border-bottom-width:1px;border-color:rgb(229 231 235/var(--tw-border-opacity,1));color:rgb(55 65 81/var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;vertical-align:middle}tr{animation-duration:.2s;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}tr:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}td:first-child,th:first-child{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));border-right-width:1px;font-weight:600}tr:last-child td{border-bottom-width:0}td.numeric{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;text-align:right}td.completed,td.done{color:rgb(22 163 74/var(--tw-text-opacity,1))}td.completed,td.done,td.pending{--tw-text-opacity:1;font-weight:500}td.pending{color:rgb(202 138 4/var(--tw-text-opacity,1))}caption{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));color:rgb(55 65 81/var(--tw-text-opacity,1));font-size:1.125rem;font-weight:600;line-height:1.75rem;padding:1rem}@media (max-width:640px){table{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-radius:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}td,th{padding:.75rem 1rem}}.table-wrapper{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));border-radius:var(--radius);border-width:1px}th.sortable{cursor:pointer}th.sortable:hover{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}tr.selected{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}del{background-color:#fbb;color:#555;text-decoration:line-through}.pdf-container{height:100%;position:relative;width:100%}.react-pdf__Page__annotations,.react-pdf__Page__textContent{display:none!important}.react-pdf__Page__textContent.textLayer{opacity:0!important;pointer-events:none!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:start-\[2px\]:after{content:var(--tw-content);inset-inline-start:2px}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:h-5:after{content:var(--tw-content);height:1.25rem}.after\:w-5:after{content:var(--tw-content);width:1.25rem}.after\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\:border:after{border-width:1px;content:var(--tw-content)}.after\:border-gray-300:after{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));content:var(--tw-content)}.after\:bg-white:after{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));content:var(--tw-content)}.after\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary)/.2)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\:after\:translate-x-full:after{--tw-translate-x:100%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.peer:checked~.peer-checked\:after\:border-white:after{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1));content:var(--tw-content)}.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.peer:focus~.peer-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus~.peer-focus\:ring-blue-300{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}}.peer:checked~.rtl\:peer-checked\:after\:-translate-x-full:where([dir=rtl],[dir=rtl] *):after{--tw-translate-x:-100%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{height:1rem;width:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
|
|
7
|
+
/*# sourceMappingURL=styles.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["styles.css"],"names":[],"mappings":"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","file":"styles.css","sourcesContent":["@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;700;800;900&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700;800&display=swap');\n\n\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@reference \"tailwindcss\";\n\n@layer base {\n * {\n @apply border-[hsl(var(--border))];\n }\n html {\n @apply h-full overflow-y-auto;\n }\n body {\n @apply h-full overflow-y-auto; /* Allow body to scroll if content overflows */\n body {\n @apply bg-[hsl(var(--background))] text-[hsl(var(--foreground))];\n }\n }\n}\n\n\n.font-figtree {\n font-family: 'Figtree', sans-serif;\n}\n\nh1 {\n @apply text-3xl font-bold mb-4;\n}\n\n\n.font-nunito {\n font-family: 'Nunito', sans-serif;\n}\n\nh2 {\n @apply text-2xl font-bold mb-3;\n}\n\nh3 {\n @apply text-xl font-bold mb-2;\n}\n\nh4 {\n @apply text-lg font-bold mb-2;\n}\n\nul {\n @apply list-disc ml-6 mb-4;\n}\n\nol {\n @apply list-decimal ml-6 mb-4;\n}\n\np {\n @apply mb-4;\n}\n\nstrong {\n @apply font-bold;\n}\n\nem {\n @apply italic;\n}\n\ntable,\nth,\ntd {\n\tborder: 1px solid black;\n\tborder-collapse: collapse;\n padding: 10px;\n}\n\n/* Enhanced Table Styles */\ntable {\n @apply w-full border-collapse bg-white shadow-lg rounded-lg overflow-hidden mb-6;\n}\n\n/* Header cells */\nth {\n @apply bg-blue-50\n px-6 py-4 \n text-left font-bold tracking-wider text-base\n border-b-2 border-blue-200\n text-gray-800;\n}\n\n/* Regular cells */\ntd {\n @apply px-6 py-4 \n text-gray-700 text-sm\n border-b border-gray-200\n align-middle;\n}\n\n/* Row styling */\ntr {\n @apply transition-colors duration-200;\n}\n\n/* Zebra striping with subtle colors */\ntr:nth-child(even) {\n @apply bg-blue-50;\n}\n\n/* Hover effect on rows */\ntr:hover {\n @apply bg-blue-100;\n}\n\n/* First column emphasis */\ntd:first-child,\nth:first-child {\n @apply font-semibold border-r border-gray-200;\n}\n\n/* Last row styling */\ntr:last-child td {\n @apply border-b-0;\n}\n\n/* Specific cell types */\ntd.numeric {\n @apply text-right font-mono text-gray-800;\n}\n\n/* Status-like cells */\ntd.completed,\ntd.done {\n @apply text-green-600 font-medium;\n}\n\ntd.pending {\n @apply text-yellow-600 font-medium;\n}\n\n/* Table caption if present */\ncaption {\n @apply text-lg font-semibold text-gray-700 p-4 bg-gray-50;\n}\n\n/* Responsive design */\n@media (max-width: 640px) {\n table {\n @apply rounded-none shadow-none;\n }\n \n th, td {\n @apply px-4 py-3;\n }\n}\n\n/* Optional: Add a subtle border around the entire table */\n.table-wrapper {\n @apply border border-gray-200 rounded-lg;\n}\n\n/* Optional: Style for sortable headers */\nth.sortable {\n @apply cursor-pointer hover:bg-blue-800;\n}\n\n/* Optional: Style for selected rows */\ntr.selected {\n @apply bg-blue-200;\n}\n\ndel {\n text-decoration: line-through;\n background-color: #fbb;\n color: #555;\n}\n\n/* PDF Viewer Styles */\n.pdf-container {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.react-pdf__Page__textContent {\n display: none !important;\n}\n\n.react-pdf__Page__annotations {\n display: none !important;\n}\n\n/* Alternative method using opacity */\n.react-pdf__Page__textContent.textLayer {\n opacity: 0 !important;\n pointer-events: none !important;\n user-select: none !important;\n}\n\n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 222.2 84% 4.9%;\n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n --muted: 210 40% 96.1%;\n --muted-foreground: 215.4 16.3% 46.9%;\n --accent: 210 40% 96.1%;\n --accent-foreground: 222.2 47.4% 11.2%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n --ring: 222.2 84% 4.9%;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n --radius: 0.5rem;\n }\n .dark {\n --background: 222.2 84% 4.9%;\n --foreground: 210 40% 98%;\n --card: 222.2 84% 4.9%;\n --card-foreground: 210 40% 98%;\n --popover: 222.2 84% 4.9%;\n --popover-foreground: 210 40% 98%;\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 11.2%;\n --secondary: 217.2 32.6% 17.5%;\n --secondary-foreground: 210 40% 98%;\n --muted: 217.2 32.6% 17.5%;\n --muted-foreground: 215 20.2% 65.1%;\n --accent: 217.2 32.6% 17.5%;\n --accent-foreground: 210 40% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 40% 98%;\n --border: 217.2 32.6% 17.5%;\n --input: 217.2 32.6% 17.5%;\n --ring: 212.7 26.8% 83.9%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
5
|
+
var utils = require('../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
const badgeVariants = classVarianceAuthority.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", {
|
|
8
|
+
variants: {
|
|
9
|
+
variant: {
|
|
10
|
+
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
|
|
11
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
12
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
13
|
+
outline: "text-foreground"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
variant: "default"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
function Badge({
|
|
21
|
+
className,
|
|
22
|
+
variant,
|
|
23
|
+
...props
|
|
24
|
+
}) {
|
|
25
|
+
return jsxRuntime.jsx("div", {
|
|
26
|
+
className: utils.cn(badgeVariants({
|
|
27
|
+
variant
|
|
28
|
+
}), className),
|
|
29
|
+
...props
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
exports.Badge = Badge;
|
|
34
|
+
exports.badgeVariants = badgeVariants;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
6
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
7
|
+
var utils = require('../lib/utils.js');
|
|
8
|
+
|
|
9
|
+
function _interopNamespaceDefault(e) {
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
27
|
+
|
|
28
|
+
const buttonVariants = classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {
|
|
29
|
+
variants: {
|
|
30
|
+
variant: {
|
|
31
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
32
|
+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
33
|
+
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
34
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
35
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
36
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
37
|
+
},
|
|
38
|
+
size: {
|
|
39
|
+
default: "h-10 px-4 py-2",
|
|
40
|
+
sm: "h-9 rounded-md px-3",
|
|
41
|
+
lg: "h-11 rounded-md px-8",
|
|
42
|
+
icon: "h-10 w-10"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
defaultVariants: {
|
|
46
|
+
variant: "default",
|
|
47
|
+
size: "default"
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const Button = /*#__PURE__*/React__namespace.forwardRef(({
|
|
51
|
+
className,
|
|
52
|
+
variant,
|
|
53
|
+
size,
|
|
54
|
+
asChild = false,
|
|
55
|
+
...props
|
|
56
|
+
}, ref) => {
|
|
57
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
58
|
+
return jsxRuntime.jsx(Comp, {
|
|
59
|
+
className: utils.cn(buttonVariants({
|
|
60
|
+
variant,
|
|
61
|
+
size,
|
|
62
|
+
className
|
|
63
|
+
})),
|
|
64
|
+
ref: ref,
|
|
65
|
+
...props
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
Button.displayName = "Button";
|
|
69
|
+
|
|
70
|
+
exports.Button = Button;
|
|
71
|
+
exports.buttonVariants = buttonVariants;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../lib/utils.js');
|
|
6
|
+
|
|
7
|
+
function _interopNamespaceDefault(e) {
|
|
8
|
+
var n = Object.create(null);
|
|
9
|
+
if (e) {
|
|
10
|
+
Object.keys(e).forEach(function (k) {
|
|
11
|
+
if (k !== 'default') {
|
|
12
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
13
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return e[k]; }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
n.default = e;
|
|
21
|
+
return Object.freeze(n);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
25
|
+
|
|
26
|
+
const Card = /*#__PURE__*/React__namespace.forwardRef(({
|
|
27
|
+
className,
|
|
28
|
+
...props
|
|
29
|
+
}, ref) => jsxRuntime.jsx("div", {
|
|
30
|
+
ref: ref,
|
|
31
|
+
className: utils.cn("rounded-lg border bg-card text-card-foreground shadow-sm", className),
|
|
32
|
+
...props
|
|
33
|
+
}));
|
|
34
|
+
Card.displayName = "Card";
|
|
35
|
+
const CardHeader = /*#__PURE__*/React__namespace.forwardRef(({
|
|
36
|
+
className,
|
|
37
|
+
...props
|
|
38
|
+
}, ref) => jsxRuntime.jsx("div", {
|
|
39
|
+
ref: ref,
|
|
40
|
+
className: utils.cn("flex flex-col space-y-1.5 p-6", className),
|
|
41
|
+
...props
|
|
42
|
+
}));
|
|
43
|
+
CardHeader.displayName = "CardHeader";
|
|
44
|
+
const CardTitle = /*#__PURE__*/React__namespace.forwardRef(({
|
|
45
|
+
className,
|
|
46
|
+
...props
|
|
47
|
+
}, ref) => jsxRuntime.jsx("h3", {
|
|
48
|
+
ref: ref,
|
|
49
|
+
className: utils.cn("text-2xl font-semibold leading-none tracking-tight", className),
|
|
50
|
+
...props
|
|
51
|
+
}));
|
|
52
|
+
CardTitle.displayName = "CardTitle";
|
|
53
|
+
const CardDescription = /*#__PURE__*/React__namespace.forwardRef(({
|
|
54
|
+
className,
|
|
55
|
+
...props
|
|
56
|
+
}, ref) => jsxRuntime.jsx("p", {
|
|
57
|
+
ref: ref,
|
|
58
|
+
className: utils.cn("text-sm text-muted-foreground", className),
|
|
59
|
+
...props
|
|
60
|
+
}));
|
|
61
|
+
CardDescription.displayName = "CardDescription";
|
|
62
|
+
const CardContent = /*#__PURE__*/React__namespace.forwardRef(({
|
|
63
|
+
className,
|
|
64
|
+
...props
|
|
65
|
+
}, ref) => jsxRuntime.jsx("div", {
|
|
66
|
+
ref: ref,
|
|
67
|
+
className: utils.cn("p-6 pt-0", className),
|
|
68
|
+
...props
|
|
69
|
+
}));
|
|
70
|
+
CardContent.displayName = "CardContent";
|
|
71
|
+
const CardFooter = /*#__PURE__*/React__namespace.forwardRef(({
|
|
72
|
+
className,
|
|
73
|
+
...props
|
|
74
|
+
}, ref) => jsxRuntime.jsx("div", {
|
|
75
|
+
ref: ref,
|
|
76
|
+
className: utils.cn("flex items-center p-6 pt-0", className),
|
|
77
|
+
...props
|
|
78
|
+
}));
|
|
79
|
+
CardFooter.displayName = "CardFooter";
|
|
80
|
+
|
|
81
|
+
exports.Card = Card;
|
|
82
|
+
exports.CardContent = CardContent;
|
|
83
|
+
exports.CardDescription = CardDescription;
|
|
84
|
+
exports.CardFooter = CardFooter;
|
|
85
|
+
exports.CardHeader = CardHeader;
|
|
86
|
+
exports.CardTitle = CardTitle;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var ProgressPrimitive = require('@radix-ui/react-progress');
|
|
6
|
+
var utils = require('../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
26
|
+
var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(ProgressPrimitive);
|
|
27
|
+
|
|
28
|
+
const Progress = /*#__PURE__*/React__namespace.forwardRef(({
|
|
29
|
+
className,
|
|
30
|
+
value,
|
|
31
|
+
...props
|
|
32
|
+
}, ref) => jsxRuntime.jsx(ProgressPrimitive__namespace.Root, {
|
|
33
|
+
ref: ref,
|
|
34
|
+
className: utils.cn("relative h-4 w-full overflow-hidden rounded-full bg-secondary", className),
|
|
35
|
+
...props,
|
|
36
|
+
children: jsxRuntime.jsx(ProgressPrimitive__namespace.Indicator, {
|
|
37
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
38
|
+
style: {
|
|
39
|
+
transform: `translateX(-${100 - (value || 0)}%)`
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
}));
|
|
43
|
+
Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
|
|
44
|
+
|
|
45
|
+
exports.Progress = Progress;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
|
|
6
|
+
var utils = require('../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
26
|
+
var ScrollAreaPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(ScrollAreaPrimitive);
|
|
27
|
+
|
|
28
|
+
const ScrollArea = /*#__PURE__*/React__namespace.forwardRef(({
|
|
29
|
+
className,
|
|
30
|
+
children,
|
|
31
|
+
...props
|
|
32
|
+
}, ref) => jsxRuntime.jsxs(ScrollAreaPrimitive__namespace.Root, {
|
|
33
|
+
ref: ref,
|
|
34
|
+
className: utils.cn("relative overflow-auto", className),
|
|
35
|
+
...props,
|
|
36
|
+
children: [jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Viewport, {
|
|
37
|
+
className: "h-full w-full rounded-[inherit]",
|
|
38
|
+
children: children
|
|
39
|
+
}), jsxRuntime.jsx(ScrollBar, {
|
|
40
|
+
orientation: "vertical"
|
|
41
|
+
}), jsxRuntime.jsx(ScrollBar, {
|
|
42
|
+
orientation: "horizontal"
|
|
43
|
+
}), jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})]
|
|
44
|
+
}));
|
|
45
|
+
ScrollArea.displayName = ScrollAreaPrimitive__namespace.Root.displayName;
|
|
46
|
+
const ScrollBar = /*#__PURE__*/React__namespace.forwardRef(({
|
|
47
|
+
className,
|
|
48
|
+
orientation = "vertical",
|
|
49
|
+
...props
|
|
50
|
+
}, ref) => jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaScrollbar, {
|
|
51
|
+
ref: ref,
|
|
52
|
+
orientation: orientation,
|
|
53
|
+
className: utils.cn("flex touch-none select-none transition-colors", orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]", orientation === "horizontal" && "h-2.5 border-t border-t-transparent p-[1px]", className),
|
|
54
|
+
...props,
|
|
55
|
+
children: jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, {
|
|
56
|
+
className: utils.cn("relative rounded-full bg-border", orientation === "vertical" ? "flex-1" : "h-full")
|
|
57
|
+
})
|
|
58
|
+
}));
|
|
59
|
+
ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displayName;
|
|
60
|
+
|
|
61
|
+
exports.ScrollArea = ScrollArea;
|
|
62
|
+
exports.ScrollBar = ScrollBar;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
6
|
+
var utils = require('../lib/utils.js');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
26
|
+
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TabsPrimitive);
|
|
27
|
+
|
|
28
|
+
const Tabs = TabsPrimitive__namespace.Root;
|
|
29
|
+
const TabsList = /*#__PURE__*/React__namespace.forwardRef(({
|
|
30
|
+
className,
|
|
31
|
+
...props
|
|
32
|
+
}, ref) => jsxRuntime.jsx(TabsPrimitive__namespace.List, {
|
|
33
|
+
ref: ref,
|
|
34
|
+
className: utils.cn("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", className),
|
|
35
|
+
...props
|
|
36
|
+
}));
|
|
37
|
+
TabsList.displayName = TabsPrimitive__namespace.List.displayName;
|
|
38
|
+
const TabsTrigger = /*#__PURE__*/React__namespace.forwardRef(({
|
|
39
|
+
className,
|
|
40
|
+
...props
|
|
41
|
+
}, ref) => jsxRuntime.jsx(TabsPrimitive__namespace.Trigger, {
|
|
42
|
+
ref: ref,
|
|
43
|
+
className: utils.cn("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm", className),
|
|
44
|
+
...props
|
|
45
|
+
}));
|
|
46
|
+
TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
|
|
47
|
+
const TabsContent = /*#__PURE__*/React__namespace.forwardRef(({
|
|
48
|
+
className,
|
|
49
|
+
...props
|
|
50
|
+
}, ref) => jsxRuntime.jsx(TabsPrimitive__namespace.Content, {
|
|
51
|
+
ref: ref,
|
|
52
|
+
className: utils.cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className),
|
|
53
|
+
...props
|
|
54
|
+
}));
|
|
55
|
+
TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
|
|
56
|
+
|
|
57
|
+
exports.Tabs = Tabs;
|
|
58
|
+
exports.TabsContent = TabsContent;
|
|
59
|
+
exports.TabsList = TabsList;
|
|
60
|
+
exports.TabsTrigger = TabsTrigger;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var reactPdf = require('react-pdf');
|
|
4
|
+
|
|
5
|
+
// Initialize worker automatically
|
|
6
|
+
if (typeof window !== 'undefined') {
|
|
7
|
+
try {
|
|
8
|
+
// Try to load from CDN first
|
|
9
|
+
const workerSrc = `https://unpkg.com/pdfjs-dist@${reactPdf.pdfjs.version}/build/pdf.worker.min.mjs`;
|
|
10
|
+
// Create a function to test if the worker URL is accessible
|
|
11
|
+
const testWorkerUrl = async url => {
|
|
12
|
+
try {
|
|
13
|
+
const response = await fetch(url, {
|
|
14
|
+
method: 'HEAD'
|
|
15
|
+
});
|
|
16
|
+
return response.ok;
|
|
17
|
+
} catch (_a) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
// Test and set worker source
|
|
22
|
+
testWorkerUrl(workerSrc).then(isAccessible => {
|
|
23
|
+
if (isAccessible) {
|
|
24
|
+
reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = workerSrc;
|
|
25
|
+
} else {
|
|
26
|
+
// Fallback to relative path that clients can configure
|
|
27
|
+
reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = '/pdf.worker.min.mjs';
|
|
28
|
+
}
|
|
29
|
+
}).catch(() => {
|
|
30
|
+
// If testing fails, default to relative path
|
|
31
|
+
reactPdf.pdfjs.GlobalWorkerOptions.workerSrc = '/pdf.worker.min.mjs';
|
|
32
|
+
});
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.error('Failed to initialize PDF worker:', error);
|
|
35
|
+
}
|
|
36
|
+
}
|