diff --git a/CHANGELOG.md b/CHANGELOG.md index 0be9a35..8f251dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 0.4.1 + +### Changed + +- Upgraded Toolbox Contract, React Shell, and Testkit dependencies to 0.2.1. +- Adopted the stable shared top bar: the fixed left cluster contains Personalize, Apps, the XSLT-specific Gitea source link, and Help; the app title and one tagline remain centered; and the fixed far-right block contains the Toolbox icon and `add·ideas Toolbox` label. + ## 0.4.0 ### Added diff --git a/README.md b/README.md index aa51c3e..3da2468 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ An unavailable or invalid catalogue falls back to standalone operation. ## Appearance -Use **Personalize** in the shared top bar to select System, Light, or Dark. The choice is stored only in this browser using the same preference record as the Toolbox Portal, so it follows you between current Toolbox apps on the same origin. System mode follows the operating-system color preference. CodeMirror is reconfigured when the effective palette changes, including its editor background, gutters, active line, and XML syntax colors. +The stable shared top bar keeps Personalize, Apps, the XSLT source link, and Help in a fixed left cluster, the app title and one tagline centered, and the Toolbox icon with the `add·ideas Toolbox` label in a fixed far-right block. Use **Personalize** to select System, Light, or Dark. The choice is stored only in this browser using the same preference record as the Toolbox Portal, so it follows you between current Toolbox apps on the same origin. System mode follows the operating-system color preference. CodeMirror is reconfigured when the effective palette changes, including its editor background, gutters, active line, and XML syntax colors. ## Release archive diff --git a/SOURCE.md b/SOURCE.md index 214fc35..d804ba0 100644 --- a/SOURCE.md +++ b/SOURCE.md @@ -1,8 +1,8 @@ # Corresponding source -The corresponding application source for XSLT tools 0.4.0 is available at: +The corresponding application source for XSLT tools 0.4.1 is available at: - + The XSLT tools application source is licensed under AGPL-3.0-only. This release also contains third-party components under separate terms. See diff --git a/package-lock.json b/package-lock.json index dc2b79d..b37c4a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "xsl-tools", - "version": "0.4.0", + "version": "0.4.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "xsl-tools", - "version": "0.4.0", + "version": "0.4.1", "license": "AGPL-3.0-only", "dependencies": { - "@add-ideas/toolbox-contract": "0.2.0", - "@add-ideas/toolbox-shell-react": "0.2.0", + "@add-ideas/toolbox-contract": "0.2.1", + "@add-ideas/toolbox-shell-react": "0.2.1", "@codemirror/commands": "^6.8.1", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lint": "^6.8.5", @@ -24,7 +24,7 @@ "react-dom": "^19.2.6" }, "devDependencies": { - "@add-ideas/toolbox-testkit": "0.2.0", + "@add-ideas/toolbox-testkit": "0.2.1", "@eslint/js": "^10.0.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", @@ -46,18 +46,18 @@ } }, "node_modules/@add-ideas/toolbox-contract": { - "version": "0.2.0", - "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.0/toolbox-contract-0.2.0.tgz", - "integrity": "sha512-up+wY+ft1L7TbXrflcTeTOwEdcFwHBWFlGFj8skQvcLy5z2mDBpd6/7PVQKDvDTkiODu2npviHm6AFglFw+17Q==", + "version": "0.2.1", + "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-contract/-/0.2.1/toolbox-contract-0.2.1.tgz", + "integrity": "sha512-NmwV41+ZS0qBWUnI9vflm0PcsiqITmxpSQQ5vMVaToFZuSSIJupgM43tuV9G4OJ1En0eTdYNxbsd3nsYhju2kw==", "license": "Apache-2.0" }, "node_modules/@add-ideas/toolbox-shell-react": { - "version": "0.2.0", - "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.0/toolbox-shell-react-0.2.0.tgz", - "integrity": "sha512-qYR+OBXX8rfB+BYCsUbpiCzo2xK12SIPWVNXHre158Da5uT6usr8rRvp5qa5u2oQJ50PNzlXyXMyTeRp0Vz5wg==", + "version": "0.2.1", + "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-shell-react/-/0.2.1/toolbox-shell-react-0.2.1.tgz", + "integrity": "sha512-slpz9ODVbk27b+uvG3WeCmNa71Q6guabyVHT+jyGLT6ENLSbwmoEFZ0mKNJDxemltpt9KY8I7z47uNBsQ7yKYg==", "license": "Apache-2.0", "dependencies": { - "@add-ideas/toolbox-contract": "0.2.0" + "@add-ideas/toolbox-contract": "0.2.1" }, "peerDependencies": { "react": ">=18 <20", @@ -65,13 +65,13 @@ } }, "node_modules/@add-ideas/toolbox-testkit": { - "version": "0.2.0", - "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.0/toolbox-testkit-0.2.0.tgz", - "integrity": "sha512-+BSiWgS0F3vpjPgty9B4UtfdZTRbo97ZElb2BSb0ry57fS3cE7w7pfJW1Mzk/gV1/JChspw3JBY+4ZJDBhkiFw==", + "version": "0.2.1", + "resolved": "https://git.add-ideas.de/api/packages/zemion/npm/%40add-ideas%2Ftoolbox-testkit/-/0.2.1/toolbox-testkit-0.2.1.tgz", + "integrity": "sha512-0Nfs92r2M5I6hvP8TM776XG08StCBNS40sWt+t4wiMroRMS0aWk/hYqU6+I/VK1lzTLbtxSi0k33trJat3io6Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@add-ideas/toolbox-contract": "0.2.0" + "@add-ideas/toolbox-contract": "0.2.1" }, "bin": { "toolbox-check": "dist/cli.js" diff --git a/package.json b/package.json index b79e6ab..a230f4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xsl-tools", - "version": "0.4.0", + "version": "0.4.1", "private": true, "type": "module", "license": "AGPL-3.0-only", @@ -28,8 +28,8 @@ "clean": "rm -rf dist node_modules/.vite coverage" }, "dependencies": { - "@add-ideas/toolbox-contract": "0.2.0", - "@add-ideas/toolbox-shell-react": "0.2.0", + "@add-ideas/toolbox-contract": "0.2.1", + "@add-ideas/toolbox-shell-react": "0.2.1", "@codemirror/commands": "^6.8.1", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lint": "^6.8.5", @@ -43,7 +43,7 @@ "react-dom": "^19.2.6" }, "devDependencies": { - "@add-ideas/toolbox-testkit": "0.2.0", + "@add-ideas/toolbox-testkit": "0.2.1", "@eslint/js": "^10.0.1", "@testing-library/react": "^16.3.2", "@testing-library/user-event": "^14.6.1", diff --git a/public/toolbox-app.json b/public/toolbox-app.json index 57f2a5c..9342bb5 100644 --- a/public/toolbox-app.json +++ b/public/toolbox-app.json @@ -3,7 +3,7 @@ "schemaVersion": 1, "id": "de.add-ideas.xslt-tools", "name": "XSLT tools", - "version": "0.4.0", + "version": "0.4.1", "description": "Browser-based XML and XSLT transformations with executable-stylesheet trust controls.", "entry": "./", "icon": "./favicon.svg", diff --git a/src/version.ts b/src/version.ts index 47eec42..5b71f24 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const APP_VERSION = '0.4.0'; +export const APP_VERSION = '0.4.1'; diff --git a/tests/toolboxIntegration.test.tsx b/tests/toolboxIntegration.test.tsx index 1cc6b6e..01ca3ea 100644 --- a/tests/toolboxIntegration.test.tsx +++ b/tests/toolboxIntegration.test.tsx @@ -86,7 +86,7 @@ describe('toolbox shell integration', () => { const shell = container.firstElementChild; expect(shell?.getAttribute('data-toolbox-theme')).toBe('system'); - fireEvent.click(screen.getByText('Personalize').closest('summary')!); + fireEvent.click(screen.getByRole('button', { name: 'Personalize' })); fireEvent.click(screen.getByRole('button', { name: 'Dark' })); expect(shell?.getAttribute('data-toolbox-theme')).toBe('dark'); @@ -114,7 +114,7 @@ describe('toolbox shell integration', () => { ); - fireEvent.click(screen.getByText('Apps').closest('summary')!); + fireEvent.click(screen.getByRole('button', { name: 'Apps' })); const navigation = await screen.findByRole('navigation', { name: 'Toolbox applications', }); @@ -123,7 +123,9 @@ describe('toolbox shell integration', () => { container.firstElementChild?.getAttribute('data-toolbox-context') ).toBe('connected'); expect( - screen.getByRole('link', { name: 'Test Toolbox' }).getAttribute('href') + screen + .getByRole('link', { name: 'add·ideas Toolbox' }) + .getAttribute('href') ).toBe('https://example.test/'); const pdfLink = screen.getByRole('link', { name: 'PDF Workbench' });