@nvidia-elements/core 2.23.4 → 2.23.6
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 +16 -0
- package/dist/accordion/accordion2.js +49 -49
- package/dist/accordion/accordion2.js.map +1 -1
- package/dist/alert/alert-group2.js +22 -21
- package/dist/alert/alert-group2.js.map +1 -1
- package/dist/alert/alert2.js +29 -28
- package/dist/alert/alert2.js.map +1 -1
- package/dist/avatar/avatar-group2.js +9 -9
- package/dist/avatar/avatar-group2.js.map +1 -1
- package/dist/avatar/avatar2.js +12 -11
- package/dist/avatar/avatar2.js.map +1 -1
- package/dist/badge/badge2.js +27 -26
- package/dist/badge/badge2.js.map +1 -1
- package/dist/breadcrumb/breadcrumb2.js +17 -17
- package/dist/breadcrumb/breadcrumb2.js.map +1 -1
- package/dist/bundles/index.js +10 -10
- package/dist/button/button2.js +12 -12
- package/dist/button/button2.js.map +1 -1
- package/dist/button-group/button-group2.js +18 -18
- package/dist/button-group/button-group2.js.map +1 -1
- package/dist/card/card2.js +28 -28
- package/dist/card/card2.js.map +1 -1
- package/dist/chat-message/chat-message2.js +15 -14
- package/dist/chat-message/chat-message2.js.map +1 -1
- package/dist/checkbox/checkbox-group2.js +8 -8
- package/dist/checkbox/checkbox-group2.js.map +1 -1
- package/dist/checkbox/checkbox2.js +8 -8
- package/dist/checkbox/checkbox2.js.map +1 -1
- package/dist/color/color2.js +21 -21
- package/dist/color/color2.js.map +1 -1
- package/dist/combobox/combobox2.js +37 -37
- package/dist/combobox/combobox2.js.map +1 -1
- package/dist/copy-button/copy-button.d.ts +1 -1
- package/dist/copy-button/copy-button2.js +21 -21
- package/dist/copy-button/copy-button2.js.map +1 -1
- package/dist/custom-elements.json +1032 -337
- package/dist/date/date2.js +19 -19
- package/dist/date/date2.js.map +1 -1
- package/dist/datetime/datetime2.js +19 -19
- package/dist/datetime/datetime2.js.map +1 -1
- package/dist/dialog/dialog-footer2.js +7 -7
- package/dist/dialog/dialog-footer2.js.map +1 -1
- package/dist/dialog/dialog-header2.js +7 -7
- package/dist/dialog/dialog-header2.js.map +1 -1
- package/dist/dialog/dialog2.js +25 -25
- package/dist/dialog/dialog2.js.map +1 -1
- package/dist/divider/divider2.js +12 -12
- package/dist/divider/divider2.js.map +1 -1
- package/dist/dot/dot2.js +17 -16
- package/dist/dot/dot2.js.map +1 -1
- package/dist/drag-handle/drag-handle2.js +12 -12
- package/dist/drag-handle/drag-handle2.js.map +1 -1
- package/dist/drawer/drawer-content2.js +7 -7
- package/dist/drawer/drawer-content2.js.map +1 -1
- package/dist/drawer/drawer-footer2.js +7 -7
- package/dist/drawer/drawer-footer2.js.map +1 -1
- package/dist/drawer/drawer-header2.js +7 -7
- package/dist/drawer/drawer-header2.js.map +1 -1
- package/dist/drawer/drawer2.js +21 -21
- package/dist/drawer/drawer2.js.map +1 -1
- package/dist/dropdown/dropdown-footer2.js +7 -7
- package/dist/dropdown/dropdown-footer2.js.map +1 -1
- package/dist/dropdown/dropdown-header2.js +7 -7
- package/dist/dropdown/dropdown-header2.js.map +1 -1
- package/dist/dropdown/dropdown2.js +21 -21
- package/dist/dropdown/dropdown2.js.map +1 -1
- package/dist/dropdown-group/dropdown-group.js +10 -10
- package/dist/dropdown-group/dropdown-group.js.map +1 -1
- package/dist/dropzone/dropzone2.js +19 -19
- package/dist/dropzone/dropzone2.js.map +1 -1
- package/dist/file/file2.js +8 -8
- package/dist/file/file2.js.map +1 -1
- package/dist/format-bytes/format-bytes2.js +13 -13
- package/dist/format-bytes/format-bytes2.js.map +1 -1
- package/dist/format-datetime/format-datetime2.js +14 -14
- package/dist/format-datetime/format-datetime2.js.map +1 -1
- package/dist/format-number/format-number2.js +20 -20
- package/dist/format-number/format-number2.js.map +1 -1
- package/dist/format-relative-time/format-relative-time2.js +11 -11
- package/dist/format-relative-time/format-relative-time2.js.map +1 -1
- package/dist/format-truncate/format-truncate2.js +21 -21
- package/dist/format-truncate/format-truncate2.js.map +1 -1
- package/dist/forms/control/control2.js +30 -29
- package/dist/forms/control/control2.js.map +1 -1
- package/dist/forms/control-group/control-group2.js +19 -18
- package/dist/forms/control-group/control-group2.js.map +1 -1
- package/dist/forms/control-message/control-message2.js +15 -15
- package/dist/forms/control-message/control-message2.js.map +1 -1
- package/dist/gauge/gauge2.js +20 -20
- package/dist/gauge/gauge2.js.map +1 -1
- package/dist/ghost/ghost2.js +10 -10
- package/dist/ghost/ghost2.js.map +1 -1
- package/dist/grid/cell/cell2.js +9 -9
- package/dist/grid/cell/cell2.js.map +1 -1
- package/dist/grid/column/column2.js +16 -16
- package/dist/grid/column/column2.js.map +1 -1
- package/dist/grid/footer/footer2.js +12 -12
- package/dist/grid/footer/footer2.js.map +1 -1
- package/dist/grid/grid2.js +30 -30
- package/dist/grid/grid2.js.map +1 -1
- package/dist/grid/header/header2.js +20 -20
- package/dist/grid/header/header2.js.map +1 -1
- package/dist/grid/placeholder/placeholder2.js +9 -9
- package/dist/grid/placeholder/placeholder2.js.map +1 -1
- package/dist/grid/row/row2.js +15 -15
- package/dist/grid/row/row2.js.map +1 -1
- package/dist/icon/icon2.js +40 -40
- package/dist/icon/icon2.js.map +1 -1
- package/dist/icon-button/icon-button2.js +17 -17
- package/dist/icon-button/icon-button2.js.map +1 -1
- package/dist/iframe/iframe2.js +7 -7
- package/dist/iframe/iframe2.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/input/input-group2.js +8 -8
- package/dist/input/input-group2.js.map +1 -1
- package/dist/input/input2.js +10 -10
- package/dist/input/input2.js.map +1 -1
- package/dist/internal/controllers/state-expanded.controller.js +1 -1
- package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
- package/dist/internal/controllers/state-highlighted.controller.js +1 -1
- package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
- package/dist/internal/controllers/state-scroll.controller.js +1 -1
- package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
- package/dist/internal/controllers/state-selected.controller.js +1 -1
- package/dist/internal/controllers/state-selected.controller.js.map +1 -1
- package/dist/internal/controllers/type-anchor.controller.js +1 -1
- package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
- package/dist/internal/controllers/type-closable.controller.js +1 -1
- package/dist/internal/controllers/type-closable.controller.js.map +1 -1
- package/dist/internal/controllers/type-expandable.controller.js +1 -1
- package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
- package/dist/internal/controllers/type-native-popover.controller.js +6 -6
- package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
- package/dist/internal/controllers/type-popover.controller.examples.js.map +1 -1
- package/dist/internal/controllers/type-selectable.controller.js +1 -1
- package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
- package/dist/internal/index.d.ts +0 -1
- package/dist/internal/index.js +57 -61
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/styles/index.d.ts +0 -1
- package/dist/internal/styles/index.js +5 -15
- package/dist/internal/styles/index.js.map +1 -1
- package/dist/internal/utils/a11y.d.ts +0 -3
- package/dist/internal/utils/a11y.js +6 -9
- package/dist/internal/utils/a11y.js.map +1 -1
- package/dist/joystick/joystick2.js +19 -19
- package/dist/joystick/joystick2.js.map +1 -1
- package/dist/logo/logo2.js +14 -13
- package/dist/logo/logo2.js.map +1 -1
- package/dist/menu/menu-group2.js +20 -20
- package/dist/menu/menu-group2.js.map +1 -1
- package/dist/menu/menu-item2.js +11 -11
- package/dist/menu/menu-item2.js.map +1 -1
- package/dist/menu/menu2.js +14 -14
- package/dist/menu/menu2.js.map +1 -1
- package/dist/month/month2.js +19 -19
- package/dist/month/month2.js.map +1 -1
- package/dist/notification/notification-group2.js +13 -13
- package/dist/notification/notification-group2.js.map +1 -1
- package/dist/notification/notification2.js +31 -31
- package/dist/notification/notification2.js.map +1 -1
- package/dist/page/page-panel/page-panel-content2.js +7 -7
- package/dist/page/page-panel/page-panel-content2.js.map +1 -1
- package/dist/page/page-panel/page-panel-footer2.js +9 -9
- package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
- package/dist/page/page-panel/page-panel-header2.js +9 -9
- package/dist/page/page-panel/page-panel-header2.js.map +1 -1
- package/dist/page/page-panel/page-panel2.js +15 -15
- package/dist/page/page-panel/page-panel2.js.map +1 -1
- package/dist/page/page2.js +13 -13
- package/dist/page/page2.js.map +1 -1
- package/dist/page-header/page-header2.js +10 -10
- package/dist/page-header/page-header2.js.map +1 -1
- package/dist/page-loader/page-loader2.js +13 -13
- package/dist/page-loader/page-loader2.js.map +1 -1
- package/dist/pagination/pagination2.js +34 -34
- package/dist/pagination/pagination2.js.map +1 -1
- package/dist/panel/panel2.js +36 -36
- package/dist/panel/panel2.js.map +1 -1
- package/dist/password/password2.js +19 -19
- package/dist/password/password2.js.map +1 -1
- package/dist/preferences-input/preferences-input.d.ts +1 -1
- package/dist/preferences-input/preferences-input2.js +25 -25
- package/dist/preferences-input/preferences-input2.js.map +1 -1
- package/dist/progress-bar/progress-bar2.js +13 -13
- package/dist/progress-bar/progress-bar2.js.map +1 -1
- package/dist/progress-dot/progress-dot2.js +15 -15
- package/dist/progress-dot/progress-dot2.js.map +1 -1
- package/dist/progress-ring/progress-ring2.js +20 -20
- package/dist/progress-ring/progress-ring2.js.map +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip2.js +28 -28
- package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
- package/dist/pulse/pulse2.js +15 -15
- package/dist/pulse/pulse2.js.map +1 -1
- package/dist/radio/radio-group2.js +8 -8
- package/dist/radio/radio-group2.js.map +1 -1
- package/dist/radio/radio2.js +8 -8
- package/dist/radio/radio2.js.map +1 -1
- package/dist/range/range2.js +16 -16
- package/dist/range/range2.js.map +1 -1
- package/dist/resize-handle/resize-handle2.js +17 -17
- package/dist/resize-handle/resize-handle2.js.map +1 -1
- package/dist/search/search2.js +20 -20
- package/dist/search/search2.js.map +1 -1
- package/dist/select/select2.js +32 -32
- package/dist/select/select2.js.map +1 -1
- package/dist/skeleton/skeleton2.js +14 -14
- package/dist/skeleton/skeleton2.js.map +1 -1
- package/dist/sort-button/sort-button.d.ts +1 -1
- package/dist/sort-button/sort-button2.js +16 -16
- package/dist/sort-button/sort-button2.js.map +1 -1
- package/dist/sparkline/sparkline2.js +45 -44
- package/dist/sparkline/sparkline2.js.map +1 -1
- package/dist/star-rating/star-rating2.js +14 -14
- package/dist/star-rating/star-rating2.js.map +1 -1
- package/dist/steps/steps2.js +32 -32
- package/dist/steps/steps2.js.map +1 -1
- package/dist/switch/switch-group2.js +8 -8
- package/dist/switch/switch-group2.js.map +1 -1
- package/dist/switch/switch2.js +8 -8
- package/dist/switch/switch2.js.map +1 -1
- package/dist/tabs/tabs-group2.js +18 -18
- package/dist/tabs/tabs-group2.js.map +1 -1
- package/dist/tabs/tabs-item-group2.js +9 -9
- package/dist/tabs/tabs-item-group2.js.map +1 -1
- package/dist/tabs/tabs2.js +28 -28
- package/dist/tabs/tabs2.js.map +1 -1
- package/dist/tag/tag2.js +19 -18
- package/dist/tag/tag2.js.map +1 -1
- package/dist/textarea/textarea2.js +9 -9
- package/dist/textarea/textarea2.js.map +1 -1
- package/dist/time/time2.js +19 -19
- package/dist/time/time2.js.map +1 -1
- package/dist/toast/toast2.js +28 -28
- package/dist/toast/toast2.js.map +1 -1
- package/dist/toggletip/toggletip-footer2.js +7 -7
- package/dist/toggletip/toggletip-footer2.js.map +1 -1
- package/dist/toggletip/toggletip-header2.js +7 -7
- package/dist/toggletip/toggletip-header2.js.map +1 -1
- package/dist/toggletip/toggletip2.js +23 -23
- package/dist/toggletip/toggletip2.js.map +1 -1
- package/dist/toolbar/toolbar2.js +20 -19
- package/dist/toolbar/toolbar2.js.map +1 -1
- package/dist/tooltip/tooltip2.js +20 -20
- package/dist/tooltip/tooltip2.js.map +1 -1
- package/dist/tree/tree-node2.js +39 -39
- package/dist/tree/tree-node2.js.map +1 -1
- package/dist/tree/tree2.js +20 -20
- package/dist/tree/tree2.js.map +1 -1
- package/dist/week/week2.js +19 -19
- package/dist/week/week2.js.map +1 -1
- package/dist/workspace/controllers/workspace-composition.controller.d.ts +4 -1
- package/dist/workspace/controllers/workspace-composition.controller.js +69 -39
- package/dist/workspace/controllers/workspace-composition.controller.js.map +1 -1
- package/dist/workspace/controllers/workspace-rearrange.controller.js +27 -27
- package/dist/workspace/controllers/workspace-rearrange.controller.js.map +1 -1
- package/dist/workspace/controllers/workspace-restoration.controller.js +2 -2
- package/dist/workspace/controllers/workspace-restoration.controller.js.map +1 -1
- package/dist/workspace/panel/panel2.js +15 -15
- package/dist/workspace/panel/panel2.js.map +1 -1
- package/dist/workspace/panel-content/panel-content2.js +7 -7
- package/dist/workspace/panel-content/panel-content2.js.map +1 -1
- package/dist/workspace/panel-footer/panel-footer2.js +9 -9
- package/dist/workspace/panel-footer/panel-footer2.js.map +1 -1
- package/dist/workspace/panel-header/panel-header2.js +16 -16
- package/dist/workspace/panel-header/panel-header2.js.map +1 -1
- package/dist/workspace/utils/comparison.utils.d.ts +3 -0
- package/dist/workspace/utils/comparison.utils.js +13 -0
- package/dist/workspace/utils/comparison.utils.js.map +1 -0
- package/dist/workspace/utils/evaluation.utils.d.ts +65 -6
- package/dist/workspace/utils/evaluation.utils.js +334 -99
- package/dist/workspace/utils/evaluation.utils.js.map +1 -1
- package/dist/workspace/utils/geometry/allocation.utils.js +15 -13
- package/dist/workspace/utils/geometry/allocation.utils.js.map +1 -1
- package/dist/workspace/utils/geometry/sizing.utils.d.ts +2 -0
- package/dist/workspace/utils/geometry/sizing.utils.js +37 -17
- package/dist/workspace/utils/geometry/sizing.utils.js.map +1 -1
- package/dist/workspace/utils/interaction/boundary.utils.d.ts +2 -2
- package/dist/workspace/utils/interaction/boundary.utils.js +2 -2
- package/dist/workspace/utils/interaction/boundary.utils.js.map +1 -1
- package/dist/workspace/utils/interaction/drag-preview.utils.d.ts +3 -3
- package/dist/workspace/utils/interaction/drag-preview.utils.js.map +1 -1
- package/dist/workspace/utils/interaction/insertion-offers.utils.d.ts +11 -9
- package/dist/workspace/utils/interaction/insertion-offers.utils.js +37 -43
- package/dist/workspace/utils/interaction/insertion-offers.utils.js.map +1 -1
- package/dist/workspace/utils/interaction/placement-decision.utils.d.ts +6 -1
- package/dist/workspace/utils/interaction/placement-decision.utils.js +94 -87
- package/dist/workspace/utils/interaction/placement-decision.utils.js.map +1 -1
- package/dist/workspace/utils/model/layout.utils.d.ts +2 -1
- package/dist/workspace/utils/model/layout.utils.js +12 -10
- package/dist/workspace/utils/model/layout.utils.js.map +1 -1
- package/dist/workspace/utils/model/membership.utils.d.ts +4 -0
- package/dist/workspace/utils/model/membership.utils.js +13 -4
- package/dist/workspace/utils/model/membership.utils.js.map +1 -1
- package/dist/workspace/utils/model/operations.utils.d.ts +1 -0
- package/dist/workspace/utils/model/operations.utils.js +51 -46
- package/dist/workspace/utils/model/operations.utils.js.map +1 -1
- package/dist/workspace/utils/model/projection.utils.d.ts +4 -2
- package/dist/workspace/utils/model/projection.utils.js +49 -40
- package/dist/workspace/utils/model/projection.utils.js.map +1 -1
- package/dist/workspace/utils/model/value.utils.d.ts +4 -3
- package/dist/workspace/utils/model/value.utils.js +15 -50
- package/dist/workspace/utils/model/value.utils.js.map +1 -1
- package/dist/workspace/utils/placement/acquisition-sizing.utils.d.ts +2 -0
- package/dist/workspace/utils/placement/acquisition-sizing.utils.js +30 -22
- package/dist/workspace/utils/placement/acquisition-sizing.utils.js.map +1 -1
- package/dist/workspace/utils/placement/group-insertion.utils.d.ts +19 -13
- package/dist/workspace/utils/placement/group-insertion.utils.js +50 -47
- package/dist/workspace/utils/placement/group-insertion.utils.js.map +1 -1
- package/dist/workspace/utils/placement/planner.utils.d.ts +13 -2
- package/dist/workspace/utils/placement/planner.utils.js +79 -73
- package/dist/workspace/utils/placement/planner.utils.js.map +1 -1
- package/dist/workspace/utils/placement/preparation.utils.d.ts +5 -2
- package/dist/workspace/utils/placement/preparation.utils.js +45 -41
- package/dist/workspace/utils/placement/preparation.utils.js.map +1 -1
- package/dist/workspace/utils/placement/region.utils.js +32 -32
- package/dist/workspace/utils/placement/region.utils.js.map +1 -1
- package/dist/workspace/utils/placement/scope.utils.d.ts +34 -0
- package/dist/workspace/utils/placement/scope.utils.js +155 -0
- package/dist/workspace/utils/placement/scope.utils.js.map +1 -0
- package/dist/workspace/utils/placement/session.utils.d.ts +11 -0
- package/dist/workspace/utils/placement/session.utils.js +78 -0
- package/dist/workspace/utils/placement/session.utils.js.map +1 -0
- package/dist/workspace/utils/placement/split-sizing.utils.d.ts +2 -2
- package/dist/workspace/utils/placement/split-sizing.utils.js +19 -19
- package/dist/workspace/utils/placement/split-sizing.utils.js.map +1 -1
- package/dist/workspace/utils/presentation/composition.utils.d.ts +1 -1
- package/dist/workspace/utils/presentation/composition.utils.js +4 -2
- package/dist/workspace/utils/presentation/composition.utils.js.map +1 -1
- package/dist/workspace/utils/presentation/groups.utils.d.ts +3 -3
- package/dist/workspace/utils/presentation/groups.utils.js +40 -30
- package/dist/workspace/utils/presentation/groups.utils.js.map +1 -1
- package/dist/workspace/utils/presentation/measurements.utils.d.ts +1 -0
- package/dist/workspace/utils/presentation/measurements.utils.js +6 -14
- package/dist/workspace/utils/presentation/measurements.utils.js.map +1 -1
- package/dist/workspace/utils/presentation/offers.utils.d.ts +1 -1
- package/dist/workspace/utils/presentation/offers.utils.js +3 -3
- package/dist/workspace/utils/presentation/offers.utils.js.map +1 -1
- package/dist/workspace/utils/presentation/preview.utils.d.ts +6 -0
- package/dist/workspace/utils/presentation/preview.utils.js +14 -3
- package/dist/workspace/utils/presentation/preview.utils.js.map +1 -1
- package/dist/workspace/workspace.examples.js.map +1 -1
- package/dist/workspace/workspace.examples.json +4 -4
- package/dist/workspace/workspace.js +1 -1
- package/dist/workspace/workspace.js.map +1 -1
- package/dist/workspace/workspace2.js +233 -239
- package/dist/workspace/workspace2.js.map +1 -1
- package/package.json +2 -2
- package/dist/internal/decorators/scoped-registry.d.ts +0 -2
- package/dist/internal/decorators/scoped-registry.js +0 -36
- package/dist/internal/decorators/scoped-registry.js.map +0 -1
- package/dist/internal/styles/base.js +0 -5
- package/dist/internal/styles/base.js.map +0 -1
- package/dist/internal/styles/interaction-state.js +0 -5
- package/dist/internal/styles/interaction-state.js.map +0 -1
- package/dist/workspace/utils/placement/context.utils.d.ts +0 -36
- package/dist/workspace/utils/placement/context.utils.js +0 -135
- package/dist/workspace/utils/placement/context.utils.js.map +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import n from "
|
|
4
|
-
import r from "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import e from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
2
|
+
import t from "./panel.js";
|
|
3
|
+
import { attachInternals as n } from "@nvidia-elements/foundations/internal/a11y";
|
|
4
|
+
import { LitElement as r, html as i } from "lit";
|
|
5
|
+
import { property as a } from "lit/decorators/property.js";
|
|
6
|
+
import { useStyles as o } from "@nvidia-elements/foundations/internal/styles";
|
|
7
7
|
import { state as s } from "lit/decorators/state.js";
|
|
8
8
|
// src/workspace/panel/panel.ts
|
|
9
|
-
var c = class extends
|
|
9
|
+
var c = class extends r {
|
|
10
10
|
constructor(...e) {
|
|
11
11
|
super(...e), this.minWidth = 0, this.minHeight = 0, this.selected = !1, this.headerHeight = 0;
|
|
12
12
|
}
|
|
13
13
|
static {
|
|
14
|
-
this.styles =
|
|
14
|
+
this.styles = o([t]);
|
|
15
15
|
}
|
|
16
16
|
static {
|
|
17
17
|
this.metadata = {
|
|
18
18
|
tag: "nve-workspace-panel",
|
|
19
|
-
version: "2.23.
|
|
19
|
+
version: "2.23.6",
|
|
20
20
|
parents: ["nve-workspace"],
|
|
21
21
|
children: [
|
|
22
22
|
"nve-workspace-panel-header",
|
|
@@ -26,28 +26,28 @@ var c = class extends i {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
connectedCallback() {
|
|
29
|
-
super.connectedCallback(),
|
|
29
|
+
super.connectedCallback(), n(this);
|
|
30
30
|
}
|
|
31
31
|
render() {
|
|
32
32
|
let { selected: e, headerHeight: t } = this;
|
|
33
|
-
return
|
|
33
|
+
return i`<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
34
|
}
|
|
35
35
|
_present(e) {
|
|
36
|
-
e ? this._internals.states.add("workspace-presented") : this._internals.states.delete("workspace-presented");
|
|
36
|
+
this._internals.states.has("workspace-presented") !== e && (e ? this._internals.states.add("workspace-presented") : this._internals.states.delete("workspace-presented"));
|
|
37
37
|
}
|
|
38
38
|
_configure(e) {
|
|
39
39
|
this.selected = e.selected, this.headerHeight = e.headerHeight, this.querySelector(":scope > nve-workspace-panel-header")?._configure(e);
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
e([a({
|
|
43
43
|
type: Number,
|
|
44
44
|
attribute: "min-width",
|
|
45
45
|
reflect: !0
|
|
46
|
-
})], c.prototype, "minWidth", void 0),
|
|
46
|
+
})], c.prototype, "minWidth", void 0), e([a({
|
|
47
47
|
type: Number,
|
|
48
48
|
attribute: "min-height",
|
|
49
49
|
reflect: !0
|
|
50
|
-
})], c.prototype, "minHeight", void 0),
|
|
50
|
+
})], c.prototype, "minHeight", void 0), e([s()], c.prototype, "selected", void 0), e([s()], c.prototype, "headerHeight", void 0);
|
|
51
51
|
export { c as WorkspacePanel };
|
|
52
52
|
|
|
53
53
|
//# sourceMappingURL=panel2.js.map
|
|
@@ -1 +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
|
|
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 } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\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 (this._internals.states.has('workspace-presented') === presented) {\n return;\n }\n\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":";;;;;;;;AAqCA,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,AAAI,KAAK,WAAW,OAAO,IAAI,qBAAqB,MAAMC,MAItDA,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;AAjDGX,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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import t from "
|
|
3
|
-
import {
|
|
1
|
+
import e from "./panel-content.js";
|
|
2
|
+
import { LitElement as t, html as n } from "lit";
|
|
3
|
+
import { useStyles as r } from "@nvidia-elements/foundations/internal/styles";
|
|
4
4
|
// src/workspace/panel-content/panel-content.ts
|
|
5
|
-
var i = class extends
|
|
5
|
+
var i = class extends t {
|
|
6
6
|
static {
|
|
7
|
-
this.styles =
|
|
7
|
+
this.styles = r([e]);
|
|
8
8
|
}
|
|
9
9
|
static {
|
|
10
10
|
this.metadata = {
|
|
11
11
|
tag: "nve-workspace-panel-content",
|
|
12
|
-
version: "2.23.
|
|
12
|
+
version: "2.23.6",
|
|
13
13
|
parents: ["nve-workspace-panel"]
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return
|
|
17
|
+
return n`<div internal-host><slot></slot></div>`;
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
export { i as WorkspacePanelContent };
|
|
@@ -1 +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/
|
|
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/foundations/internal/styles';\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"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { hostAttr as e } from "../../internal/decorators/host-attr.js";
|
|
2
|
-
import
|
|
3
|
-
import n from "
|
|
4
|
-
import r from "
|
|
5
|
-
import {
|
|
2
|
+
import t from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
3
|
+
import n from "./panel-footer.js";
|
|
4
|
+
import { LitElement as r, html as i } from "lit";
|
|
5
|
+
import { useStyles as a } from "@nvidia-elements/foundations/internal/styles";
|
|
6
6
|
// src/workspace/panel-footer/panel-footer.ts
|
|
7
|
-
var o = class extends
|
|
7
|
+
var o = class extends r {
|
|
8
8
|
constructor(...e) {
|
|
9
9
|
super(...e), this.slot = "footer";
|
|
10
10
|
}
|
|
11
11
|
static {
|
|
12
|
-
this.styles =
|
|
12
|
+
this.styles = a([n]);
|
|
13
13
|
}
|
|
14
14
|
static {
|
|
15
15
|
this.metadata = {
|
|
16
16
|
tag: "nve-workspace-panel-footer",
|
|
17
|
-
version: "2.23.
|
|
17
|
+
version: "2.23.6",
|
|
18
18
|
parents: ["nve-workspace-panel"]
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
|
-
return
|
|
22
|
+
return i`<div internal-host><slot></slot></div>`;
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
t([e()], o.prototype, "slot", void 0);
|
|
26
26
|
export { o as WorkspacePanelFooter };
|
|
27
27
|
|
|
28
28
|
//# sourceMappingURL=panel-footer2.js.map
|
|
@@ -1 +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
|
|
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 } from '@nvidia-elements/core/internal';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\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":";;;;;;AAsBA,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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import r from "
|
|
5
|
-
import {
|
|
6
|
-
import a from "
|
|
7
|
-
import {
|
|
1
|
+
import { hostAttr as e } from "../../internal/decorators/host-attr.js";
|
|
2
|
+
import t from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
3
|
+
import { sameHeaderConfiguration as n } from "../utils/presentation/header-configuration.utils.js";
|
|
4
|
+
import r from "./panel-header.js";
|
|
5
|
+
import { attachInternals as i } from "@nvidia-elements/foundations/internal/a11y";
|
|
6
|
+
import { LitElement as a, html as o, isServer as s } from "lit";
|
|
7
|
+
import { useStyles as c } from "@nvidia-elements/foundations/internal/styles";
|
|
8
8
|
import { state as l } from "lit/decorators/state.js";
|
|
9
9
|
// src/workspace/panel-header/panel-header.ts
|
|
10
|
-
var u = class extends
|
|
10
|
+
var u = class extends a {
|
|
11
11
|
constructor(...e) {
|
|
12
12
|
super(...e), this.slot = "header", this.configuration = {
|
|
13
13
|
selected: !1,
|
|
@@ -21,12 +21,12 @@ var u = class extends o {
|
|
|
21
21
|
}, this.#t = 0;
|
|
22
22
|
}
|
|
23
23
|
static {
|
|
24
|
-
this.styles =
|
|
24
|
+
this.styles = c([r]);
|
|
25
25
|
}
|
|
26
26
|
static {
|
|
27
27
|
this.metadata = {
|
|
28
28
|
tag: "nve-workspace-panel-header",
|
|
29
|
-
version: "2.23.
|
|
29
|
+
version: "2.23.6",
|
|
30
30
|
parents: ["nve-workspace-panel"]
|
|
31
31
|
};
|
|
32
32
|
}
|
|
@@ -34,7 +34,7 @@ var u = class extends o {
|
|
|
34
34
|
#t;
|
|
35
35
|
#n;
|
|
36
36
|
connectedCallback() {
|
|
37
|
-
super.connectedCallback(),
|
|
37
|
+
super.connectedCallback(), i(this);
|
|
38
38
|
}
|
|
39
39
|
disconnectedCallback() {
|
|
40
40
|
super.disconnectedCallback(), this._bindScroll(void 0, 0);
|
|
@@ -43,8 +43,8 @@ var u = class extends o {
|
|
|
43
43
|
this.#i();
|
|
44
44
|
}
|
|
45
45
|
render() {
|
|
46
|
-
let { selected: e, offset: t, animate: n, tabWidth: r, headerHeight: i, suffixEnd: a, clipLeft:
|
|
47
|
-
return
|
|
46
|
+
let { selected: e, offset: t, animate: n, tabWidth: r, headerHeight: i, suffixEnd: a, clipLeft: c, clipWidth: l } = this.configuration;
|
|
47
|
+
return o`<div internal-host><div class="label-viewport" aria-hidden="true" style="${`left:${c}px;width:${l}px;height:${i}px`}"><div class="label-track"><div class="label" ?data-animate="${n}" style="${`left:${t - c}px;width:${r}px;height:${i}px`}"><span class="label-content"><slot name="prefix" ?data-empty="${!s && !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 ? o`<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="${!s && !this.querySelector(":scope > [slot=\"suffix\"]")}"><div class="suffix-content"><slot name="suffix" @slotchange="${() => this.requestUpdate()}"></slot></div></div></div>`;
|
|
48
48
|
}
|
|
49
49
|
_getMeasurementTargets() {
|
|
50
50
|
return {
|
|
@@ -64,7 +64,7 @@ var u = class extends o {
|
|
|
64
64
|
e ? this._internals.states.add("tab-hover") : this._internals.states.delete("tab-hover");
|
|
65
65
|
}
|
|
66
66
|
_configure({ scrollLeft: e, ...t }) {
|
|
67
|
-
this._scroll(e), !
|
|
67
|
+
this._scroll(e), !n(this.configuration, t) && (t.selected ? this._internals.states.add("selected") : this._internals.states.delete("selected"), this.configuration = t);
|
|
68
68
|
}
|
|
69
69
|
_scroll(e) {
|
|
70
70
|
this.#n || this.style.setProperty("--_workspace-tab-scroll", `${-e}px`);
|
|
@@ -90,10 +90,10 @@ var u = class extends o {
|
|
|
90
90
|
}));
|
|
91
91
|
}
|
|
92
92
|
#a() {
|
|
93
|
-
return
|
|
93
|
+
return s ? !0 : [...this.childNodes].some((e) => (!(e instanceof Element) || !e.hasAttribute("slot")) && !!e.textContent?.trim());
|
|
94
94
|
}
|
|
95
95
|
};
|
|
96
|
-
|
|
96
|
+
t([e()], u.prototype, "slot", void 0), t([l()], u.prototype, "configuration", void 0);
|
|
97
97
|
function d(e) {
|
|
98
98
|
return [{ transform: "translateX(0px)" }, { transform: `translateX(${-e}px)` }];
|
|
99
99
|
}
|
|
@@ -1 +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"}
|
|
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 { hostAttr } from '@nvidia-elements/core/internal';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\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":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// src/workspace/utils/comparison.utils.ts
|
|
2
|
+
function e(e, t) {
|
|
3
|
+
if (e === t) return !0;
|
|
4
|
+
if (e.length !== t.length) return !1;
|
|
5
|
+
for (let n = 0; n < e.length; n++) if (e[n] !== t[n]) return !1;
|
|
6
|
+
return !0;
|
|
7
|
+
}
|
|
8
|
+
function t(e, t) {
|
|
9
|
+
return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
|
|
10
|
+
}
|
|
11
|
+
export { e as sameArrayItems, t as sameRect };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=comparison.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison.utils.js","names":["sameArrayItems","left","right","index","sameRect"],"sources":["../../../src/workspace/utils/comparison.utils.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Rect } from '@nvidia-elements/core/internal';\n\nexport function sameArrayItems<T>(left: readonly T[], right: readonly T[]) {\n if (left === right) return true;\n if (left.length !== right.length) return false;\n for (let index = 0; index < left.length; index++) {\n if (left[index] !== right[index]) return false;\n }\n return true;\n}\n\nexport function sameRect(left: Rect, right: Rect) {\n return left.x === right.x && left.y === right.y && left.width === right.width && left.height === right.height;\n}\n"],"mappings":";AAKA,SAAgBA,EAAkB,GAAoB,GAAqB;CACzE,IAAIC,MAASC,GAAO,OAAO;CAC3B,IAAID,EAAK,WAAWC,EAAM,QAAQ,OAAO;CACzC,KAAK,IAAIC,IAAQ,GAAGA,IAAQF,EAAK,QAAQ,KACvC,IAAIA,EAAKE,OAAWD,EAAMC,IAAQ,OAAO;CAE3C,OAAO;AACT;AAEA,SAAgBC,EAAS,GAAY,GAAa;CAChD,OAAOH,EAAK,MAAMC,EAAM,KAAKD,EAAK,MAAMC,EAAM,KAAKD,EAAK,UAAUC,EAAM,SAASD,EAAK,WAAWC,EAAM;AACzG"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Dimensions, Point, Rect } from '@nvidia-elements/core/internal';
|
|
2
2
|
import type { WorkspaceBoundary, WorkspacePlacedRegion } from './geometry/allocation.utils.js';
|
|
3
|
+
import type { WorkspaceRequirements } from './geometry/sizing.utils.js';
|
|
3
4
|
import type { WorkspaceDragPreview } from './interaction/drag-preview.utils.js';
|
|
4
5
|
import type { WorkspaceLayout, WorkspaceNode } from './model/layout.utils.js';
|
|
6
|
+
import type { WorkspaceScopeRectResolver } from './placement/scope.utils.js';
|
|
5
7
|
import type { WorkspacePresentedGroup, WorkspaceTarget } from './presentation/groups.utils.js';
|
|
6
8
|
import type { WorkspaceMeasurements } from './presentation/measurements.utils.js';
|
|
7
9
|
import type { WorkspacePanel } from '../panel/panel.js';
|
|
@@ -29,10 +31,11 @@ export interface WorkspaceEvaluationDelegate {
|
|
|
29
31
|
readonly getResizePreview: () => WorkspaceLayout | undefined;
|
|
30
32
|
}
|
|
31
33
|
export interface WorkspacePlacementCatalog {
|
|
34
|
+
resolveScopeRect?: WorkspaceScopeRectResolver;
|
|
32
35
|
targets: WorkspaceTarget[];
|
|
33
36
|
regions: WorkspacePlacedRegion[];
|
|
34
37
|
orderingRegions?: WorkspacePlacedRegion[];
|
|
35
|
-
|
|
38
|
+
sourceReservation?: Rect;
|
|
36
39
|
headers?: Rect[];
|
|
37
40
|
preview?: WorkspaceDragPreview;
|
|
38
41
|
bounds: Rect;
|
|
@@ -40,15 +43,68 @@ export interface WorkspacePlacementCatalog {
|
|
|
40
43
|
reservationHit?: WorkspaceReservationHit;
|
|
41
44
|
}
|
|
42
45
|
type WorkspaceReservationHit = 'group' | 'tab';
|
|
46
|
+
interface GeometryInputSnapshot {
|
|
47
|
+
layout: WorkspaceLayout;
|
|
48
|
+
closed: string[];
|
|
49
|
+
source: string[];
|
|
50
|
+
available: string[];
|
|
51
|
+
panels: WorkspacePanel[];
|
|
52
|
+
measurementIdentity: WorkspaceMeasurements;
|
|
53
|
+
measurements: WorkspaceMeasurements;
|
|
54
|
+
requirements: WorkspaceRequirements;
|
|
55
|
+
policy: WorkspaceEvaluationInputs['policy'];
|
|
56
|
+
}
|
|
57
|
+
interface CachedWorkspaceGeometry {
|
|
58
|
+
inputs: GeometryInputSnapshot;
|
|
59
|
+
projected?: WorkspaceLayout;
|
|
60
|
+
base?: WorkspaceGeometry;
|
|
61
|
+
detached?: WorkspaceGeometry;
|
|
62
|
+
}
|
|
63
|
+
type StructuralPlacementCatalog = Omit<WorkspacePlacementCatalog, 'preview' | 'headerTarget' | 'reservationHit'> & {
|
|
64
|
+
gap: number;
|
|
65
|
+
};
|
|
66
|
+
interface PresentedGroupSnapshot {
|
|
67
|
+
rect: Rect;
|
|
68
|
+
panels: string[];
|
|
69
|
+
}
|
|
70
|
+
interface CatalogInputSnapshot {
|
|
71
|
+
layout: WorkspaceLayout;
|
|
72
|
+
closed: string[];
|
|
73
|
+
source: string[];
|
|
74
|
+
available: string[];
|
|
75
|
+
measurementIdentity: WorkspaceMeasurements;
|
|
76
|
+
measurements: WorkspaceMeasurements;
|
|
77
|
+
requirements: WorkspaceRequirements;
|
|
78
|
+
bounds: Rect;
|
|
79
|
+
origin: Rect;
|
|
80
|
+
catalog: WorkspacePlacedRegion[];
|
|
81
|
+
allocation: WorkspacePlacedRegion[];
|
|
82
|
+
reservation?: WorkspacePlacedRegion[];
|
|
83
|
+
groups?: PresentedGroupSnapshot[];
|
|
84
|
+
}
|
|
85
|
+
interface CachedPlacementCatalog {
|
|
86
|
+
inputs: CatalogInputSnapshot;
|
|
87
|
+
catalog: StructuralPlacementCatalog;
|
|
88
|
+
}
|
|
89
|
+
/** Owns retained geometry and catalog data and the current synchronous evaluation for one Workspace. */
|
|
90
|
+
export declare class WorkspaceEvaluationCache {
|
|
91
|
+
#private;
|
|
92
|
+
geometry?: CachedWorkspaceGeometry;
|
|
93
|
+
catalog?: CachedPlacementCatalog;
|
|
94
|
+
constructor(host: HTMLElement);
|
|
95
|
+
get current(): WorkspaceEvaluation | undefined;
|
|
96
|
+
run<T>(inputs: WorkspaceEvaluationInputs, delegate: WorkspaceEvaluationDelegate | undefined, work: (evaluation: WorkspaceEvaluation) => T): T;
|
|
97
|
+
clear(): void;
|
|
98
|
+
}
|
|
43
99
|
/** Shares layout inputs and browser reads within one synchronous evaluation. */
|
|
44
100
|
export declare class WorkspaceEvaluation {
|
|
45
101
|
#private;
|
|
46
102
|
readonly panels: WorkspacePanel[];
|
|
47
103
|
readonly available: string[];
|
|
48
|
-
readonly requirements:
|
|
104
|
+
readonly requirements: WorkspaceRequirements;
|
|
49
105
|
readonly projectLayout: import("./model/projection.utils.js").WorkspaceLayoutProjector;
|
|
50
|
-
readonly
|
|
51
|
-
constructor(host: HTMLElement, inputs: WorkspaceEvaluationInputs, delegate?: WorkspaceEvaluationDelegate);
|
|
106
|
+
readonly resolveScopeRect: WorkspaceScopeRectResolver;
|
|
107
|
+
constructor(host: HTMLElement, inputs: WorkspaceEvaluationInputs, delegate?: WorkspaceEvaluationDelegate, cacheOwner?: WorkspaceEvaluationCache);
|
|
52
108
|
minimum(node: WorkspaceNode | null): Dimensions;
|
|
53
109
|
project(layout: WorkspaceLayout): WorkspaceLayout;
|
|
54
110
|
geometry(layout: WorkspaceLayout, extent?: WorkspaceLayout): WorkspaceGeometry;
|
|
@@ -56,9 +112,10 @@ export declare class WorkspaceEvaluation {
|
|
|
56
112
|
nonOrderGeometry(source: string[]): WorkspaceGeometry;
|
|
57
113
|
targetCatalog(source: string[], allocation?: WorkspaceGeometry): {
|
|
58
114
|
gap: number;
|
|
115
|
+
resolveScopeRect: WorkspaceScopeRectResolver;
|
|
59
116
|
regions: WorkspacePlacedRegion[];
|
|
60
117
|
orderingRegions: WorkspacePlacedRegion[];
|
|
61
|
-
|
|
118
|
+
sourceReservation: Rect | undefined;
|
|
62
119
|
preview: WorkspaceDragPreview | undefined;
|
|
63
120
|
headers: Rect[];
|
|
64
121
|
targets: {
|
|
@@ -68,7 +125,9 @@ export declare class WorkspaceEvaluation {
|
|
|
68
125
|
tabs: never[];
|
|
69
126
|
}[];
|
|
70
127
|
bounds: Rect;
|
|
71
|
-
}
|
|
128
|
+
} | (WorkspacePlacementCatalog & {
|
|
129
|
+
gap: number;
|
|
130
|
+
});
|
|
72
131
|
getPlacementCatalog(source: string[], point: Point): WorkspacePlacementCatalog;
|
|
73
132
|
bounds(): Rect;
|
|
74
133
|
client(rect: Rect): {
|