@nvidia-elements/core 2.23.4 → 2.23.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/accordion/accordion2.js +49 -49
  3. package/dist/accordion/accordion2.js.map +1 -1
  4. package/dist/alert/alert-group2.js +22 -21
  5. package/dist/alert/alert-group2.js.map +1 -1
  6. package/dist/alert/alert2.js +29 -28
  7. package/dist/alert/alert2.js.map +1 -1
  8. package/dist/avatar/avatar-group2.js +9 -9
  9. package/dist/avatar/avatar-group2.js.map +1 -1
  10. package/dist/avatar/avatar2.js +12 -11
  11. package/dist/avatar/avatar2.js.map +1 -1
  12. package/dist/badge/badge2.js +27 -26
  13. package/dist/badge/badge2.js.map +1 -1
  14. package/dist/breadcrumb/breadcrumb2.js +17 -17
  15. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  16. package/dist/bundles/index.js +6 -6
  17. package/dist/button/button2.js +12 -12
  18. package/dist/button/button2.js.map +1 -1
  19. package/dist/button-group/button-group2.js +18 -18
  20. package/dist/button-group/button-group2.js.map +1 -1
  21. package/dist/card/card2.js +28 -28
  22. package/dist/card/card2.js.map +1 -1
  23. package/dist/chat-message/chat-message2.js +15 -14
  24. package/dist/chat-message/chat-message2.js.map +1 -1
  25. package/dist/checkbox/checkbox-group2.js +8 -8
  26. package/dist/checkbox/checkbox-group2.js.map +1 -1
  27. package/dist/checkbox/checkbox2.js +8 -8
  28. package/dist/checkbox/checkbox2.js.map +1 -1
  29. package/dist/color/color2.js +21 -21
  30. package/dist/color/color2.js.map +1 -1
  31. package/dist/combobox/combobox2.js +37 -37
  32. package/dist/combobox/combobox2.js.map +1 -1
  33. package/dist/copy-button/copy-button.d.ts +1 -1
  34. package/dist/copy-button/copy-button2.js +21 -21
  35. package/dist/copy-button/copy-button2.js.map +1 -1
  36. package/dist/custom-elements.json +0 -76
  37. package/dist/date/date2.js +19 -19
  38. package/dist/date/date2.js.map +1 -1
  39. package/dist/datetime/datetime2.js +19 -19
  40. package/dist/datetime/datetime2.js.map +1 -1
  41. package/dist/dialog/dialog-footer2.js +7 -7
  42. package/dist/dialog/dialog-footer2.js.map +1 -1
  43. package/dist/dialog/dialog-header2.js +7 -7
  44. package/dist/dialog/dialog-header2.js.map +1 -1
  45. package/dist/dialog/dialog2.js +25 -25
  46. package/dist/dialog/dialog2.js.map +1 -1
  47. package/dist/divider/divider2.js +12 -12
  48. package/dist/divider/divider2.js.map +1 -1
  49. package/dist/dot/dot2.js +17 -16
  50. package/dist/dot/dot2.js.map +1 -1
  51. package/dist/drag-handle/drag-handle2.js +12 -12
  52. package/dist/drag-handle/drag-handle2.js.map +1 -1
  53. package/dist/drawer/drawer-content2.js +7 -7
  54. package/dist/drawer/drawer-content2.js.map +1 -1
  55. package/dist/drawer/drawer-footer2.js +7 -7
  56. package/dist/drawer/drawer-footer2.js.map +1 -1
  57. package/dist/drawer/drawer-header2.js +7 -7
  58. package/dist/drawer/drawer-header2.js.map +1 -1
  59. package/dist/drawer/drawer2.js +21 -21
  60. package/dist/drawer/drawer2.js.map +1 -1
  61. package/dist/dropdown/dropdown-footer2.js +7 -7
  62. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  63. package/dist/dropdown/dropdown-header2.js +7 -7
  64. package/dist/dropdown/dropdown-header2.js.map +1 -1
  65. package/dist/dropdown/dropdown2.js +21 -21
  66. package/dist/dropdown/dropdown2.js.map +1 -1
  67. package/dist/dropdown-group/dropdown-group.js +10 -10
  68. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  69. package/dist/dropzone/dropzone2.js +19 -19
  70. package/dist/dropzone/dropzone2.js.map +1 -1
  71. package/dist/file/file2.js +8 -8
  72. package/dist/file/file2.js.map +1 -1
  73. package/dist/format-bytes/format-bytes2.js +13 -13
  74. package/dist/format-bytes/format-bytes2.js.map +1 -1
  75. package/dist/format-datetime/format-datetime2.js +14 -14
  76. package/dist/format-datetime/format-datetime2.js.map +1 -1
  77. package/dist/format-number/format-number2.js +20 -20
  78. package/dist/format-number/format-number2.js.map +1 -1
  79. package/dist/format-relative-time/format-relative-time2.js +11 -11
  80. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  81. package/dist/format-truncate/format-truncate2.js +21 -21
  82. package/dist/format-truncate/format-truncate2.js.map +1 -1
  83. package/dist/forms/control/control2.js +30 -29
  84. package/dist/forms/control/control2.js.map +1 -1
  85. package/dist/forms/control-group/control-group2.js +19 -18
  86. package/dist/forms/control-group/control-group2.js.map +1 -1
  87. package/dist/forms/control-message/control-message2.js +15 -15
  88. package/dist/forms/control-message/control-message2.js.map +1 -1
  89. package/dist/gauge/gauge2.js +20 -20
  90. package/dist/gauge/gauge2.js.map +1 -1
  91. package/dist/ghost/ghost2.js +10 -10
  92. package/dist/ghost/ghost2.js.map +1 -1
  93. package/dist/grid/cell/cell2.js +9 -9
  94. package/dist/grid/cell/cell2.js.map +1 -1
  95. package/dist/grid/column/column2.js +16 -16
  96. package/dist/grid/column/column2.js.map +1 -1
  97. package/dist/grid/footer/footer2.js +12 -12
  98. package/dist/grid/footer/footer2.js.map +1 -1
  99. package/dist/grid/grid2.js +30 -30
  100. package/dist/grid/grid2.js.map +1 -1
  101. package/dist/grid/header/header2.js +20 -20
  102. package/dist/grid/header/header2.js.map +1 -1
  103. package/dist/grid/placeholder/placeholder2.js +9 -9
  104. package/dist/grid/placeholder/placeholder2.js.map +1 -1
  105. package/dist/grid/row/row2.js +15 -15
  106. package/dist/grid/row/row2.js.map +1 -1
  107. package/dist/icon/icon2.js +40 -40
  108. package/dist/icon/icon2.js.map +1 -1
  109. package/dist/icon-button/icon-button2.js +17 -17
  110. package/dist/icon-button/icon-button2.js.map +1 -1
  111. package/dist/iframe/iframe2.js +7 -7
  112. package/dist/iframe/iframe2.js.map +1 -1
  113. package/dist/index.js +1 -1
  114. package/dist/input/input-group2.js +8 -8
  115. package/dist/input/input-group2.js.map +1 -1
  116. package/dist/input/input2.js +10 -10
  117. package/dist/input/input2.js.map +1 -1
  118. package/dist/internal/controllers/state-expanded.controller.js +1 -1
  119. package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
  120. package/dist/internal/controllers/state-highlighted.controller.js +1 -1
  121. package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
  122. package/dist/internal/controllers/state-scroll.controller.js +1 -1
  123. package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
  124. package/dist/internal/controllers/state-selected.controller.js +1 -1
  125. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  126. package/dist/internal/controllers/type-anchor.controller.js +1 -1
  127. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  128. package/dist/internal/controllers/type-closable.controller.js +1 -1
  129. package/dist/internal/controllers/type-closable.controller.js.map +1 -1
  130. package/dist/internal/controllers/type-expandable.controller.js +1 -1
  131. package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
  132. package/dist/internal/controllers/type-native-popover.controller.js +6 -6
  133. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  134. package/dist/internal/controllers/type-popover.controller.examples.js.map +1 -1
  135. package/dist/internal/controllers/type-selectable.controller.js +1 -1
  136. package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
  137. package/dist/internal/index.d.ts +0 -1
  138. package/dist/internal/index.js +57 -61
  139. package/dist/internal/index.js.map +1 -1
  140. package/dist/internal/styles/index.d.ts +0 -1
  141. package/dist/internal/styles/index.js +5 -15
  142. package/dist/internal/styles/index.js.map +1 -1
  143. package/dist/internal/utils/a11y.d.ts +0 -3
  144. package/dist/internal/utils/a11y.js +6 -9
  145. package/dist/internal/utils/a11y.js.map +1 -1
  146. package/dist/joystick/joystick2.js +19 -19
  147. package/dist/joystick/joystick2.js.map +1 -1
  148. package/dist/logo/logo2.js +14 -13
  149. package/dist/logo/logo2.js.map +1 -1
  150. package/dist/menu/menu-group2.js +20 -20
  151. package/dist/menu/menu-group2.js.map +1 -1
  152. package/dist/menu/menu-item2.js +11 -11
  153. package/dist/menu/menu-item2.js.map +1 -1
  154. package/dist/menu/menu2.js +14 -14
  155. package/dist/menu/menu2.js.map +1 -1
  156. package/dist/month/month2.js +19 -19
  157. package/dist/month/month2.js.map +1 -1
  158. package/dist/notification/notification-group2.js +13 -13
  159. package/dist/notification/notification-group2.js.map +1 -1
  160. package/dist/notification/notification2.js +31 -31
  161. package/dist/notification/notification2.js.map +1 -1
  162. package/dist/page/page-panel/page-panel-content2.js +7 -7
  163. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  164. package/dist/page/page-panel/page-panel-footer2.js +9 -9
  165. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  166. package/dist/page/page-panel/page-panel-header2.js +9 -9
  167. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  168. package/dist/page/page-panel/page-panel2.js +15 -15
  169. package/dist/page/page-panel/page-panel2.js.map +1 -1
  170. package/dist/page/page2.js +13 -13
  171. package/dist/page/page2.js.map +1 -1
  172. package/dist/page-header/page-header2.js +10 -10
  173. package/dist/page-header/page-header2.js.map +1 -1
  174. package/dist/page-loader/page-loader2.js +13 -13
  175. package/dist/page-loader/page-loader2.js.map +1 -1
  176. package/dist/pagination/pagination2.js +34 -34
  177. package/dist/pagination/pagination2.js.map +1 -1
  178. package/dist/panel/panel2.js +36 -36
  179. package/dist/panel/panel2.js.map +1 -1
  180. package/dist/password/password2.js +19 -19
  181. package/dist/password/password2.js.map +1 -1
  182. package/dist/preferences-input/preferences-input.d.ts +1 -1
  183. package/dist/preferences-input/preferences-input2.js +25 -25
  184. package/dist/preferences-input/preferences-input2.js.map +1 -1
  185. package/dist/progress-bar/progress-bar2.js +13 -13
  186. package/dist/progress-bar/progress-bar2.js.map +1 -1
  187. package/dist/progress-dot/progress-dot2.js +15 -15
  188. package/dist/progress-dot/progress-dot2.js.map +1 -1
  189. package/dist/progress-ring/progress-ring2.js +20 -20
  190. package/dist/progress-ring/progress-ring2.js.map +1 -1
  191. package/dist/progressive-filter-chip/progressive-filter-chip2.js +28 -28
  192. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  193. package/dist/pulse/pulse2.js +15 -15
  194. package/dist/pulse/pulse2.js.map +1 -1
  195. package/dist/radio/radio-group2.js +8 -8
  196. package/dist/radio/radio-group2.js.map +1 -1
  197. package/dist/radio/radio2.js +8 -8
  198. package/dist/radio/radio2.js.map +1 -1
  199. package/dist/range/range2.js +16 -16
  200. package/dist/range/range2.js.map +1 -1
  201. package/dist/resize-handle/resize-handle2.js +17 -17
  202. package/dist/resize-handle/resize-handle2.js.map +1 -1
  203. package/dist/search/search2.js +20 -20
  204. package/dist/search/search2.js.map +1 -1
  205. package/dist/select/select2.js +32 -32
  206. package/dist/select/select2.js.map +1 -1
  207. package/dist/skeleton/skeleton2.js +14 -14
  208. package/dist/skeleton/skeleton2.js.map +1 -1
  209. package/dist/sort-button/sort-button.d.ts +1 -1
  210. package/dist/sort-button/sort-button2.js +16 -16
  211. package/dist/sort-button/sort-button2.js.map +1 -1
  212. package/dist/sparkline/sparkline2.js +45 -44
  213. package/dist/sparkline/sparkline2.js.map +1 -1
  214. package/dist/star-rating/star-rating2.js +14 -14
  215. package/dist/star-rating/star-rating2.js.map +1 -1
  216. package/dist/steps/steps2.js +32 -32
  217. package/dist/steps/steps2.js.map +1 -1
  218. package/dist/switch/switch-group2.js +8 -8
  219. package/dist/switch/switch-group2.js.map +1 -1
  220. package/dist/switch/switch2.js +8 -8
  221. package/dist/switch/switch2.js.map +1 -1
  222. package/dist/tabs/tabs-group2.js +18 -18
  223. package/dist/tabs/tabs-group2.js.map +1 -1
  224. package/dist/tabs/tabs-item-group2.js +9 -9
  225. package/dist/tabs/tabs-item-group2.js.map +1 -1
  226. package/dist/tabs/tabs2.js +28 -28
  227. package/dist/tabs/tabs2.js.map +1 -1
  228. package/dist/tag/tag2.js +19 -18
  229. package/dist/tag/tag2.js.map +1 -1
  230. package/dist/textarea/textarea2.js +9 -9
  231. package/dist/textarea/textarea2.js.map +1 -1
  232. package/dist/time/time2.js +19 -19
  233. package/dist/time/time2.js.map +1 -1
  234. package/dist/toast/toast2.js +28 -28
  235. package/dist/toast/toast2.js.map +1 -1
  236. package/dist/toggletip/toggletip-footer2.js +7 -7
  237. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  238. package/dist/toggletip/toggletip-header2.js +7 -7
  239. package/dist/toggletip/toggletip-header2.js.map +1 -1
  240. package/dist/toggletip/toggletip2.js +23 -23
  241. package/dist/toggletip/toggletip2.js.map +1 -1
  242. package/dist/toolbar/toolbar2.js +20 -19
  243. package/dist/toolbar/toolbar2.js.map +1 -1
  244. package/dist/tooltip/tooltip2.js +20 -20
  245. package/dist/tooltip/tooltip2.js.map +1 -1
  246. package/dist/tree/tree-node2.js +39 -39
  247. package/dist/tree/tree-node2.js.map +1 -1
  248. package/dist/tree/tree2.js +20 -20
  249. package/dist/tree/tree2.js.map +1 -1
  250. package/dist/week/week2.js +19 -19
  251. package/dist/week/week2.js.map +1 -1
  252. package/dist/workspace/panel/panel2.js +14 -14
  253. package/dist/workspace/panel/panel2.js.map +1 -1
  254. package/dist/workspace/panel-content/panel-content2.js +7 -7
  255. package/dist/workspace/panel-content/panel-content2.js.map +1 -1
  256. package/dist/workspace/panel-footer/panel-footer2.js +9 -9
  257. package/dist/workspace/panel-footer/panel-footer2.js.map +1 -1
  258. package/dist/workspace/panel-header/panel-header2.js +16 -16
  259. package/dist/workspace/panel-header/panel-header2.js.map +1 -1
  260. package/dist/workspace/workspace2.js +97 -97
  261. package/dist/workspace/workspace2.js.map +1 -1
  262. package/package.json +2 -2
  263. package/dist/internal/decorators/scoped-registry.d.ts +0 -2
  264. package/dist/internal/decorators/scoped-registry.js +0 -36
  265. package/dist/internal/decorators/scoped-registry.js.map +0 -1
  266. package/dist/internal/styles/base.js +0 -5
  267. package/dist/internal/styles/base.js.map +0 -1
  268. package/dist/internal/styles/interaction-state.js +0 -5
  269. package/dist/internal/styles/interaction-state.js.map +0 -1
