@nvidia-elements/core 2.20.3 → 2.21.1

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.
Files changed (140) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/accordion/accordion2.js +4 -4
  3. package/dist/alert/alert-group2.js +1 -1
  4. package/dist/alert/alert2.js +1 -1
  5. package/dist/avatar/avatar-group2.js +1 -1
  6. package/dist/avatar/avatar2.js +1 -1
  7. package/dist/badge/badge2.js +1 -1
  8. package/dist/breadcrumb/breadcrumb2.js +1 -1
  9. package/dist/bundles/index.d.ts +2 -2
  10. package/dist/bundles/index.js +11 -11
  11. package/dist/button/button2.js +1 -1
  12. package/dist/button-group/button-group2.js +1 -1
  13. package/dist/card/card2.js +4 -4
  14. package/dist/chat-message/chat-message2.js +1 -1
  15. package/dist/checkbox/checkbox-group2.js +1 -1
  16. package/dist/checkbox/checkbox2.js +1 -1
  17. package/dist/color/color2.js +1 -1
  18. package/dist/combobox/combobox.d.ts +1 -0
  19. package/dist/combobox/combobox2.js +80 -70
  20. package/dist/combobox/combobox2.js.map +1 -1
  21. package/dist/copy-button/copy-button2.js +1 -1
  22. package/dist/custom-elements-jsx.d.ts +1 -1
  23. package/dist/custom-elements-vue.d.ts +1 -1
  24. package/dist/custom-elements.json +3 -3
  25. package/dist/data.html.json +1 -1
  26. package/dist/date/date2.js +1 -1
  27. package/dist/datetime/datetime2.js +1 -1
  28. package/dist/dialog/dialog-footer2.js +1 -1
  29. package/dist/dialog/dialog-header2.js +1 -1
  30. package/dist/dialog/dialog2.js +1 -1
  31. package/dist/divider/divider2.js +1 -1
  32. package/dist/dot/dot2.js +1 -1
  33. package/dist/drag-handle/drag-handle2.js +1 -1
  34. package/dist/drawer/drawer-content2.js +1 -1
  35. package/dist/drawer/drawer-footer2.js +1 -1
  36. package/dist/drawer/drawer-header2.js +1 -1
  37. package/dist/drawer/drawer2.js +1 -1
  38. package/dist/dropdown/dropdown-footer2.js +1 -1
  39. package/dist/dropdown/dropdown-header2.js +1 -1
  40. package/dist/dropdown/dropdown.js +1 -1
  41. package/dist/dropdown/dropdown.js.map +1 -1
  42. package/dist/dropdown/dropdown2.js +2 -2
  43. package/dist/dropdown/dropdown2.js.map +1 -1
  44. package/dist/dropdown-group/dropdown-group.d.ts +1 -1
  45. package/dist/dropdown-group/dropdown-group.examples.js.map +1 -1
  46. package/dist/dropdown-group/dropdown-group.examples.json +11 -0
  47. package/dist/dropdown-group/dropdown-group.js +55 -25
  48. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  49. package/dist/dropzone/dropzone2.js +1 -1
  50. package/dist/file/file2.js +1 -1
  51. package/dist/format-bytes/format-bytes2.js +1 -1
  52. package/dist/format-datetime/format-datetime2.js +1 -1
  53. package/dist/format-number/format-number2.js +1 -1
  54. package/dist/format-relative-time/format-relative-time2.js +1 -1
  55. package/dist/format-truncate/format-truncate2.js +35 -34
  56. package/dist/format-truncate/format-truncate2.js.map +1 -1
  57. package/dist/forms/control/control2.js +1 -1
  58. package/dist/forms/control-group/control-group2.js +1 -1
  59. package/dist/forms/control-message/control-message2.js +1 -1
  60. package/dist/gauge/gauge2.js +1 -1
  61. package/dist/grid/cell/cell2.js +1 -1
  62. package/dist/grid/column/column2.js +1 -1
  63. package/dist/grid/footer/footer2.js +1 -1
  64. package/dist/grid/grid2.js +1 -1
  65. package/dist/grid/header/header2.js +1 -1
  66. package/dist/grid/placeholder/placeholder2.js +1 -1
  67. package/dist/grid/row/row2.js +1 -1
  68. package/dist/icon/icon2.js +2 -2
  69. package/dist/icon-button/icon-button2.js +1 -1
  70. package/dist/iframe/iframe2.js +1 -1
  71. package/dist/index.js +1 -1
  72. package/dist/input/input-group2.js +1 -1
  73. package/dist/input/input2.js +1 -1
  74. package/dist/internal/controllers/type-native-popover.controller.d.ts +0 -1
  75. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  76. package/dist/internal/controllers/type-native-popover.utils.d.ts +0 -1
  77. package/dist/internal/controllers/type-native-popover.utils.js +1 -1
  78. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  79. package/dist/internal/index.js +23 -23
  80. package/dist/internal/styles/popover.js +1 -1
  81. package/dist/internal/styles/popover.js.map +1 -1
  82. package/dist/internal/styles/popover2.js +3 -10
  83. package/dist/internal/styles/popover2.js.map +1 -1
  84. package/dist/internal/utils/dom.js.map +1 -1
  85. package/dist/joystick/joystick2.js +1 -1
  86. package/dist/logo/logo2.js +1 -1
  87. package/dist/menu/menu-group2.js +1 -1
  88. package/dist/menu/menu-item2.js +1 -1
  89. package/dist/menu/menu2.js +1 -1
  90. package/dist/month/month2.js +1 -1
  91. package/dist/notification/notification-group2.js +1 -1
  92. package/dist/notification/notification2.js +1 -1
  93. package/dist/page/page-panel/page-panel-content2.js +1 -1
  94. package/dist/page/page-panel/page-panel-footer2.js +1 -1
  95. package/dist/page/page-panel/page-panel-header2.js +1 -1
  96. package/dist/page/page-panel/page-panel2.js +1 -1
  97. package/dist/page/page2.js +1 -1
  98. package/dist/page-header/page-header2.js +1 -1
  99. package/dist/page-loader/page-loader2.js +1 -1
  100. package/dist/pagination/pagination2.js +1 -1
  101. package/dist/panel/panel2.js +4 -4
  102. package/dist/password/password2.js +1 -1
  103. package/dist/preferences-input/preferences-input2.js +1 -1
  104. package/dist/progress-bar/progress-bar2.js +1 -1
  105. package/dist/progress-dot/progress-dot2.js +1 -1
  106. package/dist/progress-ring/progress-ring2.js +1 -1
  107. package/dist/progressive-filter-chip/progressive-filter-chip2.js +1 -1
  108. package/dist/pulse/pulse2.js +1 -1
  109. package/dist/radio/radio-group2.js +1 -1
  110. package/dist/radio/radio2.js +1 -1
  111. package/dist/range/range2.js +1 -1
  112. package/dist/resize-handle/resize-handle2.js +1 -1
  113. package/dist/search/search2.js +1 -1
  114. package/dist/select/select2.js +45 -32
  115. package/dist/select/select2.js.map +1 -1
  116. package/dist/skeleton/skeleton2.js +1 -1
  117. package/dist/sort-button/sort-button2.js +1 -1
  118. package/dist/sparkline/sparkline2.js +1 -1
  119. package/dist/star-rating/star-rating2.js +1 -1
  120. package/dist/steps/steps2.js +2 -2
  121. package/dist/switch/switch-group2.js +1 -1
  122. package/dist/switch/switch2.js +1 -1
  123. package/dist/tabs/tabs-group2.js +1 -1
  124. package/dist/tabs/tabs-item-group2.js +1 -1
  125. package/dist/tabs/tabs2.js +2 -2
  126. package/dist/tag/tag2.js +1 -1
  127. package/dist/textarea/textarea2.js +1 -1
  128. package/dist/time/time2.js +1 -1
  129. package/dist/toast/toast2.js +1 -1
  130. package/dist/toggletip/toggletip-footer2.js +1 -1
  131. package/dist/toggletip/toggletip-header2.js +1 -1
  132. package/dist/toggletip/toggletip.js +1 -1
  133. package/dist/toggletip/toggletip.js.map +1 -1
  134. package/dist/toggletip/toggletip2.js +1 -1
  135. package/dist/toolbar/toolbar2.js +1 -1
  136. package/dist/tooltip/tooltip2.js +1 -1
  137. package/dist/tree/tree-node2.js +1 -1
  138. package/dist/tree/tree2.js +1 -1
  139. package/dist/week/week2.js +1 -1
  140. package/package.json +44 -9
@@ -25,13 +25,13 @@ import { TypeSSRController as Pe, typeSSR as Fe } from "./controllers/type-ssr.c
25
25
  import { hostAttr as Ie } from "./decorators/host-attr.js";
26
26
  import { scopedRegistry as Le } from "./decorators/scoped-registry.js";
27
27
  import { colorStateStyles as Re, statusStateStyles as ze, supportStateStyles as Be, useStyles as Ve } from "./styles/index.js";
28
- import { supportsCSSLegacyInsetArea as He, supportsCSSPositionArea as Ue, supportsNativeCSSAnchorPosition as We } from "./utils/supports.js";
29
- import { popoverStyles as Ge } from "./styles/popover2.js";
30
- import { TransitionService as Ke } from "./services/transition.service.js";
31
- import { statusIcons as qe } from "./types/index.js";
32
- import { formatStandardNumber as Je, getDifference as Ye, isObject as Xe, parseVersion as Ze } from "./utils/objects.js";
33
- import { createLightDismiss as Qe, onKeys as $e } from "./utils/keynav.js";
34
- import { finiteOr as et, nonnegativeFiniteOr as tt, positiveFiniteOr as nt } from "./utils/numeric.js";
28
+ import { popoverStyles as He } from "./styles/popover2.js";
29
+ import { TransitionService as Ue } from "./services/transition.service.js";
30
+ import { statusIcons as We } from "./types/index.js";
31
+ import { formatStandardNumber as Ge, getDifference as Ke, isObject as qe, parseVersion as Je } from "./utils/objects.js";
32
+ import { createLightDismiss as Ye, onKeys as Xe } from "./utils/keynav.js";
33
+ import { finiteOr as Ze, nonnegativeFiniteOr as Qe, positiveFiniteOr as $e } from "./utils/numeric.js";
34
+ import { supportsCSSLegacyInsetArea as et, supportsCSSPositionArea as tt, supportsNativeCSSAnchorPosition as nt } from "./utils/supports.js";
35
35
  export * from "@nvidia-elements/foundations/internal/i18n";
36
36
  // src/internal/index.ts
