vue-dockable-desktop 1.1.2 → 1.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/CHANGELOG.md +48 -0
- package/dist/composables/useLibraryMessage.d.ts +10 -0
- package/dist/core/messages.d.ts +8 -0
- package/dist/core/panelDom.d.ts +8 -2
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +689 -613
- package/dist/index.js.map +1 -1
- package/dist/styles.css +27 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,54 @@ correspondence lives, alongside the feature-by-feature map in [docs/PARITY.md](d
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [1.2.0] — 2026-09-24
|
|
15
|
+
|
|
16
|
+
**Parity: react-dockable-desktop 6.3.1.**
|
|
17
|
+
|
|
18
|
+
The remaining items from the user bug report that 1.1.2 left for a minor release: they add
|
|
19
|
+
behaviour, change a default, or extend a public type.
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **Tabs work from the keyboard.** Each tab group is one stop in the Tab order — its selected
|
|
24
|
+
tab. ArrowLeft and ArrowRight move to the previous or next tab and show it, wrapping, and
|
|
25
|
+
mirrored under RTL; Delete closes the focused tab, asking first if it has unsaved changes.
|
|
26
|
+
The tab strip is a `tablist` and the body a `tabpanel`; a tab's close × is hidden from
|
|
27
|
+
assistive technology, since Delete and the menu's Close cover it. A focus ring shows for
|
|
28
|
+
keyboard focus only.
|
|
29
|
+
|
|
30
|
+
- **The context menu works from the keyboard.** It takes focus when it opens; ArrowDown and
|
|
31
|
+
ArrowUp move between enabled items, Enter or Space runs one, and Tab or Escape closes it.
|
|
32
|
+
Closing from the keyboard, or by running an item, hands focus back to whatever had it. A
|
|
33
|
+
submenu now also opens on click, which helps on touch screens. A custom menu slot manages
|
|
34
|
+
its own focus.
|
|
35
|
+
|
|
36
|
+
- **`--vdd-font-family`, one token for the font of all library chrome.** Set it to change the
|
|
37
|
+
font of the workspace, sidebar, toolbar, modals, side panels, toasts, menus and flyouts in
|
|
38
|
+
one place, or to `inherit` to use your page's font. See the theming chapter.
|
|
39
|
+
|
|
40
|
+
- **Two message keys: `notifications` and `closeNotification`.** The toast region's
|
|
41
|
+
accessible name and a toast's close button were hard-coded English, as was the sidebar
|
|
42
|
+
drawer's close button (now the existing `close` key). They go through the message table and
|
|
43
|
+
formatter like every other string, and fall back to English where there is no workspace.
|
|
44
|
+
|
|
45
|
+
- **`<VddDesktop>` can be set up without a DOM.** Server-rendering it threw
|
|
46
|
+
`document is not defined` and took the whole page render down. It now renders the chrome and
|
|
47
|
+
leaves the panels to the client. `<ClientOnly>` remains the supported setup under Nuxt or
|
|
48
|
+
other SSR, and the getting-started chapter says so.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- **The chrome's default font.** The context menu used the system font stack while the rest of
|
|
53
|
+
the chrome used the workspace's, and everything rendered outside the workspace — the sidebar
|
|
54
|
+
and toolbar around it, modals, side panels, toasts, menus and flyouts — took the host page's
|
|
55
|
+
body font. All of it now uses `--vdd-font-family`, which defaults to the workspace's stack.
|
|
56
|
+
To keep the page's font, set `--vdd-font-family: inherit`.
|
|
57
|
+
|
|
58
|
+
- **`MessageKey` has two more keys.** A table typed `Record<MessageKey, string>`, as the i18n
|
|
59
|
+
chapter recommends, fails to compile until it adds `notifications` and `closeNotification`.
|
|
60
|
+
That is the check doing its job; partial `messages` overrides are unaffected.
|
|
61
|
+
|
|
14
62
|
## [1.1.2] — 2026-09-24
|
|
15
63
|
|
|
16
64
|
**Parity: react-dockable-desktop 6.3.1.**
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MessageKey } from '../core/messages';
|
|
2
|
+
/**
|
|
3
|
+
* One of the library's own strings, for a component that may render with no workspace.
|
|
4
|
+
*
|
|
5
|
+
* Toasts work from anywhere and a sidebar can stand alone, so these cannot `useWorkspace()`,
|
|
6
|
+
* which throws without one. With a workspace the string goes through its message table and
|
|
7
|
+
* formatter, exactly as every other library label does; without one it is the English
|
|
8
|
+
* default. Call the returned function during render, so a locale change is followed. @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare function useLibraryMessage(): (key: MessageKey) => string;
|
package/dist/core/messages.d.ts
CHANGED
|
@@ -107,6 +107,14 @@ export declare const defaultMessages: {
|
|
|
107
107
|
readonly id: "vdd.search";
|
|
108
108
|
readonly defaultMessage: "Search";
|
|
109
109
|
};
|
|
110
|
+
readonly notifications: {
|
|
111
|
+
readonly id: "vdd.notifications";
|
|
112
|
+
readonly defaultMessage: "Notifications";
|
|
113
|
+
};
|
|
114
|
+
readonly closeNotification: {
|
|
115
|
+
readonly id: "vdd.closeNotification";
|
|
116
|
+
readonly defaultMessage: "Close notification";
|
|
117
|
+
};
|
|
110
118
|
};
|
|
111
119
|
/**
|
|
112
120
|
* Every message key. Import it in your own message table to get a compile-time guarantee
|
package/dist/core/panelDom.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* workspaces on a page shared panel DOM.
|
|
14
14
|
*/
|
|
15
15
|
export declare class PanelDomCache {
|
|
16
|
-
private readonly
|
|
16
|
+
private readonly ownerDocument?;
|
|
17
17
|
private elements;
|
|
18
18
|
/**
|
|
19
19
|
* Preserved state, **owned per panel and outliving the hidden period**.
|
|
@@ -34,7 +34,13 @@ export declare class PanelDomCache {
|
|
|
34
34
|
*/
|
|
35
35
|
private sizes;
|
|
36
36
|
private hidden;
|
|
37
|
-
|
|
37
|
+
/**
|
|
38
|
+
* The document is looked up on first use, not in a parameter default: constructing the cache
|
|
39
|
+
* then touches nothing, so `<VddDesktop>` can be set up where there is no DOM (server
|
|
40
|
+
* rendering) as long as no panel element is asked for.
|
|
41
|
+
*/
|
|
42
|
+
constructor(ownerDocument?: Document | undefined);
|
|
43
|
+
private get doc();
|
|
38
44
|
/** The off-screen store. Panels live here while minimised, and before their first host. */
|
|
39
45
|
hiddenStore(): HTMLElement;
|
|
40
46
|
/**
|