@adecore/ui 0.23.0 → 0.24.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/dist/ButtonGroup.d.ts +1 -1
- package/dist/ButtonGroup.js +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/ChoiceCards.js +2 -2
- package/dist/CloseButton.js +1 -1
- package/dist/ColorSwatch.d.ts +1 -1
- package/dist/ColorSwatch.js +1 -1
- package/dist/Field.d.ts +1 -1
- package/dist/Field.js +4 -3
- package/dist/IconButton.d.ts +1 -1
- package/dist/IconButton.js +1 -1
- package/dist/ListRow.d.ts +1 -1
- package/dist/ListRow.js +1 -1
- package/dist/MiddleTruncate.d.ts +8 -0
- package/dist/MiddleTruncate.js +59 -0
- package/dist/PanelHeader.d.ts +1 -1
- package/dist/PanelHeader.js +1 -1
- package/dist/SectionLabel.d.ts +1 -1
- package/dist/SectionLabel.js +1 -1
- package/dist/Select.js +1 -1
- package/dist/SelectSearch.js +1 -1
- package/dist/Slider.js +1 -1
- package/dist/Surface.d.ts +1 -1
- package/dist/Surface.js +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Toasts.d.ts +1 -1
- package/dist/Toasts.js +4 -5
- package/dist/Tooltip.d.ts +1 -1
- package/dist/Tooltip.js +2 -2
- package/dist/clipboard.d.ts +1 -1
- package/dist/clipboard.js +12 -2
- package/dist/dialog/parts.d.ts +3 -3
- package/dist/dialog/parts.js +2 -2
- package/dist/file-tree/helpers.d.ts +1 -0
- package/dist/file-tree/helpers.js +9 -0
- package/dist/file-tree/parts.d.ts +1 -1
- package/dist/file-tree/parts.js +1 -1
- package/dist/file-tree/use-slots.d.ts +8 -0
- package/dist/file-tree/use-slots.js +64 -22
- package/dist/format/datetime.d.ts +1 -0
- package/dist/format/datetime.js +15 -0
- package/dist/format/index.d.ts +1 -1
- package/dist/format/index.js +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +5 -1
- package/dist/key-value-list/parts.d.ts +1 -1
- package/dist/key-value-list/parts.js +1 -1
- package/dist/locales/en.d.ts +83 -0
- package/dist/locales/en.js +82 -0
- package/dist/locales/nl.d.ts +83 -0
- package/dist/locales/nl.js +82 -0
- package/dist/locales.js +3 -2
- package/dist/menu/parts.d.ts +7 -7
- package/dist/menu/parts.js +4 -4
- package/dist/middle-truncate.d.ts +7 -0
- package/dist/middle-truncate.js +34 -0
- package/dist/popover/parts.d.ts +7 -7
- package/dist/popover/parts.js +2 -2
- package/dist/prefetch.js +6 -1
- package/dist/settings/ConfirmDialog.d.ts +4 -1
- package/dist/settings/ConfirmDialog.js +2 -2
- package/dist/settings/SettingsDialog.js +1 -1
- package/dist/tabs/parts.d.ts +8 -4
- package/dist/tabs/parts.js +84 -18
- package/dist/testing/dedupe.js +74 -23
- package/dist/theme.css +24 -8
- package/dist/tree/parts.d.ts +1 -1
- package/dist/tree/parts.js +1 -1
- package/dist/workspace/DropPreview.d.ts +8 -0
- package/dist/workspace/DropPreview.js +14 -0
- package/dist/workspace/SplitView.d.ts +1 -1
- package/dist/workspace/SplitView.js +59 -18
- package/dist/workspace/TabStrip.d.ts +1 -1
- package/dist/workspace/TabStrip.js +1 -1
- package/dist/workspace/Workspace.d.ts +2 -2
- package/dist/workspace/Workspace.js +4 -2
- package/dist/workspace/preview.d.ts +4 -8
- package/dist/workspace/preview.js +17 -2
- package/package.json +2 -2
- package/src/ButtonGroup.tsx +1 -1
- package/src/Checkbox.tsx +1 -1
- package/src/ChoiceCards.tsx +2 -2
- package/src/CloseButton.tsx +1 -1
- package/src/ColorSwatch.tsx +1 -1
- package/src/ErrorBoundary.tsx +4 -4
- package/src/Field.tsx +4 -5
- package/src/IconButton.tsx +1 -1
- package/src/ListRow.tsx +1 -1
- package/src/MiddleTruncate.tsx +84 -0
- package/src/PanelHeader.tsx +1 -1
- package/src/SectionLabel.tsx +1 -1
- package/src/Select.tsx +1 -1
- package/src/SelectSearch.tsx +1 -1
- package/src/Slider.tsx +1 -1
- package/src/Surface.tsx +1 -1
- package/src/Switch.tsx +1 -1
- package/src/Toasts.tsx +5 -6
- package/src/Tooltip.tsx +5 -5
- package/src/clipboard.ts +11 -2
- package/src/dialog/parts.tsx +2 -2
- package/src/file-tree/helpers.ts +10 -0
- package/src/file-tree/parts.tsx +1 -1
- package/src/file-tree/use-slots.ts +68 -23
- package/src/format/datetime.ts +17 -0
- package/src/format/index.ts +1 -0
- package/src/index.ts +6 -3
- package/src/key-value-list/parts.tsx +1 -1
- package/src/locales/en.ts +82 -0
- package/src/locales/nl.ts +82 -0
- package/src/locales.ts +3 -2
- package/src/menu/parts.tsx +4 -4
- package/src/middle-truncate.ts +41 -0
- package/src/popover/parts.tsx +2 -2
- package/src/prefetch.ts +6 -1
- package/src/settings/ConfirmDialog.tsx +7 -1
- package/src/settings/SettingsDialog.tsx +1 -1
- package/src/tabs/parts.tsx +156 -54
- package/src/testing/dedupe.ts +87 -24
- package/src/theme.css +24 -8
- package/src/tree/parts.tsx +1 -1
- package/src/workspace/DropPreview.tsx +26 -0
- package/src/workspace/SplitView.tsx +58 -22
- package/src/workspace/TabStrip.tsx +1 -1
- package/src/workspace/Workspace.tsx +7 -3
- package/src/workspace/preview.ts +22 -9
- package/dist/locales/en.json +0 -82
- package/dist/locales/nl.json +0 -82
- package/src/locales/en.json +0 -82
- package/src/locales/nl.json +0 -82
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type KeyboardEvent,
|
|
13
13
|
type ReactNode
|
|
14
14
|
} from 'react';
|
|
15
|
-
import { useRender } from '@base-ui
|
|
15
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
16
16
|
import { GripVertical, Maximize2, Minimize2 } from 'lucide-react';
|
|
17
17
|
import clsx from 'clsx';
|
|
18
18
|
import { useTranslation } from 'react-i18next';
|
|
@@ -31,7 +31,8 @@ import {
|
|
|
31
31
|
} from './geometry.ts';
|
|
32
32
|
import { splitPanes, updateSplitLayout, type SplitCommand, type SplitLayout, type SplitPane } from './model.ts';
|
|
33
33
|
import { TabStrip, type TabStripItem, type TabStripProps } from './TabStrip.tsx';
|
|
34
|
-
import {
|
|
34
|
+
import { DropPreview } from './DropPreview.tsx';
|
|
35
|
+
import { rectDropPreview, sameDropPreview, tabDropPreview, type DropPreviewShape } from './preview.ts';
|
|
35
36
|
|
|
36
37
|
export interface SplitViewInfo {
|
|
37
38
|
paneId: string;
|
|
@@ -150,6 +151,7 @@ function Divider({
|
|
|
150
151
|
event.preventDefault();
|
|
151
152
|
cleanup.current?.();
|
|
152
153
|
const element = event.currentTarget;
|
|
154
|
+
const view = element.ownerDocument.defaultView;
|
|
153
155
|
const pointerId = event.pointerId;
|
|
154
156
|
const start = horizontal ? event.clientX : event.clientY;
|
|
155
157
|
const parent = element.parentElement;
|
|
@@ -157,16 +159,46 @@ function Divider({
|
|
|
157
159
|
const scale = horizontal ? (rect?.width ?? 1) / (parent?.clientWidth || 1) : (rect?.height ?? 1) / (parent?.clientHeight || 1);
|
|
158
160
|
element.dataset.resizing = '';
|
|
159
161
|
element.focus();
|
|
162
|
+
// A pointer reports more often than the screen draws; one resize per frame is all that shows.
|
|
163
|
+
let frame = 0;
|
|
164
|
+
let pending: PointerEvent | null = null;
|
|
165
|
+
const apply = (): void => {
|
|
166
|
+
frame = 0;
|
|
167
|
+
const next = pending;
|
|
168
|
+
pending = null;
|
|
169
|
+
if (next) {
|
|
170
|
+
const delta = ((horizontal ? next.clientX : next.clientY) - start) / (scale || 1);
|
|
171
|
+
onResize(resizeSplit(divider, delta, next.altKey, 8 / (scale || 1), minimumResizeShare));
|
|
172
|
+
}
|
|
173
|
+
};
|
|
160
174
|
const move = (next: PointerEvent): void => {
|
|
161
175
|
if (next.pointerId !== pointerId) {
|
|
162
176
|
return;
|
|
163
177
|
}
|
|
164
|
-
|
|
165
|
-
|
|
178
|
+
pending = next;
|
|
179
|
+
if (frame !== 0) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (view) {
|
|
183
|
+
frame = view.requestAnimationFrame(apply);
|
|
184
|
+
} else {
|
|
185
|
+
apply();
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
const release = (): void => {
|
|
189
|
+
if (frame !== 0) {
|
|
190
|
+
view?.cancelAnimationFrame(frame);
|
|
191
|
+
apply();
|
|
192
|
+
}
|
|
193
|
+
end();
|
|
166
194
|
};
|
|
167
195
|
const end = (): void => {
|
|
196
|
+
if (frame !== 0) {
|
|
197
|
+
view?.cancelAnimationFrame(frame);
|
|
198
|
+
frame = 0;
|
|
199
|
+
}
|
|
168
200
|
element.removeEventListener('pointermove', move);
|
|
169
|
-
element.removeEventListener('pointerup',
|
|
201
|
+
element.removeEventListener('pointerup', release);
|
|
170
202
|
element.removeEventListener('pointercancel', end);
|
|
171
203
|
element.removeEventListener('lostpointercapture', end);
|
|
172
204
|
element.ownerDocument.defaultView?.removeEventListener('blur', end);
|
|
@@ -179,7 +211,7 @@ function Divider({
|
|
|
179
211
|
cleanup.current = end;
|
|
180
212
|
element.setPointerCapture(pointerId);
|
|
181
213
|
element.addEventListener('pointermove', move);
|
|
182
|
-
element.addEventListener('pointerup',
|
|
214
|
+
element.addEventListener('pointerup', release);
|
|
183
215
|
element.addEventListener('pointercancel', end);
|
|
184
216
|
element.addEventListener('lostpointercapture', end);
|
|
185
217
|
element.ownerDocument.defaultView?.addEventListener('blur', end);
|
|
@@ -243,6 +275,14 @@ export function SplitView({
|
|
|
243
275
|
const [dragging, setDragging] = useState(false);
|
|
244
276
|
const drag = useRef<(SplitDrag & { width: number }) | null>(null);
|
|
245
277
|
const [preview, setPreview] = useState<DropPreviewShape | null>(null);
|
|
278
|
+
// A dragover fires many times a second; only a different shape is worth a render.
|
|
279
|
+
const shownPreview = useRef<DropPreviewShape | null>(null);
|
|
280
|
+
const showPreview = useCallback((shape: DropPreviewShape | null): void => {
|
|
281
|
+
if (!sameDropPreview(shownPreview.current, shape)) {
|
|
282
|
+
shownPreview.current = shape;
|
|
283
|
+
setPreview(shape);
|
|
284
|
+
}
|
|
285
|
+
}, []);
|
|
246
286
|
const latest = useRef({ value, onValueChange });
|
|
247
287
|
useLayoutEffect(() => {
|
|
248
288
|
latest.current = { value, onValueChange };
|
|
@@ -290,8 +330,8 @@ export function SplitView({
|
|
|
290
330
|
const stopDrag = useCallback((): void => {
|
|
291
331
|
drag.current = null;
|
|
292
332
|
setDragging(false);
|
|
293
|
-
|
|
294
|
-
}, []);
|
|
333
|
+
showPreview(null);
|
|
334
|
+
}, [showPreview]);
|
|
295
335
|
useEffect(() => {
|
|
296
336
|
if (!dragging) {
|
|
297
337
|
return;
|
|
@@ -391,9 +431,9 @@ export function SplitView({
|
|
|
391
431
|
return null;
|
|
392
432
|
}
|
|
393
433
|
const header = Math.min(barHeight, rect.height);
|
|
394
|
-
const strip = paneElement(root.current, 'splitHeader', rect.pane.id);
|
|
395
|
-
const tabRects = Array.from(strip?.querySelectorAll('[data-document-tab]') ?? [], (element) => element.getBoundingClientRect());
|
|
396
434
|
const inHeader = y < rect.y + header;
|
|
435
|
+
const strip = inHeader ? paneElement(root.current, 'splitHeader', rect.pane.id) : undefined;
|
|
436
|
+
const tabRects = Array.from(strip?.querySelectorAll('[data-document-tab]') ?? [], (element) => element.getBoundingClientRect());
|
|
397
437
|
const side = inHeader ? undefined : (splitSideAt(rect, x, y) ?? 'center');
|
|
398
438
|
const index = inHeader ? tabGapAt(tabRects, event.clientX) : undefined;
|
|
399
439
|
const target: SplitDropTarget = { paneId: rect.pane.id, side, index };
|
|
@@ -406,7 +446,7 @@ export function SplitView({
|
|
|
406
446
|
return null;
|
|
407
447
|
}
|
|
408
448
|
if (side === 'center') {
|
|
409
|
-
return { target, shape:
|
|
449
|
+
return { target, shape: rectDropPreview(rect) };
|
|
410
450
|
}
|
|
411
451
|
if (side) {
|
|
412
452
|
const horizontal = side === 'left' || side === 'right';
|
|
@@ -414,7 +454,7 @@ export function SplitView({
|
|
|
414
454
|
const height = horizontal ? rect.height : Math.max(0, (rect.height - gap) / 2);
|
|
415
455
|
return {
|
|
416
456
|
target,
|
|
417
|
-
shape:
|
|
457
|
+
shape: rectDropPreview({
|
|
418
458
|
x: side === 'right' ? rect.x + rect.width - width : rect.x,
|
|
419
459
|
y: side === 'bottom' ? rect.y + rect.height - height : rect.y,
|
|
420
460
|
width,
|
|
@@ -423,7 +463,7 @@ export function SplitView({
|
|
|
423
463
|
};
|
|
424
464
|
}
|
|
425
465
|
if (header === 0) {
|
|
426
|
-
return { target, shape:
|
|
466
|
+
return { target, shape: rectDropPreview(rect) };
|
|
427
467
|
}
|
|
428
468
|
const tabWidth = Math.min(rect.width, (drag.current?.width ?? 128) / (measurement.scaleX || 1));
|
|
429
469
|
const next = tabRects[index ?? tabRects.length];
|
|
@@ -431,7 +471,7 @@ export function SplitView({
|
|
|
431
471
|
const relative = Math.max(0, Math.min(rect.width - tabWidth, (left - measurement.left) / (measurement.scaleX || 1) - rect.x));
|
|
432
472
|
return {
|
|
433
473
|
target,
|
|
434
|
-
shape:
|
|
474
|
+
shape: tabDropPreview(
|
|
435
475
|
{ gap: index ?? rect.pane.views.length, left: relative, tabWidth, width: rect.width, height: rect.height, barHeight: header },
|
|
436
476
|
{ x: rect.x, y: rect.y }
|
|
437
477
|
)
|
|
@@ -493,11 +533,11 @@ export function SplitView({
|
|
|
493
533
|
onDragOver: (event: DragEvent<HTMLDivElement>) => {
|
|
494
534
|
props.onDragOver?.(event);
|
|
495
535
|
if (event.defaultPrevented) {
|
|
496
|
-
|
|
536
|
+
showPreview(null);
|
|
497
537
|
return;
|
|
498
538
|
}
|
|
499
539
|
const drop = locateDrop(event);
|
|
500
|
-
|
|
540
|
+
showPreview(drop?.shape ?? null);
|
|
501
541
|
if (drop) {
|
|
502
542
|
event.preventDefault();
|
|
503
543
|
event.dataTransfer.dropEffect = drag.current ? 'move' : 'copy';
|
|
@@ -506,7 +546,7 @@ export function SplitView({
|
|
|
506
546
|
onDragLeave: (event: DragEvent<HTMLDivElement>) => {
|
|
507
547
|
props.onDragLeave?.(event);
|
|
508
548
|
if (!(event.relatedTarget instanceof Node) || !event.currentTarget.contains(event.relatedTarget)) {
|
|
509
|
-
|
|
549
|
+
showPreview(null);
|
|
510
550
|
}
|
|
511
551
|
},
|
|
512
552
|
onDrop: (event: DragEvent<HTMLDivElement>) => {
|
|
@@ -648,11 +688,7 @@ export function SplitView({
|
|
|
648
688
|
}
|
|
649
689
|
/>
|
|
650
690
|
))}
|
|
651
|
-
{preview
|
|
652
|
-
<svg className="ade-split-preview" width="100%" height="100%" aria-hidden="true">
|
|
653
|
-
<path style={{ d: `path("${dropPreviewPath(preview)}")` }} />
|
|
654
|
-
</svg>
|
|
655
|
-
)}
|
|
691
|
+
<DropPreview shape={preview} />
|
|
656
692
|
</>
|
|
657
693
|
)
|
|
658
694
|
}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
type UIEvent,
|
|
13
13
|
type WheelEvent
|
|
14
14
|
} from 'react';
|
|
15
|
-
import { useRender } from '@base-ui
|
|
15
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
16
16
|
import { Pin, X } from 'lucide-react';
|
|
17
17
|
import clsx from 'clsx';
|
|
18
18
|
import { useTranslation } from 'react-i18next';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { useMemo, type ReactNode } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import { useRender } from '@base-ui
|
|
3
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
4
4
|
import { WorkspaceContext, type WorkspaceLayout } from './context.ts';
|
|
5
5
|
|
|
6
6
|
export interface WorkspaceProps extends useRender.ComponentProps<'div'> {
|
|
@@ -70,5 +70,9 @@ export function Workspace({
|
|
|
70
70
|
)
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
|
-
|
|
73
|
+
const context = useMemo(
|
|
74
|
+
() => ({ layout, edges: { top: !hasToolbar, right: !rightOpen, bottom: true, left: !leftOpen } }),
|
|
75
|
+
[layout, hasToolbar, rightOpen, leftOpen]
|
|
76
|
+
);
|
|
77
|
+
return <WorkspaceContext value={context}>{element}</WorkspaceContext>;
|
|
74
78
|
}
|
package/src/workspace/preview.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SplitRect } from './geometry.ts';
|
|
2
|
+
|
|
1
3
|
/* The gap above the indicator's tab, so it reads as a tab standing in the bar. */
|
|
2
4
|
export const TAB_TOP_INSET = 4;
|
|
3
5
|
|
|
@@ -27,13 +29,6 @@ export interface DropPreviewShape {
|
|
|
27
29
|
radius: number;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
|
-
export interface PreviewRect {
|
|
31
|
-
x: number;
|
|
32
|
-
y: number;
|
|
33
|
-
width: number;
|
|
34
|
-
height: number;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
32
|
function coordinate(value: number): string {
|
|
38
33
|
return String(Math.round(value * 100) / 100 + 0);
|
|
39
34
|
}
|
|
@@ -42,12 +37,12 @@ function coordinate(value: number): string {
|
|
|
42
37
|
* The preview for a split or a trade: the rectangle as a tab with no height, parked just inside its
|
|
43
38
|
* top left corner so the corner keeps its radius. It is where a tab target grows out of the rectangle.
|
|
44
39
|
*/
|
|
45
|
-
export function
|
|
40
|
+
export function rectDropPreview({ x, y, width, height }: SplitRect): DropPreviewShape {
|
|
46
41
|
return { x, y, width, height, barHeight: 0, tabLeft: x + BODY_RADIUS, tabWidth: 0, tabTop: y, radius: TAB_RADIUS };
|
|
47
42
|
}
|
|
48
43
|
|
|
49
44
|
/* The preview for a tab: the tab and the body of the cell it lands in, `origin` being the cell's top left in the grid. */
|
|
50
|
-
export function
|
|
45
|
+
export function tabDropPreview(drop: TabDrop, origin: { x: number; y: number }): DropPreviewShape {
|
|
51
46
|
return {
|
|
52
47
|
x: origin.x,
|
|
53
48
|
y: origin.y,
|
|
@@ -61,6 +56,24 @@ export function tabPreview(drop: TabDrop, origin: { x: number; y: number }): Dro
|
|
|
61
56
|
};
|
|
62
57
|
}
|
|
63
58
|
|
|
59
|
+
/* Two shapes that draw the same outline, so a drag that stays in one place can skip a render. */
|
|
60
|
+
export function sameDropPreview(left: DropPreviewShape | null, right: DropPreviewShape | null): boolean {
|
|
61
|
+
if (left === null || right === null) {
|
|
62
|
+
return left === right;
|
|
63
|
+
}
|
|
64
|
+
return (
|
|
65
|
+
left.x === right.x &&
|
|
66
|
+
left.y === right.y &&
|
|
67
|
+
left.width === right.width &&
|
|
68
|
+
left.height === right.height &&
|
|
69
|
+
left.barHeight === right.barHeight &&
|
|
70
|
+
left.tabLeft === right.tabLeft &&
|
|
71
|
+
left.tabWidth === right.tabWidth &&
|
|
72
|
+
left.tabTop === right.tabTop &&
|
|
73
|
+
left.radius === right.radius
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
64
77
|
/*
|
|
65
78
|
* The outline of a tab grown into the body under it, as one closed path so no line runs between the
|
|
66
79
|
* two. The commands are the same whatever the numbers are (an arc of radius 0 is a straight line), so
|
package/dist/locales/en.json
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"action": {
|
|
3
|
-
"cancel": "Cancel",
|
|
4
|
-
"copy": "Copy",
|
|
5
|
-
"copyError": "Copy error",
|
|
6
|
-
"dismiss": "Dismiss",
|
|
7
|
-
"reload": "Reload",
|
|
8
|
-
"retry": "Try again",
|
|
9
|
-
"select": "Select",
|
|
10
|
-
"selectAll": "Select all"
|
|
11
|
-
},
|
|
12
|
-
"accent": {
|
|
13
|
-
"more": "More colors"
|
|
14
|
-
},
|
|
15
|
-
"settings": {
|
|
16
|
-
"title": "Settings",
|
|
17
|
-
"section": "Settings section",
|
|
18
|
-
"sections": "Settings sections",
|
|
19
|
-
"close": "Close settings",
|
|
20
|
-
"failed": "This settings page failed to render",
|
|
21
|
-
"search": {
|
|
22
|
-
"placeholder": "Search settings",
|
|
23
|
-
"clear": "Clear search",
|
|
24
|
-
"none": "Nothing matches \"{{query}}\".",
|
|
25
|
-
"results": "Search results",
|
|
26
|
-
"pane": "Section"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"controls": {
|
|
30
|
-
"stepper": {
|
|
31
|
-
"smaller": "Smaller",
|
|
32
|
-
"larger": "Larger",
|
|
33
|
-
"smallerFor": "{{label}}: smaller",
|
|
34
|
-
"largerFor": "{{label}}: larger"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"select": {
|
|
38
|
-
"search": "Search",
|
|
39
|
-
"noMatch": "No option matches “{{query}}”"
|
|
40
|
-
},
|
|
41
|
-
"iconPicker": {
|
|
42
|
-
"label": "Icon",
|
|
43
|
-
"none": "No icon",
|
|
44
|
-
"search": "Find an icon",
|
|
45
|
-
"clear": "Clear search",
|
|
46
|
-
"noMatch": "No icon matches “{{query}}”"
|
|
47
|
-
},
|
|
48
|
-
"zoom": {
|
|
49
|
-
"out": "Zoom out",
|
|
50
|
-
"in": "Zoom in",
|
|
51
|
-
"presets": "Zoom presets",
|
|
52
|
-
"fit": "Zoom to fit",
|
|
53
|
-
"fitEverything": "Fit everything"
|
|
54
|
-
},
|
|
55
|
-
"waveform": {
|
|
56
|
-
"position": "{{time}} of {{duration}}"
|
|
57
|
-
},
|
|
58
|
-
"projectSwitcher": {
|
|
59
|
-
"label": "Projects",
|
|
60
|
-
"recent": "Recent projects",
|
|
61
|
-
"actionsFor": "Actions for {{name}}"
|
|
62
|
-
},
|
|
63
|
-
"tabs": {
|
|
64
|
-
"more": "More",
|
|
65
|
-
"close": "Close tab"
|
|
66
|
-
},
|
|
67
|
-
"tree": {
|
|
68
|
-
"label": "Files",
|
|
69
|
-
"expand": "Expand",
|
|
70
|
-
"collapse": "Collapse"
|
|
71
|
-
},
|
|
72
|
-
"workspace": {
|
|
73
|
-
"tabs": "Open views",
|
|
74
|
-
"unsaved": "Unsaved changes",
|
|
75
|
-
"closeTab": "Close {{name}}",
|
|
76
|
-
"resize": "Resize panels",
|
|
77
|
-
"pane": "Panel",
|
|
78
|
-
"movePane": "Move panel",
|
|
79
|
-
"maximize": "Maximize panel",
|
|
80
|
-
"restore": "Restore panels"
|
|
81
|
-
}
|
|
82
|
-
}
|
package/dist/locales/nl.json
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"action": {
|
|
3
|
-
"cancel": "Annuleren",
|
|
4
|
-
"copy": "Kopiëren",
|
|
5
|
-
"copyError": "Fout kopiëren",
|
|
6
|
-
"dismiss": "Sluiten",
|
|
7
|
-
"reload": "Herladen",
|
|
8
|
-
"retry": "Opnieuw proberen",
|
|
9
|
-
"select": "Selecteren",
|
|
10
|
-
"selectAll": "Alles selecteren"
|
|
11
|
-
},
|
|
12
|
-
"accent": {
|
|
13
|
-
"more": "Meer kleuren"
|
|
14
|
-
},
|
|
15
|
-
"settings": {
|
|
16
|
-
"title": "Instellingen",
|
|
17
|
-
"section": "Onderdeel van de instellingen",
|
|
18
|
-
"sections": "Onderdelen van de instellingen",
|
|
19
|
-
"close": "Instellingen sluiten",
|
|
20
|
-
"failed": "Deze instellingenpagina kon niet worden getekend",
|
|
21
|
-
"search": {
|
|
22
|
-
"placeholder": "Instellingen zoeken",
|
|
23
|
-
"clear": "Zoekopdracht wissen",
|
|
24
|
-
"none": "Niets komt overeen met \"{{query}}\".",
|
|
25
|
-
"results": "Zoekresultaten",
|
|
26
|
-
"pane": "Onderdeel"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"controls": {
|
|
30
|
-
"stepper": {
|
|
31
|
-
"smaller": "Kleiner",
|
|
32
|
-
"larger": "Groter",
|
|
33
|
-
"smallerFor": "{{label}}: kleiner",
|
|
34
|
-
"largerFor": "{{label}}: groter"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"select": {
|
|
38
|
-
"search": "Zoeken",
|
|
39
|
-
"noMatch": "Geen optie past bij “{{query}}”"
|
|
40
|
-
},
|
|
41
|
-
"iconPicker": {
|
|
42
|
-
"label": "Icoon",
|
|
43
|
-
"none": "Geen icoon",
|
|
44
|
-
"search": "Zoek een icoon",
|
|
45
|
-
"clear": "Zoekopdracht wissen",
|
|
46
|
-
"noMatch": "Geen icoon past bij “{{query}}”"
|
|
47
|
-
},
|
|
48
|
-
"zoom": {
|
|
49
|
-
"out": "Uitzoomen",
|
|
50
|
-
"in": "Inzoomen",
|
|
51
|
-
"presets": "Zoomstanden",
|
|
52
|
-
"fit": "Zoomen tot alles past",
|
|
53
|
-
"fitEverything": "Alles laten passen"
|
|
54
|
-
},
|
|
55
|
-
"waveform": {
|
|
56
|
-
"position": "{{time}} van {{duration}}"
|
|
57
|
-
},
|
|
58
|
-
"projectSwitcher": {
|
|
59
|
-
"label": "Projecten",
|
|
60
|
-
"recent": "Recente projecten",
|
|
61
|
-
"actionsFor": "Acties voor {{name}}"
|
|
62
|
-
},
|
|
63
|
-
"tabs": {
|
|
64
|
-
"more": "Meer",
|
|
65
|
-
"close": "Tabblad sluiten"
|
|
66
|
-
},
|
|
67
|
-
"tree": {
|
|
68
|
-
"label": "Bestanden",
|
|
69
|
-
"expand": "Uitvouwen",
|
|
70
|
-
"collapse": "Invouwen"
|
|
71
|
-
},
|
|
72
|
-
"workspace": {
|
|
73
|
-
"tabs": "Open views",
|
|
74
|
-
"unsaved": "Niet-opgeslagen wijzigingen",
|
|
75
|
-
"closeTab": "Sluit {{name}}",
|
|
76
|
-
"resize": "Panelen vergroten of verkleinen",
|
|
77
|
-
"pane": "Paneel",
|
|
78
|
-
"movePane": "Paneel verplaatsen",
|
|
79
|
-
"maximize": "Paneel maximaliseren",
|
|
80
|
-
"restore": "Panelen herstellen"
|
|
81
|
-
}
|
|
82
|
-
}
|
package/src/locales/en.json
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"action": {
|
|
3
|
-
"cancel": "Cancel",
|
|
4
|
-
"copy": "Copy",
|
|
5
|
-
"copyError": "Copy error",
|
|
6
|
-
"dismiss": "Dismiss",
|
|
7
|
-
"reload": "Reload",
|
|
8
|
-
"retry": "Try again",
|
|
9
|
-
"select": "Select",
|
|
10
|
-
"selectAll": "Select all"
|
|
11
|
-
},
|
|
12
|
-
"accent": {
|
|
13
|
-
"more": "More colors"
|
|
14
|
-
},
|
|
15
|
-
"settings": {
|
|
16
|
-
"title": "Settings",
|
|
17
|
-
"section": "Settings section",
|
|
18
|
-
"sections": "Settings sections",
|
|
19
|
-
"close": "Close settings",
|
|
20
|
-
"failed": "This settings page failed to render",
|
|
21
|
-
"search": {
|
|
22
|
-
"placeholder": "Search settings",
|
|
23
|
-
"clear": "Clear search",
|
|
24
|
-
"none": "Nothing matches \"{{query}}\".",
|
|
25
|
-
"results": "Search results",
|
|
26
|
-
"pane": "Section"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"controls": {
|
|
30
|
-
"stepper": {
|
|
31
|
-
"smaller": "Smaller",
|
|
32
|
-
"larger": "Larger",
|
|
33
|
-
"smallerFor": "{{label}}: smaller",
|
|
34
|
-
"largerFor": "{{label}}: larger"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"select": {
|
|
38
|
-
"search": "Search",
|
|
39
|
-
"noMatch": "No option matches “{{query}}”"
|
|
40
|
-
},
|
|
41
|
-
"iconPicker": {
|
|
42
|
-
"label": "Icon",
|
|
43
|
-
"none": "No icon",
|
|
44
|
-
"search": "Find an icon",
|
|
45
|
-
"clear": "Clear search",
|
|
46
|
-
"noMatch": "No icon matches “{{query}}”"
|
|
47
|
-
},
|
|
48
|
-
"zoom": {
|
|
49
|
-
"out": "Zoom out",
|
|
50
|
-
"in": "Zoom in",
|
|
51
|
-
"presets": "Zoom presets",
|
|
52
|
-
"fit": "Zoom to fit",
|
|
53
|
-
"fitEverything": "Fit everything"
|
|
54
|
-
},
|
|
55
|
-
"waveform": {
|
|
56
|
-
"position": "{{time}} of {{duration}}"
|
|
57
|
-
},
|
|
58
|
-
"projectSwitcher": {
|
|
59
|
-
"label": "Projects",
|
|
60
|
-
"recent": "Recent projects",
|
|
61
|
-
"actionsFor": "Actions for {{name}}"
|
|
62
|
-
},
|
|
63
|
-
"tabs": {
|
|
64
|
-
"more": "More",
|
|
65
|
-
"close": "Close tab"
|
|
66
|
-
},
|
|
67
|
-
"tree": {
|
|
68
|
-
"label": "Files",
|
|
69
|
-
"expand": "Expand",
|
|
70
|
-
"collapse": "Collapse"
|
|
71
|
-
},
|
|
72
|
-
"workspace": {
|
|
73
|
-
"tabs": "Open views",
|
|
74
|
-
"unsaved": "Unsaved changes",
|
|
75
|
-
"closeTab": "Close {{name}}",
|
|
76
|
-
"resize": "Resize panels",
|
|
77
|
-
"pane": "Panel",
|
|
78
|
-
"movePane": "Move panel",
|
|
79
|
-
"maximize": "Maximize panel",
|
|
80
|
-
"restore": "Restore panels"
|
|
81
|
-
}
|
|
82
|
-
}
|
package/src/locales/nl.json
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"action": {
|
|
3
|
-
"cancel": "Annuleren",
|
|
4
|
-
"copy": "Kopiëren",
|
|
5
|
-
"copyError": "Fout kopiëren",
|
|
6
|
-
"dismiss": "Sluiten",
|
|
7
|
-
"reload": "Herladen",
|
|
8
|
-
"retry": "Opnieuw proberen",
|
|
9
|
-
"select": "Selecteren",
|
|
10
|
-
"selectAll": "Alles selecteren"
|
|
11
|
-
},
|
|
12
|
-
"accent": {
|
|
13
|
-
"more": "Meer kleuren"
|
|
14
|
-
},
|
|
15
|
-
"settings": {
|
|
16
|
-
"title": "Instellingen",
|
|
17
|
-
"section": "Onderdeel van de instellingen",
|
|
18
|
-
"sections": "Onderdelen van de instellingen",
|
|
19
|
-
"close": "Instellingen sluiten",
|
|
20
|
-
"failed": "Deze instellingenpagina kon niet worden getekend",
|
|
21
|
-
"search": {
|
|
22
|
-
"placeholder": "Instellingen zoeken",
|
|
23
|
-
"clear": "Zoekopdracht wissen",
|
|
24
|
-
"none": "Niets komt overeen met \"{{query}}\".",
|
|
25
|
-
"results": "Zoekresultaten",
|
|
26
|
-
"pane": "Onderdeel"
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"controls": {
|
|
30
|
-
"stepper": {
|
|
31
|
-
"smaller": "Kleiner",
|
|
32
|
-
"larger": "Groter",
|
|
33
|
-
"smallerFor": "{{label}}: kleiner",
|
|
34
|
-
"largerFor": "{{label}}: groter"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"select": {
|
|
38
|
-
"search": "Zoeken",
|
|
39
|
-
"noMatch": "Geen optie past bij “{{query}}”"
|
|
40
|
-
},
|
|
41
|
-
"iconPicker": {
|
|
42
|
-
"label": "Icoon",
|
|
43
|
-
"none": "Geen icoon",
|
|
44
|
-
"search": "Zoek een icoon",
|
|
45
|
-
"clear": "Zoekopdracht wissen",
|
|
46
|
-
"noMatch": "Geen icoon past bij “{{query}}”"
|
|
47
|
-
},
|
|
48
|
-
"zoom": {
|
|
49
|
-
"out": "Uitzoomen",
|
|
50
|
-
"in": "Inzoomen",
|
|
51
|
-
"presets": "Zoomstanden",
|
|
52
|
-
"fit": "Zoomen tot alles past",
|
|
53
|
-
"fitEverything": "Alles laten passen"
|
|
54
|
-
},
|
|
55
|
-
"waveform": {
|
|
56
|
-
"position": "{{time}} van {{duration}}"
|
|
57
|
-
},
|
|
58
|
-
"projectSwitcher": {
|
|
59
|
-
"label": "Projecten",
|
|
60
|
-
"recent": "Recente projecten",
|
|
61
|
-
"actionsFor": "Acties voor {{name}}"
|
|
62
|
-
},
|
|
63
|
-
"tabs": {
|
|
64
|
-
"more": "Meer",
|
|
65
|
-
"close": "Tabblad sluiten"
|
|
66
|
-
},
|
|
67
|
-
"tree": {
|
|
68
|
-
"label": "Bestanden",
|
|
69
|
-
"expand": "Uitvouwen",
|
|
70
|
-
"collapse": "Invouwen"
|
|
71
|
-
},
|
|
72
|
-
"workspace": {
|
|
73
|
-
"tabs": "Open views",
|
|
74
|
-
"unsaved": "Niet-opgeslagen wijzigingen",
|
|
75
|
-
"closeTab": "Sluit {{name}}",
|
|
76
|
-
"resize": "Panelen vergroten of verkleinen",
|
|
77
|
-
"pane": "Paneel",
|
|
78
|
-
"movePane": "Paneel verplaatsen",
|
|
79
|
-
"maximize": "Paneel maximaliseren",
|
|
80
|
-
"restore": "Panelen herstellen"
|
|
81
|
-
}
|
|
82
|
-
}
|