@nvidia-elements/core 2.0.4 → 2.1.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/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/decorate.js +2 -2
- package/dist/accordion/accordion.d.ts +13 -12
- package/dist/accordion/accordion2.js +5 -5
- package/dist/accordion/accordion2.js.map +1 -1
- package/dist/accordion/define.d.ts +1 -1
- package/dist/alert/alert-group.d.ts +5 -4
- package/dist/alert/alert-group2.js +2 -2
- package/dist/alert/alert.d.ts +6 -6
- package/dist/alert/alert2.js +2 -2
- package/dist/alert/define.d.ts +1 -1
- package/dist/avatar/avatar-group.d.ts +2 -2
- package/dist/avatar/avatar-group2.js +1 -1
- package/dist/avatar/avatar.d.ts +3 -3
- package/dist/avatar/avatar2.js +2 -2
- package/dist/avatar/define.d.ts +1 -1
- package/dist/badge/badge.d.ts +7 -6
- package/dist/badge/badge2.js +2 -2
- package/dist/badge/badge2.js.map +1 -1
- package/dist/badge/define.d.ts +1 -1
- package/dist/breadcrumb/breadcrumb.d.ts +4 -4
- package/dist/breadcrumb/breadcrumb2.js +2 -2
- package/dist/breadcrumb/breadcrumb2.js.map +1 -1
- package/dist/breadcrumb/define.d.ts +1 -1
- package/dist/bundle.d.ts +136 -67
- package/dist/bundles/index.d.ts +49 -0
- package/dist/bundles/index.js +4 -4
- package/dist/button/button.d.ts +4 -4
- package/dist/button/button2.js +2 -2
- package/dist/button/button2.js.map +1 -1
- package/dist/button/define.d.ts +1 -1
- package/dist/button-group/button-group.d.ts +5 -4
- package/dist/button-group/button-group2.js +2 -2
- package/dist/button-group/define.d.ts +1 -1
- package/dist/card/card.d.ts +9 -9
- package/dist/card/card2.js +5 -5
- package/dist/card/define.d.ts +1 -1
- package/dist/chat-message/chat-message.d.ts +3 -3
- package/dist/chat-message/chat-message2.js +2 -2
- package/dist/chat-message/define.d.ts +1 -1
- package/dist/checkbox/checkbox-group.d.ts +2 -2
- package/dist/checkbox/checkbox-group2.js +2 -2
- package/dist/checkbox/checkbox.d.ts +2 -2
- package/dist/checkbox/checkbox2.js +2 -2
- package/dist/checkbox/define.d.ts +1 -1
- package/dist/color/color.d.ts +5 -5
- package/dist/color/color2.js +2 -2
- package/dist/color/color2.js.map +1 -1
- package/dist/color/define.d.ts +1 -1
- package/dist/combobox/combobox.d.ts +12 -11
- package/dist/combobox/combobox2.js +2 -2
- package/dist/combobox/combobox2.js.map +1 -1
- package/dist/combobox/define.d.ts +1 -1
- package/dist/copy-button/copy-button.d.ts +7 -7
- package/dist/copy-button/copy-button2.js +2 -2
- package/dist/copy-button/copy-button2.js.map +1 -1
- package/dist/copy-button/define.d.ts +1 -1
- package/dist/custom-elements-jsx.d.ts +52 -0
- package/dist/custom-elements-vue.d.ts +52 -0
- package/dist/custom-elements.json +415 -1
- package/dist/data.html.json +67 -0
- package/dist/date/date.d.ts +5 -5
- package/dist/date/date2.js +2 -2
- package/dist/date/define.d.ts +1 -1
- package/dist/datetime/datetime.d.ts +5 -5
- package/dist/datetime/datetime2.js +2 -2
- package/dist/datetime/define.d.ts +1 -1
- package/dist/dialog/define.d.ts +1 -1
- package/dist/dialog/dialog-footer.d.ts +2 -2
- package/dist/dialog/dialog-footer2.js +2 -2
- package/dist/dialog/dialog-header.d.ts +2 -2
- package/dist/dialog/dialog-header2.js +2 -2
- package/dist/dialog/dialog.d.ts +6 -5
- package/dist/dialog/dialog2.js +2 -2
- package/dist/divider/define.d.ts +1 -1
- package/dist/divider/divider.d.ts +4 -3
- package/dist/divider/divider2.js +2 -2
- package/dist/dot/define.d.ts +1 -1
- package/dist/dot/dot.d.ts +3 -3
- package/dist/dot/dot2.js +2 -2
- package/dist/drawer/define.d.ts +1 -1
- package/dist/drawer/drawer-content.d.ts +2 -2
- package/dist/drawer/drawer-content2.js +2 -2
- package/dist/drawer/drawer-footer.d.ts +2 -2
- package/dist/drawer/drawer-footer2.js +2 -2
- package/dist/drawer/drawer-header.d.ts +2 -2
- package/dist/drawer/drawer-header2.js +2 -2
- package/dist/drawer/drawer.d.ts +6 -5
- package/dist/drawer/drawer2.js +2 -2
- package/dist/dropdown/define.d.ts +1 -1
- package/dist/dropdown/dropdown-footer.d.ts +2 -2
- package/dist/dropdown/dropdown-footer2.js +2 -2
- package/dist/dropdown/dropdown-header.d.ts +2 -2
- package/dist/dropdown/dropdown-header2.js +2 -2
- package/dist/dropdown/dropdown.d.ts +6 -5
- package/dist/dropdown/dropdown2.js +2 -2
- package/dist/dropdown-group/define.d.ts +1 -1
- package/dist/dropdown-group/dropdown-group.d.ts +3 -3
- package/dist/dropdown-group/dropdown-group.js +2 -2
- package/dist/dropdown-group/dropdown-group.js.map +1 -1
- package/dist/dropzone/define.d.ts +1 -1
- package/dist/dropzone/dropzone.d.ts +12 -12
- package/dist/dropzone/dropzone.util.d.ts +1 -1
- package/dist/dropzone/dropzone.util.js.map +1 -1
- package/dist/dropzone/dropzone2.js +2 -2
- package/dist/dropzone/dropzone2.js.map +1 -1
- package/dist/file/define.d.ts +1 -1
- package/dist/file/file.d.ts +2 -2
- package/dist/file/file2.js +1 -1
- package/dist/format-datetime/define.d.ts +1 -1
- package/dist/format-datetime/format-datetime.d.ts +2 -2
- package/dist/format-datetime/format-datetime2.js +2 -2
- package/dist/format-datetime/format-datetime2.js.map +1 -1
- package/dist/format-number/define.d.ts +1 -1
- package/dist/format-number/format-number.d.ts +2 -2
- package/dist/format-number/format-number2.js +3 -3
- package/dist/format-number/format-number2.js.map +1 -1
- package/dist/format-relative-time/define.d.ts +1 -1
- package/dist/format-relative-time/format-relative-time.d.ts +2 -2
- package/dist/format-relative-time/format-relative-time2.js +2 -2
- package/dist/format-relative-time/format-relative-time2.js.map +1 -1
- package/dist/forms/control/control.d.ts +4 -3
- package/dist/forms/control/control2.js +2 -2
- package/dist/forms/control/control2.js.map +1 -1
- package/dist/forms/control-group/control-group.d.ts +4 -3
- package/dist/forms/control-group/control-group2.js +2 -2
- package/dist/forms/control-message/control-message.d.ts +4 -4
- package/dist/forms/control-message/control-message2.js +2 -2
- package/dist/forms/define.d.ts +1 -1
- package/dist/forms/utils/layout.d.ts +2 -2
- package/dist/forms/utils/layout.js +1 -1
- package/dist/forms/utils/layout.js.map +1 -1
- package/dist/forms/utils/states.d.ts +2 -2
- package/dist/forms/utils/states.js +1 -1
- package/dist/forms/utils/states.js.map +1 -1
- package/dist/gauge/define.d.ts +6 -0
- package/dist/gauge/define.js +7 -0
- package/dist/gauge/define.js.map +1 -0
- package/dist/gauge/gauge.d.ts +52 -0
- package/dist/gauge/gauge.examples.js +6 -0
- package/dist/gauge/gauge.examples.js.map +1 -0
- package/dist/gauge/gauge.examples.json +147 -0
- package/dist/gauge/gauge.js +6 -0
- package/dist/gauge/gauge.js.map +1 -0
- package/dist/gauge/gauge2.js +106 -0
- package/dist/gauge/gauge2.js.map +1 -0
- package/dist/gauge/index.d.ts +1 -0
- package/dist/gauge/index.js +2 -0
- package/dist/grid/cell/cell.d.ts +2 -2
- package/dist/grid/cell/cell2.js +1 -1
- package/dist/grid/column/column.d.ts +4 -3
- package/dist/grid/column/column2.js +2 -2
- package/dist/grid/column/column2.js.map +1 -1
- package/dist/grid/define.d.ts +1 -1
- package/dist/grid/footer/footer.d.ts +2 -2
- package/dist/grid/footer/footer2.js +2 -2
- package/dist/grid/grid.d.ts +6 -5
- package/dist/grid/grid2.js +2 -2
- package/dist/grid/grid2.js.map +1 -1
- package/dist/grid/header/header.d.ts +4 -3
- package/dist/grid/header/header2.js +2 -2
- package/dist/grid/header/header2.js.map +1 -1
- package/dist/grid/placeholder/placeholder.d.ts +2 -2
- package/dist/grid/placeholder/placeholder2.js +1 -1
- package/dist/grid/row/row.d.ts +2 -2
- package/dist/grid/row/row2.js +2 -2
- package/dist/icon/define.d.ts +1 -1
- package/dist/icon/icon.d.ts +6 -5
- package/dist/icon/icon2.js +3 -3
- package/dist/icon/icon2.js.map +1 -1
- package/dist/icon/icons.js.map +1 -1
- package/dist/icon-button/define.d.ts +1 -1
- package/dist/icon-button/icon-button.d.ts +6 -5
- package/dist/icon-button/icon-button2.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/input/define.d.ts +1 -1
- package/dist/input/input-group.d.ts +2 -2
- package/dist/input/input-group2.js +1 -1
- package/dist/input/input-group2.js.map +1 -1
- package/dist/input/input.d.ts +3 -3
- package/dist/input/input2.js +2 -2
- package/dist/internal/controllers/audit.controller.d.ts +1 -1
- package/dist/internal/controllers/i18n.controller.d.ts +3 -3
- package/dist/internal/controllers/i18n.controller.js +1 -1
- package/dist/internal/controllers/i18n.controller.js.map +1 -1
- package/dist/internal/controllers/keynav-grid.controller.d.ts +1 -1
- package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
- package/dist/internal/controllers/keynav-list.controller.d.ts +1 -1
- package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
- package/dist/internal/controllers/state-expanded.controller.d.ts +1 -1
- package/dist/internal/controllers/state-highlighted.controller.d.ts +1 -1
- package/dist/internal/controllers/state-scroll.controller.d.ts +1 -1
- package/dist/internal/controllers/state-selected.controller.d.ts +1 -1
- package/dist/internal/controllers/state-selected.controller.js.map +1 -1
- package/dist/internal/controllers/type-anchor.controller.d.ts +1 -1
- package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
- package/dist/internal/controllers/type-closable.controller.d.ts +1 -1
- package/dist/internal/controllers/type-expandable.controller.d.ts +1 -1
- package/dist/internal/controllers/type-native-popover.controller.d.ts +2 -2
- package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
- package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
- package/dist/internal/controllers/type-selectable.controller.d.ts +1 -1
- package/dist/internal/controllers/type-ssr.controller.d.ts +1 -1
- package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
- package/dist/internal/controllers/type-touch.controller.d.ts +2 -2
- package/dist/internal/controllers/type-touch.controller.js.map +1 -1
- package/dist/internal/decorators/host-attr.d.ts +2 -2
- package/dist/internal/services/global.service.d.ts +1 -1
- package/dist/internal/services/global.service.js +1 -1
- package/dist/internal/services/global.service.js.map +1 -1
- package/dist/internal/services/global.utils.js.map +1 -1
- package/dist/internal/services/i18n.service.js.map +1 -1
- package/dist/internal/services/transition.service.js.map +1 -1
- package/dist/internal/styles/index.d.ts +1 -1
- package/dist/internal/types/index.d.ts +3 -3
- package/dist/internal/utils/a11y.js.map +1 -1
- package/dist/internal/utils/audit-logs.js +1 -1
- package/dist/internal/utils/audit.js.map +1 -1
- package/dist/internal/utils/dom.d.ts +1 -1
- package/dist/internal/utils/dom.js +10 -10
- package/dist/internal/utils/dom.js.map +1 -1
- package/dist/internal/utils/focus.js.map +1 -1
- package/dist/internal/utils/objects.js.map +1 -1
- package/dist/internal/utils/strings.js +1 -1
- package/dist/internal/utils/strings.js.map +1 -1
- package/dist/logo/define.d.ts +1 -1
- package/dist/logo/logo.d.ts +3 -3
- package/dist/logo/logo2.js +2 -2
- package/dist/menu/define.d.ts +1 -1
- package/dist/menu/menu-item.d.ts +3 -3
- package/dist/menu/menu-item2.js +2 -2
- package/dist/menu/menu-item2.js.map +1 -1
- package/dist/menu/menu.d.ts +4 -4
- package/dist/menu/menu2.js +2 -2
- package/dist/menu/menu2.js.map +1 -1
- package/dist/month/define.d.ts +1 -1
- package/dist/month/month.d.ts +5 -5
- package/dist/month/month2.js +2 -2
- package/dist/notification/define.d.ts +1 -1
- package/dist/notification/notification-group.d.ts +4 -3
- package/dist/notification/notification-group2.js +2 -2
- package/dist/notification/notification.d.ts +9 -7
- package/dist/notification/notification2.js +2 -2
- package/dist/page/define.d.ts +1 -1
- package/dist/page/page-panel/page-panel-content.d.ts +2 -2
- package/dist/page/page-panel/page-panel-content2.js +1 -1
- package/dist/page/page-panel/page-panel-footer.d.ts +2 -2
- package/dist/page/page-panel/page-panel-footer2.js +2 -2
- package/dist/page/page-panel/page-panel-header.d.ts +2 -2
- package/dist/page/page-panel/page-panel-header2.js +2 -2
- package/dist/page/page-panel/page-panel.d.ts +4 -4
- package/dist/page/page-panel/page-panel2.js +2 -2
- package/dist/page/page.d.ts +2 -2
- package/dist/page/page2.js +2 -2
- package/dist/page-header/define.d.ts +1 -1
- package/dist/page-header/page-header.d.ts +2 -2
- package/dist/page-header/page-header2.js +1 -1
- package/dist/page-loader/define.d.ts +1 -1
- package/dist/page-loader/page-loader.d.ts +5 -4
- package/dist/page-loader/page-loader2.js +2 -2
- package/dist/pagination/define.d.ts +1 -1
- package/dist/pagination/pagination.d.ts +8 -8
- package/dist/pagination/pagination2.js +2 -2
- package/dist/pagination/pagination2.js.map +1 -1
- package/dist/panel/define.d.ts +1 -1
- package/dist/panel/panel.d.ts +10 -10
- package/dist/panel/panel2.js +5 -5
- package/dist/password/define.d.ts +1 -1
- package/dist/password/password.d.ts +5 -5
- package/dist/password/password2.js +2 -2
- package/dist/polyfills/custom-state-set.js.map +1 -1
- package/dist/polyfills/index.d.ts +13 -0
- package/dist/preferences-input/define.d.ts +1 -1
- package/dist/preferences-input/preferences-input.d.ts +13 -13
- package/dist/preferences-input/preferences-input2.js +2 -2
- package/dist/preferences-input/preferences-input2.js.map +1 -1
- package/dist/progress-bar/define.d.ts +1 -1
- package/dist/progress-bar/progress-bar.d.ts +3 -3
- package/dist/progress-bar/progress-bar2.js +2 -2
- package/dist/progress-ring/define.d.ts +1 -1
- package/dist/progress-ring/progress-ring.d.ts +7 -6
- package/dist/progress-ring/progress-ring2.js +4 -4
- package/dist/progress-ring/progress-ring2.js.map +1 -1
- package/dist/progressive-filter-chip/define.d.ts +1 -1
- package/dist/progressive-filter-chip/progressive-filter-chip.d.ts +7 -7
- package/dist/progressive-filter-chip/progressive-filter-chip2.js +2 -2
- package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
- package/dist/pulse/define.d.ts +1 -1
- package/dist/pulse/pulse.d.ts +4 -4
- package/dist/pulse/pulse2.js +2 -2
- package/dist/radio/define.d.ts +1 -1
- package/dist/radio/radio-group.d.ts +2 -2
- package/dist/radio/radio-group2.js +2 -2
- package/dist/radio/radio.d.ts +2 -2
- package/dist/radio/radio2.js +2 -2
- package/dist/range/define.d.ts +1 -1
- package/dist/range/range.d.ts +5 -4
- package/dist/range/range2.js +2 -2
- package/dist/resize-handle/define.d.ts +1 -1
- package/dist/resize-handle/resize-handle.d.ts +6 -6
- package/dist/resize-handle/resize-handle2.js +2 -2
- package/dist/resize-handle/resize-handle2.js.map +1 -1
- package/dist/search/define.d.ts +1 -1
- package/dist/search/search.d.ts +5 -5
- package/dist/search/search2.js +2 -2
- package/dist/select/define.d.ts +1 -1
- package/dist/select/select.d.ts +11 -10
- package/dist/select/select2.js +2 -2
- package/dist/select/select2.js.map +1 -1
- package/dist/skeleton/define.d.ts +1 -1
- package/dist/skeleton/skeleton.d.ts +3 -3
- package/dist/skeleton/skeleton2.js +2 -2
- package/dist/skeleton/skeleton2.js.map +1 -1
- package/dist/sort-button/define.d.ts +1 -1
- package/dist/sort-button/sort-button.d.ts +5 -5
- package/dist/sort-button/sort-button2.js +2 -2
- package/dist/sort-button/sort-button2.js.map +1 -1
- package/dist/sparkline/define.d.ts +1 -1
- package/dist/sparkline/sparkline.d.ts +5 -4
- package/dist/sparkline/sparkline.utils.d.ts +1 -1
- package/dist/sparkline/sparkline.utils.js.map +1 -1
- package/dist/sparkline/sparkline2.js +2 -2
- package/dist/sparkline/sparkline2.js.map +1 -1
- package/dist/star-rating/define.d.ts +1 -1
- package/dist/star-rating/star-rating.d.ts +5 -5
- package/dist/star-rating/star-rating2.js +2 -2
- package/dist/star-rating/star-rating2.js.map +1 -1
- package/dist/steps/define.d.ts +1 -1
- package/dist/steps/steps.d.ts +10 -9
- package/dist/steps/steps2.js +3 -3
- package/dist/steps/steps2.js.map +1 -1
- package/dist/switch/define.d.ts +1 -1
- package/dist/switch/switch-group.d.ts +2 -2
- package/dist/switch/switch-group2.js +2 -2
- package/dist/switch/switch.d.ts +2 -2
- package/dist/switch/switch2.js +2 -2
- package/dist/tabs/define.d.ts +1 -1
- package/dist/tabs/tabs-group.d.ts +4 -3
- package/dist/tabs/tabs-group2.js +2 -2
- package/dist/tabs/tabs-group2.js.map +1 -1
- package/dist/tabs/tabs.d.ts +8 -7
- package/dist/tabs/tabs2.js +3 -3
- package/dist/tabs/tabs2.js.map +1 -1
- package/dist/tag/define.d.ts +1 -1
- package/dist/tag/tag.d.ts +6 -6
- package/dist/tag/tag2.js +2 -2
- package/dist/tag/tag2.js.map +1 -1
- package/dist/textarea/define.d.ts +1 -1
- package/dist/textarea/textarea.d.ts +2 -2
- package/dist/textarea/textarea2.js +1 -1
- package/dist/time/define.d.ts +1 -1
- package/dist/time/time.d.ts +5 -5
- package/dist/time/time2.js +2 -2
- package/dist/toast/define.d.ts +1 -1
- package/dist/toast/toast.d.ts +7 -6
- package/dist/toast/toast2.js +2 -2
- package/dist/toggletip/define.d.ts +1 -1
- package/dist/toggletip/toggletip-footer.d.ts +2 -2
- package/dist/toggletip/toggletip-footer2.js +2 -2
- package/dist/toggletip/toggletip-header.d.ts +2 -2
- package/dist/toggletip/toggletip-header2.js +2 -2
- package/dist/toggletip/toggletip.d.ts +6 -5
- package/dist/toggletip/toggletip2.js +2 -2
- package/dist/toolbar/define.d.ts +1 -1
- package/dist/toolbar/toolbar.d.ts +5 -4
- package/dist/toolbar/toolbar2.js +2 -2
- package/dist/toolbar/toolbar2.js.map +1 -1
- package/dist/tooltip/define.d.ts +1 -1
- package/dist/tooltip/tooltip.d.ts +4 -3
- package/dist/tooltip/tooltip2.js +2 -2
- package/dist/tree/define.d.ts +1 -1
- package/dist/tree/tree-node.d.ts +6 -6
- package/dist/tree/tree-node2.js +2 -2
- package/dist/tree/tree-node2.js.map +1 -1
- package/dist/tree/tree.d.ts +5 -4
- package/dist/tree/tree2.js +2 -2
- package/dist/tree/tree2.js.map +1 -1
- package/dist/week/define.d.ts +1 -1
- package/dist/week/week.d.ts +5 -5
- package/dist/week/week2.js +2 -2
- package/package.json +21 -9
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { I18nController as e } from "../internal/controllers/i18n.controller.js";
|
|
2
|
+
import { attachInternals as t } from "../internal/utils/a11y.js";
|
|
3
|
+
import { useStyles as n } from "../internal/styles/index.js";
|
|
4
|
+
import r from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
5
|
+
import i from "./gauge.js";
|
|
6
|
+
import { LitElement as a, html as o } from "lit";
|
|
7
|
+
import { property as s } from "lit/decorators/property.js";
|
|
8
|
+
import { styleMap as c } from "lit/directives/style-map.js";
|
|
9
|
+
//#region src/gauge/gauge.ts
|
|
10
|
+
var l = 200, u = 100 / 110.93, d = {
|
|
11
|
+
default: {
|
|
12
|
+
center: 64,
|
|
13
|
+
path: "M 27.23 100.77 A 52 52 0 1 1 100.77 100.77",
|
|
14
|
+
radius: 52,
|
|
15
|
+
start: {
|
|
16
|
+
x: 27.23,
|
|
17
|
+
y: 100.77
|
|
18
|
+
},
|
|
19
|
+
startAngle: 135,
|
|
20
|
+
sweepAngle: 270,
|
|
21
|
+
surfaceHeight: 128,
|
|
22
|
+
viewBox: "8.53 8.53 110.93 95.7"
|
|
23
|
+
},
|
|
24
|
+
half: {
|
|
25
|
+
center: 64,
|
|
26
|
+
path: "M 12 64 A 52 52 0 0 1 116 64",
|
|
27
|
+
radius: 52,
|
|
28
|
+
start: {
|
|
29
|
+
x: 12,
|
|
30
|
+
y: 64
|
|
31
|
+
},
|
|
32
|
+
startAngle: 180,
|
|
33
|
+
sweepAngle: 180,
|
|
34
|
+
surfaceHeight: 64,
|
|
35
|
+
viewBox: "8.53 8.53 110.93 58.93"
|
|
36
|
+
}
|
|
37
|
+
}, f = (e) => ({
|
|
38
|
+
"--_progress": e,
|
|
39
|
+
"--_dash-progress": `${e * u}cqw`,
|
|
40
|
+
"--_dash-gap": `${l * u}cqw`
|
|
41
|
+
}), p = (e, t, n) => ({
|
|
42
|
+
[`--_${e}-angle`]: `${t}deg`,
|
|
43
|
+
[`--_${e}-origin`]: `${n.center}px ${n.center}px`,
|
|
44
|
+
[`--_${e}-start-angle`]: `${n.startAngle}deg`
|
|
45
|
+
}), m = class extends a {
|
|
46
|
+
constructor(...t) {
|
|
47
|
+
super(...t), this.value = 0, this.max = 100, this.status = "neutral", this.thumb = "fill", this.#e = new e(this), this.i18n = this.#e.i18n;
|
|
48
|
+
}
|
|
49
|
+
static {
|
|
50
|
+
this.styles = n([i]);
|
|
51
|
+
}
|
|
52
|
+
static {
|
|
53
|
+
this.metadata = {
|
|
54
|
+
tag: "nve-gauge",
|
|
55
|
+
version: "2.1.0"
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
#e;
|
|
59
|
+
#t() {
|
|
60
|
+
let e = this.max, t = e !== void 0 && Number.isFinite(e) && e > 0 ? e : 100;
|
|
61
|
+
return {
|
|
62
|
+
value: Number.isFinite(this.value) ? Math.min(Math.max(this.value, 0), t) : 0,
|
|
63
|
+
max: t
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
render() {
|
|
67
|
+
let e = this.#r(), { value: t, max: n } = this.#t(), r = t / n * 100, i = this.#i(), a = this.#n(e, r), s = i === "fill", u = r > 0 && (i === "fill" || i === "dot");
|
|
68
|
+
return o`<div internal-host><svg viewBox="${e.viewBox}" role="presentation" aria-hidden="true"><defs><mask id="background-mask" maskUnits="userSpaceOnUse" x="0" y="0" width="128" height="${e.surfaceHeight}"><path pathLength="100" d="${e.path}" class="background"></path></mask><mask id="fill-mask" maskUnits="userSpaceOnUse" x="0" y="0" width="128" height="${e.surfaceHeight}"><path pathLength="100" d="${e.path}" class="gauge" ?empty="${r <= 0}" style="${c(f(r))}" stroke-dasharray="${`${r} ${l}`}"></path></mask></defs><foreignObject width="128" height="${e.surfaceHeight}" mask="url(#background-mask)"><div xmlns="http://www.w3.org/1999/xhtml" class="background-surface"></div></foreignObject><foreignObject class="fill-layer" width="128" height="${e.surfaceHeight}" mask="url(#fill-mask)" ?hidden="${!s}"><div xmlns="http://www.w3.org/1999/xhtml" class="fill-surface"></div></foreignObject><circle class="fill-dot-start" cx="${e.start.x}" cy="${e.start.y}" ?hidden="${!(s && r > 0)}"></circle><circle class="fill-dot-end" cx="${e.center + e.radius}" cy="${e.center}" ?hidden="${!u}" style="${c(p("dot", a, e))}"></circle><g class="needle" ?hidden="${i !== "needle"}" style="${c(p("needle", a, e))}"><line class="needle-line" x1="${e.center}" y1="${e.center}" x2="${e.center + 40}" y2="${e.center}"></line><circle class="needle-hub" cx="${e.center}" cy="${e.center}"></circle></g></svg><slot></slot></div>`;
|
|
69
|
+
}
|
|
70
|
+
connectedCallback() {
|
|
71
|
+
super.connectedCallback(), t(this), this._internals.role = "progressbar";
|
|
72
|
+
}
|
|
73
|
+
updated(e) {
|
|
74
|
+
super.updated(e);
|
|
75
|
+
let { value: t, max: n } = this.#t();
|
|
76
|
+
this._internals.ariaValueNow = `${t}`, this._internals.ariaValueMax = `${n}`;
|
|
77
|
+
let { status: r } = this, i = r !== void 0 && r !== "neutral" && r !== "accent" ? this.i18n[r] : void 0;
|
|
78
|
+
this._internals.ariaLabel = i ?? this.i18n.information ?? null;
|
|
79
|
+
}
|
|
80
|
+
#n(e, t) {
|
|
81
|
+
return e.startAngle + e.sweepAngle * (t / 100);
|
|
82
|
+
}
|
|
83
|
+
#r() {
|
|
84
|
+
return this.shape === "half" ? d.half : d.default;
|
|
85
|
+
}
|
|
86
|
+
#i() {
|
|
87
|
+
return this.thumb === "dot" || this.thumb === "needle" ? this.thumb : "fill";
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
r([s({ type: Number })], m.prototype, "value", void 0), r([s({ type: Number })], m.prototype, "max", void 0), r([s({
|
|
91
|
+
type: String,
|
|
92
|
+
reflect: !0
|
|
93
|
+
})], m.prototype, "status", void 0), r([s({
|
|
94
|
+
type: String,
|
|
95
|
+
reflect: !0
|
|
96
|
+
})], m.prototype, "shape", void 0), r([s({
|
|
97
|
+
type: String,
|
|
98
|
+
reflect: !0
|
|
99
|
+
})], m.prototype, "thumb", void 0), r([s({
|
|
100
|
+
type: String,
|
|
101
|
+
reflect: !0
|
|
102
|
+
})], m.prototype, "size", void 0), r([s({ type: Object })], m.prototype, "i18n", void 0);
|
|
103
|
+
//#endregion
|
|
104
|
+
export { m as Gauge };
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=gauge2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge2.js","names":["#i18nController","#geometry","#normalizedValues","#normalizedThumb","#angleAtProgress"],"sources":["../../src/gauge/gauge.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 { property } from 'lit/decorators/property.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport type { Size, SupportStatus } from '@nvidia-elements/core/internal';\nimport { attachInternals, I18nController, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './gauge.css?inline';\n\nconst GAUGE_DASH_GAP = 200;\nconst GAUGE_DASH_SCALE = 100 / 110.93;\n\nconst GAUGE_GEOMETRY = {\n default: {\n center: 64,\n path: 'M 27.23 100.77 A 52 52 0 1 1 100.77 100.77',\n radius: 52,\n start: { x: 27.23, y: 100.77 },\n startAngle: 135,\n sweepAngle: 270,\n surfaceHeight: 128,\n viewBox: '8.53 8.53 110.93 95.7'\n },\n half: {\n center: 64,\n path: 'M 12 64 A 52 52 0 0 1 116 64',\n radius: 52,\n start: { x: 12, y: 64 },\n startAngle: 180,\n sweepAngle: 180,\n surfaceHeight: 64,\n viewBox: '8.53 8.53 110.93 58.93'\n }\n} as const;\n\ntype GaugeGeometry = (typeof GAUGE_GEOMETRY)[keyof typeof GAUGE_GEOMETRY];\n\nconst fillMaskStyle = (progress: number) => ({\n '--_progress': progress,\n '--_dash-progress': `${progress * GAUGE_DASH_SCALE}cqw`,\n '--_dash-gap': `${GAUGE_DASH_GAP * GAUGE_DASH_SCALE}cqw`\n});\n\nconst thumbStyle = (thumb: 'dot' | 'needle', progressAngle: number, geometry: GaugeGeometry) => ({\n [`--_${thumb}-angle`]: `${progressAngle}deg`,\n [`--_${thumb}-origin`]: `${geometry.center}px ${geometry.center}px`,\n [`--_${thumb}-start-angle`]: `${geometry.startAngle}deg`\n});\n\n/**\n * @element nve-gauge\n * @description Use a gauge to show system resource usage.\n * @since 2.0.4\n * @entrypoint \\@nvidia-elements/core/gauge\n * @slot - Content to display in the gauge center.\n * @cssprop --track-width\n * @cssprop --accent-color\n * @cssprop --background\n * @cssprop --needle-background\n * @cssprop --track-background\n * @cssprop --thumb-background\n * @cssprop --color\n * @cssprop --width\n * @cssprop --height\n * @cssprop --font-size\n * @cssprop --gap\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n * @stable false\n */\nexport class Gauge extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-gauge',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** The current `value` of the gauge. */\n @property({ type: Number }) value = 0;\n\n /** The `max` value of the gauge that the `value` is proportionally scaled to. */\n @property({ type: Number }) max? = 100;\n\n /** Four visual treatments represent the `status` of tasks. */\n @property({ type: String, reflect: true }) status?: SupportStatus | 'neutral' = 'neutral';\n\n /** Determines the gauge shape. Set `half` for a compact semi-circular arc. */\n @property({ type: String, reflect: true }) shape?: 'half';\n\n /** Controls the value indicator. Set `dot` for only the end dot or `needle` for a pointer. */\n @property({ type: String, reflect: true }) thumb: 'fill' | 'dot' | 'needle' = 'fill';\n\n /** T-shirt `size` of the gauge. */\n @property({ type: String, reflect: true }) size?: Size;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #normalizedValues() {\n const sourceMax = this.max;\n const max = sourceMax !== undefined && Number.isFinite(sourceMax) && sourceMax > 0 ? sourceMax : 100;\n const value = Number.isFinite(this.value) ? Math.min(Math.max(this.value, 0), max) : 0;\n return { value, max };\n }\n\n render() {\n const geometry = this.#geometry();\n const { value, max } = this.#normalizedValues();\n const progress = (value / max) * 100;\n const thumb = this.#normalizedThumb();\n const progressAngle = this.#angleAtProgress(geometry, progress);\n const showFill = thumb === 'fill';\n const showDot = progress > 0 && (thumb === 'fill' || thumb === 'dot');\n\n return html`\n <div internal-host>\n <svg viewBox=${geometry.viewBox} role=\"presentation\" aria-hidden=\"true\">\n <defs>\n <mask id=\"background-mask\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"128\" height=${geometry.surfaceHeight}>\n <path pathLength=\"100\" d=${geometry.path} class=\"background\"></path>\n </mask>\n <mask id=\"fill-mask\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"128\" height=${geometry.surfaceHeight}>\n <path pathLength=\"100\" d=${geometry.path} class=\"gauge\"\n ?empty=${progress <= 0}\n style=${styleMap(fillMaskStyle(progress))}\n stroke-dasharray=${`${progress} ${GAUGE_DASH_GAP}`}>\n </path>\n </mask>\n </defs>\n <foreignObject width=\"128\" height=${geometry.surfaceHeight} mask=\"url(#background-mask)\">\n <div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"background-surface\"></div>\n </foreignObject>\n <foreignObject class=\"fill-layer\" width=\"128\" height=${geometry.surfaceHeight} mask=\"url(#fill-mask)\" ?hidden=${!showFill}>\n <div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"fill-surface\"></div>\n </foreignObject>\n <circle class=\"fill-dot-start\" cx=${geometry.start.x} cy=${geometry.start.y} ?hidden=${!(showFill && progress > 0)}></circle>\n <circle class=\"fill-dot-end\" cx=${geometry.center + geometry.radius} cy=${geometry.center}\n ?hidden=${!showDot}\n style=${styleMap(thumbStyle('dot', progressAngle, geometry))}>\n </circle>\n <g class=\"needle\"\n ?hidden=${thumb !== 'needle'}\n style=${styleMap(thumbStyle('needle', progressAngle, geometry))}>\n <line class=\"needle-line\" x1=${geometry.center} y1=${geometry.center} x2=${geometry.center + 40} y2=${geometry.center}></line>\n <circle class=\"needle-hub\" cx=${geometry.center} cy=${geometry.center}></circle>\n </g>\n </svg>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'progressbar';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n const { value, max } = this.#normalizedValues();\n this._internals.ariaValueNow = `${value}`;\n this._internals.ariaValueMax = `${max}`;\n const { status } = this;\n const statusLabel =\n status !== undefined && status !== 'neutral' && status !== 'accent' ? this.i18n[status] : undefined;\n this._internals.ariaLabel = statusLabel ?? this.i18n.information ?? null;\n }\n\n #angleAtProgress(geometry: GaugeGeometry, progress: number) {\n return geometry.startAngle + geometry.sweepAngle * (progress / 100);\n }\n\n #geometry() {\n return this.shape === 'half' ? GAUGE_GEOMETRY.half : GAUGE_GEOMETRY.default;\n }\n\n #normalizedThumb() {\n return this.thumb === 'dot' || this.thumb === 'needle' ? this.thumb : 'fill';\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './gauge.js';
|
package/dist/grid/cell/cell.d.ts
CHANGED
|
@@ -19,13 +19,13 @@ import { LitElement } from 'lit';
|
|
|
19
19
|
* @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/
|
|
20
20
|
*/
|
|
21
21
|
export declare class GridCell extends LitElement {
|
|
22
|
-
static styles: import(
|
|
22
|
+
static styles: import("lit").CSSResult[];
|
|
23
23
|
static readonly metadata: {
|
|
24
24
|
tag: string;
|
|
25
25
|
version: string;
|
|
26
26
|
};
|
|
27
27
|
/** @private */
|
|
28
28
|
_internals: ElementInternals;
|
|
29
|
-
render(): import(
|
|
29
|
+
render(): import("lit").TemplateResult<1>;
|
|
30
30
|
connectedCallback(): void;
|
|
31
31
|
}
|
package/dist/grid/cell/cell2.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PropertyValues
|
|
1
|
+
import type { PropertyValues } from 'lit';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
2
3
|
/**
|
|
3
4
|
* @element nve-grid-column
|
|
4
5
|
* @description Defines a column header within a grid, specifying the column's label, width, and alignment for all cells beneath it.
|
|
@@ -39,14 +40,14 @@ export declare class GridColumn extends LitElement {
|
|
|
39
40
|
* @private
|
|
40
41
|
*/
|
|
41
42
|
ariaColIndex: string;
|
|
42
|
-
static styles: import(
|
|
43
|
+
static styles: import("lit").CSSResult[];
|
|
43
44
|
static readonly metadata: {
|
|
44
45
|
tag: string;
|
|
45
46
|
version: string;
|
|
46
47
|
};
|
|
47
48
|
/** @private */
|
|
48
49
|
_internals: ElementInternals;
|
|
49
|
-
render(): import(
|
|
50
|
+
render(): import("lit").TemplateResult<1>;
|
|
50
51
|
connectedCallback(): void;
|
|
51
52
|
disconnectedCallback(): void;
|
|
52
53
|
willUpdate(props: PropertyValues<this>): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendRootNodeStyle as e } from "../../internal/utils/dom.js";
|
|
2
2
|
import { attachInternals as t } from "../../internal/utils/a11y.js";
|
|
3
3
|
import { useStyles as n } from "../../internal/styles/index.js";
|
|
4
|
-
import
|
|
4
|
+
import r from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
5
5
|
import i from "./column.js";
|
|
6
6
|
import { LitElement as a, html as o } from "lit";
|
|
7
7
|
import { property as s } from "lit/decorators/property.js";
|
|
@@ -13,7 +13,7 @@ var c = class r extends a {
|
|
|
13
13
|
static {
|
|
14
14
|
this.metadata = {
|
|
15
15
|
tag: "nve-grid-column",
|
|
16
|
-
version: "2.0
|
|
16
|
+
version: "2.1.0"
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
get #e() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column2.js","names":["#grid","#onSort","#computeColumnAlignment","#computeColumnPositions","#positionStylesheet","#buildFixedStyles","#buildBorderStyle"],"sources":["../../../src/grid/column/column.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 { property } from 'lit/decorators/property.js';\nimport { useStyles, attachInternals, appendRootNodeStyle } from '@nvidia-elements/core/internal';\nimport type { Grid } from '@nvidia-elements/core/grid';\nimport styles from './column.css?inline';\n\n/**\n * @element nve-grid-column\n * @description Defines a column header within a grid, specifying the column's label, width, and alignment for all cells beneath it.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @slot actions - slot for column actions\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --font-weight\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --min-width\n * @cssprop --justify-content\n * @cssprop --border-left\n * @cssprop --border-right\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridColumn extends LitElement {\n /**\n * Only set a fixed px width when you know the grid width. Most cases this should remain unset.\n * If the total width of all columns is less than the grid width then the last column fills the remaining space.\n * By default column widths are evenly divided unless width is explicitly provided.\n */\n @property({ type: String, reflect: true }) width: string;\n\n /**\n * Set the `position` property or attribute to `fixed` or `sticky` to make the column fixed or sticky.\n * Fixed columns do not scroll horizontally with the grid. Sticky columns scroll horizontally with the grid\n * until the column reaches the edge of the grid.\n */\n @property({ type: String, reflect: true }) position: 'fixed' | 'sticky' | '';\n\n /**\n * Control the content alignment within a given column.\n */\n @property({ type: String, reflect: true, attribute: 'column-align' }) columnAlign: 'start' | 'center' | 'end';\n\n /**\n * @private\n */\n @property({ type: String, reflect: true, attribute: 'aria-colindex' }) ariaColIndex: string; // eslint-disable-line local/reserved-property-names\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-column',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #grid() {\n return this.parentElement!.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host focusable=\"active\">\n <slot></slot>\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'columnheader';\n this.addEventListener('sort', this.#onSort);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('sort', this.#onSort);\n }\n\n #onSort = (e: Event) => {\n this.ariaSort = (e as CustomEvent<{ next: string }>).detail.next;\n };\n\n willUpdate(props: PropertyValues<this>) {\n if (props.has('width') && this.width && Number.isFinite(Number(this.width))) {\n this.width = `${this.width}px`; // eslint-disable-line local/stateless-property\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n\n if (props.get('columnAlign') !== this.columnAlign) {\n this.#computeColumnAlignment();\n }\n\n if (props.get('position') !== this.position) {\n this.#computeColumnPositions();\n }\n\n if (props.get('ariaColIndex') !== this.ariaColIndex) {\n this.#computeColumnPositions();\n this.#computeColumnAlignment();\n }\n\n if (props.get('width') !== this.width) {\n this.dispatchEvent(new CustomEvent('nve-grid-column-resize', { bubbles: true, composed: true }));\n }\n }\n\n #positionStylesheet: CSSStyleSheet;\n\n #computeColumnPositions() {\n if (this.position !== 'fixed') {\n this.removeAttribute('left');\n this.removeAttribute('right');\n this.#positionStylesheet?.replaceSync('');\n return;\n }\n\n const { side, positionStyle, borderStyle } = this.#buildFixedStyles();\n const combinedStyle = `${positionStyle}\\n${borderStyle}`;\n\n if (this.#positionStylesheet) {\n this.#positionStylesheet.replaceSync(combinedStyle);\n } else {\n this.#positionStylesheet = appendRootNodeStyle(this.#grid, combinedStyle);\n }\n\n this.setAttribute(side, '');\n }\n\n #buildFixedStyles() {\n const columns = Array.from(this.parentElement!.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n const rightColumns = columns.slice(columns.indexOf(this) + 1, columns.length);\n const position = this.getBoundingClientRect();\n const gridPosition = this.#grid.getBoundingClientRect();\n const side = this.offsetLeft < gridPosition.width / 2 ? 'left' : 'right';\n const leftStyle = position.left - gridPosition.left;\n const rightStyle = rightColumns.reduce((width, c) => width + c.getBoundingClientRect().width, 0);\n const selector = `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex})`;\n\n const positionStyle = `\n ${selector} {\n position: sticky;\n z-index: 99;\n ${side === 'left' ? `left: ${leftStyle}px;` : `right: ${rightStyle}px;`}\n }\n `;\n\n const borderStyle = this.#buildBorderStyle(selector, side);\n return { side, positionStyle, borderStyle };\n }\n\n #buildBorderStyle(selector: string, side: 'left' | 'right') {\n const isLastLeft = side === 'left' && (this.nextElementSibling as GridColumn)?.position !== this.position;\n const isLastRight = side === 'right' && (this.previousElementSibling as GridColumn)?.position !== this.position;\n\n if (!isLastLeft && !isLastRight) {\n return '';\n }\n\n return `\n ${selector} {\n box-shadow: var(--scroll-shadow);\n clip-path: inset(0px ${isLastLeft ? '-4px' : '0'} 0px ${isLastRight ? '-4px' : '0'});\n --border-${side === 'right' ? 'left' : 'right'}: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n }\n `;\n }\n\n #computeColumnAlignment() {\n if (this.columnAlign !== undefined) {\n appendRootNodeStyle(\n this.#grid,\n `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex}) {\n --justify-content: ${this.columnAlign}\n }`\n );\n }\n }\n}\n"],"mappings":";;;;;;;;AA4BA,IAAa,IAAb,MAAa,UAAmB,EAAW;;gBAyBzB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;CAKA,IAAIA,KAAQ;EACV,OAAO,KAAK,cAAe;CAC7B;CAEA,SAAS;EACP,OAAO,CAAI;CAMb;CAEA,oBAAoB;EAIlB,AAHA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,gBACvB,KAAK,iBAAiB,QAAQ,KAAKC,EAAO;CAC5C;CAEA,uBAAuB;EAErB,AADA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,QAAQ,KAAKA,EAAO;CAC/C;CAEA,MAAW,MAAa;EACtB,KAAK,WAAY,EAAoC,OAAO;CAC9D;CAEA,WAAW,GAA6B;EACtC,AAAI,EAAM,IAAI,OAAO,KAAK,KAAK,SAAS,OAAO,SAAS,OAAO,KAAK,KAAK,CAAC,MACxE,KAAK,QAAQ,GAAG,KAAK,MAAM;CAE/B;CAEA,MAAM,QAAQ,GAA6B;EAgBzC,AAfA,MAAM,QAAQ,CAAK,GAEf,EAAM,IAAI,aAAa,MAAM,KAAK,eACpC,KAAKC,GAAwB,GAG3B,EAAM,IAAI,UAAU,MAAM,KAAK,YACjC,KAAKC,GAAwB,GAG3B,EAAM,IAAI,cAAc,MAAM,KAAK,iBACrC,KAAKA,GAAwB,GAC7B,KAAKD,GAAwB,IAG3B,EAAM,IAAI,OAAO,MAAM,KAAK,SAC9B,KAAK,cAAc,IAAI,YAAY,0BAA0B;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CAEnG;CAEA;CAEA,KAA0B;EACxB,IAAI,KAAK,aAAa,SAAS;GAG7B,AAFA,KAAK,gBAAgB,MAAM,GAC3B,KAAK,gBAAgB,OAAO,GAC5B,KAAKE,IAAqB,YAAY,EAAE;GACxC;EACF;EAEA,IAAM,EAAE,SAAM,kBAAe,mBAAgB,KAAKC,GAAkB,GAC9D,IAAgB,GAAG,EAAc,IAAI;EAQ3C,AANI,KAAKD,KACP,KAAKA,GAAoB,YAAY,CAAa,IAElD,KAAKA,KAAsB,EAAoB,KAAKJ,IAAO,CAAa,GAG1E,KAAK,aAAa,GAAM,EAAE;CAC5B;CAEA,KAAoB;EAClB,IAAM,IAAU,MAAM,KAAK,KAAK,cAAe,iBAA6B,EAAW,SAAS,GAAG,CAAC,GAC9F,IAAe,EAAQ,MAAM,EAAQ,QAAQ,IAAI,IAAI,GAAG,EAAQ,MAAM,GACtE,IAAW,KAAK,sBAAsB,GACtC,IAAe,KAAKA,GAAM,sBAAsB,GAChD,IAAO,KAAK,aAAa,EAAa,QAAQ,IAAI,SAAS,SAC3D,IAAY,EAAS,OAAO,EAAa,MACzC,IAAa,EAAa,QAAQ,GAAO,MAAM,IAAQ,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"column2.js","names":["#grid","#onSort","#computeColumnAlignment","#computeColumnPositions","#positionStylesheet","#buildFixedStyles","#buildBorderStyle"],"sources":["../../../src/grid/column/column.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 { property } from 'lit/decorators/property.js';\nimport { useStyles, attachInternals, appendRootNodeStyle } from '@nvidia-elements/core/internal';\nimport type { Grid } from '@nvidia-elements/core/grid';\nimport styles from './column.css?inline';\n\n/**\n * @element nve-grid-column\n * @description Defines a column header within a grid, specifying the column's label, width, and alignment for all cells beneath it.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @slot actions - slot for column actions\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --font-weight\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --min-width\n * @cssprop --justify-content\n * @cssprop --border-left\n * @cssprop --border-right\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridColumn extends LitElement {\n /**\n * Only set a fixed px width when you know the grid width. Most cases this should remain unset.\n * If the total width of all columns is less than the grid width then the last column fills the remaining space.\n * By default column widths are evenly divided unless width is explicitly provided.\n */\n @property({ type: String, reflect: true }) width: string;\n\n /**\n * Set the `position` property or attribute to `fixed` or `sticky` to make the column fixed or sticky.\n * Fixed columns do not scroll horizontally with the grid. Sticky columns scroll horizontally with the grid\n * until the column reaches the edge of the grid.\n */\n @property({ type: String, reflect: true }) position: 'fixed' | 'sticky' | '';\n\n /**\n * Control the content alignment within a given column.\n */\n @property({ type: String, reflect: true, attribute: 'column-align' }) columnAlign: 'start' | 'center' | 'end';\n\n /**\n * @private\n */\n @property({ type: String, reflect: true, attribute: 'aria-colindex' }) ariaColIndex: string; // eslint-disable-line local/reserved-property-names\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-column',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #grid() {\n return this.parentElement!.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host focusable=\"active\">\n <slot></slot>\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'columnheader';\n this.addEventListener('sort', this.#onSort);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('sort', this.#onSort);\n }\n\n #onSort = (e: Event) => {\n this.ariaSort = (e as CustomEvent<{ next: string }>).detail.next;\n };\n\n willUpdate(props: PropertyValues<this>) {\n if (props.has('width') && this.width && Number.isFinite(Number(this.width))) {\n this.width = `${this.width}px`; // eslint-disable-line local/stateless-property\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n\n if (props.get('columnAlign') !== this.columnAlign) {\n this.#computeColumnAlignment();\n }\n\n if (props.get('position') !== this.position) {\n this.#computeColumnPositions();\n }\n\n if (props.get('ariaColIndex') !== this.ariaColIndex) {\n this.#computeColumnPositions();\n this.#computeColumnAlignment();\n }\n\n if (props.get('width') !== this.width) {\n this.dispatchEvent(new CustomEvent('nve-grid-column-resize', { bubbles: true, composed: true }));\n }\n }\n\n #positionStylesheet: CSSStyleSheet;\n\n #computeColumnPositions() {\n if (this.position !== 'fixed') {\n this.removeAttribute('left');\n this.removeAttribute('right');\n this.#positionStylesheet?.replaceSync('');\n return;\n }\n\n const { side, positionStyle, borderStyle } = this.#buildFixedStyles();\n const combinedStyle = `${positionStyle}\\n${borderStyle}`;\n\n if (this.#positionStylesheet) {\n this.#positionStylesheet.replaceSync(combinedStyle);\n } else {\n this.#positionStylesheet = appendRootNodeStyle(this.#grid, combinedStyle);\n }\n\n this.setAttribute(side, '');\n }\n\n #buildFixedStyles() {\n const columns = Array.from(this.parentElement!.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n const rightColumns = columns.slice(columns.indexOf(this) + 1, columns.length);\n const position = this.getBoundingClientRect();\n const gridPosition = this.#grid.getBoundingClientRect();\n const side = this.offsetLeft < gridPosition.width / 2 ? 'left' : 'right';\n const leftStyle = position.left - gridPosition.left;\n const rightStyle = rightColumns.reduce((width, c) => width + c.getBoundingClientRect().width, 0);\n const selector = `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex})`;\n\n const positionStyle = `\n ${selector} {\n position: sticky;\n z-index: 99;\n ${side === 'left' ? `left: ${leftStyle}px;` : `right: ${rightStyle}px;`}\n }\n `;\n\n const borderStyle = this.#buildBorderStyle(selector, side);\n return { side, positionStyle, borderStyle };\n }\n\n #buildBorderStyle(selector: string, side: 'left' | 'right') {\n const isLastLeft = side === 'left' && (this.nextElementSibling as GridColumn)?.position !== this.position;\n const isLastRight = side === 'right' && (this.previousElementSibling as GridColumn)?.position !== this.position;\n\n if (!isLastLeft && !isLastRight) {\n return '';\n }\n\n return `\n ${selector} {\n box-shadow: var(--scroll-shadow);\n clip-path: inset(0px ${isLastLeft ? '-4px' : '0'} 0px ${isLastRight ? '-4px' : '0'});\n --border-${side === 'right' ? 'left' : 'right'}: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n }\n `;\n }\n\n #computeColumnAlignment() {\n if (this.columnAlign !== undefined) {\n appendRootNodeStyle(\n this.#grid,\n `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex}) {\n --justify-content: ${this.columnAlign}\n }`\n );\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/grid/define.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Grid, GridColumn, GridRow, GridCell, GridFooter, GridHeader, GridPlaceholder } from '
|
|
1
|
+
import { Grid, GridColumn, GridRow, GridCell, GridFooter, GridHeader, GridPlaceholder } from '@nvidia-elements/core/grid';
|
|
2
2
|
declare global {
|
|
3
3
|
interface HTMLElementTagNameMap {
|
|
4
4
|
'nve-grid': Grid;
|
|
@@ -12,7 +12,7 @@ import { LitElement } from 'lit';
|
|
|
12
12
|
* @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/
|
|
13
13
|
*/
|
|
14
14
|
export declare class GridFooter extends LitElement {
|
|
15
|
-
static styles: import(
|
|
15
|
+
static styles: import("lit").CSSResult[];
|
|
16
16
|
static readonly metadata: {
|
|
17
17
|
tag: string;
|
|
18
18
|
version: string;
|
|
@@ -21,6 +21,6 @@ export declare class GridFooter extends LitElement {
|
|
|
21
21
|
/** @private */
|
|
22
22
|
_internals: ElementInternals;
|
|
23
23
|
slot: string;
|
|
24
|
-
render(): import(
|
|
24
|
+
render(): import("lit").TemplateResult<1>;
|
|
25
25
|
connectedCallback(): void;
|
|
26
26
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { attachInternals as e } from "../../internal/utils/a11y.js";
|
|
2
2
|
import { hostAttr as t } from "../../internal/decorators/host-attr.js";
|
|
3
3
|
import { useStyles as n } from "../../internal/styles/index.js";
|
|
4
|
-
import
|
|
4
|
+
import r from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
5
5
|
import i from "./footer.js";
|
|
6
6
|
import { LitElement as a, html as o } from "lit";
|
|
7
7
|
//#region src/grid/footer/footer.ts
|
|
@@ -15,7 +15,7 @@ var s = class extends a {
|
|
|
15
15
|
static {
|
|
16
16
|
this.metadata = {
|
|
17
17
|
tag: "nve-grid-footer",
|
|
18
|
-
version: "2.0
|
|
18
|
+
version: "2.1.0"
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
static {
|
package/dist/grid/grid.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
import { ContainerElement
|
|
2
|
+
import type { ContainerElement } from '@nvidia-elements/core/internal';
|
|
3
|
+
import { type StateScrollConfig } from '@nvidia-elements/core/internal';
|
|
3
4
|
import { GridHeader } from './header/header.js';
|
|
4
5
|
import { GridColumn } from './column/column.js';
|
|
5
6
|
import { GridRow } from './row/row.js';
|
|
@@ -31,7 +32,7 @@ export declare class Grid extends LitElement implements ContainerElement {
|
|
|
31
32
|
* Determine style variant stripe rows
|
|
32
33
|
*/
|
|
33
34
|
stripe: boolean;
|
|
34
|
-
static styles: import(
|
|
35
|
+
static styles: import("lit").CSSResult[];
|
|
35
36
|
static readonly metadata: {
|
|
36
37
|
tag: string;
|
|
37
38
|
version: string;
|
|
@@ -40,13 +41,13 @@ export declare class Grid extends LitElement implements ContainerElement {
|
|
|
40
41
|
static elementDefinitions: {};
|
|
41
42
|
get keynavGridConfig(): {
|
|
42
43
|
columns: GridColumn[];
|
|
43
|
-
rows: (
|
|
44
|
-
cells: (
|
|
44
|
+
rows: (GridHeader | GridRow)[];
|
|
45
|
+
cells: (GridCell | GridColumn)[];
|
|
45
46
|
};
|
|
46
47
|
get stateScrollConfig(): StateScrollConfig;
|
|
47
48
|
/** @private */
|
|
48
49
|
_internals: ElementInternals;
|
|
49
|
-
render(): import(
|
|
50
|
+
render(): import("lit").TemplateResult<1>;
|
|
50
51
|
connectedCallback(): void;
|
|
51
52
|
/**
|
|
52
53
|
* Scroll to a specific position in the grid.
|
package/dist/grid/grid2.js
CHANGED
|
@@ -4,7 +4,7 @@ import { keyNavigationGrid as r } from "../internal/controllers/keynav-grid.cont
|
|
|
4
4
|
import { attachInternals as i } from "../internal/utils/a11y.js";
|
|
5
5
|
import { stateScroll as a } from "../internal/controllers/state-scroll.controller.js";
|
|
6
6
|
import { useStyles as o } from "../internal/styles/index.js";
|
|
7
|
-
import
|
|
7
|
+
import s from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
8
8
|
import { GridPlaceholder as c } from "./placeholder/placeholder2.js";
|
|
9
9
|
import { GridColumn as l } from "./column/column2.js";
|
|
10
10
|
import { GridCell as u } from "./cell/cell2.js";
|
|
@@ -23,7 +23,7 @@ var y = class extends g {
|
|
|
23
23
|
static {
|
|
24
24
|
this.metadata = {
|
|
25
25
|
tag: "nve-grid",
|
|
26
|
-
version: "2.0
|
|
26
|
+
version: "2.1.0",
|
|
27
27
|
children: [
|
|
28
28
|
d.metadata.tag,
|
|
29
29
|
f.metadata.tag,
|
package/dist/grid/grid2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid2.js","names":["#columns","#header","#rows","#cells"],"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 useStyles,\n attachInternals,\n appendRootNodeStyle,\n generateId,\n audit\n} from '@nvidia-elements/core/internal';\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 * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\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 get keynavGridConfig() {\n return {\n columns: this.#columns,\n rows: [this.#header!, ...this.#rows],\n cells: [...this.#columns, ...this.#cells]\n };\n }\n\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":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAmB,EAAuC;;gBAW/C,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC,EAAQ,SAAS;IAAK,EAAW,SAAS;IAAK,EAAW,SAAS;IAAK,EAAgB,SAAS;GAAG;EACjH;;;4BAE4B,CAAC;;CAE7B,IAAI,mBAAmB;EACrB,OAAO;GACL,SAAS,KAAKA;GACd,MAAM,CAAC,KAAKC,IAAU,GAAG,KAAKC,EAAK;GACnC,OAAO,CAAC,GAAG,KAAKF,IAAU,GAAG,KAAKG,EAAM;EAC1C;CACF;CAEA,IAAI,oBAAuC;EACzC,OAAO,EACL,QAAQ,KAAK,YAAY,cAA2B,uBAAqB,KAAK,KAAA,EAChF;CACF;CAEA,IAAID,KAAQ;EACV,OAAO,MAAM,KAAK,KAAK,iBAA0B,EAAQ,SAAS,GAAG,CAAC;CACxE;CAEA,IAAID,KAAU;EACZ,OAAO,KAAK,cAA0B,EAAW,SAAS,GAAG;CAC/D;CAEA,IAAID,KAAW;EACb,OAAO,MAAM,KAAK,KAAK,iBAA6B,EAAW,SAAS,GAAG,CAAC;CAC9E;CAEA,IAAIG,KAAS;EACX,OAAO,MAAM,KAAK,KAAK,iBAA2B,EAAS,SAAS,GAAG,CAAC;CAC1E;CAKA,SAAS;EACP,OAAO,CAAI;CAQb;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,QACvB,KAAK,OAAO,EAAW,GACvB,EAAoB,MAAM,CAAY;CACxC;CAOA,MAAM,SAAS,GAAG,GAA2E;EAC3F,MAAM,KAAK,WAAY,cAAc,uBAAqB,
|
|
1
|
+
{"version":3,"file":"grid2.js","names":["#columns","#header","#rows","#cells"],"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 useStyles,\n attachInternals,\n appendRootNodeStyle,\n generateId,\n audit\n} from '@nvidia-elements/core/internal';\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 * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\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 get keynavGridConfig() {\n return {\n columns: this.#columns,\n rows: [this.#header!, ...this.#rows],\n cells: [...this.#columns, ...this.#cells]\n };\n }\n\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":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAmB,EAAuC;;gBAW/C,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC,EAAQ,SAAS;IAAK,EAAW,SAAS;IAAK,EAAW,SAAS;IAAK,EAAgB,SAAS;GAAG;EACjH;;;4BAE4B,CAAC;;CAE7B,IAAI,mBAAmB;EACrB,OAAO;GACL,SAAS,KAAKA;GACd,MAAM,CAAC,KAAKC,IAAU,GAAG,KAAKC,EAAK;GACnC,OAAO,CAAC,GAAG,KAAKF,IAAU,GAAG,KAAKG,EAAM;EAC1C;CACF;CAEA,IAAI,oBAAuC;EACzC,OAAO,EACL,QAAQ,KAAK,YAAY,cAA2B,uBAAqB,KAAK,KAAA,EAChF;CACF;CAEA,IAAID,KAAQ;EACV,OAAO,MAAM,KAAK,KAAK,iBAA0B,EAAQ,SAAS,GAAG,CAAC;CACxE;CAEA,IAAID,KAAU;EACZ,OAAO,KAAK,cAA0B,EAAW,SAAS,GAAG;CAC/D;CAEA,IAAID,KAAW;EACb,OAAO,MAAM,KAAK,KAAK,iBAA6B,EAAW,SAAS,GAAG,CAAC;CAC9E;CAEA,IAAIG,KAAS;EACX,OAAO,MAAM,KAAK,KAAK,iBAA2B,EAAS,SAAS,GAAG,CAAC;CAC1E;CAKA,SAAS;EACP,OAAO,CAAI;CAQb;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,QACvB,KAAK,OAAO,EAAW,GACvB,EAAoB,MAAM,CAAY;CACxC;CAOA,MAAM,SAAS,GAAG,GAA2E;EAC3F,MAAM,KAAK,WAAY,cAAc,uBAAqB,CAAC,EAAE,SAAS,GAAI,CAA0B;CACtG;AACF;GA7EG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA;CAZ3C,EAAM;CACN,EAAkB;CAClB,EAAwB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PropertyValues
|
|
1
|
+
import type { PropertyValues } from 'lit';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
2
3
|
import { GridColumn } from '../column/column.js';
|
|
3
4
|
/**
|
|
4
5
|
* @element nve-grid-header
|
|
@@ -13,7 +14,7 @@ import { GridColumn } from '../column/column.js';
|
|
|
13
14
|
*/
|
|
14
15
|
export declare class GridHeader extends LitElement {
|
|
15
16
|
#private;
|
|
16
|
-
static styles: import(
|
|
17
|
+
static styles: import("lit").CSSResult[];
|
|
17
18
|
static readonly metadata: {
|
|
18
19
|
tag: string;
|
|
19
20
|
version: string;
|
|
@@ -23,7 +24,7 @@ export declare class GridHeader extends LitElement {
|
|
|
23
24
|
_internals: ElementInternals;
|
|
24
25
|
/** @private */
|
|
25
26
|
columns: GridColumn[];
|
|
26
|
-
render(): import(
|
|
27
|
+
render(): import("lit").TemplateResult<1>;
|
|
27
28
|
connectedCallback(): void;
|
|
28
29
|
disconnectedCallback(): void;
|
|
29
30
|
firstUpdated(props: PropertyValues<this>): Promise<void>;
|
|
@@ -4,7 +4,7 @@ import { debounce as n } from "../../internal/utils/events.js";
|
|
|
4
4
|
import { LogService as r } from "../../internal/services/log.service.js";
|
|
5
5
|
import { attachInternals as i } from "../../internal/utils/a11y.js";
|
|
6
6
|
import { useStyles as a } from "../../internal/styles/index.js";
|
|
7
|
-
import
|
|
7
|
+
import o from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
8
8
|
import s from "./header.js";
|
|
9
9
|
import { GridColumn as c } from "../column/column2.js";
|
|
10
10
|
import { GridCell as l } from "../cell/cell2.js";
|
|
@@ -19,7 +19,7 @@ var m = class extends d {
|
|
|
19
19
|
static {
|
|
20
20
|
this.metadata = {
|
|
21
21
|
tag: "nve-grid-header",
|
|
22
|
-
version: "2.0
|
|
22
|
+
version: "2.1.0",
|
|
23
23
|
children: [c.metadata.tag]
|
|
24
24
|
};
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header2.js","names":["#grid","#computeColumnWidths","#onColumnResize","#resizeObserver","#validateColumns"],"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 {\n useStyles,\n attachInternals,\n debounce,\n LogService,\n audit,\n GlobalStateService\n} from '@nvidia-elements/core/internal';\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 * @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":";;;;;;;;;;;;;;AAgCO,IAAA,IAAA,cAAyB,EAAW;;gBACzB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,EAAW,SAAS,GAAG;EACpC;;CAYA,IAAIA,KAAQ;EACV,OAAO,KAAK;CACd;CAEA,SAAS;EACP,OAAO,CAAI,+CAEmB,KAAKC,GAAqB,EAAE;CAG5D;CAEA,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,OACvB,KAAK,iBAAiB,0BAA0B,KAAKC,EAAe,GACpE,KAAKC,OAAoB,IAAI,eAAe,QAAe,KAAKF,GAAqB,GAAG,GAAG,CAAC,GAC5F,KAAKE,GAAgB,QAAQ,IAAI;CACnC;CAEA,uBAAuB;EAGrB,AAFA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,0BAA0B,KAAKD,EAAe,GACvE,KAAKC,IAAiB,WAAW;CACnC;CAEA,WAAwB;EACtB,KAAUF,GAAqB;CACjC;CAEA;CAEA,MAAM,aAAa,GAA6B;EAG9C,AAFA,MAAM,aAAa,CAAK,GACxB,MAAM,KAAK,gBACX,KAAKG,GAAiB;CACxB;CAEA,MAAMH,KAAuB;EAY3B,AAXA,MAAM,KAAK,gBACX,KAAK,QAAQ,SAAS,GAAG,MAAO,EAAE,eAAe,GAAG,IAAI,GAAI,GAC5D,KAAKD,GAAM,MAAM,YAAY,oBAAoB,SAAS,GAC1D,KAAKA,GAAM,MAAM,YAAY,0BAA0B,KAAK,QAAQ,KAAK,GAAG,MAAM,UAAU,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"header2.js","names":["#grid","#computeColumnWidths","#onColumnResize","#resizeObserver","#validateColumns"],"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 {\n useStyles,\n attachInternals,\n debounce,\n LogService,\n audit,\n GlobalStateService\n} from '@nvidia-elements/core/internal';\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 * @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":";;;;;;;;;;;;;;AAgCO,IAAA,IAAA,cAAyB,EAAW;;gBACzB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,EAAW,SAAS,GAAG;EACpC;;CAYA,IAAIA,KAAQ;EACV,OAAO,KAAK;CACd;CAEA,SAAS;EACP,OAAO,CAAI,+CAEmB,KAAKC,GAAqB,EAAE;CAG5D;CAEA,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,OACvB,KAAK,iBAAiB,0BAA0B,KAAKC,EAAe,GACpE,KAAKC,OAAoB,IAAI,eAAe,QAAe,KAAKF,GAAqB,GAAG,GAAG,CAAC,GAC5F,KAAKE,GAAgB,QAAQ,IAAI;CACnC;CAEA,uBAAuB;EAGrB,AAFA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,0BAA0B,KAAKD,EAAe,GACvE,KAAKC,IAAiB,WAAW;CACnC;CAEA,WAAwB;EACtB,KAAUF,GAAqB;CACjC;CAEA;CAEA,MAAM,aAAa,GAA6B;EAG9C,AAFA,MAAM,aAAa,CAAK,GACxB,MAAM,KAAK,gBACX,KAAKG,GAAiB;CACxB;CAEA,MAAMH,KAAuB;EAY3B,AAXA,MAAM,KAAK,gBACX,KAAK,QAAQ,SAAS,GAAG,MAAO,EAAE,eAAe,GAAG,IAAI,GAAI,GAC5D,KAAKD,GAAM,MAAM,YAAY,oBAAoB,SAAS,GAC1D,KAAKA,GAAM,MAAM,YAAY,0BAA0B,KAAK,QAAQ,KAAK,GAAG,MAAM,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAG3G,KAAK,QAAQ,SAAS,GAAG,MAAM,KAAKA,GAAM,MAAM,YAAY,MAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,CAAC,GAGjG,MAAM,KAAK,gBAEX,KADoB,QAAQ,KAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,MAAM,IAC1G,CAAA,CAAO,SAAS,GAAG,MAAM,KAAKA,GAAM,MAAM,YAAY,MAAM,KAAK,CAAC,CAAC;CACrE;CAEA,KAAmB;EACjB,IAAI,EAAmB,MAAM,QAAQ,cAAc;GACjD,IAAM,IAAQ,KAAKA,GAAM,cAAc,EAAQ,SAAS,GAAG,CAAC,EAAE,iBAAiB,EAAS,SAAS,GAAG;GACpG,AAAI,KAAK,WAAW,KAAS,KAAK,QAAQ,WAAW,EAAM,UACzD,EAAW,MAAM,gBAAgB,KAAK,QAAQ,OAAO,mBAAmB,EAAM,OAAO,iBAAiB;EAE1G;CACF;AACF;GApEG,EAAsB;CACrB,UAAU,EAAW,SAAS;CAC9B,SAAS;AACX,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,UAjBF,EAAM,CAAA,GAAA,CAAA"}
|
|
@@ -10,13 +10,13 @@ import { LitElement } from 'lit';
|
|
|
10
10
|
* @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/
|
|
11
11
|
*/
|
|
12
12
|
export declare class GridPlaceholder extends LitElement {
|
|
13
|
-
static styles: import(
|
|
13
|
+
static styles: import("lit").CSSResult[];
|
|
14
14
|
static readonly metadata: {
|
|
15
15
|
tag: string;
|
|
16
16
|
version: string;
|
|
17
17
|
};
|
|
18
18
|
/** @private */
|
|
19
19
|
_internals: ElementInternals;
|
|
20
|
-
render(): import(
|
|
20
|
+
render(): import("lit").TemplateResult<1>;
|
|
21
21
|
connectedCallback(): void;
|
|
22
22
|
}
|
package/dist/grid/row/row.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class GridRow extends LitElement {
|
|
|
14
14
|
* Setting the `selected` property or attribute to `true` shows the row in a selected state.
|
|
15
15
|
*/
|
|
16
16
|
selected: boolean;
|
|
17
|
-
static styles: import(
|
|
17
|
+
static styles: import("lit").CSSResult[];
|
|
18
18
|
static readonly metadata: {
|
|
19
19
|
tag: string;
|
|
20
20
|
version: string;
|
|
@@ -22,6 +22,6 @@ export declare class GridRow extends LitElement {
|
|
|
22
22
|
};
|
|
23
23
|
/** @private */
|
|
24
24
|
_internals: ElementInternals;
|
|
25
|
-
render(): import(
|
|
25
|
+
render(): import("lit").TemplateResult<1>;
|
|
26
26
|
connectedCallback(): void;
|
|
27
27
|
}
|
package/dist/grid/row/row2.js
CHANGED
|
@@ -2,7 +2,7 @@ import { audit as e } from "../../internal/controllers/audit.controller.js";
|
|
|
2
2
|
import { attachInternals as t } from "../../internal/utils/a11y.js";
|
|
3
3
|
import { stateSelected as n } from "../../internal/controllers/state-selected.controller.js";
|
|
4
4
|
import { useStyles as r } from "../../internal/styles/index.js";
|
|
5
|
-
import
|
|
5
|
+
import i from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
6
6
|
import { GridCell as a } from "../cell/cell2.js";
|
|
7
7
|
import o from "./row.js";
|
|
8
8
|
import { LitElement as s, html as c } from "lit";
|
|
@@ -15,7 +15,7 @@ var u = class extends s {
|
|
|
15
15
|
static {
|
|
16
16
|
this.metadata = {
|
|
17
17
|
tag: "nve-grid-row",
|
|
18
|
-
version: "2.0
|
|
18
|
+
version: "2.1.0",
|
|
19
19
|
children: [a.metadata.tag]
|
|
20
20
|
};
|
|
21
21
|
}
|
package/dist/icon/define.d.ts
CHANGED
package/dist/icon/icon.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { PropertyValues
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { PropertyValues } from 'lit';
|
|
2
|
+
import { LitElement } from 'lit';
|
|
3
|
+
import type { Size } from '@nvidia-elements/core/internal';
|
|
4
|
+
import type { IconName, IconSVG } from './icons.js';
|
|
4
5
|
export type { IconName, IconSVG } from './icons.js';
|
|
5
6
|
declare global {
|
|
6
7
|
var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;
|
|
@@ -35,7 +36,7 @@ export declare class Icon extends LitElement {
|
|
|
35
36
|
*/
|
|
36
37
|
name?: IconName;
|
|
37
38
|
private svg;
|
|
38
|
-
static styles: import(
|
|
39
|
+
static styles: import("lit").CSSResult[];
|
|
39
40
|
static readonly metadata: {
|
|
40
41
|
tag: string;
|
|
41
42
|
version: string;
|
|
@@ -48,7 +49,7 @@ export declare class Icon extends LitElement {
|
|
|
48
49
|
private static get registeredIcon();
|
|
49
50
|
/** @private */
|
|
50
51
|
_internals: ElementInternals;
|
|
51
|
-
render(): import(
|
|
52
|
+
render(): import("lit").TemplateResult<1>;
|
|
52
53
|
connectedCallback(): void;
|
|
53
54
|
disconnectedCallback(): void;
|
|
54
55
|
static add(icons: {
|
package/dist/icon/icon2.js
CHANGED
|
@@ -3,7 +3,7 @@ import { attachInternals as t } from "../internal/utils/a11y.js";
|
|
|
3
3
|
import { useStyles as n } from "../internal/styles/index.js";
|
|
4
4
|
import { ICON_IMPORTS as r } from "./icons.js";
|
|
5
5
|
import i from "./icon.js";
|
|
6
|
-
import
|
|
6
|
+
import a from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
|
|
7
7
|
import { LitElement as o, html as s, isServer as c } from "lit";
|
|
8
8
|
import { property as l } from "lit/decorators/property.js";
|
|
9
9
|
import { unsafeSVG as u } from "lit/directives/unsafe-svg.js";
|
|
@@ -16,7 +16,7 @@ var f = class e extends o {
|
|
|
16
16
|
static {
|
|
17
17
|
this.metadata = {
|
|
18
18
|
tag: "nve-icon",
|
|
19
|
-
version: "2.0
|
|
19
|
+
version: "2.1.0"
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
static {
|
|
@@ -94,7 +94,7 @@ a([l({
|
|
|
94
94
|
})], f.prototype, "name", void 0), a([d()], f.prototype, "svg", void 0);
|
|
95
95
|
function p(t) {
|
|
96
96
|
if (typeof globalThis.customElements?.get == "function") {
|
|
97
|
-
let n = e(t.metadata.version), i = e("2.0
|
|
97
|
+
let n = e(t.metadata.version), i = e("2.1.0");
|
|
98
98
|
n.minor <= i.minor && n.major <= i.major && (t._icons = {
|
|
99
99
|
...t._icons,
|
|
100
100
|
...r
|