@@ -1,40 +1,40 @@
1
1
  import { removeEmptySlotWhitespace as e } from "../internal/utils/dom.js";
2
- import { scopedRegistry as t } from "../internal/decorators/scoped-registry.js";
3
- import { useStyles as n } from "../internal/styles/index.js";
4
- import r from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
5
- import { Icon as i } from "../icon/icon2.js";
6
- import { Button as a } from "../button/button2.js";
7
- import o from "./icon-button.js";
8
- import { html as s } from "lit";
9
- import { property as c } from "lit/decorators/property.js";
2
+ import t from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
3
+ import { Icon as n } from "../icon/icon2.js";
4
+ import { Button as r } from "../button/button2.js";
5
+ import i from "./icon-button.js";
6
+ import { html as a } from "lit";
7
+ import { property as o } from "lit/decorators/property.js";
8
+ import { scopedRegistry as s } from "@nvidia-elements/foundations/internal/decorators";
9
+ import { useStyles as c } from "@nvidia-elements/foundations/internal/styles";
10
10
  // src/icon-button/icon-button.ts
11
- var l = class extends a {
11
+ var l = class extends r {
12
12
  static {
13
- this.styles = n([...a.styles, o]);
13
+ this.styles = c([...r.styles, i]);
14
14
  }
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-icon-button",
18
- version: "2.23.4"
18
+ version: "2.23.5"
19
19
  };
20
20
  }
21
21
  static {
22
- this.elementDefinitions = { [i.metadata.tag]: i };
22
+ this.elementDefinitions = { [n.metadata.tag]: n };
23
23
  }
24
24
  render() {
25
- return s`<div internal-host interaction-state focus-within aria-hidden="true"><slot @slotchange="${(t) => e(t.target)}"><nve-icon .name="${this.iconName}" .appearance="${this.appearance}" .direction="${this.direction}" .size="${this.size}" aria-hidden="true" part="icon"></nve-icon></slot></div><slot name="anchor"></slot>`;
25
+ return a`<div internal-host interaction-state focus-within aria-hidden="true"><slot @slotchange="${(t) => e(t.target)}"><nve-icon .name="${this.iconName}" .appearance="${this.appearance}" .direction="${this.direction}" .size="${this.size}" aria-hidden="true" part="icon"></nve-icon></slot></div><slot name="anchor"></slot>`;
26
26
  }
27
27
  };
28
- r([c({
28
+ t([o({
29
29
  type: String,
30
30
  attribute: "icon-name"
31
- })], l.prototype, "iconName", void 0), r([c({
31
+ })], l.prototype, "iconName", void 0), t([o({
32
32
  type: String,
33
33
  reflect: !0
34
- })], l.prototype, "direction", void 0), r([c({
34
+ })], l.prototype, "direction", void 0), t([o({
35
35
  type: String,
36
36
  reflect: !0
37
- })], l.prototype, "size", void 0), r([c({ type: String })], l.prototype, "appearance", void 0), l = r([t()], l);
37
+ })], l.prototype, "size", void 0), t([o({ type: String })], l.prototype, "appearance", void 0), l = t([s()], l);
38
38
  export { l as IconButton };
39
39
 
40
40
  //# sourceMappingURL=icon-button2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button2.js","names":["styles","_decorate","__decorate","icon_button_default","IconButton","Button","useStyles","Icon","removeEmptySlotWhitespace","e","property","scopedRegistry"],"sources":["../../src/icon-button/icon-button.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { removeEmptySlotWhitespace, scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Button } from '@nvidia-elements/core/button';\nimport type { IconName } from '@nvidia-elements/core/icon';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './icon-button.css?inline';\n\n/**\n * @element nve-icon-button\n * @description An icon button is a button that displays only an icon without a visual label.\n * @documentation https://nvidia.github.io/elements/docs/elements/icon-button/\n * @since 0.2.1\n * @entrypoint \\@nvidia-elements/core/icon-button\n * @slot - default slot for custom icons\n * @cssprop --border-radius\n * @cssprop --padding\n * @cssprop --line-height\n * @cssprop --gap\n * @cssprop --height\n * @cssprop --width\n * @cssprop --font-size\n * @cssprop --color\n * @cssprop --background\n * @csspart icon - The icon element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/button/\n */\n@scopedRegistry()\nexport class IconButton extends Button {\n /**\n * Sets the icon name, which determines which icon to display.\n */\n @property({ type: String, attribute: 'icon-name' }) iconName: IconName;\n\n /**\n * Sets the direction of the icon.\n * Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)\n */\n @property({ type: String, reflect: true }) direction: 'up' | 'down' | 'left' | 'right';\n\n /**\n * Sets size of the icon button.\n */\n @property({ type: String, reflect: true }) size?: Size;\n\n /**\n * Selects the outline or solid form of the named icon. Solid icons use an optional `-solid` asset and fall back to\n * the outline form when that asset is unavailable.\n */\n @property({ type: String }) appearance?: 'outline' | 'solid';\n\n static styles = useStyles([...Button.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-icon-button',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n render() {\n return html`\n <div internal-host interaction-state focus-within aria-hidden=\"true\">\n <slot @slotchange=${(e: Event) => removeEmptySlotWhitespace(e.target as HTMLSlotElement)}>\n <nve-icon .name=${this.iconName} .appearance=${this.appearance} .direction=${this.direction} .size=${this.size} aria-hidden=\"true\" part=\"icon\"></nve-icon>\n </slot>\n </div>\n <slot name=\"anchor\"></slot>\n `;\n }\n}\n"],"mappings":";;;;;;;;;;AAgCO,IAAMI,IAAN,cAAyBC,EAAO;;EAuBrB,KAAA,SAAAC,EAAU,CAAC,GAAGD,EAAO,QAAQL,CAAM,CAAC;;;EAEzB,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;;EAE4B,KAAA,qBAAA,GACzBO,EAAK,SAAS,MAAMA,EACvB;;CAEA,SAAS;EACP,OAAO,CAAI,4FAEc,MAAaC,EAA0BC,EAAE,MAAyB,EAAE,qBACrE,KAAK,SAAS,iBAAe,KAAK,WAAW,gBAAc,KAAK,UAAU,WAAS,KAAK,KAAK;CAKvH;AACF;AAxCGR,EAAA,CAAAS,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAY,CAAC,CAAA,GAAAN,EAAA,WAAA,YAAA,KAAA,CAAA,GAMjDH,EAAA,CAAAS,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAN,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCH,EAAA,CAAAS,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAN,EAAA,WAAA,QAAA,KAAA,CAAA,GAMxCH,EAAA,CAAAS,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAAN,EAAA,WAAA,cAAA,KAAA,CAAA,GAtB3B,IAAAH,EAAA,CAAAU,EAAe,CAAA,GAAAP,CAAA"}
1
+ {"version":3,"file":"icon-button2.js","names":["styles","_decorate","__decorate","icon_button_default","IconButton","Button","useStyles","Icon","removeEmptySlotWhitespace","e","property","scopedRegistry"],"sources":["../../src/icon-button/icon-button.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { removeEmptySlotWhitespace } from '@nvidia-elements/core/internal';\nimport { scopedRegistry } from '@nvidia-elements/foundations/internal/decorators';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport { Button } from '@nvidia-elements/core/button';\nimport type { IconName } from '@nvidia-elements/core/icon';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './icon-button.css?inline';\n\n/**\n * @element nve-icon-button\n * @description An icon button is a button that displays only an icon without a visual label.\n * @documentation https://nvidia.github.io/elements/docs/elements/icon-button/\n * @since 0.2.1\n * @entrypoint \\@nvidia-elements/core/icon-button\n * @slot - default slot for custom icons\n * @cssprop --border-radius\n * @cssprop --padding\n * @cssprop --line-height\n * @cssprop --gap\n * @cssprop --height\n * @cssprop --width\n * @cssprop --font-size\n * @cssprop --color\n * @cssprop --background\n * @csspart icon - The icon element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/button/\n */\n@scopedRegistry()\nexport class IconButton extends Button {\n /**\n * Sets the icon name, which determines which icon to display.\n */\n @property({ type: String, attribute: 'icon-name' }) iconName: IconName;\n\n /**\n * Sets the direction of the icon.\n * Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)\n */\n @property({ type: String, reflect: true }) direction: 'up' | 'down' | 'left' | 'right';\n\n /**\n * Sets size of the icon button.\n */\n @property({ type: String, reflect: true }) size?: Size;\n\n /**\n * Selects the outline or solid form of the named icon. Solid icons use an optional `-solid` asset and fall back to\n * the outline form when that asset is unavailable.\n */\n @property({ type: String }) appearance?: 'outline' | 'solid';\n\n static styles = useStyles([...Button.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-icon-button',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n render() {\n return html`\n <div internal-host interaction-state focus-within aria-hidden=\"true\">\n <slot @slotchange=${(e: Event) => removeEmptySlotWhitespace(e.target as HTMLSlotElement)}>\n <nve-icon .name=${this.iconName} .appearance=${this.appearance} .direction=${this.direction} .size=${this.size} aria-hidden=\"true\" part=\"icon\"></nve-icon>\n </slot>\n </div>\n <slot name=\"anchor\"></slot>\n `;\n }\n}\n"],"mappings":";;;;;;;;;;AAkCO,IAAMI,IAAN,cAAyBC,EAAO;;EAuBrB,KAAA,SAAAC,EAAU,CAAC,GAAGD,EAAO,QAAQL,CAAM,CAAC;;;EAEzB,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;;EAE4B,KAAA,qBAAA,GACzBO,EAAK,SAAS,MAAMA,EACvB;;CAEA,SAAS;EACP,OAAO,CAAI,4FAEc,MAAaC,EAA0BC,EAAE,MAAyB,EAAE,qBACrE,KAAK,SAAS,iBAAe,KAAK,WAAW,gBAAc,KAAK,UAAU,WAAS,KAAK,KAAK;CAKvH;AACF;AAxCGR,EAAA,CAAAS,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAY,CAAC,CAAA,GAAAN,EAAA,WAAA,YAAA,KAAA,CAAA,GAMjDH,EAAA,CAAAS,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAN,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCH,EAAA,CAAAS,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAN,EAAA,WAAA,QAAA,KAAA,CAAA,GAMxCH,EAAA,CAAAS,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAAN,EAAA,WAAA,cAAA,KAAA,CAAA,GAtB3B,IAAAH,EAAA,CAAAU,EAAe,CAAA,GAAAP,CAAA"}
@@ -1,6 +1,6 @@
1
- import { useStyles as e } from "../internal/styles/index.js";
2
- import t from "./iframe.js";
3
- import { LitElement as n, html as r } from "lit";
1
+ import e from "./iframe.js";
2
+ import { LitElement as t, html as n } from "lit";
3
+ import { useStyles as r } from "@nvidia-elements/foundations/internal/styles";
4
4
  // src/iframe/iframe.ts
