fix: stabilize Toolbox navigation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
<https://git.add-ideas.de/zemion/xslt-tools/src/tag/v0.4.0>
|
||||
<https://git.add-ideas.de/zemion/xslt-tools/src/tag/v0.4.1>
|
||||
|
||||
The XSLT tools application source is licensed under AGPL-3.0-only. This release
|
||||
also contains third-party components under separate terms. See
|
||||
|
||||
32
package-lock.json
generated
32
package-lock.json
generated
@@ -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"
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -1 +1 @@
|
||||
export const APP_VERSION = '0.4.0';
|
||||
export const APP_VERSION = '0.4.1';
|
||||
|
||||
@@ -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', () => {
|
||||
</AppShell>
|
||||
);
|
||||
|
||||
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' });
|
||||
|
||||
Reference in New Issue
Block a user