37
37
  var rt = /* @__PURE__ */ ee({
@@ -48,7 +48,7 @@ var rt = /* @__PURE__ */ ee({
48
48
  StateHighlightedController: () => Se,
49
49
  StateScrollController: () => we,
50
50
  StateSelectedController: () => Ee,
51
- TransitionService: () => Ke,
51
+ TransitionService: () => Ue,
52
52
  TypeAnchorController: () => Oe,
53
53
  TypeClosableController: () => Ae,
54
54
  TypeExpandableController: () => je,
@@ -69,15 +69,15 @@ var rt = /* @__PURE__ */ ee({
69
69
  clickOutsideElementBounds: () => E,
70
70
  colorStateStyles: () => Re,
71
71
  createGhostElement: () => D,
72
- createLightDismiss: () => Qe,
72
+ createLightDismiss: () => Ye,
73
73
  debounce: () => l,
74
74
  endOfScrollBox: () => O,
75
75
  excessiveInstanceLimit: () => 50,
76
- finiteOr: () => et,
76
+ finiteOr: () => Ze,
77
77
  focusElement: () => p,
78
78
  focusElementTimeout: () => m,
79
79
  formatFileSize: () => r,
80
- formatStandardNumber: () => Je,
80
+ formatStandardNumber: () => Ge,
81
81
  generateId: () => k,
82
82
  getActiveElement: () => h,
83
83
  getAnchorNames: () => A,
@@ -85,7 +85,7 @@ var rt = /* @__PURE__ */ ee({
85
85
  getAttributeListChanges: () => M,
86
86
  getChildren: () => N,
87
87
  getCustomElementRegistry: () => P,
88
- getDifference: () => Ye,
88
+ getDifference: () => Ke,
89
89
  getDisplayValue: () => F,
90
90
  getElementUpdate: () => I,
91
91
  getFlattenedDOMTree: () => L,
@@ -102,20 +102,20 @@ var rt = /* @__PURE__ */ ee({
102
102
  isContextMenuClick: () => W,
103
103
  isFocusable: () => _,
104
104
  isImmediateRootActiveElement: () => v,
105
- isObject: () => Xe,
105
+ isObject: () => qe,
106
106
  isSimpleFocusable: () => y,
107
107
  keyNavigationGrid: () => le,
108
108
  keyNavigationList: () => fe,
109
109
  matchesElementName: () => G,
110
- nonnegativeFiniteOr: () => tt,
110
+ nonnegativeFiniteOr: () => Qe,
111
111
  onChildListMutation: () => u,
112
- onKeys: () => $e,
112
+ onKeys: () => Xe,
113
113
  onListboxActivate: () => b,
114
114
  openEyeDropper: () => K,
115
115
  parseTokenNumber: () => q,
116
- parseVersion: () => Ze,
117
- popoverStyles: () => Ge,
118
- positiveFiniteOr: () => nt,
116
+ parseVersion: () => Je,
117
+ popoverStyles: () => He,
118
+ positiveFiniteOr: () => $e,
119
119
  removeAnchorName: () => J,
120
120
  removeEmptySlotWhitespace: () => Y,
121
121
  removeEmptyTextNode: () => X,
@@ -130,14 +130,14 @@ var rt = /* @__PURE__ */ ee({
130
130
  stateHighlighted: () => Ce,
131
131
  stateScroll: () => Te,
132
132
  stateSelected: () => De,
133
- statusIcons: () => qe,
133
+ statusIcons: () => We,
134
134
  statusStateStyles: () => ze,
135
135
  stopEvent: () => d,
136
136
  styleSheetToString: () => ae,
137
137
  supportStateStyles: () => Be,
138
- supportsCSSLegacyInsetArea: () => He,
139
- supportsCSSPositionArea: () => Ue,
140
- supportsNativeCSSAnchorPosition: () => We,
138
+ supportsCSSLegacyInsetArea: () => et,
139
+ supportsCSSPositionArea: () => tt,
140
+ supportsNativeCSSAnchorPosition: () => nt,
141
141
  throttle: () => f,
142
142
  typeAnchor: () => ke,
143
143
  typeSSR: () => Fe,
@@ -147,6 +147,6 @@ var rt = /* @__PURE__ */ ee({
147
147
  });
148
148
  import * as it from "@nvidia-elements/foundations/internal/i18n";
149
149
  te(rt, it);
150
- export { a as AuditController, n as DOCS_URL, s as GestureController, se as KeyNavigationGridController, ue as KeyNavigationListController, pe as KeyNavigationSpatialController, c as KeyStateController, S as KeynavCode, e as LogService, be as StateExpandedController, Se as StateHighlightedController, we as StateScrollController, Ee as StateSelectedController, Ke as TransitionService, Oe as TypeAnchorController, Ae as TypeClosableController, je as TypeExpandableController, Ne as TypeNativePopoverController, Pe as TypeSSRController, Me as TypeSelectableController, C as appendAnchorName, w as appendRootNodeStyle, T as applySlotContentStates, me as associateAriaDescribedBy, he as associateAriaLabel, ge as associateControlGroup, _e as associateDataList, ve as associateLabel, ye as attachInternals, o as audit, t as auditParentElement, E as clickOutsideElementBounds, Re as colorStateStyles, D as createGhostElement, Qe as createLightDismiss, l as debounce, O as endOfScrollBox, ne as excessiveInstanceLimit, et as finiteOr, p as focusElement, m as focusElementTimeout, r as formatFileSize, Je as formatStandardNumber, k as generateId, h as getActiveElement, A as getAnchorNames, j as getAttributeChanges, M as getAttributeListChanges, N as getChildren, P as getCustomElementRegistry, Ye as getDifference, F as getDisplayValue, I as getElementUpdate, L as getFlattenedDOMTree, R as getFlattenedFocusableItems, ce as getNextKeyGridItem, de as getNextKeyListItem, z as getPropertyChanges, B as getThemeTokens, V as hasHorizontalScrollBar, H as hasInvalidDOMGrid, U as hasScrollBar, Ie as hostAttr, g as initializeKeyListItems, rt as internal_exports, W as isContextMenuClick, _ as isFocusable, v as isImmediateRootActiveElement, Xe as isObject, y as isSimpleFocusable, le as keyNavigationGrid, fe as keyNavigationList, G as matchesElementName, tt as nonnegativeFiniteOr, u as onChildListMutation, $e as onKeys, b as onListboxActivate, K as openEyeDropper, q as parseTokenNumber, Ze as parseVersion, Ge as popoverStyles, nt as positiveFiniteOr, J as removeAnchorName, Y as removeEmptySlotWhitespace, X as removeEmptyTextNode, Z as sameOrderedStringArray, Q as sameRenderRoot, Le as scopedRegistry, re as scrollBarWidth, x as setActiveKeyListItem, i as shiftLeft, ie as slotContainsOnlyWhitespace, xe as stateExpanded, Ce as stateHighlighted, Te as stateScroll, De as stateSelected, qe as statusIcons, ze as statusStateStyles, d as stopEvent, ae as styleSheetToString, Be as supportStateStyles, He as supportsCSSLegacyInsetArea, Ue as supportsCSSPositionArea, We as supportsNativeCSSAnchorPosition, f as throttle, ke as typeAnchor, Fe as typeSSR, oe as uniqueNonEmptyStrings, Ve as useStyles, $ as validKeyNavigationCode };
150
+ export { a as AuditController, n as DOCS_URL, s as GestureController, se as KeyNavigationGridController, ue as KeyNavigationListController, pe as KeyNavigationSpatialController, c as KeyStateController, S as KeynavCode, e as LogService, be as StateExpandedController, Se as StateHighlightedController, we as StateScrollController, Ee as StateSelectedController, Ue as TransitionService, Oe as TypeAnchorController, Ae as TypeClosableController, je as TypeExpandableController, Ne as TypeNativePopoverController, Pe as TypeSSRController, Me as TypeSelectableController, C as appendAnchorName, w as appendRootNodeStyle, T as applySlotContentStates, me as associateAriaDescribedBy, he as associateAriaLabel, ge as associateControlGroup, _e as associateDataList, ve as associateLabel, ye as attachInternals, o as audit, t as auditParentElement, E as clickOutsideElementBounds, Re as colorStateStyles, D as createGhostElement, Ye as createLightDismiss, l as debounce, O as endOfScrollBox, ne as excessiveInstanceLimit, Ze as finiteOr, p as focusElement, m as focusElementTimeout, r as formatFileSize, Ge as formatStandardNumber, k as generateId, h as getActiveElement, A as getAnchorNames, j as getAttributeChanges, M as getAttributeListChanges, N as getChildren, P as getCustomElementRegistry, Ke as getDifference, F as getDisplayValue, I as getElementUpdate, L as getFlattenedDOMTree, R as getFlattenedFocusableItems, ce as getNextKeyGridItem, de as getNextKeyListItem, z as getPropertyChanges, B as getThemeTokens, V as hasHorizontalScrollBar, H as hasInvalidDOMGrid, U as hasScrollBar, Ie as hostAttr, g as initializeKeyListItems, rt as internal_exports, W as isContextMenuClick, _ as isFocusable, v as isImmediateRootActiveElement, qe as isObject, y as isSimpleFocusable, le as keyNavigationGrid, fe as keyNavigationList, G as matchesElementName, Qe as nonnegativeFiniteOr, u as onChildListMutation, Xe as onKeys, b as onListboxActivate, K as openEyeDropper, q as parseTokenNumber, Je as parseVersion, He as popoverStyles, $e as positiveFiniteOr, J as removeAnchorName, Y as removeEmptySlotWhitespace, X as removeEmptyTextNode, Z as sameOrderedStringArray, Q as sameRenderRoot, Le as scopedRegistry, re as scrollBarWidth, x as setActiveKeyListItem, i as shiftLeft, ie as slotContainsOnlyWhitespace, xe as stateExpanded, Ce as stateHighlighted, Te as stateScroll, De as stateSelected, We as statusIcons, ze as statusStateStyles, d as stopEvent, ae as styleSheetToString, Be as supportStateStyles, et as supportsCSSLegacyInsetArea, tt as supportsCSSPositionArea, nt as supportsNativeCSSAnchorPosition, f as throttle, ke as typeAnchor, Fe as typeSSR, oe as uniqueNonEmptyStrings, Ve as useStyles, $ as validKeyNavigationCode };
151
151
 
152
152
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  // src/internal/styles/popover.css?inline
2
- var e = ":host{--animation-duration: var(--nve-ref-animation-duration-200);margin:calc(var(--nve-sys-layer-popover-offset) + calc(var(--nve-sys-layer-popover-arrow-offset) * 2));border:0;padding:0;background:none;position:fixed;overflow:visible;contain:initial;width:max-content;z-index:99;inset:revert;interest-delay-start:.5s}:host([popover]){opacity:0;pointer-events:none}:host([popover]:not(:popover-open)){display:none!important}:host(:state(transition-start)){transition-duration:var(--animation-duration);transition-timing-function:ease-in-out;transition-property:opacity,display,overlay,translate,transform;transition-behavior:allow-discrete}@supports not (container-type: anchored){:host{--animation-duration: 0}}:host(:popover-open){opacity:1;pointer-events:initial;@starting-style{opacity:0}}:host(:not([nve-popover])),:host([defer-hydration]){opacity:0!important;pointer-events:none!important}[internal-host]{width:var(--width);min-width:var(--min-width);font-family:inherit;display:flex;flex-direction:column;overflow:visible;white-space:nowrap;z-index:9999;border:0;margin:0;user-select:text}@supports (position-area: bottom){[internal-host]{position:relative}.arrow{position-area:bottom;translate:0% 50%}:host([position=\"top\"]) .arrow{position-area:bottom;translate:0% 50%}:host([position=\"top\"][alignment=\"end\"]) .arrow{position-area:bottom right;translate:-50% 50%}:host([position=\"top\"][alignment=\"start\"]) .arrow{position-area:bottom left;translate:50% 50%}:host([position=\"bottom\"]) .arrow{position-area:top;translate:0% -50%}:host([position=\"bottom\"][alignment=\"end\"]) .arrow{position-area:top right;translate:-50% -50%}:host([position=\"bottom\"][alignment=\"start\"]) .arrow{position-area:top left;translate:50% -50%}:host([position=\"left\"]) .arrow{position-area:right;translate:50% 0%}:host([position=\"left\"][alignment=\"end\"]) .arrow{position-area:bottom right;translate:50% -50%}:host([position=\"left\"][alignment=\"start\"]) .arrow{position-area:top right;translate:50% 50%}:host([position=\"right\"]) .arrow{position-area:left;translate:-50% 0%}:host([position=\"right\"][alignment=\"end\"]) .arrow{position-area:bottom left;translate:-50% -50%}:host([position=\"right\"][alignment=\"start\"]) .arrow{position-area:top left;translate:-50% 50%}:host([position=\"center\"]){position-area:center}:host{inset:auto!important;place-self:normal!important;position-anchor:auto!important}:host([position=\"top\"]){position-area:top center}:host([position=\"top\"][alignment=\"start\"]){position-area:top left}:host([position=\"top\"][alignment=\"end\"]){position-area:top right}:host([position=\"top\"][alignment=\"start\"]){position-area:top span-right}:host([position=\"top\"][alignment=\"end\"]){position-area:top span-left}:host([position=\"bottom\"]){position-area:bottom center}:host([position=\"bottom\"][alignment=\"start\"]){position-area:bottom span-right}:host([position=\"bottom\"][alignment=\"end\"]){position-area:bottom span-left}:host([position=\"left\"]){position-area:left center}:host([position=\"left\"][alignment=\"end\"]){position-area:left span-top}:host([position=\"left\"][alignment=\"start\"]){position-area:left span-bottom}:host([position=\"right\"]){position-area:right center}:host([position=\"right\"][alignment=\"end\"]){position-area:right span-top}:host([position=\"right\"][alignment=\"start\"]){position-area:right span-bottom}:host([position=\"top\"]){position-try-fallbacks:top,bottom,left,right}:host([position=\"bottom\"]){position-try-fallbacks:bottom,top,left,right}:host([position=\"left\"]){position-try-fallbacks:left,right,top,bottom}:host([position=\"right\"]){position-try-fallbacks:right,left,top,bottom}}:host([position=\"center\"][alignment=\"center\"]){position-area:unset!important;margin:auto!important;inset:0!important}@supports (not selector(::search-text)) and (position-area: bottom){.arrow{translate:0% -50%}:host([position=\"top\"]) .arrow{translate:0% -50%}:host([position=\"top\"][alignment=\"end\"]) .arrow{translate:-150% -50%}:host([position=\"top\"][alignment=\"start\"]) .arrow{translate:150% -50%}:host([position=\"bottom\"]) .arrow{translate:0% 50%}:host([position=\"bottom\"][alignment=\"end\"]) .arrow{translate:-150% 50%}:host([position=\"bottom\"][alignment=\"start\"]) .arrow{translate:150% 50%}:host([position=\"left\"]) .arrow{translate:-50% 0%}:host([position=\"left\"][alignment=\"end\"]) .arrow{translate:-50% -150%}:host([position=\"left\"][alignment=\"start\"]) .arrow{translate:-50% 150%}:host([position=\"right\"]) .arrow{translate:50% 0%}:host([position=\"right\"][alignment=\"end\"]) .arrow{translate:50% -150%}:host([position=\"right\"][alignment=\"start\"]) .arrow{translate:50% 150%}}:host([popover][modal]):before{content:\" \";display:block;inset:0;z-index:99;position:fixed}";
2
+ var e = ":host{--animation-duration: var(--nve-ref-animation-duration-200);margin:calc(var(--nve-sys-layer-popover-offset) + calc(var(--nve-sys-layer-popover-arrow-offset) * 2));border:0;padding:0;background:none;position:fixed;overflow:visible;contain:initial;width:max-content;z-index:99;inset:revert;interest-delay-start:.5s}:host([popover]){opacity:0;pointer-events:none}:host([popover]:not(:popover-open)){display:none!important}:host(:state(transition-start)){transition-duration:var(--animation-duration);transition-timing-function:ease-in-out;transition-property:opacity,display,overlay,translate,transform;transition-behavior:allow-discrete}@supports not (container-type: anchored){:host{--animation-duration: 0}}:host(:popover-open){opacity:1;pointer-events:initial;@starting-style{opacity:0}}:host(:not([nve-popover])),:host([defer-hydration]){opacity:0!important;pointer-events:none!important}[internal-host]{width:var(--width);min-width:var(--min-width);font-family:inherit;display:flex;flex-direction:column;overflow:visible;white-space:nowrap;z-index:9999;border:0;margin:0;user-select:text}@supports (position-area: bottom){[internal-host]{position:relative}.arrow{position-area:bottom;translate:0% 50%}:host([position=\"top\"]) .arrow{position-area:bottom;translate:0% 50%}:host([position=\"top\"][alignment=\"end\"]:not(:dir(rtl))) .arrow,:host([position=\"top\"][alignment=\"start\"]:dir(rtl)) .arrow{position-area:bottom right;translate:-50% 50%}:host([position=\"top\"][alignment=\"start\"]:not(:dir(rtl))) .arrow,:host([position=\"top\"][alignment=\"end\"]:dir(rtl)) .arrow{position-area:bottom left;translate:50% 50%}:host([position=\"bottom\"]) .arrow{position-area:top;translate:0% -50%}:host([position=\"bottom\"][alignment=\"end\"]:not(:dir(rtl))) .arrow,:host([position=\"bottom\"][alignment=\"start\"]:dir(rtl)) .arrow{position-area:top right;translate:-50% -50%}:host([position=\"bottom\"][alignment=\"start\"]:not(:dir(rtl))) .arrow,:host([position=\"bottom\"][alignment=\"end\"]:dir(rtl)) .arrow{position-area:top left;translate:50% -50%}:host([position=\"left\"]) .arrow{position-area:right;translate:50% 0%}:host([position=\"left\"][alignment=\"end\"]) .arrow{position-area:bottom right;translate:50% -50%}:host([position=\"left\"][alignment=\"start\"]) .arrow{position-area:top right;translate:50% 50%}:host([position=\"right\"]) .arrow{position-area:left;translate:-50% 0%}:host([position=\"right\"][alignment=\"end\"]) .arrow{position-area:bottom left;translate:-50% -50%}:host([position=\"right\"][alignment=\"start\"]) .arrow{position-area:top left;translate:-50% 50%}:host([position=\"center\"]){position-area:center}:host{inset:auto!important;place-self:normal!important;position-anchor:auto!important}:host([position=\"top\"]){position-area:top center}:host([position=\"top\"][alignment=\"start\"]:not(:dir(rtl))),:host([position=\"top\"][alignment=\"end\"]:dir(rtl)){position-area:top left}:host([position=\"top\"][alignment=\"end\"]:not(:dir(rtl))),:host([position=\"top\"][alignment=\"start\"]:dir(rtl)){position-area:top right}:host([position=\"top\"][alignment=\"start\"]:not(:dir(rtl))),:host([position=\"top\"][alignment=\"end\"]:dir(rtl)){position-area:top span-right}:host([position=\"top\"][alignment=\"end\"]:not(:dir(rtl))),:host([position=\"top\"][alignment=\"start\"]:dir(rtl)){position-area:top span-left}:host([position=\"bottom\"]){position-area:bottom center}:host([position=\"bottom\"][alignment=\"start\"]:not(:dir(rtl))),:host([position=\"bottom\"][alignment=\"end\"]:dir(rtl)){position-area:bottom span-right}:host([position=\"bottom\"][alignment=\"end\"]:not(:dir(rtl))),:host([position=\"bottom\"][alignment=\"start\"]:dir(rtl)){position-area:bottom span-left}:host([position=\"left\"]){position-area:left center}:host([position=\"left\"][alignment=\"end\"]){position-area:left span-top}:host([position=\"left\"][alignment=\"start\"]){position-area:left span-bottom}:host([position=\"right\"]){position-area:right center}:host([position=\"right\"][alignment=\"end\"]){position-area:right span-top}:host([position=\"right\"][alignment=\"start\"]){position-area:right span-bottom}:host([position=\"top\"]){position-try-fallbacks:top,bottom,left,right}:host([position=\"bottom\"]){position-try-fallbacks:bottom,top,left,right}:host([position=\"left\"]){position-try-fallbacks:left,right,top,bottom}:host([position=\"right\"]){position-try-fallbacks:right,left,top,bottom}}:host([position=\"center\"][alignment=\"center\"]){position-area:unset!important;margin:auto!important;inset:0!important}:host([popover][modal]):before{content:\" \";display:block;inset:0;z-index:99;position:fixed}";
3
3
  export { e as default };
4
4
 
5
5
  //# sourceMappingURL=popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","names":["popover_default"],"sources":["../../../src/internal/styles/popover.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --animation-duration: var(--nve-ref-animation-duration-200);\n margin: calc(var(--nve-sys-layer-popover-offset) + calc(var(--nve-sys-layer-popover-arrow-offset) * 2));\n border: 0;\n padding: 0;\n background: none;\n position: fixed;\n overflow: visible;\n contain: initial;\n width: max-content;\n z-index: 99;\n inset: revert;\n interest-delay-start: 0.5s;\n}\n\n:host([popover]) {\n opacity: 0;\n pointer-events: none;\n}\n\n/* Closed popovers must not retain layout boxes from host display styles. */\n:host([popover]:not(:popover-open)) {\n display: none !important;\n}\n\n/* apply transitions during beforetoggle event to prevent flash of unstyled popover on page load */\n:host(:state(transition-start)) {\n transition-duration: var(--animation-duration);\n transition-timing-function: ease-in-out;\n transition-property: opacity, display, overlay, translate, transform;\n transition-behavior: allow-discrete;\n}\n\n/** workaround for Safari / Firefox which do not respect transitions on implicit anchor positioning */\n@supports not (container-type: anchored) {\n :host {\n --animation-duration: 0;\n }\n}\n\n:host(:popover-open) {\n opacity: 1;\n pointer-events: initial;\n\n @starting-style {\n opacity: 0;\n }\n}\n\n/* lit SSR ensure popovers are not visible until hydration has happened */\n:host(:not([nve-popover])),\n:host([defer-hydration]) {\n opacity: 0 !important;\n pointer-events: none !important;\n}\n\n[internal-host] {\n width: var(--width);\n min-width: var(--min-width);\n font-family: inherit;\n display: flex;\n flex-direction: column;\n overflow: visible;\n white-space: nowrap;\n z-index: 9999;\n border: 0;\n margin: 0;\n user-select: text;\n}\n\n@supports (position-area: bottom) {\n [internal-host] {\n position: relative;\n }\n\n .arrow {\n position-area: bottom;\n translate: 0% 50%;\n }\n\n :host([position='top']) .arrow {\n position-area: bottom;\n translate: 0% 50%;\n }\n\n :host([position='top'][alignment='end']) .arrow {\n position-area: bottom right;\n translate: -50% 50%;\n }\n\n :host([position='top'][alignment='start']) .arrow {\n position-area: bottom left;\n translate: 50% 50%;\n }\n\n :host([position='bottom']) .arrow {\n position-area: top;\n translate: 0% -50%;\n }\n\n :host([position='bottom'][alignment='end']) .arrow {\n position-area: top right;\n translate: -50% -50%;\n }\n\n :host([position='bottom'][alignment='start']) .arrow {\n position-area: top left;\n translate: 50% -50%;\n }\n\n :host([position='left']) .arrow {\n position-area: right;\n translate: 50% 0%;\n }\n\n :host([position='left'][alignment='end']) .arrow {\n position-area: bottom right;\n translate: 50% -50%;\n }\n\n :host([position='left'][alignment='start']) .arrow {\n position-area: top right;\n translate: 50% 50%;\n }\n\n :host([position='right']) .arrow {\n position-area: left;\n translate: -50% 0%;\n }\n\n :host([position='right'][alignment='end']) .arrow {\n position-area: bottom left;\n translate: -50% -50%;\n }\n\n :host([position='right'][alignment='start']) .arrow {\n position-area: top left;\n translate: -50% 50%;\n }\n\n /** positioning */\n :host([position='center']) {\n position-area: center;\n }\n\n :host {\n inset: auto !important;\n place-self: normal !important;\n\n /*\n * This line is critical for shadow root positioning and auto anchor association\n * https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Anchor_positioning/Using#implicit_anchor_association\n */\n position-anchor: auto !important;\n }\n\n /** top */\n :host([position='top']) {\n position-area: top center;\n }\n\n :host([position='top'][alignment='start']) {\n position-area: top left;\n }\n\n :host([position='top'][alignment='end']) {\n position-area: top right;\n }\n\n :host([position='top'][alignment='start']) {\n position-area: top span-right;\n }\n\n :host([position='top'][alignment='end']) {\n position-area: top span-left;\n }\n\n /** bottom */\n :host([position='bottom']) {\n position-area: bottom center;\n }\n\n :host([position='bottom'][alignment='start']) {\n position-area: bottom span-right;\n }\n\n :host([position='bottom'][alignment='end']) {\n position-area: bottom span-left;\n }\n\n /** left */\n :host([position='left']) {\n position-area: left center;\n }\n\n :host([position='left'][alignment='end']) {\n position-area: left span-top;\n }\n\n :host([position='left'][alignment='start']) {\n position-area: left span-bottom;\n }\n\n /** right */\n :host([position='right']) {\n position-area: right center;\n }\n\n :host([position='right'][alignment='end']) {\n position-area: right span-top;\n }\n\n :host([position='right'][alignment='start']) {\n position-area: right span-bottom;\n }\n\n :host([position='top']) {\n position-try-fallbacks: top, bottom, left, right;\n }\n\n :host([position='bottom']) {\n position-try-fallbacks: bottom, top, left, right;\n }\n\n :host([position='left']) {\n position-try-fallbacks: left, right, top, bottom;\n }\n\n :host([position='right']) {\n position-try-fallbacks: right, left, top, bottom;\n }\n}\n\n:host([position='center'][alignment='center']) {\n position-area: unset !important;\n margin: auto !important;\n inset: 0 !important;\n}\n\n/*\n * Remove the following @supports block after Chrome 145 is stable.\n * This is to compensate for a change in Chrome 144 for how anchor positioning with transforms works.\n * https://developer.chrome.com/blog/chrome-144-beta#css_anchor_positioning_with_transforms\n * https://x.com/una/status/1995538970223018004\n * \n * The (not selector(::search-text)) selector is used to target Chrome 143 and below.\n */\n@supports (not selector(::search-text)) and (position-area: bottom) {\n .arrow {\n translate: 0% -50%;\n }\n\n :host([position='top']) .arrow {\n translate: 0% -50%;\n }\n\n :host([position='top'][alignment='end']) .arrow {\n translate: -150% -50%;\n }\n\n :host([position='top'][alignment='start']) .arrow {\n translate: 150% -50%;\n }\n\n :host([position='bottom']) .arrow {\n translate: 0% 50%;\n }\n\n :host([position='bottom'][alignment='end']) .arrow {\n translate: -150% 50%;\n }\n\n :host([position='bottom'][alignment='start']) .arrow {\n translate: 150% 50%;\n }\n\n :host([position='left']) .arrow {\n translate: -50% 0%;\n }\n\n :host([position='left'][alignment='end']) .arrow {\n translate: -50% -150%;\n }\n\n :host([position='left'][alignment='start']) .arrow {\n translate: -50% 150%;\n }\n\n :host([position='right']) .arrow {\n translate: 50% 0%;\n }\n\n :host([position='right'][alignment='end']) .arrow {\n translate: 50% -150%;\n }\n\n :host([position='right'][alignment='start']) .arrow {\n translate: 50% 150%;\n }\n}\n\n:host([popover][modal])::before {\n content: ' ';\n display: block;\n inset: 0;\n z-index: 99;\n position: fixed;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"popover.js","names":["popover_default"],"sources":["../../../src/internal/styles/popover.css?inline"],"sourcesContent":["/* SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */\n/* SPDX-License-Identifier: Apache-2.0 */\n\n:host {\n --animation-duration: var(--nve-ref-animation-duration-200);\n margin: calc(var(--nve-sys-layer-popover-offset) + calc(var(--nve-sys-layer-popover-arrow-offset) * 2));\n border: 0;\n padding: 0;\n background: none;\n position: fixed;\n overflow: visible;\n contain: initial;\n width: max-content;\n z-index: 99;\n inset: revert;\n interest-delay-start: 0.5s;\n}\n\n:host([popover]) {\n opacity: 0;\n pointer-events: none;\n}\n\n/* Closed popovers must not retain layout boxes from host display styles. */\n:host([popover]:not(:popover-open)) {\n display: none !important;\n}\n\n/* apply transitions during beforetoggle event to prevent flash of unstyled popover on page load */\n:host(:state(transition-start)) {\n transition-duration: var(--animation-duration);\n transition-timing-function: ease-in-out;\n transition-property: opacity, display, overlay, translate, transform;\n transition-behavior: allow-discrete;\n}\n\n/** workaround for Safari / Firefox which do not respect transitions on implicit anchor positioning */\n@supports not (container-type: anchored) {\n :host {\n --animation-duration: 0;\n }\n}\n\n:host(:popover-open) {\n opacity: 1;\n pointer-events: initial;\n\n @starting-style {\n opacity: 0;\n }\n}\n\n/* lit SSR ensure popovers are not visible until hydration has happened */\n:host(:not([nve-popover])),\n:host([defer-hydration]) {\n opacity: 0 !important;\n pointer-events: none !important;\n}\n\n[internal-host] {\n width: var(--width);\n min-width: var(--min-width);\n font-family: inherit;\n display: flex;\n flex-direction: column;\n overflow: visible;\n white-space: nowrap;\n z-index: 9999;\n border: 0;\n margin: 0;\n user-select: text;\n}\n\n@supports (position-area: bottom) {\n [internal-host] {\n position: relative;\n }\n\n .arrow {\n position-area: bottom;\n translate: 0% 50%;\n }\n\n :host([position='top']) .arrow {\n position-area: bottom;\n translate: 0% 50%;\n }\n\n :host([position='top'][alignment='end']:not(:dir(rtl))) .arrow,\n :host([position='top'][alignment='start']:dir(rtl)) .arrow {\n position-area: bottom right;\n translate: -50% 50%;\n }\n\n :host([position='top'][alignment='start']:not(:dir(rtl))) .arrow,\n :host([position='top'][alignment='end']:dir(rtl)) .arrow {\n position-area: bottom left;\n translate: 50% 50%;\n }\n\n :host([position='bottom']) .arrow {\n position-area: top;\n translate: 0% -50%;\n }\n\n :host([position='bottom'][alignment='end']:not(:dir(rtl))) .arrow,\n :host([position='bottom'][alignment='start']:dir(rtl)) .arrow {\n position-area: top right;\n translate: -50% -50%;\n }\n\n :host([position='bottom'][alignment='start']:not(:dir(rtl))) .arrow,\n :host([position='bottom'][alignment='end']:dir(rtl)) .arrow {\n position-area: top left;\n translate: 50% -50%;\n }\n\n :host([position='left']) .arrow {\n position-area: right;\n translate: 50% 0%;\n }\n\n :host([position='left'][alignment='end']) .arrow {\n position-area: bottom right;\n translate: 50% -50%;\n }\n\n :host([position='left'][alignment='start']) .arrow {\n position-area: top right;\n translate: 50% 50%;\n }\n\n :host([position='right']) .arrow {\n position-area: left;\n translate: -50% 0%;\n }\n\n :host([position='right'][alignment='end']) .arrow {\n position-area: bottom left;\n translate: -50% -50%;\n }\n\n :host([position='right'][alignment='start']) .arrow {\n position-area: top left;\n translate: -50% 50%;\n }\n\n /** positioning */\n :host([position='center']) {\n position-area: center;\n }\n\n :host {\n inset: auto !important;\n place-self: normal !important;\n\n /*\n * This line is critical for shadow root positioning and auto anchor association\n * https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Anchor_positioning/Using#implicit_anchor_association\n */\n position-anchor: auto !important;\n }\n\n /** top */\n :host([position='top']) {\n position-area: top center;\n }\n\n :host([position='top'][alignment='start']:not(:dir(rtl))),\n :host([position='top'][alignment='end']:dir(rtl)) {\n position-area: top left;\n }\n\n :host([position='top'][alignment='end']:not(:dir(rtl))),\n :host([position='top'][alignment='start']:dir(rtl)) {\n position-area: top right;\n }\n\n :host([position='top'][alignment='start']:not(:dir(rtl))),\n :host([position='top'][alignment='end']:dir(rtl)) {\n position-area: top span-right;\n }\n\n :host([position='top'][alignment='end']:not(:dir(rtl))),\n :host([position='top'][alignment='start']:dir(rtl)) {\n position-area: top span-left;\n }\n\n /** bottom */\n :host([position='bottom']) {\n position-area: bottom center;\n }\n\n :host([position='bottom'][alignment='start']:not(:dir(rtl))),\n :host([position='bottom'][alignment='end']:dir(rtl)) {\n position-area: bottom span-right;\n }\n\n :host([position='bottom'][alignment='end']:not(:dir(rtl))),\n :host([position='bottom'][alignment='start']:dir(rtl)) {\n position-area: bottom span-left;\n }\n\n /** left */\n :host([position='left']) {\n position-area: left center;\n }\n\n :host([position='left'][alignment='end']) {\n position-area: left span-top;\n }\n\n :host([position='left'][alignment='start']) {\n position-area: left span-bottom;\n }\n\n /** right */\n :host([position='right']) {\n position-area: right center;\n }\n\n :host([position='right'][alignment='end']) {\n position-area: right span-top;\n }\n\n :host([position='right'][alignment='start']) {\n position-area: right span-bottom;\n }\n\n :host([position='top']) {\n position-try-fallbacks: top, bottom, left, right;\n }\n\n :host([position='bottom']) {\n position-try-fallbacks: bottom, top, left, right;\n }\n\n :host([position='left']) {\n position-try-fallbacks: left, right, top, bottom;\n }\n\n :host([position='right']) {\n position-try-fallbacks: right, left, top, bottom;\n }\n}\n\n:host([position='center'][alignment='center']) {\n position-area: unset !important;\n margin: auto !important;\n inset: 0 !important;\n}\n\n:host([popover][modal])::before {\n content: ' ';\n display: block;\n inset: 0;\n z-index: 99;\n position: fixed;\n}\n"],"mappings":""}
@@ -1,13 +1,6 @@
1
- import { supportsCSSLegacyInsetArea as e, supportsCSSPositionArea as t } from "../utils/supports.js";
2
- import n from "./popover.js";
3
- import { isServer as r } from "lit";
4
- // src/internal/styles/popover.ts
1
+ import e from "./popover.js";
5
2
  /* istanbul ignore file -- @preserve */
6
- var i = "\n[internal-host] { anchor-name: --internal-host }\n.arrow { position-anchor: --internal-host }\n";
7
- function a() {
8
- return !r && !t() && e() ? n.replaceAll("position-area", "inset-area") + i : n + i;
9
- }
10
- var o = a();
11
- export { o as popoverStyles };
3
+ var t = e + "\n[internal-host] { anchor-name: --internal-host }\n.arrow { position-anchor: --internal-host }\n";
4
+ export { t as popoverStyles };
12
5
 
13
6
  //# sourceMappingURL=popover2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover2.js","names":["_popoverStyles","popover_default","anchor","getPopoverStyles","isServer","supportsCSSPositionArea","supportsCSSLegacyInsetArea","popoverStyles"],"sources":["../../../src/internal/styles/popover.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/* istanbul ignore file -- @preserve */\nimport { isServer } from 'lit';\nimport { supportsCSSPositionArea, supportsCSSLegacyInsetArea } from '../utils/supports.js';\nimport _popoverStyles from './popover.css?inline';\n\n// vite/esbuild minifier does not understand this syntax\nconst anchor = /* css */ `\n[internal-host] { anchor-name: --internal-host }\n.arrow { position-anchor: --internal-host }\n`;\n\nfunction getPopoverStyles() {\n if (!isServer && !supportsCSSPositionArea() && supportsCSSLegacyInsetArea()) {\n return _popoverStyles.replaceAll('position-area', 'inset-area') + anchor;\n } else {\n return _popoverStyles + anchor;\n }\n}\n\nexport const popoverStyles = getPopoverStyles();\n"],"mappings":";;;;;AASA,IAAME,IAAmB;AAKzB,SAASC,IAAmB;CAIxB,OAHE,CAACC,KAAY,CAACC,EAAwB,KAAKC,EAA2B,IACjEN,EAAe,WAAW,iBAAiB,YAAY,IAAIE,IAE3DF,IAAiBE;AAE5B;AAEA,IAAaK,IAAgBJ,EAAiB"}
1
+ {"version":3,"file":"popover2.js","names":["_popoverStyles","popover_default","popoverStyles"],"sources":["../../../src/internal/styles/popover.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/* istanbul ignore file -- @preserve */\nimport _popoverStyles from './popover.css?inline';\n\n// vite/esbuild minifier does not understand this syntax\nconst anchor = /* css */ `\n[internal-host] { anchor-name: --internal-host }\n.arrow { position-anchor: --internal-host }\n`;\n\nexport const popoverStyles = _popoverStyles + anchor;\n"],"mappings":";;AAYA,IAAaE,IAAgBF,IAAiB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","names":["getChildren","node","slotted","generateId","getAttributeChanges","element","attr","observer","mutation","fn","getAttributeListChanges","attrs","appendRootNodeStyle","stylesheet","styles","root","host","styleSheetToString","s","rule","getPropertyChanges","own","key","descriptor","proto","setter","active","observation","val","callback","current","getElementUpdate","cleanupPropertyChanges","disconnect","clickOutsideElementBounds","event","left","right","top","bottom","parseTokenNumber","value","getCustomElementRegistry","CustomElementRegistryConstructor","isContextMenuClick","getFlattenedFocusableItems","getFlattenedDOMTree","depth","isFocusable","p","n","i","validKeyNavigationCode","keynavCodes","KeynavCode","\"End\"","\"Home\"","\"PageUp\"","\"PageDown\"","\"ArrowUp\"","\"ArrowDown\"","\"ArrowLeft\"","\"ArrowRight\"","hasInvalidDOMGrid","rows","row","removeEmptyTextNode","scrollBarWidth","div","width","hasScrollBar","el","hasHorizontalScrollBar","endOfScrollBox","offset","openEyeDropper","EyeDropperConstructor","LogService","e","getThemeTokens","parent","rules","sheet","finalArr","props","propName","propValArr","token","removeEmptySlotWhitespace","slotContainsOnlyWhitespace","slot","hasNoElements","hasOnlyEmptyTextNodes","applySlotContentStates","nodes","name","getDisplayValue","option","matchesElementName","component","createGhostElement","ghost","sourceElement","sameRenderRoot","root1","element1","root2","element2","sameShadowRoot","sameDocumentRoot","getAnchorNames","removeAnchorName","anchorNames","appendAnchorName","sameOrderedStringArray","a","b","index","uniqueNonEmptyStrings","values"],"sources":["../../../src/internal/utils/dom.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LogService } from '../services/log.service.js';\nimport { isFocusable } from './focus.js';\n\nexport function getChildren(node: Document | Node | HTMLElement): Element[] {\n if (node instanceof Document && node.documentElement) {\n return Array.from(node.documentElement.children); // root document children\n } else if (node instanceof HTMLElement && node.shadowRoot) {\n return Array.from(node.shadowRoot.children); // shadow root direct children\n } else if (node instanceof HTMLSlotElement && node.assignedElements) {\n const slotted = node.assignedElements(); // slotted elements\n return slotted.length ? slotted : Array.from(node.children); // slot fallback\n } else {\n return Array.from((node as HTMLElement).children); // light DOM direct children\n }\n}\n\nexport function generateId() {\n const uint32 = self.crypto.getRandomValues(new Uint32Array(1))[0]!;\n return `_${uint32.toString(16)}`;\n}\n\nexport function getAttributeChanges(element: HTMLElement, attr: string, fn: (attrValue: string | null) => void) {\n fn(element.getAttribute(attr));\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName === attr) {\n fn((mutation.target as HTMLElement).getAttribute(attr));\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\nexport function getAttributeListChanges(element: HTMLElement, attrs: string[], fn: (mutation: MutationRecord) => void) {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName && attrs.includes(mutation.attributeName)) {\n fn(mutation);\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\n/**\n * Appends styles to the render root of a given element. This is useful for\n * styles that apply outside the scope of the element's shadow\n * root such as UA styles --webkit-* that won't work in a ::slotted selector\n */\nexport function appendRootNodeStyle(host: HTMLElement, styles: string) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(styles);\n const root = host.getRootNode() as Document | ShadowRoot;\n if (root.adoptedStyleSheets) {\n const hasStyleSheet = root.adoptedStyleSheets\n .map(s => styleSheetToString(s))\n .find(s => s === styleSheetToString(stylesheet));\n if (!hasStyleSheet) {\n root.adoptedStyleSheets = [...Array.from(root.adoptedStyleSheets), stylesheet];\n }\n }\n return stylesheet;\n}\n\nexport function styleSheetToString(stylesheet: CSSStyleSheet) {\n return stylesheet.cssRules\n ? Array.from(stylesheet.cssRules)\n .map(rule => rule.cssText || '')\n .join('\\n')\n : '';\n}\n\n/** Intercepts a property setter on an element so `callback` fires on every assignment. Does not use a MutationObserver. */\nexport function getPropertyChanges(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n const own = Object.getOwnPropertyDescriptor(element, key);\n if (own?.configurable === false) return;\n\n let descriptor = own;\n let proto = Object.getPrototypeOf(element);\n while (!descriptor && proto) {\n descriptor = Object.getOwnPropertyDescriptor(proto, key);\n proto = Object.getPrototypeOf(proto);\n }\n if (!descriptor?.set) return;\n const setter = descriptor.set;\n\n let active = true;\n const observation: PropertyDescriptor = {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: descriptor.get,\n set: (val: unknown) => {\n setter.call(element, val);\n if (active) callback(val);\n }\n };\n Object.defineProperty(element, key, observation);\n\n return () => {\n active = false;\n const current = Object.getOwnPropertyDescriptor(element, key);\n if (\n current?.configurable !== observation.configurable ||\n current?.enumerable !== observation.enumerable ||\n current?.get !== observation.get ||\n current?.set !== observation.set\n ) {\n return;\n }\n\n if (own) {\n Object.defineProperty(element, key, own);\n return;\n }\n\n Reflect.deleteProperty(element, key);\n };\n}\n\n/* used for cases of needing to know a property update outside of lit, example a native input value prop change */\nexport function getElementUpdate(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n if (element.hasAttribute(key)) {\n callback(element.getAttribute(key));\n } else if ((element as unknown as Record<string, unknown>)[key] !== undefined) {\n callback((element as unknown as Record<string, unknown>)[key]);\n }\n\n const cleanupPropertyChanges = getPropertyChanges(element, key, callback);\n const observer = getAttributeChanges(element, key, val => callback(val));\n const disconnect = observer.disconnect.bind(observer);\n\n observer.disconnect = () => {\n cleanupPropertyChanges?.();\n disconnect();\n };\n\n return observer;\n}\n\nexport function clickOutsideElementBounds(event: PointerEvent | MouseEvent, element: HTMLElement) {\n const { left, right, top, bottom } = element.getBoundingClientRect();\n return event.clientX < left || event.clientX > right || event.clientY < top || event.clientY > bottom;\n}\n\n/** parses number out of basic calc generated by the design tokens */\nexport function parseTokenNumber(value: string) {\n return parseInt(value.includes('calc') ? value.split('*')[1]!.replace('px)', '').trim() : value, 10) || 0;\n}\n\nexport function getCustomElementRegistry(element: Element): CustomElementRegistry | undefined {\n const root = element.getRootNode();\n const CustomElementRegistryConstructor =\n element.ownerDocument.defaultView?.CustomElementRegistry ?? globalThis.CustomElementRegistry;\n if (\n CustomElementRegistryConstructor &&\n 'customElementRegistry' in root &&\n root.customElementRegistry instanceof CustomElementRegistryConstructor\n ) {\n return root.customElementRegistry;\n }\n const documentRegistry = element.ownerDocument.defaultView?.customElements;\n if (documentRegistry) return documentRegistry;\n return typeof customElements === 'undefined' ? undefined : customElements;\n}\n\nexport function isContextMenuClick(event: MouseEvent) {\n return (event.buttons === 2 && !event.ctrlKey) || (event.buttons === 1 && event.ctrlKey);\n}\n\nexport function getFlattenedFocusableItems(element: Node, depth = 10) {\n return getFlattenedDOMTree(element, depth).filter((e: HTMLElement) => isFocusable(e)) as HTMLElement[];\n}\n\n/**\n * Preserves visual DOM ordering when using slots within Shadow DOM\n * See more information/resources on Shadow DOM linear traversal\n * https://nolanlawson.com/2021/02/13/managing-focus-in-the-shadow-dom/\n * https://www.abeautifulsite.net/posts/querying-through-shadow-roots/\n */\nexport function getFlattenedDOMTree(node: Node, depth = 10): HTMLElement[] {\n return (\n Array.from(getChildren(node)).reduce(\n (p: unknown[], n: Node) => [\n ...p,\n [n, [...Array.from(getChildren(n)).map(i => [i, getFlattenedDOMTree(i, depth)])]]\n ],\n []\n ) as unknown as HTMLElement[]\n ).flat(depth);\n}\n\nexport function validKeyNavigationCode(e: KeyboardEvent): e is KeyboardEvent & { code: KeynavCode } {\n return keynavCodes.has(e.code);\n}\n\nexport enum KeynavCode {\n End = 'End',\n Home = 'Home',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight'\n}\n\nconst keynavCodes: Set<string> = new Set(Object.values(KeynavCode));\n\nexport function hasInvalidDOMGrid(rows: HTMLElement[]) {\n return rows.some(row => row.children.length !== rows[0]!.children.length);\n}\n\nexport function removeEmptyTextNode(node: Node) {\n if ((node as Text)?.wholeText?.trim() === '') {\n (node as Text).remove();\n }\n}\n\nexport function scrollBarWidth() {\n const div = globalThis.document.createElement('div');\n div.style.setProperty('width', '100px');\n div.style.setProperty('height', '100px');\n div.style.setProperty('overflow', 'scroll');\n div.style.setProperty('position', 'absolute');\n div.style.setProperty('top', '-9999px');\n globalThis.document.body.appendChild(div);\n const width = div.offsetWidth - div.clientWidth;\n globalThis.document.body.removeChild(div);\n return width;\n}\n\nexport function hasScrollBar(el: HTMLElement) {\n return el.scrollHeight > el.clientHeight;\n}\n\nexport function hasHorizontalScrollBar(el: HTMLElement) {\n return el.scrollWidth > el.clientWidth;\n}\n\nexport function endOfScrollBox(element: HTMLElement, offset = 0) {\n return element.scrollTop + element.offsetHeight + offset >= element.scrollHeight;\n}\n\nexport async function openEyeDropper(): Promise<string> {\n const EyeDropperConstructor = (\n globalThis as unknown as { EyeDropper?: new () => { open: () => Promise<{ sRGBHex: string }> } }\n ).EyeDropper;\n\n if (!EyeDropperConstructor) {\n LogService.warn('EyeDropper API is unavailable');\n return '';\n }\n\n try {\n return (await new EyeDropperConstructor().open()).sRGBHex;\n } catch (e) {\n LogService.warn(`EyeDropper selection failed: ${(e as Error).message}`);\n return '';\n }\n}\n\n/**\n * provides a object with key/value of the currently applied design tokens\n */\nexport function getThemeTokens(element = globalThis.document.querySelector(':root')!) {\n // default root or provided element\n const styles = getComputedStyle(element);\n let parent: CSSStyleSheet[] = [];\n\n // check for parent iframe, same domain iframes change how the browser accesses style sheets\n try {\n parent = Array.from(globalThis.parent.document.styleSheets);\n } catch {\n // if not accessible, skip\n }\n\n return [...parent, ...Array.from(globalThis.document.styleSheets)]\n .reduce((finalArr: string[][], sheet) => {\n let rules: CSSRule[] = [];\n try {\n rules = [...sheet.cssRules];\n } catch {\n // if the style sheet is not accessible, skip\n }\n return finalArr.concat(\n rules\n .filter(rule => rule.type === 1)\n .reduce((propValArr: string[][], rule) => {\n const props = [...(rule as CSSStyleRule).style]\n .filter((p: string) => p.trim().includes('--nve'))\n .map((propName: string) => [\n propName.trim(),\n (rule as CSSStyleRule).style.getPropertyValue(propName).trim()\n ]);\n return [...propValArr, ...props];\n }, [])\n );\n }, [])\n .reduce(\n (p: Record<string, string>, token: string[]) => ({ ...p, [token[0]!]: styles.getPropertyValue(token[0]!) }),\n {}\n );\n}\n\nexport function removeEmptySlotWhitespace(slot: HTMLSlotElement) {\n if (slotContainsOnlyWhitespace(slot)) {\n slot.assignedNodes().forEach((node: Node) => node.parentNode?.removeChild(node));\n }\n}\n\nexport function slotContainsOnlyWhitespace(slot: HTMLSlotElement) {\n const hasNoElements = !slot.assignedNodes().find(i => i.nodeType !== Node.TEXT_NODE);\n const hasOnlyEmptyTextNodes = !slot\n .assignedNodes()\n .find(i => i.nodeType === Node.TEXT_NODE && (i.textContent ?? '').trim() !== '');\n return hasNoElements && hasOnlyEmptyTextNodes;\n}\n\nexport function applySlotContentStates(slot: HTMLSlotElement, element: HTMLElement & { _internals: ElementInternals }) {\n const nodes = slot.assignedNodes();\n const name = slot.name ?? 'slot';\n\n if (nodes.length) {\n element._internals.states.add(`has-${name}`);\n } else {\n element._internals.states.delete(`has-${name}`);\n }\n}\n\nexport function getDisplayValue(option?: { label?: string; value?: string }): string {\n return option?.label || option?.value || '';\n}\n\n/** determines if HTML element matches the given component tag */\nexport function matchesElementName(element: Partial<HTMLElement>, component: { metadata: { tag: string } }) {\n return element.localName === component.metadata.tag;\n}\n\nexport function createGhostElement(sourceElement: HTMLElement) {\n const ghost = globalThis.document.createElement('div');\n const { width } = sourceElement.getBoundingClientRect();\n ghost.setAttribute('nve-ghost', '');\n ghost.style.minWidth = `${width}px`;\n ghost.style.maxWidth = `${width}px`;\n ghost.style.height = '1px';\n ghost.slot = sourceElement.slot;\n return ghost;\n}\n\nexport function sameRenderRoot(element1: HTMLElement, element2: HTMLElement) {\n const root1 = element1.getRootNode();\n const root2 = element2.getRootNode();\n const sameShadowRoot = root1 instanceof ShadowRoot && root2 instanceof ShadowRoot && root1 === root2;\n const sameDocumentRoot = root1 === globalThis.document && root2 === globalThis.document;\n const sameUnattachedRoot = root1 === root2;\n return sameShadowRoot || sameDocumentRoot || sameUnattachedRoot;\n}\n\nexport function getAnchorNames(element: HTMLElement): string[] {\n return (\n element.style.anchorName\n ?.split(',')\n ?.map(name => name.trim())\n ?.filter(name => name !== 'none' && name !== '') ?? []\n );\n}\n\nexport function removeAnchorName(element: HTMLElement, name: string) {\n const anchorNames = getAnchorNames(element);\n element.style.anchorName = anchorNames.filter(i => i !== name).join(',');\n}\n\nexport function appendAnchorName(element: HTMLElement, name: string) {\n element.style.anchorName = Array.from(new Set([...getAnchorNames(element), name])).join(',');\n}\n\n/**\n * Returns true when both arrays have the same length and each index is strictly equal (`===`).\n */\nexport function sameOrderedStringArray(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\n/**\n * Returns unique non-empty strings in first-seen order (insertion order of a `Set` over the filtered list).\n */\nexport function uniqueNonEmptyStrings(values: Iterable<string | null | undefined>): string[] {\n return Array.from(\n new Set(Array.from(values).filter((value): value is string => typeof value === 'string' && value.length > 0))\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","names":["getChildren","node","slotted","generateId","getAttributeChanges","element","attr","observer","mutation","fn","getAttributeListChanges","attrs","appendRootNodeStyle","stylesheet","styles","root","host","styleSheetToString","s","rule","getPropertyChanges","own","key","descriptor","proto","setter","active","observation","val","callback","current","getElementUpdate","cleanupPropertyChanges","disconnect","clickOutsideElementBounds","event","left","right","top","bottom","parseTokenNumber","value","getCustomElementRegistry","CustomElementRegistryConstructor","isContextMenuClick","getFlattenedFocusableItems","getFlattenedDOMTree","depth","isFocusable","p","n","i","validKeyNavigationCode","keynavCodes","KeynavCode","\"End\"","\"Home\"","\"PageUp\"","\"PageDown\"","\"ArrowUp\"","\"ArrowDown\"","\"ArrowLeft\"","\"ArrowRight\"","hasInvalidDOMGrid","rows","row","removeEmptyTextNode","scrollBarWidth","div","width","hasScrollBar","el","hasHorizontalScrollBar","endOfScrollBox","offset","openEyeDropper","EyeDropperConstructor","LogService","e","getThemeTokens","parent","rules","sheet","finalArr","props","propName","propValArr","token","removeEmptySlotWhitespace","slotContainsOnlyWhitespace","slot","hasNoElements","hasOnlyEmptyTextNodes","applySlotContentStates","nodes","name","getDisplayValue","option","matchesElementName","component","createGhostElement","ghost","sourceElement","sameRenderRoot","root1","element1","root2","element2","sameShadowRoot","sameDocumentRoot","getAnchorNames","removeAnchorName","anchorNames","appendAnchorName","sameOrderedStringArray","a","b","index","uniqueNonEmptyStrings","values"],"sources":["../../../src/internal/utils/dom.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LogService } from '../services/log.service.js';\nimport { isFocusable } from './focus.js';\n\nexport function getChildren(node: Document | Node | HTMLElement): Element[] {\n if (node instanceof Document && node.documentElement) {\n return Array.from(node.documentElement.children); // root document children\n } else if (node instanceof HTMLElement && node.shadowRoot) {\n return Array.from(node.shadowRoot.children); // shadow root direct children\n } else if (node instanceof HTMLSlotElement && node.assignedElements) {\n const slotted = node.assignedElements(); // slotted elements\n return slotted.length ? slotted : Array.from(node.children); // slot fallback\n } else {\n return Array.from((node as HTMLElement).children); // light DOM direct children\n }\n}\n\nexport function generateId() {\n const uint32 = self.crypto.getRandomValues(new Uint32Array(1))[0]!;\n return `_${uint32.toString(16)}`;\n}\n\nexport function getAttributeChanges(element: HTMLElement, attr: string, fn: (attrValue: string | null) => void) {\n fn(element.getAttribute(attr));\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName === attr) {\n fn((mutation.target as HTMLElement).getAttribute(attr));\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\nexport function getAttributeListChanges(element: HTMLElement, attrs: string[], fn: (mutation: MutationRecord) => void) {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName && attrs.includes(mutation.attributeName)) {\n fn(mutation);\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\n/**\n * Appends styles to the render root of a given element. This is useful for\n * styles that apply outside the scope of the element's shadow\n * root such as UA styles --webkit-* that won't work in a ::slotted selector\n */\nexport function appendRootNodeStyle(host: HTMLElement, styles: string) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(styles);\n const root = host.getRootNode() as Document | ShadowRoot;\n if (root.adoptedStyleSheets) {\n const hasStyleSheet = root.adoptedStyleSheets\n .map(s => styleSheetToString(s))\n .find(s => s === styleSheetToString(stylesheet));\n if (!hasStyleSheet) {\n root.adoptedStyleSheets = [...Array.from(root.adoptedStyleSheets), stylesheet];\n }\n }\n return stylesheet;\n}\n\nexport function styleSheetToString(stylesheet: CSSStyleSheet) {\n return stylesheet.cssRules\n ? Array.from(stylesheet.cssRules)\n .map(rule => rule.cssText || '')\n .join('\\n')\n : '';\n}\n\n/** Intercepts a property setter on an element so `callback` fires on every assignment. Does not use a MutationObserver. */\nexport function getPropertyChanges(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n const own = Object.getOwnPropertyDescriptor(element, key);\n if (own?.configurable === false) return;\n\n let descriptor = own;\n let proto = Object.getPrototypeOf(element);\n while (!descriptor && proto) {\n descriptor = Object.getOwnPropertyDescriptor(proto, key);\n proto = Object.getPrototypeOf(proto);\n }\n if (!descriptor?.set) return;\n const setter = descriptor.set;\n\n let active = true;\n const observation: PropertyDescriptor = {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: descriptor.get,\n set: (val: unknown) => {\n setter.call(element, val);\n if (active) callback(val);\n }\n };\n Object.defineProperty(element, key, observation);\n\n return () => {\n active = false;\n const current = Object.getOwnPropertyDescriptor(element, key);\n if (\n current?.configurable !== observation.configurable ||\n current?.enumerable !== observation.enumerable ||\n current?.get !== observation.get ||\n current?.set !== observation.set\n ) {\n return;\n }\n\n if (own) {\n Object.defineProperty(element, key, own);\n return;\n }\n\n Reflect.deleteProperty(element, key);\n };\n}\n\n/* used for cases of needing to know a property update outside of lit, example a native input value prop change */\nexport function getElementUpdate(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n if (element.hasAttribute(key)) {\n callback(element.getAttribute(key));\n } else if ((element as unknown as Record<string, unknown>)[key] !== undefined) {\n callback((element as unknown as Record<string, unknown>)[key]);\n }\n\n const cleanupPropertyChanges = getPropertyChanges(element, key, callback);\n const observer = getAttributeChanges(element, key, val => callback(val));\n const disconnect = observer.disconnect.bind(observer);\n\n observer.disconnect = () => {\n cleanupPropertyChanges?.();\n disconnect();\n };\n\n return observer;\n}\n\nexport function clickOutsideElementBounds(event: PointerEvent | MouseEvent, element: HTMLElement) {\n const { left, right, top, bottom } = element.getBoundingClientRect();\n return event.clientX < left || event.clientX > right || event.clientY < top || event.clientY > bottom;\n}\n\n/** parses number out of basic calc generated by the design tokens */\nexport function parseTokenNumber(value: string) {\n return parseInt(value.includes('calc') ? value.split('*')[1]!.replace('px)', '').trim() : value, 10) || 0;\n}\n\nexport function getCustomElementRegistry(element: Element): CustomElementRegistry | undefined {\n const root = element.getRootNode();\n const CustomElementRegistryConstructor =\n element.ownerDocument.defaultView?.CustomElementRegistry ?? globalThis.CustomElementRegistry;\n if (\n CustomElementRegistryConstructor &&\n 'customElementRegistry' in root &&\n root.customElementRegistry instanceof CustomElementRegistryConstructor\n ) {\n return root.customElementRegistry;\n }\n const documentRegistry = element.ownerDocument.defaultView?.customElements;\n if (documentRegistry) return documentRegistry;\n return typeof customElements === 'undefined' ? undefined : customElements;\n}\n\nexport function isContextMenuClick(event: MouseEvent) {\n return (event.buttons === 2 && !event.ctrlKey) || (event.buttons === 1 && event.ctrlKey);\n}\n\nexport function getFlattenedFocusableItems(element: Node, depth = 10) {\n return getFlattenedDOMTree(element, depth).filter((e: HTMLElement) => isFocusable(e));\n}\n\n/**\n * Preserves visual DOM ordering when using slots within Shadow DOM\n * See more information/resources on Shadow DOM linear traversal\n * https://nolanlawson.com/2021/02/13/managing-focus-in-the-shadow-dom/\n * https://www.abeautifulsite.net/posts/querying-through-shadow-roots/\n */\nexport function getFlattenedDOMTree(node: Node, depth = 10): HTMLElement[] {\n return (\n Array.from(getChildren(node)).reduce(\n (p: unknown[], n: Node) => [\n ...p,\n [n, [...Array.from(getChildren(n)).map(i => [i, getFlattenedDOMTree(i, depth)])]]\n ],\n []\n ) as unknown as HTMLElement[]\n ).flat(depth);\n}\n\nexport function validKeyNavigationCode(e: KeyboardEvent): e is KeyboardEvent & { code: KeynavCode } {\n return keynavCodes.has(e.code);\n}\n\nexport enum KeynavCode {\n End = 'End',\n Home = 'Home',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight'\n}\n\nconst keynavCodes: Set<string> = new Set(Object.values(KeynavCode));\n\nexport function hasInvalidDOMGrid(rows: HTMLElement[]) {\n return rows.some(row => row.children.length !== rows[0]!.children.length);\n}\n\nexport function removeEmptyTextNode(node: Node) {\n if ((node as Text)?.wholeText?.trim() === '') {\n (node as Text).remove();\n }\n}\n\nexport function scrollBarWidth() {\n const div = globalThis.document.createElement('div');\n div.style.setProperty('width', '100px');\n div.style.setProperty('height', '100px');\n div.style.setProperty('overflow', 'scroll');\n div.style.setProperty('position', 'absolute');\n div.style.setProperty('top', '-9999px');\n globalThis.document.body.appendChild(div);\n const width = div.offsetWidth - div.clientWidth;\n globalThis.document.body.removeChild(div);\n return width;\n}\n\nexport function hasScrollBar(el: HTMLElement) {\n return el.scrollHeight > el.clientHeight;\n}\n\nexport function hasHorizontalScrollBar(el: HTMLElement) {\n return el.scrollWidth > el.clientWidth;\n}\n\nexport function endOfScrollBox(element: HTMLElement, offset = 0) {\n return element.scrollTop + element.offsetHeight + offset >= element.scrollHeight;\n}\n\nexport async function openEyeDropper(): Promise<string> {\n const EyeDropperConstructor = (\n globalThis as unknown as { EyeDropper?: new () => { open: () => Promise<{ sRGBHex: string }> } }\n ).EyeDropper;\n\n if (!EyeDropperConstructor) {\n LogService.warn('EyeDropper API is unavailable');\n return '';\n }\n\n try {\n return (await new EyeDropperConstructor().open()).sRGBHex;\n } catch (e) {\n LogService.warn(`EyeDropper selection failed: ${(e as Error).message}`);\n return '';\n }\n}\n\n/**\n * provides a object with key/value of the currently applied design tokens\n */\nexport function getThemeTokens(element = globalThis.document.querySelector(':root')!) {\n // default root or provided element\n const styles = getComputedStyle(element);\n let parent: CSSStyleSheet[] = [];\n\n // check for parent iframe, same domain iframes change how the browser accesses style sheets\n try {\n parent = Array.from(globalThis.parent.document.styleSheets);\n } catch {\n // if not accessible, skip\n }\n\n return [...parent, ...Array.from(globalThis.document.styleSheets)]\n .reduce((finalArr: string[][], sheet) => {\n let rules: CSSRule[] = [];\n try {\n rules = [...sheet.cssRules];\n } catch {\n // if the style sheet is not accessible, skip\n }\n return finalArr.concat(\n rules\n .filter(rule => rule.type === 1)\n .reduce((propValArr: string[][], rule) => {\n const props = [...(rule as CSSStyleRule).style]\n .filter((p: string) => p.trim().includes('--nve'))\n .map((propName: string) => [\n propName.trim(),\n (rule as CSSStyleRule).style.getPropertyValue(propName).trim()\n ]);\n return [...propValArr, ...props];\n }, [])\n );\n }, [])\n .reduce(\n (p: Record<string, string>, token: string[]) => ({ ...p, [token[0]!]: styles.getPropertyValue(token[0]!) }),\n {}\n );\n}\n\nexport function removeEmptySlotWhitespace(slot: HTMLSlotElement) {\n if (slotContainsOnlyWhitespace(slot)) {\n slot.assignedNodes().forEach((node: Node) => node.parentNode?.removeChild(node));\n }\n}\n\nexport function slotContainsOnlyWhitespace(slot: HTMLSlotElement) {\n const hasNoElements = !slot.assignedNodes().find(i => i.nodeType !== Node.TEXT_NODE);\n const hasOnlyEmptyTextNodes = !slot\n .assignedNodes()\n .find(i => i.nodeType === Node.TEXT_NODE && (i.textContent ?? '').trim() !== '');\n return hasNoElements && hasOnlyEmptyTextNodes;\n}\n\nexport function applySlotContentStates(slot: HTMLSlotElement, element: HTMLElement & { _internals: ElementInternals }) {\n const nodes = slot.assignedNodes();\n const name = slot.name ?? 'slot';\n\n if (nodes.length) {\n element._internals.states.add(`has-${name}`);\n } else {\n element._internals.states.delete(`has-${name}`);\n }\n}\n\nexport function getDisplayValue(option?: { label?: string; value?: string }): string {\n return option?.label || option?.value || '';\n}\n\n/** determines if HTML element matches the given component tag */\nexport function matchesElementName(element: Partial<HTMLElement>, component: { metadata: { tag: string } }) {\n return element.localName === component.metadata.tag;\n}\n\nexport function createGhostElement(sourceElement: HTMLElement) {\n const ghost = globalThis.document.createElement('div');\n const { width } = sourceElement.getBoundingClientRect();\n ghost.setAttribute('nve-ghost', '');\n ghost.style.minWidth = `${width}px`;\n ghost.style.maxWidth = `${width}px`;\n ghost.style.height = '1px';\n ghost.slot = sourceElement.slot;\n return ghost;\n}\n\nexport function sameRenderRoot(element1: HTMLElement, element2: HTMLElement) {\n const root1 = element1.getRootNode();\n const root2 = element2.getRootNode();\n const sameShadowRoot = root1 instanceof ShadowRoot && root2 instanceof ShadowRoot && root1 === root2;\n const sameDocumentRoot = root1 === globalThis.document && root2 === globalThis.document;\n const sameUnattachedRoot = root1 === root2;\n return sameShadowRoot || sameDocumentRoot || sameUnattachedRoot;\n}\n\nexport function getAnchorNames(element: HTMLElement): string[] {\n return (\n element.style.anchorName\n ?.split(',')\n ?.map(name => name.trim())\n ?.filter(name => name !== 'none' && name !== '') ?? []\n );\n}\n\nexport function removeAnchorName(element: HTMLElement, name: string) {\n const anchorNames = getAnchorNames(element);\n element.style.anchorName = anchorNames.filter(i => i !== name).join(',');\n}\n\nexport function appendAnchorName(element: HTMLElement, name: string) {\n element.style.anchorName = Array.from(new Set([...getAnchorNames(element), name])).join(',');\n}\n\n/**\n * Returns true when both arrays have the same length and each index is strictly equal (`===`).\n */\nexport function sameOrderedStringArray(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\n/**\n * Returns unique non-empty strings in first-seen order (insertion order of a `Set` over the filtered list).\n */\nexport function uniqueNonEmptyStrings(values: Iterable<string | null | undefined>): string[] {\n return Array.from(\n new Set(Array.from(values).filter((value): value is string => typeof value === 'string' && value.length > 0))\n );\n}\n"],"mappings":"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"}
@@ -38,7 +38,7 @@ var d = {
38
38
  static {
39
39
  this.metadata = {
40
40
  tag: "nve-joystick",
41
- version: "2.20.3",
41
+ version: "2.21.1",
42
42
  valueSchema: {
43
43
  type: "object",
44
44
  properties: {
@@ -12,7 +12,7 @@ var c = class extends a {
12
12
  static {
13
13
  this.metadata = {
14
14
  tag: "nve-logo",
15
- version: "2.20.3"
15
+ version: "2.21.1"
16
16
  };
17
17
  }
18
18
  render() {
@@ -21,7 +21,7 @@ var d = class extends c {
21
21
  static {
22
22
  this.metadata = {
23
23
  tag: "nve-menu-group",
24
- version: "2.20.3",
24
+ version: "2.21.1",
25
25
  children: ["nve-menu"]
26
26
  };
27
27
  }
@@ -13,7 +13,7 @@ var c = class extends s(i) {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-menu-item",
16
- version: "2.20.3",
16
+ version: "2.21.1",
17
17
  parents: ["nve-menu"]
18
18
  };
19
19
  }
@@ -17,7 +17,7 @@ var f = class extends c {
17
17
  static {
18
18
  this.metadata = {
19
19
  tag: "nve-menu",
20
- version: "2.20.3",
20
+ version: "2.21.1",
21
21
  children: ["nve-menu-item", "nve-divider"]
22
22
  };
23
23
  }
@@ -22,7 +22,7 @@ var l = { expand: "expand" }, u = class extends r {
22
22
  static {
23
23
  this.metadata = {
24
24
  tag: "nve-month",
25
- version: "2.20.3"
25
+ version: "2.21.1"
26
26
  };
27
27
  }
28
28
  static {
@@ -20,7 +20,7 @@ var l = class extends o {
20
20
  static {
21
21
  this.metadata = {
22
22
  tag: "nve-notification-group",
23
- version: "2.20.3",
23
+ version: "2.21.1",
24
24
  children: ["nve-notification"]
25
25
  };
26
26
  }
@@ -40,7 +40,7 @@ var m = {
40
40
  static {
41
41
  this.metadata = {
42
42
  tag: "nve-notification",
43
- version: "2.20.3"
43
+ version: "2.21.1"
44
44
  };
45
45
  }
46
46
  static {
@@ -9,7 +9,7 @@ var i = class extends n {
9
9
  static {
10
10
  this.metadata = {
11
11
  tag: "nve-page-panel-content",
12
- version: "2.20.3"
12
+ version: "2.21.1"
13
13
  };
14
14
  }
15
15
  render() {
@@ -14,7 +14,7 @@ var o = class extends i {
14
14
  static {
15
15
  this.metadata = {
16
16
  tag: "nve-page-panel-footer",
17
- version: "2.20.3"
17
+ version: "2.21.1"
18
18
  };
19
19
  }
20
20
  render() {
@@ -14,7 +14,7 @@ var o = class extends i {
14
14
  static {
15
15
  this.metadata = {
16
16
  tag: "nve-page-panel-header",
17
- version: "2.20.3"
17
+ version: "2.21.1"
18
18
  };
19
19
  }
20
20
  render() {
@@ -15,7 +15,7 @@ var u = class extends s {
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-page-panel",
18
- version: "2.20.3",
18
+ version: "2.21.1",
19
19
  parents: ["nve-page"]
20
20
  };
21
21
  }
@@ -16,7 +16,7 @@ var c = class extends a {
16
16
  static {
17
17
  this.metadata = {
18
18
  tag: "nve-page",
19
- version: "2.20.3"
19
+ version: "2.21.1"
20
20
  };
21
21
  }
22
22
  static {
@@ -12,7 +12,7 @@ var s = class extends a {
12
12
  static {
13
13
  this.metadata = {
14
14
  tag: "nve-page-header",
15
- version: "2.20.3"
15
+ version: "2.21.1"
16
16
  };
17
17
  }
18
18
  render() {
@@ -18,7 +18,7 @@ var u = class extends s {
18
18
  static {
19
19
  this.metadata = {
20
20
  tag: "nve-page-loader",
21
- version: "2.20.3"
21
+ version: "2.21.1"
22
22
  };
23
23
  }
24
24
  static {
@@ -28,7 +28,7 @@ var g = {
28
28
  static {
29
29
  this.metadata = {
30
30
  tag: "nve-pagination",
31
- version: "2.20.3",
31
+ version: "2.21.1",
32
32
  valueSchema: { type: "number" }
33
33
  };
34
34
  }
@@ -26,7 +26,7 @@ var g = {
26
26
  static {
27
27
  this.metadata = {
28
28
  tag: "nve-panel-header",
29
- version: "2.20.3"
29
+ version: "2.21.1"
30
30
  };
31
31
  }
32
32
  render() {
@@ -42,7 +42,7 @@ var g = {
42
42
  static {
43
43
  this.metadata = {
44
44
  tag: "nve-panel-content",
45
- version: "2.20.3"
45
+ version: "2.21.1"
46
46
  };
47
47
  }
48
48
  render() {
@@ -55,7 +55,7 @@ var g = {
55
55
  static {
56
56
  this.metadata = {
57
57
  tag: "nve-panel-footer",
58
- version: "2.20.3"
58
+ version: "2.21.1"
59
59
  };
60
60
  }
61
61
  render() {
@@ -74,7 +74,7 @@ var g = {
74
74
  static {
75
75
  this.metadata = {
76
76
  tag: "nve-panel",
77
- version: "2.20.3"
77
+ version: "2.21.1"
78
78
  };
79
79
  }
80
80
  static {
@@ -29,7 +29,7 @@ var u = {
29
29
  static {
30
30
  this.metadata = {
31
31
  tag: "nve-password",
32
- version: "2.20.3"
32
+ version: "2.21.1"
33
33
  };
34
34
  }
35
35
  static {
@@ -48,7 +48,7 @@ var S = class extends g(u) {
48
48
  static {
49
49
  this.metadata = {
50
50
  tag: "nve-preferences-input",
51
- version: "2.20.3",
51
+ version: "2.21.1",
52
52
  valueSchema: {
53
53
  type: "object",
54
54
  properties: {
@@ -16,7 +16,7 @@ var c = class extends i {
16
16
  static {
17
17
  this.metadata = {
18
18
  tag: "nve-progress-bar",
19
- version: "2.20.3"
19
+ version: "2.21.1"
20
20
  };
21
21
  }
22
22
  render() {
@@ -16,7 +16,7 @@ var c = { loading: "loading" }, l = class extends i {
16
16
  static {
17
17
  this.metadata = {
18
18
  tag: "nve-progress-dot",
19
- version: "2.20.3"
19
+ version: "2.21.1"
20
20
  };
21
21
  }
22
22
  #e;
@@ -24,7 +24,7 @@ var d = {
24
24
  static {
25
25
  this.metadata = {
26
26
  tag: "nve-progress-ring",
27
- version: "2.20.3"
27
+ version: "2.21.1"
28
28
  };
29
29
  }
30
30
  static {
@@ -23,7 +23,7 @@ var b = { close: "close" }, x = class extends m {
23
23
  static {
24
24
  this.metadata = {
25
25
  tag: "nve-progressive-filter-chip",
26
- version: "2.20.3"
26
+ version: "2.21.1"
27
27
  };
28
28
  }
29
29
  static {
@@ -13,7 +13,7 @@ var c = class extends a {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-pulse",
16
- version: "2.20.3"
16
+ version: "2.21.1"
17
17
  };
18
18
  }
19
19
  static {
@@ -12,7 +12,7 @@ var o = class extends i {
12
12
  static {
13
13
  this.metadata = {
14
14
  tag: "nve-radio-group",
15
- version: "2.20.3",
15
+ version: "2.21.1",
16
16
  children: [
17
17
  "label",
18
18
  "nve-control-message",