5
5
  function i(e) {
6
6
  return typeof e == "object" && !!e && "resize" in e && e.resize === !0 && "documentId" in e && typeof e.documentId == "number" && "width" in e && typeof e.width == "number" && (!("height" in e) || typeof e.height == "number");
@@ -40,14 +40,14 @@ var a = "\n window.addEventListener('message', event => {\n if (event.so
40
40
  });
41
41
  resizeObserver.observe(document.body);
42
42
  <\/script>
43
- `, s = class extends n {
43
+ `, s = class extends t {
44
44
  static {
45
- this.styles = e([t]);
45
+ this.styles = r([e]);
46
46
  }
47
47
  static {
48
48
  this.metadata = {
49
49
  tag: "nve-iframe",
50
- version: "2.23.4"
50
+ version: "2.23.5"
51
51
  };
52
52
  }
53
53
  static get observedAttributes() {
@@ -71,7 +71,7 @@ var a = "\n window.addEventListener('message', event => {\n if (event.so
71
71
  #s;
72
72
  #c;
73
73
  render() {
74
- return r`<iframe internal-host title="${this.ariaLabel ?? ""}" sandbox="allow-scripts" @load="${this.#m}"></iframe>`;
74
+ return n`<iframe internal-host title="${this.ariaLabel ?? ""}" sandbox="allow-scripts" @load="${this.#m}"></iframe>`;
75
75
  }
76
76
  connectedCallback() {
77
77
  super.connectedCallback(), globalThis.window.addEventListener("message", this.#g), this.hasUpdated && (this.#u(), this.#d(), this.#f(), this.#p(), this.#l());
@@ -1 +1 @@
1
- {"version":3,"file":"iframe2.js","names":["styles","iframe_default","isResizeMessage","value","iframeThemeScript","iframeScript","documentId","Iframe","LitElement","useStyles","#template","#headTemplate","#iframe","#themeHost","#handleLoad","#handleResizeMessage","#setupTemplateUpdates","#setupTemplateHeadUpdates","#setupLightDomUpdates","#setupThemeUpdates","#updateSource","name","oldValue","newValue","props","#templateObserver","#headTemplateObserver","#lightDomObserver","#themeObserver","iframe","#documentId","theme","template","headTemplate","themeHost","#syncTheme","contentWindow","message","event"],"sources":["../../src/iframe/iframe.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LitElement, html, type PropertyValues } from 'lit';\nimport { useStyles } from '@nvidia-elements/core/internal';\nimport styles from './iframe.css?inline';\n\ntype ResizeMessage = {\n resize: true;\n documentId: number;\n width: number;\n height?: number;\n};\n\ntype ThemeMessage = {\n theme: string;\n};\n\nfunction isResizeMessage(value: unknown): value is ResizeMessage {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'resize' in value &&\n value.resize === true &&\n 'documentId' in value &&\n typeof value.documentId === 'number' &&\n 'width' in value &&\n typeof value.width === 'number' &&\n (!('height' in value) || typeof value.height === 'number')\n );\n}\n\nconst iframeThemeScript = `\n window.addEventListener('message', event => {\n if (event.source !== window.parent || typeof event.data !== 'string') {\n return;\n }\n\n let message;\n try {\n message = JSON.parse(event.data);\n } catch {\n return;\n }\n\n if (typeof message !== 'object' || message === null || typeof message.theme !== 'string') {\n return;\n }\n\n document.documentElement.setAttribute('nve-theme', message.theme);\n document.documentElement.style.colorScheme = message.theme;\n });\n`;\n\nconst iframeScript = (documentId: number) => /* html */ `\n <script type=\"module\">\n ${iframeThemeScript}\n\n let nativeHeight = CSS.supports('frame-sizing', 'content-height') && typeof window.requestResize === 'function';\n let previousWidth;\n if (nativeHeight) {\n // Establish the initial viewport before the load handler releases its height.\n document.documentElement.getBoundingClientRect();\n }\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === document.body) {\n const width = entry.borderBoxSize[0].inlineSize;\n if (nativeHeight) {\n try {\n window.requestResize();\n } catch {\n // Native sizing can reject the document even when the API exists.\n nativeHeight = false;\n }\n if (nativeHeight && width === previousWidth) {\n continue;\n }\n }\n previousWidth = width;\n const size = nativeHeight\n ? { resize: true, documentId: ${documentId}, width }\n : { resize: true, documentId: ${documentId}, width, height: entry.borderBoxSize[0].blockSize };\n window.parent.postMessage(JSON.stringify(size), '*');\n }\n }\n });\n resizeObserver.observe(document.body);\n </script>\n`;\n\n/**\n * @element nve-iframe\n * @description An iframe component that syncs with the parent document's theme and template content. Use when needing to render dynamically generated or isolated content.\n * @since 0.0.0\n * @entrypoint \\@nvidia-elements/core/iframe\n * @documentation https://nvidia.github.io/elements/docs/elements/iframe/\n * @slot - A template containing the iframe body content.\n * @slot head - A template containing content inserted into the iframe head.\n * @cssprop --border\n * @cssprop --width\n * @cssprop --height\n * @beta\n */\nexport class Iframe extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-iframe',\n version: '0.0.0'\n };\n\n static get observedAttributes() {\n return [...super.observedAttributes, 'aria-label'];\n }\n\n get #template() {\n return this.querySelector<HTMLTemplateElement>('template:not([slot])');\n }\n\n get #headTemplate() {\n return this.querySelector<HTMLTemplateElement>('template[slot=\"head\"]');\n }\n\n get #iframe() {\n return this.shadowRoot?.querySelector<HTMLIFrameElement>('iframe') ?? null;\n }\n\n get #themeHost() {\n return this.closest<HTMLElement>('[nve-theme]');\n }\n\n #documentId = 0;\n #templateObserver?: MutationObserver;\n #headTemplateObserver?: MutationObserver;\n #lightDomObserver?: MutationObserver;\n #themeObserver?: MutationObserver;\n\n render() {\n return html`<iframe\n internal-host\n title=${this.ariaLabel ?? ''}\n sandbox=\"allow-scripts\"\n @load=${this.#handleLoad}\n ></iframe>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n globalThis.window.addEventListener('message', this.#handleResizeMessage);\n if (this.hasUpdated) {\n this.#setupTemplateUpdates();\n this.#setupTemplateHeadUpdates();\n this.#setupLightDomUpdates();\n this.#setupThemeUpdates();\n this.#updateSource();\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n super.attributeChangedCallback(name, oldValue, newValue);\n if (name === 'aria-label' && oldValue !== newValue) {\n this.requestUpdate();\n }\n }\n\n firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n this.#setupTemplateUpdates();\n this.#setupTemplateHeadUpdates();\n this.#setupLightDomUpdates();\n this.#setupThemeUpdates();\n this.#updateSource();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#templateObserver?.disconnect();\n this.#headTemplateObserver?.disconnect();\n this.#lightDomObserver?.disconnect();\n this.#themeObserver?.disconnect();\n this.#templateObserver = undefined;\n this.#headTemplateObserver = undefined;\n this.#lightDomObserver = undefined;\n this.#themeObserver = undefined;\n globalThis.window.removeEventListener('message', this.#handleResizeMessage);\n }\n\n // <head> and <body> can't be slotted https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/template#usage_notes\n #updateSource() {\n const iframe = this.#iframe;\n if (iframe === null) {\n return;\n }\n\n // Start each document with the initial height rather than the previous resize result.\n this.#documentId++;\n this.style.setProperty('--_height', '0px');\n if (CSS.supports('frame-sizing', 'content-height')) {\n // Keep the initial viewport until the new document finishes loading.\n iframe.style.height = getComputedStyle(iframe).height;\n }\n const theme = this.#themeHost?.getAttribute('nve-theme') ?? '';\n iframe.srcdoc = `\n <!DOCTYPE html>\n <html nve-theme=\"${theme}\" style=\"color-scheme: ${theme}\">\n <head>\n <meta name=\"responsive-embedded-sizing\" content=\"allow-origins=*\">\n <style>\n html { box-sizing: border-box; }\n *, *:before, *:after { box-sizing: inherit; }\n html, body { margin: 0; overflow: hidden; }\n html { width: 100vw; }\n </style>\n ${this.#headTemplate?.innerHTML ?? ''}\n </head>\n <body nve-text=\"body\">\n ${this.#template?.innerHTML ?? ''}\n ${iframeScript(this.#documentId)}\n </body>\n </html>\n `;\n }\n\n #setupTemplateUpdates() {\n this.#templateObserver?.disconnect();\n const template = this.#template;\n if (template) {\n this.#templateObserver = new MutationObserver(() => this.#updateSource());\n this.#templateObserver.observe(template.content, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true\n });\n } else {\n this.#templateObserver = undefined;\n }\n }\n\n #setupTemplateHeadUpdates() {\n this.#headTemplateObserver?.disconnect();\n const headTemplate = this.#headTemplate;\n if (headTemplate) {\n this.#headTemplateObserver = new MutationObserver(() => this.#updateSource());\n this.#headTemplateObserver.observe(headTemplate.content, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true\n });\n } else {\n this.#headTemplateObserver = undefined;\n }\n }\n\n #setupLightDomUpdates() {\n if (!this.#lightDomObserver) {\n this.#lightDomObserver = new MutationObserver(() => {\n this.#setupTemplateUpdates();\n this.#setupTemplateHeadUpdates();\n this.#updateSource();\n });\n this.#lightDomObserver.observe(this, { childList: true });\n }\n }\n\n #setupThemeUpdates() {\n const themeHost = this.#themeHost;\n if (themeHost && !this.#themeObserver) {\n this.#themeObserver = new MutationObserver(() => this.#syncTheme());\n this.#themeObserver.observe(themeHost, { attributeFilter: ['nve-theme'] });\n }\n }\n\n #handleLoad = () => {\n const iframe = this.#iframe;\n const documentId = this.#documentId;\n requestAnimationFrame(() => {\n if (this.isConnected && documentId === this.#documentId) {\n iframe?.style.removeProperty('height');\n }\n });\n this.#syncTheme();\n };\n\n #syncTheme = () => {\n const theme = this.#themeHost?.getAttribute('nve-theme');\n const contentWindow = this.#iframe?.contentWindow;\n if (theme === null || theme === undefined || contentWindow === null || contentWindow === undefined) {\n return;\n }\n\n const message: ThemeMessage = { theme };\n // Sandboxed srcdoc documents have opaque origins, so authenticate messages by their window reference.\n contentWindow.postMessage(JSON.stringify(message), '*');\n };\n\n #handleResizeMessage = (event: MessageEvent<unknown>) => {\n const iframe = this.#iframe;\n if (iframe === null || event.source !== iframe.contentWindow || typeof event.data !== 'string') {\n return;\n }\n\n let message: unknown;\n try {\n message = JSON.parse(event.data);\n } catch {\n return;\n }\n\n if (!isResizeMessage(message) || message.documentId !== this.#documentId) {\n return;\n }\n\n this.style.setProperty('--_width', `${message.width}px`);\n this.style.setProperty('--_height', message.height === undefined ? 'auto' : `${message.height}px`);\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"iframe2.js","names":["styles","iframe_default","isResizeMessage","value","iframeThemeScript","iframeScript","documentId","Iframe","LitElement","useStyles","#template","#headTemplate","#iframe","#themeHost","#handleLoad","#handleResizeMessage","#setupTemplateUpdates","#setupTemplateHeadUpdates","#setupLightDomUpdates","#setupThemeUpdates","#updateSource","name","oldValue","newValue","props","#templateObserver","#headTemplateObserver","#lightDomObserver","#themeObserver","iframe","#documentId","theme","template","headTemplate","themeHost","#syncTheme","contentWindow","message","event"],"sources":["../../src/iframe/iframe.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LitElement, html, type PropertyValues } from 'lit';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport styles from './iframe.css?inline';\n\ntype ResizeMessage = {\n resize: true;\n documentId: number;\n width: number;\n height?: number;\n};\n\ntype ThemeMessage = {\n theme: string;\n};\n\nfunction isResizeMessage(value: unknown): value is ResizeMessage {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'resize' in value &&\n value.resize === true &&\n 'documentId' in value &&\n typeof value.documentId === 'number' &&\n 'width' in value &&\n typeof value.width === 'number' &&\n (!('height' in value) || typeof value.height === 'number')\n );\n}\n\nconst iframeThemeScript = `\n window.addEventListener('message', event => {\n if (event.source !== window.parent || typeof event.data !== 'string') {\n return;\n }\n\n let message;\n try {\n message = JSON.parse(event.data);\n } catch {\n return;\n }\n\n if (typeof message !== 'object' || message === null || typeof message.theme !== 'string') {\n return;\n }\n\n document.documentElement.setAttribute('nve-theme', message.theme);\n document.documentElement.style.colorScheme = message.theme;\n });\n`;\n\nconst iframeScript = (documentId: number) => /* html */ `\n <script type=\"module\">\n ${iframeThemeScript}\n\n let nativeHeight = CSS.supports('frame-sizing', 'content-height') && typeof window.requestResize === 'function';\n let previousWidth;\n if (nativeHeight) {\n // Establish the initial viewport before the load handler releases its height.\n document.documentElement.getBoundingClientRect();\n }\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === document.body) {\n const width = entry.borderBoxSize[0].inlineSize;\n if (nativeHeight) {\n try {\n window.requestResize();\n } catch {\n // Native sizing can reject the document even when the API exists.\n nativeHeight = false;\n }\n if (nativeHeight && width === previousWidth) {\n continue;\n }\n }\n previousWidth = width;\n const size = nativeHeight\n ? { resize: true, documentId: ${documentId}, width }\n : { resize: true, documentId: ${documentId}, width, height: entry.borderBoxSize[0].blockSize };\n window.parent.postMessage(JSON.stringify(size), '*');\n }\n }\n });\n resizeObserver.observe(document.body);\n </script>\n`;\n\n/**\n * @element nve-iframe\n * @description An iframe component that syncs with the parent document's theme and template content. Use when needing to render dynamically generated or isolated content.\n * @since 0.0.0\n * @entrypoint \\@nvidia-elements/core/iframe\n * @documentation https://nvidia.github.io/elements/docs/elements/iframe/\n * @slot - A template containing the iframe body content.\n * @slot head - A template containing content inserted into the iframe head.\n * @cssprop --border\n * @cssprop --width\n * @cssprop --height\n * @beta\n */\nexport class Iframe extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-iframe',\n version: '0.0.0'\n };\n\n static get observedAttributes() {\n return [...super.observedAttributes, 'aria-label'];\n }\n\n get #template() {\n return this.querySelector<HTMLTemplateElement>('template:not([slot])');\n }\n\n get #headTemplate() {\n return this.querySelector<HTMLTemplateElement>('template[slot=\"head\"]');\n }\n\n get #iframe() {\n return this.shadowRoot?.querySelector<HTMLIFrameElement>('iframe') ?? null;\n }\n\n get #themeHost() {\n return this.closest<HTMLElement>('[nve-theme]');\n }\n\n #documentId = 0;\n #templateObserver?: MutationObserver;\n #headTemplateObserver?: MutationObserver;\n #lightDomObserver?: MutationObserver;\n #themeObserver?: MutationObserver;\n\n render() {\n return html`<iframe\n internal-host\n title=${this.ariaLabel ?? ''}\n sandbox=\"allow-scripts\"\n @load=${this.#handleLoad}\n ></iframe>`;\n }\n\n connectedCallback() {\n super.connectedCallback();\n globalThis.window.addEventListener('message', this.#handleResizeMessage);\n if (this.hasUpdated) {\n this.#setupTemplateUpdates();\n this.#setupTemplateHeadUpdates();\n this.#setupLightDomUpdates();\n this.#setupThemeUpdates();\n this.#updateSource();\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n super.attributeChangedCallback(name, oldValue, newValue);\n if (name === 'aria-label' && oldValue !== newValue) {\n this.requestUpdate();\n }\n }\n\n firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n this.#setupTemplateUpdates();\n this.#setupTemplateHeadUpdates();\n this.#setupLightDomUpdates();\n this.#setupThemeUpdates();\n this.#updateSource();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#templateObserver?.disconnect();\n this.#headTemplateObserver?.disconnect();\n this.#lightDomObserver?.disconnect();\n this.#themeObserver?.disconnect();\n this.#templateObserver = undefined;\n this.#headTemplateObserver = undefined;\n this.#lightDomObserver = undefined;\n this.#themeObserver = undefined;\n globalThis.window.removeEventListener('message', this.#handleResizeMessage);\n }\n\n // <head> and <body> can't be slotted https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/template#usage_notes\n #updateSource() {\n const iframe = this.#iframe;\n if (iframe === null) {\n return;\n }\n\n // Start each document with the initial height rather than the previous resize result.\n this.#documentId++;\n this.style.setProperty('--_height', '0px');\n if (CSS.supports('frame-sizing', 'content-height')) {\n // Keep the initial viewport until the new document finishes loading.\n iframe.style.height = getComputedStyle(iframe).height;\n }\n const theme = this.#themeHost?.getAttribute('nve-theme') ?? '';\n iframe.srcdoc = `\n <!DOCTYPE html>\n <html nve-theme=\"${theme}\" style=\"color-scheme: ${theme}\">\n <head>\n <meta name=\"responsive-embedded-sizing\" content=\"allow-origins=*\">\n <style>\n html { box-sizing: border-box; }\n *, *:before, *:after { box-sizing: inherit; }\n html, body { margin: 0; overflow: hidden; }\n html { width: 100vw; }\n </style>\n ${this.#headTemplate?.innerHTML ?? ''}\n </head>\n <body nve-text=\"body\">\n ${this.#template?.innerHTML ?? ''}\n ${iframeScript(this.#documentId)}\n </body>\n </html>\n `;\n }\n\n #setupTemplateUpdates() {\n this.#templateObserver?.disconnect();\n const template = this.#template;\n if (template) {\n this.#templateObserver = new MutationObserver(() => this.#updateSource());\n this.#templateObserver.observe(template.content, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true\n });\n } else {\n this.#templateObserver = undefined;\n }\n }\n\n #setupTemplateHeadUpdates() {\n this.#headTemplateObserver?.disconnect();\n const headTemplate = this.#headTemplate;\n if (headTemplate) {\n this.#headTemplateObserver = new MutationObserver(() => this.#updateSource());\n this.#headTemplateObserver.observe(headTemplate.content, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true\n });\n } else {\n this.#headTemplateObserver = undefined;\n }\n }\n\n #setupLightDomUpdates() {\n if (!this.#lightDomObserver) {\n this.#lightDomObserver = new MutationObserver(() => {\n this.#setupTemplateUpdates();\n this.#setupTemplateHeadUpdates();\n this.#updateSource();\n });\n this.#lightDomObserver.observe(this, { childList: true });\n }\n }\n\n #setupThemeUpdates() {\n const themeHost = this.#themeHost;\n if (themeHost && !this.#themeObserver) {\n this.#themeObserver = new MutationObserver(() => this.#syncTheme());\n this.#themeObserver.observe(themeHost, { attributeFilter: ['nve-theme'] });\n }\n }\n\n #handleLoad = () => {\n const iframe = this.#iframe;\n const documentId = this.#documentId;\n requestAnimationFrame(() => {\n if (this.isConnected && documentId === this.#documentId) {\n iframe?.style.removeProperty('height');\n }\n });\n this.#syncTheme();\n };\n\n #syncTheme = () => {\n const theme = this.#themeHost?.getAttribute('nve-theme');\n const contentWindow = this.#iframe?.contentWindow;\n if (theme === null || theme === undefined || contentWindow === null || contentWindow === undefined) {\n return;\n }\n\n const message: ThemeMessage = { theme };\n // Sandboxed srcdoc documents have opaque origins, so authenticate messages by their window reference.\n contentWindow.postMessage(JSON.stringify(message), '*');\n };\n\n #handleResizeMessage = (event: MessageEvent<unknown>) => {\n const iframe = this.#iframe;\n if (iframe === null || event.source !== iframe.contentWindow || typeof event.data !== 'string') {\n return;\n }\n\n let message: unknown;\n try {\n message = JSON.parse(event.data);\n } catch {\n return;\n }\n\n if (!isResizeMessage(message) || message.documentId !== this.#documentId) {\n return;\n }\n\n this.style.setProperty('--_width', `${message.width}px`);\n this.style.setProperty('--_height', message.height === undefined ? 'auto' : `${message.height}px`);\n };\n}\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { getThemeTokens as e } from "./internal/utils/dom.js";
2
2
  import { statusIcons as t } from "./internal/types/index.js";
3
3
  import { internal_exports as n } from "./internal/index.js";
4
4
  // src/index.ts
5
- var r = "2.23.4", i = "@nvidia-elements", a = n.I18nService;
5
+ var r = "2.23.5", i = "@nvidia-elements", a = n.I18nService;
6
6
  export { a as I18nService, i as SCOPE, r as VERSION, e as getThemeTokens, t as statusIcons };
7
7
 
8
8
  //# sourceMappingURL=index.js.map
@@ -1,21 +1,21 @@
1
1
  import { appendRootNodeStyle as e } from "../internal/utils/dom.js";
2
- import { useStyles as t } from "../internal/styles/index.js";
3
- import { ControlGroup as n } from "../forms/control-group/control-group2.js";
4
- import r from "./input-group.global.js";
5
- import i from "./input-group.js";
2
+ import { ControlGroup as t } from "../forms/control-group/control-group2.js";
3
+ import n from "./input-group.global.js";
4
+ import r from "./input-group.js";
5
+ import { useStyles as i } from "@nvidia-elements/foundations/internal/styles";
6
6
  // src/input/input-group.ts
7
- var a = class extends n {
7
+ var a = class extends t {
8
8
  static {
9
- this.styles = t([...n.styles, i]);
9
+ this.styles = i([...t.styles, r]);
10
10
  }
11
11
  static {
12
12
  this.metadata = {
13
13
  tag: "nve-input-group",
14
- version: "2.23.4"
14
+ version: "2.23.5"
15
15
  };
16
16
  }
17
17
  async connectedCallback() {
18
- e(this, r), super.connectedCallback(), await this.updateComplete;
18
+ e(this, n), super.connectedCallback(), await this.updateComplete;
19
19
  let t = Array.from(this.shadowRoot.querySelector("slot:not([name])").assignedElements());
20
20
  t[0]?.setAttribute("first-control", ""), t[t.length - 1]?.setAttribute("last-control", "");
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"input-group2.js","names":["styles","globalStyles","input_group_global_default","input_group_default","InputGroup","ControlGroup","useStyles","appendRootNodeStyle","controls"],"sources":["../../src/input/input-group.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { useStyles, appendRootNodeStyle } from '@nvidia-elements/core/internal';\nimport { ControlGroup } from '@nvidia-elements/core/forms';\nimport globalStyles from './input-group.global.css?inline';\nimport styles from './input-group.css?inline';\n\n/**\n * @element nve-input-group\n * @description Visually combines many related input controls into a unified composite field with shared styling.\n * @documentation https://nvidia.github.io/elements/docs/elements/input-group/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/input\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --gap\n * @cssprop --border\n * @cssprop --padding\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input\n */\nexport class InputGroup extends ControlGroup {\n static styles: CSSResult[] = useStyles([...ControlGroup.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-input-group',\n version: '0.0.0'\n };\n\n async connectedCallback() {\n appendRootNodeStyle(this, globalStyles);\n super.connectedCallback();\n await this.updateComplete;\n const controls = Array.from(\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!.assignedElements()\n );\n controls[0]?.setAttribute('first-control', '');\n controls[controls.length - 1]?.setAttribute('last-control', '');\n }\n}\n"],"mappings":";;;;;;AAuBA,IAAaI,IAAb,cAAgCC,EAAa;;EACd,KAAA,SAAAC,EAAU,CAAC,GAAGD,EAAa,QAAQL,CAAM,CAAC;;;EAE5C,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,MAAM,oBAAoB;EAGxB,AAFAO,EAAoB,MAAMN,CAAY,GACtC,MAAM,kBAAkB,GACxB,MAAM,KAAK;EACX,IAAMO,IAAW,MAAM,KACrB,KAAK,WAAY,cAA+B,kBAAkB,CAAC,CAAE,iBAAiB,CACxF;EAEA,AADAA,EAAS,EAAE,EAAE,aAAa,iBAAiB,EAAE,GAC7CA,EAASA,EAAS,SAAS,EAAE,EAAE,aAAa,gBAAgB,EAAE;CAChE;AACF"}
1
+ {"version":3,"file":"input-group2.js","names":["styles","globalStyles","input_group_global_default","input_group_default","InputGroup","ControlGroup","useStyles","appendRootNodeStyle","controls"],"sources":["../../src/input/input-group.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { appendRootNodeStyle } from '@nvidia-elements/core/internal';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport { ControlGroup } from '@nvidia-elements/core/forms';\nimport globalStyles from './input-group.global.css?inline';\nimport styles from './input-group.css?inline';\n\n/**\n * @element nve-input-group\n * @description Visually combines many related input controls into a unified composite field with shared styling.\n * @documentation https://nvidia.github.io/elements/docs/elements/input-group/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/input\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --gap\n * @cssprop --border\n * @cssprop --padding\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input\n */\nexport class InputGroup extends ControlGroup {\n static styles: CSSResult[] = useStyles([...ControlGroup.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-input-group',\n version: '0.0.0'\n };\n\n async connectedCallback() {\n appendRootNodeStyle(this, globalStyles);\n super.connectedCallback();\n await this.updateComplete;\n const controls = Array.from(\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!.assignedElements()\n );\n controls[0]?.setAttribute('first-control', '');\n controls[controls.length - 1]?.setAttribute('last-control', '');\n }\n}\n"],"mappings":";;;;;;AAwBA,IAAaI,IAAb,cAAgCC,EAAa;;EACd,KAAA,SAAAC,EAAU,CAAC,GAAGD,EAAa,QAAQL,CAAM,CAAC;;;EAE5C,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;CAEA,MAAM,oBAAoB;EAGxB,AAFAO,EAAoB,MAAMN,CAAY,GACtC,MAAM,kBAAkB,GACxB,MAAM,KAAK;EACX,IAAMO,IAAW,MAAM,KACrB,KAAK,WAAY,cAA+B,kBAAkB,CAAC,CAAE,iBAAiB,CACxF;EAEA,AADAA,EAAS,EAAE,EAAE,aAAa,iBAAiB,EAAE,GAC7CA,EAASA,EAAS,SAAS,EAAE,EAAE,aAAa,gBAAgB,EAAE;CAChE;AACF"}
@@ -1,27 +1,27 @@
1
- import { useStyles as e } from "../internal/styles/index.js";
2
- import t from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
3
- import { Control as n } from "../forms/control/control2.js";
4
- import r from "./input.js";
5
- import { property as i } from "lit/decorators/property.js";
1
+ import e from "../_virtual/_@oxc-project_runtime@0.155.0/helpers/esm/decorate.js";
2
+ import { Control as t } from "../forms/control/control2.js";
3
+ import n from "./input.js";
4
+ import { property as r } from "lit/decorators/property.js";
5
+ import { useStyles as i } from "@nvidia-elements/foundations/internal/styles";
6
6
  // src/input/input.ts
7
- var a = r, o = class extends n {
7
+ var a = n, o = class extends t {
8
8
  constructor(...e) {
9
9
  super(...e), this.rounded = !1;
10
10
  }
11
11
  static {
12
- this.styles = e([...n.styles, r]);
12
+ this.styles = i([...t.styles, n]);
13
13
  }
14
14
  static {
15
15
  this.metadata = {
16
16
  tag: "nve-input",
17
- version: "2.23.4"
17
+ version: "2.23.5"
18
18
  };
19
19
  }
20
20
  };
21
- t([i({
21
+ e([r({
22
22
  type: String,
23
23
  reflect: !0
24
- })], o.prototype, "container", void 0), t([i({
24
+ })], o.prototype, "container", void 0), e([r({
25
25
  type: Boolean,
26
26
  reflect: !0
27
27
  })], o.prototype, "rounded", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"input2.js","names":["styles","_decorate","__decorate","input_default","inputStyles","Input","Control","_args","useStyles","property"],"sources":["../../src/input/input.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport styles from './input.css?inline';\n\nexport const inputStyles = styles;\n\n/**\n * @element nve-input\n * @description An input is a control that enables users to enter text.\n * @documentation https://nvidia.github.io/elements/docs/elements/input/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/input\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @cssprop --color\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --min-width\n * @cssprop --max-width\n * @cssprop --border-bottom\n * @cssprop --box-shadow\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input\n */\nexport class Input extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n /**\n * Sets the rounded visual style of the input.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n static styles: CSSResult[] = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-input',\n version: '0.0.0'\n };\n}\n"],"mappings":";;;;;;AAUA,IAAaI,IAAcJ,GAwBdK,IAAb,cAA2BC,EAAoC;;EAUP,A,aAAA,KAAA,UAAA;;;EAEzB,KAAA,SAAAE,EAAU,CAAC,GAAGF,EAAQ,QAAQN,CAAM,CAAC;;;EAEvC,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;AACF;AAbGC,EAAA,CAAAQ,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAJ,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCJ,EAAA,CAAAQ,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAAJ,EAAA,WAAA,WAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"input2.js","names":["styles","_decorate","__decorate","input_default","inputStyles","Input","Control","_args","useStyles","property"],"sources":["../../src/input/input.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CSSResult } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { useStyles } from '@nvidia-elements/foundations/internal/styles';\nimport { Control } from '@nvidia-elements/core/forms';\nimport styles from './input.css?inline';\n\nexport const inputStyles = styles;\n\n/**\n * @element nve-input\n * @description An input is a control that enables users to enter text.\n * @documentation https://nvidia.github.io/elements/docs/elements/input/\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/input\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @cssprop --color\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --min-width\n * @cssprop --max-width\n * @cssprop --border-bottom\n * @cssprop --box-shadow\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input\n */\nexport class Input extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n /**\n * Sets the rounded visual style of the input.\n */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n static styles: CSSResult[] = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-input',\n version: '0.0.0'\n };\n}\n"],"mappings":";;;;;;AAUA,IAAaI,IAAcJ,GAwBdK,IAAb,cAA2BC,EAAoC;;EAUP,A,aAAA,KAAA,UAAA;;;EAEzB,KAAA,SAAAE,EAAU,CAAC,GAAGF,EAAQ,QAAQN,CAAM,CAAC;;;EAEvC,KAAA,WAAA;GACzB,KAAK;GACL,SAAS;EACX;;AACF;AAbGC,EAAA,CAAAQ,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAAJ,EAAA,WAAA,aAAA,KAAA,CAAA,GAKxCJ,EAAA,CAAAQ,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAAJ,EAAA,WAAA,WAAA,KAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { attachInternals as e } from "../utils/a11y.js";
1
+ import { attachInternals as e } from "@nvidia-elements/foundations/internal/a11y";
2
2
  // src/internal/controllers/state-expanded.controller.ts
3
3
  function t() {
4
4
  return (e) => e.addInitializer((e) => new n(e));
@@ -1 +1 @@
1
- {"version":3,"file":"state-expanded.controller.js","names":["stateExpanded","target","StateExpandedController","instance","host"],"sources":["../../../src/internal/controllers/state-expanded.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds expanded support for interactive custom elements including CSS State psuedo-selector :state(expanded) and aria-expanded.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded\n */\nexport function stateExpanded<T extends Expanded>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateExpandedController(instance));\n}\n\nexport type Expanded = ReactiveElement & { expanded: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateExpandedController<T extends Expanded> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.expanded !== null && this.host.expanded !== undefined) {\n this.host._internals!.ariaExpanded = `${this.host.expanded}`;\n }\n\n if (this.host.expanded) {\n this.host._internals!.states.add('expanded');\n } else {\n this.host._internals!.states.delete('expanded');\n }\n\n if (this.host.readOnly) {\n this.host._internals!.ariaExpanded = null;\n this.host._internals!.states.delete('expanded');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgBA,IAAoD;CAClE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAwBC,CAAQ,CAAC;AACjF;AAIA,IAAaD,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EAWZ,AAVI,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,GAG5C,KAAK,KAAK,aACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
1
+ {"version":3,"file":"state-expanded.controller.js","names":["stateExpanded","target","StateExpandedController","instance","host"],"sources":["../../../src/internal/controllers/state-expanded.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\n/**\n * Adds expanded support for interactive custom elements including CSS State psuedo-selector :state(expanded) and aria-expanded.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded\n */\nexport function stateExpanded<T extends Expanded>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateExpandedController(instance));\n}\n\nexport type Expanded = ReactiveElement & { expanded: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateExpandedController<T extends Expanded> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.expanded !== null && this.host.expanded !== undefined) {\n this.host._internals!.ariaExpanded = `${this.host.expanded}`;\n }\n\n if (this.host.expanded) {\n this.host._internals!.states.add('expanded');\n } else {\n this.host._internals!.states.delete('expanded');\n }\n\n if (this.host.readOnly) {\n this.host._internals!.ariaExpanded = null;\n this.host._internals!.states.delete('expanded');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgBA,IAAoD;CAClE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAwBC,CAAQ,CAAC;AACjF;AAIA,IAAaD,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EAWZ,AAVI,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,GAG5C,KAAK,KAAK,aACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
@@ -1,4 +1,4 @@
1
- import { attachInternals as e } from "../utils/a11y.js";
1
+ import { attachInternals as e } from "@nvidia-elements/foundations/internal/a11y";
2
2
  // src/internal/controllers/state-highlighted.controller.ts
3
3
  function t() {
4
4
  return (e) => e.addInitializer((e) => new n(e));
@@ -1 +1 @@
1
- {"version":3,"file":"state-highlighted.controller.js","names":["stateHighlighted","target","StateHighlightedController","instance","host"],"sources":["../../../src/internal/controllers/state-highlighted.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds highlighted support for interactive custom elements including CSS State psuedo-selector :state(highlighted).\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n */\nexport function stateHighlighted<T extends Highlighted>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateHighlightedController(instance));\n}\n\nexport type Highlighted = ReactiveElement & { highlighted: boolean; _internals?: ElementInternals };\n\nexport class StateHighlightedController<T extends Highlighted> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.highlighted) {\n this.host._internals!.states.add('highlighted');\n } else {\n this.host._internals!.states.delete('highlighted');\n }\n }\n}\n"],"mappings":";;AAWA,SAAgBA,IAA0D;CACxE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAA2BC,CAAQ,CAAC;AACpF;AAIA,IAAaD,IAAb,MAA6F;CAC3F,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,cACZ,KAAK,KAAK,WAAY,OAAO,IAAI,aAAa,IAE9C,KAAK,KAAK,WAAY,OAAO,OAAO,aAAa;CAErD;AACF"}
1
+ {"version":3,"file":"state-highlighted.controller.js","names":["stateHighlighted","target","StateHighlightedController","instance","host"],"sources":["../../../src/internal/controllers/state-highlighted.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\n/**\n * Adds highlighted support for interactive custom elements including CSS State psuedo-selector :state(highlighted).\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n */\nexport function stateHighlighted<T extends Highlighted>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateHighlightedController(instance));\n}\n\nexport type Highlighted = ReactiveElement & { highlighted: boolean; _internals?: ElementInternals };\n\nexport class StateHighlightedController<T extends Highlighted> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.highlighted) {\n this.host._internals!.states.add('highlighted');\n } else {\n this.host._internals!.states.delete('highlighted');\n }\n }\n}\n"],"mappings":";;AAWA,SAAgBA,IAA0D;CACxE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAA2BC,CAAQ,CAAC;AACpF;AAIA,IAAaD,IAAb,MAA6F;CAC3F,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,cACZ,KAAK,KAAK,WAAY,OAAO,IAAI,aAAa,IAE9C,KAAK,KAAK,WAAY,OAAO,OAAO,aAAa;CAErD;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { endOfScrollBox as e } from "../utils/dom.js";
2
- import { attachInternals as t } from "../utils/a11y.js";
2
+ import { attachInternals as t } from "@nvidia-elements/foundations/internal/a11y";
3
3
  // src/internal/controllers/state-scroll.controller.ts
4
4
  function n() {
5
5
  return (e) => e.addInitializer((e) => new r(e));
@@ -1 +1 @@
1
- {"version":3,"file":"state-scroll.controller.js","names":["stateScroll","target","StateScrollController","instance","#target","#offset","host","attachInternals","#syncTarget","#removeTargetListeners","#activeTarget","#onScrollEnd","#startScroll","#cancelScrollEnd","#scrollEndTimeout","endOfScrollBox","states","#onScroll"],"sources":["../../../src/internal/controllers/state-scroll.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals, endOfScrollBox } from '@nvidia-elements/core/internal';\n\n/**\n * Adds active scroll state detection\n */\nexport function stateScroll<T extends Scroll>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateScrollController(instance));\n}\n\nexport interface StateScrollConfig {\n target?: HTMLElement;\n scrollOffset?: number;\n}\n\nexport type Scroll = ReactiveElement & {\n _internals?: ElementInternals;\n stateScrollConfig?: StateScrollConfig;\n};\n\nexport class StateScrollController<T extends Scroll> implements ReactiveController {\n #activeTarget?: HTMLElement;\n #scrollEndTimeout?: ReturnType<typeof setTimeout>;\n\n get #target(): HTMLElement {\n const target = this.host.stateScrollConfig?.target;\n return target ? target : this.host;\n }\n\n get #offset() {\n return this.host.stateScrollConfig?.scrollOffset ?? 0;\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n attachInternals(this.host);\n this.#syncTarget();\n }\n\n hostUpdated() {\n this.#syncTarget();\n }\n\n hostDisconnected() {\n this.#removeTargetListeners();\n }\n\n #syncTarget() {\n const target = this.#target;\n if (this.#activeTarget === target) return;\n\n this.#removeTargetListeners();\n this.#activeTarget = target;\n this.#activeTarget.addEventListener('scrollend', this.#onScrollEnd);\n this.#startScroll();\n }\n\n #onScrollEnd = () => {\n this.#cancelScrollEnd();\n // Keep brief scroll bursts in one state to reduce repeated style invalidation.\n if (this.host._internals!.states.has('scrolling')) {\n this.#scrollEndTimeout = setTimeout(() => {\n this.#scrollEndTimeout = undefined;\n this.host._internals!.states.delete('scrolling');\n }, 100);\n }\n this.#startScroll();\n\n if (this.#activeTarget && endOfScrollBox(this.#activeTarget, this.#offset)) {\n this.host.dispatchEvent(new CustomEvent('scrollboxend', { bubbles: true, composed: true }));\n }\n };\n\n #onScroll = () => {\n this.#cancelScrollEnd();\n const states = this.host._internals!.states;\n if (!states.has('scrolling')) states.add('scrolling');\n };\n\n #cancelScrollEnd() {\n if (this.#scrollEndTimeout !== undefined) {\n clearTimeout(this.#scrollEndTimeout);\n this.#scrollEndTimeout = undefined;\n }\n }\n\n #startScroll() {\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.addEventListener('scroll', this.#onScroll, { once: true });\n }\n\n #removeTargetListeners() {\n this.#cancelScrollEnd();\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.removeEventListener('scrollend', this.#onScrollEnd);\n this.#activeTarget = undefined;\n const states = this.host._internals?.states;\n if (states?.has('scrolling')) states.delete('scrolling');\n }\n}\n"],"mappings":";;;AAUA,SAAgBA,IAAgD;CAC9D,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAsBC,CAAQ,CAAC;AAC/E;AAYA,IAAaD,IAAb,MAAmF;CACjF;CACA;CAEA,IAAIE,KAAuB;EAEzB,OADe,KAAK,KAAK,mBAAmB,UACnB,KAAK;CAChC;CAEA,IAAIC,KAAU;EACZ,OAAO,KAAK,KAAK,mBAAmB,gBAAgB;CACtD;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAGpB,AAFA,MAAM,KAAK,KAAK,gBAChBC,EAAgB,KAAK,IAAI,GACzB,KAAKC,GAAY;CACnB;CAEA,cAAc;EACZ,KAAKA,GAAY;CACnB;CAEA,mBAAmB;EACjB,KAAKC,GAAuB;CAC9B;CAEA,KAAc;EACZ,IAAMR,IAAS,KAAKG;EACpB,AAAI,KAAKM,OAAkBT,MAE3B,KAAKQ,GAAuB,GAC5B,KAAKC,KAAgBT,GACrB,KAAKS,GAAc,iBAAiB,aAAa,KAAKC,EAAY,GAClE,KAAKC,GAAa;CACpB;CAEA,WAAqB;EAWnB,AAVA,KAAKC,GAAiB,GAElB,KAAK,KAAK,WAAY,OAAO,IAAI,WAAW,MAC9C,KAAKC,KAAoB,iBAAiB;GAExC,AADA,KAAKA,KAAoB,KAAA,GACzB,KAAK,KAAK,WAAY,OAAO,OAAO,WAAW;EACjD,GAAG,GAAG,IAER,KAAKF,GAAa,GAEd,KAAKF,MAAiBK,EAAe,KAAKL,IAAe,KAAKL,EAAO,KACvE,KAAK,KAAK,cAAc,IAAI,YAAY,gBAAgB;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CAE9F;CAEA,WAAkB;EAChB,KAAKQ,GAAiB;EACtB,IAAMG,IAAS,KAAK,KAAK,WAAY;EACrC,AAAKA,EAAO,IAAI,WAAW,KAAGA,EAAO,IAAI,WAAW;CACtD;CAEA,KAAmB;EACjB,AAAI,KAAKF,OAAsB,KAAA,MAC7B,aAAa,KAAKA,EAAiB,GACnC,KAAKA,KAAoB,KAAA;CAE7B;CAEA,KAAe;EAEb,AADA,KAAKJ,IAAe,oBAAoB,UAAU,KAAKO,EAAS,GAChE,KAAKP,IAAe,iBAAiB,UAAU,KAAKO,IAAW,EAAE,MAAM,GAAK,CAAC;CAC/E;CAEA,KAAyB;EAIvB,AAHA,KAAKJ,GAAiB,GACtB,KAAKH,IAAe,oBAAoB,UAAU,KAAKO,EAAS,GAChE,KAAKP,IAAe,oBAAoB,aAAa,KAAKC,EAAY,GACtE,KAAKD,KAAgB,KAAA;EACrB,IAAMM,IAAS,KAAK,KAAK,YAAY;EACrC,AAAIA,GAAQ,IAAI,WAAW,KAAGA,EAAO,OAAO,WAAW;CACzD;AACF"}
1
+ {"version":3,"file":"state-scroll.controller.js","names":["stateScroll","target","StateScrollController","instance","#target","#offset","host","attachInternals","#syncTarget","#removeTargetListeners","#activeTarget","#onScrollEnd","#startScroll","#cancelScrollEnd","#scrollEndTimeout","endOfScrollBox","states","#onScroll"],"sources":["../../../src/internal/controllers/state-scroll.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { endOfScrollBox } from '@nvidia-elements/core/internal';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\n/**\n * Adds active scroll state detection\n */\nexport function stateScroll<T extends Scroll>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateScrollController(instance));\n}\n\nexport interface StateScrollConfig {\n target?: HTMLElement;\n scrollOffset?: number;\n}\n\nexport type Scroll = ReactiveElement & {\n _internals?: ElementInternals;\n stateScrollConfig?: StateScrollConfig;\n};\n\nexport class StateScrollController<T extends Scroll> implements ReactiveController {\n #activeTarget?: HTMLElement;\n #scrollEndTimeout?: ReturnType<typeof setTimeout>;\n\n get #target(): HTMLElement {\n const target = this.host.stateScrollConfig?.target;\n return target ? target : this.host;\n }\n\n get #offset() {\n return this.host.stateScrollConfig?.scrollOffset ?? 0;\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n await this.host.updateComplete;\n attachInternals(this.host);\n this.#syncTarget();\n }\n\n hostUpdated() {\n this.#syncTarget();\n }\n\n hostDisconnected() {\n this.#removeTargetListeners();\n }\n\n #syncTarget() {\n const target = this.#target;\n if (this.#activeTarget === target) return;\n\n this.#removeTargetListeners();\n this.#activeTarget = target;\n this.#activeTarget.addEventListener('scrollend', this.#onScrollEnd);\n this.#startScroll();\n }\n\n #onScrollEnd = () => {\n this.#cancelScrollEnd();\n // Keep brief scroll bursts in one state to reduce repeated style invalidation.\n if (this.host._internals!.states.has('scrolling')) {\n this.#scrollEndTimeout = setTimeout(() => {\n this.#scrollEndTimeout = undefined;\n this.host._internals!.states.delete('scrolling');\n }, 100);\n }\n this.#startScroll();\n\n if (this.#activeTarget && endOfScrollBox(this.#activeTarget, this.#offset)) {\n this.host.dispatchEvent(new CustomEvent('scrollboxend', { bubbles: true, composed: true }));\n }\n };\n\n #onScroll = () => {\n this.#cancelScrollEnd();\n const states = this.host._internals!.states;\n if (!states.has('scrolling')) states.add('scrolling');\n };\n\n #cancelScrollEnd() {\n if (this.#scrollEndTimeout !== undefined) {\n clearTimeout(this.#scrollEndTimeout);\n this.#scrollEndTimeout = undefined;\n }\n }\n\n #startScroll() {\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.addEventListener('scroll', this.#onScroll, { once: true });\n }\n\n #removeTargetListeners() {\n this.#cancelScrollEnd();\n this.#activeTarget?.removeEventListener('scroll', this.#onScroll);\n this.#activeTarget?.removeEventListener('scrollend', this.#onScrollEnd);\n this.#activeTarget = undefined;\n const states = this.host._internals?.states;\n if (states?.has('scrolling')) states.delete('scrolling');\n }\n}\n"],"mappings":";;;AAWA,SAAgBA,IAAgD;CAC9D,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAsBC,CAAQ,CAAC;AAC/E;AAYA,IAAaD,IAAb,MAAmF;CACjF;CACA;CAEA,IAAIE,KAAuB;EAEzB,OADe,KAAK,KAAK,mBAAmB,UACnB,KAAK;CAChC;CAEA,IAAIC,KAAU;EACZ,OAAO,KAAK,KAAK,mBAAmB,gBAAgB;CACtD;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAGpB,AAFA,MAAM,KAAK,KAAK,gBAChBC,EAAgB,KAAK,IAAI,GACzB,KAAKC,GAAY;CACnB;CAEA,cAAc;EACZ,KAAKA,GAAY;CACnB;CAEA,mBAAmB;EACjB,KAAKC,GAAuB;CAC9B;CAEA,KAAc;EACZ,IAAMR,IAAS,KAAKG;EACpB,AAAI,KAAKM,OAAkBT,MAE3B,KAAKQ,GAAuB,GAC5B,KAAKC,KAAgBT,GACrB,KAAKS,GAAc,iBAAiB,aAAa,KAAKC,EAAY,GAClE,KAAKC,GAAa;CACpB;CAEA,WAAqB;EAWnB,AAVA,KAAKC,GAAiB,GAElB,KAAK,KAAK,WAAY,OAAO,IAAI,WAAW,MAC9C,KAAKC,KAAoB,iBAAiB;GAExC,AADA,KAAKA,KAAoB,KAAA,GACzB,KAAK,KAAK,WAAY,OAAO,OAAO,WAAW;EACjD,GAAG,GAAG,IAER,KAAKF,GAAa,GAEd,KAAKF,MAAiBK,EAAe,KAAKL,IAAe,KAAKL,EAAO,KACvE,KAAK,KAAK,cAAc,IAAI,YAAY,gBAAgB;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CAE9F;CAEA,WAAkB;EAChB,KAAKQ,GAAiB;EACtB,IAAMG,IAAS,KAAK,KAAK,WAAY;EACrC,AAAKA,EAAO,IAAI,WAAW,KAAGA,EAAO,IAAI,WAAW;CACtD;CAEA,KAAmB;EACjB,AAAI,KAAKF,OAAsB,KAAA,MAC7B,aAAa,KAAKA,EAAiB,GACnC,KAAKA,KAAoB,KAAA;CAE7B;CAEA,KAAe;EAEb,AADA,KAAKJ,IAAe,oBAAoB,UAAU,KAAKO,EAAS,GAChE,KAAKP,IAAe,iBAAiB,UAAU,KAAKO,IAAW,EAAE,MAAM,GAAK,CAAC;CAC/E;CAEA,KAAyB;EAIvB,AAHA,KAAKJ,GAAiB,GACtB,KAAKH,IAAe,oBAAoB,UAAU,KAAKO,EAAS,GAChE,KAAKP,IAAe,oBAAoB,aAAa,KAAKC,EAAY,GACtE,KAAKD,KAAgB,KAAA;EACrB,IAAMM,IAAS,KAAK,KAAK,YAAY;EACrC,AAAIA,GAAQ,IAAI,WAAW,KAAGA,EAAO,OAAO,WAAW;CACzD;AACF"}
@@ -1,4 +1,4 @@
1
- import { attachInternals as e } from "../utils/a11y.js";
1
+ import { attachInternals as e } from "@nvidia-elements/foundations/internal/a11y";
2
2
  // src/internal/controllers/state-selected.controller.ts
3
3
  function t() {
4
4
  return (e) => e.addInitializer((e) => new n(e));
@@ -1 +1 @@
1
- {"version":3,"file":"state-selected.controller.js","names":["stateSelected","target","StateSelectedController","instance","host"],"sources":["../../../src/internal/controllers/state-selected.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds selected support for interactive custom elements including CSS State psuedo-selector :state(selected) and aria-selected.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected\n */\nexport function stateSelected<T extends Selected>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateSelectedController(instance));\n}\n\nexport type Selected = ReactiveElement & { selected: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateSelectedController<T extends Selected> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.readOnly) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.delete('selected');\n return;\n }\n\n if (this.host._internals?.states.has('anchor') && this.host.selected) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.add('selected');\n this.host.querySelector('a')?.setAttribute('aria-current', 'page');\n return;\n }\n\n if (this.host.selected !== null && this.host.selected !== undefined) {\n this.host._internals!.ariaSelected = `${this.host.selected}`;\n }\n\n if (this.host.selected) {\n this.host._internals!.states.add('selected');\n } else {\n this.host._internals!.states.delete('selected');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgBA,IAAoD;CAClE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAwBC,CAAQ,CAAC;AACjF;AAIA,IAAaD,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,YACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,KAI5C,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAAK,KAAK,KAAK,YAC1D,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,GAC3C,KAAK,KAAK,cAAc,GAAG,CAAC,EAAE,aAAa,gBAAgB,MAAM,MAI/D,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
1
+ {"version":3,"file":"state-selected.controller.js","names":["stateSelected","target","StateSelectedController","instance","host"],"sources":["../../../src/internal/controllers/state-selected.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\n/**\n * Adds selected support for interactive custom elements including CSS State psuedo-selector :state(selected) and aria-selected.\n * https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected\n */\nexport function stateSelected<T extends Selected>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) =>\n target.addInitializer!((instance: T) => new StateSelectedController(instance));\n}\n\nexport type Selected = ReactiveElement & { selected: boolean; readOnly?: boolean; _internals?: ElementInternals };\n\nexport class StateSelectedController<T extends Selected> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n }\n\n hostUpdated() {\n if (this.host.readOnly) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.delete('selected');\n return;\n }\n\n if (this.host._internals?.states.has('anchor') && this.host.selected) {\n this.host._internals!.ariaSelected = null;\n this.host._internals!.states.add('selected');\n this.host.querySelector('a')?.setAttribute('aria-current', 'page');\n return;\n }\n\n if (this.host.selected !== null && this.host.selected !== undefined) {\n this.host._internals!.ariaSelected = `${this.host.selected}`;\n }\n\n if (this.host.selected) {\n this.host._internals!.states.add('selected');\n } else {\n this.host._internals!.states.delete('selected');\n }\n }\n}\n"],"mappings":";;AAYA,SAAgBA,IAAoD;CAClE,QAAQ,MACNC,EAAO,gBAAiB,MAAgB,IAAIC,EAAwBC,CAAQ,CAAC;AACjF;AAIA,IAAaD,IAAb,MAAuF;CACrF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAE,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EACd,EAAgB,KAAK,IAAI;CAC3B;CAEA,cAAc;EACZ,AAAI,KAAK,KAAK,YACZ,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU,KAI5C,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAAK,KAAK,KAAK,YAC1D,KAAK,KAAK,WAAY,eAAe,MACrC,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,GAC3C,KAAK,KAAK,cAAc,GAAG,CAAC,EAAE,aAAa,gBAAgB,MAAM,MAI/D,KAAK,KAAK,aAAa,QAAQ,KAAK,KAAK,aAAa,KAAA,MACxD,KAAK,KAAK,WAAY,eAAe,GAAG,KAAK,KAAK,aAGhD,KAAK,KAAK,WACZ,KAAK,KAAK,WAAY,OAAO,IAAI,UAAU,IAE3C,KAAK,KAAK,WAAY,OAAO,OAAO,UAAU;CAElD;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { removeEmptyTextNode as e } from "../utils/dom.js";
2
- import { attachInternals as t } from "../utils/a11y.js";
2
+ import { attachInternals as t } from "@nvidia-elements/foundations/internal/a11y";
3
3
  // src/internal/controllers/type-anchor.controller.ts
4
4
  function n() {
5
5
  return (e) => e.addInitializer((e) => new r(e));
@@ -1 +1 @@
1
- {"version":3,"file":"type-anchor.controller.js","names":["typeAnchor","target","TypeAnchorController","instance","#anchor","#slottedAnchor","#parentAnchor","#defaultSlot","#anchorSlot","host","attachInternals","#updateAnchorSlotAssignment","removeEmptyTextNode","node"],"sources":["../../../src/internal/controllers/type-anchor.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { removeEmptyTextNode } from '../utils/dom.js';\nimport { attachInternals } from '../utils/a11y.js';\n\n/**\n * Adds anchor/link support for interactive custom elements.\n */\nexport function typeAnchor<T extends Anchor>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) => target.addInitializer!((instance: T) => new TypeAnchorController(instance));\n}\n\nexport interface Anchor extends ReactiveElement {\n disabled: boolean;\n readOnly: boolean;\n _internals: ElementInternals;\n}\n\nexport class TypeAnchorController<T extends Anchor> implements ReactiveController {\n get #anchor() {\n return this.#slottedAnchor ? this.#slottedAnchor : this.#parentAnchor;\n }\n\n get #slottedAnchor() {\n // return elements that nest in a slot\n return this.host\n .shadowRoot!.querySelector<HTMLSlotElement>('slot, slot[name=anchor]')\n ?.assignedElements()\n ?.find(e => e?.tagName === 'A');\n }\n\n get #parentAnchor() {\n return this.host.parentElement?.tagName === 'A' ? (this.host.parentElement as HTMLAnchorElement) : null;\n }\n\n get #defaultSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])');\n }\n\n get #anchorSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=anchor]');\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n attachInternals(this.host);\n await this.host.updateComplete;\n\n this.#updateAnchorSlotAssignment();\n\n if (this.#anchor) {\n this.host.readOnly = true;\n this.host._internals?.states.add('anchor');\n } else {\n this.host._internals?.states.delete('anchor');\n }\n\n if (this.#parentAnchor) {\n this.#parentAnchor.style.textDecoration = 'none';\n this.host.style.cursor = 'pointer';\n }\n\n this.#anchor?.addEventListener('click', e => {\n if (this.host.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n });\n }\n\n #updateAnchorSlotAssignment() {\n if (this.#anchor && this.#anchorSlot) {\n this.#anchor.slot = 'anchor';\n this.#defaultSlot?.assignedNodes().forEach(node => removeEmptyTextNode(node));\n }\n }\n}\n"],"mappings":";;;AAWA,SAAgBA,IAA+C;CAC7D,QAAQ,MAAkCC,EAAO,gBAAiB,MAAgB,IAAIC,EAAqBC,CAAQ,CAAC;AACtH;AAQA,IAAaD,IAAb,MAAkF;CAChF,IAAIE,KAAU;EACZ,OAAO,KAAKC,KAAiB,KAAKA,KAAiB,KAAKC;CAC1D;CAEA,IAAID,KAAiB;EAEnB,OAAO,KAAK,KACT,WAAY,cAA+B,yBAAyB,CAAC,EACpE,iBAAiB,CAAC,EAClB,MAAK,MAAK,GAAG,YAAY,GAAG;CAClC;CAEA,IAAIC,KAAgB;EAClB,OAAO,KAAK,KAAK,eAAe,YAAY,MAAO,KAAK,KAAK,gBAAsC;CACrG;CAEA,IAAIC,KAAe;EACjB,OAAO,KAAK,KAAK,WAAY,cAA+B,kBAAkB;CAChF;CAEA,IAAIC,KAAc;EAChB,OAAO,KAAK,KAAK,WAAY,cAA+B,mBAAmB;CACjF;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAkBpB,AAjBAC,EAAgB,KAAK,IAAI,GACzB,MAAM,KAAK,KAAK,gBAEhB,KAAKC,GAA4B,GAE7B,KAAKP,MACP,KAAK,KAAK,WAAW,IACrB,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAEzC,KAAK,KAAK,YAAY,OAAO,OAAO,QAAQ,GAG1C,KAAKE,OACP,KAAKA,GAAc,MAAM,iBAAiB,QAC1C,KAAK,KAAK,MAAM,SAAS,YAG3B,KAAKF,IAAS,iBAAiB,UAAS,MAAK;GAC3C,AAAI,KAAK,KAAK,aACZ,EAAE,eAAe,GACjB,EAAE,yBAAyB;EAE/B,CAAC;CACH;CAEA,KAA8B;EAC5B,AAAI,KAAKA,MAAW,KAAKI,OACvB,KAAKJ,GAAQ,OAAO,UACpB,KAAKG,IAAc,cAAc,CAAC,CAAC,SAAQ,MAAQK,EAAoBC,CAAI,CAAC;CAEhF;AACF"}
1
+ {"version":3,"file":"type-anchor.controller.js","names":["typeAnchor","target","TypeAnchorController","instance","#anchor","#slottedAnchor","#parentAnchor","#defaultSlot","#anchorSlot","host","attachInternals","#updateAnchorSlotAssignment","removeEmptyTextNode","node"],"sources":["../../../src/internal/controllers/type-anchor.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport type { LegacyDecoratorTarget } from '../types/index.js';\nimport { removeEmptyTextNode } from '../utils/dom.js';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\n/**\n * Adds anchor/link support for interactive custom elements.\n */\nexport function typeAnchor<T extends Anchor>(): ClassDecorator {\n return (target: LegacyDecoratorTarget) => target.addInitializer!((instance: T) => new TypeAnchorController(instance));\n}\n\nexport interface Anchor extends ReactiveElement {\n disabled: boolean;\n readOnly: boolean;\n _internals: ElementInternals;\n}\n\nexport class TypeAnchorController<T extends Anchor> implements ReactiveController {\n get #anchor() {\n return this.#slottedAnchor ? this.#slottedAnchor : this.#parentAnchor;\n }\n\n get #slottedAnchor() {\n // return elements that nest in a slot\n return this.host\n .shadowRoot!.querySelector<HTMLSlotElement>('slot, slot[name=anchor]')\n ?.assignedElements()\n ?.find(e => e?.tagName === 'A');\n }\n\n get #parentAnchor() {\n return this.host.parentElement?.tagName === 'A' ? (this.host.parentElement as HTMLAnchorElement) : null;\n }\n\n get #defaultSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])');\n }\n\n get #anchorSlot() {\n return this.host.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=anchor]');\n }\n\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n async hostConnected() {\n attachInternals(this.host);\n await this.host.updateComplete;\n\n this.#updateAnchorSlotAssignment();\n\n if (this.#anchor) {\n this.host.readOnly = true;\n this.host._internals?.states.add('anchor');\n } else {\n this.host._internals?.states.delete('anchor');\n }\n\n if (this.#parentAnchor) {\n this.#parentAnchor.style.textDecoration = 'none';\n this.host.style.cursor = 'pointer';\n }\n\n this.#anchor?.addEventListener('click', e => {\n if (this.host.disabled) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n });\n }\n\n #updateAnchorSlotAssignment() {\n if (this.#anchor && this.#anchorSlot) {\n this.#anchor.slot = 'anchor';\n this.#defaultSlot?.assignedNodes().forEach(node => removeEmptyTextNode(node));\n }\n }\n}\n"],"mappings":";;;AAWA,SAAgBA,IAA+C;CAC7D,QAAQ,MAAkCC,EAAO,gBAAiB,MAAgB,IAAIC,EAAqBC,CAAQ,CAAC;AACtH;AAQA,IAAaD,IAAb,MAAkF;CAChF,IAAIE,KAAU;EACZ,OAAO,KAAKC,KAAiB,KAAKA,KAAiB,KAAKC;CAC1D;CAEA,IAAID,KAAiB;EAEnB,OAAO,KAAK,KACT,WAAY,cAA+B,yBAAyB,CAAC,EACpE,iBAAiB,CAAC,EAClB,MAAK,MAAK,GAAG,YAAY,GAAG;CAClC;CAEA,IAAIC,KAAgB;EAClB,OAAO,KAAK,KAAK,eAAe,YAAY,MAAO,KAAK,KAAK,gBAAsC;CACrG;CAEA,IAAIC,KAAe;EACjB,OAAO,KAAK,KAAK,WAAY,cAA+B,kBAAkB;CAChF;CAEA,IAAIC,KAAc;EAChB,OAAO,KAAK,KAAK,WAAY,cAA+B,mBAAmB;CACjF;CAEA,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,MAAM,gBAAgB;EAkBpB,AAjBAC,EAAgB,KAAK,IAAI,GACzB,MAAM,KAAK,KAAK,gBAEhB,KAAKC,GAA4B,GAE7B,KAAKP,MACP,KAAK,KAAK,WAAW,IACrB,KAAK,KAAK,YAAY,OAAO,IAAI,QAAQ,KAEzC,KAAK,KAAK,YAAY,OAAO,OAAO,QAAQ,GAG1C,KAAKE,OACP,KAAKA,GAAc,MAAM,iBAAiB,QAC1C,KAAK,KAAK,MAAM,SAAS,YAG3B,KAAKF,IAAS,iBAAiB,UAAS,MAAK;GAC3C,AAAI,KAAK,KAAK,aACZ,EAAE,eAAe,GACjB,EAAE,yBAAyB;EAE/B,CAAC;CACH;CAEA,KAA8B;EAC5B,AAAI,KAAKA,MAAW,KAAKI,OACvB,KAAKJ,GAAQ,OAAO,UACpB,KAAKG,IAAc,cAAc,CAAC,CAAC,SAAQ,MAAQK,EAAoBC,CAAI,CAAC;CAEhF;AACF"}
@@ -1,4 +1,4 @@
1
- import { attachInternals as e } from "../utils/a11y.js";
1
+ import { attachInternals as e } from "@nvidia-elements/foundations/internal/a11y";
2
2
  // src/internal/controllers/type-closable.controller.ts
3
3
  var t = class {
4
4
  constructor(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"type-closable.controller.js","names":["TypeClosableController","host","attachInternals","#dispatchEvent"],"sources":["../../../src/internal/controllers/type-closable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '../utils/a11y.js';\n\nexport type TypeClosable = ReactiveElement & { closable: boolean };\n\n/**\n * Controller for enabling closable behavior for elements.\n */\nexport class TypeClosableController<T extends TypeClosable> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', () => {\n this.host.hidden = true;\n this.#dispatchEvent();\n });\n }\n\n close() {\n if (this.host.closable) {\n this.#dispatchEvent();\n }\n }\n\n #dispatchEvent() {\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n}\n"],"mappings":";;AAWA,IAAaA,IAAb,MAA0F;CACxF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFAC,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,iBAAiB;GAE1C,AADA,KAAK,KAAK,SAAS,IACnB,KAAKC,GAAe;EACtB,CAAC;CACH;CAEA,QAAQ;EACN,AAAI,KAAK,KAAK,YACZ,KAAKA,GAAe;CAExB;CAEA,KAAiB;EACf,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;AACF"}
1
+ {"version":3,"file":"type-closable.controller.js","names":["TypeClosableController","host","attachInternals","#dispatchEvent"],"sources":["../../../src/internal/controllers/type-closable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\nexport type TypeClosable = ReactiveElement & { closable: boolean };\n\n/**\n * Controller for enabling closable behavior for elements.\n */\nexport class TypeClosableController<T extends TypeClosable> implements ReactiveController {\n constructor(private host: T) {\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', () => {\n this.host.hidden = true;\n this.#dispatchEvent();\n });\n }\n\n close() {\n if (this.host.closable) {\n this.#dispatchEvent();\n }\n }\n\n #dispatchEvent() {\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n}\n"],"mappings":";;AAWA,IAAaA,IAAb,MAA0F;CACxF,YAAY,GAAiB;EAC3B,AADkB,KAAA,OAAAC,GAClB,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFAC,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,iBAAiB;GAE1C,AADA,KAAK,KAAK,SAAS,IACnB,KAAKC,GAAe;EACtB,CAAC;CACH;CAEA,QAAQ;EACN,AAAI,KAAK,KAAK,YACZ,KAAKA,GAAe;CAExB;CAEA,KAAiB;EACf,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;AACF"}
@@ -1,4 +1,4 @@
1
- import { attachInternals as e } from "../utils/a11y.js";
1
+ import { attachInternals as e } from "@nvidia-elements/foundations/internal/a11y";
2
2
  // src/internal/controllers/type-expandable.controller.ts
3
3
  var t = class {
4
4
  #e = !1;
@@ -1 +1 @@
1
- {"version":3,"file":"type-expandable.controller.js","names":["TypeExpandableController","host","#useHidden","config","attachInternals","#commandTriggered"],"sources":["../../../src/internal/controllers/type-expandable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '../utils/a11y.js';\n\nexport type TypeExpandable = ReactiveElement & {\n expanded?: boolean;\n behaviorExpand?: boolean;\n expandable?: boolean;\n _internals?: ElementInternals;\n};\n\n/**\n * Controller for enabling expandable behavior for elements.\n * @event open - Dispatched when the expandable element opens.\n * @event close - Dispatched when the expandable element closes.\n * @property expanded - expanded state\n * @property behaviorExpand - determines if stateful auto behavior should enable\n */\nexport class TypeExpandableController<T extends TypeExpandable> implements ReactiveController {\n #commandTriggered = false;\n #useHidden = false;\n\n constructor(\n private host: T,\n config: { useHidden?: boolean } = {}\n ) {\n this.#useHidden = config.useHidden ?? false;\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', ((e: CommandEvent) => {\n this.#commandTriggered = true;\n if (e.command === '--toggle') {\n this.toggle();\n }\n\n if (e.command === '--open') {\n this.open();\n }\n\n if (e.command === '--close') {\n this.close();\n }\n this.#commandTriggered = false;\n }) as EventListener);\n }\n\n hostUpdated() {\n this.host.expandable\n ? this.host._internals!.states.add('expandable')\n : this.host._internals!.states.delete('expandable');\n }\n\n open() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = true;\n\n if (this.#useHidden) {\n this.host.hidden = false;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('open', { bubbles: true, composed: true }));\n }\n\n close() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = false;\n\n if (this.#useHidden) {\n this.host.hidden = true;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n\n toggle() {\n if (this.host.expanded || (this.#useHidden && !this.host.hidden)) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n"],"mappings":";;AAoBA,IAAaA,IAAb,MAA8F;CAC5F,KAAoB;CACpB,KAAa;CAEb,YACE,GACA,IAAkC,CAAC,GACnC;EAEA,AAJQ,KAAA,OAAAC,GAGR,KAAKC,KAAaC,EAAO,aAAa,IACtC,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFAC,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,aAAa,MAAoB;GAa1D,AAZA,KAAKC,KAAoB,IACrB,EAAE,YAAY,cAChB,KAAK,OAAO,GAGV,EAAE,YAAY,YAChB,KAAK,KAAK,GAGR,EAAE,YAAY,aAChB,KAAK,MAAM,GAEb,KAAKA,KAAoB;EAC3B,EAAmB;CACrB;CAEA,cAAc;EACZ,KAAK,KAAK,aACN,KAAK,KAAK,WAAY,OAAO,IAAI,YAAY,IAC7C,KAAK,KAAK,WAAY,OAAO,OAAO,YAAY;CACtD;CAEA,OAAO;EASL,CARI,KAAK,KAAK,kBAAkB,KAAKA,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAKH,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,QAAQ;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACpF;CAEA,QAAQ;EASN,CARI,KAAK,KAAK,kBAAkB,KAAKG,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAKH,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;CAEA,SAAS;EACP,AAAI,KAAK,KAAK,YAAa,KAAKA,MAAc,CAAC,KAAK,KAAK,SACvD,KAAK,MAAM,IAEX,KAAK,KAAK;CAEd;AACF"}
1
+ {"version":3,"file":"type-expandable.controller.js","names":["TypeExpandableController","host","#useHidden","config","attachInternals","#commandTriggered"],"sources":["../../../src/internal/controllers/type-expandable.controller.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReactiveController, ReactiveElement } from 'lit';\nimport { attachInternals } from '@nvidia-elements/foundations/internal/a11y';\n\nexport type TypeExpandable = ReactiveElement & {\n expanded?: boolean;\n behaviorExpand?: boolean;\n expandable?: boolean;\n _internals?: ElementInternals;\n};\n\n/**\n * Controller for enabling expandable behavior for elements.\n * @event open - Dispatched when the expandable element opens.\n * @event close - Dispatched when the expandable element closes.\n * @property expanded - expanded state\n * @property behaviorExpand - determines if stateful auto behavior should enable\n */\nexport class TypeExpandableController<T extends TypeExpandable> implements ReactiveController {\n #commandTriggered = false;\n #useHidden = false;\n\n constructor(\n private host: T,\n config: { useHidden?: boolean } = {}\n ) {\n this.#useHidden = config.useHidden ?? false;\n this.host.addController(this);\n }\n\n hostConnected() {\n attachInternals(this.host);\n\n this.host.addEventListener('command', ((e: CommandEvent) => {\n this.#commandTriggered = true;\n if (e.command === '--toggle') {\n this.toggle();\n }\n\n if (e.command === '--open') {\n this.open();\n }\n\n if (e.command === '--close') {\n this.close();\n }\n this.#commandTriggered = false;\n }) as EventListener);\n }\n\n hostUpdated() {\n this.host.expandable\n ? this.host._internals!.states.add('expandable')\n : this.host._internals!.states.delete('expandable');\n }\n\n open() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = true;\n\n if (this.#useHidden) {\n this.host.hidden = false;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('open', { bubbles: true, composed: true }));\n }\n\n close() {\n if (this.host.behaviorExpand || this.#commandTriggered) {\n this.host.expanded = false;\n\n if (this.#useHidden) {\n this.host.hidden = true;\n }\n }\n\n this.host.dispatchEvent(new CustomEvent('close', { bubbles: true, composed: true }));\n }\n\n toggle() {\n if (this.host.expanded || (this.#useHidden && !this.host.hidden)) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n"],"mappings":";;AAoBA,IAAaA,IAAb,MAA8F;CAC5F,KAAoB;CACpB,KAAa;CAEb,YACE,GACA,IAAkC,CAAC,GACnC;EAEA,AAJQ,KAAA,OAAAC,GAGR,KAAKC,KAAaC,EAAO,aAAa,IACtC,KAAK,KAAK,cAAc,IAAI;CAC9B;CAEA,gBAAgB;EAGd,AAFAC,EAAgB,KAAK,IAAI,GAEzB,KAAK,KAAK,iBAAiB,aAAa,MAAoB;GAa1D,AAZA,KAAKC,KAAoB,IACrB,EAAE,YAAY,cAChB,KAAK,OAAO,GAGV,EAAE,YAAY,YAChB,KAAK,KAAK,GAGR,EAAE,YAAY,aAChB,KAAK,MAAM,GAEb,KAAKA,KAAoB;EAC3B,EAAmB;CACrB;CAEA,cAAc;EACZ,KAAK,KAAK,aACN,KAAK,KAAK,WAAY,OAAO,IAAI,YAAY,IAC7C,KAAK,KAAK,WAAY,OAAO,OAAO,YAAY;CACtD;CAEA,OAAO;EASL,CARI,KAAK,KAAK,kBAAkB,KAAKA,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAKH,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,QAAQ;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACpF;CAEA,QAAQ;EASN,CARI,KAAK,KAAK,kBAAkB,KAAKG,QACnC,KAAK,KAAK,WAAW,IAEjB,KAAKH,OACP,KAAK,KAAK,SAAS,MAIvB,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CACrF;CAEA,SAAS;EACP,AAAI,KAAK,KAAK,YAAa,KAAKA,MAAc,CAAC,KAAK,KAAK,SACvD,KAAK,MAAM,IAEX,KAAK,KAAK;CAEd;AACF"}
@@ -1,7 +1,7 @@
1
1
  import { focusElement as e } from "../utils/focus.js";
2
2
  import { clickOutsideElementBounds as t, generateId as n } from "../utils/dom.js";
3
- import { attachInternals as r } from "../utils/a11y.js";
4
- import { getHostAnchor as i, getHostTrigger as a, hasOpenPopover as o } from "./type-native-popover.utils.js";
3
+ import { getHostAnchor as r, getHostTrigger as i, hasOpenPopover as a } from "./type-native-popover.utils.js";
4
+ import { attachInternals as o } from "@nvidia-elements/foundations/internal/a11y";
5
5
  // src/internal/controllers/type-native-popover.controller.ts
6
6
  var s = class {
7
7
  get #e() {
@@ -18,12 +18,12 @@ var s = class {
18
18
  this.host.showPopover = (e) => {
19
19
  if (this.host.isConnected) {
20
20
  let n = e?.source ?? null;
21
- n ||= this.host.anchor ? i(this.host) : this.host.trigger ? a(this.host, this.host.trigger) : globalThis.document.activeElement, t.call(this.host, { source: n });
21
+ n ||= this.host.anchor ? r(this.host) : this.host.trigger ? i(this.host, this.host.trigger) : globalThis.document.activeElement, t.call(this.host, { source: n });
22
22
  }
23
23
  };
24
24
  }
25
25
  async hostConnected() {
26
- r(this.host), this.host.popover = this.host.popoverType ?? null, await this.host.updateComplete, this.host.isConnected && (this.host.setAttribute("nve-popover", ""), this.#m(), this.#p(), this.#d(), this.host.inert = this.host.matches(":not(:popover-open)") && !!this.#e.length, this.host.addEventListener("beforetoggle", this.#b), this.host.addEventListener("toggle", this.#x), this.host.addEventListener("command", this.#S), this.host.addEventListener("interest", this.#C), this.host.addEventListener("loseinterest", this.#w));
26
+ o(this.host), this.host.popover = this.host.popoverType ?? null, await this.host.updateComplete, this.host.isConnected && (this.host.setAttribute("nve-popover", ""), this.#m(), this.#p(), this.#d(), this.host.inert = this.host.matches(":not(:popover-open)") && !!this.#e.length, this.host.addEventListener("beforetoggle", this.#b), this.host.addEventListener("toggle", this.#x), this.host.addEventListener("command", this.#S), this.host.addEventListener("interest", this.#C), this.host.addEventListener("loseinterest", this.#w));
27
27
  }
28
28
  #t = null;
29
29
  #n = null;
@@ -56,7 +56,7 @@ var s = class {
56
56
  this.host.removeEventListener("pointerdown", this.#T), this.host.removeEventListener("pointerup", this.#E), this.host.addEventListener("pointerdown", this.#T), this.host.addEventListener("pointerup", this.#E);
57
57
  }
58
58
  get #f() {
59
- return this.host.trigger ? a(this.host, this.host.trigger) : null;
59
+ return this.host.trigger ? i(this.host, this.host.trigger) : null;
60
60
  }
61
61
  async #p() {
62
62
  await new Promise((e) => requestAnimationFrame(e));
@@ -115,7 +115,7 @@ var s = class {
115
115
  this.host.modal && this.host.matches(":popover-open") && (this.#u = t(e, this.host));
116
116
  };
117
117
  #E = (e) => {
118
- this.#u && this.host.popoverDismissible && this.host.modal && this.host.matches(":popover-open") && !o(this.host) && t(e, this.host) && this.host.hidePopover();
118
+ this.#u && this.host.popoverDismissible && this.host.modal && this.host.matches(":popover-open") && !a(this.host) && t(e, this.host) && this.host.hidePopover();
119
119
  };
120
120
  #D = (e) => {
121
121
  this.host.showPopover({ source: e.currentTarget });