@putkoff/abstract-securefiles 0.0.0 → 0.0.19
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/css.d.ts +2 -0
- package/dist/{types/App → App}/secure_files.d.ts +1 -1
- package/dist/index.cjs +18 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/package.json +11 -5
- package/postcss.config.cjs +8 -0
- package/rollup.config.js +5 -5
- package/rollup.config.mjs +35 -0
- package/src/App/index.d.ts +1 -0
- package/src/App/secure_files.d.ts +4 -0
- package/src/App/secure_files.tsx +1 -1
- package/src/App/styles/index.css +11 -6
- package/src/index.d.ts +1 -0
- package/src/logs/abstract_flask.log +0 -0
- package/src/logs/clipit_logs.log +10 -0
- package/src/logs/fetch_utils.log +0 -0
- package/src/logs/pair_data.log +0 -0
- package/src/logs/query_utils.log +0 -0
- package/src/logs/routes_bp.log +2 -0
- package/tailwind.config.cjs +7 -0
- package/tsconfig.json +15 -17
- package/SecureFilesStyles.module.css +0 -287
- /package/dist/{types/App → App}/index.d.ts +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/{tsconfig.tmp.json → src/logs/abstract_clipit.clipit.gui_frontend.drag_and_drop_component.imports.robust_readers.directory_reader.directory_reader.log} +0 -0
package/css.d.ts
ADDED
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var abstractFiles = require('@putkoff/abstract-files');
|
|
5
|
+
var abstractUtilities = require('@putkoff/abstract-utilities');
|
|
6
|
+
|
|
7
|
+
function checkTokenValid() {
|
|
8
|
+
const tok = abstractUtilities.getToken();
|
|
9
|
+
return !!tok && !abstractUtilities.isTokenExpired(tok);
|
|
10
|
+
}
|
|
11
|
+
const SecureFiles = () => {
|
|
12
|
+
const [loggedIn, setLoggedIn] = abstractUtilities.useState(checkTokenValid());
|
|
13
|
+
const filesHook = abstractFiles.useFiles(); // ← one single hook instance
|
|
14
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(abstractFiles.Upload, { onUploaded: filesHook.load }), jsxRuntime.jsx(abstractFiles.FileTable, { files: filesHook.files, loading: filesHook.loading, error: filesHook.error, onDownload: filesHook.toggleShare, onToggleShare: filesHook.toggleShare, onPatchShare: filesHook.patchShareSettings, onDelete: filesHook.deleteFile })] }));
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.SecureFiles = SecureFiles;
|
|
18
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/App/secure_files.tsx"],"sourcesContent":["// src/App.tsx\n// src/index.tsx\nimport './styles/index.css';\nimport * as React from 'react'; // ✅ works without esModuleInterop\nimport {\n useFiles,\n FileTable,\n Upload\n} from \"@putkoff/abstract-files\";\n\nimport {\n getToken, // ⬅️ use the *non-throwing* helper\n isTokenExpired,\n useState\n} from \"@putkoff/abstract-utilities\";\nfunction checkTokenValid() {\n const tok = getToken();\n return !!tok && !isTokenExpired(tok);\n}\nconst SecureFiles: React.FC = () => {\n const [loggedIn, setLoggedIn] = useState(checkTokenValid());\n const filesHook = useFiles(); // ← one single hook instance\n return (\n <>\n {/* pass the same load & file‐list into both children */}\n <Upload onUploaded={filesHook.load} />\n <FileTable\n files={filesHook.files}\n loading={filesHook.loading}\n error={filesHook.error}\n onDownload={filesHook.toggleShare} // or downloadFile\n onToggleShare={filesHook.toggleShare}\n onPatchShare={filesHook.patchShareSettings}\n onDelete={filesHook.deleteFile}\n />\n\n </>\n )\n}\n\nexport default SecureFiles;"],"names":["getToken","isTokenExpired","useState","useFiles","_jsxs","_Fragment","_jsx","Upload","FileTable"],"mappings":";;;;;;AAeA,SAAS,eAAe,GAAA;AACtB,IAAA,MAAM,GAAG,GAAGA,0BAAQ,EAAE;IACtB,OAAO,CAAC,CAAC,GAAG,IAAI,CAACC,gCAAc,CAAC,GAAG,CAAC;AACtC;AACA,MAAM,WAAW,GAAa,MAAK;IACjC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGC,0BAAQ,CAAC,eAAe,EAAE,CAAC;AAC3D,IAAA,MAAM,SAAS,GAAGC,sBAAQ,EAAE,CAAC;IAC7B,QACEC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CAEEC,cAAA,CAACC,oBAAM,EAAA,EAAC,UAAU,EAAE,SAAS,CAAC,IAAI,EAAA,CAAI,EACtCD,cAAA,CAACE,uBAAS,EAAA,EACR,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,SAAS,CAAC,OAAO,EAC1B,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,UAAU,EAAE,SAAS,CAAC,WAAW,EACjC,aAAa,EAAE,SAAS,CAAC,WAAW,EACpC,YAAY,EAAE,SAAS,CAAC,kBAAkB,EAC1C,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAA,CAC9B,CAAA,EAAA,CAED;AAEP;;;;"}
|
package/dist/index.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}@layer components{.wm-table{font-size:13px;table-layout:fixed;width:100%}.wm-thead th{background-color:#e5e7eb;border-bottom:1px solid #9ca3af;font-weight:600;padding:5px 8px;text-align:left}.wm-row{background-color:#f9fafb;border-bottom:1px solid #d1d5db}.wm-row:hover{background-color:#eff6ff}.wm-cell{overflow:hidden;padding:5px 8px;text-overflow:ellipsis;white-space:nowrap}.wm-checkbox{border:1px solid #9ca3af;border-radius:4px;color:#2563eb;cursor:pointer;height:14px;width:14px}.wm-btn-link{color:#2563eb;text-decoration:underline}.wm-btn-link:hover{color:#1e40af}.wm-btn-link:disabled{color:#9ca3af;cursor:not-allowed}.wm-btn-icon{border-radius:4px;color:#4b5563;padding:2px}.wm-btn-icon:hover{background-color:#e5e7eb;color:#111827}.wm-btn-icon:disabled{color:#9ca3af}.file-table{border:1px solid #9ca3af;border-collapse:collapse;font-size:13px;line-height:1.15rem;width:100%}.file-table thead th{background-color:#e5e7eb;border-bottom:1px solid #9ca3af;border-right:1px solid #d1d5db;color:#1f2937;font-weight:600;padding:6px 12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.file-table thead th:last-child{border-right:none}.file-table tbody tr{border-bottom:1px solid #d1d5db;transition:background-color .2s}.file-table tbody tr:hover{background-color:#f3f4f6}.file-table tbody tr:nth-child(2n){background-color:#f9fafb}.file-table td{border-right:1px solid #d1d5db;padding:6px 12px;vertical-align:middle;white-space:nowrap}.file-table td:last-child{border-right:none}.file-table .unsaved{color:#dc2626}.modal-backdrop{background-color:rgba(0,0,0,.6)}.modal-backdrop,.modal-wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.modal-wrapper{align-items:center;display:flex;justify-content:center}.modal-panel{border-radius:12px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-height:90vh;outline:none;overflow-y:auto}.form-container,.modal-panel{background-color:#fff;max-width:28rem;padding:24px}.form-container{border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:16px}.form-title{font-size:20px;font-weight:600;text-align:center}.form-input{border:1px solid #d1d5db;border-radius:4px;display:block;padding:4px 8px;width:100%}.form-input:disabled{background-color:#f3f4f6}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:500;margin-bottom:4px}.form-error{color:#dc2626;font-size:14px}.btn{border-radius:8px;font-size:14px;font-weight:500;padding:4px 12px;transition:background-color .15s,color .15s}.btn:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(0,0,0,.1);outline:none}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover{background-color:#1d4ed8}.btn-primary:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(59,130,246,.5)}.btn-secondary{background-color:#e5e7eb}.btn-secondary:hover{background-color:#d1d5db}.btn-secondary:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(156,163,175,.5)}.btn-success{background-color:#16a34a;color:#fff}.btn-success:hover{background-color:#15803d}.btn-success:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(34,197,94,.5)}.btn-danger{background-color:#dc2626;color:#fff}.btn-danger:hover{background-color:#b91c1c}.btn-danger:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(239,68,68,.5)}.btn-icon{background-color:transparent;padding:4px}.btn-icon:hover{background-color:#f3f4f6}.checkbox{align-items:center;display:flex;gap:8px;margin-bottom:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.logo{height:6em;padding:1.5em;transition:filter .3s;will-change:filter}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin 20s linear infinite}}.card{padding:2em}.read-the-docs{color:#888}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useFiles, Upload, FileTable } from '@putkoff/abstract-files';
|
|
3
|
+
import { useState, getToken, isTokenExpired } from '@putkoff/abstract-utilities';
|
|
4
|
+
|
|
5
|
+
function checkTokenValid() {
|
|
6
|
+
const tok = getToken();
|
|
7
|
+
return !!tok && !isTokenExpired(tok);
|
|
8
|
+
}
|
|
9
|
+
const SecureFiles = () => {
|
|
10
|
+
const [loggedIn, setLoggedIn] = useState(checkTokenValid());
|
|
11
|
+
const filesHook = useFiles(); // ← one single hook instance
|
|
12
|
+
return (jsxs(Fragment, { children: [jsx(Upload, { onUploaded: filesHook.load }), jsx(FileTable, { files: filesHook.files, loading: filesHook.loading, error: filesHook.error, onDownload: filesHook.toggleShare, onToggleShare: filesHook.toggleShare, onPatchShare: filesHook.patchShareSettings, onDelete: filesHook.deleteFile })] }));
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export { SecureFiles };
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/App/secure_files.tsx"],"sourcesContent":["// src/App.tsx\n// src/index.tsx\nimport './styles/index.css';\nimport * as React from 'react'; // ✅ works without esModuleInterop\nimport {\n useFiles,\n FileTable,\n Upload\n} from \"@putkoff/abstract-files\";\n\nimport {\n getToken, // ⬅️ use the *non-throwing* helper\n isTokenExpired,\n useState\n} from \"@putkoff/abstract-utilities\";\nfunction checkTokenValid() {\n const tok = getToken();\n return !!tok && !isTokenExpired(tok);\n}\nconst SecureFiles: React.FC = () => {\n const [loggedIn, setLoggedIn] = useState(checkTokenValid());\n const filesHook = useFiles(); // ← one single hook instance\n return (\n <>\n {/* pass the same load & file‐list into both children */}\n <Upload onUploaded={filesHook.load} />\n <FileTable\n files={filesHook.files}\n loading={filesHook.loading}\n error={filesHook.error}\n onDownload={filesHook.toggleShare} // or downloadFile\n onToggleShare={filesHook.toggleShare}\n onPatchShare={filesHook.patchShareSettings}\n onDelete={filesHook.deleteFile}\n />\n\n </>\n )\n}\n\nexport default SecureFiles;"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;AAeA,SAAS,eAAe,GAAA;AACtB,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;IACtB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtC;AACA,MAAM,WAAW,GAAa,MAAK;IACjC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC3D,IAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,QACEA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAEEC,GAAA,CAAC,MAAM,EAAA,EAAC,UAAU,EAAE,SAAS,CAAC,IAAI,EAAA,CAAI,EACtCA,GAAA,CAAC,SAAS,EAAA,EACR,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,SAAS,CAAC,OAAO,EAC1B,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,UAAU,EAAE,SAAS,CAAC,WAAW,EACjC,aAAa,EAAE,SAAS,CAAC,WAAW,EACpC,YAAY,EAAE,SAAS,CAAC,kBAAkB,EAC1C,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAA,CAC9B,CAAA,EAAA,CAED;AAEP;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@putkoff/abstract-securefiles",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "A reusable Secure file system",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -13,15 +13,21 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"react": "^
|
|
16
|
+
"react": "^18.3.1",
|
|
17
17
|
"react-dom": "^17.0.0 || ^18.0.0"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@putkoff/shared-scripts": "file:../../shared-scripts",
|
|
21
|
+
"@rollup/plugin-typescript": "^12.1.4",
|
|
21
22
|
"@types/node": "^24.0.13",
|
|
22
23
|
"@types/react": "^18.3.23",
|
|
23
24
|
"@types/react-dom": "^18.3.7",
|
|
25
|
+
"autoprefixer": "^10.4.21",
|
|
24
26
|
"csstype": "^3.1.3",
|
|
27
|
+
"postcss": "^8.5.6",
|
|
28
|
+
"postcss-import": "^16.1.1",
|
|
29
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
30
|
+
"tailwindcss": "^4.1.11",
|
|
25
31
|
"tsup": "^8.5.0",
|
|
26
32
|
"typescript": "^5.8.3",
|
|
27
33
|
"undici-types": "^7.11.0"
|
|
@@ -29,11 +35,11 @@
|
|
|
29
35
|
"dependencies": {
|
|
30
36
|
"@heroicons/react": "^2.2.0",
|
|
31
37
|
"@putkoff/abstract-apis": "^0.0.417",
|
|
32
|
-
"@putkoff/abstract-files": "^0.0.
|
|
38
|
+
"@putkoff/abstract-files": "^0.0.295",
|
|
33
39
|
"@putkoff/abstract-utilities": "^0.1.229",
|
|
34
40
|
"@rollup/plugin-commonjs": "^28.0.6",
|
|
35
41
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
36
|
-
"@
|
|
42
|
+
"@tailwindcss/postcss": "^4.1.11",
|
|
37
43
|
"rollup-plugin-dts": "^6.2.1",
|
|
38
44
|
"tslib": "^2.8.1"
|
|
39
45
|
},
|
|
@@ -45,4 +51,4 @@
|
|
|
45
51
|
"type": "module",
|
|
46
52
|
"author": "putkoff",
|
|
47
53
|
"license": "MIT"
|
|
48
|
-
}
|
|
54
|
+
}
|
package/rollup.config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import resolve
|
|
2
|
-
import commonjs
|
|
1
|
+
import resolve from '@rollup/plugin-node-resolve';
|
|
2
|
+
import commonjs from '@rollup/plugin-commonjs';
|
|
3
3
|
import typescript from '@rollup/plugin-typescript';
|
|
4
|
-
import dts
|
|
4
|
+
import dts from 'rollup-plugin-dts';
|
|
5
5
|
import { readFileSync } from 'fs';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
7
|
|
|
@@ -21,7 +21,7 @@ export default [
|
|
|
21
21
|
external: deps,
|
|
22
22
|
output: [
|
|
23
23
|
{ file: pkg.module, format: 'esm', sourcemap: true },
|
|
24
|
-
{ file: pkg.main,
|
|
24
|
+
{ file: pkg.main, format: 'cjs', sourcemap: true, exports: 'named' }
|
|
25
25
|
],
|
|
26
26
|
plugins: [
|
|
27
27
|
resolve(),
|
|
@@ -33,6 +33,6 @@ export default [
|
|
|
33
33
|
input: 'src/index.ts',
|
|
34
34
|
external: deps,
|
|
35
35
|
output: { file: pkg.types, format: 'esm' },
|
|
36
|
-
plugins: [
|
|
36
|
+
plugins: [dts()]
|
|
37
37
|
}
|
|
38
38
|
];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import typescript from '@rollup/plugin-typescript';
|
|
3
|
+
import postcss from 'rollup-plugin-postcss';
|
|
4
|
+
import resolve from '@rollup/plugin-node-resolve';
|
|
5
|
+
import commonjs from '@rollup/plugin-commonjs';
|
|
6
|
+
|
|
7
|
+
const pkg = JSON.parse(
|
|
8
|
+
readFileSync(new URL('./package.json', import.meta.url), 'utf-8')
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
// Treat deps/peerDeps as externals so they are NOT bundled
|
|
12
|
+
const externals = [
|
|
13
|
+
...Object.keys(pkg.peerDependencies || {}),
|
|
14
|
+
...Object.keys(pkg.dependencies || {}),
|
|
15
|
+
'react/jsx-runtime', // needed for "react-jsx" TS transform
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
input: 'src/index.ts',
|
|
20
|
+
external: externals,
|
|
21
|
+
output: [
|
|
22
|
+
{ file: 'dist/index.js', format: 'esm', sourcemap: true },
|
|
23
|
+
{ file: 'dist/index.cjs', format: 'cjs', sourcemap: true, exports: 'named' }
|
|
24
|
+
],
|
|
25
|
+
plugins: [
|
|
26
|
+
resolve(), // let Rollup resolve node modules where needed
|
|
27
|
+
commonjs(), // convert CJS to ESM for build pipeline
|
|
28
|
+
postcss({
|
|
29
|
+
extract: true, // emits dist/index.css
|
|
30
|
+
minimize: true,
|
|
31
|
+
extensions: ['.css'],
|
|
32
|
+
}),
|
|
33
|
+
typescript({ tsconfig: './tsconfig.json' }),
|
|
34
|
+
],
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as SecureFiles } from './secure_files';
|
package/src/App/secure_files.tsx
CHANGED
package/src/App/styles/index.css
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/* src/styles/index.css */
|
|
2
2
|
|
|
3
|
-
/* 1)
|
|
4
|
-
@
|
|
3
|
+
/* 1) Tailwind layers */
|
|
4
|
+
@tailwind base;
|
|
5
|
+
@tailwind components;
|
|
6
|
+
@tailwind utilities;
|
|
5
7
|
|
|
6
|
-
/* 2)
|
|
7
|
-
@
|
|
8
|
+
/* 2) Your custom layer */
|
|
9
|
+
@layer components {
|
|
10
|
+
/* 2) pull in your custom @layer components */
|
|
11
|
+
@import "./window-manager.css";
|
|
8
12
|
|
|
9
|
-
/* 3) pull in all your overrides & global resets */
|
|
10
|
-
@import "./App.css";
|
|
13
|
+
/* 3) pull in all your overrides & global resets */
|
|
14
|
+
@import "./App.css";
|
|
15
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SecureFiles } from './App';
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
2025-08-02 16:10:06,669 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:06] _filtered_file_list returned 10588 path(s)
|
|
2
|
+
2025-08-02 16:10:06,670 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:06] Proceeding to process 10588 file(s).
|
|
3
|
+
2025-08-02 16:10:06,944 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:06] Visible extensions: {'.ts', '.flow', '.js', '.markdown', '.iml', '.cts', '.md', '.mjs', '.cjs', '.node', '.html', '.wasm', '.tsx', '.lesser', '.coffee', '.css', '.txt', '.1', '.mts', '.map', '.json', '.tsbuildinfo', '.jison'}
|
|
4
|
+
2025-08-02 16:10:13,401 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:13] _filtered_file_list returned 0 path(s)
|
|
5
|
+
2025-08-02 16:10:13,402 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:13] No valid paths after filtering.
|
|
6
|
+
2025-08-02 16:10:39,813 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:39] _filtered_file_list returned 21 path(s)
|
|
7
|
+
2025-08-02 16:10:39,813 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:39] Proceeding to process 21 file(s).
|
|
8
|
+
2025-08-02 16:10:39,822 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:39] Visible extensions: {'.tsx', '.ts', '.mjs', '.css', '.json', '.cjs', '.js'}
|
|
9
|
+
2025-08-02 16:10:39,835 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:39] _filtered_file_list returned 0 path(s)
|
|
10
|
+
2025-08-02 16:10:39,836 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_clipit/clipit/gui_frontend/drag_and_drop_component/file_drop_area/file_drop_area.py - [2025-08-02 16:10:39] No valid paths after filtering.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
2025-08-02 16:10:00,636 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_flask/abstract_flask.py - Python path: ['', '/home/computron/miniconda/lib/python312.zip', '/home/computron/miniconda/lib/python3.12', '/home/computron/miniconda/lib/python3.12/lib-dynload', '/home/computron/.local/lib/python3.12/site-packages', '/home/computron/miniconda/lib/python3.12/site-packages', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf']
|
|
2
|
+
2025-08-02 16:10:38,808 - INFO - /home/computron/miniconda/lib/python3.12/site-packages/abstract_flask/abstract_flask.py - Python path: ['', '/home/computron/miniconda/lib/python312.zip', '/home/computron/miniconda/lib/python3.12', '/home/computron/miniconda/lib/python3.12/lib-dynload', '/home/computron/.local/lib/python3.12/site-packages', '/home/computron/miniconda/lib/python3.12/site-packages', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf', '/home/computron/miniconda/lib/python3.12/site-packages/odf']
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"target": "
|
|
4
|
-
"module": "
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "Node",
|
|
5
6
|
"lib": [
|
|
6
|
-
"
|
|
7
|
-
"
|
|
7
|
+
"ES2020",
|
|
8
|
+
"DOM"
|
|
8
9
|
],
|
|
9
|
-
"
|
|
10
|
-
"declarationDir": "dist/types",
|
|
11
|
-
"outDir": "dist",
|
|
12
|
-
"importHelpers": true,
|
|
13
|
-
"moduleResolution": "node",
|
|
10
|
+
"jsx": "react-jsx",
|
|
14
11
|
"esModuleInterop": true,
|
|
15
12
|
"allowSyntheticDefaultImports": true,
|
|
16
13
|
"strict": true,
|
|
17
|
-
"
|
|
14
|
+
"outDir": "dist",
|
|
18
15
|
"skipLibCheck": true,
|
|
19
|
-
"
|
|
16
|
+
"declaration": true,
|
|
17
|
+
"emitDeclarationOnly": true,
|
|
18
|
+
"noEmit": false
|
|
20
19
|
},
|
|
21
20
|
"include": [
|
|
22
|
-
"src
|
|
21
|
+
"src"
|
|
23
22
|
],
|
|
24
23
|
"exclude": [
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
}
|
|
24
|
+
"dist",
|
|
25
|
+
"node_modules"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
/* SecureFilesStyles.module.css */
|
|
2
|
-
|
|
3
|
-
/* Scope all styles under .secure-files */
|
|
4
|
-
.secure-files {
|
|
5
|
-
/* Pull in Tailwind utilities if needed (but skip @base to avoid global resets) */
|
|
6
|
-
@tailwind utilities;
|
|
7
|
-
|
|
8
|
-
/* window-manager.css styles (prefixed where needed) */
|
|
9
|
-
.wm-table {
|
|
10
|
-
width: 100%;
|
|
11
|
-
font-size: 13px;
|
|
12
|
-
table-layout: fixed;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.wm-thead th {
|
|
16
|
-
background-color: #e5e7eb;
|
|
17
|
-
border-bottom: 1px solid #9ca3af;
|
|
18
|
-
padding: 5px 8px;
|
|
19
|
-
text-align: left;
|
|
20
|
-
font-weight: 600;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.wm-row {
|
|
24
|
-
border-bottom: 1px solid #d1d5db;
|
|
25
|
-
background-color: #f9fafb;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.wm-row:hover {
|
|
29
|
-
background-color: #eff6ff;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.wm-cell {
|
|
33
|
-
padding: 5px 8px;
|
|
34
|
-
white-space: nowrap;
|
|
35
|
-
overflow: hidden;
|
|
36
|
-
text-overflow: ellipsis;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.wm-checkbox {
|
|
40
|
-
height: 14px;
|
|
41
|
-
width: 14px;
|
|
42
|
-
color: #2563eb;
|
|
43
|
-
border: 1px solid #9ca3af;
|
|
44
|
-
border-radius: 4px;
|
|
45
|
-
cursor: pointer;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.wm-btn-link {
|
|
49
|
-
color: #2563eb;
|
|
50
|
-
text-decoration: underline;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.wm-btn-link:hover {
|
|
54
|
-
color: #1e40af;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.wm-btn-link:disabled {
|
|
58
|
-
color: #9ca3af;
|
|
59
|
-
cursor: not-allowed;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.wm-btn-icon {
|
|
63
|
-
color: #4b5563;
|
|
64
|
-
padding: 2px;
|
|
65
|
-
border-radius: 4px;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.wm-btn-icon:hover {
|
|
69
|
-
color: #111827;
|
|
70
|
-
background-color: #e5e7eb;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.wm-btn-icon:disabled {
|
|
74
|
-
color: #9ca3af;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/* file-table styles */
|
|
78
|
-
.file-table {
|
|
79
|
-
width: 100%;
|
|
80
|
-
border: 1px solid #9ca3af;
|
|
81
|
-
font-size: 13px;
|
|
82
|
-
line-height: 1.15rem;
|
|
83
|
-
border-collapse: collapse;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.file-table thead th {
|
|
87
|
-
background-color: #e5e7eb;
|
|
88
|
-
color: #1f2937;
|
|
89
|
-
font-weight: 600;
|
|
90
|
-
padding: 6px 12px;
|
|
91
|
-
user-select: none;
|
|
92
|
-
border-bottom: 1px solid #9ca3af;
|
|
93
|
-
border-right: 1px solid #d1d5db;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.file-table thead th:last-child {
|
|
97
|
-
border-right: none;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.file-table tbody tr {
|
|
101
|
-
border-bottom: 1px solid #d1d5db;
|
|
102
|
-
transition: background-color 0.2s;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.file-table tbody tr:hover {
|
|
106
|
-
background-color: #f3f4f6;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.file-table tbody tr:nth-child(even) {
|
|
110
|
-
background-color: #f9fafb;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.file-table td {
|
|
114
|
-
padding: 6px 12px;
|
|
115
|
-
vertical-align: middle;
|
|
116
|
-
white-space: nowrap;
|
|
117
|
-
border-right: 1px solid #d1d5db;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.file-table td:last-child {
|
|
121
|
-
border-right: none;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.file-table .unsaved {
|
|
125
|
-
color: #dc2626;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/* Modals */
|
|
129
|
-
.modal-backdrop {
|
|
130
|
-
position: fixed;
|
|
131
|
-
top: 0;
|
|
132
|
-
right: 0;
|
|
133
|
-
bottom: 0;
|
|
134
|
-
left: 0;
|
|
135
|
-
background-color: rgba(0, 0, 0, 0.6);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.modal-wrapper {
|
|
139
|
-
position: fixed;
|
|
140
|
-
top: 0;
|
|
141
|
-
right: 0;
|
|
142
|
-
bottom: 0;
|
|
143
|
-
left: 0;
|
|
144
|
-
display: flex;
|
|
145
|
-
align-items: center;
|
|
146
|
-
justify-content: center;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.modal-panel {
|
|
150
|
-
background-color: #ffffff;
|
|
151
|
-
border-radius: 12px;
|
|
152
|
-
padding: 24px;
|
|
153
|
-
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
|
|
154
|
-
outline: none;
|
|
155
|
-
max-width: 28rem;
|
|
156
|
-
max-height: 90vh;
|
|
157
|
-
overflow-y: auto;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/* Forms & Inputs */
|
|
161
|
-
.form-container {
|
|
162
|
-
background-color: #ffffff;
|
|
163
|
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
|
|
164
|
-
border-radius: 8px;
|
|
165
|
-
padding: 24px;
|
|
166
|
-
display: flex;
|
|
167
|
-
flex-direction: column;
|
|
168
|
-
gap: 16px;
|
|
169
|
-
max-width: 28rem;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.form-title {
|
|
173
|
-
font-size: 20px;
|
|
174
|
-
font-weight: 600;
|
|
175
|
-
text-align: center;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.form-input {
|
|
179
|
-
display: block;
|
|
180
|
-
width: 100%;
|
|
181
|
-
border-radius: 4px;
|
|
182
|
-
border: 1px solid #d1d5db;
|
|
183
|
-
padding: 4px 8px;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.form-input:disabled {
|
|
187
|
-
background-color: #f3f4f6;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
.form-group {
|
|
191
|
-
margin-bottom: 16px;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.form-label {
|
|
195
|
-
display: block;
|
|
196
|
-
font-size: 14px;
|
|
197
|
-
font-weight: 500;
|
|
198
|
-
margin-bottom: 4px;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.form-error {
|
|
202
|
-
font-size: 14px;
|
|
203
|
-
color: #dc2626;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/* Buttons */
|
|
207
|
-
.btn {
|
|
208
|
-
border-radius: 8px;
|
|
209
|
-
padding: 4px 12px;
|
|
210
|
-
font-size: 14px;
|
|
211
|
-
font-weight: 500;
|
|
212
|
-
transition: background-color 0.15s, color 0.15s;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.btn:focus {
|
|
216
|
-
outline: none;
|
|
217
|
-
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(0, 0, 0, 0.1);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.btn-primary {
|
|
221
|
-
background-color: #2563eb;
|
|
222
|
-
color: #ffffff;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
.btn-primary:hover {
|
|
226
|
-
background-color: #1d4ed8;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
.btn-primary:focus {
|
|
230
|
-
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(59, 130, 246, 0.5);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.btn-secondary {
|
|
234
|
-
background-color: #e5e7eb;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.btn-secondary:hover {
|
|
238
|
-
background-color: #d1d5db;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
.btn-secondary:focus {
|
|
242
|
-
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(156, 163, 175, 0.5);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
.btn-success {
|
|
246
|
-
background-color: #16a34a;
|
|
247
|
-
color: #ffffff;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
.btn-success:hover {
|
|
251
|
-
background-color: #15803d;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
.btn-success:focus {
|
|
255
|
-
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(34, 197, 94, 0.5);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
.btn-danger {
|
|
259
|
-
background-color: #dc2626;
|
|
260
|
-
color: #ffffff;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
.btn-danger:hover {
|
|
264
|
-
background-color: #b91c1c;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.btn-danger:focus {
|
|
268
|
-
box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(239, 68, 68, 0.5);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
.btn-icon {
|
|
272
|
-
padding: 4px;
|
|
273
|
-
background-color: transparent;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
.btn-icon:hover {
|
|
277
|
-
background-color: #f3f4f6;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/* Checkbox */
|
|
281
|
-
.checkbox {
|
|
282
|
-
display: flex;
|
|
283
|
-
align-items: center;
|
|
284
|
-
gap: 8px;
|
|
285
|
-
margin-bottom: 16px;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
File without changes
|
|
File without changes
|