@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.
Files changed (95) hide show
  1. package/PRODUCTION_ARCHITECTURE.md +511 -0
  2. package/README.md +379 -0
  3. package/SAVE_FUNCTIONALITY_COMPLETE.md +448 -0
  4. package/dist/cjs/EditableContent.js +150 -0
  5. package/dist/cjs/HtmlViewer.js +587 -0
  6. package/dist/cjs/PdfComponents.js +16 -0
  7. package/dist/cjs/PdfDocumentViewer.js +281 -0
  8. package/dist/cjs/Structura.js +806 -0
  9. package/dist/cjs/Table.js +164 -0
  10. package/dist/cjs/TableCell.js +115 -0
  11. package/dist/cjs/accuracyMetrics.js +39 -0
  12. package/dist/cjs/helpers/preprocessData.js +143 -0
  13. package/dist/cjs/index.js +7 -0
  14. package/dist/cjs/lib/polyfills.js +15 -0
  15. package/dist/cjs/lib/utils.js +10 -0
  16. package/dist/cjs/node_modules/react-icons/fa/index.esm.js +14 -0
  17. package/dist/cjs/node_modules/react-icons/lib/esm/iconBase.js +69 -0
  18. package/dist/cjs/node_modules/react-icons/lib/esm/iconContext.js +15 -0
  19. package/dist/cjs/polyfills.js +19 -0
  20. package/dist/cjs/route.js +102 -0
  21. package/dist/cjs/styles.css +7 -0
  22. package/dist/cjs/styles.css.map +1 -0
  23. package/dist/cjs/ui/badge.js +34 -0
  24. package/dist/cjs/ui/button.js +71 -0
  25. package/dist/cjs/ui/card.js +86 -0
  26. package/dist/cjs/ui/progress.js +45 -0
  27. package/dist/cjs/ui/scroll-area.js +62 -0
  28. package/dist/cjs/ui/tabs.js +60 -0
  29. package/dist/cjs/worker.js +36 -0
  30. package/dist/esm/EditableContent.js +161 -0
  31. package/dist/esm/HtmlViewer.js +640 -0
  32. package/dist/esm/PdfComponents.js +21 -0
  33. package/dist/esm/PdfDocumentViewer.js +294 -0
  34. package/dist/esm/Structura.js +951 -0
  35. package/dist/esm/Table.js +182 -0
  36. package/dist/esm/TableCell.js +122 -0
  37. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +305 -0
  38. package/dist/esm/accuracyMetrics.js +41 -0
  39. package/dist/esm/helpers/preprocessData.js +152 -0
  40. package/dist/esm/index.js +1 -0
  41. package/dist/esm/lib/polyfills.js +13 -0
  42. package/dist/esm/lib/utils.js +8 -0
  43. package/dist/esm/node_modules/react-icons/fa/index.esm.js +11 -0
  44. package/dist/esm/node_modules/react-icons/lib/esm/iconBase.js +66 -0
  45. package/dist/esm/node_modules/react-icons/lib/esm/iconContext.js +12 -0
  46. package/dist/esm/polyfills.js +17 -0
  47. package/dist/esm/route.js +154 -0
  48. package/dist/esm/styles.css +7 -0
  49. package/dist/esm/styles.css.map +1 -0
  50. package/dist/esm/types/EditableContent.d.ts +9 -0
  51. package/dist/esm/types/HtmlViewer.d.ts +10 -0
  52. package/dist/esm/types/PdfComponents.d.ts +35 -0
  53. package/dist/esm/types/PdfDocumentViewer.d.ts +22 -0
  54. package/dist/esm/types/Structura.d.ts +11 -0
  55. package/dist/esm/types/Table.d.ts +12 -0
  56. package/dist/esm/types/TableCell.d.ts +13 -0
  57. package/dist/esm/types/accuracy.d.ts +23 -0
  58. package/dist/esm/types/accuracyMetrics.d.ts +5 -0
  59. package/dist/esm/types/helpers/flattenJSON.d.ts +1 -0
  60. package/dist/esm/types/helpers/hardMerging.d.ts +2 -0
  61. package/dist/esm/types/helpers/index.d.ts +6 -0
  62. package/dist/esm/types/helpers/jsonToHtml.d.ts +40 -0
  63. package/dist/esm/types/helpers/preprocessData.d.ts +3 -0
  64. package/dist/esm/types/helpers/removeMetadata.d.ts +1 -0
  65. package/dist/esm/types/helpers/tableProcessor.d.ts +1 -0
  66. package/dist/esm/types/index.d.ts +3 -0
  67. package/dist/esm/types/lib/polyfills.d.ts +1 -0
  68. package/dist/esm/types/lib/utils.d.ts +2 -0
  69. package/dist/esm/types/polyfills.d.ts +1 -0
  70. package/dist/esm/types/route.d.ts +45 -0
  71. package/dist/esm/types/test-app/src/App.d.ts +4 -0
  72. package/dist/esm/types/test-app/src/main.d.ts +1 -0
  73. package/dist/esm/types/test-app/vite.config.d.ts +2 -0
  74. package/dist/esm/types/types.d.ts +23 -0
  75. package/dist/esm/types/ui/alert.d.ts +8 -0
  76. package/dist/esm/types/ui/badge.d.ts +9 -0
  77. package/dist/esm/types/ui/button.d.ts +11 -0
  78. package/dist/esm/types/ui/card.d.ts +8 -0
  79. package/dist/esm/types/ui/progress.d.ts +6 -0
  80. package/dist/esm/types/ui/scroll-area.d.ts +5 -0
  81. package/dist/esm/types/ui/skeleton.d.ts +2 -0
  82. package/dist/esm/types/ui/tabs.d.ts +7 -0
  83. package/dist/esm/types/worker.d.ts +1 -0
  84. package/dist/esm/ui/badge.js +31 -0
  85. package/dist/esm/ui/button.js +50 -0
  86. package/dist/esm/ui/card.js +67 -0
  87. package/dist/esm/ui/progress.js +26 -0
  88. package/dist/esm/ui/scroll-area.js +45 -0
  89. package/dist/esm/ui/tabs.js +39 -0
  90. package/dist/esm/worker.js +50 -0
  91. package/dist/index.d.ts +38 -0
  92. package/package.json +85 -0
  93. package/server/README.md +203 -0
  94. package/server/db.js +142 -0
  95. 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
+ }