@nvidia-elements/core 0.0.12 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.123.0 → _@oxc-project_runtime@0.128.0}/helpers/decorate.js +1 -1
  3. package/dist/accordion/accordion2.js +12 -12
  4. package/dist/accordion/accordion2.js.map +1 -1
  5. package/dist/alert/alert-group2.js +2 -2
  6. package/dist/alert/alert-group2.js.map +1 -1
  7. package/dist/alert/alert2.js +5 -5
  8. package/dist/alert/alert2.js.map +1 -1
  9. package/dist/avatar/avatar-group2.js +1 -1
  10. package/dist/avatar/avatar-group2.js.map +1 -1
  11. package/dist/avatar/avatar2.js +2 -2
  12. package/dist/avatar/avatar2.js.map +1 -1
  13. package/dist/badge/badge2.js +4 -4
  14. package/dist/badge/badge2.js.map +1 -1
  15. package/dist/breadcrumb/breadcrumb2.js +2 -2
  16. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  17. package/dist/bundle.d.ts +1 -0
  18. package/dist/bundles/index.d.ts +86 -0
  19. package/dist/bundles/index.js +3 -3
  20. package/dist/button/button2.js +2 -2
  21. package/dist/button/button2.js.map +1 -1
  22. package/dist/button-group/button-group2.js +4 -4
  23. package/dist/button-group/button-group2.js.map +1 -1
  24. package/dist/card/card2.js +5 -5
  25. package/dist/card/card2.js.map +1 -1
  26. package/dist/chat-message/chat-message2.js +2 -2
  27. package/dist/chat-message/chat-message2.js.map +1 -1
  28. package/dist/checkbox/checkbox-group2.js +2 -2
  29. package/dist/checkbox/checkbox2.js +2 -2
  30. package/dist/color/color2.js +2 -2
  31. package/dist/color/color2.js.map +1 -1
  32. package/dist/combobox/combobox2.js +6 -6
  33. package/dist/combobox/combobox2.js.map +1 -1
  34. package/dist/copy-button/copy-button2.js +17 -17
  35. package/dist/copy-button/copy-button2.js.map +1 -1
  36. package/dist/custom-elements-jsx.d.ts +50 -0
  37. package/dist/custom-elements-vue.d.ts +50 -0
  38. package/dist/custom-elements.json +790 -43
  39. package/dist/data.html.json +119 -1
  40. package/dist/data.snippets.json +2 -2
  41. package/dist/date/date2.js +2 -2
  42. package/dist/date/date2.js.map +1 -1
  43. package/dist/datetime/datetime2.js +2 -2
  44. package/dist/datetime/datetime2.js.map +1 -1
  45. package/dist/dialog/dialog-footer2.js +2 -2
  46. package/dist/dialog/dialog-footer2.js.map +1 -1
  47. package/dist/dialog/dialog-header2.js +2 -2
  48. package/dist/dialog/dialog-header2.js.map +1 -1
  49. package/dist/dialog/dialog2.js +4 -4
  50. package/dist/dialog/dialog2.js.map +1 -1
  51. package/dist/divider/divider2.js +2 -2
  52. package/dist/divider/divider2.js.map +1 -1
  53. package/dist/dot/dot2.js +2 -2
  54. package/dist/dot/dot2.js.map +1 -1
  55. package/dist/drawer/drawer-content2.js +2 -2
  56. package/dist/drawer/drawer-content2.js.map +1 -1
  57. package/dist/drawer/drawer-footer2.js +2 -2
  58. package/dist/drawer/drawer-footer2.js.map +1 -1
  59. package/dist/drawer/drawer-header2.js +2 -2
  60. package/dist/drawer/drawer-header2.js.map +1 -1
  61. package/dist/drawer/drawer2.js +8 -8
  62. package/dist/drawer/drawer2.js.map +1 -1
  63. package/dist/dropdown/dropdown-footer2.js +2 -2
  64. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  65. package/dist/dropdown/dropdown-header2.js +2 -2
  66. package/dist/dropdown/dropdown-header2.js.map +1 -1
  67. package/dist/dropdown/dropdown2.js +4 -4
  68. package/dist/dropdown/dropdown2.js.map +1 -1
  69. package/dist/dropdown-group/dropdown-group.js +2 -2
  70. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  71. package/dist/dropzone/dropzone.util.js.map +1 -1
  72. package/dist/dropzone/dropzone2.js +4 -4
  73. package/dist/dropzone/dropzone2.js.map +1 -1
  74. package/dist/file/file2.js +1 -1
  75. package/dist/file/file2.js.map +1 -1
  76. package/dist/format-datetime/format-datetime2.js +2 -2
  77. package/dist/format-datetime/format-datetime2.js.map +1 -1
  78. package/dist/format-number/define.d.ts +6 -0
  79. package/dist/format-number/define.js +7 -0
  80. package/dist/format-number/define.js.map +1 -0
  81. package/dist/format-number/format-number.d.ts +87 -0
  82. package/dist/format-number/format-number.examples.js +6 -0
  83. package/dist/format-number/format-number.examples.js.map +1 -0
  84. package/dist/format-number/format-number.examples.json +87 -0
  85. package/dist/format-number/format-number.js +6 -0
  86. package/dist/format-number/format-number.js.map +1 -0
  87. package/dist/format-number/format-number2.js +111 -0
  88. package/dist/format-number/format-number2.js.map +1 -0
  89. package/dist/format-number/index.d.ts +1 -0
  90. package/dist/format-number/index.js +2 -0
  91. package/dist/format-relative-time/format-relative-time2.js +2 -2
  92. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  93. package/dist/forms/control/control2.js +19 -15
  94. package/dist/forms/control/control2.js.map +1 -1
  95. package/dist/forms/control-group/control-group2.js +2 -2
  96. package/dist/forms/control-group/control-group2.js.map +1 -1
  97. package/dist/forms/control-message/control-message2.js +2 -2
  98. package/dist/forms/control-message/control-message2.js.map +1 -1
  99. package/dist/forms/utils/layout.d.ts +2 -1
  100. package/dist/forms/utils/layout.js.map +1 -1
  101. package/dist/forms/utils/states.d.ts +0 -1
  102. package/dist/forms/utils/states.js.map +1 -1
  103. package/dist/forms/utils/types.d.ts +0 -24
  104. package/dist/grid/cell/cell2.js +1 -1
  105. package/dist/grid/cell/cell2.js.map +1 -1
  106. package/dist/grid/column/column2.js +2 -2
  107. package/dist/grid/column/column2.js.map +1 -1
  108. package/dist/grid/footer/footer2.js +2 -2
  109. package/dist/grid/footer/footer2.js.map +1 -1
  110. package/dist/grid/grid2.js +2 -2
  111. package/dist/grid/grid2.js.map +1 -1
  112. package/dist/grid/header/header2.js +2 -2
  113. package/dist/grid/header/header2.js.map +1 -1
  114. package/dist/grid/placeholder/placeholder2.js +1 -1
  115. package/dist/grid/placeholder/placeholder2.js.map +1 -1
  116. package/dist/grid/row/row2.js +2 -2
  117. package/dist/grid/row/row2.js.map +1 -1
  118. package/dist/icon/icon2.js +3 -3
  119. package/dist/icon/icon2.js.map +1 -1
  120. package/dist/icon/icons/academic-cap.js.map +1 -1
  121. package/dist/icon/icons/add-asset.js.map +1 -1
  122. package/dist/icon/icons/add-comment.js.map +1 -1
  123. package/dist/icon/icons/add-grid.js.map +1 -1
  124. package/dist/icon/icons/add-user.js.map +1 -1
  125. package/dist/icon/icons/add.js.map +1 -1
  126. package/dist/icon/icons/ancestors.js.map +1 -1
  127. package/dist/icon/icons/archive.js.map +1 -1
  128. package/dist/icon/icons/arrow-angle.js.map +1 -1
  129. package/dist/icon/icons/arrow-both.js.map +1 -1
  130. package/dist/icon/icons/arrow-cycle.js.map +1 -1
  131. package/dist/icon/icons/arrow-path-rounded-square.js.map +1 -1
  132. package/dist/icon/icons/arrow-stop.js.map +1 -1
  133. package/dist/icon/icons/arrow.js.map +1 -1
  134. package/dist/icon/icons/at-symbol.js.map +1 -1
  135. package/dist/icon/icons/backspace.js.map +1 -1
  136. package/dist/icon/icons/bar-pill-stack.js.map +1 -1
  137. package/dist/icon/icons/bars-3-bottom-left.js.map +1 -1
  138. package/dist/icon/icons/bars-3-bottom-right.js.map +1 -1
  139. package/dist/icon/icons/bars-3-center-left.js.map +1 -1
  140. package/dist/icon/icons/bars-3.js.map +1 -1
  141. package/dist/icon/icons/bars-4.js.map +1 -1
  142. package/dist/icon/icons/beaker.js.map +1 -1
  143. package/dist/icon/icons/bell-slash.js.map +1 -1
  144. package/dist/icon/icons/bell-stroke.js.map +1 -1
  145. package/dist/icon/icons/bell.js.map +1 -1
  146. package/dist/icon/icons/bold.js.map +1 -1
  147. package/dist/icon/icons/book.js.map +1 -1
  148. package/dist/icon/icons/bookmark-stroke.js.map +1 -1
  149. package/dist/icon/icons/bookmark.js.map +1 -1
  150. package/dist/icon/icons/bounding-box.js.map +1 -1
  151. package/dist/icon/icons/branch.js.map +1 -1
  152. package/dist/icon/icons/briefcase.js.map +1 -1
  153. package/dist/icon/icons/broadcast.js.map +1 -1
  154. package/dist/icon/icons/browser.js.map +1 -1
  155. package/dist/icon/icons/bug.js.map +1 -1
  156. package/dist/icon/icons/calendar.js.map +1 -1
  157. package/dist/icon/icons/camera.js.map +1 -1
  158. package/dist/icon/icons/cancel.js.map +1 -1
  159. package/dist/icon/icons/caret.js.map +1 -1
  160. package/dist/icon/icons/carets-closed-square.js.map +1 -1
  161. package/dist/icon/icons/carousel.js.map +1 -1
  162. package/dist/icon/icons/category-list.js.map +1 -1
  163. package/dist/icon/icons/chart-bar.js.map +1 -1
  164. package/dist/icon/icons/chat-bubble.js.map +1 -1
  165. package/dist/icon/icons/chat-bubbles.js.map +1 -1
  166. package/dist/icon/icons/check-badge.js.map +1 -1
  167. package/dist/icon/icons/check.js.map +1 -1
  168. package/dist/icon/icons/checklist.js.map +1 -1
  169. package/dist/icon/icons/checkmark-circle.js.map +1 -1
  170. package/dist/icon/icons/chevron.js.map +1 -1
  171. package/dist/icon/icons/chip.js.map +1 -1
  172. package/dist/icon/icons/circle-angled-line.js.map +1 -1
  173. package/dist/icon/icons/circle-dash.js.map +1 -1
  174. package/dist/icon/icons/circle-dot-arrows.js.map +1 -1
  175. package/dist/icon/icons/circle-dot.js.map +1 -1
  176. package/dist/icon/icons/circle-half.js.map +1 -1
  177. package/dist/icon/icons/circle-rule.js.map +1 -1
  178. package/dist/icon/icons/circle-tick.js.map +1 -1
  179. package/dist/icon/icons/circle.js.map +1 -1
  180. package/dist/icon/icons/clipboard.js.map +1 -1
  181. package/dist/icon/icons/clock-circle-arrow.js.map +1 -1
  182. package/dist/icon/icons/clock.js.map +1 -1
  183. package/dist/icon/icons/cloud-download.js.map +1 -1
  184. package/dist/icon/icons/cloud-upload.js.map +1 -1
  185. package/dist/icon/icons/cloud.js.map +1 -1
  186. package/dist/icon/icons/code.js.map +1 -1
  187. package/dist/icon/icons/collapse-all.js.map +1 -1
  188. package/dist/icon/icons/collapse-details.js.map +1 -1
  189. package/dist/icon/icons/color-palette.js.map +1 -1
  190. package/dist/icon/icons/columns.js.map +1 -1
  191. package/dist/icon/icons/compare.js.map +1 -1
  192. package/dist/icon/icons/computer.js.map +1 -1
  193. package/dist/icon/icons/connect-node.js.map +1 -1
  194. package/dist/icon/icons/connected-blocks.js.map +1 -1
  195. package/dist/icon/icons/copy.js.map +1 -1
  196. package/dist/icon/icons/cross-hairs.js.map +1 -1
  197. package/dist/icon/icons/cursor-rays.js.map +1 -1
  198. package/dist/icon/icons/cursor-ripples.js.map +1 -1
  199. package/dist/icon/icons/data-management.js.map +1 -1
  200. package/dist/icon/icons/delete-node.js.map +1 -1
  201. package/dist/icon/icons/delete.js.map +1 -1
  202. package/dist/icon/icons/doc-checkmark.js.map +1 -1
  203. package/dist/icon/icons/dock-bottom.js.map +1 -1
  204. package/dist/icon/icons/dock-none.js.map +1 -1
  205. package/dist/icon/icons/dock-side.js.map +1 -1
  206. package/dist/icon/icons/document-clipboard.js.map +1 -1
  207. package/dist/icon/icons/document.js.map +1 -1
  208. package/dist/icon/icons/dot-stroke.js.map +1 -1
  209. package/dist/icon/icons/dot.js.map +1 -1
  210. package/dist/icon/icons/double-chevron.js.map +1 -1
  211. package/dist/icon/icons/download.js.map +1 -1
  212. package/dist/icon/icons/drag.js.map +1 -1
  213. package/dist/icon/icons/dropper.js.map +1 -1
  214. package/dist/icon/icons/duplicate.js.map +1 -1
  215. package/dist/icon/icons/edit.js.map +1 -1
  216. package/dist/icon/icons/ellipses.js.map +1 -1
  217. package/dist/icon/icons/envelope.js.map +1 -1
  218. package/dist/icon/icons/exclamation-circle.js.map +1 -1
  219. package/dist/icon/icons/exclamation-mark.js.map +1 -1
  220. package/dist/icon/icons/exclamation-triangle.js.map +1 -1
  221. package/dist/icon/icons/expand-all.js.map +1 -1
  222. package/dist/icon/icons/expand-details.js.map +1 -1
  223. package/dist/icon/icons/expression.js.map +1 -1
  224. package/dist/icon/icons/eye-hidden.js.map +1 -1
  225. package/dist/icon/icons/eye.js.map +1 -1
  226. package/dist/icon/icons/face-frown.js.map +1 -1
  227. package/dist/icon/icons/face-smile.js.map +1 -1
  228. package/dist/icon/icons/fast-forward-10.js.map +1 -1
  229. package/dist/icon/icons/fast-forward.js.map +1 -1
  230. package/dist/icon/icons/film.js.map +1 -1
  231. package/dist/icon/icons/filter-stroke.js.map +1 -1
  232. package/dist/icon/icons/filter.js.map +1 -1
  233. package/dist/icon/icons/flag-stroke.js.map +1 -1
  234. package/dist/icon/icons/flag.js.map +1 -1
  235. package/dist/icon/icons/fold.js.map +1 -1
  236. package/dist/icon/icons/folder.js.map +1 -1
  237. package/dist/icon/icons/fork.js.map +1 -1
  238. package/dist/icon/icons/gear.js.map +1 -1
  239. package/dist/icon/icons/globe-alt-stroke.js.map +1 -1
  240. package/dist/icon/icons/globe.js.map +1 -1
  241. package/dist/icon/icons/group-boxes.js.map +1 -1
  242. package/dist/icon/icons/group.js.map +1 -1
  243. package/dist/icon/icons/hand.js.map +1 -1
  244. package/dist/icon/icons/hash.js.map +1 -1
  245. package/dist/icon/icons/heading.js.map +1 -1
  246. package/dist/icon/icons/home.js.map +1 -1
  247. package/dist/icon/icons/horizontal-rule.js.map +1 -1
  248. package/dist/icon/icons/hourglass-end.js.map +1 -1
  249. package/dist/icon/icons/hourglass-mid.js.map +1 -1
  250. package/dist/icon/icons/hourglass-start.js.map +1 -1
  251. package/dist/icon/icons/hourglass.js.map +1 -1
  252. package/dist/icon/icons/identification.js.map +1 -1
  253. package/dist/icon/icons/image.js.map +1 -1
  254. package/dist/icon/icons/inbox.js.map +1 -1
  255. package/dist/icon/icons/infinity.js.map +1 -1
  256. package/dist/icon/icons/information-circle-stroke.js.map +1 -1
  257. package/dist/icon/icons/inspect.js.map +1 -1
  258. package/dist/icon/icons/italic.js.map +1 -1
  259. package/dist/icon/icons/key.js.map +1 -1
  260. package/dist/icon/icons/keyboard.js.map +1 -1
  261. package/dist/icon/icons/laptop-phone.js.map +1 -1
  262. package/dist/icon/icons/layers.js.map +1 -1
  263. package/dist/icon/icons/lifebuoy.js.map +1 -1
  264. package/dist/icon/icons/lightbulb.js.map +1 -1
  265. package/dist/icon/icons/lightning-bolt.js.map +1 -1
  266. package/dist/icon/icons/link.js.map +1 -1
  267. package/dist/icon/icons/list-ordered.js.map +1 -1
  268. package/dist/icon/icons/list-unordered.js.map +1 -1
  269. package/dist/icon/icons/lock.js.map +1 -1
  270. package/dist/icon/icons/login.js.map +1 -1
  271. package/dist/icon/icons/logout.js.map +1 -1
  272. package/dist/icon/icons/looping-off.js.map +1 -1
  273. package/dist/icon/icons/looping.js.map +1 -1
  274. package/dist/icon/icons/map-drives.js.map +1 -1
  275. package/dist/icon/icons/map-pin.js.map +1 -1
  276. package/dist/icon/icons/map.js.map +1 -1
  277. package/dist/icon/icons/markdown.js.map +1 -1
  278. package/dist/icon/icons/maximize.js.map +1 -1
  279. package/dist/icon/icons/megaphone.js.map +1 -1
  280. package/dist/icon/icons/menu.js.map +1 -1
  281. package/dist/icon/icons/merge.js.map +1 -1
  282. package/dist/icon/icons/meter.js.map +1 -1
  283. package/dist/icon/icons/minimize.js.map +1 -1
  284. package/dist/icon/icons/minus-circle.js.map +1 -1
  285. package/dist/icon/icons/minus.js.map +1 -1
  286. package/dist/icon/icons/moon.js.map +1 -1
  287. package/dist/icon/icons/more-actions.js.map +1 -1
  288. package/dist/icon/icons/multiselect.js.map +1 -1
  289. package/dist/icon/icons/music-note.js.map +1 -1
  290. package/dist/icon/icons/newspaper.js.map +1 -1
  291. package/dist/icon/icons/not-allowed.js.map +1 -1
  292. package/dist/icon/icons/numbers.js.map +1 -1
  293. package/dist/icon/icons/office-building.js.map +1 -1
  294. package/dist/icon/icons/outline.js.map +1 -1
  295. package/dist/icon/icons/paper-airplane.js.map +1 -1
  296. package/dist/icon/icons/paper-clip.js.map +1 -1
  297. package/dist/icon/icons/pause.js.map +1 -1
  298. package/dist/icon/icons/pencil-square.js.map +1 -1
  299. package/dist/icon/icons/person-2.js.map +1 -1
  300. package/dist/icon/icons/person-3.js.map +1 -1
  301. package/dist/icon/icons/person-circle.js.map +1 -1
  302. package/dist/icon/icons/person.js.map +1 -1
  303. package/dist/icon/icons/phone.js.map +1 -1
  304. package/dist/icon/icons/picture-in-picture.js.map +1 -1
  305. package/dist/icon/icons/pie-chart.js.map +1 -1
  306. package/dist/icon/icons/pin.js.map +1 -1
  307. package/dist/icon/icons/pizza-slice.js.map +1 -1
  308. package/dist/icon/icons/placeholder.js.map +1 -1
  309. package/dist/icon/icons/play.js.map +1 -1
  310. package/dist/icon/icons/plug.js.map +1 -1
  311. package/dist/icon/icons/plus-circle.js.map +1 -1
  312. package/dist/icon/icons/plus-minus.js.map +1 -1
  313. package/dist/icon/icons/pointer-stroke.js.map +1 -1
  314. package/dist/icon/icons/pointer.js.map +1 -1
  315. package/dist/icon/icons/priority-high.js.map +1 -1
  316. package/dist/icon/icons/priority-low.js.map +1 -1
  317. package/dist/icon/icons/priority-medium.js.map +1 -1
  318. package/dist/icon/icons/projector.js.map +1 -1
  319. package/dist/icon/icons/pull-close.js.map +1 -1
  320. package/dist/icon/icons/pull-draft.js.map +1 -1
  321. package/dist/icon/icons/pull-open.js.map +1 -1
  322. package/dist/icon/icons/pulse.js.map +1 -1
  323. package/dist/icon/icons/puzzle-piece.js.map +1 -1
  324. package/dist/icon/icons/question-mark-circle-stroke.js.map +1 -1
  325. package/dist/icon/icons/question-mark-circle.js.map +1 -1
  326. package/dist/icon/icons/rectangle-group.js.map +1 -1
  327. package/dist/icon/icons/rectangle-stack-horizontal.js.map +1 -1
  328. package/dist/icon/icons/rectangle-stack-vertical.js.map +1 -1
  329. package/dist/icon/icons/redo.js.map +1 -1
  330. package/dist/icon/icons/refresh.js.map +1 -1
  331. package/dist/icon/icons/reply.js.map +1 -1
  332. package/dist/icon/icons/rewind-10.js.map +1 -1
  333. package/dist/icon/icons/rewind.js.map +1 -1
  334. package/dist/icon/icons/rocketship.js.map +1 -1
  335. package/dist/icon/icons/running.js.map +1 -1
  336. package/dist/icon/icons/scale.js.map +1 -1
  337. package/dist/icon/icons/scissors.js.map +1 -1
  338. package/dist/icon/icons/search.js.map +1 -1
  339. package/dist/icon/icons/sensor.js.map +1 -1
  340. package/dist/icon/icons/server-stack.js.map +1 -1
  341. package/dist/icon/icons/server.js.map +1 -1
  342. package/dist/icon/icons/shapes.js.map +1 -1
  343. package/dist/icon/icons/share.js.map +1 -1
  344. package/dist/icon/icons/signal-slash.js.map +1 -1
  345. package/dist/icon/icons/signal.js.map +1 -1
  346. package/dist/icon/icons/signpost.js.map +1 -1
  347. package/dist/icon/icons/sort-ascending.js.map +1 -1
  348. package/dist/icon/icons/sort-descending.js.map +1 -1
  349. package/dist/icon/icons/soundwave.js.map +1 -1
  350. package/dist/icon/icons/sparkles.js.map +1 -1
  351. package/dist/icon/icons/split-horizontal.js.map +1 -1
  352. package/dist/icon/icons/split-none.js.map +1 -1
  353. package/dist/icon/icons/split-vertical.js.map +1 -1
  354. package/dist/icon/icons/star-half.js.map +1 -1
  355. package/dist/icon/icons/star-stroke.js.map +1 -1
  356. package/dist/icon/icons/star.js.map +1 -1
  357. package/dist/icon/icons/start.js.map +1 -1
  358. package/dist/icon/icons/status-offline.js.map +1 -1
  359. package/dist/icon/icons/status-online.js.map +1 -1
  360. package/dist/icon/icons/stop-sign.js.map +1 -1
  361. package/dist/icon/icons/stop.js.map +1 -1
  362. package/dist/icon/icons/stopwatch.js.map +1 -1
  363. package/dist/icon/icons/strikethrough.js.map +1 -1
  364. package/dist/icon/icons/sun.js.map +1 -1
  365. package/dist/icon/icons/swatch.js.map +1 -1
  366. package/dist/icon/icons/switch-apps.js.map +1 -1
  367. package/dist/icon/icons/switch.js.map +1 -1
  368. package/dist/icon/icons/table.js.map +1 -1
  369. package/dist/icon/icons/tag.js.map +1 -1
  370. package/dist/icon/icons/task.js.map +1 -1
  371. package/dist/icon/icons/telescope.js.map +1 -1
  372. package/dist/icon/icons/template.js.map +1 -1
  373. package/dist/icon/icons/terminal.js.map +1 -1
  374. package/dist/icon/icons/thumb-stroke.js.map +1 -1
  375. package/dist/icon/icons/thumb.js.map +1 -1
  376. package/dist/icon/icons/traffic-cone.js.map +1 -1
  377. package/dist/icon/icons/transparent-box.js.map +1 -1
  378. package/dist/icon/icons/trend-down.js.map +1 -1
  379. package/dist/icon/icons/trend-up.js.map +1 -1
  380. package/dist/icon/icons/trophy.js.map +1 -1
  381. package/dist/icon/icons/truck.js.map +1 -1
  382. package/dist/icon/icons/typography.js.map +1 -1
  383. package/dist/icon/icons/undo.js.map +1 -1
  384. package/dist/icon/icons/unlock.js.map +1 -1
  385. package/dist/icon/icons/upload.js.map +1 -1
  386. package/dist/icon/icons/video-camera.js.map +1 -1
  387. package/dist/icon/icons/view-as-grid.js.map +1 -1
  388. package/dist/icon/icons/volume-muted.js.map +1 -1
  389. package/dist/icon/icons/volume.js.map +1 -1
  390. package/dist/icon/icons/wifi.js.map +1 -1
  391. package/dist/icon/icons/wrench.js.map +1 -1
  392. package/dist/icon/icons/x-circle.js.map +1 -1
  393. package/dist/icon/icons/zoom-in.js.map +1 -1
  394. package/dist/icon/icons/zoom-out.js.map +1 -1
  395. package/dist/icon/icons.js.map +1 -1
  396. package/dist/icon-button/icon-button2.js +2 -2
  397. package/dist/icon-button/icon-button2.js.map +1 -1
  398. package/dist/index.js +1 -1
  399. package/dist/input/input-group2.js +1 -1
  400. package/dist/input/input-group2.js.map +1 -1
  401. package/dist/input/input2.js +2 -2
  402. package/dist/internal/base/button.js +3 -3
  403. package/dist/internal/base/button.js.map +1 -1
  404. package/dist/internal/controllers/audit.controller.js.map +1 -1
  405. package/dist/internal/controllers/i18n.controller.js.map +1 -1
  406. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  407. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  408. package/dist/internal/controllers/state-active.controller.js.map +1 -1
  409. package/dist/internal/controllers/state-current.controller.js.map +1 -1
  410. package/dist/internal/controllers/state-disabled.controller.js.map +1 -1
  411. package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
  412. package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
  413. package/dist/internal/controllers/state-pressed.controller.js.map +1 -1
  414. package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
  415. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  416. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  417. package/dist/internal/controllers/type-button.controller.js.map +1 -1
  418. package/dist/internal/controllers/type-closable.controller.js.map +1 -1
  419. package/dist/internal/controllers/type-command.controller.js.map +1 -1
  420. package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
  421. package/dist/internal/controllers/type-interest.controller.js.map +1 -1
  422. package/dist/internal/controllers/type-native-popover-trigger.controller.js.map +1 -1
  423. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  424. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  425. package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
  426. package/dist/internal/controllers/type-ssr.controller.js +2 -2
  427. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  428. package/dist/internal/controllers/type-submit.controller.js.map +1 -1
  429. package/dist/internal/controllers/type-touch.controller.js.map +1 -1
  430. package/dist/internal/decorators/host-attr.js.map +1 -1
  431. package/dist/internal/decorators/scoped-registry.js.map +1 -1
  432. package/dist/internal/services/global.service.js +1 -1
  433. package/dist/internal/services/global.service.js.map +1 -1
  434. package/dist/internal/services/global.utils.js.map +1 -1
  435. package/dist/internal/services/i18n.service.js.map +1 -1
  436. package/dist/internal/services/log.service.js.map +1 -1
  437. package/dist/internal/services/transition.service.js.map +1 -1
  438. package/dist/internal/styles/index.js.map +1 -1
  439. package/dist/internal/styles/popover2.js.map +1 -1
  440. package/dist/internal/utils/a11y.js.map +1 -1
  441. package/dist/internal/utils/audit-logs.js.map +1 -1
  442. package/dist/internal/utils/audit.js.map +1 -1
  443. package/dist/internal/utils/dom.js.map +1 -1
  444. package/dist/internal/utils/events.js.map +1 -1
  445. package/dist/internal/utils/focus.js.map +1 -1
  446. package/dist/internal/utils/keynav.js.map +1 -1
  447. package/dist/internal/utils/objects.js.map +1 -1
  448. package/dist/internal/utils/strings.js.map +1 -1
  449. package/dist/internal/utils/supports.js.map +1 -1
  450. package/dist/logo/logo.examples.js.map +1 -1
  451. package/dist/logo/logo.examples.json +4 -4
  452. package/dist/logo/logo2.js +2 -2
  453. package/dist/logo/logo2.js.map +1 -1
  454. package/dist/menu/menu-item2.js +2 -2
  455. package/dist/menu/menu-item2.js.map +1 -1
  456. package/dist/menu/menu.examples.js.map +1 -1
  457. package/dist/menu/menu.examples.json +3 -3
  458. package/dist/menu/menu2.js +2 -2
  459. package/dist/menu/menu2.js.map +1 -1
  460. package/dist/month/month2.js +2 -2
  461. package/dist/month/month2.js.map +1 -1
  462. package/dist/notification/notification-group2.js +2 -2
  463. package/dist/notification/notification-group2.js.map +1 -1
  464. package/dist/notification/notification2.js +4 -4
  465. package/dist/notification/notification2.js.map +1 -1
  466. package/dist/page/page-panel/page-panel-content2.js +1 -1
  467. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  468. package/dist/page/page-panel/page-panel-footer2.js +2 -2
  469. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  470. package/dist/page/page-panel/page-panel-header2.js +2 -2
  471. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  472. package/dist/page/page-panel/page-panel2.js +5 -5
  473. package/dist/page/page-panel/page-panel2.js.map +1 -1
  474. package/dist/page/page2.js +2 -2
  475. package/dist/page/page2.js.map +1 -1
  476. package/dist/page-header/page-header2.js +1 -1
  477. package/dist/page-header/page-header2.js.map +1 -1
  478. package/dist/page-loader/page-loader2.js +2 -2
  479. package/dist/page-loader/page-loader2.js.map +1 -1
  480. package/dist/pagination/pagination2.js +4 -4
  481. package/dist/pagination/pagination2.js.map +1 -1
  482. package/dist/panel/panel2.js +8 -8
  483. package/dist/panel/panel2.js.map +1 -1
  484. package/dist/password/password2.js +2 -2
  485. package/dist/password/password2.js.map +1 -1
  486. package/dist/polyfills/custom-state-set.js.map +1 -1
  487. package/dist/polyfills/index.js.map +1 -1
  488. package/dist/preferences-input/preferences-input.examples.js.map +1 -1
  489. package/dist/preferences-input/preferences-input.examples.json +1 -1
  490. package/dist/preferences-input/preferences-input2.js +4 -4
  491. package/dist/preferences-input/preferences-input2.js.map +1 -1
  492. package/dist/progress-bar/progress-bar2.js +2 -2
  493. package/dist/progress-bar/progress-bar2.js.map +1 -1
  494. package/dist/progress-ring/progress-ring2.js +5 -5
  495. package/dist/progress-ring/progress-ring2.js.map +1 -1
  496. package/dist/progressive-filter-chip/progressive-filter-chip2.js +5 -5
  497. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  498. package/dist/pulse/pulse2.js +2 -2
  499. package/dist/pulse/pulse2.js.map +1 -1
  500. package/dist/radio/radio-group2.js +2 -2
  501. package/dist/radio/radio2.js +2 -2
  502. package/dist/range/range2.js +2 -2
  503. package/dist/range/range2.js.map +1 -1
  504. package/dist/resize-handle/resize-handle2.js +5 -5
  505. package/dist/resize-handle/resize-handle2.js.map +1 -1
  506. package/dist/search/search2.js +2 -2
  507. package/dist/search/search2.js.map +1 -1
  508. package/dist/select/select2.js +6 -6
  509. package/dist/select/select2.js.map +1 -1
  510. package/dist/skeleton/skeleton2.js +2 -2
  511. package/dist/skeleton/skeleton2.js.map +1 -1
  512. package/dist/sort-button/sort-button2.js +14 -14
  513. package/dist/sort-button/sort-button2.js.map +1 -1
  514. package/dist/sparkline/sparkline.utils.d.ts +0 -1
  515. package/dist/sparkline/sparkline.utils.js.map +1 -1
  516. package/dist/sparkline/sparkline2.js +2 -2
  517. package/dist/sparkline/sparkline2.js.map +1 -1
  518. package/dist/star-rating/star-rating2.js +4 -4
  519. package/dist/star-rating/star-rating2.js.map +1 -1
  520. package/dist/steps/steps2.js +7 -7
  521. package/dist/steps/steps2.js.map +1 -1
  522. package/dist/switch/switch-group2.js +2 -2
  523. package/dist/switch/switch2.js +2 -2
  524. package/dist/tabs/tabs-group2.js +16 -16
  525. package/dist/tabs/tabs-group2.js.map +1 -1
  526. package/dist/tabs/tabs2.js +7 -7
  527. package/dist/tabs/tabs2.js.map +1 -1
  528. package/dist/tag/tag2.js +5 -5
  529. package/dist/tag/tag2.js.map +1 -1
  530. package/dist/textarea/textarea2.js +1 -1
  531. package/dist/time/time2.js +2 -2
  532. package/dist/time/time2.js.map +1 -1
  533. package/dist/toast/toast2.js +4 -4
  534. package/dist/toast/toast2.js.map +1 -1
  535. package/dist/toggletip/toggletip-footer2.js +2 -2
  536. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  537. package/dist/toggletip/toggletip-header2.js +2 -2
  538. package/dist/toggletip/toggletip-header2.js.map +1 -1
  539. package/dist/toggletip/toggletip2.js +4 -4
  540. package/dist/toggletip/toggletip2.js.map +1 -1
  541. package/dist/toolbar/toolbar2.js +4 -4
  542. package/dist/toolbar/toolbar2.js.map +1 -1
  543. package/dist/tooltip/tooltip2.js +2 -2
  544. package/dist/tooltip/tooltip2.js.map +1 -1
  545. package/dist/tree/tree-node2.js +9 -9
  546. package/dist/tree/tree-node2.js.map +1 -1
  547. package/dist/tree/tree2.js +4 -4
  548. package/dist/tree/tree2.js.map +1 -1
  549. package/dist/tree/utils.js.map +1 -1
  550. package/dist/week/week2.js +2 -2
  551. package/dist/week/week2.js.map +1 -1
  552. package/package.json +32 -14
