@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,152 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
|
|
3
|
+
// Helper function to sort table cells by page number and bounding box coordinates
|
|
4
|
+
function sortTableCells(tableCells) {
|
|
5
|
+
// console.log("Table cells to sort:", tableCells);
|
|
6
|
+
// Helper function to extract page number and block number from ID (e.g., '/page/2/TableCell/10')
|
|
7
|
+
var getPageAndBlockNumber = function getPageAndBlockNumber(id) {
|
|
8
|
+
var match = id.match(/^\/page\/(\d+)\/TableCell\/(\d+)$/);
|
|
9
|
+
if (match) {
|
|
10
|
+
return [parseInt(match[1]), parseInt(match[2])];
|
|
11
|
+
}
|
|
12
|
+
return [0, 0]; // Default to (0,0) if pattern not found
|
|
13
|
+
};
|
|
14
|
+
// Sort by page number first, then by block number
|
|
15
|
+
tableCells.sort(function (a, b) {
|
|
16
|
+
var _getPageAndBlockNumbe = getPageAndBlockNumber(a.id),
|
|
17
|
+
_getPageAndBlockNumbe2 = _slicedToArray(_getPageAndBlockNumbe, 2),
|
|
18
|
+
pageA = _getPageAndBlockNumbe2[0],
|
|
19
|
+
blockA = _getPageAndBlockNumbe2[1];
|
|
20
|
+
var _getPageAndBlockNumbe3 = getPageAndBlockNumber(b.id),
|
|
21
|
+
_getPageAndBlockNumbe4 = _slicedToArray(_getPageAndBlockNumbe3, 2),
|
|
22
|
+
pageB = _getPageAndBlockNumbe4[0],
|
|
23
|
+
blockB = _getPageAndBlockNumbe4[1];
|
|
24
|
+
return pageA !== pageB ? pageA - pageB : blockA - blockB;
|
|
25
|
+
});
|
|
26
|
+
// console.log("Table cells sorted:", tableCells);
|
|
27
|
+
return tableCells;
|
|
28
|
+
}
|
|
29
|
+
// Strikethrough correction function
|
|
30
|
+
function strikethroughCorrection(jsonData) {
|
|
31
|
+
// Deep clone to avoid mutating the original
|
|
32
|
+
var modifiedJson = JSON.parse(JSON.stringify(jsonData));
|
|
33
|
+
// Helper function to process HTML content
|
|
34
|
+
var processHtml = function processHtml(html) {
|
|
35
|
+
if (!html) return html;
|
|
36
|
+
return html.replace(/<strikethrough>/g, "<del>").replace(/<\/strikethrough>/g, "</del>");
|
|
37
|
+
};
|
|
38
|
+
// Helper function to recursively process nodes
|
|
39
|
+
var _processNode = function processNode(node) {
|
|
40
|
+
// Process HTML content if it exists
|
|
41
|
+
if (node.html) {
|
|
42
|
+
node.html = processHtml(node.html);
|
|
43
|
+
}
|
|
44
|
+
// Process LLM table HTML if it exists
|
|
45
|
+
if (node.llm_table_html) {
|
|
46
|
+
node.llm_table_html = processHtml(node.llm_table_html);
|
|
47
|
+
}
|
|
48
|
+
// Process children recursively
|
|
49
|
+
if (node.children && Array.isArray(node.children)) {
|
|
50
|
+
node.children.forEach(_processNode);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
// Start processing from the root
|
|
54
|
+
_processNode(modifiedJson);
|
|
55
|
+
return modifiedJson;
|
|
56
|
+
}
|
|
57
|
+
// Remove picture nodes function
|
|
58
|
+
function removePictureNodes(jsonData) {
|
|
59
|
+
// Deep clone to avoid mutating the original
|
|
60
|
+
var modifiedJson = JSON.parse(JSON.stringify(jsonData));
|
|
61
|
+
// Helper function to recursively filter out picture nodes
|
|
62
|
+
var _processPictureNodes = function processPictureNodes(node) {
|
|
63
|
+
// If the node has children, filter out Picture nodes and process remaining children
|
|
64
|
+
if (node.children && Array.isArray(node.children)) {
|
|
65
|
+
node.children = node.children.filter(function (child) {
|
|
66
|
+
return child.block_type !== "Picture";
|
|
67
|
+
}).map(_processPictureNodes);
|
|
68
|
+
}
|
|
69
|
+
return node;
|
|
70
|
+
};
|
|
71
|
+
// Start processing from the root
|
|
72
|
+
_processPictureNodes(modifiedJson);
|
|
73
|
+
return modifiedJson;
|
|
74
|
+
}
|
|
75
|
+
// MAP 'html' and 'llm_table_html' (if present) of block_type 'Table' to their respective children i.e 'TableCell'
|
|
76
|
+
function mapTableChildren(jsonData) {
|
|
77
|
+
// Skip if there's no JSON data or no pages
|
|
78
|
+
if (!jsonData || !jsonData.children) {
|
|
79
|
+
console.log("No valid JSON data to process");
|
|
80
|
+
return jsonData;
|
|
81
|
+
}
|
|
82
|
+
// Create a deep copy to avoid modifying the original
|
|
83
|
+
var modifiedJsonData = JSON.parse(JSON.stringify(jsonData));
|
|
84
|
+
// Process each page in the document
|
|
85
|
+
modifiedJsonData.children = modifiedJsonData.children.map(function (page) {
|
|
86
|
+
// Skip if page has no children
|
|
87
|
+
if (!page.children) {
|
|
88
|
+
return page;
|
|
89
|
+
}
|
|
90
|
+
// Process each block in the page
|
|
91
|
+
page.children = page.children.map(function (block) {
|
|
92
|
+
// Only process Table and TableOfContents blocks
|
|
93
|
+
if (block.block_type === "Table" || block.block_type === "TableOfContents") {
|
|
94
|
+
// Skip if block has no children or no HTML
|
|
95
|
+
if (!block.children || !block.html) {
|
|
96
|
+
return block;
|
|
97
|
+
}
|
|
98
|
+
// Get all TableCell children and sort them by position
|
|
99
|
+
var tableCells = sortTableCells(block.children.filter(function (cell) {
|
|
100
|
+
return cell.block_type === "TableCell";
|
|
101
|
+
}));
|
|
102
|
+
// Skip if no table cells found
|
|
103
|
+
if (tableCells.length === 0) {
|
|
104
|
+
return block;
|
|
105
|
+
}
|
|
106
|
+
// Create DOM parser to extract td/th elements from table HTML
|
|
107
|
+
var parser = new DOMParser();
|
|
108
|
+
// Process main HTML
|
|
109
|
+
var htmlDoc = parser.parseFromString(block.html, "text/html");
|
|
110
|
+
var htmlCells = Array.from(htmlDoc.querySelectorAll("td, th"));
|
|
111
|
+
// Process LLM table HTML if it exists
|
|
112
|
+
var llmHtmlCells = [];
|
|
113
|
+
if (block.llm_table_html) {
|
|
114
|
+
var llmHtmlDoc = parser.parseFromString(block.llm_table_html, "text/html");
|
|
115
|
+
llmHtmlCells = Array.from(llmHtmlDoc.querySelectorAll("td, th"));
|
|
116
|
+
}
|
|
117
|
+
// Safety check: log warning if HTML cells count doesn't match TableCell nodes
|
|
118
|
+
if (htmlCells.length !== tableCells.length) {
|
|
119
|
+
console.warn("Warning: Cell count mismatch in ".concat(block.block_type, " ").concat(block.id, ". ") + "JSON has ".concat(tableCells.length, " cells, HTML has ").concat(htmlCells.length, " cells."));
|
|
120
|
+
}
|
|
121
|
+
// Map HTML content to table cells
|
|
122
|
+
var maxCells = Math.min(tableCells.length, htmlCells.length);
|
|
123
|
+
for (var i = 0; i < maxCells; i++) {
|
|
124
|
+
// Update the table cell's HTML with content from the HTML table
|
|
125
|
+
tableCells[i].html = htmlCells[i].outerHTML;
|
|
126
|
+
// If LLM table HTML exists and has matching cell, update that too
|
|
127
|
+
if (block.llm_table_html && i < llmHtmlCells.length) {
|
|
128
|
+
tableCells[i].llm_table_html = llmHtmlCells[i].outerHTML;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return block;
|
|
133
|
+
});
|
|
134
|
+
return page;
|
|
135
|
+
});
|
|
136
|
+
console.log("Finished mapping table HTML to table cells");
|
|
137
|
+
return modifiedJsonData;
|
|
138
|
+
}
|
|
139
|
+
function preprocessData(jsonData) {
|
|
140
|
+
// Replace 'strikethrough' with 'del'
|
|
141
|
+
var processedJson = strikethroughCorrection(jsonData);
|
|
142
|
+
// Remove picture nodes
|
|
143
|
+
processedJson = removePictureNodes(processedJson);
|
|
144
|
+
// TODO: Uncomment this after correcting the the table enrichment and mapping.
|
|
145
|
+
// // Enrich tables with missing cells
|
|
146
|
+
// processedJson = processTablesForEnrichment(processedJson);
|
|
147
|
+
// // Map table HTML to table cells
|
|
148
|
+
processedJson = mapTableChildren(processedJson);
|
|
149
|
+
return processedJson;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export { preprocessData, sortTableCells };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Structura } from './Structura.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Polyfill for Promise.withResolvers
|
|
2
|
+
// This is needed for Next.js build compatibility
|
|
3
|
+
if (typeof Promise.withResolvers !== 'function') {
|
|
4
|
+
Promise.withResolvers = function () {
|
|
5
|
+
let resolve;
|
|
6
|
+
let reject;
|
|
7
|
+
const promise = new Promise((res, rej) => {
|
|
8
|
+
resolve = res;
|
|
9
|
+
reject = rej;
|
|
10
|
+
});
|
|
11
|
+
return { promise, resolve, reject };
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenIcon } from '../lib/esm/iconBase.js';
|
|
2
|
+
import '../lib/esm/iconContext.js';
|
|
3
|
+
|
|
4
|
+
// THIS FILE IS AUTO GENERATED
|
|
5
|
+
function FaChartBar (props) {
|
|
6
|
+
return GenIcon({"attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"}}]})(props);
|
|
7
|
+
}function FaFileDownload (props) {
|
|
8
|
+
return GenIcon({"attr":{"viewBox":"0 0 384 512"},"child":[{"tag":"path","attr":{"d":"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"}}]})(props);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { FaChartBar, FaFileDownload };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { IconContext, DefaultContext } from './iconContext.js';
|
|
3
|
+
|
|
4
|
+
var __assign = undefined && undefined.__assign || function () {
|
|
5
|
+
__assign = Object.assign || function (t) {
|
|
6
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
7
|
+
s = arguments[i];
|
|
8
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
return __assign.apply(this, arguments);
|
|
13
|
+
};
|
|
14
|
+
var __rest = undefined && undefined.__rest || function (s, e) {
|
|
15
|
+
var t = {};
|
|
16
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
function Tree2Element(tree) {
|
|
23
|
+
return tree && tree.map(function (node, i) {
|
|
24
|
+
return React__default.createElement(node.tag, __assign({
|
|
25
|
+
key: i
|
|
26
|
+
}, node.attr), Tree2Element(node.child));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function GenIcon(data) {
|
|
30
|
+
// eslint-disable-next-line react/display-name
|
|
31
|
+
return function (props) {
|
|
32
|
+
return React__default.createElement(IconBase, __assign({
|
|
33
|
+
attr: __assign({}, data.attr)
|
|
34
|
+
}, props), Tree2Element(data.child));
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function IconBase(props) {
|
|
38
|
+
var elem = function (conf) {
|
|
39
|
+
var attr = props.attr,
|
|
40
|
+
size = props.size,
|
|
41
|
+
title = props.title,
|
|
42
|
+
svgProps = __rest(props, ["attr", "size", "title"]);
|
|
43
|
+
var computedSize = size || conf.size || "1em";
|
|
44
|
+
var className;
|
|
45
|
+
if (conf.className) className = conf.className;
|
|
46
|
+
if (props.className) className = (className ? className + " " : "") + props.className;
|
|
47
|
+
return React__default.createElement("svg", __assign({
|
|
48
|
+
stroke: "currentColor",
|
|
49
|
+
fill: "currentColor",
|
|
50
|
+
strokeWidth: "0"
|
|
51
|
+
}, conf.attr, attr, svgProps, {
|
|
52
|
+
className: className,
|
|
53
|
+
style: __assign(__assign({
|
|
54
|
+
color: props.color || conf.color
|
|
55
|
+
}, conf.style), props.style),
|
|
56
|
+
height: computedSize,
|
|
57
|
+
width: computedSize,
|
|
58
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
59
|
+
}), title && React__default.createElement("title", null, title), props.children);
|
|
60
|
+
};
|
|
61
|
+
return IconContext !== undefined ? React__default.createElement(IconContext.Consumer, null, function (conf) {
|
|
62
|
+
return elem(conf);
|
|
63
|
+
}) : elem(DefaultContext);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { GenIcon, IconBase };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
|
|
3
|
+
var DefaultContext = {
|
|
4
|
+
color: undefined,
|
|
5
|
+
size: undefined,
|
|
6
|
+
className: undefined,
|
|
7
|
+
style: undefined,
|
|
8
|
+
attr: undefined
|
|
9
|
+
};
|
|
10
|
+
var IconContext = React__default.createContext && React__default.createContext(DefaultContext);
|
|
11
|
+
|
|
12
|
+
export { DefaultContext, IconContext };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Polyfill for Promise.withResolvers
|
|
2
|
+
// This is needed for Next.js build compatibility
|
|
3
|
+
if (typeof Promise.withResolvers !== 'function') {
|
|
4
|
+
Promise.withResolvers = function () {
|
|
5
|
+
var resolve;
|
|
6
|
+
var reject;
|
|
7
|
+
var promise = new Promise(function (res, rej) {
|
|
8
|
+
resolve = res;
|
|
9
|
+
reject = rej;
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
promise: promise,
|
|
13
|
+
resolve: resolve,
|
|
14
|
+
reject: reject
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
|
|
3
|
+
function POST(_x, _x2) {
|
|
4
|
+
return _POST.apply(this, arguments);
|
|
5
|
+
}
|
|
6
|
+
function _POST() {
|
|
7
|
+
_POST = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(request, config) {
|
|
8
|
+
var baseUrl, apiKey, response, errorText, data, _t, _t2;
|
|
9
|
+
return _regenerator().w(function (_context) {
|
|
10
|
+
while (1) switch (_context.n) {
|
|
11
|
+
case 0:
|
|
12
|
+
_context.p = 0;
|
|
13
|
+
baseUrl = config.baseUrl || 'https://structura.theflywheel.in';
|
|
14
|
+
apiKey = config.apiKey; // Ensure required configuration is set
|
|
15
|
+
if (apiKey) {
|
|
16
|
+
_context.n = 1;
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
console.error("Missing required API key");
|
|
20
|
+
return _context.a(2, {
|
|
21
|
+
error: "Missing API key",
|
|
22
|
+
status: 401
|
|
23
|
+
});
|
|
24
|
+
case 1:
|
|
25
|
+
_context.p = 1;
|
|
26
|
+
_context.n = 2;
|
|
27
|
+
return fetch("".concat(baseUrl, "/api/v2/convert"), {
|
|
28
|
+
method: "POST",
|
|
29
|
+
headers: {
|
|
30
|
+
"X-Api-Key": apiKey
|
|
31
|
+
},
|
|
32
|
+
body: request
|
|
33
|
+
});
|
|
34
|
+
case 2:
|
|
35
|
+
response = _context.v;
|
|
36
|
+
if (response.ok) {
|
|
37
|
+
_context.n = 4;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
_context.n = 3;
|
|
41
|
+
return response.text().catch(function () {
|
|
42
|
+
return "Could not read error response";
|
|
43
|
+
});
|
|
44
|
+
case 3:
|
|
45
|
+
errorText = _context.v;
|
|
46
|
+
console.error("Backend returned error: Status ".concat(response.status, ", Message: ").concat(errorText));
|
|
47
|
+
return _context.a(2, {
|
|
48
|
+
error: "Backend error: ".concat(response.status, " ").concat(response.statusText),
|
|
49
|
+
details: errorText,
|
|
50
|
+
status: response.status
|
|
51
|
+
});
|
|
52
|
+
case 4:
|
|
53
|
+
_context.n = 5;
|
|
54
|
+
return response.json();
|
|
55
|
+
case 5:
|
|
56
|
+
data = _context.v;
|
|
57
|
+
return _context.a(2, {
|
|
58
|
+
data: data,
|
|
59
|
+
status: 200
|
|
60
|
+
});
|
|
61
|
+
case 6:
|
|
62
|
+
_context.p = 6;
|
|
63
|
+
_t = _context.v;
|
|
64
|
+
console.error("Connection error to backend:", _t);
|
|
65
|
+
return _context.a(2, {
|
|
66
|
+
error: "Failed to connect to backend service",
|
|
67
|
+
details: "Could not connect to ".concat(baseUrl, ". Make sure the backend server is running."),
|
|
68
|
+
message: _t instanceof Error ? _t.message : String(_t),
|
|
69
|
+
status: 503
|
|
70
|
+
});
|
|
71
|
+
case 7:
|
|
72
|
+
_context.n = 9;
|
|
73
|
+
break;
|
|
74
|
+
case 8:
|
|
75
|
+
_context.p = 8;
|
|
76
|
+
_t2 = _context.v;
|
|
77
|
+
console.error("Error in generate API:", _t2);
|
|
78
|
+
return _context.a(2, {
|
|
79
|
+
error: "Internal server error",
|
|
80
|
+
message: _t2 instanceof Error ? _t2.message : String(_t2),
|
|
81
|
+
status: 500
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, _callee, null, [[1, 6], [0, 8]]);
|
|
85
|
+
}));
|
|
86
|
+
return _POST.apply(this, arguments);
|
|
87
|
+
}
|
|
88
|
+
function GET(_x3, _x4) {
|
|
89
|
+
return _GET.apply(this, arguments);
|
|
90
|
+
}
|
|
91
|
+
function _GET() {
|
|
92
|
+
_GET = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(taskId, config) {
|
|
93
|
+
var baseUrl, apiKey, backendUrl, response, data, _t3;
|
|
94
|
+
return _regenerator().w(function (_context2) {
|
|
95
|
+
while (1) switch (_context2.n) {
|
|
96
|
+
case 0:
|
|
97
|
+
_context2.p = 0;
|
|
98
|
+
baseUrl = config.baseUrl || 'https://structura.theflywheel.in';
|
|
99
|
+
apiKey = config.apiKey;
|
|
100
|
+
if (apiKey) {
|
|
101
|
+
_context2.n = 1;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
console.error("Missing required API key");
|
|
105
|
+
return _context2.a(2, {
|
|
106
|
+
error: "Missing API key",
|
|
107
|
+
status: 401
|
|
108
|
+
});
|
|
109
|
+
case 1:
|
|
110
|
+
// Forward GET request to backend
|
|
111
|
+
// console.log("Getting conversion result for taskId", taskId);
|
|
112
|
+
backendUrl = "".concat(baseUrl, "/api/v2/convert/").concat(taskId);
|
|
113
|
+
_context2.n = 2;
|
|
114
|
+
return fetch(backendUrl, {
|
|
115
|
+
method: "GET",
|
|
116
|
+
headers: {
|
|
117
|
+
"X-Api-Key": apiKey,
|
|
118
|
+
Accept: "application/json"
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
case 2:
|
|
122
|
+
response = _context2.v;
|
|
123
|
+
if (response.ok) {
|
|
124
|
+
_context2.n = 3;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
return _context2.a(2, {
|
|
128
|
+
error: "Failed to get conversion result",
|
|
129
|
+
status: response.status
|
|
130
|
+
});
|
|
131
|
+
case 3:
|
|
132
|
+
_context2.n = 4;
|
|
133
|
+
return response.json();
|
|
134
|
+
case 4:
|
|
135
|
+
data = _context2.v;
|
|
136
|
+
return _context2.a(2, {
|
|
137
|
+
data: data,
|
|
138
|
+
status: 200
|
|
139
|
+
});
|
|
140
|
+
case 5:
|
|
141
|
+
_context2.p = 5;
|
|
142
|
+
_t3 = _context2.v;
|
|
143
|
+
console.error("Error in generate API GET:", _t3);
|
|
144
|
+
return _context2.a(2, {
|
|
145
|
+
error: "Internal server error",
|
|
146
|
+
status: 500
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}, _callee2, null, [[0, 5]]);
|
|
150
|
+
}));
|
|
151
|
+
return _GET.apply(this, arguments);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export { GET, 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,9 @@
|
|
|
1
|
+
interface EditableContentProps {
|
|
2
|
+
id: string;
|
|
3
|
+
content: string;
|
|
4
|
+
onContentChange?: (nodeId: string, newContent: string) => void;
|
|
5
|
+
isHeading?: boolean;
|
|
6
|
+
onNodeClick?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export default function EditableContent({ id, content, onContentChange, isHeading, onNodeClick, }: EditableContentProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface HtmlViewerProps {
|
|
2
|
+
jsonData: any;
|
|
3
|
+
selectedBboxId: string | null;
|
|
4
|
+
isLoading?: boolean;
|
|
5
|
+
onNodeClick?: (nodeId: string) => void;
|
|
6
|
+
onSave?: (editedData: any) => void | Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export default function HtmlViewer({ //NOSONAR
|
|
9
|
+
jsonData, selectedBboxId, isLoading, onNodeClick, onSave, }: HtmlViewerProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './lib/polyfills';
|
|
3
|
+
declare const Document: React.LazyExoticComponent<React.ForwardRefExoticComponent<{
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
className?: import("react-pdf/dist/cjs/shared/types").ClassName;
|
|
6
|
+
error?: import("react-pdf/dist/cjs/shared/types").NodeOrRenderer;
|
|
7
|
+
externalLinkRel?: import("react-pdf/dist/cjs/shared/types").ExternalLinkRel;
|
|
8
|
+
externalLinkTarget?: import("react-pdf/dist/cjs/shared/types").ExternalLinkTarget;
|
|
9
|
+
file?: import("react-pdf/dist/cjs/shared/types").File;
|
|
10
|
+
imageResourcesPath?: import("react-pdf/dist/cjs/shared/types").ImageResourcesPath;
|
|
11
|
+
inputRef?: React.Ref<HTMLDivElement | null>;
|
|
12
|
+
loading?: import("react-pdf/dist/cjs/shared/types").NodeOrRenderer;
|
|
13
|
+
noData?: import("react-pdf/dist/cjs/shared/types").NodeOrRenderer;
|
|
14
|
+
onItemClick?: (args: import("react-pdf/dist/cjs/shared/types").OnItemClickArgs) => void;
|
|
15
|
+
onLoadError?: import("react-pdf/dist/cjs/shared/types").OnDocumentLoadError;
|
|
16
|
+
onLoadProgress?: import("react-pdf/dist/cjs/shared/types").OnDocumentLoadProgress;
|
|
17
|
+
onLoadSuccess?: import("react-pdf/dist/cjs/shared/types").OnDocumentLoadSuccess;
|
|
18
|
+
onPassword?: (callback: import("react-pdf/dist/cjs/shared/types").OnPasswordCallback, reason: import("react-pdf/dist/cjs/shared/types").PasswordResponse) => void;
|
|
19
|
+
onSourceError?: import("react-pdf/dist/cjs/shared/types").OnError;
|
|
20
|
+
onSourceSuccess?: () => void;
|
|
21
|
+
options?: import("react-pdf/dist/cjs/shared/types").Options;
|
|
22
|
+
renderMode?: import("react-pdf/dist/cjs/shared/types").RenderMode;
|
|
23
|
+
rotate?: number | null;
|
|
24
|
+
} & import("make-event-props").EventProps<false | import("pdfjs-dist/types/src/display/api").PDFDocumentProxy | undefined> & React.RefAttributes<{
|
|
25
|
+
linkService: React.RefObject<import("react-pdf/dist/cjs/LinkService").default>;
|
|
26
|
+
pages: React.RefObject<HTMLDivElement[]>;
|
|
27
|
+
viewer: React.RefObject<{
|
|
28
|
+
scrollPageIntoView: (args: import("react-pdf/dist/cjs/shared/types").ScrollPageIntoViewArgs) => void;
|
|
29
|
+
}>;
|
|
30
|
+
}>>>;
|
|
31
|
+
declare const Page: React.LazyExoticComponent<typeof import("react-pdf").Page>;
|
|
32
|
+
export declare const PDFDocument: React.FC<React.ComponentProps<typeof Document>>;
|
|
33
|
+
export declare const PDFPage: React.FC<React.ComponentProps<typeof Page>>;
|
|
34
|
+
export { Document, Page };
|
|
35
|
+
export default function PdfComponents(): null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./polyfills";
|
|
3
|
+
import { Document } from "./PdfComponents";
|
|
4
|
+
import "./worker";
|
|
5
|
+
type DocumentOutput = any;
|
|
6
|
+
interface PdfDocumentViewerProps {
|
|
7
|
+
fileUrl: string | null;
|
|
8
|
+
allowedPages: number[];
|
|
9
|
+
onLoadSuccess: (numPages: number) => void;
|
|
10
|
+
onFileUpload: (file: File) => void;
|
|
11
|
+
onRemovePDF?: () => void;
|
|
12
|
+
jsonData?: DocumentOutput | null;
|
|
13
|
+
selectedBboxId?: string | null;
|
|
14
|
+
onPdfBboxClick?: (blockId: string) => void;
|
|
15
|
+
}
|
|
16
|
+
interface PDFViewerProps extends React.ComponentProps<typeof Document> {
|
|
17
|
+
hideTextLayer?: boolean;
|
|
18
|
+
hideAnnotationLayer?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare const PDFViewer: React.FC<PDFViewerProps>;
|
|
21
|
+
export default function PdfDocumentViewer({ fileUrl, allowedPages, onLoadSuccess, onFileUpload, onRemovePDF, jsonData, selectedBboxId, onPdfBboxClick, }: PdfDocumentViewerProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|