@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
package/dist/pulse/pulse2.js
CHANGED
package/dist/radio/radio2.js
CHANGED
package/dist/range/range2.js
CHANGED
|
@@ -5,10 +5,10 @@ import r from "./resize-handle.js";
|
|
|
5
5
|
import { LitElement as i, html as a } from "lit";
|
|
6
6
|
import { property as o } from "lit/decorators/property.js";
|
|
7
7
|
import { I18nController as s } from "@nvidia-elements/foundations/internal/i18n";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { ifDefined as c } from "lit/directives/if-defined.js";
|
|
9
|
+
import { FormControlMixin as l } from "@nvidia-elements/forms/mixins";
|
|
10
10
|
// src/resize-handle/resize-handle.ts
|
|
11
|
-
var u = { resize: "resize" }, d = class extends
|
|
11
|
+
var u = { resize: "resize" }, d = class extends l(i) {
|
|
12
12
|
static {
|
|
13
13
|
this.styles = t([r]);
|
|
14
14
|
}
|
|
@@ -18,7 +18,7 @@ var u = { resize: "resize" }, d = class extends c(i) {
|
|
|
18
18
|
static {
|
|
19
19
|
this.metadata = {
|
|
20
20
|
tag: "nve-resize-handle",
|
|
21
|
-
version: "2.
|
|
21
|
+
version: "2.23.0",
|
|
22
22
|
valueSchema: { type: "number" }
|
|
23
23
|
};
|
|
24
24
|
}
|
|
@@ -27,7 +27,7 @@ var u = { resize: "resize" }, d = class extends c(i) {
|
|
|
27
27
|
#r;
|
|
28
28
|
#i;
|
|
29
29
|
render() {
|
|
30
|
-
return a`<div internal-host><div class="line" part="_line"></div><input aria-label="${
|
|
30
|
+
return a`<div internal-host><div class="line" part="_line"></div><input aria-label="${c(this.ariaLabel ?? this.i18n.resize)}" type="range" min="${this.min}" max="${this.max}" .valueAsNumber="${this.valueAsNumber}" @input="${(e) => this.#f(e.target.valueAsNumber)}" @change="${(e) => this.#p(e.target.valueAsNumber)}" step="${this.step}"></div>`;
|
|
31
31
|
}
|
|
32
32
|
constructor() {
|
|
33
33
|
super(), this.orientation = "horizontal", this.min = 0, this.max = 100, this.step = 10, this.#t = new s(this, u), this.i18n = this.#t.i18n, this.#i = 0, this.#o = (e) => {
|
package/dist/search/search2.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { scopedRegistry as e } from "../internal/decorators/scoped-registry.js";
|
|
2
2
|
import { useStyles as t } from "../internal/styles/index.js";
|
|
3
3
|
import n from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { IconButton as r } from "../icon-button/icon-button2.js";
|
|
5
|
+
import { Control as i } from "../forms/control/control2.js";
|
|
6
6
|
import { inputStyles as a } from "../input/input2.js";
|
|
7
7
|
import o from "./search.js";
|
|
8
8
|
import { html as s } from "lit";
|
|
9
9
|
import { property as c } from "lit/decorators/property.js";
|
|
10
10
|
// src/search/search.ts
|
|
11
|
-
var l = class extends
|
|
11
|
+
var l = class extends i {
|
|
12
12
|
constructor(...e) {
|
|
13
13
|
super(...e), this.rounded = !1;
|
|
14
14
|
}
|
|
15
15
|
static {
|
|
16
16
|
this.styles = t([
|
|
17
|
-
...
|
|
17
|
+
...i.styles,
|
|
18
18
|
a,
|
|
19
19
|
o
|
|
20
20
|
]);
|
|
@@ -22,11 +22,11 @@ var l = class extends r {
|
|
|
22
22
|
static {
|
|
23
23
|
this.metadata = {
|
|
24
24
|
tag: "nve-search",
|
|
25
|
-
version: "2.
|
|
25
|
+
version: "2.23.0"
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
static {
|
|
29
|
-
this.elementDefinitions = { [
|
|
29
|
+
this.elementDefinitions = { [r.metadata.tag]: r };
|
|
30
30
|
}
|
|
31
31
|
get prefixContent() {
|
|
32
32
|
return s`<nve-icon-button part="icon-button" icon-name="search" container="inline" aria-hidden="true" readonly="readonly"></nve-icon-button>`;
|
package/dist/select/select2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select2.js","names":["styles","globalStyles","_decorate","__decorate","select_default","select_global_default","i18nDefaults","Select","Control","_args","#i18nController","I18nController","#observers","#optionObservers","useStyles","Icon","Dropdown","Menu","MenuItem","Tag","#select","#options","#dropdown","#menuItems","#input","#tags","#caret","#placeholderOption","o","#multipleSelectLabel","option","label","#selectValue","nothing","#menu","ifDefined","i","#closeDropdown","#openDropdown","props","#setupCustomSelectUI","getElementUpdate","onChildListMutation","#syncOptionSelectedStates","#disconnectObservers","#setupOverflowListener","#syncSelectValueStates","observer","#overflowObserver","#observedTags","options","appendRootNodeStyle","#setupObservers","#observeTags","onListboxActivate","focusElementTimeout","input","inputWidth","inputEntry","entries","entry","#updateMultipleOverflow","tags","selected","width","property","i18n","scopedRegistry"],"sources":["../../src/select/select.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n focusElementTimeout,\n onListboxActivate,\n useStyles,\n onChildListMutation,\n getElementUpdate,\n scopedRegistry,\n appendRootNodeStyle\n} from '@nvidia-elements/core/internal';\nimport { i18n, I18nController, type I18nDefaults } from '@nvidia-elements/foundations/internal/i18n';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport styles from './select.css?inline';\nimport globalStyles from './select.global.css?inline';\n\nconst i18nDefaults = {\n select: 'select',\n selected: 'selected'\n} satisfies I18nDefaults;\n\n/**\n * @element nve-select\n * @description A select is a control that enables users to select an option from a list of options.\n * @documentation https://nvidia.github.io/elements/docs/elements/select/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/select\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --text-align\n * @cssprop --scroll-height\n * @cssprop --width\n * @cssprop --control-width\n * @cssprop --max-width\n * @cssprop --min-width\n * @cssprop --box-shadow\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag\n * @csspart menu - The dropdown menu element\n * @csspart menu-item - The menu item elements\n * @csspart icon - The icon element\n * @csspart caret - The caret/chevron icon element\n * @csspart dropdown - The dropdown popup element\n * @slot - Select input element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n */\n@i18n<Select>()\n@scopedRegistry()\nexport class Select extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-select',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /** Flat container option applies when embedding the component within another containing element */\n @property({ type: String, reflect: true }) container?: 'flat' | 'inline';\n\n #i18nController: I18nController<this> = new I18nController<this>(this, i18nDefaults);\n\n /** Updates internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #select() {\n return this.input as unknown as HTMLSelectElement;\n }\n\n get #options() {\n return Array.from(this.#select?.options ? this.#select.options : []);\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #menuItems() {\n return this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector<HTMLElement>('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #caret() {\n return this.shadowRoot!.querySelector<Icon>('[name=\"caret\"]');\n }\n\n get #placeholderOption() {\n return this.#options.find(o => o.selected && o.hidden && o.disabled);\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n #overflowObserver?: ResizeObserver;\n #observedTags?: Element | null;\n\n get #multipleSelectLabel() {\n const option = this.#placeholderOption;\n const label = option ? option.innerText : `${this.#select.selectedOptions.length} ${this.i18n.selected}`;\n return html`<div class=\"tags-label ${option ? 'placeholder' : ''}\" aria-hidden=\"true\">${label}</div>`;\n }\n\n protected get prefixContent() {\n return this.#select?.multiple && this.#select?.size === 0\n ? html`\n ${this.#multipleSelectLabel}\n <div class=\"tags\">\n ${this.#options\n .filter(o => o.selected && o !== this.#placeholderOption)\n .map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o, false)}>${o.textContent}</nve-tag>`\n )}\n </div>`\n : nothing;\n }\n\n get #menu() {\n return html`\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${this.#options\n .filter(o => o !== this.#placeholderOption)\n .map(\n (o, i) => html`\n <nve-menu-item part=\"menu-item\" role=\"option\" @click=${() => this.#selectValue(o, !o.selected)} ?selected=${o.selected} ?disabled=${o.disabled} ?hidden=${!!o.hidden} aria-selected=${o.selected}>\n <slot name=\"option-${i + 1}\">\n <nve-icon part=\"icon\" name=\"check\" size=\"sm\" aria-hidden=\"true\"></nve-icon> ${o.innerText}\n </slot>\n </nve-menu-item>`\n )}\n </nve-menu>`;\n }\n\n protected get suffixContent() {\n return this.#select?.size === 0\n ? html`\n <nve-icon name=\"caret\" part=\"caret\" direction=\"down\" size=\"sm\" aria-hidden=\"true\"></nve-icon>\n <nve-dropdown part=\"dropdown\" @close=${this.#closeDropdown} @open=${this.#openDropdown} hidden .anchor=${this.#input as HTMLElement} position=\"bottom\">\n ${this.#menu}\n </nve-dropdown>`\n : this.#menu;\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#setupCustomSelectUI();\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select, 'value', () => this.requestUpdate()),\n onChildListMutation(this.#select, () => this.requestUpdate(), { attributes: true, subtree: true }),\n onChildListMutation(this.#select, () => this.#syncOptionSelectedStates(), { subtree: true })\n );\n }\n\n #optionObservers = new Map<HTMLOptionElement, MutationObserver>();\n\n #setupObservers() {\n this.#disconnectObservers();\n this.#setupOverflowListener();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n\n #disconnectObservers() {\n this.#observers.forEach(observer => observer.disconnect());\n this.#observers = [];\n this.#optionObservers.clear();\n this.#overflowObserver = undefined;\n this.#observedTags = undefined;\n }\n\n #syncOptionSelectedStates() {\n const options = new Set(this.#options);\n\n this.#optionObservers.forEach((observer, option) => {\n if (!options.has(option)) {\n observer.disconnect();\n this.#optionObservers.delete(option);\n this.#observers = this.#observers.filter(o => o !== observer);\n }\n });\n\n this.#options.forEach(o => {\n if (!this.#optionObservers.has(o)) {\n const observer = getElementUpdate(o, 'selected', () => this.requestUpdate());\n this.#optionObservers.set(o, observer);\n this.#observers.push(observer);\n }\n });\n }\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n void this.updateComplete.then(() => {\n if (this.isConnected) {\n this.#setupObservers();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#disconnectObservers();\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (this.#select?.size && this.#select?.size !== 0) {\n this._internals.states.add('size');\n this.style.setProperty('--size', `${this.#select.size}`);\n } else {\n this._internals.states.delete('size');\n this.style.removeProperty('--size');\n }\n\n if (this.#select?.multiple && this.#select?.size === 0) {\n this._internals.states.add('multiple');\n } else {\n this._internals.states.delete('multiple');\n }\n this.#observeTags();\n }\n\n #setupCustomSelectUI() {\n if (this.#select?.size === 0) {\n onListboxActivate(this.#select, () => {\n this.requestUpdate(); // update menu items\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n this.#dropdown!.showPopover();\n focusElementTimeout(this.#menuItems[0] as HTMLElement);\n });\n }\n }\n\n #openDropdown() {\n this.#dropdown!.hidden = false;\n this.#caret!.direction = 'up';\n }\n\n #closeDropdown() {\n this.#dropdown!.hidden = true;\n this.#caret!.direction = 'down';\n }\n\n #setupOverflowListener() {\n const input = this.#input;\n if (!input) return;\n let inputWidth: number | undefined;\n const observer = new ResizeObserver(entries => {\n const inputEntry = entries.find(entry => entry.target === input);\n if (inputEntry) inputWidth = inputEntry.contentRect.width;\n if (this.isConnected && inputWidth !== undefined) this.#updateMultipleOverflow(inputWidth);\n });\n this.#overflowObserver = observer;\n this.#observers.push(observer);\n observer.observe(input);\n this.#observeTags();\n }\n\n #observeTags() {\n const observer = this.#overflowObserver;\n if (!observer) return;\n const tags = this.#tags;\n if (tags === this.#observedTags) return;\n if (this.#observedTags) observer.unobserve(this.#observedTags);\n this.#observedTags = tags;\n if (tags) observer.observe(tags);\n else this._internals.states.delete('multiple-overflow');\n }\n\n async #selectValue(option: HTMLOptionElement, selected: boolean) {\n if (this.#select.multiple || (!this.#select.multiple && option.value !== this.#select.value)) {\n option.selected = selected;\n }\n\n // native select only the first selected option determines the select input value\n if (this.#select.selectedOptions.length < 1) {\n this.#select.value = selected ? option.value : '';\n }\n\n this.#select.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select.dispatchEvent(new Event('change', { bubbles: true }));\n this.requestUpdate();\n\n if (!this.#select.multiple && this.#dropdown) {\n this.#dropdown.hidePopover();\n } else {\n await this.updateComplete;\n this.#updateMultipleOverflow(this.#input!.getBoundingClientRect().width);\n }\n }\n\n #updateMultipleOverflow(width: number) {\n const tags = this.#tags;\n if (this.#select?.multiple && tags && tags.getBoundingClientRect().width > width - 48) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select2.js","names":["styles","globalStyles","_decorate","__decorate","select_default","select_global_default","i18nDefaults","Select","Control","_args","#i18nController","I18nController","#observers","#optionObservers","useStyles","Icon","Dropdown","Menu","MenuItem","Tag","#select","#options","#dropdown","#menuItems","#input","#tags","#caret","#placeholderOption","o","#multipleSelectLabel","option","label","#selectValue","nothing","#menu","ifDefined","i","#closeDropdown","#openDropdown","props","#setupCustomSelectUI","getElementUpdate","onChildListMutation","#syncOptionSelectedStates","#disconnectObservers","#setupOverflowListener","#syncSelectValueStates","observer","#overflowObserver","#observedTags","options","appendRootNodeStyle","#setupObservers","#observeTags","onListboxActivate","focusElementTimeout","input","inputWidth","inputEntry","entries","entry","#updateMultipleOverflow","tags","selected","width","property","i18n","scopedRegistry"],"sources":["../../src/select/select.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n focusElementTimeout,\n onListboxActivate,\n useStyles,\n onChildListMutation,\n getElementUpdate,\n scopedRegistry,\n appendRootNodeStyle\n} from '@nvidia-elements/core/internal';\nimport { i18n, I18nController, type I18nDefaults } from '@nvidia-elements/foundations/internal/i18n';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport styles from './select.css?inline';\nimport globalStyles from './select.global.css?inline';\n\nconst i18nDefaults = {\n select: 'select',\n selected: 'selected'\n} satisfies I18nDefaults;\n\n/**\n * @element nve-select\n * @description A select is a control that enables users to select an option from a list of options.\n * @documentation https://nvidia.github.io/elements/docs/elements/select/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/select\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --text-align\n * @cssprop --scroll-height\n * @cssprop --width\n * @cssprop --control-width\n * @cssprop --max-width\n * @cssprop --min-width\n * @cssprop --box-shadow\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag\n * @csspart menu - The dropdown menu element\n * @csspart menu-item - The menu item elements\n * @csspart icon - The icon element\n * @csspart caret - The caret/chevron icon element\n * @csspart dropdown - The dropdown popup element\n * @slot - Select input element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n */\n@i18n<Select>()\n@scopedRegistry()\nexport class Select extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-select',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /** Flat container option applies when embedding the component within another containing element */\n @property({ type: String, reflect: true }) container?: 'flat' | 'inline';\n\n #i18nController: I18nController<this> = new I18nController<this>(this, i18nDefaults);\n\n /** Updates internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #select() {\n return this.input as unknown as HTMLSelectElement;\n }\n\n get #options() {\n return Array.from(this.#select?.options ? this.#select.options : []);\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #menuItems() {\n return this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector<HTMLElement>('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #caret() {\n return this.shadowRoot!.querySelector<Icon>('[name=\"caret\"]');\n }\n\n get #placeholderOption() {\n return this.#options.find(o => o.selected && o.hidden && o.disabled);\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n #overflowObserver?: ResizeObserver;\n #observedTags?: Element | null;\n\n get #multipleSelectLabel() {\n const option = this.#placeholderOption;\n const label = option ? option.innerText : `${this.#select.selectedOptions.length} ${this.i18n.selected}`;\n return html`<div class=\"tags-label ${option ? 'placeholder' : ''}\" aria-hidden=\"true\">${label}</div>`;\n }\n\n protected get prefixContent() {\n return this.#select?.multiple && this.#select?.size === 0\n ? html`\n ${this.#multipleSelectLabel}\n <div class=\"tags\">\n ${this.#options\n .filter(o => o.selected && o !== this.#placeholderOption)\n .map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o, false)}>${o.textContent}</nve-tag>`\n )}\n </div>`\n : nothing;\n }\n\n get #menu() {\n return html`\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${this.#options\n .filter(o => o !== this.#placeholderOption)\n .map(\n (o, i) => html`\n <nve-menu-item part=\"menu-item\" role=\"option\" @click=${() => this.#selectValue(o, !o.selected)} ?selected=${o.selected} ?disabled=${o.disabled} ?hidden=${!!o.hidden} aria-selected=${o.selected}>\n <slot name=\"option-${i + 1}\">\n <nve-icon part=\"icon\" name=\"check\" size=\"sm\" aria-hidden=\"true\"></nve-icon> ${o.innerText}\n </slot>\n </nve-menu-item>`\n )}\n </nve-menu>`;\n }\n\n protected get suffixContent() {\n return this.#select?.size === 0\n ? html`\n <nve-icon name=\"caret\" part=\"caret\" direction=\"down\" size=\"sm\" aria-hidden=\"true\"></nve-icon>\n <nve-dropdown part=\"dropdown\" @close=${this.#closeDropdown} @open=${this.#openDropdown} hidden .anchor=${this.#input} position=\"bottom\">\n ${this.#menu}\n </nve-dropdown>`\n : this.#menu;\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#setupCustomSelectUI();\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select, 'value', () => this.requestUpdate()),\n onChildListMutation(this.#select, () => this.requestUpdate(), { attributes: true, subtree: true }),\n onChildListMutation(this.#select, () => this.#syncOptionSelectedStates(), { subtree: true })\n );\n }\n\n #optionObservers = new Map<HTMLOptionElement, MutationObserver>();\n\n #setupObservers() {\n this.#disconnectObservers();\n this.#setupOverflowListener();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n\n #disconnectObservers() {\n this.#observers.forEach(observer => observer.disconnect());\n this.#observers = [];\n this.#optionObservers.clear();\n this.#overflowObserver = undefined;\n this.#observedTags = undefined;\n }\n\n #syncOptionSelectedStates() {\n const options = new Set(this.#options);\n\n this.#optionObservers.forEach((observer, option) => {\n if (!options.has(option)) {\n observer.disconnect();\n this.#optionObservers.delete(option);\n this.#observers = this.#observers.filter(o => o !== observer);\n }\n });\n\n this.#options.forEach(o => {\n if (!this.#optionObservers.has(o)) {\n const observer = getElementUpdate(o, 'selected', () => this.requestUpdate());\n this.#optionObservers.set(o, observer);\n this.#observers.push(observer);\n }\n });\n }\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n void this.updateComplete.then(() => {\n if (this.isConnected) {\n this.#setupObservers();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#disconnectObservers();\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (this.#select?.size && this.#select?.size !== 0) {\n this._internals.states.add('size');\n this.style.setProperty('--size', `${this.#select.size}`);\n } else {\n this._internals.states.delete('size');\n this.style.removeProperty('--size');\n }\n\n if (this.#select?.multiple && this.#select?.size === 0) {\n this._internals.states.add('multiple');\n } else {\n this._internals.states.delete('multiple');\n }\n this.#observeTags();\n }\n\n #setupCustomSelectUI() {\n if (this.#select?.size === 0) {\n onListboxActivate(this.#select, () => {\n this.requestUpdate(); // update menu items\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n this.#dropdown!.showPopover();\n focusElementTimeout(this.#menuItems[0] as HTMLElement);\n });\n }\n }\n\n #openDropdown() {\n this.#dropdown!.hidden = false;\n this.#caret!.direction = 'up';\n }\n\n #closeDropdown() {\n this.#dropdown!.hidden = true;\n this.#caret!.direction = 'down';\n }\n\n #setupOverflowListener() {\n const input = this.#input;\n if (!input) return;\n let inputWidth: number | undefined;\n const observer = new ResizeObserver(entries => {\n const inputEntry = entries.find(entry => entry.target === input);\n if (inputEntry) inputWidth = inputEntry.contentRect.width;\n if (this.isConnected && inputWidth !== undefined) this.#updateMultipleOverflow(inputWidth);\n });\n this.#overflowObserver = observer;\n this.#observers.push(observer);\n observer.observe(input);\n this.#observeTags();\n }\n\n #observeTags() {\n const observer = this.#overflowObserver;\n if (!observer) return;\n const tags = this.#tags;\n if (tags === this.#observedTags) return;\n if (this.#observedTags) observer.unobserve(this.#observedTags);\n this.#observedTags = tags;\n if (tags) observer.observe(tags);\n else this._internals.states.delete('multiple-overflow');\n }\n\n async #selectValue(option: HTMLOptionElement, selected: boolean) {\n if (this.#select.multiple || (!this.#select.multiple && option.value !== this.#select.value)) {\n option.selected = selected;\n }\n\n // native select only the first selected option determines the select input value\n if (this.#select.selectedOptions.length < 1) {\n this.#select.value = selected ? option.value : '';\n }\n\n this.#select.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select.dispatchEvent(new Event('change', { bubbles: true }));\n this.requestUpdate();\n\n if (!this.#select.multiple && this.#dropdown) {\n this.#dropdown.hidePopover();\n } else {\n await this.updateComplete;\n this.#updateMultipleOverflow(this.#input!.getBoundingClientRect().width);\n }\n }\n\n #updateMultipleOverflow(width: number) {\n const tags = this.#tags;\n if (this.#select?.multiple && tags && tags.getBoundingClientRect().width > width - 48) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/steps/steps2.js
CHANGED
|
@@ -11,19 +11,19 @@ import l from "./steps.js";
|
|
|
11
11
|
import { ProgressRing as u } from "../progress-ring/progress-ring2.js";
|
|
12
12
|
import { LitElement as d, html as f } from "lit";
|
|
13
13
|
import { property as p } from "lit/decorators/property.js";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
14
|
+
import { ButtonFormControlMixin as m } from "@nvidia-elements/forms/mixins";
|
|
15
|
+
import { state as h } from "lit/decorators/state.js";
|
|
16
16
|
import { queryAssignedElements as g } from "lit/decorators/query-assigned-elements.js";
|
|
17
17
|
import { when as _ } from "lit/directives/when.js";
|
|
18
18
|
// src/steps/steps.ts
|
|
19
|
-
var v = class extends
|
|
19
|
+
var v = class extends m(d) {
|
|
20
20
|
static {
|
|
21
21
|
this.styles = a([c]);
|
|
22
22
|
}
|
|
23
23
|
static {
|
|
24
24
|
this.metadata = {
|
|
25
25
|
tag: "nve-steps-item",
|
|
26
|
-
version: "2.
|
|
26
|
+
version: "2.23.0",
|
|
27
27
|
parents: ["nve-steps"]
|
|
28
28
|
};
|
|
29
29
|
}
|
|
@@ -52,7 +52,7 @@ o([p({
|
|
|
52
52
|
})], v.prototype, "status", void 0), o([p({
|
|
53
53
|
type: String,
|
|
54
54
|
reflect: !0
|
|
55
|
-
})], v.prototype, "container", void 0), o([
|
|
55
|
+
})], v.prototype, "container", void 0), o([h()], v.prototype, "index", void 0), v = o([
|
|
56
56
|
e(),
|
|
57
57
|
i(),
|
|
58
58
|
r()
|
|
@@ -69,7 +69,7 @@ var y = class extends d {
|
|
|
69
69
|
static {
|
|
70
70
|
this.metadata = {
|
|
71
71
|
tag: "nve-steps",
|
|
72
|
-
version: "2.
|
|
72
|
+
version: "2.23.0",
|
|
73
73
|
children: ["nve-steps-item"]
|
|
74
74
|
};
|
|
75
75
|
}
|
package/dist/switch/switch2.js
CHANGED
package/dist/tabs/tabs-group2.js
CHANGED
package/dist/tabs/tabs2.js
CHANGED
|
@@ -21,7 +21,7 @@ var y = class extends _(m) {
|
|
|
21
21
|
static {
|
|
22
22
|
this.metadata = {
|
|
23
23
|
tag: "nve-tabs-item",
|
|
24
|
-
version: "2.
|
|
24
|
+
version: "2.23.0",
|
|
25
25
|
parents: ["nve-tabs", "nve-tabs-item-group"]
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -65,7 +65,7 @@ var b = class extends m {
|
|
|
65
65
|
static {
|
|
66
66
|
this.metadata = {
|
|
67
67
|
tag: "nve-tabs",
|
|
68
|
-
version: "2.
|
|
68
|
+
version: "2.23.0",
|
|
69
69
|
children: ["nve-tabs-item", "nve-tabs-item-group"]
|
|
70
70
|
};
|
|
71
71
|
}
|
package/dist/tag/tag2.js
CHANGED
|
@@ -7,17 +7,17 @@ import o from "./tag.js";
|
|
|
7
7
|
import { LitElement as s, html as c } from "lit";
|
|
8
8
|
import { property as l } from "lit/decorators/property.js";
|
|
9
9
|
import { I18nController as u } from "@nvidia-elements/foundations/internal/i18n";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { ifDefined as d } from "lit/directives/if-defined.js";
|
|
11
|
+
import { ButtonFormControlMixin as f } from "@nvidia-elements/forms/mixins";
|
|
12
12
|
// src/tag/tag.ts
|
|
13
|
-
var p = { close: "close" }, m = class extends
|
|
13
|
+
var p = { close: "close" }, m = class extends f(s) {
|
|
14
14
|
static {
|
|
15
15
|
this.styles = r([n, o]);
|
|
16
16
|
}
|
|
17
17
|
static {
|
|
18
18
|
this.metadata = {
|
|
19
19
|
tag: "nve-tag",
|
|
20
|
-
version: "2.
|
|
20
|
+
version: "2.23.0"
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
static {
|
|
@@ -26,7 +26,7 @@ var p = { close: "close" }, m = class extends d(s) {
|
|
|
26
26
|
#e;
|
|
27
27
|
#t;
|
|
28
28
|
render() {
|
|
29
|
-
return c`<div internal-host interaction-state focus-within><slot name="prefix"></slot><slot></slot><slot name="suffix"></slot>${this.closable ? c`<nve-icon part="icon" @click="${() => this.#t.close()}" container="flat" name="cancel" size="sm" role="img" aria-label="${
|
|
29
|
+
return c`<div internal-host interaction-state focus-within><slot name="prefix"></slot><slot></slot><slot name="suffix"></slot>${this.closable ? c`<nve-icon part="icon" @click="${() => this.#t.close()}" container="flat" name="cancel" size="sm" role="img" aria-label="${d(this.i18n.close)}"></nve-icon>` : ""}</div>`;
|
|
30
30
|
}
|
|
31
31
|
constructor() {
|
|
32
32
|
super(), this.closable = !1, this.#e = new u(this, p), this.i18n = this.#e.i18n, this.#t = new e(this), this.type = "button";
|
package/dist/time/time2.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { scopedRegistry as e } from "../internal/decorators/scoped-registry.js";
|
|
2
2
|
import { useStyles as t } from "../internal/styles/index.js";
|
|
3
3
|
import n from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { IconButton as r } from "../icon-button/icon-button2.js";
|
|
5
|
+
import { Control as i } from "../forms/control/control2.js";
|
|
6
6
|
import { inputStyles as a } from "../input/input2.js";
|
|
7
7
|
import o from "./time.js";
|
|
8
8
|
import { html as s } from "lit";
|
|
9
9
|
import { property as c } from "lit/decorators/property.js";
|
|
10
10
|
// src/time/time.ts
|
|
11
|
-
var l = { expand: "expand" }, u = class extends
|
|
11
|
+
var l = { expand: "expand" }, u = class extends i {
|
|
12
12
|
get i18nDefaults() {
|
|
13
13
|
return l;
|
|
14
14
|
}
|
|
15
15
|
static {
|
|
16
16
|
this.styles = t([
|
|
17
|
-
...
|
|
17
|
+
...i.styles,
|
|
18
18
|
a,
|
|
19
19
|
o
|
|
20
20
|
]);
|
|
@@ -22,11 +22,11 @@ var l = { expand: "expand" }, u = class extends r {
|
|
|
22
22
|
static {
|
|
23
23
|
this.metadata = {
|
|
24
24
|
tag: "nve-time",
|
|
25
|
-
version: "2.
|
|
25
|
+
version: "2.23.0"
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
static {
|
|
29
|
-
this.elementDefinitions = { [
|
|
29
|
+
this.elementDefinitions = { [r.metadata.tag]: r };
|
|
30
30
|
}
|
|
31
31
|
get suffixContent() {
|
|
32
32
|
return s`<nve-icon-button part="icon-button" .ariaLabel="${this.i18n.expand}" icon-name="clock" container="inline" @click="${this.showPicker}"></nve-icon-button>`;
|
package/dist/toast/toast2.js
CHANGED
package/dist/toast/toast2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast2.js","names":["styles","_decorate","__decorate","toast_default","i18nDefaults","Toast","LitElement","_args","#i18nController","I18nController","TypeNativePopoverController","useStyles","popoverStyles","IconButton","Icon","statusIcons","nothing","attachInternals","property","scopedRegistry","audit"],"sources":["../../src/toast/toast.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport type { PopoverAlign, PopoverPosition, PopoverType, SupportStatus } from '@nvidia-elements/core/internal';\nimport {\n attachInternals,\n audit,\n excessiveInstanceLimit,\n popoverStyles,\n scopedRegistry,\n statusIcons,\n TypeNativePopoverController,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { I18nController, type I18nDefaults } from '@nvidia-elements/foundations/internal/i18n';\nimport { Icon
|
|
1
|
+
{"version":3,"file":"toast2.js","names":["styles","_decorate","__decorate","toast_default","i18nDefaults","Toast","LitElement","_args","#i18nController","I18nController","TypeNativePopoverController","useStyles","popoverStyles","IconButton","Icon","statusIcons","nothing","attachInternals","property","scopedRegistry","audit"],"sources":["../../src/toast/toast.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport type { PopoverAlign, PopoverPosition, PopoverType, SupportStatus } from '@nvidia-elements/core/internal';\nimport {\n attachInternals,\n audit,\n excessiveInstanceLimit,\n popoverStyles,\n scopedRegistry,\n statusIcons,\n TypeNativePopoverController,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { I18nController, type I18nDefaults } from '@nvidia-elements/foundations/internal/i18n';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './toast.css?inline';\n\nconst i18nDefaults = {\n close: 'close',\n danger: 'danger',\n information: 'information',\n success: 'success',\n warning: 'warning'\n} satisfies I18nDefaults;\n\n/**\n * @element nve-toast\n * @description A contextual popup that displays a status. Toasts are [triggered](https://w3c.github.io/aria/#tooltip) by clicking, focusing, or tapping an element and cannot have interactive elements within them.\n * @documentation https://nvidia.github.io/elements/docs/elements/toast/\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/toast\n * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)\n * @event toggle - Dispatched on a popover element just after showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event)\n * @event open - Dispatched when the toast opens.\n * @event close - Dispatched when the toast closes.\n * @slot - The message communicated by the toast.\n * @slot prefix - custom status icon slot\n * @cssprop --padding\n * @cssprop --justify-content\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --color\n * @cssprop --font-size\n * @cssprop --font-weight\n * @cssprop --box-shadow\n * @cssprop --gap\n * @csspart prefix-icon - The prefix icon slot\n * @csspart icon-button - The close icon button element\n * @cssprop --animation-duration - Duration of toast open/close animations\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/\n */\n@scopedRegistry()\n@audit({ excessiveInstanceLimit })\nexport class Toast extends LitElement {\n static styles = useStyles([popoverStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-toast',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton,\n [Icon.metadata.tag]: Icon\n };\n\n /**\n * (optional) By default the popover automatically anchors itself relative to the trigger element.\n * Pass an optional custom anchor element as an idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) anchor: string | HTMLElement;\n\n /**\n * @deprecated Use the popover API instead.\n * The trigger defines what element triggers an `open` interaction event.\n * A trigger can accept a idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) trigger: string | HTMLElement;\n\n /**\n * Sets the side position of the popover relative to the provided anchor element.\n */\n @property({ type: String, reflect: true }) position: PopoverPosition = 'top';\n\n /**\n * Sets the alignment of the popover relative to the provided anchor element.\n */\n @property({ type: String, reflect: true }) alignment: PopoverAlign;\n\n /**\n * Sets the visual prominence of the toast.\n */\n @property({ type: String, reflect: true }) prominence: 'muted';\n\n /**\n * @deprecated Use the popover API instead.\n * Determines if popover visibility behavior should be automatically controlled by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-trigger' }) behaviorTrigger: boolean;\n\n /**\n * Determines if a close button should render within toast.\n */\n @property({ type: Boolean }) closable = false;\n\n /**\n * A delayed `close` event occurs after the provided millisecond value elapses.\n */\n @property({ type: Number, attribute: 'close-timeout' }) closeTimeout = 0;\n\n /**\n * Visual treatment to represent a support status.\n */\n @property({ type: String, reflect: true }) status: SupportStatus;\n\n #i18nController: I18nController<this> = new I18nController<this>(this, i18nDefaults);\n\n /**\n * Updates internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n /** @private */\n readonly popoverType: PopoverType = 'manual';\n\n protected typeNativePopoverController = new TypeNativePopoverController<Toast>(this);\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <slot name=\"prefix\"><nve-icon part=\"prefix-icon\" .name=${statusIcons[this.status]} .ariaLabel=${(this.i18n as Record<string, string>)[this.status] ?? this.i18n.information}></nve-icon></slot>\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${this.hidePopover} icon-name=\"cancel\" container=\"flat\" .ariaLabel=${this.i18n.close}></nve-icon-button>` : nothing}\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'alert';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqBA,IAAMI,IAAe;CACnB,OAAO;CACP,QAAQ;CACR,aAAa;CACb,SAAS;CACT,SAAS;AACX,GA+BaC,IAAN,cAAoBC,EAAW;;EAwEI,A,aA3C+B,KAAA,WAAA,OAqB/B,KAAA,WAAA,IAK+B,KAAA,eAAA,GAO/B,KAAAE,KAAA,IAAIC,EAAqB,MAAML,CAAY,GAKhD,KAAA,OAAA,KAAKI,GAAgB,MAGpB,KAAA,cAAA,UAEI,KAAA,8BAAA,IAAIE,EAAmC,IAAI;;;EAvEnE,KAAA,SAAAC,EAAU,CAACC,GAAeZ,CAAM,CAAC;;;EAEtB,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;;EAE4B,KAAA,qBAAA;IACzBa,EAAW,SAAS,MAAMA;IAC1BC,EAAK,SAAS,MAAMA;EACvB;;CAmDA;CAeA,SAAS;EACP,OAAO,CAAI,8EAEkDC,EAAY,KAAK,QAAQ,gBAAe,KAAK,KAAgC,KAAK,WAAW,KAAK,KAAK,YAAY,sBAC1K,KAAK,WAAW,CAAI,mFAAkF,KAAK,YAAY,oDAAkD,KAAK,KAAK,MAAM,wBAAuBC,EAAQ;CAIhO;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxBC,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF;AA3EGhB,EAAA,CAAAiB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAAb,EAAA,WAAA,UAAA,KAAA,CAAA,GAOzBJ,EAAA,CAAAiB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAAb,EAAA,WAAA,WAAA,KAAA,CAAA,GAKzBJ,EAAA,CAAAiB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAb,EAAA,WAAA,YAAA,KAAA,CAAA,GAKxCJ,EAAA,CAAAiB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAb,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCJ,EAAA,CAAAiB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAb,EAAA,WAAA,cAAA,KAAA,CAAA,GAMxCJ,EAAA,CAAAiB,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAmB,CAAC,CAAA,GAAAb,EAAA,WAAA,mBAAA,KAAA,CAAA,GAKxEJ,EAAA,CAAAiB,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAAb,EAAA,WAAA,YAAA,KAAA,CAAA,GAK1BJ,EAAA,CAAAiB,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAgB,CAAC,CAAA,GAAAb,EAAA,WAAA,gBAAA,KAAA,CAAA,GAKrDJ,EAAA,CAAAiB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAb,EAAA,WAAA,UAAA,KAAA,CAAA,GAOxCJ,EAAA,CAAAiB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAAb,EAAA,WAAA,QAAA,KAAA,CAAA,GArE3B,IAAAJ,EAAA,CAAAkB,EAAe,GACfC,EAAM,EAAE,wBAAA,GAAuB,CAAC,CAAA,GAAAf,CAAA"}
|
package/dist/toolbar/toolbar2.js
CHANGED
package/dist/tooltip/tooltip2.js
CHANGED
package/dist/tree/tree-node2.js
CHANGED
package/dist/tree/tree2.js
CHANGED
package/dist/week/week2.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { scopedRegistry as e } from "../internal/decorators/scoped-registry.js";
|
|
2
2
|
import { useStyles as t } from "../internal/styles/index.js";
|
|
3
3
|
import n from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { IconButton as r } from "../icon-button/icon-button2.js";
|
|
5
|
+
import { Control as i } from "../forms/control/control2.js";
|
|
6
6
|
import { inputStyles as a } from "../input/input2.js";
|
|
7
7
|
import o from "./week.js";
|
|
8
8
|
import { html as s } from "lit";
|
|
9
9
|
import { property as c } from "lit/decorators/property.js";
|
|
10
10
|
// src/week/week.ts
|
|
11
|
-
var l = { expand: "expand" }, u = class extends
|
|
11
|
+
var l = { expand: "expand" }, u = class extends i {
|
|
12
12
|
get i18nDefaults() {
|
|
13
13
|
return l;
|
|
14
14
|
}
|
|
15
15
|
static {
|
|
16
16
|
this.styles = t([
|
|
17
|
-
...
|
|
17
|
+
...i.styles,
|
|
18
18
|
a,
|
|
19
19
|
o
|
|
20
20
|
]);
|
|
@@ -22,11 +22,11 @@ var l = { expand: "expand" }, u = class extends r {
|
|
|
22
22
|
static {
|
|
23
23
|
this.metadata = {
|
|
24
24
|
tag: "nve-week",
|
|
25
|
-
version: "2.
|
|
25
|
+
version: "2.23.0"
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
static {
|
|
29
|
-
this.elementDefinitions = { [
|
|
29
|
+
this.elementDefinitions = { [r.metadata.tag]: r };
|
|
30
30
|
}
|
|
31
31
|
get suffixContent() {
|
|
32
32
|
return s`<nve-icon-button exportparts="icon:icon-button-icon" part="icon-button" .ariaLabel="${this.i18n.expand}" icon-name="calendar" container="inline" @click="${this.showPicker}"></nve-icon-button>`;
|