Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a2b34572a9 | |||
| b76886e3ec |
2
.npmrc
2
.npmrc
@@ -1 +1 @@
|
||||
@add-ideas:registry=https://git.add-ideas.de/api/packages/zemion/npm/
|
||||
@add-ideas:registry=https://git.add-ideas.de/api/packages/lotobo/npm/
|
||||
|
||||
15
CHANGELOG.md
15
CHANGELOG.md
@@ -4,6 +4,21 @@ All notable changes to `pdf-tools` are documented here.
|
||||
|
||||
The project follows a pragmatic versioning scheme while the app is still below `1.0.0`: minor versions mark coherent user-facing milestones; patch versions mark fixes and small improvements.
|
||||
|
||||
## 0.4.4 — LocalToolBox organization migration
|
||||
|
||||
### Changed
|
||||
|
||||
- Moved canonical repository, Toolbox schema, corresponding-source, and package-registry URLs from the personal `zemion` namespace to the `lotobo` LocalToolBox organization.
|
||||
- Upgraded the Toolbox contract, React shell, and validation testkit to `0.2.3` from the organization-owned registry.
|
||||
- Bumped the app/package version to `0.4.4`.
|
||||
|
||||
## 0.4.3 — Aligned Toolbox content width
|
||||
|
||||
### Changed
|
||||
|
||||
- Expanded the PDF workspace's maximum content width from `900px` to `90rem` so it aligns with the shared Toolbox shell bar and central catalogue.
|
||||
- Bumped the app/package version to `0.4.3`.
|
||||
|
||||
## 0.4.2 — Corrected Toolbox header orientation
|
||||
|
||||
### Changed
|
||||
|
||||
10
README.md
10
README.md
@@ -4,7 +4,7 @@
|
||||
|
||||
Current hosted version: <https://pdftools.add-ideas.de>
|
||||
|
||||
Current development release: **v0.4.2 — corrected Toolbox header orientation**. See [`CHANGELOG.md`](CHANGELOG.md) for milestone history.
|
||||
Current development release: **v0.4.4 — LocalToolBox organization migration**. See [`CHANGELOG.md`](CHANGELOG.md) for milestone history.
|
||||
|
||||
Active work is tracked in Gitea issues. Durable project context is mirrored into the Gitea wiki from repository docs, including [`ROADMAP.md`](ROADMAP.md).
|
||||
|
||||
@@ -122,9 +122,9 @@ browser <-- HTTPS --> static web server / reverse proxy --> built app assets
|
||||
There is no application server to operate. Administrators only need to host the built files from `dist/`.
|
||||
|
||||
The production build is relocatable and can also be assembled into an
|
||||
[Add Ideas Toolbox](https://git.add-ideas.de/zemion/toolbox-portal) deployment.
|
||||
[Add Ideas Toolbox](https://git.add-ideas.de/lotobo/toolbox-portal) deployment.
|
||||
`toolbox-app.json` describes this app through the framework-independent
|
||||
[Toolbox App Contract](https://git.add-ideas.de/zemion/toolbox-sdk). The same
|
||||
[Toolbox App Contract](https://git.add-ideas.de/lotobo/toolbox-sdk). The same
|
||||
artifact remains fully usable on its own.
|
||||
|
||||
The shared first-party shell always provides help, source, and appearance
|
||||
@@ -257,10 +257,10 @@ The application version shown in the header is defined in `src/version.ts`. The
|
||||
The current development baseline is:
|
||||
|
||||
```text
|
||||
v0.4.2 — corrected Toolbox header orientation and light/dark/system themes
|
||||
v0.4.4 — LocalToolBox organization migration
|
||||
```
|
||||
|
||||
This branch preserves the browser-only workspace baseline and PDF.js compatibility setup while moving the app to Toolbox SDK `0.2.2`. The displayed app/package version is `0.4.2`; the shared header keeps the Toolbox icon and `add·ideas Toolbox` label in a fixed far-left block, the app title and one tagline centered, and Help, the PDF source link, Apps, and Personalize in a fixed far-right cluster. Workspace state, thumbnail handling, generated download URLs, page-grid components, tests, type-checking, linting, and formatting remain separated enough to support additional feature work without turning `App.tsx` back into a monolith.
|
||||
This branch preserves the browser-only workspace baseline and PDF.js compatibility setup while using Toolbox SDK `0.2.3` from the `lotobo` package registry. The displayed app/package version is `0.4.4`; canonical source, schema, and release links use the LocalToolBox organization. The shared header keeps the Toolbox icon and `add·ideas Toolbox` label in a fixed far-left block, the app title and one tagline centered, and Help, the PDF source link, Apps, and Personalize in a fixed far-right cluster. The PDF workspace shares the shell bar's `90rem` maximum width. Workspace state, thumbnail handling, generated download URLs, page-grid components, tests, type-checking, linting, and formatting remain separated enough to support additional feature work without turning `App.tsx` back into a monolith.
|
||||
|
||||
## Project structure
|
||||
|
||||
|
||||
32
package-lock.json
generated
32
package-lock.json
generated
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"name": "pdf-tools",
|
||||
"version": "0.4.2",
|
||||
"version": "0.4.4",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "pdf-tools",
|
||||
"version": "0.4.2",
|
||||
"version": "0.4.4",
|
||||
"license": "AGPL-3.0-only",
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "^0.2.2",
|
||||
"@add-ideas/toolbox-shell-react": "^0.2.2",
|
||||
"@add-ideas/toolbox-contract": "^0.2.3",
|
||||
"@add-ideas/toolbox-shell-react": "^0.2.3",
|
||||
"fflate": "^0.8.3",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"pdfjs-dist": "^5.7.284",
|
||||
@@ -18,7 +18,7 @@
|
||||
"react-dom": "^19.2.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@add-ideas/toolbox-testkit": "^0.2.2",
|
||||
"@add-ideas/toolbox-testkit": "^0.2.3",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@testing-library/react": "^16.3.2",
|
||||
"@testing-library/user-event": "^14.6.1",
|
||||
@@ -40,18 +40,18 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@add-ideas/toolbox-contract": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.2/toolbox-contract-0.2.2.tgz",
|
||||
"integrity": "sha512-VcZ8j4O2PgFaIYgxs6r9u0uPxA+hHKwhCW+omfeVCtbjAAYhH2KhRlBGm0ERVVYcK5kchyzZLXrC4LKWRotVzg==",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.3/toolbox-contract-0.2.3.tgz",
|
||||
"integrity": "sha512-T0PVSuMT40GjTDfQJhEEY3ZawQq8zz1/ry95JdKI6W39CdLacaRXdGnEpDCMHt+jUbf1Jz7Nat/M5dFCgKVM9A==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/@add-ideas/toolbox-shell-react": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.2/toolbox-shell-react-0.2.2.tgz",
|
||||
"integrity": "sha512-w/xbLCd50a2Jq7vQ9Z9ygUOuqlOCRkIYlk4vSJx0mf4REJNeMYi3PE2MbaLUC4DkQWyrmatsa5HNT89o0l91BA==",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.3/toolbox-shell-react-0.2.3.tgz",
|
||||
"integrity": "sha512-DT5lQDH48BFkFcmFLZnQh7+Cm73JzBPcmp5WzUXypfkUXpEyDYHzaXgmW4kZ0edSwh4RK4sPmx+JPtK0X4aKCQ==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "0.2.2"
|
||||
"@add-ideas/toolbox-contract": "0.2.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=18 <20",
|
||||
@@ -59,13 +59,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@add-ideas/toolbox-testkit": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.2/toolbox-testkit-0.2.2.tgz",
|
||||
"integrity": "sha512-ZxrRYiJI/j5aXwcd3mQItgDl1iOJ6N26+MpIG18qVZNwKKFCTCfSTzgzRooPt8rRc1MQYTPo4c+l/QpOWuTXxA==",
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://git.add-ideas.de/api/packages/lotobo/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.3/toolbox-testkit-0.2.3.tgz",
|
||||
"integrity": "sha512-sq1MwhKWfFKen+N+124hl74qQimRSvmQ9sOU7jdcI+2qCKZ67+2B8rWyezeV80uTFu4Jv6deHksfYQ/tKNV6XQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "0.2.2"
|
||||
"@add-ideas/toolbox-contract": "0.2.3"
|
||||
},
|
||||
"bin": {
|
||||
"toolbox-check": "dist/cli.js"
|
||||
|
||||
18
package.json
18
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "pdf-tools",
|
||||
"version": "0.4.2",
|
||||
"version": "0.4.4",
|
||||
"private": true,
|
||||
"license": "AGPL-3.0-only",
|
||||
"type": "module",
|
||||
@@ -23,8 +23,8 @@
|
||||
"check": "npm run manifest:check && npm run typecheck && npm run lint && npm run test && npm run build && npm run test:toolbox"
|
||||
},
|
||||
"dependencies": {
|
||||
"@add-ideas/toolbox-contract": "^0.2.2",
|
||||
"@add-ideas/toolbox-shell-react": "^0.2.2",
|
||||
"@add-ideas/toolbox-contract": "^0.2.3",
|
||||
"@add-ideas/toolbox-shell-react": "^0.2.3",
|
||||
"fflate": "^0.8.3",
|
||||
"pdf-lib": "^1.17.1",
|
||||
"pdfjs-dist": "^5.7.284",
|
||||
@@ -32,7 +32,7 @@
|
||||
"react-dom": "^19.2.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@add-ideas/toolbox-testkit": "^0.2.2",
|
||||
"@add-ideas/toolbox-testkit": "^0.2.3",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@testing-library/react": "^16.3.2",
|
||||
"@testing-library/user-event": "^14.6.1",
|
||||
@@ -52,5 +52,13 @@
|
||||
"vite": "^8.0.13",
|
||||
"vitest": "^4.1.6"
|
||||
},
|
||||
"description": "Browser-only, self-hostable PDF workbench for page-level PDF operations."
|
||||
"description": "Browser-only, self-hostable PDF workbench for page-level PDF operations.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://git.add-ideas.de/lotobo/pdf-tools.git"
|
||||
},
|
||||
"homepage": "https://git.add-ideas.de/lotobo/pdf-tools",
|
||||
"bugs": {
|
||||
"url": "https://git.add-ideas.de/lotobo/pdf-tools/issues"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json",
|
||||
"$schema": "https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json",
|
||||
"schemaVersion": 1,
|
||||
"id": "de.add-ideas.pdf-tools",
|
||||
"name": "PDF Workbench",
|
||||
@@ -25,8 +25,8 @@
|
||||
"telemetry": false
|
||||
},
|
||||
"source": {
|
||||
"repository": "https://git.add-ideas.de/zemion/pdf-tools",
|
||||
"repository": "https://git.add-ideas.de/lotobo/pdf-tools",
|
||||
"license": "AGPL-3.0-only"
|
||||
},
|
||||
"version": "0.4.2"
|
||||
"version": "0.4.4"
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ if (sourceVersion !== packageJson.version) {
|
||||
|
||||
const manifest = {
|
||||
$schema:
|
||||
'https://git.add-ideas.de/zemion/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json',
|
||||
'https://git.add-ideas.de/lotobo/toolbox-sdk/raw/branch/main/schemas/toolbox-app.v1.schema.json',
|
||||
schemaVersion: 1,
|
||||
...definition,
|
||||
version: packageJson.version,
|
||||
|
||||
@@ -45,7 +45,7 @@ files['SOURCE.md'] = Buffer.from(
|
||||
'',
|
||||
`The source code corresponding to PDF Tools ${packageJson.version} is available at:`,
|
||||
'',
|
||||
`https://git.add-ideas.de/zemion/pdf-tools/src/tag/v${packageJson.version}`,
|
||||
`https://git.add-ideas.de/lotobo/pdf-tools/src/tag/v${packageJson.version}`,
|
||||
'',
|
||||
'Third-party components remain available under the separate terms reproduced in LICENSES/.',
|
||||
'',
|
||||
|
||||
@@ -168,7 +168,7 @@ body {
|
||||
|
||||
.pdf-toolbox-shell .toolbox-shell__main {
|
||||
padding: 0.75rem;
|
||||
max-width: 900px;
|
||||
max-width: 90rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"telemetry": false
|
||||
},
|
||||
"source": {
|
||||
"repository": "https://git.add-ideas.de/zemion/pdf-tools",
|
||||
"repository": "https://git.add-ideas.de/lotobo/pdf-tools",
|
||||
"license": "AGPL-3.0-only"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ describe('toolbox app definition', () => {
|
||||
|
||||
it('uses repository metadata for the shared source control', () => {
|
||||
expect(toolboxApp.source?.repository).toBe(
|
||||
'https://git.add-ideas.de/zemion/pdf-tools'
|
||||
'https://git.add-ideas.de/lotobo/pdf-tools'
|
||||
);
|
||||
expect(toolboxApp.actions).toBeUndefined();
|
||||
});
|
||||
|
||||
@@ -1 +1 @@
|
||||
export const APP_VERSION = '0.4.2';
|
||||
export const APP_VERSION = '0.4.4';
|
||||
|
||||
13
tests/layoutStyles.test.ts
Normal file
13
tests/layoutStyles.test.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
describe('Toolbox layout styles', () => {
|
||||
it('keeps the PDF workspace aligned to the 90rem shell width', async () => {
|
||||
const stylesheet = await readFile('src/styles.css', 'utf8');
|
||||
const mainRule = stylesheet.match(
|
||||
/\.pdf-toolbox-shell \.toolbox-shell__main\s*\{(?<body>[^}]*)\}/u
|
||||
);
|
||||
|
||||
expect(mainRule?.groups?.body).toMatch(/\bmax-width:\s*90rem\s*;/u);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user