@@ -1 +1 @@
1
- {"version":3,"file":"popover2.js","names":[],"sources":["../../../src/internal/styles/popover.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/* istanbul ignore file -- @preserve */\nimport { isServer } from 'lit';\nimport { supportsCSSPositionArea, supportsCSSLegacyInsetArea } from '../utils/supports.js';\nimport _popoverStyles from './popover.css?inline';\n\n// vite/esbuild minifier does not understand this syntax\nconst anchor = /* css */ `\n[internal-host] { anchor-name: --internal-host }\n.arrow { position-anchor: --internal-host }\n`;\n\nfunction getPopoverStyles() {\n if (!isServer && !supportsCSSPositionArea() && supportsCSSLegacyInsetArea()) {\n return _popoverStyles.replaceAll('position-area', 'inset-area') + anchor;\n } else {\n return _popoverStyles + anchor;\n }\n}\n\nexport const popoverStyles = getPopoverStyles();\n"],"mappings":";;;;;AASA,IAAM,IAAmB;AAKzB,SAAS,IAAmB;AAIxB,QAHE,CAAC,KAAY,CAAC,GAAyB,IAAI,GAA4B,GAClE,EAAe,WAAW,iBAAiB,aAAa,GAAG,IAE3D,IAAiB;;AAI5B,IAAa,IAAgB,GAAkB"}
1
+ {"version":3,"file":"popover2.js","names":[],"sources":["../../../src/internal/styles/popover.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/* istanbul ignore file -- @preserve */\nimport { isServer } from 'lit';\nimport { supportsCSSPositionArea, supportsCSSLegacyInsetArea } from '../utils/supports.js';\nimport _popoverStyles from './popover.css?inline';\n\n// vite/esbuild minifier does not understand this syntax\nconst anchor = /* css */ `\n[internal-host] { anchor-name: --internal-host }\n.arrow { position-anchor: --internal-host }\n`;\n\nfunction getPopoverStyles() {\n if (!isServer && !supportsCSSPositionArea() && supportsCSSLegacyInsetArea()) {\n return _popoverStyles.replaceAll('position-area', 'inset-area') + anchor;\n } else {\n return _popoverStyles + anchor;\n }\n}\n\nexport const popoverStyles = getPopoverStyles();\n"],"mappings":";;;;;AASA,IAAM,IAAmB;AAKzB,SAAS,IAAmB;CAIxB,OAHE,CAAC,KAAY,CAAC,GAAyB,IAAI,GAA4B,GAClE,EAAe,WAAW,iBAAiB,aAAa,GAAG,IAE3D,IAAiB;;AAI5B,IAAa,IAAgB,GAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"a11y.js","names":[],"sources":["../../../src/internal/utils/a11y.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { generateId } from './dom.js';\n\nexport function attachInternals(element: HTMLElement & { _internals?: ElementInternals }) {\n if (element._internals === undefined) {\n element._internals = element.attachInternals() as unknown as ElementInternals;\n }\n}\n\nexport function associateLabel(label: HTMLLabelElement, input: HTMLInputElement) {\n if (label && input) {\n input.id = input.id ? input.id : generateId();\n label.htmlFor = input.id;\n }\n}\n\nexport function associateAriaLabel(label: HTMLElement, element: HTMLElement) {\n if (label && element) {\n label.id = label.id ? label.id : generateId();\n element.setAttribute('aria-labelledby', label.id);\n }\n}\n\nexport function associateAriaDescribedBy(messages: HTMLElement[], element: HTMLElement) {\n if (messages.length && element) {\n const ids = messages.map(m => (m.id = generateId())).join(' ');\n element.setAttribute('aria-describedby', ids);\n }\n}\n\nexport function associateDataList(datalist: HTMLDataListElement, element: HTMLInputElement) {\n if (datalist) {\n datalist.id = datalist.id?.length ? datalist.id : generateId();\n element.setAttribute('list', datalist.id);\n }\n}\n\nexport function associateControlGroup(elements: HTMLInputElement[]) {\n if (!elements.find(e => e?.name?.length)) {\n const name = generateId();\n elements.forEach(e => (e.name = name));\n }\n}\n"],"mappings":";;AAKA,SAAgB,EAAgB,GAA0D;AACxF,CAAI,EAAQ,eAAe,KAAA,MACzB,EAAQ,aAAa,EAAQ,iBAAiB;;AAIlD,SAAgB,EAAe,GAAyB,GAAyB;AAC/E,CAAI,KAAS,MACX,EAAM,KAAK,EAAM,KAAK,EAAM,KAAK,GAAY,EAC7C,EAAM,UAAU,EAAM;;AAI1B,SAAgB,EAAmB,GAAoB,GAAsB;AAC3E,CAAI,KAAS,MACX,EAAM,KAAK,EAAM,KAAK,EAAM,KAAK,GAAY,EAC7C,EAAQ,aAAa,mBAAmB,EAAM,GAAG;;AAIrD,SAAgB,EAAyB,GAAyB,GAAsB;AACtF,KAAI,EAAS,UAAU,GAAS;EAC9B,IAAM,IAAM,EAAS,KAAI,MAAM,EAAE,KAAK,GAAY,CAAE,CAAC,KAAK,IAAI;AAC9D,IAAQ,aAAa,oBAAoB,EAAI;;;AAIjD,SAAgB,EAAkB,GAA+B,GAA2B;AAC1F,CAAI,MACF,EAAS,KAAK,EAAS,IAAI,SAAS,EAAS,KAAK,GAAY,EAC9D,EAAQ,aAAa,QAAQ,EAAS,GAAG;;AAI7C,SAAgB,EAAsB,GAA8B;AAClE,KAAI,CAAC,EAAS,MAAK,MAAK,GAAG,MAAM,OAAO,EAAE;EACxC,IAAM,IAAO,GAAY;AACzB,IAAS,SAAQ,MAAM,EAAE,OAAO,EAAM"}
1
+ {"version":3,"file":"a11y.js","names":[],"sources":["../../../src/internal/utils/a11y.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { generateId } from './dom.js';\n\nexport function attachInternals(element: HTMLElement & { _internals?: ElementInternals }) {\n if (element._internals === undefined) {\n element._internals = element.attachInternals() as unknown as ElementInternals;\n }\n}\n\nexport function associateLabel(label: HTMLLabelElement, input: HTMLInputElement) {\n if (label && input) {\n input.id = input.id ? input.id : generateId();\n label.htmlFor = input.id;\n }\n}\n\nexport function associateAriaLabel(label: HTMLElement, element: HTMLElement) {\n if (label && element) {\n label.id = label.id ? label.id : generateId();\n element.setAttribute('aria-labelledby', label.id);\n }\n}\n\nexport function associateAriaDescribedBy(messages: HTMLElement[], element: HTMLElement) {\n if (messages.length && element) {\n const ids = messages.map(m => (m.id = generateId())).join(' ');\n element.setAttribute('aria-describedby', ids);\n }\n}\n\nexport function associateDataList(datalist: HTMLDataListElement, element: HTMLInputElement) {\n if (datalist) {\n datalist.id = datalist.id?.length ? datalist.id : generateId();\n element.setAttribute('list', datalist.id);\n }\n}\n\nexport function associateControlGroup(elements: HTMLInputElement[]) {\n if (!elements.find(e => e?.name?.length)) {\n const name = generateId();\n elements.forEach(e => (e.name = name));\n }\n}\n"],"mappings":";;AAKA,SAAgB,EAAgB,GAA0D;CACxF,AAAI,EAAQ,eAAe,KAAA,MACzB,EAAQ,aAAa,EAAQ,iBAAiB;;AAIlD,SAAgB,EAAe,GAAyB,GAAyB;CAC/E,AAAI,KAAS,MACX,EAAM,KAAK,EAAM,KAAK,EAAM,KAAK,GAAY,EAC7C,EAAM,UAAU,EAAM;;AAI1B,SAAgB,EAAmB,GAAoB,GAAsB;CAC3E,AAAI,KAAS,MACX,EAAM,KAAK,EAAM,KAAK,EAAM,KAAK,GAAY,EAC7C,EAAQ,aAAa,mBAAmB,EAAM,GAAG;;AAIrD,SAAgB,EAAyB,GAAyB,GAAsB;CACtF,IAAI,EAAS,UAAU,GAAS;EAC9B,IAAM,IAAM,EAAS,KAAI,MAAM,EAAE,KAAK,GAAY,CAAE,CAAC,KAAK,IAAI;EAC9D,EAAQ,aAAa,oBAAoB,EAAI;;;AAIjD,SAAgB,EAAkB,GAA+B,GAA2B;CAC1F,AAAI,MACF,EAAS,KAAK,EAAS,IAAI,SAAS,EAAS,KAAK,GAAY,EAC9D,EAAQ,aAAa,QAAQ,EAAS,GAAG;;AAI7C,SAAgB,EAAsB,GAA8B;CAClE,IAAI,CAAC,EAAS,MAAK,MAAK,GAAG,MAAM,OAAO,EAAE;EACxC,IAAM,IAAO,GAAY;EACzB,EAAS,SAAQ,MAAM,EAAE,OAAO,EAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-logs.js","names":[],"sources":["../../../src/internal/utils/audit-logs.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { DOCS_URL } from './strings.js';\n\nexport const DOCS_LOG_URL = `${DOCS_URL}docs/api-design/logs/`;\n\nexport function getExcessiveInstanceLimitWarning(count: number, localName: string) {\n return `Excessive rendering of ${count} ${localName} were detected in DOM. Recycle/reuse elements when possible to improve application performance. ${DOCS_LOG_URL}#excessive-instance-limit`;\n}\n\nexport function getInvalidSlottedChildrenWarning(localName: string, allowed: Array<string>) {\n return `Invalid slotted elements detected in ${localName}. Allowed: ${allowed.join(', ')}. ${DOCS_LOG_URL}#invalid-slotted-children`;\n}\n\nexport function getInvalidParentWarning(localName: string, allowedParent: string) {\n return `Element ${localName} can only be used as a direct child of ${allowedParent}. ${DOCS_LOG_URL}#invalid-parent`;\n}\n\nexport function getIdMatchNotFoundWarning(id: string) {\n return `Provided id \"${id}\" not found in DOM. ${DOCS_LOG_URL}#id-match-not-found`;\n}\n\nexport function getSSRMismatchWarning(localName: string) {\n return `${localName} rendered on the client with mismatched SSR content. ${DOCS_LOG_URL}#ssr-mismatch`;\n}\n\nexport function getCrossShadowRootAnchorWarning(localName: string) {\n return `(deprecated) ${localName} provided an anchor outside of its render root. ${DOCS_LOG_URL}#cross-shadow-root-anchor`;\n}\n\nexport function getDuplicatePackageVersionWarning(localName: string, version: string) {\n return `@nve: Element ${localName} version ${version} already defined, please check for duplicate package versions. ${DOCS_LOG_URL}#duplicate-package-version`;\n}\n\nexport function getDuplicatePackageGlobalVersionWarning() {\n return `@nve: Multiple versions of Elements loaded, please check for duplicate package versions. ${DOCS_LOG_URL}#duplicate-package-version`;\n}\n\nexport function getEsmHostedWarning() {\n return '@nve: Using esm.sh is not supported for production use.';\n}\n"],"mappings":";;AAKA,IAAa,IAAe,GAAG,EAAS;AAExC,SAAgB,EAAiC,GAAe,GAAmB;AACjF,QAAO,0BAA0B,EAAM,GAAG,EAAU,kGAAkG,EAAa;;AAGrK,SAAgB,EAAiC,GAAmB,GAAwB;AAC1F,QAAO,wCAAwC,EAAU,aAAa,EAAQ,KAAK,KAAK,CAAC,IAAI,EAAa;;AAG5G,SAAgB,EAAwB,GAAmB,GAAuB;AAChF,QAAO,WAAW,EAAU,yCAAyC,EAAc,IAAI,EAAa;;AAGtG,SAAgB,EAA0B,GAAY;AACpD,QAAO,gBAAgB,EAAG,sBAAsB,EAAa;;AAG/D,SAAgB,EAAsB,GAAmB;AACvD,QAAO,GAAG,EAAU,uDAAuD,EAAa;;AAO1F,SAAgB,EAAkC,GAAmB,GAAiB;AACpF,QAAO,iBAAiB,EAAU,WAAW,EAAQ,iEAAiE,EAAa;;AAGrI,SAAgB,IAA0C;AACxD,QAAO,4FAA4F,EAAa;;AAGlH,SAAgB,IAAsB;AACpC,QAAO"}
1
+ {"version":3,"file":"audit-logs.js","names":[],"sources":["../../../src/internal/utils/audit-logs.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { DOCS_URL } from './strings.js';\n\nexport const DOCS_LOG_URL = `${DOCS_URL}docs/api-design/logs/`;\n\nexport function getExcessiveInstanceLimitWarning(count: number, localName: string) {\n return `Excessive rendering of ${count} ${localName} were detected in DOM. Recycle/reuse elements when possible to improve application performance. ${DOCS_LOG_URL}#excessive-instance-limit`;\n}\n\nexport function getInvalidSlottedChildrenWarning(localName: string, allowed: Array<string>) {\n return `Invalid slotted elements detected in ${localName}. Allowed: ${allowed.join(', ')}. ${DOCS_LOG_URL}#invalid-slotted-children`;\n}\n\nexport function getInvalidParentWarning(localName: string, allowedParent: string) {\n return `Element ${localName} can only be used as a direct child of ${allowedParent}. ${DOCS_LOG_URL}#invalid-parent`;\n}\n\nexport function getIdMatchNotFoundWarning(id: string) {\n return `Provided id \"${id}\" not found in DOM. ${DOCS_LOG_URL}#id-match-not-found`;\n}\n\nexport function getSSRMismatchWarning(localName: string) {\n return `${localName} rendered on the client with mismatched SSR content. ${DOCS_LOG_URL}#ssr-mismatch`;\n}\n\nexport function getCrossShadowRootAnchorWarning(localName: string) {\n return `(deprecated) ${localName} provided an anchor outside of its render root. ${DOCS_LOG_URL}#cross-shadow-root-anchor`;\n}\n\nexport function getDuplicatePackageVersionWarning(localName: string, version: string) {\n return `@nve: Element ${localName} version ${version} already defined, please check for duplicate package versions. ${DOCS_LOG_URL}#duplicate-package-version`;\n}\n\nexport function getDuplicatePackageGlobalVersionWarning() {\n return `@nve: Multiple versions of Elements loaded, please check for duplicate package versions. ${DOCS_LOG_URL}#duplicate-package-version`;\n}\n\nexport function getEsmHostedWarning() {\n return '@nve: Using esm.sh is not supported for production use.';\n}\n"],"mappings":";;AAKA,IAAa,IAAe,GAAG,EAAS;AAExC,SAAgB,EAAiC,GAAe,GAAmB;CACjF,OAAO,0BAA0B,EAAM,GAAG,EAAU,kGAAkG,EAAa;;AAGrK,SAAgB,EAAiC,GAAmB,GAAwB;CAC1F,OAAO,wCAAwC,EAAU,aAAa,EAAQ,KAAK,KAAK,CAAC,IAAI,EAAa;;AAG5G,SAAgB,EAAwB,GAAmB,GAAuB;CAChF,OAAO,WAAW,EAAU,yCAAyC,EAAc,IAAI,EAAa;;AAGtG,SAAgB,EAA0B,GAAY;CACpD,OAAO,gBAAgB,EAAG,sBAAsB,EAAa;;AAG/D,SAAgB,EAAsB,GAAmB;CACvD,OAAO,GAAG,EAAU,uDAAuD,EAAa;;AAO1F,SAAgB,EAAkC,GAAmB,GAAiB;CACpF,OAAO,iBAAiB,EAAU,WAAW,EAAQ,iEAAiE,EAAa;;AAGrI,SAAgB,IAA0C;CACxD,OAAO,4FAA4F,EAAa;;AAGlH,SAAgB,IAAsB;CACpC,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","names":[],"sources":["../../../src/internal/utils/audit.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function auditSlots(\n host: HTMLElement & { constructor: { metadata?: { children?: string[]; disallowedChildren?: string[] } } }\n): [Element[], string[]] {\n const validElements = ['template', ...(host.constructor.metadata?.children ?? [])].filter(c => typeof c === 'string');\n const invalidElements = Array.from(host.shadowRoot!.querySelectorAll('slot')).flatMap(slot =>\n slot.assignedElements().filter(e => !validElements.map(i => i).includes(e.localName))\n );\n return [invalidElements, validElements];\n}\n\nexport function auditParentElement(\n host: HTMLElement & { constructor: { metadata?: { parents?: string[] } } }\n): [boolean, string[]] {\n const validParentTags = host.constructor.metadata?.parents ?? [];\n return validParentTags.length\n ? [!!validParentTags.find(p => host.parentElement?.localName === p), validParentTags]\n : [true, []];\n}\n"],"mappings":";AAGA,SAAgB,EACd,GACuB;CACvB,IAAM,IAAgB,CAAC,YAAY,GAAI,EAAK,YAAY,UAAU,YAAY,EAAE,CAAE,CAAC,QAAO,MAAK,OAAO,KAAM,SAAS;AAIrH,QAAO,CAHiB,MAAM,KAAK,EAAK,WAAY,iBAAiB,OAAO,CAAC,CAAC,SAAQ,MACpF,EAAK,kBAAkB,CAAC,QAAO,MAAK,CAAC,EAAc,KAAI,MAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CACtF,EACwB,EAAc;;AAGzC,SAAgB,EACd,GACqB;CACrB,IAAM,IAAkB,EAAK,YAAY,UAAU,WAAW,EAAE;AAChE,QAAO,EAAgB,SACnB,CAAC,CAAC,CAAC,EAAgB,MAAK,MAAK,EAAK,eAAe,cAAc,EAAE,EAAE,EAAgB,GACnF,CAAC,IAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"audit.js","names":[],"sources":["../../../src/internal/utils/audit.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function auditSlots(\n host: HTMLElement & { constructor: { metadata?: { children?: string[]; disallowedChildren?: string[] } } }\n): [Element[], string[]] {\n const validElements = ['template', ...(host.constructor.metadata?.children ?? [])].filter(c => typeof c === 'string');\n const invalidElements = Array.from(host.shadowRoot!.querySelectorAll('slot')).flatMap(slot =>\n slot.assignedElements().filter(e => !validElements.map(i => i).includes(e.localName))\n );\n return [invalidElements, validElements];\n}\n\nexport function auditParentElement(\n host: HTMLElement & { constructor: { metadata?: { parents?: string[] } } }\n): [boolean, string[]] {\n const validParentTags = host.constructor.metadata?.parents ?? [];\n return validParentTags.length\n ? [!!validParentTags.find(p => host.parentElement?.localName === p), validParentTags]\n : [true, []];\n}\n"],"mappings":";AAGA,SAAgB,EACd,GACuB;CACvB,IAAM,IAAgB,CAAC,YAAY,GAAI,EAAK,YAAY,UAAU,YAAY,EAAE,CAAE,CAAC,QAAO,MAAK,OAAO,KAAM,SAAS;CAIrH,OAAO,CAHiB,MAAM,KAAK,EAAK,WAAY,iBAAiB,OAAO,CAAC,CAAC,SAAQ,MACpF,EAAK,kBAAkB,CAAC,QAAO,MAAK,CAAC,EAAc,KAAI,MAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAE/E,EAAiB,EAAc;;AAGzC,SAAgB,EACd,GACqB;CACrB,IAAM,IAAkB,EAAK,YAAY,UAAU,WAAW,EAAE;CAChE,OAAO,EAAgB,SACnB,CAAC,CAAC,CAAC,EAAgB,MAAK,MAAK,EAAK,eAAe,cAAc,EAAE,EAAE,EAAgB,GACnF,CAAC,IAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","names":[],"sources":["../../../src/internal/utils/dom.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { GlobalStateService } from '../services/global.service.js';\nimport type { ElementDefinition } from '../types/index.js';\nimport { isFocusable } from './focus.js';\n\nexport function getChildren(node: Document | Node | HTMLElement): Element[] {\n if (node instanceof Document && node.documentElement) {\n return Array.from(node.documentElement.children); // root document children\n } else if (node instanceof HTMLElement && node.shadowRoot) {\n return Array.from(node.shadowRoot.children); // shadow root direct children\n } else if (node instanceof HTMLSlotElement && node.assignedElements) {\n const slotted = node.assignedElements(); // slotted elements\n return slotted.length ? slotted : Array.from(node.children); // slot fallback\n } else {\n return Array.from((node as HTMLElement).children); // light DOM direct children\n }\n}\n\nexport function generateId() {\n const uint32 = self.crypto.getRandomValues(new Uint32Array(1))[0]!;\n return `_${uint32.toString(16)}`;\n}\n\nexport function getAttributeChanges(element: HTMLElement, attr: string, fn: (attrValue: string | null) => void) {\n fn(element.getAttribute(attr));\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName === attr) {\n fn((mutation.target as HTMLElement).getAttribute(attr));\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\nexport function getAttributeListChanges(element: HTMLElement, attrs: string[], fn: (mutation: MutationRecord) => void) {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName && attrs.includes(mutation.attributeName)) {\n fn(mutation);\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\n/**\n * Appends styles to the render root of a given element. This is useful for\n * styles that apply outside the scope of the element's shadow\n * root such as UA styles --webkit-* that won't work in a ::slotted selector\n */\nexport function appendRootNodeStyle(host: HTMLElement, styles: string) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(styles);\n const root = host.getRootNode() as Document | ShadowRoot;\n if (root.adoptedStyleSheets) {\n const hasStyleSheet = root.adoptedStyleSheets\n .map(s => styleSheetToString(s))\n .find(s => s === styleSheetToString(stylesheet));\n if (!hasStyleSheet) {\n root.adoptedStyleSheets = [...Array.from(root.adoptedStyleSheets), stylesheet];\n }\n }\n return stylesheet;\n}\n\nexport function styleSheetToString(stylesheet: CSSStyleSheet) {\n return stylesheet.cssRules\n ? Array.from(stylesheet.cssRules)\n .map(rule => rule.cssText || '')\n .join('\\n')\n : '';\n}\n\n/** Intercepts a property setter on an element so `callback` fires on every assignment. Does not use a MutationObserver. */\nexport function getPropertyChanges(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n const proto = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (!descriptor) return;\n const own = Object.getOwnPropertyDescriptor(element, key);\n if (own && own.configurable === false) return;\n Object.defineProperty(element, key, {\n configurable: true,\n get: descriptor.get,\n set: (val: unknown) => {\n descriptor.set!.call(element, val);\n callback(val);\n }\n });\n}\n\n/* used for cases of needing to know a property update outside of lit, example a native input value prop change */\nexport function getElementUpdate(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n if (element.hasAttribute(key)) {\n callback(element.getAttribute(key));\n } else if ((element as unknown as Record<string, unknown>)[key] !== undefined) {\n callback((element as unknown as Record<string, unknown>)[key]);\n }\n\n getPropertyChanges(element, key, callback);\n return getAttributeChanges(element, key, val => callback(val));\n}\n\nexport function clickOutsideElementBounds(event: PointerEvent | MouseEvent, element: HTMLElement) {\n const { left, right, top, bottom } = element.getBoundingClientRect();\n return event.clientX < left || event.clientX > right || event.clientY < top || event.clientY > bottom;\n}\n\n/** parses number out of basic calc generated by the design tokens */\nexport function parseTokenNumber(value: string) {\n return parseInt(value.includes('calc') ? value.split('*')[1]!.replace('px)', '').trim() : value, 10) || 0;\n}\n\n/** true if the browser supports scoped custom element registries */\nexport const supportsScopedRegistry =\n globalThis.CustomElementRegistry && 'initialize' in CustomElementRegistry.prototype;\n\n/** defines an element with the given custom element registry */\nexport function defineElement(element: ElementDefinition, customElementRegistry: CustomElementRegistry) {\n Object.entries(element.elementDefinitions ?? {})\n .filter(([_tag, e]) => !customElementRegistry.get(e.metadata.tag))\n .forEach(([_tag, e]) => {\n defineElement(e, customElementRegistry);\n });\n\n if (!customElementRegistry.get(element.metadata.tag)) {\n customElementRegistry.define(element.metadata.tag, element);\n\n if (customElementRegistry === customElements) {\n GlobalStateService.dispatch('NVE_ELEMENT_DEFINE', {\n elementRegistry: { [element.metadata.tag]: element.metadata.version }\n });\n }\n }\n}\n\n/** defines an element with the global custom element registry */\nexport function define(element: ElementDefinition) {\n const { version } = element.metadata;\n\n // if scoped registry supported, register only the root element to global registry\n if (supportsScopedRegistry && !customElements.get(element.metadata.tag)) {\n customElements.define(element.metadata.tag, element);\n GlobalStateService.dispatch('NVE_ELEMENT_DEFINE', {\n elementRegistry: { [element.metadata.tag]: element.metadata.version }\n });\n } else {\n // if scoped registry not supported, register the element and all its children to the global registry\n defineElement(element, customElements);\n }\n\n // warn on duplicate version\n if (\n GlobalStateService.state.elementRegistry[element.metadata.tag] !== version &&\n globalThis?.location?.hostname === 'localhost'\n ) {\n void import('./audit-logs.js').then(m =>\n console.warn(m.getDuplicatePackageVersionWarning(element.metadata.tag, version))\n );\n }\n}\n\nexport function isContextMenuClick(event: MouseEvent) {\n return (event.buttons === 2 && !event.ctrlKey) || (event.buttons === 1 && event.ctrlKey);\n}\n\nexport function getFlattenedFocusableItems(element: Node, depth = 10) {\n return getFlattenedDOMTree(element, depth).filter((e: HTMLElement) => isFocusable(e)) as HTMLElement[];\n}\n\n/**\n * Preserves visual DOM ordering when using slots within Shadow DOM\n * See more information/resources on Shadow DOM linear traversal\n * https://nolanlawson.com/2021/02/13/managing-focus-in-the-shadow-dom/\n * https://www.abeautifulsite.net/posts/querying-through-shadow-roots/\n */\nexport function getFlattenedDOMTree(node: Node, depth = 10): HTMLElement[] {\n return (\n Array.from(getChildren(node)).reduce(\n (p: unknown[], n: Node) => [\n ...p,\n [n, [...Array.from(getChildren(n)).map(i => [i, getFlattenedDOMTree(i, depth)])]]\n ],\n []\n ) as unknown as HTMLElement[]\n ).flat(depth);\n}\n\nexport function validKeyNavigationCode(e: KeyboardEvent) {\n return keynavCodes.has(e.code);\n}\n\nexport enum KeynavCode {\n End = 'End',\n Home = 'Home',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight'\n}\n\nconst keynavCodes: Set<string> = new Set(Object.values(KeynavCode));\n\nexport function hasInvalidDOMGrid(rows: HTMLElement[]) {\n return rows.some(row => row.children.length !== rows[0]!.children.length);\n}\n\nexport function removeEmptyTextNode(node: Node) {\n if ((node as Text)?.wholeText?.trim() === '') {\n (node as Text).remove();\n }\n}\n\nexport function scrollBarWidth() {\n const div = globalThis.document.createElement('div');\n div.style.setProperty('width', '100px');\n div.style.setProperty('height', '100px');\n div.style.setProperty('overflow', 'scroll');\n div.style.setProperty('position', 'absolute');\n div.style.setProperty('top', '-9999px');\n globalThis.document.body.appendChild(div);\n const width = div.offsetWidth - div.clientWidth;\n globalThis.document.body.removeChild(div);\n return width;\n}\n\nexport function hasScrollBar(el: HTMLElement) {\n return el.scrollHeight > el.clientHeight;\n}\n\nexport function hasHorizontalScrollBar(el: HTMLElement) {\n return el.scrollWidth > el.clientWidth;\n}\n\nexport function endOfScrollBox(element: HTMLElement, offset = 0) {\n return element.scrollTop + element.offsetHeight + offset >= element.scrollHeight;\n}\n\nexport async function openEyeDropper(): Promise<string> {\n return await new (\n globalThis as unknown as { EyeDropper: new () => { open: () => Promise<{ sRGBHex: string }> } }\n ).EyeDropper()\n .open()\n .then((color: { sRGBHex: string }) => color.sRGBHex);\n}\n\n/**\n * provides a object with key/value of the currently applied design tokens\n */\nexport function getThemeTokens(element = globalThis.document.querySelector(':root')!) {\n // default root or provided element\n const styles = getComputedStyle(element);\n let parent: CSSStyleSheet[] = [];\n\n // check for parent iframe, same domain iframes change how the browser accesses style sheets\n try {\n parent = Array.from(globalThis.parent.document.styleSheets);\n } catch {\n // if not accessible, skip\n }\n\n return [...parent, ...Array.from(globalThis.document.styleSheets)]\n .reduce((finalArr: string[][], sheet) => {\n let rules: CSSRule[] = [];\n try {\n rules = [...sheet.cssRules];\n } catch {\n // if the style sheet is not accessible, skip\n }\n return finalArr.concat(\n rules\n .filter(rule => rule.type === 1)\n .reduce((propValArr: string[][], rule) => {\n const props = [...(rule as CSSStyleRule).style]\n .filter((p: string) => p.trim().includes('--nve'))\n .map((propName: string) => [\n propName.trim(),\n (rule as CSSStyleRule).style.getPropertyValue(propName).trim()\n ]);\n return [...propValArr, ...props];\n }, [])\n );\n }, [])\n .reduce(\n (p: Record<string, string>, token: string[]) => ({ ...p, [token[0]!]: styles.getPropertyValue(token[0]!) }),\n {}\n );\n}\n\nexport function removeEmptySlotWhitespace(slot: HTMLSlotElement) {\n if (slotContainsOnlyWhitespace(slot)) {\n slot.assignedNodes().forEach((node: Node) => node.parentNode?.removeChild(node));\n }\n}\n\nexport function slotContainsOnlyWhitespace(slot: HTMLSlotElement) {\n const hasNoElements = !slot.assignedNodes().find(i => i.nodeType !== Node.TEXT_NODE);\n const hasOnlyEmptyTextNodes = !slot\n .assignedNodes()\n .find(i => i.nodeType === Node.TEXT_NODE && (i.textContent ?? '').trim() !== '');\n return hasNoElements && hasOnlyEmptyTextNodes;\n}\n\nexport function applySlotContentStates(slot: HTMLSlotElement, element: HTMLElement & { _internals: ElementInternals }) {\n const nodes = slot.assignedNodes();\n const name = slot.name ?? 'slot';\n\n if (nodes.length) {\n element._internals.states.add(`has-${name}`);\n } else {\n element._internals.states.delete(`has-${name}`);\n }\n}\n\nexport function getDisplayValue(option?: { label?: string; value?: string }): string {\n return option?.label || option?.value || '';\n}\n\n/** determines if HTML element matches the given component tag */\nexport function matchesElementName(element: Partial<HTMLElement>, component: { metadata: { tag: string } }) {\n return element.localName === component.metadata.tag;\n}\n\nexport function createGhostElement(sourceElement: HTMLElement) {\n const ghost = globalThis.document.createElement('div');\n const { width } = sourceElement.getBoundingClientRect();\n ghost.setAttribute('nve-ghost', '');\n ghost.style.minWidth = `${width}px`;\n ghost.style.maxWidth = `${width}px`;\n ghost.style.height = '1px';\n ghost.slot = sourceElement.slot;\n return ghost;\n}\n\nexport function sameRenderRoot(element1: HTMLElement, element2: HTMLElement) {\n const root1 = element1.getRootNode();\n const root2 = element2.getRootNode();\n const sameShadowRoot = root1 instanceof ShadowRoot && root2 instanceof ShadowRoot && root1 === root2;\n const sameDocumentRoot = root1 === globalThis.document && root2 === globalThis.document;\n const sameUnattachedRoot = root1 === root2;\n return sameShadowRoot || sameDocumentRoot || sameUnattachedRoot;\n}\n\nexport function getAnchorNames(element: HTMLElement): string[] {\n return (\n element.style.anchorName\n ?.split(',')\n ?.map(name => name.trim())\n ?.filter(name => name !== 'none' && name !== '') ?? []\n );\n}\n\nexport function removeAnchorName(element: HTMLElement, name: string) {\n const anchorNames = getAnchorNames(element);\n element.style.anchorName = anchorNames.filter(i => i !== name).join(',');\n}\n\nexport function appendAnchorName(element: HTMLElement, name: string) {\n element.style.anchorName = Array.from(new Set([...getAnchorNames(element), name])).join(',');\n}\n\n/**\n * Returns true when both arrays have the same length and each index is strictly equal (`===`).\n */\nexport function sameOrderedStringArray(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\n/**\n * Returns unique non-empty strings in first-seen order (insertion order of a `Set` over the filtered list).\n */\nexport function uniqueNonEmptyStrings(values: Iterable<string | null | undefined>): string[] {\n return Array.from(\n new Set(Array.from(values).filter((value): value is string => typeof value === 'string' && value.length > 0))\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","names":[],"sources":["../../../src/internal/utils/dom.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { GlobalStateService } from '../services/global.service.js';\nimport type { ElementDefinition } from '../types/index.js';\nimport { isFocusable } from './focus.js';\n\nexport function getChildren(node: Document | Node | HTMLElement): Element[] {\n if (node instanceof Document && node.documentElement) {\n return Array.from(node.documentElement.children); // root document children\n } else if (node instanceof HTMLElement && node.shadowRoot) {\n return Array.from(node.shadowRoot.children); // shadow root direct children\n } else if (node instanceof HTMLSlotElement && node.assignedElements) {\n const slotted = node.assignedElements(); // slotted elements\n return slotted.length ? slotted : Array.from(node.children); // slot fallback\n } else {\n return Array.from((node as HTMLElement).children); // light DOM direct children\n }\n}\n\nexport function generateId() {\n const uint32 = self.crypto.getRandomValues(new Uint32Array(1))[0]!;\n return `_${uint32.toString(16)}`;\n}\n\nexport function getAttributeChanges(element: HTMLElement, attr: string, fn: (attrValue: string | null) => void) {\n fn(element.getAttribute(attr));\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName === attr) {\n fn((mutation.target as HTMLElement).getAttribute(attr));\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\nexport function getAttributeListChanges(element: HTMLElement, attrs: string[], fn: (mutation: MutationRecord) => void) {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.attributeName && attrs.includes(mutation.attributeName)) {\n fn(mutation);\n }\n });\n });\n observer.observe(element, { attributes: true, subtree: true });\n return observer;\n}\n\n/**\n * Appends styles to the render root of a given element. This is useful for\n * styles that apply outside the scope of the element's shadow\n * root such as UA styles --webkit-* that won't work in a ::slotted selector\n */\nexport function appendRootNodeStyle(host: HTMLElement, styles: string) {\n const stylesheet = new CSSStyleSheet();\n stylesheet.replaceSync(styles);\n const root = host.getRootNode() as Document | ShadowRoot;\n if (root.adoptedStyleSheets) {\n const hasStyleSheet = root.adoptedStyleSheets\n .map(s => styleSheetToString(s))\n .find(s => s === styleSheetToString(stylesheet));\n if (!hasStyleSheet) {\n root.adoptedStyleSheets = [...Array.from(root.adoptedStyleSheets), stylesheet];\n }\n }\n return stylesheet;\n}\n\nexport function styleSheetToString(stylesheet: CSSStyleSheet) {\n return stylesheet.cssRules\n ? Array.from(stylesheet.cssRules)\n .map(rule => rule.cssText || '')\n .join('\\n')\n : '';\n}\n\n/** Intercepts a property setter on an element so `callback` fires on every assignment. Does not use a MutationObserver. */\nexport function getPropertyChanges(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n const proto = Object.getPrototypeOf(element);\n const descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (!descriptor) return;\n const own = Object.getOwnPropertyDescriptor(element, key);\n if (own && own.configurable === false) return;\n Object.defineProperty(element, key, {\n configurable: true,\n get: descriptor.get,\n set: (val: unknown) => {\n descriptor.set!.call(element, val);\n callback(val);\n }\n });\n}\n\n/* used for cases of needing to know a property update outside of lit, example a native input value prop change */\nexport function getElementUpdate(element: HTMLElement, key: string, callback: (value: unknown) => void) {\n if (element.hasAttribute(key)) {\n callback(element.getAttribute(key));\n } else if ((element as unknown as Record<string, unknown>)[key] !== undefined) {\n callback((element as unknown as Record<string, unknown>)[key]);\n }\n\n getPropertyChanges(element, key, callback);\n return getAttributeChanges(element, key, val => callback(val));\n}\n\nexport function clickOutsideElementBounds(event: PointerEvent | MouseEvent, element: HTMLElement) {\n const { left, right, top, bottom } = element.getBoundingClientRect();\n return event.clientX < left || event.clientX > right || event.clientY < top || event.clientY > bottom;\n}\n\n/** parses number out of basic calc generated by the design tokens */\nexport function parseTokenNumber(value: string) {\n return parseInt(value.includes('calc') ? value.split('*')[1]!.replace('px)', '').trim() : value, 10) || 0;\n}\n\n/** true if the browser supports scoped custom element registries */\nexport const supportsScopedRegistry =\n globalThis.CustomElementRegistry && 'initialize' in CustomElementRegistry.prototype;\n\n/** defines an element with the given custom element registry */\nexport function defineElement(element: ElementDefinition, customElementRegistry: CustomElementRegistry) {\n Object.entries(element.elementDefinitions ?? {})\n .filter(([_tag, e]) => !customElementRegistry.get(e.metadata.tag))\n .forEach(([_tag, e]) => {\n defineElement(e, customElementRegistry);\n });\n\n if (!customElementRegistry.get(element.metadata.tag)) {\n customElementRegistry.define(element.metadata.tag, element);\n\n if (customElementRegistry === customElements) {\n GlobalStateService.dispatch('NVE_ELEMENT_DEFINE', {\n elementRegistry: { [element.metadata.tag]: element.metadata.version }\n });\n }\n }\n}\n\n/** defines an element with the global custom element registry */\nexport function define(element: ElementDefinition) {\n const { version } = element.metadata;\n\n // if scoped registry supported, register only the root element to global registry\n if (supportsScopedRegistry && !customElements.get(element.metadata.tag)) {\n customElements.define(element.metadata.tag, element);\n GlobalStateService.dispatch('NVE_ELEMENT_DEFINE', {\n elementRegistry: { [element.metadata.tag]: element.metadata.version }\n });\n } else {\n // if scoped registry not supported, register the element and all its children to the global registry\n defineElement(element, customElements);\n }\n\n // warn on duplicate version\n if (\n GlobalStateService.state.elementRegistry[element.metadata.tag] !== version &&\n globalThis?.location?.hostname === 'localhost'\n ) {\n void import('./audit-logs.js').then(m =>\n console.warn(m.getDuplicatePackageVersionWarning(element.metadata.tag, version))\n );\n }\n}\n\nexport function isContextMenuClick(event: MouseEvent) {\n return (event.buttons === 2 && !event.ctrlKey) || (event.buttons === 1 && event.ctrlKey);\n}\n\nexport function getFlattenedFocusableItems(element: Node, depth = 10) {\n return getFlattenedDOMTree(element, depth).filter((e: HTMLElement) => isFocusable(e)) as HTMLElement[];\n}\n\n/**\n * Preserves visual DOM ordering when using slots within Shadow DOM\n * See more information/resources on Shadow DOM linear traversal\n * https://nolanlawson.com/2021/02/13/managing-focus-in-the-shadow-dom/\n * https://www.abeautifulsite.net/posts/querying-through-shadow-roots/\n */\nexport function getFlattenedDOMTree(node: Node, depth = 10): HTMLElement[] {\n return (\n Array.from(getChildren(node)).reduce(\n (p: unknown[], n: Node) => [\n ...p,\n [n, [...Array.from(getChildren(n)).map(i => [i, getFlattenedDOMTree(i, depth)])]]\n ],\n []\n ) as unknown as HTMLElement[]\n ).flat(depth);\n}\n\nexport function validKeyNavigationCode(e: KeyboardEvent) {\n return keynavCodes.has(e.code);\n}\n\nexport enum KeynavCode {\n End = 'End',\n Home = 'Home',\n PageUp = 'PageUp',\n PageDown = 'PageDown',\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight'\n}\n\nconst keynavCodes: Set<string> = new Set(Object.values(KeynavCode));\n\nexport function hasInvalidDOMGrid(rows: HTMLElement[]) {\n return rows.some(row => row.children.length !== rows[0]!.children.length);\n}\n\nexport function removeEmptyTextNode(node: Node) {\n if ((node as Text)?.wholeText?.trim() === '') {\n (node as Text).remove();\n }\n}\n\nexport function scrollBarWidth() {\n const div = globalThis.document.createElement('div');\n div.style.setProperty('width', '100px');\n div.style.setProperty('height', '100px');\n div.style.setProperty('overflow', 'scroll');\n div.style.setProperty('position', 'absolute');\n div.style.setProperty('top', '-9999px');\n globalThis.document.body.appendChild(div);\n const width = div.offsetWidth - div.clientWidth;\n globalThis.document.body.removeChild(div);\n return width;\n}\n\nexport function hasScrollBar(el: HTMLElement) {\n return el.scrollHeight > el.clientHeight;\n}\n\nexport function hasHorizontalScrollBar(el: HTMLElement) {\n return el.scrollWidth > el.clientWidth;\n}\n\nexport function endOfScrollBox(element: HTMLElement, offset = 0) {\n return element.scrollTop + element.offsetHeight + offset >= element.scrollHeight;\n}\n\nexport async function openEyeDropper(): Promise<string> {\n return await new (\n globalThis as unknown as { EyeDropper: new () => { open: () => Promise<{ sRGBHex: string }> } }\n ).EyeDropper()\n .open()\n .then((color: { sRGBHex: string }) => color.sRGBHex);\n}\n\n/**\n * provides a object with key/value of the currently applied design tokens\n */\nexport function getThemeTokens(element = globalThis.document.querySelector(':root')!) {\n // default root or provided element\n const styles = getComputedStyle(element);\n let parent: CSSStyleSheet[] = [];\n\n // check for parent iframe, same domain iframes change how the browser accesses style sheets\n try {\n parent = Array.from(globalThis.parent.document.styleSheets);\n } catch {\n // if not accessible, skip\n }\n\n return [...parent, ...Array.from(globalThis.document.styleSheets)]\n .reduce((finalArr: string[][], sheet) => {\n let rules: CSSRule[] = [];\n try {\n rules = [...sheet.cssRules];\n } catch {\n // if the style sheet is not accessible, skip\n }\n return finalArr.concat(\n rules\n .filter(rule => rule.type === 1)\n .reduce((propValArr: string[][], rule) => {\n const props = [...(rule as CSSStyleRule).style]\n .filter((p: string) => p.trim().includes('--nve'))\n .map((propName: string) => [\n propName.trim(),\n (rule as CSSStyleRule).style.getPropertyValue(propName).trim()\n ]);\n return [...propValArr, ...props];\n }, [])\n );\n }, [])\n .reduce(\n (p: Record<string, string>, token: string[]) => ({ ...p, [token[0]!]: styles.getPropertyValue(token[0]!) }),\n {}\n );\n}\n\nexport function removeEmptySlotWhitespace(slot: HTMLSlotElement) {\n if (slotContainsOnlyWhitespace(slot)) {\n slot.assignedNodes().forEach((node: Node) => node.parentNode?.removeChild(node));\n }\n}\n\nexport function slotContainsOnlyWhitespace(slot: HTMLSlotElement) {\n const hasNoElements = !slot.assignedNodes().find(i => i.nodeType !== Node.TEXT_NODE);\n const hasOnlyEmptyTextNodes = !slot\n .assignedNodes()\n .find(i => i.nodeType === Node.TEXT_NODE && (i.textContent ?? '').trim() !== '');\n return hasNoElements && hasOnlyEmptyTextNodes;\n}\n\nexport function applySlotContentStates(slot: HTMLSlotElement, element: HTMLElement & { _internals: ElementInternals }) {\n const nodes = slot.assignedNodes();\n const name = slot.name ?? 'slot';\n\n if (nodes.length) {\n element._internals.states.add(`has-${name}`);\n } else {\n element._internals.states.delete(`has-${name}`);\n }\n}\n\nexport function getDisplayValue(option?: { label?: string; value?: string }): string {\n return option?.label || option?.value || '';\n}\n\n/** determines if HTML element matches the given component tag */\nexport function matchesElementName(element: Partial<HTMLElement>, component: { metadata: { tag: string } }) {\n return element.localName === component.metadata.tag;\n}\n\nexport function createGhostElement(sourceElement: HTMLElement) {\n const ghost = globalThis.document.createElement('div');\n const { width } = sourceElement.getBoundingClientRect();\n ghost.setAttribute('nve-ghost', '');\n ghost.style.minWidth = `${width}px`;\n ghost.style.maxWidth = `${width}px`;\n ghost.style.height = '1px';\n ghost.slot = sourceElement.slot;\n return ghost;\n}\n\nexport function sameRenderRoot(element1: HTMLElement, element2: HTMLElement) {\n const root1 = element1.getRootNode();\n const root2 = element2.getRootNode();\n const sameShadowRoot = root1 instanceof ShadowRoot && root2 instanceof ShadowRoot && root1 === root2;\n const sameDocumentRoot = root1 === globalThis.document && root2 === globalThis.document;\n const sameUnattachedRoot = root1 === root2;\n return sameShadowRoot || sameDocumentRoot || sameUnattachedRoot;\n}\n\nexport function getAnchorNames(element: HTMLElement): string[] {\n return (\n element.style.anchorName\n ?.split(',')\n ?.map(name => name.trim())\n ?.filter(name => name !== 'none' && name !== '') ?? []\n );\n}\n\nexport function removeAnchorName(element: HTMLElement, name: string) {\n const anchorNames = getAnchorNames(element);\n element.style.anchorName = anchorNames.filter(i => i !== name).join(',');\n}\n\nexport function appendAnchorName(element: HTMLElement, name: string) {\n element.style.anchorName = Array.from(new Set([...getAnchorNames(element), name])).join(',');\n}\n\n/**\n * Returns true when both arrays have the same length and each index is strictly equal (`===`).\n */\nexport function sameOrderedStringArray(a: readonly string[], b: readonly string[]): boolean {\n return a.length === b.length && a.every((value, index) => value === b[index]);\n}\n\n/**\n * Returns unique non-empty strings in first-seen order (insertion order of a `Set` over the filtered list).\n */\nexport function uniqueNonEmptyStrings(values: Iterable<string | null | undefined>): string[] {\n return Array.from(\n new Set(Array.from(values).filter((value): value is string => typeof value === 'string' && value.length > 0))\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":[],"sources":["../../../src/internal/utils/events.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function stopEvent(event: Event) {\n event?.preventDefault();\n event?.stopPropagation();\n}\n\nexport function onChildListMutation(\n element: HTMLElement,\n fn: (mutation?: MutationRecord) => void,\n options: MutationObserverInit = {}\n) {\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n fn(mutation);\n }\n\n if (options.attributes && mutation.type === 'attributes') {\n fn(mutation);\n }\n }\n });\n observer.observe(element, { childList: true, ...options });\n return observer;\n}\n\nexport function throttle(func: (...args: unknown[]) => void, limit: number) {\n let wait = true;\n return (...args: unknown[]) => {\n if (wait) {\n func(...args);\n wait = false;\n /* istanbul ignore next */\n setTimeout(() => (wait = true), limit);\n }\n };\n}\n\nexport function debounce(func: (...args: unknown[]) => void, timeout = 0) {\n let timer: ReturnType<typeof setTimeout> | undefined;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n /* istanbul ignore next */\n timer = setTimeout(() => {\n func(...args);\n }, timeout);\n };\n}\n"],"mappings":";AAGA,SAAgB,EAAU,GAAc;AAEtC,CADA,GAAO,gBAAgB,EACvB,GAAO,iBAAiB;;AAG1B,SAAgB,EACd,GACA,GACA,IAAgC,EAAE,EAClC;CACA,IAAM,IAAW,IAAI,kBAAiB,MAAa;AACjD,OAAK,IAAM,KAAY,EAKrB,CAJI,EAAS,SAAS,eACpB,EAAG,EAAS,EAGV,EAAQ,cAAc,EAAS,SAAS,gBAC1C,EAAG,EAAS;GAGhB;AAEF,QADA,EAAS,QAAQ,GAAS;EAAE,WAAW;EAAM,GAAG;EAAS,CAAC,EACnD;;AAGT,SAAgB,EAAS,GAAoC,GAAe;CAC1E,IAAI,IAAO;AACX,SAAQ,GAAG,MAAoB;AAC7B,EAAI,MACF,EAAK,GAAG,EAAK,EACb,IAAO,IAEP,iBAAkB,IAAO,IAAO,EAAM;;;AAK5C,SAAgB,EAAS,GAAoC,IAAU,GAAG;CACxE,IAAI;AACJ,SAAQ,GAAG,MAAoB;;AAG7B,EAFA,aAAa,EAAM,EAEnB,IAAQ,iBAAiB;AACvB,KAAK,GAAG,EAAK;KACZ,EAAQ"}
1
+ {"version":3,"file":"events.js","names":[],"sources":["../../../src/internal/utils/events.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function stopEvent(event: Event) {\n event?.preventDefault();\n event?.stopPropagation();\n}\n\nexport function onChildListMutation(\n element: HTMLElement,\n fn: (mutation?: MutationRecord) => void,\n options: MutationObserverInit = {}\n) {\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n fn(mutation);\n }\n\n if (options.attributes && mutation.type === 'attributes') {\n fn(mutation);\n }\n }\n });\n observer.observe(element, { childList: true, ...options });\n return observer;\n}\n\nexport function throttle(func: (...args: unknown[]) => void, limit: number) {\n let wait = true;\n return (...args: unknown[]) => {\n if (wait) {\n func(...args);\n wait = false;\n /* istanbul ignore next */\n setTimeout(() => (wait = true), limit);\n }\n };\n}\n\nexport function debounce(func: (...args: unknown[]) => void, timeout = 0) {\n let timer: ReturnType<typeof setTimeout> | undefined;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n /* istanbul ignore next */\n timer = setTimeout(() => {\n func(...args);\n }, timeout);\n };\n}\n"],"mappings":";AAGA,SAAgB,EAAU,GAAc;CAEtC,AADA,GAAO,gBAAgB,EACvB,GAAO,iBAAiB;;AAG1B,SAAgB,EACd,GACA,GACA,IAAgC,EAAE,EAClC;CACA,IAAM,IAAW,IAAI,kBAAiB,MAAa;EACjD,KAAK,IAAM,KAAY,GAKrB,AAJI,EAAS,SAAS,eACpB,EAAG,EAAS,EAGV,EAAQ,cAAc,EAAS,SAAS,gBAC1C,EAAG,EAAS;GAGhB;CAEF,OADA,EAAS,QAAQ,GAAS;EAAE,WAAW;EAAM,GAAG;EAAS,CAAC,EACnD;;AAGT,SAAgB,EAAS,GAAoC,GAAe;CAC1E,IAAI,IAAO;CACX,QAAQ,GAAG,MAAoB;EAC7B,AAAI,MACF,EAAK,GAAG,EAAK,EACb,IAAO,IAEP,iBAAkB,IAAO,IAAO,EAAM;;;AAK5C,SAAgB,EAAS,GAAoC,IAAU,GAAG;CACxE,IAAI;CACJ,QAAQ,GAAG,MAAoB;;EAG7B,AAFA,aAAa,EAAM,EAEnB,IAAQ,iBAAiB;GACvB,EAAK,GAAG,EAAK;KACZ,EAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"focus.js","names":[],"sources":["../../../src/internal/utils/focus.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isFocusable(element: Element) {\n return (\n element.matches(\n [\n 'a[href]',\n 'area[href]',\n 'input',\n 'button',\n 'select',\n 'textarea',\n 'iframe',\n 'object',\n 'embed',\n '*[tabindex]',\n '*[contenteditable=true]',\n '[role=button]'\n ].join(',')\n ) &&\n element.matches(':not([disabled], [inert])') &&\n !element.closest(`[inert]`) &&\n !element.closest('[popover]')?.matches(':not(:popover-open)')\n );\n}\n\n/** returns interactive elements that does not require advanced keyboard interactions like arrow/navigation */\nexport function isSimpleFocusable(element: Element) {\n return element.matches(\n [\n 'a[href]',\n 'button:not([disabled])',\n 'input[type=checkbox]',\n 'input[type=radio]',\n 'object',\n 'embed',\n '*[tabindex]',\n '[role=button]:not([disabled])'\n ].join(',')\n );\n}\n\nexport function getActiveElement(root: Document | ShadowRoot = globalThis.document): Element | null {\n if (root.activeElement && root.activeElement.shadowRoot) {\n return getActiveElement(root.activeElement.shadowRoot) ?? root.activeElement;\n } else {\n return root.activeElement;\n }\n}\n\nexport function focusElement(element: HTMLElement) {\n if (element && !isFocusable(element)) {\n element.setAttribute('tabindex', '-1');\n element.focus();\n element.addEventListener('blur', () => element.removeAttribute('tabindex'), { once: true });\n } else {\n element?.focus();\n }\n}\n\nexport function focusElementTimeout(element: HTMLElement) {\n setTimeout(() => focusElement(element));\n}\n\nexport function setActiveKeyListItem(items: NodeListOf<HTMLElement> | HTMLElement[], item: HTMLElement) {\n items.forEach(i => (i.tabIndex = -1));\n item.tabIndex = 0;\n}\n\nexport function initializeKeyListItems(items: NodeListOf<HTMLElement> | HTMLElement[]) {\n items.forEach(i => (i.tabIndex = -1));\n items[0] && (items[0].tabIndex = 0);\n}\n\n/** determines if user interaction is a valid interaction for activating a listbox type */\nexport function onListboxActivate(\n element: HTMLElement & { disabled?: boolean },\n fn: (event: KeyboardEvent | PointerEvent) => void\n) {\n const validKey = (e: KeyboardEvent) => e.code === 'Space' || e.code === 'ArrowUp' || e.code === 'ArrowDown';\n\n element.addEventListener('pointerdown', (e: PointerEvent) => {\n e.preventDefault();\n });\n\n element.addEventListener('pointerup', (e: PointerEvent) => {\n e.preventDefault();\n\n if (!element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keyup', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keydown', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n e.preventDefault();\n }\n });\n}\n"],"mappings":";AAGA,SAAgB,EAAY,GAAkB;AAC5C,QACE,EAAQ,QACN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,KAAK,IAAI,CACZ,IACD,EAAQ,QAAQ,4BAA4B,IAC5C,CAAC,EAAQ,QAAQ,UAAU,IAC3B,CAAC,EAAQ,QAAQ,YAAY,EAAE,QAAQ,sBAAsB;;AAKjE,SAAgB,EAAkB,GAAkB;AAClD,QAAO,EAAQ,QACb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,KAAK,IAAI,CACZ;;AAGH,SAAgB,EAAiB,IAA8B,WAAW,UAA0B;AAIhG,QAHE,EAAK,iBAAiB,EAAK,cAAc,aACpC,EAAiB,EAAK,cAAc,WAAW,IAAI,EAAK,gBAExD,EAAK;;AAIhB,SAAgB,EAAa,GAAsB;AACjD,CAAI,KAAW,CAAC,EAAY,EAAQ,IAClC,EAAQ,aAAa,YAAY,KAAK,EACtC,EAAQ,OAAO,EACf,EAAQ,iBAAiB,cAAc,EAAQ,gBAAgB,WAAW,EAAE,EAAE,MAAM,IAAM,CAAC,IAE3F,GAAS,OAAO;;AAIpB,SAAgB,EAAoB,GAAsB;AACxD,kBAAiB,EAAa,EAAQ,CAAC;;AAGzC,SAAgB,EAAqB,GAAgD,GAAmB;AAEtG,CADA,EAAM,SAAQ,MAAM,EAAE,WAAW,GAAI,EACrC,EAAK,WAAW;;AAGlB,SAAgB,EAAuB,GAAgD;AAErF,CADA,EAAM,SAAQ,MAAM,EAAE,WAAW,GAAI,EACrC,EAAM,OAAO,EAAM,GAAG,WAAW;;AAInC,SAAgB,EACd,GACA,GACA;CACA,IAAM,KAAY,MAAqB,EAAE,SAAS,WAAW,EAAE,SAAS,aAAa,EAAE,SAAS;AAoBhG,CAlBA,EAAQ,iBAAiB,gBAAgB,MAAoB;AAC3D,IAAE,gBAAgB;GAClB,EAEF,EAAQ,iBAAiB,cAAc,MAAoB;AAGzD,EAFA,EAAE,gBAAgB,EAEb,EAAQ,YACX,EAAG,EAAE;GAEP,EAEF,EAAQ,iBAAiB,UAAU,MAAqB;AACtD,EAAI,EAAS,EAAE,IAAI,CAAC,EAAQ,YAC1B,EAAG,EAAE;GAEP,EAEF,EAAQ,iBAAiB,YAAY,MAAqB;AACxD,EAAI,EAAS,EAAE,IAAI,CAAC,EAAQ,YAC1B,EAAE,gBAAgB;GAEpB"}
1
+ {"version":3,"file":"focus.js","names":[],"sources":["../../../src/internal/utils/focus.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isFocusable(element: Element) {\n return (\n element.matches(\n [\n 'a[href]',\n 'area[href]',\n 'input',\n 'button',\n 'select',\n 'textarea',\n 'iframe',\n 'object',\n 'embed',\n '*[tabindex]',\n '*[contenteditable=true]',\n '[role=button]'\n ].join(',')\n ) &&\n element.matches(':not([disabled], [inert])') &&\n !element.closest(`[inert]`) &&\n !element.closest('[popover]')?.matches(':not(:popover-open)')\n );\n}\n\n/** returns interactive elements that does not require advanced keyboard interactions like arrow/navigation */\nexport function isSimpleFocusable(element: Element) {\n return element.matches(\n [\n 'a[href]',\n 'button:not([disabled])',\n 'input[type=checkbox]',\n 'input[type=radio]',\n 'object',\n 'embed',\n '*[tabindex]',\n '[role=button]:not([disabled])'\n ].join(',')\n );\n}\n\nexport function getActiveElement(root: Document | ShadowRoot = globalThis.document): Element | null {\n if (root.activeElement && root.activeElement.shadowRoot) {\n return getActiveElement(root.activeElement.shadowRoot) ?? root.activeElement;\n } else {\n return root.activeElement;\n }\n}\n\nexport function focusElement(element: HTMLElement) {\n if (element && !isFocusable(element)) {\n element.setAttribute('tabindex', '-1');\n element.focus();\n element.addEventListener('blur', () => element.removeAttribute('tabindex'), { once: true });\n } else {\n element?.focus();\n }\n}\n\nexport function focusElementTimeout(element: HTMLElement) {\n setTimeout(() => focusElement(element));\n}\n\nexport function setActiveKeyListItem(items: NodeListOf<HTMLElement> | HTMLElement[], item: HTMLElement) {\n items.forEach(i => (i.tabIndex = -1));\n item.tabIndex = 0;\n}\n\nexport function initializeKeyListItems(items: NodeListOf<HTMLElement> | HTMLElement[]) {\n items.forEach(i => (i.tabIndex = -1));\n items[0] && (items[0].tabIndex = 0);\n}\n\n/** determines if user interaction is a valid interaction for activating a listbox type */\nexport function onListboxActivate(\n element: HTMLElement & { disabled?: boolean },\n fn: (event: KeyboardEvent | PointerEvent) => void\n) {\n const validKey = (e: KeyboardEvent) => e.code === 'Space' || e.code === 'ArrowUp' || e.code === 'ArrowDown';\n\n element.addEventListener('pointerdown', (e: PointerEvent) => {\n e.preventDefault();\n });\n\n element.addEventListener('pointerup', (e: PointerEvent) => {\n e.preventDefault();\n\n if (!element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keyup', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n fn(e);\n }\n });\n\n element.addEventListener('keydown', (e: KeyboardEvent) => {\n if (validKey(e) && !element.disabled) {\n e.preventDefault();\n }\n });\n}\n"],"mappings":";AAGA,SAAgB,EAAY,GAAkB;CAC5C,OACE,EAAQ,QACN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,KAAK,IAAI,CACZ,IACD,EAAQ,QAAQ,4BAA4B,IAC5C,CAAC,EAAQ,QAAQ,UAAU,IAC3B,CAAC,EAAQ,QAAQ,YAAY,EAAE,QAAQ,sBAAsB;;AAKjE,SAAgB,EAAkB,GAAkB;CAClD,OAAO,EAAQ,QACb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,KAAK,IAAI,CACZ;;AAGH,SAAgB,EAAiB,IAA8B,WAAW,UAA0B;CAIhG,OAHE,EAAK,iBAAiB,EAAK,cAAc,aACpC,EAAiB,EAAK,cAAc,WAAW,IAAI,EAAK,gBAExD,EAAK;;AAIhB,SAAgB,EAAa,GAAsB;CACjD,AAAI,KAAW,CAAC,EAAY,EAAQ,IAClC,EAAQ,aAAa,YAAY,KAAK,EACtC,EAAQ,OAAO,EACf,EAAQ,iBAAiB,cAAc,EAAQ,gBAAgB,WAAW,EAAE,EAAE,MAAM,IAAM,CAAC,IAE3F,GAAS,OAAO;;AAIpB,SAAgB,EAAoB,GAAsB;CACxD,iBAAiB,EAAa,EAAQ,CAAC;;AAGzC,SAAgB,EAAqB,GAAgD,GAAmB;CAEtG,AADA,EAAM,SAAQ,MAAM,EAAE,WAAW,GAAI,EACrC,EAAK,WAAW;;AAGlB,SAAgB,EAAuB,GAAgD;CAErF,AADA,EAAM,SAAQ,MAAM,EAAE,WAAW,GAAI,EACrC,EAAM,OAAO,EAAM,GAAG,WAAW;;AAInC,SAAgB,EACd,GACA,GACA;CACA,IAAM,KAAY,MAAqB,EAAE,SAAS,WAAW,EAAE,SAAS,aAAa,EAAE,SAAS;CAoBhG,AAlBA,EAAQ,iBAAiB,gBAAgB,MAAoB;EAC3D,EAAE,gBAAgB;GAClB,EAEF,EAAQ,iBAAiB,cAAc,MAAoB;EAGzD,AAFA,EAAE,gBAAgB,EAEb,EAAQ,YACX,EAAG,EAAE;GAEP,EAEF,EAAQ,iBAAiB,UAAU,MAAqB;EACtD,AAAI,EAAS,EAAE,IAAI,CAAC,EAAQ,YAC1B,EAAG,EAAE;GAEP,EAEF,EAAQ,iBAAiB,YAAY,MAAqB;EACxD,AAAI,EAAS,EAAE,IAAI,CAAC,EAAQ,YAC1B,EAAE,gBAAgB;GAEpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"keynav.js","names":[],"sources":["../../../src/internal/utils/keynav.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clickOutsideElementBounds } from './dom.js';\nimport { focusElementTimeout } from './focus.js';\n\nexport function onKeys(events: string[], event: KeyboardEvent, fn: () => void) {\n if (events.includes(event.code)) {\n fn();\n }\n}\n\nexport function createLightDismiss(\n options: { element: HTMLElement; focusElement?: HTMLElement; signal?: AbortSignal },\n fn: () => void\n) {\n const listenerOptions = options.signal ? { signal: options.signal } : undefined;\n\n globalThis.document.addEventListener(\n 'pointerup',\n (e: PointerEvent) => {\n if (\n !options.element.hidden &&\n clickOutsideElementBounds(e, options.element) &&\n clickOutsideElementBounds(e, options.focusElement!)\n ) {\n fn();\n }\n },\n listenerOptions\n );\n\n options.element.addEventListener(\n 'keydown',\n (e: KeyboardEvent) => {\n if (!options.element.hidden && e.code === 'Escape') {\n e.preventDefault();\n focusElementTimeout(options.focusElement!);\n fn();\n }\n },\n listenerOptions\n );\n}\n"],"mappings":";;;AAMA,SAAgB,EAAO,GAAkB,GAAsB,GAAgB;AAC7E,CAAI,EAAO,SAAS,EAAM,KAAK,IAC7B,GAAI;;AAIR,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAkB,EAAQ,SAAS,EAAE,QAAQ,EAAQ,QAAQ,GAAG,KAAA;AAgBtE,CAdA,WAAW,SAAS,iBAClB,cACC,MAAoB;AACnB,EACE,CAAC,EAAQ,QAAQ,UACjB,EAA0B,GAAG,EAAQ,QAAQ,IAC7C,EAA0B,GAAG,EAAQ,aAAc,IAEnD,GAAI;IAGR,EACD,EAED,EAAQ,QAAQ,iBACd,YACC,MAAqB;AACpB,EAAI,CAAC,EAAQ,QAAQ,UAAU,EAAE,SAAS,aACxC,EAAE,gBAAgB,EAClB,EAAoB,EAAQ,aAAc,EAC1C,GAAI;IAGR,EACD"}
1
+ {"version":3,"file":"keynav.js","names":[],"sources":["../../../src/internal/utils/keynav.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clickOutsideElementBounds } from './dom.js';\nimport { focusElementTimeout } from './focus.js';\n\nexport function onKeys(events: string[], event: KeyboardEvent, fn: () => void) {\n if (events.includes(event.code)) {\n fn();\n }\n}\n\nexport function createLightDismiss(\n options: { element: HTMLElement; focusElement?: HTMLElement; signal?: AbortSignal },\n fn: () => void\n) {\n const listenerOptions = options.signal ? { signal: options.signal } : undefined;\n\n globalThis.document.addEventListener(\n 'pointerup',\n (e: PointerEvent) => {\n if (\n !options.element.hidden &&\n clickOutsideElementBounds(e, options.element) &&\n clickOutsideElementBounds(e, options.focusElement!)\n ) {\n fn();\n }\n },\n listenerOptions\n );\n\n options.element.addEventListener(\n 'keydown',\n (e: KeyboardEvent) => {\n if (!options.element.hidden && e.code === 'Escape') {\n e.preventDefault();\n focusElementTimeout(options.focusElement!);\n fn();\n }\n },\n listenerOptions\n );\n}\n"],"mappings":";;;AAMA,SAAgB,EAAO,GAAkB,GAAsB,GAAgB;CAC7E,AAAI,EAAO,SAAS,EAAM,KAAK,IAC7B,GAAI;;AAIR,SAAgB,EACd,GACA,GACA;CACA,IAAM,IAAkB,EAAQ,SAAS,EAAE,QAAQ,EAAQ,QAAQ,GAAG,KAAA;CAgBtE,AAdA,WAAW,SAAS,iBAClB,cACC,MAAoB;EACnB,AACE,CAAC,EAAQ,QAAQ,UACjB,EAA0B,GAAG,EAAQ,QAAQ,IAC7C,EAA0B,GAAG,EAAQ,aAAc,IAEnD,GAAI;IAGR,EACD,EAED,EAAQ,QAAQ,iBACd,YACC,MAAqB;EACpB,AAAI,CAAC,EAAQ,QAAQ,UAAU,EAAE,SAAS,aACxC,EAAE,gBAAgB,EAClB,EAAoB,EAAQ,aAAc,EAC1C,GAAI;IAGR,EACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","names":[],"sources":["../../../src/internal/utils/objects.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isObject(item: unknown): item is Record<string, unknown> {\n return !!item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function isObjectLiteral(item: unknown): item is Record<string, unknown> {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n return false;\n }\n const proto = Object.getPrototypeOf(item);\n return proto === null || proto === Object.prototype;\n}\n\nexport function deepMerge(\n target: Record<string, unknown>,\n ...sources: Record<string, unknown>[]\n): Record<string, unknown> {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (isObjectLiteral(target) && isObjectLiteral(source)) {\n for (const key in source) {\n mergeProperty(target, source, key);\n }\n }\n\n return deepMerge(target, ...sources);\n}\n\nfunction mergeProperty(target: Record<string, unknown>, source: Record<string, unknown>, key: string) {\n const sourceValue = source[key];\n if (!isObjectLiteral(sourceValue)) {\n target[key] = sourceValue;\n return;\n }\n if (isObjectLiteral(target[key])) {\n deepMerge(target[key], sourceValue);\n } else {\n target[key] = sourceValue;\n }\n}\n\nexport function parseVersion(version: string) {\n const [major, minor, patch] = version.split('.').map(v => {\n const n = parseInt(v, 10);\n return Number.isNaN(n) ? -1 : n;\n });\n return { major: major ?? -1, minor: minor ?? -1, patch: patch ?? -1 };\n}\n\nexport function formatStandardNumber(number: number) {\n return new Intl.NumberFormat().format(number);\n}\n\nexport function getDifference(minuend: number, subtrahend: number) {\n return Math.sign(subtrahend - minuend) * Math.abs(minuend - subtrahend);\n}\n"],"mappings":";AAGA,SAAgB,EAAS,GAAgD;AACvE,QAAO,CAAC,CAAC,KAAQ,OAAO,KAAS,YAAY,CAAC,MAAM,QAAQ,EAAK;;AAGnE,SAAgB,EAAgB,GAAgD;AAC9E,KAAI,CAAC,KAAQ,OAAO,KAAS,YAAY,MAAM,QAAQ,EAAK,CAC1D,QAAO;CAET,IAAM,IAAQ,OAAO,eAAe,EAAK;AACzC,QAAO,MAAU,QAAQ,MAAU,OAAO;;AAG5C,SAAgB,EACd,GACA,GAAG,GACsB;AACzB,KAAI,CAAC,EAAQ,OACX,QAAO;CAGT,IAAM,IAAS,EAAQ,OAAO;AAE9B,KAAI,EAAgB,EAAO,IAAI,EAAgB,EAAO,CACpD,MAAK,IAAM,KAAO,EAChB,GAAc,GAAQ,GAAQ,EAAI;AAItC,QAAO,EAAU,GAAQ,GAAG,EAAQ;;AAGtC,SAAS,EAAc,GAAiC,GAAiC,GAAa;CACpG,IAAM,IAAc,EAAO;AAC3B,KAAI,CAAC,EAAgB,EAAY,EAAE;AACjC,IAAO,KAAO;AACd;;AAEF,CAAI,EAAgB,EAAO,GAAK,GAC9B,EAAU,EAAO,IAAM,EAAY,GAEnC,EAAO,KAAO;;AAIlB,SAAgB,EAAa,GAAiB;CAC5C,IAAM,CAAC,GAAO,GAAO,KAAS,EAAQ,MAAM,IAAI,CAAC,KAAI,MAAK;EACxD,IAAM,IAAI,SAAS,GAAG,GAAG;AACzB,SAAO,OAAO,MAAM,EAAE,GAAG,KAAK;GAC9B;AACF,QAAO;EAAE,OAAO,KAAS;EAAI,OAAO,KAAS;EAAI,OAAO,KAAS;EAAI;;AAGvE,SAAgB,EAAqB,GAAgB;AACnD,QAAO,IAAI,KAAK,cAAc,CAAC,OAAO,EAAO;;AAG/C,SAAgB,EAAc,GAAiB,GAAoB;AACjE,QAAO,KAAK,KAAK,IAAa,EAAQ,GAAG,KAAK,IAAI,IAAU,EAAW"}
1
+ {"version":3,"file":"objects.js","names":[],"sources":["../../../src/internal/utils/objects.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isObject(item: unknown): item is Record<string, unknown> {\n return !!item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function isObjectLiteral(item: unknown): item is Record<string, unknown> {\n if (!item || typeof item !== 'object' || Array.isArray(item)) {\n return false;\n }\n const proto = Object.getPrototypeOf(item);\n return proto === null || proto === Object.prototype;\n}\n\nexport function deepMerge(\n target: Record<string, unknown>,\n ...sources: Record<string, unknown>[]\n): Record<string, unknown> {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (isObjectLiteral(target) && isObjectLiteral(source)) {\n for (const key in source) {\n mergeProperty(target, source, key);\n }\n }\n\n return deepMerge(target, ...sources);\n}\n\nfunction mergeProperty(target: Record<string, unknown>, source: Record<string, unknown>, key: string) {\n const sourceValue = source[key];\n if (!isObjectLiteral(sourceValue)) {\n target[key] = sourceValue;\n return;\n }\n if (isObjectLiteral(target[key])) {\n deepMerge(target[key], sourceValue);\n } else {\n target[key] = sourceValue;\n }\n}\n\nexport function parseVersion(version: string) {\n const [major, minor, patch] = version.split('.').map(v => {\n const n = parseInt(v, 10);\n return Number.isNaN(n) ? -1 : n;\n });\n return { major: major ?? -1, minor: minor ?? -1, patch: patch ?? -1 };\n}\n\nexport function formatStandardNumber(number: number) {\n return new Intl.NumberFormat().format(number);\n}\n\nexport function getDifference(minuend: number, subtrahend: number) {\n return Math.sign(subtrahend - minuend) * Math.abs(minuend - subtrahend);\n}\n"],"mappings":";AAGA,SAAgB,EAAS,GAAgD;CACvE,OAAO,CAAC,CAAC,KAAQ,OAAO,KAAS,YAAY,CAAC,MAAM,QAAQ,EAAK;;AAGnE,SAAgB,EAAgB,GAAgD;CAC9E,IAAI,CAAC,KAAQ,OAAO,KAAS,YAAY,MAAM,QAAQ,EAAK,EAC1D,OAAO;CAET,IAAM,IAAQ,OAAO,eAAe,EAAK;CACzC,OAAO,MAAU,QAAQ,MAAU,OAAO;;AAG5C,SAAgB,EACd,GACA,GAAG,GACsB;CACzB,IAAI,CAAC,EAAQ,QACX,OAAO;CAGT,IAAM,IAAS,EAAQ,OAAO;CAE9B,IAAI,EAAgB,EAAO,IAAI,EAAgB,EAAO,EACpD,KAAK,IAAM,KAAO,GAChB,EAAc,GAAQ,GAAQ,EAAI;CAItC,OAAO,EAAU,GAAQ,GAAG,EAAQ;;AAGtC,SAAS,EAAc,GAAiC,GAAiC,GAAa;CACpG,IAAM,IAAc,EAAO;CAC3B,IAAI,CAAC,EAAgB,EAAY,EAAE;EACjC,EAAO,KAAO;EACd;;CAEF,AAAI,EAAgB,EAAO,GAAK,GAC9B,EAAU,EAAO,IAAM,EAAY,GAEnC,EAAO,KAAO;;AAIlB,SAAgB,EAAa,GAAiB;CAC5C,IAAM,CAAC,GAAO,GAAO,KAAS,EAAQ,MAAM,IAAI,CAAC,KAAI,MAAK;EACxD,IAAM,IAAI,SAAS,GAAG,GAAG;EACzB,OAAO,OAAO,MAAM,EAAE,GAAG,KAAK;GAC9B;CACF,OAAO;EAAE,OAAO,KAAS;EAAI,OAAO,KAAS;EAAI,OAAO,KAAS;EAAI;;AAGvE,SAAgB,EAAqB,GAAgB;CACnD,OAAO,IAAI,KAAK,cAAc,CAAC,OAAO,EAAO;;AAG/C,SAAgB,EAAc,GAAiB,GAAoB;CACjE,OAAO,KAAK,KAAK,IAAa,EAAQ,GAAG,KAAK,IAAI,IAAU,EAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","names":[],"sources":["../../../src/internal/utils/strings.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/** formats a file size in bytes to a human readable string */\nexport function formatFileSize(size: number): string {\n const thresholds = new Map<number, string>([\n [1024 ** 4, 'TB'],\n [1024 ** 3, 'GB'],\n [1024 ** 2, 'MB'],\n [1024 ** 1, 'KB'],\n [1, 'B']\n ]);\n for (const [threshold, unit] of thresholds.entries()) {\n if (size >= threshold) {\n return `${(size / threshold).toFixed(2)} ${unit}`;\n }\n }\n return `0`;\n}\n\n/** removes leading white space for a multiline string */\nexport function shiftLeft(value: string) {\n const shift = value.replace(/^\\n|\\n$/g, '').search(/\\S|$/);\n return value\n .trim()\n .split('\\n')\n .map(line => {\n return line\n .split('')\n .filter((c, i) => i >= shift || c !== ' ')\n .join('');\n })\n .join('\\n');\n}\n\nexport let DOCS_URL = '';\n/* @ts-expect-error -- VITE_BUNDLE_CONFIG is only defined at build time */\nif (!import.meta.env.VITE_BUNDLE_CONFIG) {\n DOCS_URL = 'https://nvidia.github.io/elements';\n}\n"],"mappings":";AAIA,SAAgB,EAAe,GAAsB;CACnD,IAAM,IAAa,IAAI,IAAoB;EACzC,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,GAAG,IAAI;EACT,CAAC;AACF,MAAK,IAAM,CAAC,GAAW,MAAS,EAAW,SAAS,CAClD,KAAI,KAAQ,EACV,QAAO,IAAI,IAAO,GAAW,QAAQ,EAAE,CAAC,GAAG;AAG/C,QAAO;;AAIT,SAAgB,EAAU,GAAe;CACvC,IAAM,IAAQ,EAAM,QAAQ,YAAY,GAAG,CAAC,OAAO,OAAO;AAC1D,QAAO,EACJ,MAAM,CACN,MAAM,KAAK,CACX,KAAI,MACI,EACJ,MAAM,GAAG,CACT,QAAQ,GAAG,MAAM,KAAK,KAAS,MAAM,IAAI,CACzC,KAAK,GAAG,CACX,CACD,KAAK,KAAK;;AAGf,IAAW,IAAW;AAGpB,IAAW"}
1
+ {"version":3,"file":"strings.js","names":[],"sources":["../../../src/internal/utils/strings.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/** formats a file size in bytes to a human readable string */\nexport function formatFileSize(size: number): string {\n const thresholds = new Map<number, string>([\n [1024 ** 4, 'TB'],\n [1024 ** 3, 'GB'],\n [1024 ** 2, 'MB'],\n [1024 ** 1, 'KB'],\n [1, 'B']\n ]);\n for (const [threshold, unit] of thresholds.entries()) {\n if (size >= threshold) {\n return `${(size / threshold).toFixed(2)} ${unit}`;\n }\n }\n return `0`;\n}\n\n/** removes leading white space for a multiline string */\nexport function shiftLeft(value: string) {\n const shift = value.replace(/^\\n|\\n$/g, '').search(/\\S|$/);\n return value\n .trim()\n .split('\\n')\n .map(line => {\n return line\n .split('')\n .filter((c, i) => i >= shift || c !== ' ')\n .join('');\n })\n .join('\\n');\n}\n\nexport let DOCS_URL = '';\n/* @ts-expect-error -- VITE_BUNDLE_CONFIG is only defined at build time */\nif (!import.meta.env.VITE_BUNDLE_CONFIG) {\n DOCS_URL = 'https://nvidia.github.io/elements';\n}\n"],"mappings":";AAIA,SAAgB,EAAe,GAAsB;CACnD,IAAM,IAAa,IAAI,IAAoB;EACzC,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,QAAQ,GAAG,KAAK;EACjB,CAAC,GAAG,IAAI;EACT,CAAC;CACF,KAAK,IAAM,CAAC,GAAW,MAAS,EAAW,SAAS,EAClD,IAAI,KAAQ,GACV,OAAO,IAAI,IAAO,GAAW,QAAQ,EAAE,CAAC,GAAG;CAG/C,OAAO;;AAIT,SAAgB,EAAU,GAAe;CACvC,IAAM,IAAQ,EAAM,QAAQ,YAAY,GAAG,CAAC,OAAO,OAAO;CAC1D,OAAO,EACJ,MAAM,CACN,MAAM,KAAK,CACX,KAAI,MACI,EACJ,MAAM,GAAG,CACT,QAAQ,GAAG,MAAM,KAAK,KAAS,MAAM,IAAI,CACzC,KAAK,GAAG,CACX,CACD,KAAK,KAAK;;AAGf,IAAW,IAAW;AAGpB,IAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"supports.js","names":[],"sources":["../../../src/internal/utils/supports.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function supportsNativeCSSAnchorPosition() {\n return globalThis.CSS?.supports?.('position-area', 'top') || globalThis.CSS?.supports?.('inset-area', 'top');\n}\n\nexport function supportsCSSPositionArea() {\n return globalThis.CSS?.supports?.('position-area', 'top');\n}\n\nexport function supportsCSSLegacyInsetArea() {\n return globalThis.CSS?.supports?.('inset-area', 'top');\n}\n"],"mappings":";AAGA,SAAgB,IAAkC;AAChD,QAAO,WAAW,KAAK,WAAW,iBAAiB,MAAM,IAAI,WAAW,KAAK,WAAW,cAAc,MAAM;;AAG9G,SAAgB,IAA0B;AACxC,QAAO,WAAW,KAAK,WAAW,iBAAiB,MAAM;;AAG3D,SAAgB,IAA6B;AAC3C,QAAO,WAAW,KAAK,WAAW,cAAc,MAAM"}
1
+ {"version":3,"file":"supports.js","names":[],"sources":["../../../src/internal/utils/supports.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function supportsNativeCSSAnchorPosition() {\n return globalThis.CSS?.supports?.('position-area', 'top') || globalThis.CSS?.supports?.('inset-area', 'top');\n}\n\nexport function supportsCSSPositionArea() {\n return globalThis.CSS?.supports?.('position-area', 'top');\n}\n\nexport function supportsCSSLegacyInsetArea() {\n return globalThis.CSS?.supports?.('inset-area', 'top');\n}\n"],"mappings":";AAGA,SAAgB,IAAkC;CAChD,OAAO,WAAW,KAAK,WAAW,iBAAiB,MAAM,IAAI,WAAW,KAAK,WAAW,cAAc,MAAM;;AAG9G,SAAgB,IAA0B;CACxC,OAAO,WAAW,KAAK,WAAW,iBAAiB,MAAM;;AAG3D,SAAgB,IAA6B;CAC3C,OAAO,WAAW,KAAK,WAAW,cAAc,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"logo.examples.js","names":[],"sources":["../../src/logo/logo.examples.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 '@nvidia-elements/core/logo/define.js';\n\nexport default {\n title: 'Elements/Logo',\n component: 'nve-logo',\n};\n\n/**\n * @summary Default NVIDIA logo with aria-label for accessibility. Use for brand identification in headers, footers, and loading states.\n */\nexport const Default = {\n render: () => html`\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n `\n};\n\n/**\n * @summary Logo size variants (sm, md, lg) for different contexts. Use smaller sizes for dense layouts like toolbars, larger sizes for prominent brand placement.\n * @tags test-case\n */\nexport const Size = {\n render: () => html`\n<div nve-layout=\"row gap:xs\">\n <nve-logo size=\"sm\" color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo size=\"lg\" color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n</div>\n `\n};\n\n/**\n * @summary Custom icons slotted into the logo container. Ideal for product icons, team badges, or custom brand marks within the standard logo shape.\n * @tags test-case\n */\nexport const SlottedIcons = {\n render: () => html`\n<div nve-layout=\"row gap:xs\">\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose large\" size=\"lg\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose medium\" size=\"md\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose small\" size=\"sm\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n</div>\n `\n};\n\n/**\n * @summary All available logo color options. Use colors to differentiate products, teams, or categories within NVIDIA applications.\n */\nexport const Color = {\n render: () => html`\n<div nve-layout=\"row gap:xs align:wrap\">\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n `\n};\n\n/**\n * @summary Logo colors optimized for light theme backgrounds. Ensures proper contrast and visibility when used in light mode interfaces.\n * @tags test-case\n */\nexport const LightTheme = {\n render: () => html`\n<div nve-theme=\"root light\" nve-layout=\"row gap:xs align:wrap pad:sm\" style=\"background: var(--nve-sys-layer-container-background) !important;\">\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n `\n}\n\n/**\n * @summary Logo colors optimized for dark theme backgrounds. Ensures proper contrast and visibility when used in dark mode interfaces.\n * @tags test-case\n */\nexport const DarkTheme = {\n render: () => html`\n<div nve-theme=\"root dark\" nve-layout=\"row gap:xs align:wrap pad:sm\">\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n `\n}"],"mappings":";AAGA,IAAA,IAAS"}
1
+ {"version":3,"file":"logo.examples.js","names":[],"sources":["../../src/logo/logo.examples.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 '@nvidia-elements/core/logo/define.js';\n\nexport default {\n title: 'Elements/Logo',\n component: 'nve-logo',\n};\n\n/**\n * @summary Default NVIDIA logo with aria-label for accessibility. Use for brand identification in headers, footers, and loading states.\n */\nexport const Default = {\n render: () => html`\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n `\n};\n\n/**\n * @summary Logo size variants (sm, md, lg) for different contexts. Use smaller sizes for dense layouts like toolbars, larger sizes for prominent brand placement.\n * @tags test-case\n */\nexport const Size = {\n render: () => html`\n<div nve-layout=\"row gap:xs\">\n <nve-logo size=\"sm\" color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo size=\"lg\" color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n</div>\n `\n};\n\n/**\n * @summary Custom icons slotted into the logo container. Ideal for product icons, team badges, or custom brand marks within the standard logo shape.\n * @tags test-case\n */\nexport const SlottedIcons = {\n render: () => html`\n<div nve-layout=\"row gap:xs\">\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose large\" size=\"lg\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose medium\" size=\"md\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose small\" size=\"sm\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">\n <nve-icon name=\"star\"></nve-icon>\n </nve-logo>\n</div>\n `\n};\n\n/**\n * @summary All available logo color options. Use colors to differentiate products, teams, or categories within NVIDIA applications.\n */\nexport const Color = {\n render: () => html`\n<div nve-layout=\"row gap:xs align:wrap\">\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n `\n};\n\n/**\n * @summary Logo colors optimized for light theme backgrounds. Ensures proper contrast and visibility when used in light mode interfaces.\n * @tags test-case\n */\nexport const LightTheme = {\n render: () => html`\n<div nve-theme=\"root light\" nve-layout=\"row gap:xs align:wrap pad:sm\" style=\"background: var(--nve-sys-layer-container-background) !important;\">\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n `\n}\n\n/**\n * @summary Logo colors optimized for dark theme backgrounds. Ensures proper contrast and visibility when used in dark mode interfaces.\n * @tags test-case\n */\nexport const DarkTheme = {\n render: () => html`\n<div nve-theme=\"root dark\" nve-layout=\"row gap:xs align:wrap pad:sm\">\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n `\n}"],"mappings":";AAGA,IAAA,IAAS"}
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "id": "logo",
7
7
  "name": "Default",
8
- "template": "<nve-logo aria-label=\"NVIDIA\"></nve-logo>\n",
8
+ "template": "<nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n",
9
9
  "summary": "Default NVIDIA logo with aria-label for accessibility. Use for brand identification in headers, footers, and loading states.",
10
10
  "description": "",
11
11
  "composition": false,
@@ -36,7 +36,7 @@
36
36
  {
37
37
  "id": "logo-color",
38
38
  "name": "Color",
39
- "template": "<div nve-layout=\"row gap:xs align:wrap\">\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n",
39
+ "template": "<div nve-layout=\"row gap:xs align:wrap\">\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n",
40
40
  "summary": "All available logo color options. Use colors to differentiate products, teams, or categories within NVIDIA applications.",
41
41
  "description": "",
42
42
  "composition": false,
@@ -45,7 +45,7 @@
45
45
  {
46
46
  "id": "logo-light-theme",
47
47
  "name": "LightTheme",
48
- "template": "<div\n nve-theme=\"root light\"\n nve-layout=\"row gap:xs align:wrap pad:sm\"\n style=\"background: var(--nve-sys-layer-container-background) !important\"\n>\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n",
48
+ "template": "<div\n nve-theme=\"root light\"\n nve-layout=\"row gap:xs align:wrap pad:sm\"\n style=\"background: var(--nve-sys-layer-container-background) !important\"\n>\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n",
49
49
  "summary": "Logo colors optimized for light theme backgrounds. Ensures proper contrast and visibility when used in light mode interfaces.",
50
50
  "description": "",
51
51
  "composition": false,
@@ -56,7 +56,7 @@
56
56
  {
57
57
  "id": "logo-dark-theme",
58
58
  "name": "DarkTheme",
59
- "template": "<div nve-theme=\"root dark\" nve-layout=\"row gap:xs align:wrap pad:sm\">\n <nve-logo aria-label=\"NVIDIA\"></nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n",
59
+ "template": "<div nve-theme=\"root dark\" nve-layout=\"row gap:xs align:wrap pad:sm\">\n <nve-logo aria-label=\"NVIDIA\">NV</nve-logo>\n <nve-logo color=\"red-cardinal\" aria-label=\"red cardinal\">Rc</nve-logo>\n <nve-logo color=\"gray-slate\" aria-label=\"gray slate\">Gs</nve-logo>\n <nve-logo color=\"gray-denim\" aria-label=\"gray denim\">Gd</nve-logo>\n <nve-logo color=\"blue-indigo\" aria-label=\"blue indigo\">Bi</nve-logo>\n <nve-logo color=\"blue-cobalt\" aria-label=\"blue cobalt\">Bc</nve-logo>\n <nve-logo color=\"blue-sky\" aria-label=\"blue sky\">Bs</nve-logo>\n <nve-logo color=\"teal-cyan\" aria-label=\"teal cyan\">Tc</nve-logo>\n <nve-logo color=\"green-mint\" aria-label=\"green mint\">Gm</nve-logo>\n <nve-logo color=\"teal-seafoam\" aria-label=\"teal seafoam\">Ts</nve-logo>\n <nve-logo color=\"green-grass\" aria-label=\"green grass\">Gg</nve-logo>\n <nve-logo color=\"yellow-amber\" aria-label=\"yellow amber\">Ya</nve-logo>\n <nve-logo color=\"orange-pumpkin\" aria-label=\"orange pumpkin\">Op</nve-logo>\n <nve-logo color=\"red-tomato\" aria-label=\"red tomato\">Rt</nve-logo>\n <nve-logo color=\"pink-magenta\" aria-label=\"pink magenta\">Pm</nve-logo>\n <nve-logo color=\"purple-plum\" aria-label=\"purple plum\">Pp</nve-logo>\n <nve-logo color=\"purple-violet\" aria-label=\"purple violet\">Pv</nve-logo>\n <nve-logo color=\"purple-lavender\" aria-label=\"purple lavender\">Pl</nve-logo>\n <nve-logo color=\"pink-rose\" aria-label=\"pink rose\">Pr</nve-logo>\n <nve-logo color=\"green-jade\" aria-label=\"green jade\">Gj</nve-logo>\n <nve-logo color=\"lime-pear\" aria-label=\"lime pear\">Lp</nve-logo>\n <nve-logo color=\"yellow-nova\" aria-label=\"yellow nova\">Yn</nve-logo>\n <nve-logo color=\"brand-green\" aria-label=\"brand green\">Bg</nve-logo>\n</div>\n",
60
60
  "summary": "Logo colors optimized for dark theme backgrounds. Ensures proper contrast and visibility when used in dark mode interfaces.",
61
61
  "description": "",
62
62
  "composition": false,
@@ -1,5 +1,5 @@
1
1
  import { attachInternals as e } from "../internal/utils/a11y.js";
2
- import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.123.0/helpers/decorate.js";
2
+ import { __decorate as t } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
3
3
  import { colorStateStyles as n, useStyles as r } from "../internal/styles/index.js";
4
4
  import i from "./logo.js";
5
5
  import { LitElement as a, html as o } from "lit";
@@ -12,7 +12,7 @@ var c = class extends a {
12
12
  static {
13
13
  this.metadata = {
14
14
  tag: "nve-logo",
15
- version: "0.0.12"
15
+ version: "0.1.1"
16
16
  };
17
17
  }
18
18
  render() {
@@ -1 +1 @@
1
- {"version":3,"file":"logo2.js","names":[],"sources":["../../src/logo/logo.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Color, Size } from '@nvidia-elements/core/internal';\nimport { useStyles, colorStateStyles, attachInternals } from '@nvidia-elements/core/internal';\nimport styles from './logo.css?inline';\n\n/**\n * @element nve-logo\n * @description A visual indicator for a brand or application.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/logo\n * @slot - default slot for content\n * @cssprop --background\n * @cssprop --gap\n * @cssprop --color\n * @cssprop --height\n * @cssprop --width\n * @cssprop --font-size\n * @cssprop --border-radius\n * @cssprop --font-weight\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\n */\nexport class Logo extends LitElement {\n /**\n * Visual treatment to represent unique color of an application\n */\n @property({ type: String, reflect: true }) color: Color;\n\n /**\n * Determines size of logo\n */\n @property({ type: String, reflect: true }) size?: Size;\n\n static styles = useStyles([styles, colorStateStyles]);\n\n static readonly metadata = {\n tag: 'nve-logo',\n version: '0.0.0'\n };\n\n _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'img';\n }\n}\n"],"mappings":";;;;;;;AAyBA,IAAa,IAAb,cAA0B,EAAW;;gBAWnB,EAAU,CAAC,GAAQ,EAAiB,CAAC;;;kBAE1B;GACzB,KAAK;GACL,SAAS;GACV;;CAID,SAAS;AACP,SAAO,CAAI;;CAOb,oBAAoB;AAGlB,EAFA,MAAM,mBAAmB,EACzB,EAAgB,KAAK,EACrB,KAAK,WAAW,OAAO;;;GA3BxB,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,KAKzC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA"}
1
+ {"version":3,"file":"logo2.js","names":[],"sources":["../../src/logo/logo.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Color, Size } from '@nvidia-elements/core/internal';\nimport { useStyles, colorStateStyles, attachInternals } from '@nvidia-elements/core/internal';\nimport styles from './logo.css?inline';\n\n/**\n * @element nve-logo\n * @description A visual indicator for a brand or application.\n * @since 0.10.0\n * @entrypoint \\@nvidia-elements/core/logo\n * @slot - default slot for content\n * @cssprop --background\n * @cssprop --gap\n * @cssprop --color\n * @cssprop --height\n * @cssprop --width\n * @cssprop --font-size\n * @cssprop --border-radius\n * @cssprop --font-weight\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\n */\nexport class Logo extends LitElement {\n /**\n * Visual treatment to represent unique color of an application\n */\n @property({ type: String, reflect: true }) color: Color;\n\n /**\n * Determines size of logo\n */\n @property({ type: String, reflect: true }) size?: Size;\n\n static styles = useStyles([styles, colorStateStyles]);\n\n static readonly metadata = {\n tag: 'nve-logo',\n version: '0.0.0'\n };\n\n _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'img';\n }\n}\n"],"mappings":";;;;;;;AAyBA,IAAa,IAAb,cAA0B,EAAW;;gBAWnB,EAAU,CAAC,GAAQ,EAAiB,CAAC;;;kBAE1B;GACzB,KAAK;GACL,SAAS;GACV;;CAID,SAAS;EACP,OAAO,CAAI;;CAOb,oBAAoB;EAGlB,AAFA,MAAM,mBAAmB,EACzB,EAAgB,KAAK,EACrB,KAAK,WAAW,OAAO;;;GA3BxB,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,KAKzC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA"}
@@ -1,4 +1,4 @@
1
- import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.123.0/helpers/decorate.js";
1
+ import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
2
2
  import { BaseButton as t } from "../internal/base/button.js";
3
3
  import { audit as n } from "../internal/controllers/audit.controller.js";
4
4
  import { useStyles as r } from "../internal/styles/index.js";
@@ -13,7 +13,7 @@ var s = class extends t {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-menu-item",
16
- version: "0.0.12",
16
+ version: "0.1.1",
17
17
  parents: ["nve-menu"]
18
18
  };
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"menu-item2.js","names":[],"sources":["../../src/menu/menu-item.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 { useStyles, BaseButton, audit } from '@nvidia-elements/core/internal';\nimport styles from './menu-item.css?inline';\n\n/**\n * @element nve-menu-item\n * @description Represents a selectable option within a menu, providing an interactive button for navigation or actions.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/menu\n * @slot - default slot for content\n * @slot suffix - slot for suffix icon\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border-background\n * @cssprop --font-size\n * @cssprop --font-weight\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --gap\n * @cssprop --width\n * @cssprop --min-height\n * @cssprop --line-height\n * @cssprop --cursor\n * @cssprop --opacity\n * @cssprop --text-transform\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class MenuItem extends BaseButton {\n static styles = useStyles([styles]);\n\n @property({ type: String, reflect: true }) status: 'danger';\n\n static readonly metadata = {\n tag: 'nve-menu-item',\n version: '0.0.0',\n parents: ['nve-menu']\n };\n\n static elementDefinitions = {};\n\n render() {\n return html`\n <div internal-host interaction-state focus-within part=\"_internal\">\n <slot></slot>\n <slot name=\"suffix\"></slot>\n </div>\n `;\n }\n\n constructor() {\n super();\n this.type = 'button';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._internals.role = 'menuitem';\n }\n}\n"],"mappings":";;;;;;;;AAiCO,IAAA,IAAA,cAAuB,EAAW;;gBACvB,EAAU,CAAC,EAAO,CAAC;;;kBAIR;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,WAAA;GACX;;;4BAE2B,EAAE;;CAE9B,SAAS;AACP,SAAO,CAAI;;CAQb,cAAc;AAEZ,EADA,OAAO,EACP,KAAK,OAAO;;CAGd,oBAAoB;AAElB,EADA,MAAM,mBAAmB,EACzB,KAAK,WAAW,OAAO;;;GA1BxB,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,SAJ3C,GAAO,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"menu-item2.js","names":[],"sources":["../../src/menu/menu-item.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 { useStyles, BaseButton, audit } from '@nvidia-elements/core/internal';\nimport styles from './menu-item.css?inline';\n\n/**\n * @element nve-menu-item\n * @description Represents a selectable option within a menu, providing an interactive button for navigation or actions.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/menu\n * @slot - default slot for content\n * @slot suffix - slot for suffix icon\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --border-background\n * @cssprop --font-size\n * @cssprop --font-weight\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --gap\n * @cssprop --width\n * @cssprop --min-height\n * @cssprop --line-height\n * @cssprop --cursor\n * @cssprop --opacity\n * @cssprop --text-transform\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class MenuItem extends BaseButton {\n static styles = useStyles([styles]);\n\n @property({ type: String, reflect: true }) status: 'danger';\n\n static readonly metadata = {\n tag: 'nve-menu-item',\n version: '0.0.0',\n parents: ['nve-menu']\n };\n\n static elementDefinitions = {};\n\n render() {\n return html`\n <div internal-host interaction-state focus-within part=\"_internal\">\n <slot></slot>\n <slot name=\"suffix\"></slot>\n </div>\n `;\n }\n\n constructor() {\n super();\n this.type = 'button';\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._internals.role = 'menuitem';\n }\n}\n"],"mappings":";;;;;;;;AAiCO,IAAA,IAAA,cAAuB,EAAW;;gBACvB,EAAU,CAAC,EAAO,CAAC;;;kBAIR;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,WAAA;GACX;;;4BAE2B,EAAE;;CAE9B,SAAS;EACP,OAAO,CAAI;;CAQb,cAAc;EAEZ,AADA,OAAO,EACP,KAAK,OAAO;;CAGd,oBAAoB;EAElB,AADA,MAAM,mBAAmB,EACzB,KAAK,WAAW,OAAO;;;GA1BxB,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,SAJ3C,GAAO,CAAA,EAAA,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"menu.examples.js","names":[],"sources":["../../src/menu/menu.examples.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 '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/dropdown/define.js';\nimport '@nvidia-elements/core/icon/define.js';\nimport '@nvidia-elements/core/menu/define.js';\nimport '@nvidia-elements/core/logo/define.js';\nimport '@nvidia-elements/core/search/define.js';\nimport '@nvidia-elements/core/drawer/define.js';\nimport '@nvidia-elements/core/card/define.js';\nimport '@nvidia-elements/core/tooltip/define.js';\nimport '@nvidia-elements/core/page/define.js';\n\nexport default {\n title: 'Elements/Menu',\n component: 'nve-menu',\n};\n\n/**\n * @summary Basic menu with simple text items for the default menu structure and styling.\n */\nexport const Default = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with keyboard navigation and ARIA disclosure pattern inside a dropdown. Use when menu items need accessible focus management and arrow key navigation.\n * @tags pattern\n */\nexport const Dropdown = {\n render: () => html`\n <nve-button popovertarget=\"dropdown-menu\">dropdown</nve-button>\n <nve-dropdown id=\"dropdown-menu\">\n <nve-menu>\n <nve-menu-item><nve-icon name=\"person\"></nve-icon> profile</nve-menu-item>\n <nve-menu-item><nve-icon name=\"gear\"></nve-icon> settings</nve-menu-item>\n <nve-menu-item><nve-icon name=\"star\"></nve-icon> favorites</nve-menu-item>\n <nve-divider></nve-divider>\n <nve-menu-item><nve-icon name=\"logout\"></nve-icon> logout</nve-menu-item>\n </nve-menu>\n </nve-dropdown>\n `\n};\n\n/**\n * @summary Menu with a selected item showing the visual state for user-selected options.\n */\nexport const Selected = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item selected>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with a current page item showing the visual state for the active/current page in navigation.\n */\nexport const Current = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary By default Menu will show a blue border on the selected item. You can change the border color by setting `--border-background` on the `<nve-menu-item>`\n * @tags test-case\n */\nexport const BorderBackground = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\" style=\"--border-background: var(--nve-ref-color-brand-green-900);\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with disabled items showing unavailable options while maintaining visual context.\n * @tags test-case\n */\nexport const Disabled = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item disabled>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu items with icons to add visual context and improve usability.\n */\nexport const Icons = {\n render: () => html`\n <nve-menu>\n <nve-menu-item><nve-icon name=\"person\"></nve-icon> profile</nve-menu-item>\n <nve-menu-item><nve-icon name=\"gear\"></nve-icon> settings</nve-menu-item>\n <nve-menu-item><nve-icon name=\"star\"></nve-icon> favorites</nve-menu-item>\n <nve-menu-item><nve-icon name=\"logout\"></nve-icon> logout</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu items with links for navigation functionality within menu structures.\n */\nexport const Links = {\n render: () => html`\n <nve-menu>\n <nve-menu-item><nve-icon name=\"person\"></nve-icon><a href=\"#\">profile</a></nve-menu-item>\n <nve-menu-item><nve-icon name=\"gear\"></nve-icon> <a href=\"#\">settings</a></nve-menu-item>\n <nve-menu-item><nve-icon name=\"star\"></nve-icon> <a href=\"#\">favorites</a></nve-menu-item>\n <nve-menu-item><nve-icon name=\"logout\"></nve-icon> <a href=\"#\">logout</a></nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu item features a default slot for content, along with a suffix slot for displaying elements such as keyboard shortcuts at the end of the menu item container.\n */\nexport const Suffix = {\n render: () => html`\n <nve-menu>\n <nve-menu-item><kbd slot=\"suffix\" nve-text=\"code flat\">CMD + C</kbd></nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with constrained height showing scrollable behavior when content exceeds container limits.\n * @tags test-case\n */\nexport const Scroll = {\n render: () => html`\n <nve-menu style=\"--max-height: 150px\">\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n <nve-menu-item>item 5</nve-menu-item>\n <nve-menu-item>item 6</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Use a dropdown menu with search and branded logos for application selection interfaces.\n * @tags pattern\n */\nexport const Complex = {\n render: () => html`\n <nve-button popovertarget=\"dropdown-menu\">dropdown</nve-button>\n <nve-dropdown id=\"dropdown-menu\">\n <nve-search rounded>\n <input type=\"search\" placeholder=\"search tools\" aria-label=\"search apps\" />\n </nve-search>\n <nve-menu>\n <nve-menu-item>\n <nve-logo color=\"pink-rose\" size=\"sm\">Db</nve-logo> Debugger\n </nve-menu-item>\n <nve-menu-item>\n <nve-logo color=\"blue-cobalt\" size=\"sm\">TM</nve-logo> Task Manager\n </nve-menu-item>\n <nve-menu-item>\n <nve-logo color=\"yellow-nova\" size=\"sm\">CI</nve-logo> CI Services\n </nve-menu-item>\n <nve-divider></nve-divider>\n <nve-menu-item>\n <nve-logo size=\"sm\"></nve-logo> All Apps\n </nve-menu-item>\n </nve-menu>\n </nve-dropdown>\n `\n};\n\n/**\n * @summary Use a navigation drawer to overlay page content for out-of-context navigation.\n * @tags pattern\n */\nexport const VerticalNavigationDrawer = {\n render: () => html`\n <nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\"></nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <main nve-layout=\"column gap:md pad:md\">\n <nve-button popovertarget=\"menu-drawer\">toggle drawer</nve-button>\n </main>\n <nve-drawer position=\"right\" size=\"sm\" modal closable id=\"menu-drawer\">\n <nve-drawer-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-drawer-header>\n <nve-drawer-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-drawer-content>\n </nve-drawer>\n </nve-page>\n `\n};\n\n/**\n * @summary Use an inline navigation panel to push page content aside when navigation is contextual to the page.\n * @tags pattern\n */\nexport const VerticalNavigationPanel = {\n render: () => html`\n<nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\"></nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <nve-page-panel slot=\"left\" expanded style=\"max-width:280px\">\n <nve-page-panel-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-page-panel-header>\n <nve-page-panel-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-page-panel-content>\n </nve-page-panel>\n <main nve-layout=\"column gap:md pad:md\">\n <p nve-text=\"body\">Content</p>\n </main>\n</nve-page>\n `\n};\n\n/**\n * @summary Use a tooltip on a menu item to provide extra context and warnings.\n * @tags pattern test-case\n */\nexport const ItemTooltip = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item popovertarget=\"menu-tooltip\" id=\"menu-item-2\">\n item 2\n <nve-icon id=\"menu-anchor\" size=\"md\" name=\"exclamation-triangle\" style=\"margin-left: auto\"></nve-icon>\n <nve-tooltip anchor=\"menu-anchor\" open-delay=\"2000\" id=\"menu-tooltip\">This is a warning tooltip</nve-tooltip>\n </nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n </nve-menu>\n `\n}\n\n/**\n * @summary Menu items with danger status styling for destructive actions like delete or logout operations.\n */\nexport const DangerStatus = {\n render: () => html`\n <nve-menu>\n <nve-menu-item status=\"danger\">default</nve-menu-item>\n <nve-menu-item status=\"danger\" disabled>disabled</nve-menu-item>\n <nve-menu-item status=\"danger\" selected>selected</nve-menu-item>\n <nve-menu-item status=\"danger\" current=\"page\">current</nve-menu-item>\n <nve-menu-item status=\"danger\"><nve-icon name=\"gear\"></nve-icon> icon left</nve-menu-item>\n <nve-menu-item status=\"danger\">icon right <nve-icon id=\"warning-icon\" size=\"md\" name=\"exclamation-triangle\" style=\"margin-left: auto\"></nve-icon></nve-menu-item>\n </nve-menu>\n `\n}\n"],"mappings":";AAGA,IAAA,IAAS"}
1
+ {"version":3,"file":"menu.examples.js","names":[],"sources":["../../src/menu/menu.examples.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 '@nvidia-elements/core/button/define.js';\nimport '@nvidia-elements/core/dropdown/define.js';\nimport '@nvidia-elements/core/icon/define.js';\nimport '@nvidia-elements/core/menu/define.js';\nimport '@nvidia-elements/core/logo/define.js';\nimport '@nvidia-elements/core/search/define.js';\nimport '@nvidia-elements/core/drawer/define.js';\nimport '@nvidia-elements/core/card/define.js';\nimport '@nvidia-elements/core/tooltip/define.js';\nimport '@nvidia-elements/core/page/define.js';\n\nexport default {\n title: 'Elements/Menu',\n component: 'nve-menu',\n};\n\n/**\n * @summary Basic menu with simple text items for the default menu structure and styling.\n */\nexport const Default = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with keyboard navigation and ARIA disclosure pattern inside a dropdown. Use when menu items need accessible focus management and arrow key navigation.\n * @tags pattern\n */\nexport const Dropdown = {\n render: () => html`\n <nve-button popovertarget=\"dropdown-menu\">dropdown</nve-button>\n <nve-dropdown id=\"dropdown-menu\">\n <nve-menu>\n <nve-menu-item><nve-icon name=\"person\"></nve-icon> profile</nve-menu-item>\n <nve-menu-item><nve-icon name=\"gear\"></nve-icon> settings</nve-menu-item>\n <nve-menu-item><nve-icon name=\"star\"></nve-icon> favorites</nve-menu-item>\n <nve-divider></nve-divider>\n <nve-menu-item><nve-icon name=\"logout\"></nve-icon> logout</nve-menu-item>\n </nve-menu>\n </nve-dropdown>\n `\n};\n\n/**\n * @summary Menu with a selected item showing the visual state for user-selected options.\n */\nexport const Selected = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item selected>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with a current page item showing the visual state for the active/current page in navigation.\n */\nexport const Current = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary By default Menu will show a blue border on the selected item. You can change the border color by setting `--border-background` on the `<nve-menu-item>`\n * @tags test-case\n */\nexport const BorderBackground = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\" style=\"--border-background: var(--nve-ref-color-brand-green-900);\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with disabled items showing unavailable options while maintaining visual context.\n * @tags test-case\n */\nexport const Disabled = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item disabled>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu items with icons to add visual context and improve usability.\n */\nexport const Icons = {\n render: () => html`\n <nve-menu>\n <nve-menu-item><nve-icon name=\"person\"></nve-icon> profile</nve-menu-item>\n <nve-menu-item><nve-icon name=\"gear\"></nve-icon> settings</nve-menu-item>\n <nve-menu-item><nve-icon name=\"star\"></nve-icon> favorites</nve-menu-item>\n <nve-menu-item><nve-icon name=\"logout\"></nve-icon> logout</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu items with links for navigation functionality within menu structures.\n */\nexport const Links = {\n render: () => html`\n <nve-menu>\n <nve-menu-item><nve-icon name=\"person\"></nve-icon><a href=\"#\">profile</a></nve-menu-item>\n <nve-menu-item><nve-icon name=\"gear\"></nve-icon> <a href=\"#\">settings</a></nve-menu-item>\n <nve-menu-item><nve-icon name=\"star\"></nve-icon> <a href=\"#\">favorites</a></nve-menu-item>\n <nve-menu-item><nve-icon name=\"logout\"></nve-icon> <a href=\"#\">logout</a></nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu item features a default slot for content, along with a suffix slot for displaying elements such as keyboard shortcuts at the end of the menu item container.\n */\nexport const Suffix = {\n render: () => html`\n <nve-menu>\n <nve-menu-item><kbd slot=\"suffix\" nve-text=\"code flat\">CMD + C</kbd></nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Menu with constrained height showing scrollable behavior when content exceeds container limits.\n * @tags test-case\n */\nexport const Scroll = {\n render: () => html`\n <nve-menu style=\"--max-height: 150px\">\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item>item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n <nve-menu-item>item 5</nve-menu-item>\n <nve-menu-item>item 6</nve-menu-item>\n </nve-menu>\n `\n};\n\n/**\n * @summary Use a dropdown menu with search and branded logos for application selection interfaces.\n * @tags pattern\n */\nexport const Complex = {\n render: () => html`\n <nve-button popovertarget=\"dropdown-menu\">dropdown</nve-button>\n <nve-dropdown id=\"dropdown-menu\">\n <nve-search rounded>\n <input type=\"search\" placeholder=\"search tools\" aria-label=\"search apps\" />\n </nve-search>\n <nve-menu>\n <nve-menu-item>\n <nve-logo color=\"pink-rose\" size=\"sm\">Db</nve-logo> Debugger\n </nve-menu-item>\n <nve-menu-item>\n <nve-logo color=\"blue-cobalt\" size=\"sm\">TM</nve-logo> Task Manager\n </nve-menu-item>\n <nve-menu-item>\n <nve-logo color=\"yellow-nova\" size=\"sm\">CI</nve-logo> CI Services\n </nve-menu-item>\n <nve-divider></nve-divider>\n <nve-menu-item>\n <nve-logo size=\"sm\">NV</nve-logo> All Apps\n </nve-menu-item>\n </nve-menu>\n </nve-dropdown>\n `\n};\n\n/**\n * @summary Use a navigation drawer to overlay page content for out-of-context navigation.\n * @tags pattern\n */\nexport const VerticalNavigationDrawer = {\n render: () => html`\n <nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <main nve-layout=\"column gap:md pad:md\">\n <nve-button popovertarget=\"menu-drawer\">toggle drawer</nve-button>\n </main>\n <nve-drawer position=\"right\" size=\"sm\" modal closable id=\"menu-drawer\">\n <nve-drawer-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-drawer-header>\n <nve-drawer-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-drawer-content>\n </nve-drawer>\n </nve-page>\n `\n};\n\n/**\n * @summary Use an inline navigation panel to push page content aside when navigation is contextual to the page.\n * @tags pattern\n */\nexport const VerticalNavigationPanel = {\n render: () => html`\n<nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <nve-page-panel slot=\"left\" expanded style=\"max-width:280px\">\n <nve-page-panel-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-page-panel-header>\n <nve-page-panel-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-page-panel-content>\n </nve-page-panel>\n <main nve-layout=\"column gap:md pad:md\">\n <p nve-text=\"body\">Content</p>\n </main>\n</nve-page>\n `\n};\n\n/**\n * @summary Use a tooltip on a menu item to provide extra context and warnings.\n * @tags pattern test-case\n */\nexport const ItemTooltip = {\n render: () => html`\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item popovertarget=\"menu-tooltip\" id=\"menu-item-2\">\n item 2\n <nve-icon id=\"menu-anchor\" size=\"md\" name=\"exclamation-triangle\" style=\"margin-left: auto\"></nve-icon>\n <nve-tooltip anchor=\"menu-anchor\" open-delay=\"2000\" id=\"menu-tooltip\">This is a warning tooltip</nve-tooltip>\n </nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n </nve-menu>\n `\n}\n\n/**\n * @summary Menu items with danger status styling for destructive actions like delete or logout operations.\n */\nexport const DangerStatus = {\n render: () => html`\n <nve-menu>\n <nve-menu-item status=\"danger\">default</nve-menu-item>\n <nve-menu-item status=\"danger\" disabled>disabled</nve-menu-item>\n <nve-menu-item status=\"danger\" selected>selected</nve-menu-item>\n <nve-menu-item status=\"danger\" current=\"page\">current</nve-menu-item>\n <nve-menu-item status=\"danger\"><nve-icon name=\"gear\"></nve-icon> icon left</nve-menu-item>\n <nve-menu-item status=\"danger\">icon right <nve-icon id=\"warning-icon\" size=\"md\" name=\"exclamation-triangle\" style=\"margin-left: auto\"></nve-icon></nve-menu-item>\n </nve-menu>\n `\n}\n"],"mappings":";AAGA,IAAA,IAAS"}
@@ -103,7 +103,7 @@
103
103
  {
104
104
  "id": "menu-complex",
105
105
  "name": "Complex",
106
- "template": "<nve-button popovertarget=\"dropdown-menu\">dropdown</nve-button>\n<nve-dropdown id=\"dropdown-menu\">\n <nve-search rounded>\n <input type=\"search\" placeholder=\"search tools\" aria-label=\"search apps\" />\n </nve-search>\n <nve-menu>\n <nve-menu-item> <nve-logo color=\"pink-rose\" size=\"sm\">Db</nve-logo> Debugger </nve-menu-item>\n <nve-menu-item> <nve-logo color=\"blue-cobalt\" size=\"sm\">TM</nve-logo> Task Manager </nve-menu-item>\n <nve-menu-item> <nve-logo color=\"yellow-nova\" size=\"sm\">CI</nve-logo> CI Services </nve-menu-item>\n <nve-divider></nve-divider>\n <nve-menu-item> <nve-logo size=\"sm\"></nve-logo> All Apps </nve-menu-item>\n </nve-menu>\n</nve-dropdown>\n",
106
+ "template": "<nve-button popovertarget=\"dropdown-menu\">dropdown</nve-button>\n<nve-dropdown id=\"dropdown-menu\">\n <nve-search rounded>\n <input type=\"search\" placeholder=\"search tools\" aria-label=\"search apps\" />\n </nve-search>\n <nve-menu>\n <nve-menu-item> <nve-logo color=\"pink-rose\" size=\"sm\">Db</nve-logo> Debugger </nve-menu-item>\n <nve-menu-item> <nve-logo color=\"blue-cobalt\" size=\"sm\">TM</nve-logo> Task Manager </nve-menu-item>\n <nve-menu-item> <nve-logo color=\"yellow-nova\" size=\"sm\">CI</nve-logo> CI Services </nve-menu-item>\n <nve-divider></nve-divider>\n <nve-menu-item> <nve-logo size=\"sm\">NV</nve-logo> All Apps </nve-menu-item>\n </nve-menu>\n</nve-dropdown>\n",
107
107
  "summary": "Use a dropdown menu with search and branded logos for application selection interfaces.",
108
108
  "description": "",
109
109
  "composition": true,
@@ -114,7 +114,7 @@
114
114
  {
115
115
  "id": "menu-vertical-navigation-drawer",
116
116
  "name": "VerticalNavigationDrawer",
117
- "template": "<nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\"></nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <main nve-layout=\"column gap:md pad:md\">\n <nve-button popovertarget=\"menu-drawer\">toggle drawer</nve-button>\n </main>\n <nve-drawer position=\"right\" size=\"sm\" modal closable id=\"menu-drawer\">\n <nve-drawer-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-drawer-header>\n <nve-drawer-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-drawer-content>\n </nve-drawer>\n</nve-page>\n",
117
+ "template": "<nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <main nve-layout=\"column gap:md pad:md\">\n <nve-button popovertarget=\"menu-drawer\">toggle drawer</nve-button>\n </main>\n <nve-drawer position=\"right\" size=\"sm\" modal closable id=\"menu-drawer\">\n <nve-drawer-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-drawer-header>\n <nve-drawer-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-drawer-content>\n </nve-drawer>\n</nve-page>\n",
118
118
  "summary": "Use a navigation drawer to overlay page content for out-of-context navigation.",
119
119
  "description": "",
120
120
  "composition": true,
@@ -125,7 +125,7 @@
125
125
  {
126
126
  "id": "menu-vertical-navigation-panel",
127
127
  "name": "VerticalNavigationPanel",
128
- "template": "<nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\"></nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <nve-page-panel slot=\"left\" expanded style=\"max-width: 280px\">\n <nve-page-panel-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-page-panel-header>\n <nve-page-panel-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-page-panel-content>\n </nve-page-panel>\n <main nve-layout=\"column gap:md pad:md\">\n <p nve-text=\"body\">Content</p>\n </main>\n</nve-page>\n",
128
+ "template": "<nve-page>\n <nve-page-header>\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\" nve-text=\"heading sm\">NVIDIA</h2>\n </nve-page-header>\n <nve-page-panel slot=\"left\" expanded style=\"max-width: 280px\">\n <nve-page-panel-header>\n <h3 nve-text=\"heading\">Drawer</h3>\n </nve-page-panel-header>\n <nve-page-panel-content>\n <nve-menu>\n <nve-menu-item>item 1</nve-menu-item>\n <nve-menu-item current=\"page\">item 2</nve-menu-item>\n <nve-menu-item>item 3</nve-menu-item>\n <nve-menu-item>item 4</nve-menu-item>\n </nve-menu>\n </nve-page-panel-content>\n </nve-page-panel>\n <main nve-layout=\"column gap:md pad:md\">\n <p nve-text=\"body\">Content</p>\n </main>\n</nve-page>\n",
129
129
  "summary": "Use an inline navigation panel to push page content aside when navigation is contextual to the page.",
130
130
  "description": "",
131
131
  "composition": true,
@@ -1,6 +1,6 @@
1
1
  import { appendRootNodeStyle as e } from "../internal/utils/dom.js";
2
2
  import { attachInternals as t } from "../internal/utils/a11y.js";
3
- import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.123.0/helpers/decorate.js";
3
+ import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.128.0/helpers/decorate.js";
4
4
  import { audit as r } from "../internal/controllers/audit.controller.js";
5
5
  import { keyNavigationList as i } from "../internal/controllers/keynav-list.controller.js";
6
6
  import { useStyles as a } from "../internal/styles/index.js";
@@ -16,7 +16,7 @@ var d = class extends c {
16
16
  static {
17
17
  this.metadata = {
18
18
  tag: "nve-menu",
19
- version: "0.0.12",
19
+ version: "0.1.1",
20
20
  children: ["nve-menu-item", "nve-divider"]
21
21
  };
22
22
  }