@nvidia-elements/core 2.23.4 → 2.23.5
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 +10 -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 +6 -6
- 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 +0 -76
- 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/panel/panel2.js +14 -14
- 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/workspace2.js +97 -97
- 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/grid/grid2.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { audit as e } from "../internal/controllers/audit.controller.js";
|
|
2
2
|
import { appendRootNodeStyle as t, generateId as n } from "../internal/utils/dom.js";
|
|
3
3
|
import { keyNavigationGrid as r } from "../internal/controllers/keynav-grid.controller.js";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import s from "
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import m from "
|
|
15
|
-
import h from "
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
4
|
+
import { stateScroll as i } from "../internal/controllers/state-scroll.controller.js";
|
|
5
|
+
import a from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
6
|
+
import { GridPlaceholder as o } from "./placeholder/placeholder2.js";
|
|
7
|
+
import { GridColumn as s } from "./column/column2.js";
|
|
8
|
+
import { GridCell as c } from "./cell/cell2.js";
|
|
9
|
+
import { GridRow as l } from "./row/row2.js";
|
|
10
|
+
import { GridHeader as u } from "./header/header2.js";
|
|
11
|
+
import { GridFooter as d } from "./footer/footer2.js";
|
|
12
|
+
import f from "./grid.js";
|
|
13
|
+
import p from "./grid.global.js";
|
|
14
|
+
import { attachInternals as m } from "@nvidia-elements/foundations/internal/a11y";
|
|
15
|
+
import { LitElement as h, html as g } from "lit";
|
|
16
|
+
import { property as _ } from "lit/decorators/property.js";
|
|
17
|
+
import { useStyles as v } from "@nvidia-elements/foundations/internal/styles";
|
|
18
18
|
// src/grid/grid.ts
|
|
19
|
-
var y = class extends
|
|
19
|
+
var y = class extends h {
|
|
20
20
|
static {
|
|
21
|
-
this.styles =
|
|
21
|
+
this.styles = v([f]);
|
|
22
22
|
}
|
|
23
23
|
static {
|
|
24
24
|
this.metadata = {
|
|
25
25
|
tag: "nve-grid",
|
|
26
|
-
version: "2.23.
|
|
26
|
+
version: "2.23.5",
|
|
27
27
|
children: [
|
|
28
|
+
l.metadata.tag,
|
|
29
|
+
u.metadata.tag,
|
|
28
30
|
d.metadata.tag,
|
|
29
|
-
|
|
30
|
-
p.metadata.tag,
|
|
31
|
-
c.metadata.tag
|
|
31
|
+
o.metadata.tag
|
|
32
32
|
]
|
|
33
33
|
};
|
|
34
34
|
}
|
|
@@ -46,36 +46,36 @@ var y = class extends g {
|
|
|
46
46
|
return { target: this.shadowRoot?.querySelector("[part=\"_scrollbox\"]") ?? void 0 };
|
|
47
47
|
}
|
|
48
48
|
get #e() {
|
|
49
|
-
return Array.from(this.querySelectorAll(
|
|
49
|
+
return Array.from(this.querySelectorAll(l.metadata.tag));
|
|
50
50
|
}
|
|
51
51
|
get #t() {
|
|
52
|
-
return this.querySelector(
|
|
52
|
+
return this.querySelector(u.metadata.tag);
|
|
53
53
|
}
|
|
54
54
|
get #n() {
|
|
55
|
-
return Array.from(this.querySelectorAll(
|
|
55
|
+
return Array.from(this.querySelectorAll(s.metadata.tag));
|
|
56
56
|
}
|
|
57
57
|
get #r() {
|
|
58
|
-
return Array.from(this.querySelectorAll(
|
|
58
|
+
return Array.from(this.querySelectorAll(c.metadata.tag));
|
|
59
59
|
}
|
|
60
60
|
render() {
|
|
61
|
-
return
|
|
61
|
+
return g`<div internal-host><div part="_scrollbox"><slot></slot></div><slot name="footer"></slot></div>`;
|
|
62
62
|
}
|
|
63
63
|
connectedCallback() {
|
|
64
|
-
super.connectedCallback(),
|
|
64
|
+
super.connectedCallback(), m(this), this._internals.role = "grid", this.id ||= n(), t(this, p);
|
|
65
65
|
}
|
|
66
66
|
async scrollTo(...e) {
|
|
67
67
|
await this.shadowRoot.querySelector("[part=\"_scrollbox\"]")?.scrollTo(...e);
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
|
-
|
|
70
|
+
a([_({
|
|
71
71
|
type: String,
|
|
72
72
|
reflect: !0
|
|
73
|
-
})], y.prototype, "container", void 0),
|
|
73
|
+
})], y.prototype, "container", void 0), a([_({
|
|
74
74
|
type: Boolean,
|
|
75
75
|
reflect: !0
|
|
76
|
-
})], y.prototype, "stripe", void 0), y =
|
|
76
|
+
})], y.prototype, "stripe", void 0), y = a([
|
|
77
77
|
e(),
|
|
78
|
-
|
|
78
|
+
i(),
|
|
79
79
|
r()
|
|
80
80
|
], y);
|
|
81
81
|
export { y as Grid };
|
package/dist/grid/grid2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid2.js","names":["styles","globalStyles","_decorate","__decorate","grid_default","grid_global_default","Grid","LitElement","useStyles","GridRow","GridHeader","GridFooter","GridPlaceholder","#columns","#header","#rows","#cells","GridColumn","GridCell","attachInternals","generateId","appendRootNodeStyle","args","property","audit","stateScroll","keyNavigationGrid"],"sources":["../../src/grid/grid.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 type { ContainerElement } from '@nvidia-elements/core/internal';\nimport {\n keyNavigationGrid,\n stateScroll,\n type StateScrollConfig,\n
|
|
1
|
+
{"version":3,"file":"grid2.js","names":["styles","globalStyles","_decorate","__decorate","grid_default","grid_global_default","Grid","LitElement","useStyles","GridRow","GridHeader","GridFooter","GridPlaceholder","#columns","#header","#rows","#cells","GridColumn","GridCell","attachInternals","generateId","appendRootNodeStyle","args","property","audit","stateScroll","keyNavigationGrid"],"sources":["../../src/grid/grid.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 type { ContainerElement } from '@nvidia-elements/core/internal';\nimport {\n keyNavigationGrid,\n stateScroll,\n type StateScrollConfig,\n appendRootNodeStyle,\n generateId,\n audit\n} from '@nvidia-elements/core/internal';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport { GridPlaceholder } from './placeholder/placeholder.js';\nimport { GridHeader } from './header/header.js';\nimport { GridColumn } from './column/column.js';\nimport { GridFooter } from './footer/footer.js';\nimport { GridRow } from './row/row.js';\nimport { GridCell } from './cell/cell.js';\nimport styles from './grid.css?inline';\nimport globalStyles from './grid.global.css?inline';\n\n/**\n * @element nve-grid\n * @description A versatile table/datagrid component with built-in keyboard navigation for displaying and interacting with structured data. Use it for anything from simple read-only tables to fully interactive, spreadsheet experiences.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - `nve-grid-header`, `nve-grid-row`, and `nve-grid-placeholder` elements.\n * @slot footer - slot for grid-footer or toolbar\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --box-shadow\n * @cssprop --font-size\n * @cssprop --row-height - fixed height of each row\n * @cssprop --scroll-height - height of the scrollable area\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@audit()\n@stateScroll<Grid>()\n@keyNavigationGrid<Grid>()\nexport class Grid extends LitElement implements ContainerElement {\n /**\n * Determines the container styles of component. Flat nests the grid within other containers. Full spans the full edge-to-edge viewport width.\n */\n @property({ type: String, reflect: true }) container?: 'flat' | 'full';\n\n /**\n * Determine style variant stripe rows\n */\n @property({ type: Boolean, reflect: true }) stripe: boolean;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid',\n version: '0.0.0',\n children: [GridRow.metadata.tag, GridHeader.metadata.tag, GridFooter.metadata.tag, GridPlaceholder.metadata.tag]\n };\n\n static elementDefinitions = {};\n\n /** @private */\n get keynavGridConfig() {\n return {\n columns: this.#columns,\n rows: [this.#header!, ...this.#rows],\n cells: [...this.#columns, ...this.#cells]\n };\n }\n\n /** @private */\n get stateScrollConfig(): StateScrollConfig {\n return {\n target: this.shadowRoot?.querySelector<HTMLElement>('[part=\"_scrollbox\"]') ?? undefined\n };\n }\n\n get #rows() {\n return Array.from(this.querySelectorAll<GridRow>(GridRow.metadata.tag));\n }\n\n get #header() {\n return this.querySelector<GridHeader>(GridHeader.metadata.tag);\n }\n\n get #columns() {\n return Array.from(this.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n }\n\n get #cells() {\n return Array.from(this.querySelectorAll<GridCell>(GridCell.metadata.tag));\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <div part=\"_scrollbox\">\n <slot></slot>\n </div>\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'grid';\n this.id ||= generateId();\n appendRootNodeStyle(this, globalStyles);\n }\n\n /**\n * Scroll to a specific position in the grid.\n */\n scrollTo(options?: ScrollToOptions): Promise<void>;\n scrollTo(x: number, y: number): Promise<void>;\n async scrollTo(...args: [options?: ScrollToOptions] | [x: number, y: number]): Promise<void> {\n await this.shadowRoot!.querySelector('[part=\"_scrollbox\"]')?.scrollTo(...(args as [ScrollToOptions]));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA8CO,IAAMM,IAAN,cAAmBC,EAAuC;;EAW/C,KAAA,SAAAC,EAAU,CAACR,CAAM,CAAC;;;EAEP,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAACS,EAAQ,SAAS;IAAKC,EAAW,SAAS;IAAKC,EAAW,SAAS;IAAKC,EAAgB,SAAS;GAAG;EACjH;;;EAE4B,KAAA,qBAAA,CAAC;;CAG7B,IAAI,mBAAmB;EACrB,OAAO;GACL,SAAS,KAAKC;GACd,MAAM,CAAC,KAAKC,IAAU,GAAG,KAAKC,EAAK;GACnC,OAAO,CAAC,GAAG,KAAKF,IAAU,GAAG,KAAKG,EAAM;EAC1C;CACF;CAGA,IAAI,oBAAuC;EACzC,OAAO,EACL,QAAQ,KAAK,YAAY,cAA2B,uBAAqB,KAAK,KAAA,EAChF;CACF;CAEA,IAAID,KAAQ;EACV,OAAO,MAAM,KAAK,KAAK,iBAA0BN,EAAQ,SAAS,GAAG,CAAC;CACxE;CAEA,IAAIK,KAAU;EACZ,OAAO,KAAK,cAA0BJ,EAAW,SAAS,GAAG;CAC/D;CAEA,IAAIG,KAAW;EACb,OAAO,MAAM,KAAK,KAAK,iBAA6BI,EAAW,SAAS,GAAG,CAAC;CAC9E;CAEA,IAAID,KAAS;EACX,OAAO,MAAM,KAAK,KAAK,iBAA2BE,EAAS,SAAS,GAAG,CAAC;CAC1E;CAKA,SAAS;EACP,OAAO,CAAI;CAQb;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxBC,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,QACvB,KAAK,OAAOC,EAAW,GACvBC,EAAoB,MAAMpB,CAAY;CACxC;CAOA,MAAM,SAAS,GAAGqB,GAA2E;EAC3F,MAAM,KAAK,WAAY,cAAc,uBAAqB,CAAC,EAAE,SAAS,GAAIA,CAA0B;CACtG;AACF;AA/EGpB,EAAA,CAAAqB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAjB,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCJ,EAAA,CAAAqB,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAAjB,EAAA,WAAA,UAAA,KAAA,CAAA,G;CAZ3CkB,EAAM;CACNC,EAAkB;CAClBC,EAAwB"}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
import { LogService as e } from "../../internal/services/log.service.js";
|
|
2
2
|
import { audit as t } from "../../internal/controllers/audit.controller.js";
|
|
3
3
|
import { debounce as n } from "../../internal/utils/events.js";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import a from "
|
|
7
|
-
import o from "
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
4
|
+
import r from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
5
|
+
import i from "./header.js";
|
|
6
|
+
import { GridColumn as a } from "../column/column2.js";
|
|
7
|
+
import { GridCell as o } from "../cell/cell2.js";
|
|
8
|
+
import { GridRow as s } from "../row/row2.js";
|
|
9
|
+
import { GlobalStateService as c } from "@nvidia-elements/foundations/internal/state";
|
|
10
|
+
import { attachInternals as l } from "@nvidia-elements/foundations/internal/a11y";
|
|
11
|
+
import { LitElement as u, html as d } from "lit";
|
|
12
|
+
import { useStyles as f } from "@nvidia-elements/foundations/internal/styles";
|
|
13
13
|
import { queryAssignedElements as p } from "lit/decorators/query-assigned-elements.js";
|
|
14
14
|
// src/grid/header/header.ts
|
|
15
|
-
var m = class extends
|
|
15
|
+
var m = class extends u {
|
|
16
16
|
static {
|
|
17
|
-
this.styles =
|
|
17
|
+
this.styles = f([i]);
|
|
18
18
|
}
|
|
19
19
|
static {
|
|
20
20
|
this.metadata = {
|
|
21
21
|
tag: "nve-grid-header",
|
|
22
|
-
version: "2.23.
|
|
23
|
-
children: [
|
|
22
|
+
version: "2.23.5",
|
|
23
|
+
children: [a.metadata.tag]
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
get #e() {
|
|
27
27
|
return this.parentElement;
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
return
|
|
30
|
+
return d`<div internal-host><slot @slotchange="${() => this.#r()}"></slot></div>`;
|
|
31
31
|
}
|
|
32
32
|
connectedCallback() {
|
|
33
|
-
super.connectedCallback(),
|
|
33
|
+
super.connectedCallback(), l(this), this._internals.role = "row", this.addEventListener("nve-grid-column-resize", this.#t), this.#n ??= new ResizeObserver(n(() => this.#r(), 100)), this.#n.observe(this);
|
|
34
34
|
}
|
|
35
35
|
disconnectedCallback() {
|
|
36
36
|
super.disconnectedCallback(), this.removeEventListener("nve-grid-column-resize", this.#t), this.#n?.disconnect();
|
|
@@ -46,16 +46,16 @@ var m = class extends d {
|
|
|
46
46
|
await this.updateComplete, this.columns.forEach((e, t) => e.ariaColIndex = `${t + 1}`), this.#e.style.setProperty("--grid-auto-flow", "initial"), this.#e.style.setProperty("--grid-template-column", this.columns.map((e, t) => `var(--c${t})`).join(" ")), this.columns.forEach((e, t) => this.#e.style.setProperty(`--c${t}`, e.width ? e.width : "1fr")), await this.updateComplete, this.columns.map((e) => e.width ? e.width : `minmax(auto, ${e.getBoundingClientRect().width}px)`).forEach((e, t) => this.#e.style.setProperty(`--c${t}`, e));
|
|
47
47
|
}
|
|
48
48
|
#i() {
|
|
49
|
-
if (
|
|
50
|
-
let t = this.#e.querySelector(
|
|
49
|
+
if (c.state.env !== "production") {
|
|
50
|
+
let t = this.#e.querySelector(s.metadata.tag)?.querySelectorAll(o.metadata.tag);
|
|
51
51
|
this.columns && t && this.columns.length !== t.length && e.error(`grid-column (${this.columns.length}) and grid-cell (${t.length}) count mismatch`);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
-
|
|
56
|
-
selector:
|
|
55
|
+
r([p({
|
|
56
|
+
selector: a.metadata.tag,
|
|
57
57
|
flatten: !0
|
|
58
|
-
})], m.prototype, "columns", void 0), m =
|
|
58
|
+
})], m.prototype, "columns", void 0), m = r([t()], m);
|
|
59
59
|
export { m as GridHeader };
|
|
60
60
|
|
|
61
61
|
//# sourceMappingURL=header2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header2.js","names":["styles","_decorate","__decorate","header_default","GridHeader","LitElement","useStyles","GridColumn","#grid","#computeColumnWidths","attachInternals","#onColumnResize","#resizeObserver","debounce","props","#validateColumns","i","c","w","GlobalStateService","cells","GridRow","GridCell","LogService","queryAssignedElements","audit"],"sources":["../../../src/grid/header/header.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, LitElement } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport {
|
|
1
|
+
{"version":3,"file":"header2.js","names":["styles","_decorate","__decorate","header_default","GridHeader","LitElement","useStyles","GridColumn","#grid","#computeColumnWidths","attachInternals","#onColumnResize","#resizeObserver","debounce","props","#validateColumns","i","c","w","GlobalStateService","cells","GridRow","GridCell","LogService","queryAssignedElements","audit"],"sources":["../../../src/grid/header/header.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, LitElement } from 'lit';\nimport { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport { debounce, LogService, audit } from '@nvidia-elements/core/internal';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport { GlobalStateService } from '@nvidia-elements/foundations/internal/state';\nimport styles from './header.css?inline';\nimport { GridColumn } from '../column/column.js';\nimport type { Grid } from '../grid.js';\nimport { GridRow } from '../row/row.js';\nimport { GridCell } from '../cell/cell.js';\n\n/**\n * @element nve-grid-header\n * @description Contains the column headers of a grid, managing column widths and providing structural context for the data rows below.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for `nve-grid-column`\n * @cssprop --background\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@audit()\nexport class GridHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-header',\n version: '0.0.0',\n children: [GridColumn.metadata.tag]\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** @private */\n @queryAssignedElements({\n selector: GridColumn.metadata.tag,\n flatten: true\n })\n columns!: GridColumn[];\n\n get #grid() {\n return this.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host>\n <slot @slotchange=${() => this.#computeColumnWidths()}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n this.addEventListener('nve-grid-column-resize', this.#onColumnResize);\n this.#resizeObserver ??= new ResizeObserver(debounce(() => this.#computeColumnWidths(), 100));\n this.#resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('nve-grid-column-resize', this.#onColumnResize);\n this.#resizeObserver?.disconnect();\n }\n\n #onColumnResize = () => {\n void this.#computeColumnWidths();\n };\n\n #resizeObserver?: ResizeObserver;\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#validateColumns();\n }\n\n async #computeColumnWidths() {\n await this.updateComplete;\n this.columns.forEach((c, i) => (c.ariaColIndex = `${i + 1}`));\n this.#grid.style.setProperty('--grid-auto-flow', 'initial');\n this.#grid.style.setProperty('--grid-template-column', this.columns.map((_, i) => `var(--c${i})`).join(' '));\n\n // compute initial column width\n this.columns.forEach((c, i) => this.#grid.style.setProperty(`--c${i}`, c.width ? c.width : `1fr`));\n\n // compute column width based on content\n await this.updateComplete;\n const widths = this.columns.map(c => (c.width ? c.width : `minmax(auto, ${c.getBoundingClientRect().width}px)`));\n widths.forEach((w, i) => this.#grid.style.setProperty(`--c${i}`, w));\n }\n\n #validateColumns() {\n if (GlobalStateService.state.env !== 'production') {\n const cells = this.#grid.querySelector(GridRow.metadata.tag)?.querySelectorAll(GridCell.metadata.tag);\n if (this.columns && cells && this.columns.length !== cells.length) {\n LogService.error(`grid-column (${this.columns.length}) and grid-cell (${cells.length}) count mismatch`);\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BO,IAAMI,IAAN,cAAyBC,EAAW;;EACzB,KAAA,SAAAC,EAAU,CAACN,CAAM,CAAC;;;EAEP,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAACO,EAAW,SAAS,GAAG;EACpC;;CAYA,IAAIC,KAAQ;EACV,OAAO,KAAK;CACd;CAEA,SAAS;EACP,OAAO,CAAI,+CAEmB,KAAKC,GAAqB,EAAE;CAG5D;CAEA,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxBC,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,OACvB,KAAK,iBAAiB,0BAA0B,KAAKC,EAAe,GACpE,KAAKC,OAAoB,IAAI,eAAeC,QAAe,KAAKJ,GAAqB,GAAG,GAAG,CAAC,GAC5F,KAAKG,GAAgB,QAAQ,IAAI;CACnC;CAEA,uBAAuB;EAGrB,AAFA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,0BAA0B,KAAKD,EAAe,GACvE,KAAKC,IAAiB,WAAW;CACnC;CAEA,WAAwB;EACtB,KAAUH,GAAqB;CACjC;CAEA;CAEA,MAAM,aAAa,GAA6B;EAG9C,AAFA,MAAM,aAAaK,CAAK,GACxB,MAAM,KAAK,gBACX,KAAKC,GAAiB;CACxB;CAEA,MAAMN,KAAuB;EAY3B,AAXA,MAAM,KAAK,gBACX,KAAK,QAAQ,SAAS,GAAG,MAAO,EAAE,eAAe,GAAGO,IAAI,GAAI,GAC5D,KAAKR,GAAM,MAAM,YAAY,oBAAoB,SAAS,GAC1D,KAAKA,GAAM,MAAM,YAAY,0BAA0B,KAAK,QAAQ,KAAK,GAAG,MAAM,UAAUQ,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAG3G,KAAK,QAAQ,SAAS,GAAG,MAAM,KAAKR,GAAM,MAAM,YAAY,MAAMQ,KAAKC,EAAE,QAAQA,EAAE,QAAQ,KAAK,CAAC,GAGjG,MAAM,KAAK,gBAEX,KADoB,QAAQ,KAAI,MAAMA,EAAE,QAAQA,EAAE,QAAQ,gBAAgBA,EAAE,sBAAsB,CAAC,CAAC,MAAM,IAC1G,CAAA,CAAO,SAAS,GAAG,MAAM,KAAKT,GAAM,MAAM,YAAY,MAAMQ,KAAKE,CAAC,CAAC;CACrE;CAEA,KAAmB;EACjB,IAAIC,EAAmB,MAAM,QAAQ,cAAc;GACjD,IAAMC,IAAQ,KAAKZ,GAAM,cAAca,EAAQ,SAAS,GAAG,CAAC,EAAE,iBAAiBC,EAAS,SAAS,GAAG;GACpG,AAAI,KAAK,WAAWF,KAAS,KAAK,QAAQ,WAAWA,EAAM,UACzDG,EAAW,MAAM,gBAAgB,KAAK,QAAQ,OAAO,mBAAmBH,EAAM,OAAO,iBAAiB;EAE1G;CACF;AACF;AApEGnB,EAAA,CAAAuB,EAAsB;CACrB,UAAUjB,EAAW,SAAS;CAC9B,SAAS;AACX,CAAC,CAAA,GAAAH,EAAA,WAAA,WAAA,KAAA,CAAA,GAjBF,IAAAH,EAAA,CAAAwB,EAAM,CAAA,GAAArB,CAAA"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import n from "
|
|
4
|
-
import {
|
|
1
|
+
import e from "./placeholder.js";
|
|
2
|
+
import { attachInternals as t } from "@nvidia-elements/foundations/internal/a11y";
|
|
3
|
+
import { LitElement as n, html as r } from "lit";
|
|
4
|
+
import { useStyles as i } from "@nvidia-elements/foundations/internal/styles";
|
|
5
5
|
// src/grid/placeholder/placeholder.ts
|
|
6
|
-
var a = class extends
|
|
6
|
+
var a = class extends n {
|
|
7
7
|
static {
|
|
8
|
-
this.styles =
|
|
8
|
+
this.styles = i([e]);
|
|
9
9
|
}
|
|
10
10
|
static {
|
|
11
11
|
this.metadata = {
|
|
12
12
|
tag: "nve-grid-placeholder",
|
|
13
|
-
version: "2.23.
|
|
13
|
+
version: "2.23.5"
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return
|
|
17
|
+
return r`<div internal-host focusable="active" role="gridcell"><slot></slot></div>`;
|
|
18
18
|
}
|
|
19
19
|
connectedCallback() {
|
|
20
|
-
super.connectedCallback(),
|
|
20
|
+
super.connectedCallback(), t(this), this._internals.role = "row";
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
export { a as GridPlaceholder };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder2.js","names":["styles","placeholder_default","GridPlaceholder","LitElement","useStyles","attachInternals"],"sources":["../../../src/grid/placeholder/placeholder.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 {
|
|
1
|
+
{"version":3,"file":"placeholder2.js","names":["styles","placeholder_default","GridPlaceholder","LitElement","useStyles","attachInternals"],"sources":["../../../src/grid/placeholder/placeholder.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 { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport styles from './placeholder.css?inline';\n\n/**\n * @element nve-grid-placeholder\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @description Placeholder displays a message while data loads for the grid or shows empty states for datasets.\n * @slot - Loading or empty-state message displayed in place of grid rows.\n * @cssprop --color\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridPlaceholder extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-placeholder',\n version: '0.0.0'\n };\n\n /** @private */\n _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host focusable=\"active\" role=\"gridcell\">\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n }\n}\n"],"mappings":";;;;;AAkBA,IAAaE,IAAb,cAAqCC,EAAW;;EAC9B,KAAA,SAAAC,EAAU,CAACJ,CAAM,CAAC;;;EAEP,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;CAKA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxBK,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF"}
|
package/dist/grid/row/row2.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { audit as e } from "../../internal/controllers/audit.controller.js";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import i from "
|
|
6
|
-
import {
|
|
7
|
-
import o from "
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
2
|
+
import { stateSelected as t } from "../../internal/controllers/state-selected.controller.js";
|
|
3
|
+
import n from "../../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
4
|
+
import { GridCell as r } from "../cell/cell2.js";
|
|
5
|
+
import i from "./row.js";
|
|
6
|
+
import { attachInternals as a } from "@nvidia-elements/foundations/internal/a11y";
|
|
7
|
+
import { LitElement as o, html as s } from "lit";
|
|
8
|
+
import { property as c } from "lit/decorators/property.js";
|
|
9
|
+
import { useStyles as l } from "@nvidia-elements/foundations/internal/styles";
|
|
10
10
|
// src/grid/row/row.ts
|
|
11
|
-
var u = class extends
|
|
11
|
+
var u = class extends o {
|
|
12
12
|
static {
|
|
13
|
-
this.styles =
|
|
13
|
+
this.styles = l([i]);
|
|
14
14
|
}
|
|
15
15
|
static {
|
|
16
16
|
this.metadata = {
|
|
17
17
|
tag: "nve-grid-row",
|
|
18
|
-
version: "2.23.
|
|
19
|
-
children: [
|
|
18
|
+
version: "2.23.5",
|
|
19
|
+
children: [r.metadata.tag]
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
|
-
return
|
|
23
|
+
return s`<div internal-host><slot></slot></div>`;
|
|
24
24
|
}
|
|
25
25
|
connectedCallback() {
|
|
26
|
-
super.connectedCallback(),
|
|
26
|
+
super.connectedCallback(), a(this), this._internals.role = "row";
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
n([c({ type: Boolean })], u.prototype, "selected", void 0), u = n([t(), e()], u);
|
|
30
30
|
export { u as GridRow };
|
|
31
31
|
|
|
32
32
|
//# sourceMappingURL=row2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row2.js","names":["styles","_decorate","__decorate","row_default","GridRow","LitElement","useStyles","GridCell","attachInternals","property","stateSelected","audit"],"sources":["../../../src/grid/row/row.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 {
|
|
1
|
+
{"version":3,"file":"row2.js","names":["styles","_decorate","__decorate","row_default","GridRow","LitElement","useStyles","GridCell","attachInternals","property","stateSelected","audit"],"sources":["../../../src/grid/row/row.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 { stateSelected, audit } from '@nvidia-elements/core/internal';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport { GridCell } from '../cell/cell.js';\nimport styles from './row.css?inline';\n\n/**\n * @element nve-grid-row\n * @description Represents a horizontal row of data cells within a grid, supporting selection and interactive states.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for `nve-grid-cell`\n * @cssprop --background\n * @cssprop --border-bottom\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@stateSelected()\n@audit()\nexport class GridRow extends LitElement {\n /**\n * Setting the `selected` property or attribute to `true` shows the row in a selected state.\n */\n @property({ type: Boolean }) selected: boolean;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-row',\n version: '0.0.0',\n children: [GridCell.metadata.tag]\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n }\n}\n"],"mappings":";;;;;;;;;;AAwBO,IAAMI,IAAN,cAAsBC,EAAW;;EAMtB,KAAA,SAAAC,EAAU,CAACN,CAAM,CAAC;;;EAEP,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAACO,EAAS,SAAS,GAAG;EAClC;;CAKA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxBC,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF;AA1BGP,EAAA,CAAAQ,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAAL,EAAA,WAAA,YAAA,KAAA,CAAA,GAN5B,IAAAH,EAAA,CAAAS,EAAc,GACdC,EAAM,CAAA,GAAAP,CAAA"}
|
package/dist/icon/icon2.js
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import o from "
|
|
7
|
-
import s from "
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
1
|
+
import { parseVersion as e } from "../internal/utils/objects.js";
|
|
2
|
+
import { getIconRegistry as t, iconRegistry as n } from "./registry.js";
|
|
3
|
+
import { ICON_NAMES_SOLID as r } from "./names.js";
|
|
4
|
+
import i from "./icon.js";
|
|
5
|
+
import a from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
|
|
6
|
+
import { attachInternals as o } from "@nvidia-elements/foundations/internal/a11y";
|
|
7
|
+
import { LitElement as s, html as c, isServer as l } from "lit";
|
|
8
|
+
import { property as u } from "lit/decorators/property.js";
|
|
9
|
+
import { useStyles as d } from "@nvidia-elements/foundations/internal/styles";
|
|
10
10
|
import { unsafeSVG as f } from "lit/directives/unsafe-svg.js";
|
|
11
11
|
import { state as p } from "lit/decorators/state.js";
|
|
12
12
|
// src/icon/icon.ts
|
|
13
|
-
var m = class
|
|
13
|
+
var m = class e extends s {
|
|
14
14
|
static {
|
|
15
|
-
this.styles =
|
|
15
|
+
this.styles = d([i]);
|
|
16
16
|
}
|
|
17
17
|
static {
|
|
18
18
|
this.metadata = {
|
|
19
19
|
tag: "nve-icon",
|
|
20
|
-
version: "2.23.
|
|
20
|
+
version: "2.23.5"
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
static {
|
|
24
|
-
this._registry =
|
|
24
|
+
this._registry = n;
|
|
25
25
|
}
|
|
26
26
|
static get _icons() {
|
|
27
|
-
return
|
|
27
|
+
return t().icons;
|
|
28
28
|
}
|
|
29
29
|
static set _icons(e) {
|
|
30
|
-
|
|
30
|
+
t().icons = e;
|
|
31
31
|
}
|
|
32
32
|
get #e() {
|
|
33
33
|
if (!this.name || this.name.endsWith(".svg") || this.appearance !== "solid" || this.name.endsWith("-solid")) return this.name;
|
|
34
34
|
let e = `${this.name}-solid`;
|
|
35
|
-
return
|
|
35
|
+
return t().icons[e] || r.includes(this.name) ? e : this.name;
|
|
36
36
|
}
|
|
37
37
|
get #t() {
|
|
38
38
|
let e = this.#e;
|
|
39
|
-
if (!
|
|
40
|
-
let
|
|
41
|
-
return
|
|
39
|
+
if (!l || !e) return this.svg;
|
|
40
|
+
let n = t();
|
|
41
|
+
return n.sync(e) ?? globalThis._NVE_SSR_ICON_REGISTRY?.[e] ?? (this.name ? n.sync(this.name) ?? globalThis._NVE_SSR_ICON_REGISTRY?.[this.name] : void 0);
|
|
42
42
|
}
|
|
43
43
|
#n = [];
|
|
44
44
|
#r = 0;
|
|
@@ -46,23 +46,23 @@ var m = class n extends c {
|
|
|
46
46
|
this.isConnected && this.#s();
|
|
47
47
|
};
|
|
48
48
|
render() {
|
|
49
|
-
return
|
|
49
|
+
return c`<div internal-host aria-hidden="true"><slot>${f(this.#t)}</slot></div>`;
|
|
50
50
|
}
|
|
51
51
|
connectedCallback() {
|
|
52
|
-
super.connectedCallback(),
|
|
52
|
+
super.connectedCallback(), o(this), this._internals.role = "img", this.#a(), this.hasUpdated && this.#s();
|
|
53
53
|
}
|
|
54
54
|
disconnectedCallback() {
|
|
55
55
|
super.disconnectedCallback(), this.#o(), this.#r++;
|
|
56
56
|
}
|
|
57
|
-
static async add(
|
|
57
|
+
static async add(n) {
|
|
58
58
|
if (globalThis.customElements?.whenDefined) {
|
|
59
|
-
await globalThis.customElements.whenDefined(
|
|
60
|
-
for (let [
|
|
59
|
+
await globalThis.customElements.whenDefined(e.metadata.tag);
|
|
60
|
+
for (let [e, r] of Object.entries(n)) t().add(e, r);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
static alias(
|
|
64
|
-
globalThis.customElements?.whenDefined && globalThis.customElements.whenDefined(
|
|
65
|
-
for (let [
|
|
63
|
+
static alias(n) {
|
|
64
|
+
globalThis.customElements?.whenDefined && globalThis.customElements.whenDefined(e.metadata.tag).then(() => {
|
|
65
|
+
for (let [e, r] of Object.entries(n)) t().alias(e, r);
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
async updated(e) {
|
|
@@ -79,33 +79,33 @@ var m = class n extends c {
|
|
|
79
79
|
this.#n = [];
|
|
80
80
|
}
|
|
81
81
|
async #s() {
|
|
82
|
-
let e = ++this.#r,
|
|
83
|
-
if (!
|
|
84
|
-
let
|
|
85
|
-
e === this.#r && this.isConnected && (this.svg =
|
|
82
|
+
let e = ++this.#r, n = this.#e;
|
|
83
|
+
if (!l) try {
|
|
84
|
+
let r = n ? await (n.endsWith(".svg") ? fetch(n).then((e) => e.text()) : t().resolve(n)) : "";
|
|
85
|
+
e === this.#r && this.isConnected && (this.svg = r);
|
|
86
86
|
} catch {
|
|
87
87
|
e === this.#r && this.isConnected && (this.svg = "");
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
};
|
|
91
|
-
|
|
91
|
+
a([u({
|
|
92
92
|
type: String,
|
|
93
93
|
reflect: !0
|
|
94
|
-
})], m.prototype, "status", void 0),
|
|
94
|
+
})], m.prototype, "status", void 0), a([u({
|
|
95
95
|
type: String,
|
|
96
96
|
reflect: !0
|
|
97
|
-
})], m.prototype, "size", void 0),
|
|
97
|
+
})], m.prototype, "size", void 0), a([u({
|
|
98
98
|
type: String,
|
|
99
99
|
reflect: !0
|
|
100
|
-
})], m.prototype, "direction", void 0),
|
|
100
|
+
})], m.prototype, "direction", void 0), a([u({ type: String })], m.prototype, "appearance", void 0), a([u({
|
|
101
101
|
type: String,
|
|
102
102
|
reflect: !0
|
|
103
|
-
})], m.prototype, "name", void 0),
|
|
104
|
-
function h(
|
|
103
|
+
})], m.prototype, "name", void 0), a([p()], m.prototype, "svg", void 0);
|
|
104
|
+
function h(t) {
|
|
105
105
|
if (typeof globalThis.customElements?.get == "function") {
|
|
106
|
-
if (
|
|
107
|
-
let
|
|
108
|
-
(
|
|
106
|
+
if (t._registry === n) return;
|
|
107
|
+
let r = e(t.metadata.version), i = e(m.metadata.version);
|
|
108
|
+
(i.major - r.major || i.minor - r.minor || i.patch - r.patch) >= 0 && (t._registry?.merge(n), n.loadCatalog().then((e) => t.add(e)).catch(() => {}));
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
export { m as Icon, h as mergeIcons };
|
package/dist/icon/icon2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon2.js","names":["styles","_decorate","icon_default","__decorate","Icon","LitElement","useStyles","iconRegistry","getIconRegistry","icons","#resolvedIconName","solidName","ICON_NAMES_SOLID","#iconString","iconName","isServer","registry","#render","unsafeSVG","attachInternals","#addIconRegistryListener","#removeIconRegistryListener","#renderRequest","name","icon","target","aliases","props","#iconRegistryEventNames","#onIconRegistryUpdate","renderRequest","svg","res","property","state","mergeIcons","RegisteredIcon","registered","parseVersion","current"],"sources":["../../src/icon/icon.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, isServer, LitElement } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { attachInternals, parseVersion, useStyles } from '@nvidia-elements/core/internal';\nimport type { IconName, IconSVG } from './icons.js';\nimport { iconRegistry, getIconRegistry } from './registry.js';\nimport { ICON_NAMES_SOLID } from './names.js';\nimport styles from './icon.css?inline';\n\nexport type { IconName, IconSVG } from './icons.js';\n\ndeclare global {\n var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;\n}\n\n/**\n * @element nve-icon\n * @since 0.1.3\n * @entrypoint \\@nvidia-elements/core/icon\n * @description An icon is a graphic symbol designed to visually show the purpose of an interface element.\n * Import `@nvidia-elements/core/icon/icons/person.js` to register one SVG before rendering.\n * Import `person-solid.js` separately for solid appearance. Missing names load the built-in catalog on demand.\n * Explicit imports reduce initial loading in application builds; the full browser bundle remains a single file.\n * @documentation https://nvidia.github.io/elements/docs/elements/icon/\n * @cssprop --color\n * @cssprop --width\n * @cssprop --height\n * @slot - Custom SVG content to override the named icon\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\n */\nexport class Icon extends LitElement {\n /**\n * Visual treatment to represent current support status.\n */\n @property({ type: String, reflect: true }) status?: 'warning' | 'danger' | 'success' | 'accent';\n\n /**\n * Controls the bounding box size of the icon given a t-shirt style value.\n */\n @property({ type: String, reflect: true }) size?: Size | 'xs' | 'xl';\n\n /**\n * Sets the direction of the icon. Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)\n */\n @property({ type: String, reflect: true }) direction?: 'up' | 'down' | 'left' | 'right';\n\n /**\n * Selects the outline or solid form of the named icon. Solid icons use an optional `-solid` asset and fall back to\n * the outline form when that asset is unavailable.\n */\n @property({ type: String }) appearance?: 'outline' | 'solid';\n\n /**\n * The name of the icon SVG sprite to render.\n */\n @property({ type: String, reflect: true }) name?: IconName;\n\n @state() private svg: string;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-icon',\n version: '0.0.0'\n };\n\n static _registry = iconRegistry;\n\n static get _icons() {\n return getIconRegistry().icons;\n }\n\n static set _icons(icons: Record<string, IconSVG>) {\n getIconRegistry().icons = icons;\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #resolvedIconName() {\n if (!this.name || this.name.endsWith('.svg') || this.appearance !== 'solid' || this.name.endsWith('-solid')) {\n return this.name;\n }\n\n const solidName = `${this.name}-solid`;\n return getIconRegistry().icons[solidName] ||\n ICON_NAMES_SOLID.includes(this.name as (typeof ICON_NAMES_SOLID)[number])\n ? solidName\n : this.name;\n }\n\n get #iconString() {\n const iconName = this.#resolvedIconName;\n if (!isServer || !iconName) return this.svg;\n const registry = getIconRegistry();\n return (\n registry.sync(iconName) ??\n globalThis._NVE_SSR_ICON_REGISTRY?.[iconName] ??\n (this.name ? (registry.sync(this.name) ?? globalThis._NVE_SSR_ICON_REGISTRY?.[this.name]) : undefined)\n );\n }\n\n #iconRegistryEventNames: string[] = [];\n\n #renderRequest = 0;\n\n #onIconRegistryUpdate = () => {\n if (this.isConnected) void this.#render();\n };\n\n render() {\n return html`\n <div internal-host aria-hidden=\"true\"><slot>${unsafeSVG(this.#iconString)}</slot></div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'img';\n this.#addIconRegistryListener();\n if (this.hasUpdated) void this.#render();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#removeIconRegistryListener();\n this.#renderRequest++;\n }\n\n static async add(icons: { [key: string]: IconSVG }) {\n if (globalThis.customElements?.whenDefined) {\n await globalThis.customElements.whenDefined(Icon.metadata.tag);\n for (const [name, icon] of Object.entries(icons)) getIconRegistry().add(name, icon);\n }\n }\n\n static alias(aliases: { [key: string]: IconName | string }) {\n // whenDefined has no rejection state\n if (globalThis.customElements?.whenDefined) {\n /* eslint-disable @typescript-eslint/no-floating-promises */\n globalThis.customElements.whenDefined(Icon.metadata.tag).then(() => {\n for (const [name, target] of Object.entries(aliases)) getIconRegistry().alias(name, target);\n });\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (props.has('name') || props.has('appearance')) {\n this.#removeIconRegistryListener();\n this.#addIconRegistryListener();\n }\n await this.#render();\n }\n\n #addIconRegistryListener() {\n if (!this.isConnected || !this.name || this.#iconRegistryEventNames.length) return;\n this.#iconRegistryEventNames = [this.name, `${this.name}-solid`].map(name => `nve-icon-${name}`);\n for (const name of this.#iconRegistryEventNames)\n globalThis.document.addEventListener(name, this.#onIconRegistryUpdate);\n }\n\n #removeIconRegistryListener() {\n for (const name of this.#iconRegistryEventNames)\n globalThis.document.removeEventListener(name, this.#onIconRegistryUpdate);\n this.#iconRegistryEventNames = [];\n }\n\n async #render() {\n const renderRequest = ++this.#renderRequest;\n const iconName = this.#resolvedIconName;\n if (isServer) return;\n try {\n const svg = !iconName\n ? ''\n : await (iconName.endsWith('.svg')\n ? fetch(iconName).then(res => res.text())\n : getIconRegistry().resolve(iconName));\n if (renderRequest === this.#renderRequest && this.isConnected) this.svg = svg;\n } catch {\n if (renderRequest === this.#renderRequest && this.isConnected) this.svg = '';\n }\n }\n}\n\nexport function mergeIcons(RegisteredIcon: typeof Icon) {\n if (typeof globalThis.customElements?.get === 'function') {\n if (RegisteredIcon._registry === iconRegistry) return;\n const registered = parseVersion(RegisteredIcon.metadata.version);\n const current = parseVersion(Icon.metadata.version);\n const difference =\n current.major - registered.major || current.minor - registered.minor || current.patch - registered.patch;\n\n // A different compatible registry needs updated providers, cache invalidation, and render notifications.\n if (difference >= 0) {\n RegisteredIcon._registry?.merge(iconRegistry);\n void iconRegistry\n .loadCatalog()\n .then(icons => RegisteredIcon.add(icons))\n .catch(() => {});\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icon2.js","names":["styles","_decorate","icon_default","__decorate","Icon","LitElement","useStyles","iconRegistry","getIconRegistry","icons","#resolvedIconName","solidName","ICON_NAMES_SOLID","#iconString","iconName","isServer","registry","#render","unsafeSVG","attachInternals","#addIconRegistryListener","#removeIconRegistryListener","#renderRequest","name","icon","target","aliases","props","#iconRegistryEventNames","#onIconRegistryUpdate","renderRequest","svg","res","property","state","mergeIcons","RegisteredIcon","registered","parseVersion","current"],"sources":["../../src/icon/icon.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, isServer, LitElement } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { parseVersion } from '@nvidia-elements/core/internal';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport type { IconName, IconSVG } from './icons.js';\nimport { iconRegistry, getIconRegistry } from './registry.js';\nimport { ICON_NAMES_SOLID } from './names.js';\nimport styles from './icon.css?inline';\n\nexport type { IconName, IconSVG } from './icons.js';\n\ndeclare global {\n var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;\n}\n\n/**\n * @element nve-icon\n * @since 0.1.3\n * @entrypoint \\@nvidia-elements/core/icon\n * @description An icon is a graphic symbol designed to visually show the purpose of an interface element.\n * Import `@nvidia-elements/core/icon/icons/person.js` to register one SVG before rendering.\n * Import `person-solid.js` separately for solid appearance. Missing names load the built-in catalog on demand.\n * Explicit imports reduce initial loading in application builds; the full browser bundle remains a single file.\n * @documentation https://nvidia.github.io/elements/docs/elements/icon/\n * @cssprop --color\n * @cssprop --width\n * @cssprop --height\n * @slot - Custom SVG content to override the named icon\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\n */\nexport class Icon extends LitElement {\n /**\n * Visual treatment to represent current support status.\n */\n @property({ type: String, reflect: true }) status?: 'warning' | 'danger' | 'success' | 'accent';\n\n /**\n * Controls the bounding box size of the icon given a t-shirt style value.\n */\n @property({ type: String, reflect: true }) size?: Size | 'xs' | 'xl';\n\n /**\n * Sets the direction of the icon. Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)\n */\n @property({ type: String, reflect: true }) direction?: 'up' | 'down' | 'left' | 'right';\n\n /**\n * Selects the outline or solid form of the named icon. Solid icons use an optional `-solid` asset and fall back to\n * the outline form when that asset is unavailable.\n */\n @property({ type: String }) appearance?: 'outline' | 'solid';\n\n /**\n * The name of the icon SVG sprite to render.\n */\n @property({ type: String, reflect: true }) name?: IconName;\n\n @state() private svg: string;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-icon',\n version: '0.0.0'\n };\n\n static _registry = iconRegistry;\n\n static get _icons() {\n return getIconRegistry().icons;\n }\n\n static set _icons(icons: Record<string, IconSVG>) {\n getIconRegistry().icons = icons;\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #resolvedIconName() {\n if (!this.name || this.name.endsWith('.svg') || this.appearance !== 'solid' || this.name.endsWith('-solid')) {\n return this.name;\n }\n\n const solidName = `${this.name}-solid`;\n return getIconRegistry().icons[solidName] ||\n ICON_NAMES_SOLID.includes(this.name as (typeof ICON_NAMES_SOLID)[number])\n ? solidName\n : this.name;\n }\n\n get #iconString() {\n const iconName = this.#resolvedIconName;\n if (!isServer || !iconName) return this.svg;\n const registry = getIconRegistry();\n return (\n registry.sync(iconName) ??\n globalThis._NVE_SSR_ICON_REGISTRY?.[iconName] ??\n (this.name ? (registry.sync(this.name) ?? globalThis._NVE_SSR_ICON_REGISTRY?.[this.name]) : undefined)\n );\n }\n\n #iconRegistryEventNames: string[] = [];\n\n #renderRequest = 0;\n\n #onIconRegistryUpdate = () => {\n if (this.isConnected) void this.#render();\n };\n\n render() {\n return html`\n <div internal-host aria-hidden=\"true\"><slot>${unsafeSVG(this.#iconString)}</slot></div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'img';\n this.#addIconRegistryListener();\n if (this.hasUpdated) void this.#render();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#removeIconRegistryListener();\n this.#renderRequest++;\n }\n\n static async add(icons: { [key: string]: IconSVG }) {\n if (globalThis.customElements?.whenDefined) {\n await globalThis.customElements.whenDefined(Icon.metadata.tag);\n for (const [name, icon] of Object.entries(icons)) getIconRegistry().add(name, icon);\n }\n }\n\n static alias(aliases: { [key: string]: IconName | string }) {\n // whenDefined has no rejection state\n if (globalThis.customElements?.whenDefined) {\n /* eslint-disable @typescript-eslint/no-floating-promises */\n globalThis.customElements.whenDefined(Icon.metadata.tag).then(() => {\n for (const [name, target] of Object.entries(aliases)) getIconRegistry().alias(name, target);\n });\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (props.has('name') || props.has('appearance')) {\n this.#removeIconRegistryListener();\n this.#addIconRegistryListener();\n }\n await this.#render();\n }\n\n #addIconRegistryListener() {\n if (!this.isConnected || !this.name || this.#iconRegistryEventNames.length) return;\n this.#iconRegistryEventNames = [this.name, `${this.name}-solid`].map(name => `nve-icon-${name}`);\n for (const name of this.#iconRegistryEventNames)\n globalThis.document.addEventListener(name, this.#onIconRegistryUpdate);\n }\n\n #removeIconRegistryListener() {\n for (const name of this.#iconRegistryEventNames)\n globalThis.document.removeEventListener(name, this.#onIconRegistryUpdate);\n this.#iconRegistryEventNames = [];\n }\n\n async #render() {\n const renderRequest = ++this.#renderRequest;\n const iconName = this.#resolvedIconName;\n if (isServer) return;\n try {\n const svg = !iconName\n ? ''\n : await (iconName.endsWith('.svg')\n ? fetch(iconName).then(res => res.text())\n : getIconRegistry().resolve(iconName));\n if (renderRequest === this.#renderRequest && this.isConnected) this.svg = svg;\n } catch {\n if (renderRequest === this.#renderRequest && this.isConnected) this.svg = '';\n }\n }\n}\n\nexport function mergeIcons(RegisteredIcon: typeof Icon) {\n if (typeof globalThis.customElements?.get === 'function') {\n if (RegisteredIcon._registry === iconRegistry) return;\n const registered = parseVersion(RegisteredIcon.metadata.version);\n const current = parseVersion(Icon.metadata.version);\n const difference =\n current.major - registered.major || current.minor - registered.minor || current.patch - registered.patch;\n\n // A different compatible registry needs updated providers, cache invalidation, and render notifications.\n if (difference >= 0) {\n RegisteredIcon._registry?.merge(iconRegistry);\n void iconRegistry\n .loadCatalog()\n .then(icons => RegisteredIcon.add(icons))\n .catch(() => {});\n }\n }\n}\n"],"mappings":"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"}
|