@nvidia-elements/core 2.22.4 → 2.23.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 +13 -0
- package/dist/accordion/accordion2.js +4 -4
- package/dist/alert/alert-group2.js +1 -1
- package/dist/alert/alert2.js +1 -1
- package/dist/avatar/avatar-group2.js +1 -1
- package/dist/avatar/avatar2.js +1 -1
- package/dist/badge/badge2.js +1 -1
- package/dist/breadcrumb/breadcrumb2.js +1 -1
- package/dist/bundle.d.ts +4 -0
- package/dist/bundles/index.d.ts +336 -0
- package/dist/bundles/index.js +14 -14
- package/dist/button/button2.js +1 -1
- package/dist/button-group/button-group2.js +1 -1
- package/dist/card/card2.js +4 -4
- package/dist/chat-message/chat-message2.js +1 -1
- package/dist/checkbox/checkbox-group2.js +1 -1
- package/dist/checkbox/checkbox2.js +1 -1
- package/dist/color/color2.js +6 -6
- package/dist/combobox/combobox2.js +1 -1
- package/dist/copy-button/copy-button2.js +1 -1
- package/dist/custom-elements-jsx.d.ts +189 -0
- package/dist/custom-elements-vue.d.ts +189 -0
- package/dist/custom-elements.json +6555 -0
- package/dist/data.html.json +133 -0
- package/dist/data.snippets.json +27 -27
- package/dist/date/date2.js +6 -6
- package/dist/datetime/datetime2.js +6 -6
- package/dist/dialog/dialog-footer2.js +1 -1
- package/dist/dialog/dialog-header2.js +1 -1
- package/dist/dialog/dialog2.js +1 -1
- package/dist/divider/divider2.js +1 -1
- package/dist/dot/dot2.js +1 -1
- package/dist/drag-handle/drag-handle2.js +1 -1
- package/dist/drawer/drawer-content2.js +1 -1
- package/dist/drawer/drawer-footer2.js +1 -1
- package/dist/drawer/drawer-header2.js +1 -1
- package/dist/drawer/drawer2.js +1 -1
- package/dist/dropdown/dropdown-footer2.js +1 -1
- package/dist/dropdown/dropdown-header2.js +1 -1
- package/dist/dropdown/dropdown2.js +1 -1
- package/dist/dropdown-group/dropdown-group.js +1 -1
- package/dist/dropzone/dropzone2.js +1 -1
- package/dist/file/file2.js +1 -1
- package/dist/format-bytes/format-bytes2.js +1 -1
- package/dist/format-datetime/format-datetime2.js +1 -1
- package/dist/format-number/format-number2.js +1 -1
- package/dist/format-relative-time/format-relative-time2.js +1 -1
- package/dist/format-truncate/format-truncate2.js +1 -1
- package/dist/forms/control/control2.js +1 -1
- package/dist/forms/control-group/control-group2.js +1 -1
- package/dist/forms/control-message/control-message2.js +1 -1
- package/dist/gauge/gauge2.js +1 -1
- package/dist/ghost/define.d.ts +6 -0
- package/dist/ghost/define.js +6 -0
- package/dist/ghost/define.js.map +1 -0
- package/dist/ghost/ghost.d.ts +27 -0
- package/dist/ghost/ghost.examples.js +5 -0
- package/dist/ghost/ghost.examples.js.map +1 -0
- package/dist/ghost/ghost.examples.json +37 -0
- package/dist/ghost/ghost.js +5 -0
- package/dist/ghost/ghost.js.map +1 -0
- package/dist/ghost/ghost2.js +28 -0
- package/dist/ghost/ghost2.js.map +1 -0
- package/dist/ghost/index.d.ts +1 -0
- package/dist/ghost/index.js +1 -0
- package/dist/grid/cell/cell2.js +1 -1
- package/dist/grid/column/column2.js +1 -1
- package/dist/grid/footer/footer2.js +1 -1
- package/dist/grid/grid2.js +1 -1
- package/dist/grid/header/header2.js +1 -1
- package/dist/grid/placeholder/placeholder2.js +1 -1
- package/dist/grid/row/row2.js +1 -1
- package/dist/icon/icon2.js +2 -2
- package/dist/icon-button/icon-button2.js +1 -1
- package/dist/iframe/iframe2.js +1 -1
- package/dist/index.js +1 -1
- package/dist/input/input-group2.js +1 -1
- package/dist/input/input2.js +1 -1
- package/dist/internal/utils/a11y.js.map +1 -1
- package/dist/joystick/joystick2.js +5 -5
- package/dist/logo/logo2.js +1 -1
- package/dist/menu/menu-group2.js +1 -1
- package/dist/menu/menu-item2.js +1 -1
- package/dist/menu/menu2.js +1 -1
- package/dist/month/month2.js +6 -6
- package/dist/notification/notification-group2.js +1 -1
- package/dist/notification/notification2.js +1 -1
- package/dist/page/page-panel/page-panel-content2.js +1 -1
- package/dist/page/page-panel/page-panel-footer2.js +1 -1
- package/dist/page/page-panel/page-panel-header2.js +1 -1
- package/dist/page/page-panel/page-panel2.js +1 -1
- package/dist/page/page2.js +1 -1
- package/dist/page-header/page-header2.js +1 -1
- package/dist/page-loader/page-loader2.js +1 -1
- package/dist/pagination/pagination2.js +1 -1
- package/dist/panel/panel2.js +4 -4
- package/dist/password/password2.js +6 -6
- package/dist/polyfills/index.d.ts +4 -7
- package/dist/polyfills/index.js +0 -8
- package/dist/preferences-input/preferences-input2.js +5 -5
- package/dist/progress-bar/progress-bar2.js +1 -1
- package/dist/progress-dot/progress-dot2.js +1 -1
- package/dist/progress-ring/progress-ring2.js +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip2.js +1 -1
- package/dist/pulse/pulse2.js +1 -1
- package/dist/radio/radio-group2.js +1 -1
- package/dist/radio/radio2.js +1 -1
- package/dist/range/range2.js +1 -1
- package/dist/resize-handle/resize-handle2.js +5 -5
- package/dist/search/search2.js +6 -6
- package/dist/select/select2.js +1 -1
- package/dist/select/select2.js.map +1 -1
- package/dist/skeleton/skeleton2.js +1 -1
- package/dist/sort-button/sort-button2.js +1 -1
- package/dist/sparkline/sparkline2.js +1 -1
- package/dist/star-rating/star-rating2.js +1 -1
- package/dist/steps/steps2.js +6 -6
- package/dist/switch/switch-group2.js +1 -1
- package/dist/switch/switch2.js +1 -1
- package/dist/tabs/tabs-group2.js +1 -1
- package/dist/tabs/tabs-item-group2.js +1 -1
- package/dist/tabs/tabs2.js +2 -2
- package/dist/tag/tag2.js +5 -5
- package/dist/textarea/textarea2.js +1 -1
- package/dist/time/time2.js +6 -6
- package/dist/toast/toast2.js +1 -1
- package/dist/toast/toast2.js.map +1 -1
- package/dist/toggletip/toggletip-footer2.js +1 -1
- package/dist/toggletip/toggletip-header2.js +1 -1
- package/dist/toggletip/toggletip2.js +1 -1
- package/dist/toolbar/toolbar2.js +1 -1
- package/dist/tooltip/tooltip2.js +1 -1
- package/dist/tree/tree-node2.js +1 -1
- package/dist/tree/tree2.js +1 -1
- package/dist/week/week2.js +6 -6
- package/dist/workspace/controllers/workspace-command.controller.d.ts +34 -0
- package/dist/workspace/controllers/workspace-command.controller.js +87 -0
- package/dist/workspace/controllers/workspace-command.controller.js.map +1 -0
- package/dist/workspace/controllers/workspace-composition.controller.d.ts +54 -0
- package/dist/workspace/controllers/workspace-composition.controller.js +169 -0
- package/dist/workspace/controllers/workspace-composition.controller.js.map +1 -0
- package/dist/workspace/controllers/workspace-fullscreen.controller.d.ts +25 -0
- package/dist/workspace/controllers/workspace-fullscreen.controller.js +84 -0
- package/dist/workspace/controllers/workspace-fullscreen.controller.js.map +1 -0
- package/dist/workspace/controllers/workspace-measurement.controller.d.ts +19 -0
- package/dist/workspace/controllers/workspace-measurement.controller.js +188 -0
- package/dist/workspace/controllers/workspace-measurement.controller.js.map +1 -0
- package/dist/workspace/controllers/workspace-rearrange.controller.d.ts +40 -0
- package/dist/workspace/controllers/workspace-rearrange.controller.js +385 -0
- package/dist/workspace/controllers/workspace-rearrange.controller.js.map +1 -0
- package/dist/workspace/controllers/workspace-resize.controller.d.ts +43 -0
- package/dist/workspace/controllers/workspace-resize.controller.js +168 -0
- package/dist/workspace/controllers/workspace-resize.controller.js.map +1 -0
- package/dist/workspace/controllers/workspace-restoration.controller.d.ts +24 -0
- package/dist/workspace/controllers/workspace-restoration.controller.js +193 -0
- package/dist/workspace/controllers/workspace-restoration.controller.js.map +1 -0
- package/dist/workspace/define.d.ts +10 -0
- package/dist/workspace/define.js +9 -0
- package/dist/workspace/define.js.map +1 -0
- package/dist/workspace/index.d.ts +8 -0
- package/dist/workspace/index.js +6 -0
- package/dist/workspace/panel/panel.d.ts +48 -0
- package/dist/workspace/panel/panel.js +5 -0
- package/dist/workspace/panel/panel.js.map +1 -0
- package/dist/workspace/panel/panel2.js +53 -0
- package/dist/workspace/panel/panel2.js.map +1 -0
- package/dist/workspace/panel-content/panel-content.d.ts +20 -0
- package/dist/workspace/panel-content/panel-content.js +5 -0
- package/dist/workspace/panel-content/panel-content.js.map +1 -0
- package/dist/workspace/panel-content/panel-content2.js +22 -0
- package/dist/workspace/panel-content/panel-content2.js.map +1 -0
- package/dist/workspace/panel-footer/panel-footer.d.ts +24 -0
- package/dist/workspace/panel-footer/panel-footer.js +5 -0
- package/dist/workspace/panel-footer/panel-footer.js.map +1 -0
- package/dist/workspace/panel-footer/panel-footer2.js +28 -0
- package/dist/workspace/panel-footer/panel-footer2.js.map +1 -0
- package/dist/workspace/panel-header/panel-header.d.ts +61 -0
- package/dist/workspace/panel-header/panel-header.js +5 -0
- package/dist/workspace/panel-header/panel-header.js.map +1 -0
- package/dist/workspace/panel-header/panel-header2.js +102 -0
- package/dist/workspace/panel-header/panel-header2.js.map +1 -0
- package/dist/workspace/utils/evaluation.utils.d.ts +83 -0
- package/dist/workspace/utils/evaluation.utils.js +294 -0
- package/dist/workspace/utils/evaluation.utils.js.map +1 -0
- package/dist/workspace/utils/geometry/allocation.utils.d.ts +40 -0
- package/dist/workspace/utils/geometry/allocation.utils.js +73 -0
- package/dist/workspace/utils/geometry/allocation.utils.js.map +1 -0
- package/dist/workspace/utils/geometry/partition.utils.d.ts +10 -0
- package/dist/workspace/utils/geometry/partition.utils.js +40 -0
- package/dist/workspace/utils/geometry/partition.utils.js.map +1 -0
- package/dist/workspace/utils/geometry/sizing.utils.d.ts +35 -0
- package/dist/workspace/utils/geometry/sizing.utils.js +42 -0
- package/dist/workspace/utils/geometry/sizing.utils.js.map +1 -0
- package/dist/workspace/utils/interaction/boundary.utils.d.ts +40 -0
- package/dist/workspace/utils/interaction/boundary.utils.js +91 -0
- package/dist/workspace/utils/interaction/boundary.utils.js.map +1 -0
- package/dist/workspace/utils/interaction/command.utils.d.ts +74 -0
- package/dist/workspace/utils/interaction/command.utils.js +189 -0
- package/dist/workspace/utils/interaction/command.utils.js.map +1 -0
- package/dist/workspace/utils/interaction/drag-preview.utils.d.ts +79 -0
- package/dist/workspace/utils/interaction/drag-preview.utils.js +16 -0
- package/dist/workspace/utils/interaction/drag-preview.utils.js.map +1 -0
- package/dist/workspace/utils/interaction/insertion-offers.utils.d.ts +58 -0
- package/dist/workspace/utils/interaction/insertion-offers.utils.js +259 -0
- package/dist/workspace/utils/interaction/insertion-offers.utils.js.map +1 -0
- package/dist/workspace/utils/interaction/placement-decision.utils.d.ts +55 -0
- package/dist/workspace/utils/interaction/placement-decision.utils.js +242 -0
- package/dist/workspace/utils/interaction/placement-decision.utils.js.map +1 -0
- package/dist/workspace/utils/interaction/resize-input.utils.d.ts +1 -0
- package/dist/workspace/utils/interaction/resize-input.utils.js +17 -0
- package/dist/workspace/utils/interaction/resize-input.utils.js.map +1 -0
- package/dist/workspace/utils/model/layout.utils.d.ts +22 -0
- package/dist/workspace/utils/model/layout.utils.js +41 -0
- package/dist/workspace/utils/model/layout.utils.js.map +1 -0
- package/dist/workspace/utils/model/membership.utils.d.ts +14 -0
- package/dist/workspace/utils/model/membership.utils.js +17 -0
- package/dist/workspace/utils/model/membership.utils.js.map +1 -0
- package/dist/workspace/utils/model/operations.utils.d.ts +31 -0
- package/dist/workspace/utils/model/operations.utils.js +178 -0
- package/dist/workspace/utils/model/operations.utils.js.map +1 -0
- package/dist/workspace/utils/model/projection.utils.d.ts +7 -0
- package/dist/workspace/utils/model/projection.utils.js +87 -0
- package/dist/workspace/utils/model/projection.utils.js.map +1 -0
- package/dist/workspace/utils/model/value.utils.d.ts +5 -0
- package/dist/workspace/utils/model/value.utils.js +68 -0
- package/dist/workspace/utils/model/value.utils.js.map +1 -0
- package/dist/workspace/utils/placement/acquisition-sizing.utils.d.ts +32 -0
- package/dist/workspace/utils/placement/acquisition-sizing.utils.js +152 -0
- package/dist/workspace/utils/placement/acquisition-sizing.utils.js.map +1 -0
- package/dist/workspace/utils/placement/context.utils.d.ts +36 -0
- package/dist/workspace/utils/placement/context.utils.js +135 -0
- package/dist/workspace/utils/placement/context.utils.js.map +1 -0
- package/dist/workspace/utils/placement/group-insertion.utils.d.ts +26 -0
- package/dist/workspace/utils/placement/group-insertion.utils.js +171 -0
- package/dist/workspace/utils/placement/group-insertion.utils.js.map +1 -0
- package/dist/workspace/utils/placement/origin.utils.d.ts +13 -0
- package/dist/workspace/utils/placement/origin.utils.js +49 -0
- package/dist/workspace/utils/placement/origin.utils.js.map +1 -0
- package/dist/workspace/utils/placement/planner.utils.d.ts +22 -0
- package/dist/workspace/utils/placement/planner.utils.js +184 -0
- package/dist/workspace/utils/placement/planner.utils.js.map +1 -0
- package/dist/workspace/utils/placement/preparation.utils.d.ts +28 -0
- package/dist/workspace/utils/placement/preparation.utils.js +140 -0
- package/dist/workspace/utils/placement/preparation.utils.js.map +1 -0
- package/dist/workspace/utils/placement/region.utils.d.ts +15 -0
- package/dist/workspace/utils/placement/region.utils.js +111 -0
- package/dist/workspace/utils/placement/region.utils.js.map +1 -0
- package/dist/workspace/utils/placement/split-sizing.utils.d.ts +18 -0
- package/dist/workspace/utils/placement/split-sizing.utils.js +108 -0
- package/dist/workspace/utils/placement/split-sizing.utils.js.map +1 -0
- package/dist/workspace/utils/presentation/composition.utils.d.ts +17 -0
- package/dist/workspace/utils/presentation/composition.utils.js +95 -0
- package/dist/workspace/utils/presentation/composition.utils.js.map +1 -0
- package/dist/workspace/utils/presentation/groups.utils.d.ts +91 -0
- package/dist/workspace/utils/presentation/groups.utils.js +169 -0
- package/dist/workspace/utils/presentation/groups.utils.js.map +1 -0
- package/dist/workspace/utils/presentation/header-configuration.utils.d.ts +11 -0
- package/dist/workspace/utils/presentation/header-configuration.utils.js +7 -0
- package/dist/workspace/utils/presentation/header-configuration.utils.js.map +1 -0
- package/dist/workspace/utils/presentation/measurements.utils.d.ts +21 -0
- package/dist/workspace/utils/presentation/measurements.utils.js +28 -0
- package/dist/workspace/utils/presentation/measurements.utils.js.map +1 -0
- package/dist/workspace/utils/presentation/offers.utils.d.ts +43 -0
- package/dist/workspace/utils/presentation/offers.utils.js +137 -0
- package/dist/workspace/utils/presentation/offers.utils.js.map +1 -0
- package/dist/workspace/utils/presentation/preview.utils.d.ts +6 -0
- package/dist/workspace/utils/presentation/preview.utils.js +36 -0
- package/dist/workspace/utils/presentation/preview.utils.js.map +1 -0
- package/dist/workspace/workspace.d.ts +103 -0
- package/dist/workspace/workspace.examples.js +5 -0
- package/dist/workspace/workspace.examples.js.map +1 -0
- package/dist/workspace/workspace.examples.json +133 -0
- package/dist/workspace/workspace.js +5 -0
- package/dist/workspace/workspace.js.map +1 -0
- package/dist/workspace/workspace.types.d.ts +3 -0
- package/dist/workspace/workspace2.js +518 -0
- package/dist/workspace/workspace2.js.map +1 -0
- package/package.json +26 -3
- package/dist/polyfills/index.js.map +0 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WorkspacePanel as e } from "./panel/panel2.js";
|
|
2
|
+
import { Workspace as t } from "./workspace2.js";
|
|
3
|
+
import { WorkspacePanelHeader as n } from "./panel-header/panel-header2.js";
|
|
4
|
+
import { WorkspacePanelContent as r } from "./panel-content/panel-content2.js";
|
|
5
|
+
import { WorkspacePanelFooter as i } from "./panel-footer/panel-footer2.js";
|
|
6
|
+
export { t as Workspace, e as WorkspacePanel, r as WorkspacePanelContent, i as WorkspacePanelFooter, n as WorkspacePanelHeader };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { WorkspaceHeaderConfiguration } from '../utils/presentation/header-configuration.utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @element nve-workspace-panel
|
|
5
|
+
* @description Stable application content and its workspace chrome.
|
|
6
|
+
* @documentation https://nvidia.github.io/elements/docs/elements/workspace/
|
|
7
|
+
* @since 0.0.0
|
|
8
|
+
* @stable false
|
|
9
|
+
* @entrypoint \@nvidia-elements/core/workspace
|
|
10
|
+
* @command --enter-fullscreen - Present this panel's group in native fullscreen.
|
|
11
|
+
* @command --exit-fullscreen - Exit native fullscreen.
|
|
12
|
+
* @command --toggle-fullscreen - Toggle native fullscreen for this panel's group.
|
|
13
|
+
* @command --open - Open and activate the targeted supplied panel. Repeated activation is silent.
|
|
14
|
+
* @command --close - Close the targeted panel when its workspace is closable.
|
|
15
|
+
* @command --select - Activate an open supplied panel without reopening a closed panel.
|
|
16
|
+
* @command --place - Apply the invoker's typed placement request when rearrangeable; membership changes also require groupable.
|
|
17
|
+
* @slot - Application content.
|
|
18
|
+
* @slot header - Title and controls.
|
|
19
|
+
* @slot footer - Status and actions.
|
|
20
|
+
* @cssprop --background
|
|
21
|
+
* @cssprop --border
|
|
22
|
+
* @cssprop --box-shadow
|
|
23
|
+
*/
|
|
24
|
+
export declare class WorkspacePanel extends LitElement {
|
|
25
|
+
static styles: import("lit").CSSResult[];
|
|
26
|
+
static readonly metadata: {
|
|
27
|
+
tag: string;
|
|
28
|
+
version: string;
|
|
29
|
+
parents: string[];
|
|
30
|
+
children: string[];
|
|
31
|
+
};
|
|
32
|
+
/** Application minimum total panel width in pixels. */
|
|
33
|
+
minWidth: number;
|
|
34
|
+
/** Application minimum total panel height in pixels. */
|
|
35
|
+
minHeight: number;
|
|
36
|
+
private selected;
|
|
37
|
+
private headerHeight;
|
|
38
|
+
/** @internal */
|
|
39
|
+
_internals: ElementInternals;
|
|
40
|
+
connectedCallback(): void;
|
|
41
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
42
|
+
/** @internal */
|
|
43
|
+
_present(presented: boolean): void;
|
|
44
|
+
/** @internal */
|
|
45
|
+
_configure(configuration: WorkspaceHeaderConfiguration & {
|
|
46
|
+
scrollLeft: number;
|
|
47
|
+
}): void;
|
|
48
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// src/workspace/panel/panel.css?inline
|
|
2
|
+
var e = ":host{--background: var(--nve-sys-layer-container-background);--border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);--box-shadow: var(--nve-ref-shadow-100);display:block;pointer-events:none;border-radius:var(--_workspace-border-radius, var(--nve-ref-border-radius-lg))}[internal-host]{height:100%;position:relative;border-radius:inherit}.surface{position:absolute;inset:0;overflow:hidden;border-radius:inherit}.content{box-sizing:border-box;position:absolute;inset:0;display:flex;flex-direction:column;min-height:0;pointer-events:auto;background:var(--background);border:var(--border);border-color:transparent}.frame{position:absolute;inset:0;box-sizing:border-box;border:var(--border);border-right:var(--_workspace-border-right, var(--border));border-bottom:var(--_workspace-border-bottom, var(--border));border-radius:inherit;pointer-events:none;z-index:4}.body{flex:1;min-height:0;overflow:auto;scrollbar-color:var(--nve-sys-scrollbar-thumb-color) var(--nve-sys-scrollbar-track-color);scrollbar-width:var(--nve-sys-scrollbar-width)}::slotted(nve-workspace-panel-footer){flex:0 0 auto}[hidden]{display:none}:host([container=\"flat\"]) .content{background:transparent}:host([container=\"full\"]),:host([container=\"flat\"]){border-radius:var(--nve-ref-border-radius-none);--box-shadow: none}:host([aria-hidden=\"false\"]){box-shadow:var(--box-shadow)}";
|
|
3
|
+
export { e as default };
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","names":["panel_default"],"sources":["../../../src/workspace/panel/panel.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --background: var(--nve-sys-layer-container-background);\n --border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color);\n --box-shadow: var(--nve-ref-shadow-100);\n display: block;\n pointer-events: none;\n border-radius: var(--_workspace-border-radius, var(--nve-ref-border-radius-lg));\n}\n\n[internal-host] {\n height: 100%;\n position: relative;\n border-radius: inherit;\n}\n\n.surface {\n position: absolute;\n inset: 0;\n overflow: hidden;\n border-radius: inherit;\n}\n\n.content {\n box-sizing: border-box;\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n min-height: 0;\n pointer-events: auto;\n background: var(--background);\n border: var(--border);\n /* Preserve border insets while the selected frame owns the visible border. */\n border-color: transparent;\n}\n\n.frame {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n border: var(--border);\n border-right: var(--_workspace-border-right, var(--border));\n border-bottom: var(--_workspace-border-bottom, var(--border));\n border-radius: inherit;\n pointer-events: none;\n z-index: 4;\n}\n\n.body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n scrollbar-color: var(--nve-sys-scrollbar-thumb-color) var(--nve-sys-scrollbar-track-color);\n scrollbar-width: var(--nve-sys-scrollbar-width);\n}\n\n::slotted(nve-workspace-panel-footer) {\n flex: 0 0 auto;\n}\n\n[hidden] {\n display: none;\n}\n\n:host([container='flat']) .content {\n background: transparent;\n}\n\n:host([container='full']),\n:host([container='flat']) {\n border-radius: var(--nve-ref-border-radius-none);\n --box-shadow: none;\n}\n\n:host([aria-hidden='false']) {\n box-shadow: var(--box-shadow);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { attachInternals as e } from "../../internal/utils/a11y.js";
|
|
2
|
+
import { useStyles as t } from "../../internal/styles/index.js";
|
|
3
|
+
import n from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
|
+
import r from "./panel.js";
|
|
5
|
+
import { LitElement as i, html as a } from "lit";
|
|
6
|
+
import { property as o } from "lit/decorators/property.js";
|
|
7
|
+
import { state as s } from "lit/decorators/state.js";
|
|
8
|
+
// src/workspace/panel/panel.ts
|
|
9
|
+
var c = class extends i {
|
|
10
|
+
constructor(...e) {
|
|
11
|
+
super(...e), this.minWidth = 0, this.minHeight = 0, this.selected = !1, this.headerHeight = 0;
|
|
12
|
+
}
|
|
13
|
+
static {
|
|
14
|
+
this.styles = t([r]);
|
|
15
|
+
}
|
|
16
|
+
static {
|
|
17
|
+
this.metadata = {
|
|
18
|
+
tag: "nve-workspace-panel",
|
|
19
|
+
version: "2.23.0",
|
|
20
|
+
parents: ["nve-workspace"],
|
|
21
|
+
children: [
|
|
22
|
+
"nve-workspace-panel-header",
|
|
23
|
+
"nve-workspace-panel-content",
|
|
24
|
+
"nve-workspace-panel-footer"
|
|
25
|
+
]
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
connectedCallback() {
|
|
29
|
+
super.connectedCallback(), e(this);
|
|
30
|
+
}
|
|
31
|
+
render() {
|
|
32
|
+
let { selected: e, headerHeight: t } = this;
|
|
33
|
+
return a`<div internal-host><div class="surface"><slot name="header"></slot><div class="content" style="${`top:${t}px`}" ?hidden="${!e}"><div class="body" tabindex="0"><slot></slot></div><slot name="footer"></slot></div></div><div class="frame" ?hidden="${!e}"></div></div>`;
|
|
34
|
+
}
|
|
35
|
+
_present(e) {
|
|
36
|
+
e ? this._internals.states.add("workspace-presented") : this._internals.states.delete("workspace-presented");
|
|
37
|
+
}
|
|
38
|
+
_configure(e) {
|
|
39
|
+
this.selected = e.selected, this.headerHeight = e.headerHeight, this.querySelector(":scope > nve-workspace-panel-header")?._configure(e);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
n([o({
|
|
43
|
+
type: Number,
|
|
44
|
+
attribute: "min-width",
|
|
45
|
+
reflect: !0
|
|
46
|
+
})], c.prototype, "minWidth", void 0), n([o({
|
|
47
|
+
type: Number,
|
|
48
|
+
attribute: "min-height",
|
|
49
|
+
reflect: !0
|
|
50
|
+
})], c.prototype, "minHeight", void 0), n([s()], c.prototype, "selected", void 0), n([s()], c.prototype, "headerHeight", void 0);
|
|
51
|
+
export { c as WorkspacePanel };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=panel2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel2.js","names":["styles","_decorate","__decorate","panel_default","WorkspacePanel","LitElement","_args","useStyles","attachInternals","headerHeight","selected","presented","configuration","property","state"],"sources":["../../../src/workspace/panel/panel.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\n\nimport { attachInternals, useStyles } from '@nvidia-elements/core/internal';\n\nimport type { WorkspaceHeaderConfiguration } from '../utils/presentation/header-configuration.utils.js';\n\nimport type { WorkspacePanelHeader } from '../panel-header/panel-header.js';\n\nimport styles from './panel.css?inline';\n\n/**\n * @element nve-workspace-panel\n * @description Stable application content and its workspace chrome.\n * @documentation https://nvidia.github.io/elements/docs/elements/workspace/\n * @since 0.0.0\n * @stable false\n * @entrypoint \\@nvidia-elements/core/workspace\n * @command --enter-fullscreen - Present this panel's group in native fullscreen.\n * @command --exit-fullscreen - Exit native fullscreen.\n * @command --toggle-fullscreen - Toggle native fullscreen for this panel's group.\n * @command --open - Open and activate the targeted supplied panel. Repeated activation is silent.\n * @command --close - Close the targeted panel when its workspace is closable.\n * @command --select - Activate an open supplied panel without reopening a closed panel.\n * @command --place - Apply the invoker's typed placement request when rearrangeable; membership changes also require groupable.\n * @slot - Application content.\n * @slot header - Title and controls.\n * @slot footer - Status and actions.\n * @cssprop --background\n * @cssprop --border\n * @cssprop --box-shadow\n */\nexport class WorkspacePanel extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-workspace-panel',\n version: '0.0.0',\n parents: ['nve-workspace'],\n children: ['nve-workspace-panel-header', 'nve-workspace-panel-content', 'nve-workspace-panel-footer']\n };\n\n /** Application minimum total panel width in pixels. */\n @property({ type: Number, attribute: 'min-width', reflect: true }) minWidth = 0;\n\n /** Application minimum total panel height in pixels. */\n @property({ type: Number, attribute: 'min-height', reflect: true }) minHeight = 0;\n\n @state() private selected = false;\n\n @state() private headerHeight = 0;\n\n /** @internal */\n declare _internals: ElementInternals;\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n }\n\n render() {\n const { selected, headerHeight } = this;\n return html`\n <div internal-host>\n <div class=\"surface\">\n <slot name=\"header\"></slot>\n <div class=\"content\" style=${`top:${headerHeight}px`} ?hidden=${!selected}>\n <div class=\"body\" tabindex=\"0\"><slot></slot></div>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n <div class=\"frame\" ?hidden=${!selected}></div>\n </div>\n `;\n }\n\n /** @internal */\n _present(presented: boolean) {\n if (presented) this._internals.states.add('workspace-presented');\n else this._internals.states.delete('workspace-presented');\n }\n\n /** @internal */\n _configure(configuration: WorkspaceHeaderConfiguration & { scrollLeft: number }) {\n this.selected = configuration.selected;\n this.headerHeight = configuration.headerHeight;\n this.querySelector<WorkspacePanelHeader>(':scope > nve-workspace-panel-header')?._configure(configuration);\n }\n}\n"],"mappings":";;;;;;;;AAoCA,IAAaI,IAAb,cAAoCC,EAAW;;EAkBb,A,aAP8C,KAAA,WAAA,GAGE,KAAA,YAAA,GAEpD,KAAA,WAAA,IAEI,KAAA,eAAA;;;EAjBhB,KAAA,SAAAE,EAAU,CAACP,CAAM,CAAC;;;EAEP,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,eAAe;GACzB,UAAU;IAAC;IAA8B;IAA+B;GAA4B;EACtG;;CAeA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxBQ,EAAgB,IAAI;CACtB;CAEA,SAAS;EACP,IAAM,EAAE,aAAU,oBAAiB;EACnC,OAAO,CAAI,kGAIwB,OAAOC,EAAa,IAAI,aAAW,CAACC,EAAS,yHAK/C,CAACA,EAAS;CAG7C;CAGA,SAAS,GAAoB;EAC3B,AAAIC,IAAW,KAAK,WAAW,OAAO,IAAI,qBAAqB,IAC1D,KAAK,WAAW,OAAO,OAAO,qBAAqB;CAC1D;CAGA,WAAW,GAAsE;EAG/E,AAFA,KAAK,WAAWC,EAAc,UAC9B,KAAK,eAAeA,EAAc,cAClC,KAAK,cAAoC,qCAAqC,CAAC,EAAE,WAAWA,CAAa;CAC3G;AACF;AA7CGX,EAAA,CAAAY,EAAS;CAAE,MAAM;CAAQ,WAAW;CAAa,SAAS;AAAK,CAAC,CAAA,GAAAT,EAAA,WAAA,YAAA,KAAA,CAAA,GAGhEH,EAAA,CAAAY,EAAS;CAAE,MAAM;CAAQ,WAAW;CAAc,SAAS;AAAK,CAAC,CAAA,GAAAT,EAAA,WAAA,aAAA,KAAA,CAAA,GAEjEH,EAAA,CAAAa,EAAM,CAAA,GAAAV,EAAA,WAAA,YAAA,KAAA,CAAA,GAENH,EAAA,CAAAa,EAAM,CAAA,GAAAV,EAAA,WAAA,gBAAA,KAAA,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* @element nve-workspace-panel-content
|
|
4
|
+
* @description Provides padding for workspace panel content.
|
|
5
|
+
* @documentation https://nvidia.github.io/elements/docs/elements/workspace/
|
|
6
|
+
* @since 0.0.0
|
|
7
|
+
* @stable false
|
|
8
|
+
* @entrypoint \@nvidia-elements/core/workspace
|
|
9
|
+
* @slot - Application content.
|
|
10
|
+
* @cssprop --padding
|
|
11
|
+
*/
|
|
12
|
+
export declare class WorkspacePanelContent extends LitElement {
|
|
13
|
+
static styles: import("lit").CSSResult[];
|
|
14
|
+
static readonly metadata: {
|
|
15
|
+
tag: string;
|
|
16
|
+
version: string;
|
|
17
|
+
parents: string[];
|
|
18
|
+
};
|
|
19
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-content.js","names":["panel_content_default"],"sources":["../../../src/workspace/panel-content/panel-content.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n:host {\n --padding: var(--nve-ref-space-sm);\n display: block;\n contain: none;\n}\n\n[internal-host] {\n padding: var(--padding);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useStyles as e } from "../../internal/styles/index.js";
|
|
2
|
+
import t from "./panel-content.js";
|
|
3
|
+
import { LitElement as n, html as r } from "lit";
|
|
4
|
+
// src/workspace/panel-content/panel-content.ts
|
|
5
|
+
var i = class extends n {
|
|
6
|
+
static {
|
|
7
|
+
this.styles = e([t]);
|
|
8
|
+
}
|
|
9
|
+
static {
|
|
10
|
+
this.metadata = {
|
|
11
|
+
tag: "nve-workspace-panel-content",
|
|
12
|
+
version: "2.23.0",
|
|
13
|
+
parents: ["nve-workspace-panel"]
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
render() {
|
|
17
|
+
return r`<div internal-host><slot></slot></div>`;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export { i as WorkspacePanelContent };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=panel-content2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-content2.js","names":["styles","panel_content_default","WorkspacePanelContent","LitElement","useStyles"],"sources":["../../../src/workspace/panel-content/panel-content.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\n\nimport { useStyles } from '@nvidia-elements/core/internal';\n\nimport styles from './panel-content.css?inline';\n\n/**\n * @element nve-workspace-panel-content\n * @description Provides padding for workspace panel content.\n * @documentation https://nvidia.github.io/elements/docs/elements/workspace/\n * @since 0.0.0\n * @stable false\n * @entrypoint \\@nvidia-elements/core/workspace\n * @slot - Application content.\n * @cssprop --padding\n */\nexport class WorkspacePanelContent extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = { tag: 'nve-workspace-panel-content', version: '0.0.0', parents: ['nve-workspace-panel'] };\n\n render() {\n return html`\n <div internal-host><slot></slot></div>\n `;\n }\n}\n"],"mappings":";;;;AAmBA,IAAaE,IAAb,cAA2CC,EAAW;;EACpC,KAAA,SAAAC,EAAU,CAACJ,CAAM,CAAC;;;EAEP,KAAA,WAAA;GAAE,KAAK;GAA+B,SAAS;GAAS,SAAS,CAAC,qBAAqB;EAAE;;CAEpH,SAAS;EACP,OAAO,CAAI;CAGb;AACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* @element nve-workspace-panel-footer
|
|
4
|
+
* @description Provides workspace panel status and actions outside the scrolling body.
|
|
5
|
+
* @documentation https://nvidia.github.io/elements/docs/elements/workspace/
|
|
6
|
+
* @since 0.0.0
|
|
7
|
+
* @stable false
|
|
8
|
+
* @entrypoint \@nvidia-elements/core/workspace
|
|
9
|
+
* @slot - Status and actions.
|
|
10
|
+
* @cssprop --padding
|
|
11
|
+
* @cssprop --border-top
|
|
12
|
+
* @cssprop --gap
|
|
13
|
+
*/
|
|
14
|
+
export declare class WorkspacePanelFooter extends LitElement {
|
|
15
|
+
static styles: import("lit").CSSResult[];
|
|
16
|
+
static readonly metadata: {
|
|
17
|
+
tag: string;
|
|
18
|
+
version: string;
|
|
19
|
+
parents: string[];
|
|
20
|
+
};
|
|
21
|
+
/** @private */
|
|
22
|
+
slot: string;
|
|
23
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// src/workspace/panel-footer/panel-footer.css?inline
|
|
2
|
+
var e = ":host{--padding: var(--nve-ref-space-sm);--border-top: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);--gap: var(--nve-ref-space-xs);display:block;contain:none}[internal-host]{padding:var(--padding);display:flex;align-items:center;gap:var(--gap);border-top:var(--border-top)}";
|
|
3
|
+
export { e as default };
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=panel-footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-footer.js","names":["panel_footer_default"],"sources":["../../../src/workspace/panel-footer/panel-footer.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n:host {\n --padding: var(--nve-ref-space-sm);\n --border-top: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n --gap: var(--nve-ref-space-xs);\n display: block;\n contain: none;\n}\n\n[internal-host] {\n padding: var(--padding);\n display: flex;\n align-items: center;\n gap: var(--gap);\n border-top: var(--border-top);\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { hostAttr as e } from "../../internal/decorators/host-attr.js";
|
|
2
|
+
import { useStyles as t } from "../../internal/styles/index.js";
|
|
3
|
+
import n from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
|
+
import r from "./panel-footer.js";
|
|
5
|
+
import { LitElement as i, html as a } from "lit";
|
|
6
|
+
// src/workspace/panel-footer/panel-footer.ts
|
|
7
|
+
var o = class extends i {
|
|
8
|
+
constructor(...e) {
|
|
9
|
+
super(...e), this.slot = "footer";
|
|
10
|
+
}
|
|
11
|
+
static {
|
|
12
|
+
this.styles = t([r]);
|
|
13
|
+
}
|
|
14
|
+
static {
|
|
15
|
+
this.metadata = {
|
|
16
|
+
tag: "nve-workspace-panel-footer",
|
|
17
|
+
version: "2.23.0",
|
|
18
|
+
parents: ["nve-workspace-panel"]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
render() {
|
|
22
|
+
return a`<div internal-host><slot></slot></div>`;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
n([e()], o.prototype, "slot", void 0);
|
|
26
|
+
export { o as WorkspacePanelFooter };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=panel-footer2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-footer2.js","names":["styles","_decorate","__decorate","panel_footer_default","WorkspacePanelFooter","LitElement","_args","useStyles","hostAttr"],"sources":["../../../src/workspace/panel-footer/panel-footer.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\n\nimport { hostAttr, useStyles } from '@nvidia-elements/core/internal';\n\nimport styles from './panel-footer.css?inline';\n\n/**\n * @element nve-workspace-panel-footer\n * @description Provides workspace panel status and actions outside the scrolling body.\n * @documentation https://nvidia.github.io/elements/docs/elements/workspace/\n * @since 0.0.0\n * @stable false\n * @entrypoint \\@nvidia-elements/core/workspace\n * @slot - Status and actions.\n * @cssprop --padding\n * @cssprop --border-top\n * @cssprop --gap\n */\nexport class WorkspacePanelFooter extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = { tag: 'nve-workspace-panel-footer', version: '0.0.0', parents: ['nve-workspace-panel'] };\n\n /** @private */\n @hostAttr() slot = 'footer';\n\n render() {\n return html`\n <div internal-host><slot></slot></div>\n `;\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAaI,IAAb,cAA0CC,EAAW;;EAMhC,A,aAAA,KAAA,OAAA;;;EALH,KAAA,SAAAE,EAAU,CAACP,CAAM,CAAC;;;EAEP,KAAA,WAAA;GAAE,KAAK;GAA8B,SAAS;GAAS,SAAS,CAAC,qBAAqB;EAAE;;CAKnH,SAAS;EACP,OAAO,CAAI;CAGb;AACF;AAPGC,EAAA,CAAAO,EAAS,CAAA,GAAAJ,EAAA,WAAA,QAAA,KAAA,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { WorkspaceHeaderConfiguration } from '../utils/presentation/header-configuration.utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* @element nve-workspace-panel-header
|
|
5
|
+
* @description Supplies a workspace panel title, decoration, and application controls.
|
|
6
|
+
* @documentation https://nvidia.github.io/elements/docs/elements/workspace/
|
|
7
|
+
* @since 0.0.0
|
|
8
|
+
* @stable false
|
|
9
|
+
* @entrypoint \@nvidia-elements/core/workspace
|
|
10
|
+
* @slot - Noninteractive panel title.
|
|
11
|
+
* @slot prefix - Noninteractive title decoration.
|
|
12
|
+
* @slot suffix - Application controls for the selected panel.
|
|
13
|
+
* @cssprop --min-height
|
|
14
|
+
* @cssprop --padding - Padding around the title.
|
|
15
|
+
* @cssprop --prefix-padding - Padding around title decoration.
|
|
16
|
+
* @cssprop --prefix-border - Border after title decoration.
|
|
17
|
+
* @cssprop --suffix-padding - Override the shared inset around header controls.
|
|
18
|
+
* @cssprop --suffix-border - Border before header controls.
|
|
19
|
+
* @cssprop --gap
|
|
20
|
+
* @cssprop --border-bottom
|
|
21
|
+
*/
|
|
22
|
+
export declare class WorkspacePanelHeader extends LitElement {
|
|
23
|
+
#private;
|
|
24
|
+
static styles: import("lit").CSSResult[];
|
|
25
|
+
static readonly metadata: {
|
|
26
|
+
tag: string;
|
|
27
|
+
version: string;
|
|
28
|
+
parents: string[];
|
|
29
|
+
};
|
|
30
|
+
/** @private */
|
|
31
|
+
slot: string;
|
|
32
|
+
/** @private */
|
|
33
|
+
_internals: ElementInternals;
|
|
34
|
+
private configuration;
|
|
35
|
+
connectedCallback(): void;
|
|
36
|
+
disconnectedCallback(): void;
|
|
37
|
+
protected updated(): void;
|
|
38
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
39
|
+
/** @internal */
|
|
40
|
+
_getMeasurementTargets(): {
|
|
41
|
+
label: HTMLElement | null;
|
|
42
|
+
suffix: HTMLElement | null;
|
|
43
|
+
};
|
|
44
|
+
/** @internal */
|
|
45
|
+
_getTransitionTargets(): {
|
|
46
|
+
labelViewport: HTMLElement | null;
|
|
47
|
+
labelTrack: HTMLElement | null;
|
|
48
|
+
label: HTMLElement | null;
|
|
49
|
+
suffix: HTMLElement | null;
|
|
50
|
+
};
|
|
51
|
+
/** @internal */
|
|
52
|
+
_hover(hovered: boolean): void;
|
|
53
|
+
/** @internal */
|
|
54
|
+
_configure({ scrollLeft, ...configuration }: WorkspaceHeaderConfiguration & {
|
|
55
|
+
scrollLeft: number;
|
|
56
|
+
}): void;
|
|
57
|
+
/** @internal */
|
|
58
|
+
_scroll(scrollLeft: number): void;
|
|
59
|
+
/** @internal */
|
|
60
|
+
_bindScroll(source: HTMLElement | undefined, extent: number): void;
|
|
61
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// src/workspace/panel-header/panel-header.css?inline
|
|
2
|
+
var e = ":host{--min-height: calc(var(--nve-ref-size-1000) + var(--nve-ref-size-200));--padding: var(--nve-ref-size-300) var(--nve-ref-size-400);--prefix-padding: 0;--prefix-border: none;--suffix-padding: initial;--suffix-border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);--gap: var(--nve-ref-space-xs);--border-bottom: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);--font-size: var(--nve-ref-font-size-100);--font-weight: var(--nve-ref-font-weight-medium);--color: var(--nve-sys-text-muted-color);--text-transform: initial;display:block;position:absolute;inset:0;pointer-events:none;contain:none}:host(:state(selected)){--color: var(--nve-sys-text-emphasis-color);--font-weight: var(--nve-ref-font-weight-semibold)}:host(:is(:hover,:state(tab-hover)):not(:state(selected))){--color: var(--nve-sys-text-emphasis-color)}[internal-host]{position:relative;height:100%}.label-viewport{position:absolute;top:0;overflow:hidden;pointer-events:none}.label-track{transform:translate(var(--_workspace-tab-scroll, 0));position:absolute;inset:0}.label{position:absolute;top:0;overflow:hidden;box-sizing:border-box;display:flex;align-items:center}.label[data-animate]{transition:left var(--animation-duration) var(--animation-easing),width var(--animation-duration) var(--animation-easing)}.label-content{padding:var(--padding);min-height:var(--min-height);box-sizing:border-box;color:var(--color);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--nve-ref-font-size-500);text-transform:var(--text-transform);display:inline-flex;align-items:center;gap:var(--gap);white-space:nowrap;width:100%}slot[name=prefix]{flex:none;display:inline-flex;align-items:center;gap:var(--gap);padding:var(--prefix-padding)}slot[name=prefix][data-empty]{display:none}slot[name=prefix]:not([data-empty]){border-inline-end:var(--prefix-border)}.title-content{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-content slot{display:contents}.suffix{position:absolute;inset:0 0 0 auto;display:flex;align-items:center;width:max-content;pointer-events:auto;box-sizing:border-box;z-index:3}.suffix[data-inactive]{visibility:hidden;pointer-events:none}.suffix-content{min-height:var(--min-height);box-sizing:border-box;display:flex;align-items:center;width:max-content;padding:var(--suffix-padding, var(--header-control-inset, var(--nve-ref-size-100)));gap:var(--gap)}.suffix[data-group-actions] .suffix-content{padding:var( --suffix-padding, var(--header-control-inset, var(--nve-ref-size-100)) 0 var(--header-control-inset, var(--nve-ref-size-100)) var(--header-control-inset, var(--nve-ref-size-100)) )}.suffix:not([data-empty]) .suffix-content{border-inline-start:var(--suffix-border);border-inline-start-color:transparent}.suffix:not([data-empty]):before{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--suffix-border);pointer-events:none}.suffix[data-empty] .suffix-content{min-height:0;padding:0}.separator{position:absolute;left:0;right:0;border-top:var(--border-bottom);z-index:1;pointer-events:none}";
|
|
3
|
+
export { e as default };
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=panel-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-header.js","names":["panel_header_default"],"sources":["../../../src/workspace/panel-header/panel-header.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --min-height: calc(var(--nve-ref-size-1000) + var(--nve-ref-size-200));\n --padding: var(--nve-ref-size-300) var(--nve-ref-size-400);\n --prefix-padding: 0;\n --prefix-border: none;\n --suffix-padding: initial;\n --suffix-border: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n --gap: var(--nve-ref-space-xs);\n --border-bottom: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n --font-size: var(--nve-ref-font-size-100);\n --font-weight: var(--nve-ref-font-weight-medium);\n --color: var(--nve-sys-text-muted-color);\n --text-transform: initial;\n display: block;\n position: absolute;\n inset: 0;\n pointer-events: none;\n contain: none;\n}\n\n:host(:state(selected)) {\n --color: var(--nve-sys-text-emphasis-color);\n --font-weight: var(--nve-ref-font-weight-semibold);\n}\n\n:host(:is(:hover, :state(tab-hover)):not(:state(selected))) {\n --color: var(--nve-sys-text-emphasis-color);\n}\n\n[internal-host] {\n position: relative;\n height: 100%;\n}\n\n.label-viewport {\n position: absolute;\n top: 0;\n overflow: hidden;\n pointer-events: none;\n}\n\n.label-track {\n transform: translateX(var(--_workspace-tab-scroll, 0));\n position: absolute;\n inset: 0;\n}\n\n.label {\n position: absolute;\n top: 0;\n overflow: hidden;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n}\n\n.label[data-animate] {\n transition:\n left var(--animation-duration) var(--animation-easing),\n width var(--animation-duration) var(--animation-easing);\n}\n\n.label-content {\n padding: var(--padding);\n min-height: var(--min-height);\n box-sizing: border-box;\n color: var(--color);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--nve-ref-font-size-500);\n text-transform: var(--text-transform);\n display: inline-flex;\n align-items: center;\n gap: var(--gap);\n white-space: nowrap;\n width: 100%;\n}\n\nslot[name='prefix'] {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--gap);\n padding: var(--prefix-padding);\n}\n\nslot[name='prefix'][data-empty] {\n display: none;\n}\n\nslot[name='prefix']:not([data-empty]) {\n border-inline-end: var(--prefix-border);\n}\n\n.title-content {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.title-content slot {\n display: contents;\n}\n\n.suffix {\n position: absolute;\n inset: 0 0 0 auto;\n display: flex;\n align-items: center;\n width: max-content;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 3;\n}\n\n.suffix[data-inactive] {\n visibility: hidden;\n pointer-events: none;\n}\n\n.suffix-content {\n min-height: var(--min-height);\n box-sizing: border-box;\n display: flex;\n align-items: center;\n width: max-content;\n padding: var(--suffix-padding, var(--header-control-inset, var(--nve-ref-size-100)));\n gap: var(--gap);\n}\n\n.suffix[data-group-actions] .suffix-content {\n padding: var(\n --suffix-padding,\n var(--header-control-inset, var(--nve-ref-size-100)) 0 var(--header-control-inset, var(--nve-ref-size-100))\n var(--header-control-inset, var(--nve-ref-size-100))\n );\n}\n\n.suffix:not([data-empty]) .suffix-content {\n border-inline-start: var(--suffix-border);\n border-inline-start-color: transparent;\n}\n\n.suffix:not([data-empty])::before {\n content: '';\n position: absolute;\n inset-block: 0;\n inset-inline-start: 0;\n border-inline-start: var(--suffix-border);\n pointer-events: none;\n}\n\n.suffix[data-empty] .suffix-content {\n min-height: 0;\n padding: 0;\n}\n\n.separator {\n position: absolute;\n left: 0;\n right: 0;\n border-top: var(--border-bottom);\n z-index: 1;\n pointer-events: none;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { attachInternals as e } from "../../internal/utils/a11y.js";
|
|
2
|
+
import { hostAttr as t } from "../../internal/decorators/host-attr.js";
|
|
3
|
+
import { useStyles as n } from "../../internal/styles/index.js";
|
|
4
|
+
import r from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
5
|
+
import { sameHeaderConfiguration as i } from "../utils/presentation/header-configuration.utils.js";
|
|
6
|
+
import a from "./panel-header.js";
|
|
7
|
+
import { LitElement as o, html as s, isServer as c } from "lit";
|
|
8
|
+
import { state as l } from "lit/decorators/state.js";
|
|
9
|
+
// src/workspace/panel-header/panel-header.ts
|
|
10
|
+
var u = class extends o {
|
|
11
|
+
constructor(...e) {
|
|
12
|
+
super(...e), this.slot = "header", this.configuration = {
|
|
13
|
+
selected: !1,
|
|
14
|
+
offset: 0,
|
|
15
|
+
animate: !1,
|
|
16
|
+
tabWidth: 0,
|
|
17
|
+
headerHeight: 0,
|
|
18
|
+
suffixEnd: 0,
|
|
19
|
+
clipLeft: 0,
|
|
20
|
+
clipWidth: 0
|
|
21
|
+
}, this.#t = 0;
|
|
22
|
+
}
|
|
23
|
+
static {
|
|
24
|
+
this.styles = n([a]);
|
|
25
|
+
}
|
|
26
|
+
static {
|
|
27
|
+
this.metadata = {
|
|
28
|
+
tag: "nve-workspace-panel-header",
|
|
29
|
+
version: "2.23.0",
|
|
30
|
+
parents: ["nve-workspace-panel"]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
#e;
|
|
34
|
+
#t;
|
|
35
|
+
#n;
|
|
36
|
+
connectedCallback() {
|
|
37
|
+
super.connectedCallback(), e(this);
|
|
38
|
+
}
|
|
39
|
+
disconnectedCallback() {
|
|
40
|
+
super.disconnectedCallback(), this._bindScroll(void 0, 0);
|
|
41
|
+
}
|
|
42
|
+
updated() {
|
|
43
|
+
this.#i();
|
|
44
|
+
}
|
|
45
|
+
render() {
|
|
46
|
+
let { selected: e, offset: t, animate: n, tabWidth: r, headerHeight: i, suffixEnd: a, clipLeft: o, clipWidth: l } = this.configuration;
|
|
47
|
+
return s`<div internal-host><div class="label-viewport" aria-hidden="true" style="${`left:${o}px;width:${l}px;height:${i}px`}"><div class="label-track"><div class="label" ?data-animate="${n}" style="${`left:${t - o}px;width:${r}px;height:${i}px`}"><span class="label-content"><slot name="prefix" ?data-empty="${!c && !this.querySelector(":scope > [slot=\"prefix\"]")}" @slotchange="${() => this.requestUpdate()}"></slot><span class="title-content"><slot @slotchange="${() => this.requestUpdate()}"></slot>${this.#a() ? null : this.parentElement?.id}</span></span></div></div></div>${e ? s`<div class="separator" style="${`top:${i}px`}" aria-hidden="true"></div>` : null}<div class="suffix" ?data-group-actions="${a > 0}" style="${`height:${i}px;right:${a}px`}" aria-hidden="${!e}" ?inert="${!e}" ?data-inactive="${!e}" ?data-empty="${!c && !this.querySelector(":scope > [slot=\"suffix\"]")}"><div class="suffix-content"><slot name="suffix" @slotchange="${() => this.requestUpdate()}"></slot></div></div></div>`;
|
|
48
|
+
}
|
|
49
|
+
_getMeasurementTargets() {
|
|
50
|
+
return {
|
|
51
|
+
label: this.shadowRoot?.querySelector(".label-content") ?? null,
|
|
52
|
+
suffix: this.shadowRoot?.querySelector(".suffix-content") ?? null
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
_getTransitionTargets() {
|
|
56
|
+
return {
|
|
57
|
+
labelViewport: this.shadowRoot?.querySelector(".label-viewport") ?? null,
|
|
58
|
+
labelTrack: this.shadowRoot?.querySelector(".label-track") ?? null,
|
|
59
|
+
label: this.shadowRoot?.querySelector(".label") ?? null,
|
|
60
|
+
suffix: this.shadowRoot?.querySelector(".suffix") ?? null
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
_hover(e) {
|
|
64
|
+
e ? this._internals.states.add("tab-hover") : this._internals.states.delete("tab-hover");
|
|
65
|
+
}
|
|
66
|
+
_configure({ scrollLeft: e, ...t }) {
|
|
67
|
+
this._scroll(e), !i(this.configuration, t) && (t.selected ? this._internals.states.add("selected") : this._internals.states.delete("selected"), this.configuration = t);
|
|
68
|
+
}
|
|
69
|
+
_scroll(e) {
|
|
70
|
+
this.#n || this.style.setProperty("--_workspace-tab-scroll", `${-e}px`);
|
|
71
|
+
}
|
|
72
|
+
_bindScroll(e, t) {
|
|
73
|
+
e === this.#e && t === this.#t || this.#r(e, t) || (this.#n?.cancel(), this.#n = void 0, this.#e = e, this.#t = t, this.#i(), this.#n || this._scroll(e?.scrollLeft ?? 0));
|
|
74
|
+
}
|
|
75
|
+
#r(e, t) {
|
|
76
|
+
if (e !== this.#e || t <= 0) return !1;
|
|
77
|
+
let n = this.#n?.effect;
|
|
78
|
+
return n instanceof KeyframeEffect && (this.#t = t, n.setKeyframes(d(t)), !0);
|
|
79
|
+
}
|
|
80
|
+
#i() {
|
|
81
|
+
if (this.#n || !this.#e || this.#t <= 0 || typeof ScrollTimeline > "u") return;
|
|
82
|
+
let e = this.shadowRoot?.querySelector(".label-track");
|
|
83
|
+
e && (this.#n = e.animate(d(this.#t), {
|
|
84
|
+
timeline: new ScrollTimeline({
|
|
85
|
+
source: this.#e,
|
|
86
|
+
axis: "x"
|
|
87
|
+
}),
|
|
88
|
+
fill: "both",
|
|
89
|
+
easing: "linear"
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
#a() {
|
|
93
|
+
return c ? !0 : [...this.childNodes].some((e) => (!(e instanceof Element) || !e.hasAttribute("slot")) && !!e.textContent?.trim());
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
r([t()], u.prototype, "slot", void 0), r([l()], u.prototype, "configuration", void 0);
|
|
97
|
+
function d(e) {
|
|
98
|
+
return [{ transform: "translateX(0px)" }, { transform: `translateX(${-e}px)` }];
|
|
99
|
+
}
|
|
100
|
+
export { u as WorkspacePanelHeader };
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=panel-header2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-header2.js","names":["styles","_decorate","__decorate","panel_header_default","WorkspacePanelHeader","LitElement","_args","#scrollExtent","useStyles","attachInternals","#bindScrollAnimation","clipLeft","clipWidth","headerHeight","animate","offset","tabWidth","isServer","#hasTitle","selected","suffixEnd","hovered","configuration","scrollLeft","#scrollAnimation","source","#scrollSource","extent","#updateScrollExtent","effect","scrollKeyframes","track","node","hostAttr","state"],"sources":["../../../src/workspace/panel-header/panel-header.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, isServer, LitElement } from 'lit';\nimport { state } from 'lit/decorators/state.js';\n\nimport { attachInternals, hostAttr, useStyles } from '@nvidia-elements/core/internal';\n\nimport { sameHeaderConfiguration } from '../utils/presentation/header-configuration.utils.js';\n\nimport type { WorkspaceHeaderConfiguration } from '../utils/presentation/header-configuration.utils.js';\n\nimport styles from './panel-header.css?inline';\n\n/**\n * @element nve-workspace-panel-header\n * @description Supplies a workspace panel title, decoration, and application controls.\n * @documentation https://nvidia.github.io/elements/docs/elements/workspace/\n * @since 0.0.0\n * @stable false\n * @entrypoint \\@nvidia-elements/core/workspace\n * @slot - Noninteractive panel title.\n * @slot prefix - Noninteractive title decoration.\n * @slot suffix - Application controls for the selected panel.\n * @cssprop --min-height\n * @cssprop --padding - Padding around the title.\n * @cssprop --prefix-padding - Padding around title decoration.\n * @cssprop --prefix-border - Border after title decoration.\n * @cssprop --suffix-padding - Override the shared inset around header controls.\n * @cssprop --suffix-border - Border before header controls.\n * @cssprop --gap\n * @cssprop --border-bottom\n */\nexport class WorkspacePanelHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = { tag: 'nve-workspace-panel-header', version: '0.0.0', parents: ['nve-workspace-panel'] };\n\n /** @private */\n @hostAttr() slot = 'header';\n\n /** @private */\n declare _internals: ElementInternals;\n\n @state() private configuration: WorkspaceHeaderConfiguration = {\n selected: false,\n offset: 0,\n animate: false,\n tabWidth: 0,\n headerHeight: 0,\n suffixEnd: 0,\n clipLeft: 0,\n clipWidth: 0\n };\n\n #scrollSource?: HTMLElement;\n #scrollExtent = 0;\n #scrollAnimation?: Animation;\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._bindScroll(undefined, 0);\n }\n\n protected updated() {\n this.#bindScrollAnimation();\n }\n\n render() {\n const { selected, offset, animate, tabWidth, headerHeight, suffixEnd, clipLeft, clipWidth } = this.configuration;\n return html`\n <div internal-host>\n <div\n class=\"label-viewport\"\n aria-hidden=\"true\"\n style=${`left:${clipLeft}px;width:${clipWidth}px;height:${headerHeight}px`}>\n <div class=\"label-track\">\n <div\n class=\"label\"\n ?data-animate=${animate}\n style=${`left:${offset - clipLeft}px;width:${tabWidth}px;height:${headerHeight}px`}>\n <span class=\"label-content\">\n <slot\n name=\"prefix\"\n ?data-empty=${!isServer && !this.querySelector(':scope > [slot=\"prefix\"]')}\n @slotchange=${() => this.requestUpdate()}></slot>\n <span class=\"title-content\"><slot @slotchange=${() => this.requestUpdate()}></slot>${this.#hasTitle() ? null : this.parentElement?.id}</span>\n </span>\n </div>\n </div>\n </div>\n ${\n selected\n ? html`\n <div class=\"separator\" style=${`top:${headerHeight}px`} aria-hidden=\"true\"></div>\n `\n : null\n }\n <div\n class=\"suffix\"\n ?data-group-actions=${suffixEnd > 0}\n style=${`height:${headerHeight}px;right:${suffixEnd}px`}\n aria-hidden=${!selected}\n ?inert=${!selected}\n ?data-inactive=${!selected}\n ?data-empty=${!isServer && !this.querySelector(':scope > [slot=\"suffix\"]')}>\n <div class=\"suffix-content\"><slot name=\"suffix\" @slotchange=${() => this.requestUpdate()}></slot></div>\n </div>\n </div>\n `;\n }\n\n /** @internal */\n _getMeasurementTargets() {\n return {\n label: this.shadowRoot?.querySelector<HTMLElement>('.label-content') ?? null,\n suffix: this.shadowRoot?.querySelector<HTMLElement>('.suffix-content') ?? null\n };\n }\n\n /** @internal */\n _getTransitionTargets() {\n return {\n labelViewport: this.shadowRoot?.querySelector<HTMLElement>('.label-viewport') ?? null,\n labelTrack: this.shadowRoot?.querySelector<HTMLElement>('.label-track') ?? null,\n label: this.shadowRoot?.querySelector<HTMLElement>('.label') ?? null,\n suffix: this.shadowRoot?.querySelector<HTMLElement>('.suffix') ?? null\n };\n }\n\n /** @internal */\n _hover(hovered: boolean) {\n if (hovered) this._internals.states.add('tab-hover');\n else this._internals.states.delete('tab-hover');\n }\n\n /** @internal */\n _configure({ scrollLeft, ...configuration }: WorkspaceHeaderConfiguration & { scrollLeft: number }) {\n this._scroll(scrollLeft);\n if (sameHeaderConfiguration(this.configuration, configuration)) return;\n if (configuration.selected) this._internals.states.add('selected');\n else this._internals.states.delete('selected');\n this.configuration = configuration;\n }\n\n /** @internal */\n _scroll(scrollLeft: number) {\n // ScrollTimeline fallback; remove after wider adoption of Firefox 159.\n if (!this.#scrollAnimation) this.style.setProperty('--_workspace-tab-scroll', `${-scrollLeft}px`);\n }\n\n /** @internal */\n _bindScroll(source: HTMLElement | undefined, extent: number) {\n if (source === this.#scrollSource && extent === this.#scrollExtent) return;\n if (this.#updateScrollExtent(source, extent)) return;\n this.#scrollAnimation?.cancel();\n this.#scrollAnimation = undefined;\n this.#scrollSource = source;\n this.#scrollExtent = extent;\n this.#bindScrollAnimation();\n if (!this.#scrollAnimation) this._scroll(source?.scrollLeft ?? 0);\n }\n\n #updateScrollExtent(source: HTMLElement | undefined, extent: number) {\n if (source !== this.#scrollSource || extent <= 0) return false;\n const effect = this.#scrollAnimation?.effect;\n if (!(effect instanceof KeyframeEffect)) return false;\n this.#scrollExtent = extent;\n effect.setKeyframes(scrollKeyframes(extent));\n return true;\n }\n\n #bindScrollAnimation() {\n if (\n this.#scrollAnimation ||\n !this.#scrollSource ||\n this.#scrollExtent <= 0 ||\n typeof ScrollTimeline === 'undefined'\n )\n return;\n const track = this.shadowRoot?.querySelector<HTMLElement>('.label-track');\n if (!track) return;\n this.#scrollAnimation = track.animate(scrollKeyframes(this.#scrollExtent), {\n timeline: new ScrollTimeline({ source: this.#scrollSource, axis: 'x' }),\n fill: 'both',\n easing: 'linear'\n });\n }\n\n #hasTitle() {\n if (isServer) return true;\n return [...this.childNodes].some(\n node => (!(node instanceof Element) || !node.hasAttribute('slot')) && !!node.textContent?.trim()\n );\n }\n}\n\nfunction scrollKeyframes(extent: number) {\n return [{ transform: 'translateX(0px)' }, { transform: `translateX(${-extent}px)` }];\n}\n"],"mappings":";;;;;;;;;AAiCA,IAAaI,IAAb,cAA0CC,EAAW;;EAuBnC,A,aAjBG,KAAA,OAAA,UAK4C,KAAA,gBAAA;GAC7D,UAAU;GACV,QAAQ;GACR,SAAS;GACT,UAAU;GACV,cAAc;GACd,WAAW;GACX,UAAU;GACV,WAAW;EACb,GAGgB,KAAAE,KAAA;;;EAtBA,KAAA,SAAAC,EAAU,CAACR,CAAM,CAAC;;;EAEP,KAAA,WAAA;GAAE,KAAK;GAA8B,SAAS;GAAS,SAAS,CAAC,qBAAqB;EAAE;;CAmBnH;CACA;CACA;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxBS,EAAgB,IAAI;CACtB;CAEA,uBAAuB;EAErB,AADA,MAAM,qBAAqB,GAC3B,KAAK,YAAY,KAAA,GAAW,CAAC;CAC/B;CAEA,UAAoB;EAClB,KAAKC,GAAqB;CAC5B;CAEA,SAAS;EACP,IAAM,EAAE,aAAU,WAAQ,YAAS,aAAU,iBAAc,cAAW,aAAU,iBAAc,KAAK;EACnG,OAAO,CAAI,4EAKG,QAAQC,EAAS,WAAWC,EAAU,YAAYC,EAAa,IAAI,+DAIvDC,EAAQ,WAChB,QAAQC,IAASJ,EAAS,WAAWK,EAAS,YAAYH,EAAa,IAAI,iEAIjE,CAACI,KAAY,CAAC,KAAK,cAAc,4BAA0B,EAAE,uBACvD,KAAK,cAAc,EAAE,gEACW,KAAK,cAAc,EAAE,WAAU,KAAKC,GAAU,IAAI,OAAO,KAAK,eAAe,GAAG,kCAM5IC,IACI,CAAI,iCAC2B,OAAON,EAAa,IAAI,+BAEvD,KACL,2CAGuBO,IAAY,EAAE,WAC5B,UAAUP,EAAa,WAAWO,EAAU,IAAI,iBAC1C,CAACD,EAAS,YACf,CAACA,EAAS,oBACF,CAACA,EAAS,iBACb,CAACF,KAAY,CAAC,KAAK,cAAc,4BAA0B,EAAE,uEACP,KAAK,cAAc,EAAE;CAIjG;CAGA,yBAAyB;EACvB,OAAO;GACL,OAAO,KAAK,YAAY,cAA2B,gBAAgB,KAAK;GACxE,QAAQ,KAAK,YAAY,cAA2B,iBAAiB,KAAK;EAC5E;CACF;CAGA,wBAAwB;EACtB,OAAO;GACL,eAAe,KAAK,YAAY,cAA2B,iBAAiB,KAAK;GACjF,YAAY,KAAK,YAAY,cAA2B,cAAc,KAAK;GAC3E,OAAO,KAAK,YAAY,cAA2B,QAAQ,KAAK;GAChE,QAAQ,KAAK,YAAY,cAA2B,SAAS,KAAK;EACpE;CACF;CAGA,OAAO,GAAkB;EACvB,AAAII,IAAS,KAAK,WAAW,OAAO,IAAI,WAAW,IAC9C,KAAK,WAAW,OAAO,OAAO,WAAW;CAChD;CAGA,WAAW,EAAE,eAAY,GAAGC,KAAwE;EAElG,AADA,KAAK,QAAQC,CAAU,GACnB,GAAwB,KAAK,eAAeD,CAAa,MACzDA,EAAc,WAAU,KAAK,WAAW,OAAO,IAAI,UAAU,IAC5D,KAAK,WAAW,OAAO,OAAO,UAAU,GAC7C,KAAK,gBAAgBA;CACvB;CAGA,QAAQ,GAAoB;EAE1B,AAAK,KAAKE,MAAkB,KAAK,MAAM,YAAY,2BAA2B,GAAG,CAACD,EAAW,GAAG;CAClG;CAGA,YAAY,GAAiC,GAAgB;EAC3D,AAAIE,MAAW,KAAKC,MAAiBC,MAAW,KAAKpB,MACjD,KAAKqB,GAAoBH,GAAQE,CAAM,MAC3C,KAAKH,IAAkB,OAAO,GAC9B,KAAKA,KAAmB,KAAA,GACxB,KAAKE,KAAgBD,GACrB,KAAKlB,KAAgBoB,GACrB,KAAKjB,GAAqB,GACrB,KAAKc,MAAkB,KAAK,QAAQC,GAAQ,cAAc,CAAC;CAClE;CAEA,GAAoB,GAAiC,GAAgB;EACnE,IAAIA,MAAW,KAAKC,MAAiBC,KAAU,GAAG,OAAO;EACzD,IAAME,IAAS,KAAKL,IAAkB;EAItC,OAHMK,aAAkB,mBACxB,KAAKtB,KAAgBoB,GACrBE,EAAO,aAAaC,EAAgBH,CAAM,CAAC,GACpC;CACT;CAEA,KAAuB;EACrB,IACE,KAAKH,MACL,CAAC,KAAKE,MACN,KAAKnB,MAAiB,KACtB,OAAO,iBAAmB,KAE1B;EACF,IAAMwB,IAAQ,KAAK,YAAY,cAA2B,cAAc;EACxE,AAAKA,MACL,KAAKP,KAAmBO,EAAM,QAAQD,EAAgB,KAAKvB,EAAa,GAAG;GACzE,UAAU,IAAI,eAAe;IAAE,QAAQ,KAAKmB;IAAe,MAAM;GAAI,CAAC;GACtE,MAAM;GACN,QAAQ;EACV,CAAC;CACH;CAEA,KAAY;EAEV,OADIT,IAAiB,KACd,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,MAC1B,OAAS,EAAEe,aAAgB,YAAY,CAACA,EAAK,aAAa,MAAM,MAAM,CAAC,CAACA,EAAK,aAAa,KAAK,CACjG;CACF;AACF;AAjKG/B,EAAA,CAAAgC,EAAS,CAAA,GAAA7B,EAAA,WAAA,QAAA,KAAA,CAAA,GAKTH,EAAA,CAAAiC,EAAM,CAAA,GAAA9B,EAAA,WAAA,iBAAA,KAAA,CAAA;AA8JT,SAAS0B,EAAgB,GAAgB;CACvC,OAAO,CAAC,EAAE,WAAW,kBAAkB,GAAG,EAAE,WAAW,cAAc,CAACH,EAAO,KAAK,CAAC;AACrF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Dimensions, Point, Rect } from '@nvidia-elements/core/internal';
|
|
2
|
+
import type { WorkspaceBoundary, WorkspacePlacedRegion } from './geometry/allocation.utils.js';
|
|
3
|
+
import type { WorkspaceDragPreview } from './interaction/drag-preview.utils.js';
|
|
4
|
+
import type { WorkspaceLayout, WorkspaceNode } from './model/layout.utils.js';
|
|
5
|
+
import type { WorkspacePresentedGroup, WorkspaceTarget } from './presentation/groups.utils.js';
|
|
6
|
+
import type { WorkspaceMeasurements } from './presentation/measurements.utils.js';
|
|
7
|
+
import type { WorkspacePanel } from '../panel/panel.js';
|
|
8
|
+
interface WorkspaceEvaluationInputs {
|
|
9
|
+
panels: WorkspacePanel[];
|
|
10
|
+
layout: WorkspaceLayout;
|
|
11
|
+
source: string[];
|
|
12
|
+
measurements: WorkspaceMeasurements;
|
|
13
|
+
policy: 'stop' | 'propagate';
|
|
14
|
+
strip(group: WorkspacePresentedGroup): HTMLElement | null | undefined;
|
|
15
|
+
}
|
|
16
|
+
export interface WorkspaceGeometry {
|
|
17
|
+
groups: WorkspacePresentedGroup[];
|
|
18
|
+
boundaries: WorkspaceBoundary[];
|
|
19
|
+
regions: WorkspacePlacedRegion[];
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
minimum: Dimensions;
|
|
23
|
+
}
|
|
24
|
+
export interface WorkspaceEvaluationDelegate {
|
|
25
|
+
readonly getCurrentLayout: () => WorkspaceLayout;
|
|
26
|
+
readonly getCurrentMeasurements: () => WorkspaceMeasurements;
|
|
27
|
+
readonly getCurrentPreview: () => WorkspaceDragPreview | undefined;
|
|
28
|
+
readonly getFullscreenTarget: () => string | undefined;
|
|
29
|
+
readonly getResizePreview: () => WorkspaceLayout | undefined;
|
|
30
|
+
}
|
|
31
|
+
export interface WorkspacePlacementCatalog {
|
|
32
|
+
targets: WorkspaceTarget[];
|
|
33
|
+
regions: WorkspacePlacedRegion[];
|
|
34
|
+
orderingRegions?: WorkspacePlacedRegion[];
|
|
35
|
+
sourceSlot?: Rect;
|
|
36
|
+
headers?: Rect[];
|
|
37
|
+
preview?: WorkspaceDragPreview;
|
|
38
|
+
bounds: Rect;
|
|
39
|
+
headerTarget?: WorkspaceTarget;
|
|
40
|
+
reservationHit?: WorkspaceReservationHit;
|
|
41
|
+
}
|
|
42
|
+
type WorkspaceReservationHit = 'group' | 'tab';
|
|
43
|
+
/** Shares layout inputs and browser reads within one synchronous evaluation. */
|
|
44
|
+
export declare class WorkspaceEvaluation {
|
|
45
|
+
#private;
|
|
46
|
+
readonly panels: WorkspacePanel[];
|
|
47
|
+
readonly available: string[];
|
|
48
|
+
readonly requirements: import("./geometry/sizing.utils.js").WorkspaceRequirements;
|
|
49
|
+
readonly projectLayout: import("./model/projection.utils.js").WorkspaceLayoutProjector;
|
|
50
|
+
readonly contextRect: import("./placement/context.utils.js").WorkspaceContextRectResolver;
|
|
51
|
+
constructor(host: HTMLElement, inputs: WorkspaceEvaluationInputs, delegate?: WorkspaceEvaluationDelegate);
|
|
52
|
+
minimum(node: WorkspaceNode | null): Dimensions;
|
|
53
|
+
project(layout: WorkspaceLayout): WorkspaceLayout;
|
|
54
|
+
geometry(layout: WorkspaceLayout, extent?: WorkspaceLayout): WorkspaceGeometry;
|
|
55
|
+
detached(source: string[]): WorkspaceGeometry;
|
|
56
|
+
nonOrderGeometry(source: string[]): WorkspaceGeometry;
|
|
57
|
+
targetCatalog(source: string[], allocation?: WorkspaceGeometry): {
|
|
58
|
+
gap: number;
|
|
59
|
+
regions: WorkspacePlacedRegion[];
|
|
60
|
+
orderingRegions: WorkspacePlacedRegion[];
|
|
61
|
+
sourceSlot: Rect | undefined;
|
|
62
|
+
preview: WorkspaceDragPreview | undefined;
|
|
63
|
+
headers: Rect[];
|
|
64
|
+
targets: {
|
|
65
|
+
panels: string[];
|
|
66
|
+
rect: Rect;
|
|
67
|
+
headerHeight: number;
|
|
68
|
+
tabs: never[];
|
|
69
|
+
}[];
|
|
70
|
+
bounds: Rect;
|
|
71
|
+
};
|
|
72
|
+
getPlacementCatalog(source: string[], point: Point): WorkspacePlacementCatalog;
|
|
73
|
+
bounds(): Rect;
|
|
74
|
+
client(rect: Rect): {
|
|
75
|
+
width: number;
|
|
76
|
+
height: number;
|
|
77
|
+
x: number;
|
|
78
|
+
y: number;
|
|
79
|
+
};
|
|
80
|
+
scroll(group: WorkspacePresentedGroup): number;
|
|
81
|
+
presentationGeometry(): WorkspaceGeometry;
|
|
82
|
+
}
|
|
83
|
+
export {};
|