@nvidia-elements/core 0.1.0 → 0.1.2

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 (612) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.123.0 → _@oxc-project_runtime@0.130.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/accordion/define.js.map +1 -1
  6. package/dist/alert/alert-group2.js +2 -2
  7. package/dist/alert/alert-group2.js.map +1 -1
  8. package/dist/alert/alert2.js +5 -5
  9. package/dist/alert/alert2.js.map +1 -1
  10. package/dist/alert/define.js.map +1 -1
  11. package/dist/avatar/avatar-group2.js +1 -1
  12. package/dist/avatar/avatar-group2.js.map +1 -1
  13. package/dist/avatar/avatar2.js +2 -2
  14. package/dist/avatar/avatar2.js.map +1 -1
  15. package/dist/avatar/define.js.map +1 -1
  16. package/dist/badge/badge2.js +4 -4
  17. package/dist/badge/badge2.js.map +1 -1
  18. package/dist/badge/define.js.map +1 -1
  19. package/dist/breadcrumb/breadcrumb2.js +2 -2
  20. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  21. package/dist/breadcrumb/define.js.map +1 -1
  22. package/dist/bundles/index.js +4 -4
  23. package/dist/button/button.js +1 -1
  24. package/dist/button/button.js.map +1 -1
  25. package/dist/button/button2.js +2 -2
  26. package/dist/button/button2.js.map +1 -1
  27. package/dist/button/define.js.map +1 -1
  28. package/dist/button-group/button-group2.js +4 -4
  29. package/dist/button-group/button-group2.js.map +1 -1
  30. package/dist/button-group/define.js.map +1 -1
  31. package/dist/card/card2.js +5 -5
  32. package/dist/card/card2.js.map +1 -1
  33. package/dist/card/define.js.map +1 -1
  34. package/dist/chat-message/chat-message2.js +2 -2
  35. package/dist/chat-message/chat-message2.js.map +1 -1
  36. package/dist/chat-message/define.js.map +1 -1
  37. package/dist/checkbox/checkbox-group2.js +2 -2
  38. package/dist/checkbox/checkbox-group2.js.map +1 -1
  39. package/dist/checkbox/checkbox2.js +2 -2
  40. package/dist/checkbox/checkbox2.js.map +1 -1
  41. package/dist/checkbox/define.js.map +1 -1
  42. package/dist/color/color2.js +2 -2
  43. package/dist/color/color2.js.map +1 -1
  44. package/dist/color/define.js.map +1 -1
  45. package/dist/combobox/combobox2.js +6 -6
  46. package/dist/combobox/combobox2.js.map +1 -1
  47. package/dist/combobox/define.js.map +1 -1
  48. package/dist/copy-button/copy-button2.js +17 -17
  49. package/dist/copy-button/copy-button2.js.map +1 -1
  50. package/dist/copy-button/define.js.map +1 -1
  51. package/dist/custom-elements.json +2 -53
  52. package/dist/data.snippets.json +18 -18
  53. package/dist/date/date2.js +2 -2
  54. package/dist/date/date2.js.map +1 -1
  55. package/dist/date/define.js.map +1 -1
  56. package/dist/datetime/datetime2.js +2 -2
  57. package/dist/datetime/datetime2.js.map +1 -1
  58. package/dist/datetime/define.js.map +1 -1
  59. package/dist/dialog/define.js.map +1 -1
  60. package/dist/dialog/dialog-footer2.js +2 -2
  61. package/dist/dialog/dialog-footer2.js.map +1 -1
  62. package/dist/dialog/dialog-header2.js +2 -2
  63. package/dist/dialog/dialog-header2.js.map +1 -1
  64. package/dist/dialog/dialog2.js +4 -4
  65. package/dist/dialog/dialog2.js.map +1 -1
  66. package/dist/divider/define.js.map +1 -1
  67. package/dist/divider/divider2.js +2 -2
  68. package/dist/divider/divider2.js.map +1 -1
  69. package/dist/dot/define.js.map +1 -1
  70. package/dist/dot/dot2.js +2 -2
  71. package/dist/dot/dot2.js.map +1 -1
  72. package/dist/drawer/define.js.map +1 -1
  73. package/dist/drawer/drawer-content2.js +2 -2
  74. package/dist/drawer/drawer-content2.js.map +1 -1
  75. package/dist/drawer/drawer-footer2.js +2 -2
  76. package/dist/drawer/drawer-footer2.js.map +1 -1
  77. package/dist/drawer/drawer-header2.js +2 -2
  78. package/dist/drawer/drawer-header2.js.map +1 -1
  79. package/dist/drawer/drawer2.js +8 -8
  80. package/dist/drawer/drawer2.js.map +1 -1
  81. package/dist/dropdown/define.js.map +1 -1
  82. package/dist/dropdown/dropdown-footer2.js +2 -2
  83. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  84. package/dist/dropdown/dropdown-header2.js +2 -2
  85. package/dist/dropdown/dropdown-header2.js.map +1 -1
  86. package/dist/dropdown/dropdown2.js +4 -4
  87. package/dist/dropdown/dropdown2.js.map +1 -1
  88. package/dist/dropdown-group/define.js.map +1 -1
  89. package/dist/dropdown-group/dropdown-group.js +2 -2
  90. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  91. package/dist/dropzone/define.js.map +1 -1
  92. package/dist/dropzone/dropzone.util.js.map +1 -1
  93. package/dist/dropzone/dropzone2.js +4 -4
  94. package/dist/dropzone/dropzone2.js.map +1 -1
  95. package/dist/file/define.js.map +1 -1
  96. package/dist/file/file2.js +1 -1
  97. package/dist/file/file2.js.map +1 -1
  98. package/dist/format-datetime/define.js.map +1 -1
  99. package/dist/format-datetime/format-datetime2.js +2 -2
  100. package/dist/format-datetime/format-datetime2.js.map +1 -1
  101. package/dist/format-number/define.js.map +1 -1
  102. package/dist/format-number/format-number2.js +2 -2
  103. package/dist/format-number/format-number2.js.map +1 -1
  104. package/dist/format-relative-time/define.js.map +1 -1
  105. package/dist/format-relative-time/format-relative-time2.js +2 -2
  106. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  107. package/dist/forms/control/control2.js +19 -15
  108. package/dist/forms/control/control2.js.map +1 -1
  109. package/dist/forms/control-group/control-group2.js +2 -2
  110. package/dist/forms/control-group/control-group2.js.map +1 -1
  111. package/dist/forms/control-message/control-message2.js +2 -2
  112. package/dist/forms/control-message/control-message2.js.map +1 -1
  113. package/dist/forms/define.js.map +1 -1
  114. package/dist/forms/utils/layout.d.ts +2 -1
  115. package/dist/forms/utils/layout.js.map +1 -1
  116. package/dist/forms/utils/states.d.ts +0 -1
  117. package/dist/forms/utils/states.js.map +1 -1
  118. package/dist/forms/utils/types.d.ts +0 -24
  119. package/dist/grid/cell/cell2.js +1 -1
  120. package/dist/grid/cell/cell2.js.map +1 -1
  121. package/dist/grid/column/column2.js +2 -2
  122. package/dist/grid/column/column2.js.map +1 -1
  123. package/dist/grid/define.js.map +1 -1
  124. package/dist/grid/footer/footer2.js +2 -2
  125. package/dist/grid/footer/footer2.js.map +1 -1
  126. package/dist/grid/grid2.js +2 -2
  127. package/dist/grid/grid2.js.map +1 -1
  128. package/dist/grid/header/header2.js +2 -2
  129. package/dist/grid/header/header2.js.map +1 -1
  130. package/dist/grid/placeholder/placeholder2.js +1 -1
  131. package/dist/grid/placeholder/placeholder2.js.map +1 -1
  132. package/dist/grid/row/row2.js +2 -2
  133. package/dist/grid/row/row2.js.map +1 -1
  134. package/dist/icon/define.js.map +1 -1
  135. package/dist/icon/icon2.js +3 -3
  136. package/dist/icon/icon2.js.map +1 -1
  137. package/dist/icon/icons/academic-cap.js.map +1 -1
  138. package/dist/icon/icons/add-asset.js.map +1 -1
  139. package/dist/icon/icons/add-comment.js.map +1 -1
  140. package/dist/icon/icons/add-grid.js.map +1 -1
  141. package/dist/icon/icons/add-user.js.map +1 -1
  142. package/dist/icon/icons/add.js.map +1 -1
  143. package/dist/icon/icons/ancestors.js.map +1 -1
  144. package/dist/icon/icons/archive.js.map +1 -1
  145. package/dist/icon/icons/arrow-angle.js.map +1 -1
  146. package/dist/icon/icons/arrow-both.js.map +1 -1
  147. package/dist/icon/icons/arrow-cycle.js.map +1 -1
  148. package/dist/icon/icons/arrow-path-rounded-square.js.map +1 -1
  149. package/dist/icon/icons/arrow-stop.js.map +1 -1
  150. package/dist/icon/icons/arrow.js.map +1 -1
  151. package/dist/icon/icons/at-symbol.js.map +1 -1
  152. package/dist/icon/icons/backspace.js.map +1 -1
  153. package/dist/icon/icons/bar-pill-stack.js.map +1 -1
  154. package/dist/icon/icons/bars-3-bottom-left.js.map +1 -1
  155. package/dist/icon/icons/bars-3-bottom-right.js.map +1 -1
  156. package/dist/icon/icons/bars-3-center-left.js.map +1 -1
  157. package/dist/icon/icons/bars-3.js.map +1 -1
  158. package/dist/icon/icons/bars-4.js.map +1 -1
  159. package/dist/icon/icons/beaker.js.map +1 -1
  160. package/dist/icon/icons/bell-slash.js.map +1 -1
  161. package/dist/icon/icons/bell-stroke.js.map +1 -1
  162. package/dist/icon/icons/bell.js.map +1 -1
  163. package/dist/icon/icons/bold.js.map +1 -1
  164. package/dist/icon/icons/book.js.map +1 -1
  165. package/dist/icon/icons/bookmark-stroke.js.map +1 -1
  166. package/dist/icon/icons/bookmark.js.map +1 -1
  167. package/dist/icon/icons/bounding-box.js.map +1 -1
  168. package/dist/icon/icons/branch.js.map +1 -1
  169. package/dist/icon/icons/briefcase.js.map +1 -1
  170. package/dist/icon/icons/broadcast.js.map +1 -1
  171. package/dist/icon/icons/browser.js.map +1 -1
  172. package/dist/icon/icons/bug.js.map +1 -1
  173. package/dist/icon/icons/calendar.js.map +1 -1
  174. package/dist/icon/icons/camera.js.map +1 -1
  175. package/dist/icon/icons/cancel.js.map +1 -1
  176. package/dist/icon/icons/caret.js.map +1 -1
  177. package/dist/icon/icons/carets-closed-square.js.map +1 -1
  178. package/dist/icon/icons/carousel.js.map +1 -1
  179. package/dist/icon/icons/category-list.js.map +1 -1
  180. package/dist/icon/icons/chart-bar.js.map +1 -1
  181. package/dist/icon/icons/chat-bubble.js.map +1 -1
  182. package/dist/icon/icons/chat-bubbles.js.map +1 -1
  183. package/dist/icon/icons/check-badge.js.map +1 -1
  184. package/dist/icon/icons/check.js.map +1 -1
  185. package/dist/icon/icons/checklist.js.map +1 -1
  186. package/dist/icon/icons/checkmark-circle.js.map +1 -1
  187. package/dist/icon/icons/chevron.js.map +1 -1
  188. package/dist/icon/icons/chip.js.map +1 -1
  189. package/dist/icon/icons/circle-angled-line.js.map +1 -1
  190. package/dist/icon/icons/circle-dash.js.map +1 -1
  191. package/dist/icon/icons/circle-dot-arrows.js.map +1 -1
  192. package/dist/icon/icons/circle-dot.js.map +1 -1
  193. package/dist/icon/icons/circle-half.js.map +1 -1
  194. package/dist/icon/icons/circle-rule.js.map +1 -1
  195. package/dist/icon/icons/circle-tick.js.map +1 -1
  196. package/dist/icon/icons/circle.js.map +1 -1
  197. package/dist/icon/icons/clipboard.js.map +1 -1
  198. package/dist/icon/icons/clock-circle-arrow.js.map +1 -1
  199. package/dist/icon/icons/clock.js.map +1 -1
  200. package/dist/icon/icons/cloud-download.js.map +1 -1
  201. package/dist/icon/icons/cloud-upload.js.map +1 -1
  202. package/dist/icon/icons/cloud.js.map +1 -1
  203. package/dist/icon/icons/code.js.map +1 -1
  204. package/dist/icon/icons/collapse-all.js.map +1 -1
  205. package/dist/icon/icons/collapse-details.js.map +1 -1
  206. package/dist/icon/icons/color-palette.js.map +1 -1
  207. package/dist/icon/icons/columns.js.map +1 -1
  208. package/dist/icon/icons/compare.js.map +1 -1
  209. package/dist/icon/icons/computer.js.map +1 -1
  210. package/dist/icon/icons/connect-node.js.map +1 -1
  211. package/dist/icon/icons/connected-blocks.js.map +1 -1
  212. package/dist/icon/icons/copy.js.map +1 -1
  213. package/dist/icon/icons/cross-hairs.js.map +1 -1
  214. package/dist/icon/icons/cursor-rays.js.map +1 -1
  215. package/dist/icon/icons/cursor-ripples.js.map +1 -1
  216. package/dist/icon/icons/data-management.js.map +1 -1
  217. package/dist/icon/icons/delete-node.js.map +1 -1
  218. package/dist/icon/icons/delete.js.map +1 -1
  219. package/dist/icon/icons/doc-checkmark.js.map +1 -1
  220. package/dist/icon/icons/dock-bottom.js.map +1 -1
  221. package/dist/icon/icons/dock-none.js.map +1 -1
  222. package/dist/icon/icons/dock-side.js.map +1 -1
  223. package/dist/icon/icons/document-clipboard.js.map +1 -1
  224. package/dist/icon/icons/document.js.map +1 -1
  225. package/dist/icon/icons/dot-stroke.js.map +1 -1
  226. package/dist/icon/icons/dot.js.map +1 -1
  227. package/dist/icon/icons/double-chevron.js.map +1 -1
  228. package/dist/icon/icons/download.js.map +1 -1
  229. package/dist/icon/icons/drag.js.map +1 -1
  230. package/dist/icon/icons/dropper.js.map +1 -1
  231. package/dist/icon/icons/duplicate.js.map +1 -1
  232. package/dist/icon/icons/edit.js.map +1 -1
  233. package/dist/icon/icons/ellipses.js.map +1 -1
  234. package/dist/icon/icons/envelope.js.map +1 -1
  235. package/dist/icon/icons/exclamation-circle.js.map +1 -1
  236. package/dist/icon/icons/exclamation-mark.js.map +1 -1
  237. package/dist/icon/icons/exclamation-triangle.js.map +1 -1
  238. package/dist/icon/icons/expand-all.js.map +1 -1
  239. package/dist/icon/icons/expand-details.js.map +1 -1
  240. package/dist/icon/icons/expression.js.map +1 -1
  241. package/dist/icon/icons/eye-hidden.js.map +1 -1
  242. package/dist/icon/icons/eye.js.map +1 -1
  243. package/dist/icon/icons/face-frown.js.map +1 -1
  244. package/dist/icon/icons/face-smile.js.map +1 -1
  245. package/dist/icon/icons/fast-forward-10.js.map +1 -1
  246. package/dist/icon/icons/fast-forward.js.map +1 -1
  247. package/dist/icon/icons/film.js.map +1 -1
  248. package/dist/icon/icons/filter-stroke.js.map +1 -1
  249. package/dist/icon/icons/filter.js.map +1 -1
  250. package/dist/icon/icons/flag-stroke.js.map +1 -1
  251. package/dist/icon/icons/flag.js.map +1 -1
  252. package/dist/icon/icons/fold.js.map +1 -1
  253. package/dist/icon/icons/folder.js.map +1 -1
  254. package/dist/icon/icons/fork.js.map +1 -1
  255. package/dist/icon/icons/gear.js.map +1 -1
  256. package/dist/icon/icons/globe-alt-stroke.js.map +1 -1
  257. package/dist/icon/icons/globe.js.map +1 -1
  258. package/dist/icon/icons/group-boxes.js.map +1 -1
  259. package/dist/icon/icons/group.js.map +1 -1
  260. package/dist/icon/icons/hand.js.map +1 -1
  261. package/dist/icon/icons/hash.js.map +1 -1
  262. package/dist/icon/icons/heading.js.map +1 -1
  263. package/dist/icon/icons/home.js.map +1 -1
  264. package/dist/icon/icons/horizontal-rule.js.map +1 -1
  265. package/dist/icon/icons/hourglass-end.js.map +1 -1
  266. package/dist/icon/icons/hourglass-mid.js.map +1 -1
  267. package/dist/icon/icons/hourglass-start.js.map +1 -1
  268. package/dist/icon/icons/hourglass.js.map +1 -1
  269. package/dist/icon/icons/identification.js.map +1 -1
  270. package/dist/icon/icons/image.js.map +1 -1
  271. package/dist/icon/icons/inbox.js.map +1 -1
  272. package/dist/icon/icons/infinity.js.map +1 -1
  273. package/dist/icon/icons/information-circle-stroke.js.map +1 -1
  274. package/dist/icon/icons/inspect.js.map +1 -1
  275. package/dist/icon/icons/italic.js.map +1 -1
  276. package/dist/icon/icons/key.js.map +1 -1
  277. package/dist/icon/icons/keyboard.js.map +1 -1
  278. package/dist/icon/icons/laptop-phone.js.map +1 -1
  279. package/dist/icon/icons/layers.js.map +1 -1
  280. package/dist/icon/icons/lifebuoy.js.map +1 -1
  281. package/dist/icon/icons/lightbulb.js.map +1 -1
  282. package/dist/icon/icons/lightning-bolt.js.map +1 -1
  283. package/dist/icon/icons/link.js.map +1 -1
  284. package/dist/icon/icons/list-ordered.js.map +1 -1
  285. package/dist/icon/icons/list-unordered.js.map +1 -1
  286. package/dist/icon/icons/lock.js.map +1 -1
  287. package/dist/icon/icons/login.js.map +1 -1
  288. package/dist/icon/icons/logout.js.map +1 -1
  289. package/dist/icon/icons/looping-off.js.map +1 -1
  290. package/dist/icon/icons/looping.js.map +1 -1
  291. package/dist/icon/icons/map-drives.js.map +1 -1
  292. package/dist/icon/icons/map-pin.js.map +1 -1
  293. package/dist/icon/icons/map.js.map +1 -1
  294. package/dist/icon/icons/markdown.js.map +1 -1
  295. package/dist/icon/icons/maximize.js.map +1 -1
  296. package/dist/icon/icons/megaphone.js.map +1 -1
  297. package/dist/icon/icons/menu.js.map +1 -1
  298. package/dist/icon/icons/merge.js.map +1 -1
  299. package/dist/icon/icons/meter.js.map +1 -1
  300. package/dist/icon/icons/minimize.js.map +1 -1
  301. package/dist/icon/icons/minus-circle.js.map +1 -1
  302. package/dist/icon/icons/minus.js.map +1 -1
  303. package/dist/icon/icons/moon.js.map +1 -1
  304. package/dist/icon/icons/more-actions.js.map +1 -1
  305. package/dist/icon/icons/multiselect.js.map +1 -1
  306. package/dist/icon/icons/music-note.js.map +1 -1
  307. package/dist/icon/icons/newspaper.js.map +1 -1
  308. package/dist/icon/icons/not-allowed.js.map +1 -1
  309. package/dist/icon/icons/numbers.js.map +1 -1
  310. package/dist/icon/icons/office-building.js.map +1 -1
  311. package/dist/icon/icons/outline.js.map +1 -1
  312. package/dist/icon/icons/paper-airplane.js.map +1 -1
  313. package/dist/icon/icons/paper-clip.js.map +1 -1
  314. package/dist/icon/icons/pause.js.map +1 -1
  315. package/dist/icon/icons/pencil-square.js.map +1 -1
  316. package/dist/icon/icons/person-2.js.map +1 -1
  317. package/dist/icon/icons/person-3.js.map +1 -1
  318. package/dist/icon/icons/person-circle.js.map +1 -1
  319. package/dist/icon/icons/person.js.map +1 -1
  320. package/dist/icon/icons/phone.js.map +1 -1
  321. package/dist/icon/icons/picture-in-picture.js.map +1 -1
  322. package/dist/icon/icons/pie-chart.js.map +1 -1
  323. package/dist/icon/icons/pin.js.map +1 -1
  324. package/dist/icon/icons/pizza-slice.js.map +1 -1
  325. package/dist/icon/icons/placeholder.js.map +1 -1
  326. package/dist/icon/icons/play.js.map +1 -1
  327. package/dist/icon/icons/plug.js.map +1 -1
  328. package/dist/icon/icons/plus-circle.js.map +1 -1
  329. package/dist/icon/icons/plus-minus.js.map +1 -1
  330. package/dist/icon/icons/pointer-stroke.js.map +1 -1
  331. package/dist/icon/icons/pointer.js.map +1 -1
  332. package/dist/icon/icons/priority-high.js.map +1 -1
  333. package/dist/icon/icons/priority-low.js.map +1 -1
  334. package/dist/icon/icons/priority-medium.js.map +1 -1
  335. package/dist/icon/icons/projector.js.map +1 -1
  336. package/dist/icon/icons/pull-close.js.map +1 -1
  337. package/dist/icon/icons/pull-draft.js.map +1 -1
  338. package/dist/icon/icons/pull-open.js.map +1 -1
  339. package/dist/icon/icons/pulse.js.map +1 -1
  340. package/dist/icon/icons/puzzle-piece.js.map +1 -1
  341. package/dist/icon/icons/question-mark-circle-stroke.js.map +1 -1
  342. package/dist/icon/icons/question-mark-circle.js.map +1 -1
  343. package/dist/icon/icons/rectangle-group.js.map +1 -1
  344. package/dist/icon/icons/rectangle-stack-horizontal.js.map +1 -1
  345. package/dist/icon/icons/rectangle-stack-vertical.js.map +1 -1
  346. package/dist/icon/icons/redo.js.map +1 -1
  347. package/dist/icon/icons/refresh.js.map +1 -1
  348. package/dist/icon/icons/reply.js.map +1 -1
  349. package/dist/icon/icons/rewind-10.js.map +1 -1
  350. package/dist/icon/icons/rewind.js.map +1 -1
  351. package/dist/icon/icons/rocketship.js.map +1 -1
  352. package/dist/icon/icons/running.js.map +1 -1
  353. package/dist/icon/icons/scale.js.map +1 -1
  354. package/dist/icon/icons/scissors.js.map +1 -1
  355. package/dist/icon/icons/search.js.map +1 -1
  356. package/dist/icon/icons/sensor.js.map +1 -1
  357. package/dist/icon/icons/server-stack.js.map +1 -1
  358. package/dist/icon/icons/server.js.map +1 -1
  359. package/dist/icon/icons/shapes.js.map +1 -1
  360. package/dist/icon/icons/share.js.map +1 -1
  361. package/dist/icon/icons/signal-slash.js.map +1 -1
  362. package/dist/icon/icons/signal.js.map +1 -1
  363. package/dist/icon/icons/signpost.js.map +1 -1
  364. package/dist/icon/icons/sort-ascending.js.map +1 -1
  365. package/dist/icon/icons/sort-descending.js.map +1 -1
  366. package/dist/icon/icons/soundwave.js.map +1 -1
  367. package/dist/icon/icons/sparkles.js.map +1 -1
  368. package/dist/icon/icons/split-horizontal.js.map +1 -1
  369. package/dist/icon/icons/split-none.js.map +1 -1
  370. package/dist/icon/icons/split-vertical.js.map +1 -1
  371. package/dist/icon/icons/star-half.js.map +1 -1
  372. package/dist/icon/icons/star-stroke.js.map +1 -1
  373. package/dist/icon/icons/star.js.map +1 -1
  374. package/dist/icon/icons/start.js.map +1 -1
  375. package/dist/icon/icons/status-offline.js.map +1 -1
  376. package/dist/icon/icons/status-online.js.map +1 -1
  377. package/dist/icon/icons/stop-sign.js.map +1 -1
  378. package/dist/icon/icons/stop.js.map +1 -1
  379. package/dist/icon/icons/stopwatch.js.map +1 -1
  380. package/dist/icon/icons/strikethrough.js.map +1 -1
  381. package/dist/icon/icons/sun.js.map +1 -1
  382. package/dist/icon/icons/swatch.js.map +1 -1
  383. package/dist/icon/icons/switch-apps.js.map +1 -1
  384. package/dist/icon/icons/switch.js.map +1 -1
  385. package/dist/icon/icons/table.js.map +1 -1
  386. package/dist/icon/icons/tag.js.map +1 -1
  387. package/dist/icon/icons/task.js.map +1 -1
  388. package/dist/icon/icons/telescope.js.map +1 -1
  389. package/dist/icon/icons/template.js.map +1 -1
  390. package/dist/icon/icons/terminal.js.map +1 -1
  391. package/dist/icon/icons/thumb-stroke.js.map +1 -1
  392. package/dist/icon/icons/thumb.js.map +1 -1
  393. package/dist/icon/icons/traffic-cone.js.map +1 -1
  394. package/dist/icon/icons/transparent-box.js.map +1 -1
  395. package/dist/icon/icons/trend-down.js.map +1 -1
  396. package/dist/icon/icons/trend-up.js.map +1 -1
  397. package/dist/icon/icons/trophy.js.map +1 -1
  398. package/dist/icon/icons/truck.js.map +1 -1
  399. package/dist/icon/icons/typography.js.map +1 -1
  400. package/dist/icon/icons/undo.js.map +1 -1
  401. package/dist/icon/icons/unlock.js.map +1 -1
  402. package/dist/icon/icons/upload.js.map +1 -1
  403. package/dist/icon/icons/video-camera.js.map +1 -1
  404. package/dist/icon/icons/view-as-grid.js.map +1 -1
  405. package/dist/icon/icons/volume-muted.js.map +1 -1
  406. package/dist/icon/icons/volume.js.map +1 -1
  407. package/dist/icon/icons/wifi.js.map +1 -1
  408. package/dist/icon/icons/wrench.js.map +1 -1
  409. package/dist/icon/icons/x-circle.js.map +1 -1
  410. package/dist/icon/icons/zoom-in.js.map +1 -1
  411. package/dist/icon/icons/zoom-out.js.map +1 -1
  412. package/dist/icon/icons.js.map +1 -1
  413. package/dist/icon/server.js.map +1 -1
  414. package/dist/icon-button/define.js.map +1 -1
  415. package/dist/icon-button/icon-button2.js +2 -2
  416. package/dist/icon-button/icon-button2.js.map +1 -1
  417. package/dist/index.js +1 -1
  418. package/dist/input/define.js.map +1 -1
  419. package/dist/input/input-group2.js +1 -1
  420. package/dist/input/input-group2.js.map +1 -1
  421. package/dist/input/input2.js +2 -2
  422. package/dist/input/input2.js.map +1 -1
  423. package/dist/internal/base/button.js +3 -3
  424. package/dist/internal/base/button.js.map +1 -1
  425. package/dist/internal/controllers/audit.controller.js.map +1 -1
  426. package/dist/internal/controllers/i18n.controller.js.map +1 -1
  427. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  428. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  429. package/dist/internal/controllers/state-active.controller.js.map +1 -1
  430. package/dist/internal/controllers/state-current.controller.js.map +1 -1
  431. package/dist/internal/controllers/state-disabled.controller.js.map +1 -1
  432. package/dist/internal/controllers/state-expanded.controller.js.map +1 -1
  433. package/dist/internal/controllers/state-highlighted.controller.js.map +1 -1
  434. package/dist/internal/controllers/state-pressed.controller.js.map +1 -1
  435. package/dist/internal/controllers/state-scroll.controller.js.map +1 -1
  436. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  437. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  438. package/dist/internal/controllers/type-button.controller.js.map +1 -1
  439. package/dist/internal/controllers/type-closable.controller.js.map +1 -1
  440. package/dist/internal/controllers/type-command.controller.js.map +1 -1
  441. package/dist/internal/controllers/type-expandable.controller.js.map +1 -1
  442. package/dist/internal/controllers/type-interest.controller.js.map +1 -1
  443. package/dist/internal/controllers/type-native-popover-trigger.controller.js.map +1 -1
  444. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  445. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  446. package/dist/internal/controllers/type-selectable.controller.js.map +1 -1
  447. package/dist/internal/controllers/type-ssr.controller.js +2 -2
  448. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  449. package/dist/internal/controllers/type-submit.controller.js.map +1 -1
  450. package/dist/internal/controllers/type-touch.controller.js.map +1 -1
  451. package/dist/internal/decorators/host-attr.js.map +1 -1
  452. package/dist/internal/decorators/scoped-registry.js.map +1 -1
  453. package/dist/internal/services/global.service.js +1 -1
  454. package/dist/internal/services/global.service.js.map +1 -1
  455. package/dist/internal/services/global.utils.js +6 -8
  456. package/dist/internal/services/global.utils.js.map +1 -1
  457. package/dist/internal/services/i18n.service.js.map +1 -1
  458. package/dist/internal/services/log.service.js.map +1 -1
  459. package/dist/internal/services/transition.service.js.map +1 -1
  460. package/dist/internal/styles/index.js.map +1 -1
  461. package/dist/internal/styles/popover2.js.map +1 -1
  462. package/dist/internal/types/index.js.map +1 -1
  463. package/dist/internal/utils/a11y.js.map +1 -1
  464. package/dist/internal/utils/audit-logs.d.ts +0 -1
  465. package/dist/internal/utils/audit-logs.js +1 -4
  466. package/dist/internal/utils/audit-logs.js.map +1 -1
  467. package/dist/internal/utils/audit.js.map +1 -1
  468. package/dist/internal/utils/dom.js.map +1 -1
  469. package/dist/internal/utils/events.js.map +1 -1
  470. package/dist/internal/utils/focus.js.map +1 -1
  471. package/dist/internal/utils/keynav.js.map +1 -1
  472. package/dist/internal/utils/objects.js.map +1 -1
  473. package/dist/internal/utils/strings.js.map +1 -1
  474. package/dist/internal/utils/supports.js.map +1 -1
  475. package/dist/logo/define.js.map +1 -1
  476. package/dist/logo/logo2.js +2 -2
  477. package/dist/logo/logo2.js.map +1 -1
  478. package/dist/menu/define.js.map +1 -1
  479. package/dist/menu/menu-item2.js +2 -2
  480. package/dist/menu/menu-item2.js.map +1 -1
  481. package/dist/menu/menu2.js +2 -2
  482. package/dist/menu/menu2.js.map +1 -1
  483. package/dist/month/define.js.map +1 -1
  484. package/dist/month/month2.js +2 -2
  485. package/dist/month/month2.js.map +1 -1
  486. package/dist/notification/define.js.map +1 -1
  487. package/dist/notification/notification-group2.js +2 -2
  488. package/dist/notification/notification-group2.js.map +1 -1
  489. package/dist/notification/notification2.js +4 -4
  490. package/dist/notification/notification2.js.map +1 -1
  491. package/dist/page/define.js.map +1 -1
  492. package/dist/page/page-panel/page-panel-content2.js +1 -1
  493. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  494. package/dist/page/page-panel/page-panel-footer2.js +2 -2
  495. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  496. package/dist/page/page-panel/page-panel-header2.js +2 -2
  497. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  498. package/dist/page/page-panel/page-panel2.js +5 -5
  499. package/dist/page/page-panel/page-panel2.js.map +1 -1
  500. package/dist/page/page2.js +2 -2
  501. package/dist/page/page2.js.map +1 -1
  502. package/dist/page-header/define.js.map +1 -1
  503. package/dist/page-header/page-header2.js +1 -1
  504. package/dist/page-header/page-header2.js.map +1 -1
  505. package/dist/page-loader/define.js.map +1 -1
  506. package/dist/page-loader/page-loader2.js +2 -2
  507. package/dist/page-loader/page-loader2.js.map +1 -1
  508. package/dist/pagination/define.js.map +1 -1
  509. package/dist/pagination/pagination2.js +4 -4
  510. package/dist/pagination/pagination2.js.map +1 -1
  511. package/dist/panel/define.js.map +1 -1
  512. package/dist/panel/panel2.js +8 -8
  513. package/dist/panel/panel2.js.map +1 -1
  514. package/dist/password/define.js.map +1 -1
  515. package/dist/password/password2.js +2 -2
  516. package/dist/password/password2.js.map +1 -1
  517. package/dist/polyfills/custom-state-set.js.map +1 -1
  518. package/dist/polyfills/index.js.map +1 -1
  519. package/dist/preferences-input/define.js.map +1 -1
  520. package/dist/preferences-input/preferences-input2.js +4 -4
  521. package/dist/preferences-input/preferences-input2.js.map +1 -1
  522. package/dist/progress-bar/define.js.map +1 -1
  523. package/dist/progress-bar/progress-bar2.js +2 -2
  524. package/dist/progress-bar/progress-bar2.js.map +1 -1
  525. package/dist/progress-ring/define.js.map +1 -1
  526. package/dist/progress-ring/progress-ring2.js +5 -5
  527. package/dist/progress-ring/progress-ring2.js.map +1 -1
  528. package/dist/progressive-filter-chip/define.js.map +1 -1
  529. package/dist/progressive-filter-chip/progressive-filter-chip2.js +5 -5
  530. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  531. package/dist/pulse/define.js.map +1 -1
  532. package/dist/pulse/pulse2.js +2 -2
  533. package/dist/pulse/pulse2.js.map +1 -1
  534. package/dist/radio/define.js.map +1 -1
  535. package/dist/radio/radio-group2.js +2 -2
  536. package/dist/radio/radio-group2.js.map +1 -1
  537. package/dist/radio/radio2.js +2 -2
  538. package/dist/radio/radio2.js.map +1 -1
  539. package/dist/range/define.js.map +1 -1
  540. package/dist/range/range2.js +2 -2
  541. package/dist/range/range2.js.map +1 -1
  542. package/dist/resize-handle/define.js.map +1 -1
  543. package/dist/resize-handle/resize-handle2.js +5 -5
  544. package/dist/resize-handle/resize-handle2.js.map +1 -1
  545. package/dist/search/define.js.map +1 -1
  546. package/dist/search/search2.js +2 -2
  547. package/dist/search/search2.js.map +1 -1
  548. package/dist/select/define.js.map +1 -1
  549. package/dist/select/select2.js +6 -6
  550. package/dist/select/select2.js.map +1 -1
  551. package/dist/skeleton/define.js.map +1 -1
  552. package/dist/skeleton/skeleton2.js +2 -2
  553. package/dist/skeleton/skeleton2.js.map +1 -1
  554. package/dist/sort-button/define.js.map +1 -1
  555. package/dist/sort-button/sort-button2.js +14 -14
  556. package/dist/sort-button/sort-button2.js.map +1 -1
  557. package/dist/sparkline/define.js.map +1 -1
  558. package/dist/sparkline/sparkline.utils.d.ts +0 -1
  559. package/dist/sparkline/sparkline.utils.js.map +1 -1
  560. package/dist/sparkline/sparkline2.js +2 -2
  561. package/dist/sparkline/sparkline2.js.map +1 -1
  562. package/dist/star-rating/define.js.map +1 -1
  563. package/dist/star-rating/star-rating2.js +4 -4
  564. package/dist/star-rating/star-rating2.js.map +1 -1
  565. package/dist/steps/define.js.map +1 -1
  566. package/dist/steps/steps2.js +7 -7
  567. package/dist/steps/steps2.js.map +1 -1
  568. package/dist/switch/define.js.map +1 -1
  569. package/dist/switch/switch-group2.js +2 -2
  570. package/dist/switch/switch-group2.js.map +1 -1
  571. package/dist/switch/switch2.js +2 -2
  572. package/dist/switch/switch2.js.map +1 -1
  573. package/dist/tabs/define.js.map +1 -1
  574. package/dist/tabs/tabs-group2.js +16 -16
  575. package/dist/tabs/tabs-group2.js.map +1 -1
  576. package/dist/tabs/tabs2.js +7 -7
  577. package/dist/tabs/tabs2.js.map +1 -1
  578. package/dist/tag/define.js.map +1 -1
  579. package/dist/tag/tag2.js +5 -5
  580. package/dist/tag/tag2.js.map +1 -1
  581. package/dist/textarea/define.js.map +1 -1
  582. package/dist/textarea/textarea2.js +1 -1
  583. package/dist/textarea/textarea2.js.map +1 -1
  584. package/dist/time/define.js.map +1 -1
  585. package/dist/time/time2.js +2 -2
  586. package/dist/time/time2.js.map +1 -1
  587. package/dist/toast/define.js.map +1 -1
  588. package/dist/toast/toast2.js +4 -4
  589. package/dist/toast/toast2.js.map +1 -1
  590. package/dist/toggletip/define.js.map +1 -1
  591. package/dist/toggletip/toggletip-footer2.js +2 -2
  592. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  593. package/dist/toggletip/toggletip-header2.js +2 -2
  594. package/dist/toggletip/toggletip-header2.js.map +1 -1
  595. package/dist/toggletip/toggletip2.js +4 -4
  596. package/dist/toggletip/toggletip2.js.map +1 -1
  597. package/dist/toolbar/define.js.map +1 -1
  598. package/dist/toolbar/toolbar2.js +4 -4
  599. package/dist/toolbar/toolbar2.js.map +1 -1
  600. package/dist/tooltip/define.js.map +1 -1
  601. package/dist/tooltip/tooltip2.js +2 -2
  602. package/dist/tooltip/tooltip2.js.map +1 -1
  603. package/dist/tree/define.js.map +1 -1
  604. package/dist/tree/tree-node2.js +9 -9
  605. package/dist/tree/tree-node2.js.map +1 -1
  606. package/dist/tree/tree2.js +4 -4
  607. package/dist/tree/tree2.js.map +1 -1
  608. package/dist/tree/utils.js.map +1 -1
  609. package/dist/week/define.js.map +1 -1
  610. package/dist/week/week2.js +2 -2
  611. package/dist/week/week2.js.map +1 -1
  612. package/package.json +19 -13
@@ -1 +1 @@
1
- {"version":3,"file":"combobox2.js","names":["#datalist","#_datalist","#select","#_select","#options","#items","#dropdown","#input","#tags","#hasAvailableOptions","#hasFooterContent","#showCreateItem","#findOptionMatch","#selectValue","#largeOptionsList","#isPristine","#onDropdownOpen","#closeListBox","#getOptionCheckbox","#characterAtIndexMatches","#onCreateItemClick","#onSlottedChildMutation","#setupSingleSelect","#setupMultipleSelect","#setupAutoCompleteKeyEvents","#setupMenuItemUpdateEvents","#setupOpenKeyEvents","#setupOverflowListener","#setupSlotStates","#setupLightDismiss","#observers","#setupInitialValue","#syncSelectValueStates","#syncOptionSelectedStates","#updateInputValue","#trackedOptions","#syncPending","#cleanupStaleTrackedOptions","#setInputValue","#setSelectValue","#dispatchCreate","#filterOptions","#openListBox","#validateSingleSelectValue","#updateMultipleOverflow","#setSlotStates"],"sources":["../../src/combobox/combobox.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, isServer, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport {\n createLightDismiss,\n focusElementTimeout,\n getDisplayValue,\n getElementUpdate,\n getPropertyChanges,\n scopedRegistry,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Checkbox } from '@nvidia-elements/core/checkbox';\nimport styles from './combobox.css?inline';\n\n/**\n * @element nve-combobox\n * @description An editable combobox with autocomplete behavior and selection support.\n * @since 0.17.0\n * @entrypoint \\@nvidia-elements/core/combobox\n * @slot - default slot for an input and a datalist/select element\n * @slot prefix-icon - slot for icon before the input\n * @slot footer - slot for dropdown footer content\n * @cssprop --scroll-height\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --border-color\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag - The tag element for selected items\n * @csspart dropdown - The dropdown popup element\n * @csspart menu - The menu element\n * @csspart menu-item - The menu item elements\n * @csspart checkbox - The checkbox element\n * @csspart icon - The icon element\n * @event scroll - Fires when the user scrolls the dropdown option list. Throttled to one dispatch per animation frame. `detail: { scrollTop, scrollHeight, clientHeight }`.\n * @event create - Fires when the user confirms a value that doesn't match any existing option and the `behavior-create` attribute exists. `detail: { value }`.\n * @csspart create-option - The menu item element for creating new options\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list/\n */\n@scopedRegistry()\nexport class Combobox extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container: 'flat';\n\n /** Disable rendering of inline tags for many-item select */\n @property({ type: Boolean, reflect: true }) notags: boolean;\n\n /** Enable creation of new options when the input value doesn't match any existing option. Dispatches a `create` event with `{ value }` detail. */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-create' }) behaviorCreate: boolean;\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-combobox',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Checkbox.metadata.tag]: Checkbox,\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /**\n * If a <select> exists, on focus all options show by default.\n * If a <datalist> exists, on focus only options that match the current input value show.\n */\n\n #_datalist: HTMLSelectElement | null;\n get #datalist(): HTMLSelectElement | null {\n if (!this.#_datalist) {\n this.#_datalist = this.shadowRoot\n ? ((this.shadowRoot\n .querySelector('slot')\n ?.assignedElements({ flatten: true })\n ?.find(i => i.tagName === 'DATALIST' || i.tagName === 'SELECT') ??\n this.querySelector('datalist, select')) as HTMLSelectElement)\n : null;\n }\n return this.#_datalist;\n }\n\n #_select: HTMLSelectElement | null;\n get #select(): HTMLSelectElement | null {\n if (!this.#_select) {\n this.#_select = this.shadowRoot\n ? ((this.shadowRoot\n .querySelector('slot')\n ?.assignedElements({ flatten: true })\n ?.find(i => i.tagName === 'SELECT') ?? this.querySelector('select')) as HTMLSelectElement)\n : null;\n }\n return this.#_select;\n }\n\n get #options(): HTMLOptionElement[] {\n return Array.from(this.#datalist?.options ? this.#datalist.options : []);\n }\n\n get #items() {\n return Array.from(this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag));\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #hasAvailableOptions() {\n return this.#options.find(o => !o.disabled && !o.hidden);\n }\n\n get #hasFooterContent() {\n return !!this.querySelector('[slot=\"footer\"]');\n }\n\n get #showCreateItem(): boolean {\n if (!this.behaviorCreate || this.input?.disabled) return false;\n const value = this.input?.value.trim();\n if (!value) return false;\n return !this.#findOptionMatch(value);\n }\n\n #findOptionMatch(value: string): HTMLOptionElement | undefined {\n const lower = value.toLowerCase();\n return this.#options.find(o => {\n const display = o.textContent!.trim() || o.value;\n return display.toLowerCase() === lower || o.value.toLowerCase() === lower;\n });\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n #syncPending = false;\n\n protected _associateDatalist = false;\n\n protected get prefixContent() {\n return this.#select?.multiple && !this.notags\n ? html`\n <div class=\"tags-label\" aria-hidden=\"true\">${this.#select.selectedOptions.length} ${this.i18n.selected}</div>\n <div class=\"tags\">\n ${Array.from<HTMLOptionElement>(this.#select.selectedOptions).map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o)}>${getDisplayValue(o)}</nve-tag>`\n )}\n </div>`\n : html`<slot name=\"prefix-icon\"></slot>`;\n }\n\n get #largeOptionsList() {\n return (this.#datalist?.options?.length ?? 0) > 50;\n }\n\n get #isPristine() {\n return !this._internals.states.has('dirty');\n }\n\n protected get suffixContent() {\n if (isServer) return nothing;\n const options = this.#options;\n const largeOptionsList = this.#largeOptionsList;\n const isPristine = this.#isPristine;\n const visibleOptions = options.filter(o => !o.hidden).filter(o => !(o.value === '' && o.disabled));\n const hasNoResults = visibleOptions.filter(o => !o.disabled).length === 0;\n const showCreateItem = this.#showCreateItem;\n return html`\n <nve-dropdown part=\"dropdown\" .popoverType=${'manual'} .modal=${false} @open=${this.#onDropdownOpen} @close=${this.#closeListBox} hidden .anchor=${this.#input as HTMLElement} .trigger=${this.#input as HTMLElement} position=\"bottom\">\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${visibleOptions.map(\n o => html`\n <nve-menu-item part=\"menu-item\" .option=${getDisplayValue(o)} role=\"option\" @click=${() => this.#selectValue(o)} ?selected=${o.selected} aria-selected=${o.selected ? 'true' : 'false'} ?disabled=${o.disabled} aria-label=${getDisplayValue(o)}>\n ${this.#getOptionCheckbox(o)}\n ${largeOptionsList || isPristine ? getDisplayValue(o) : html`<span role=\"presentation\">${(o.label ? o.label : o.value)?.split('')?.map((c, ci) => html`<span ?matches=${this.#characterAtIndexMatches(c, ci)}>${c}</span>`)}</span>`}\n </nve-menu-item>`\n )}\n ${hasNoResults && !showCreateItem ? html`<nve-menu-item part=\"menu-item\" .value=${''} disabled>${this.i18n.noResults}</nve-menu-item>` : nothing}\n ${\n showCreateItem\n ? html`<nve-menu-item part=\"create-option\" role=\"button\" aria-label=${`${this.i18n.create} \"${this.input?.value.trim()}\"`} @click=${this.#onCreateItemClick}>\n <nve-icon part=\"icon\" name=\"add\" size=\"sm\"></nve-icon> \"${this.input?.value.trim()}\"\n </nve-menu-item>`\n : nothing\n }\n </nve-menu>\n <slot name=\"footer\"></slot>\n </nve-dropdown>`;\n }\n\n #getOptionCheckbox(o: HTMLOptionElement) {\n const select = this.#select;\n if (select?.multiple && this.#largeOptionsList) {\n return html`<input aria-hidden=\"true\" type=\"checkbox\" .checked=${o.selected} .disabled=${o.disabled} .name=${o.selected ? 'check' : undefined} />`;\n } else if (select?.multiple) {\n /* eslint-disable @nvidia-elements/lint/no-missing-control-label */\n return html`<nve-checkbox part=\"checkbox\"><input aria-hidden=\"true\" type=\"checkbox\" .checked=${o.selected} .disabled=${o.disabled} .name=${o.selected ? 'check' : undefined} /></nve-checkbox>`;\n } else if (select) {\n return html`<nve-icon part=\"icon\" name=\"check\" size=\"sm\"></nve-icon>`;\n } else {\n return nothing;\n }\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n this.shadowRoot!.addEventListener('slotchange', () => {\n this.#_datalist = null;\n this.#_select = null;\n this.#onSlottedChildMutation();\n });\n await this.updateComplete;\n this.#setupSingleSelect();\n this.#setupMultipleSelect();\n this.#setupAutoCompleteKeyEvents();\n this.#setupMenuItemUpdateEvents();\n this.#setupOpenKeyEvents();\n this.#setupOverflowListener();\n this.#setupSlotStates();\n await this.#setupLightDismiss();\n this.input.setAttribute('list', '');\n this.input.autocomplete = 'off';\n }\n\n connectedCallback() {\n super.connectedCallback();\n const observer = new MutationObserver(mutations => {\n if (mutations.some(m => m.type === 'childList' && m.target === this)) {\n this.#_datalist = null;\n this.#_select = null;\n }\n this.#onSlottedChildMutation();\n });\n observer.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['selected', 'disabled', 'value'],\n characterData: true\n });\n this.#observers.push(observer);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#observers.forEach(observer => observer.disconnect());\n }\n\n reset() {\n this.#dropdown!.hidePopover();\n if (this.#select) {\n this.#select.selectedIndex = -1;\n }\n super.reset();\n }\n\n /** Select all options provided */\n selectAll() {\n this.#options.forEach(o => (o.selected = true));\n this.requestUpdate();\n this.#select!.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select!.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #setupSingleSelect() {\n if (this.#select && !this.#select.multiple) {\n this.#setupInitialValue();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n }\n\n #setupMultipleSelect() {\n if (this.#select?.multiple) {\n this.#setupInitialValue();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n this._internals.states.add('multiple');\n }\n }\n\n #setupInitialValue() {\n const selected = Array.from(this.#select!.selectedOptions).find((o: HTMLOptionElement) =>\n o.hasAttribute('selected')\n );\n if (selected && !this.#select!.multiple && !this.input.defaultValue) {\n this.input.value = getDisplayValue(selected);\n }\n }\n\n #updateInputValue() {\n if (!this.#select!.multiple && !this.input.defaultValue) {\n this.input.value = getDisplayValue(\n Array.from(this.#select!.selectedOptions).find(o => o.value === this.#select!.value)!\n );\n }\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select!, 'value', () => {\n this.#updateInputValue();\n this.requestUpdate();\n })\n );\n }\n\n #trackedOptions = new Set<HTMLOptionElement>();\n #syncOptionSelectedStates() {\n this.#options.forEach(o => {\n if (!this.#trackedOptions.has(o)) {\n this.#trackedOptions.add(o);\n getPropertyChanges(o, 'selected', () => this.requestUpdate());\n }\n });\n }\n\n #onSlottedChildMutation() {\n if (!this.#syncPending) {\n this.#syncPending = true;\n queueMicrotask(() => {\n this.#syncPending = false;\n this.#cleanupStaleTrackedOptions();\n this.#syncOptionSelectedStates();\n this.requestUpdate();\n });\n }\n }\n\n #cleanupStaleTrackedOptions() {\n const currentOptions = new Set(this.#options);\n for (const tracked of this.#trackedOptions) {\n if (!currentOptions.has(tracked)) {\n this.#trackedOptions.delete(tracked);\n }\n }\n }\n\n #onDropdownOpen(e: Event) {\n (e.target as HTMLElement).hidden = false;\n }\n\n #setupAutoCompleteKeyEvents() {\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n const value = this.input.value.trim();\n\n if (e.code === 'Tab') {\n if (this.#hasAvailableOptions && this.#dropdown!.matches(':popover-open') && value !== '') {\n e.preventDefault();\n // the menu item option property caches/stores the option value instead of value to prevent unnecessary lit lifecycle updates for each menu item\n this.#setInputValue((this.#items[0] as MenuItem & { option: string }).option);\n this.#setSelectValue(\n this.#options.find(\n o => (o.label ? o.label : o.value) === (this.#items[0] as MenuItem & { option: string }).option\n )!\n );\n }\n this.#dropdown!.hidePopover();\n }\n\n if (e.code === 'Enter' && this.behaviorCreate && !this.input.disabled && value) {\n const match = this.#findOptionMatch(value);\n if (match) {\n this.#selectValue(match);\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.#dispatchCreate();\n }\n }\n });\n }\n\n #setupMenuItemUpdateEvents() {\n this.input.addEventListener('input', () => this.#filterOptions());\n this.shadowRoot!.addEventListener('slotchange', () => this.#filterOptions());\n }\n\n async #setupLightDismiss() {\n const dropdown = this.#dropdown!;\n await dropdown.updateComplete;\n const options = {\n element: dropdown.shadowRoot!.querySelector<HTMLElement>('[internal-host]')!,\n focusElement: this.input\n };\n createLightDismiss(options, () => {\n if (this.#dropdown!.matches(':popover-open')) {\n this.#dropdown!.hidePopover();\n }\n });\n }\n\n #setupOpenKeyEvents() {\n this.input.addEventListener('pointerdown', () => {\n this.#openListBox();\n });\n\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.code !== 'Tab' && e.code !== 'Escape') {\n this.#openListBox();\n }\n\n if (e?.code === 'ArrowDown' && (this.getRootNode() as ShadowRoot).activeElement === this.input) {\n this.#dropdown!.tabIndex = 0;\n this.#items[0]?.focus();\n e.preventDefault();\n }\n });\n }\n\n #selectValue(option: { selected?: boolean; label?: string; value?: string }) {\n if (!this.#select?.multiple) {\n this.#setInputValue(getDisplayValue(option));\n this.#dropdown!.hidePopover();\n focusElementTimeout(this.input);\n }\n\n if (this.#select) {\n option.selected = !option.selected;\n this.#setSelectValue(option);\n }\n\n this.requestUpdate();\n }\n\n #onCreateItemClick() {\n this.#dispatchCreate();\n }\n\n #dispatchCreate() {\n const value = this.input.value.trim();\n if (value) {\n this.dispatchEvent(new CustomEvent('create', { detail: { value }, bubbles: true, composed: true }));\n this.input.value = '';\n this.#dropdown!.hidePopover();\n focusElementTimeout(this.input);\n this.requestUpdate();\n }\n }\n\n #characterAtIndexMatches(character: string, index: number) {\n if (this.#hasAvailableOptions) {\n return this.input.value.toLowerCase()[index]?.toLowerCase() === character.toLowerCase();\n }\n return false;\n }\n\n #filterOptions() {\n this.#options.forEach(option => {\n const hasLabel = option.textContent!.trim().length;\n if (hasLabel) {\n const matchesLabel = option.textContent!.toLocaleLowerCase().includes(this.input?.value.toLowerCase());\n option.hidden = !matchesLabel;\n } else {\n const matchesValue = option.value.toLocaleLowerCase().includes(this.input?.value.toLowerCase());\n option.hidden = !matchesValue;\n }\n });\n this.requestUpdate();\n }\n\n #openListBox() {\n if (!this.input.disabled && !this.#dropdown!.matches(':popover-open')) {\n if (this.#select) {\n this.#options.forEach(option => (option.hidden = false));\n this.requestUpdate();\n } else {\n this.#filterOptions();\n }\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n // explicitly provide source as the performance optimizations in the suffixContent getter prevent the dropdown from setting its anchor/trigger reliably\n this.#dropdown!.showPopover({ source: this.#input as HTMLElement });\n this.#dropdown!.tabIndex = -1;\n }\n }\n\n #closeListBox() {\n this.#dropdown!.hidePopover();\n this._internals.states.delete('dirty');\n this.#validateSingleSelectValue();\n }\n\n #validateSingleSelectValue() {\n const invalidInputValue =\n this.#select &&\n !this.#select.multiple &&\n !this.#options.filter(o => !(o.value === '' && o.disabled)).find(o => getDisplayValue(o) === this.input.value);\n if (invalidInputValue) {\n this.#options.forEach(o => (o.selected = false));\n this.#setInputValue('');\n this.#setSelectValue({ value: '', selected: false });\n }\n }\n\n #setInputValue(value: string) {\n this.input.value = value;\n this.input.dispatchEvent(new Event('input', { bubbles: true }));\n this.input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #setSelectValue(option: { value?: string; selected?: boolean }) {\n const found = [...this.#options, { value: '', selected: null as boolean | null }].find(\n o => o.value === option.value\n );\n if (found) found.selected = option.selected ?? null;\n\n if (this.#select && !this.#select.multiple) {\n this.#select.value = option.value!;\n }\n\n this.#select?.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select?.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #setupOverflowListener() {\n if (this.#select?.multiple && !this.notags) {\n if (this.#select.selectedOptions.length > 1) {\n // only calculate initial overflow if many tags exist\n this.#updateMultipleOverflow(this.#tags!.getBoundingClientRect().width);\n }\n const observer = new ResizeObserver(entries => this.#updateMultipleOverflow(entries[0]!.contentRect.width));\n this.#observers.push(observer);\n observer.observe(this.#tags!);\n }\n }\n\n #updateMultipleOverflow(tagWidth: number) {\n const INPUT_MIN_WIDTH = 100;\n if (this.#select?.multiple && tagWidth > this.#input!.getBoundingClientRect().width - INPUT_MIN_WIDTH) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n\n #setupSlotStates() {\n this.#setSlotStates();\n this.shadowRoot!.addEventListener('slotchange', () => this.#setSlotStates());\n }\n\n #setSlotStates() {\n if (this.#hasFooterContent) {\n this._internals.states.add('footer-content');\n } else {\n this._internals.states.delete('footer-content');\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA4DO,IAAA,IAAA,cAAuB,EAAoC;;yCA2GjC;;;gBA9Ff,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;GAAO,CAAC;;;kBAExC;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B;IACzB,EAAS,SAAS,MAAM;IACxB,EAAK,SAAS,MAAM;IACpB,EAAS,SAAS,MAAM;IACxB,EAAK,SAAS,MAAM;IACpB,EAAS,SAAS,MAAM;IACxB,EAAI,SAAS,MAAM;GACrB;;CAOD;CACA,KAAA,IAA0C;AAUxC,SATA,AACE,MAAA,MAAkB,KAAK,aACjB,KAAK,WACJ,cAAc,OAAO,EACpB,iBAAiB,EAAE,SAAS,IAAM,CAAC,EACnC,MAAK,MAAK,EAAE,YAAY,cAAc,EAAE,YAAY,SAAS,IAC/D,KAAK,cAAc,mBAAmB,GACxC,MAEC,MAAA;;CAGT;CACA,KAAA,IAAwC;AAStC,SARA,AACE,MAAA,MAAgB,KAAK,aACf,KAAK,WACJ,cAAc,OAAO,EACpB,iBAAiB,EAAE,SAAS,IAAM,CAAC,EACnC,MAAK,MAAK,EAAE,YAAY,SAAS,IAAI,KAAK,cAAc,SAAS,GACrE,MAEC,MAAA;;CAGT,KAAA,IAAoC;AAClC,SAAO,MAAM,KAAK,MAAA,GAAgB,UAAU,MAAA,EAAe,UAAU,EAAE,CAAC;;CAG1E,KAAA,IAAa;AACX,SAAO,MAAM,KAAK,KAAK,WAAY,iBAA2B,EAAS,SAAS,IAAI,CAAC;;CAGvF,KAAA,IAAgB;AACd,SAAO,KAAK,WAAY,cAAwB,EAAS,SAAS,IAAI;;CAGxE,KAAA,IAAa;AACX,SAAO,KAAK,WAAY,cAAc,UAAU;;CAGlD,KAAA,IAAY;AACV,SAAO,KAAK,WAAY,cAAc,QAAQ;;CAGhD,KAAA,IAA2B;AACzB,SAAO,MAAA,EAAc,MAAK,MAAK,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO;;CAG1D,KAAA,IAAwB;AACtB,SAAO,CAAC,CAAC,KAAK,cAAc,oBAAkB;;CAGhD,KAAA,IAA+B;AAC7B,MAAI,CAAC,KAAK,kBAAkB,KAAK,OAAO,SAAU,QAAO;EACzD,IAAM,IAAQ,KAAK,OAAO,MAAM,MAAM;AAEtC,SADK,IACE,CAAC,MAAA,EAAsB,EAAM,GADjB;;CAIrB,GAAiB,GAA8C;EAC7D,IAAM,IAAQ,EAAM,aAAa;AACjC,SAAO,MAAA,EAAc,MAAK,OACR,EAAE,YAAa,MAAM,IAAI,EAAE,OAC5B,aAAa,KAAK,KAAS,EAAE,MAAM,aAAa,KAAK,EACpE;;CAGJ,KAAoD,EAAE;CACtD,KAAe;CAIf,IAAc,gBAAgB;AAC5B,SAAO,MAAA,GAAc,YAAY,CAAC,KAAK,SACnC,CAAI,8CACqC,MAAA,EAAa,gBAAgB,OAAO,GAAG,KAAK,KAAK,SAAS,0BAEnG,MAAM,KAAwB,MAAA,EAAa,gBAAgB,CAAC,KAC5D,MAAK,CAAI,+EACuD,EAAE,MAAM,kBAAgB,MAAA,EAAkB,EAAE,CAAC,IAAG,EAAgB,EAAE,CAAC,YACpI,CAAC,UAEA,CAAI;;CAGV,KAAA,IAAwB;AACtB,UAAQ,MAAA,GAAgB,SAAS,UAAU,KAAK;;CAGlD,KAAA,IAAkB;AAChB,SAAO,CAAC,KAAK,WAAW,OAAO,IAAI,QAAQ;;CAG7C,IAAc,gBAAgB;AAC5B,MAAI,EAAU,QAAO;EACrB,IAAM,IAAU,MAAA,GACV,IAAmB,MAAA,GACnB,IAAa,MAAA,GACb,IAAiB,EAAQ,QAAO,MAAK,CAAC,EAAE,OAAO,CAAC,QAAO,MAAK,EAAE,EAAE,UAAU,MAAM,EAAE,UAAU,EAC5F,IAAe,EAAe,QAAO,MAAK,CAAC,EAAE,SAAS,CAAC,WAAW,GAClE,IAAiB,MAAA;AACvB,SAAO,CAAI,+CACkC,SAAS,YAAU,GAAM,WAAS,MAAA,EAAqB,YAAU,MAAA,EAAmB,oBAAkB,MAAA,EAA2B,cAAY,MAAA,EAA2B,oHACjH,EAAU,KAAK,KAAK,OAAO,CAAC,IAC1H,EAAe,KACf,MAAK,CAAI,4CACiC,EAAgB,EAAE,CAAC,gCAA8B,MAAA,EAAkB,EAAE,CAAC,eAAa,EAAE,SAAS,mBAAiB,EAAE,WAAW,SAAS,QAAQ,eAAa,EAAE,SAAS,gBAAc,EAAgB,EAAE,CAAC,IAC5O,MAAA,EAAwB,EAAE,CAAC,GAC3B,KAAoB,IAAa,EAAgB,EAAE,GAAG,CAAI,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,MAAM,GAAG,EAAE,KAAK,GAAG,MAAO,CAAI,mBAAkB,MAAA,EAA8B,GAAG,EAAG,CAAC,IAAG,EAAE,SAAS,CAAC,SAAS,kBAExO,CAAC,GACA,KAAgB,CAAC,IAAiB,CAAI,2CAA0C,GAAG,wBAAY,KAAK,KAAK,UAAU,oBAAoB,EAAQ,GAE/I,IACI,CAAI,iEAAgE,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,OAAO,MAAM,MAAM,CAAC,GAAG,YAAU,MAAA,EAAwB,2DACpG,KAAK,OAAO,MAAM,MAAM,CAAC,qBAE/E,EACL;;CAMP,GAAmB,GAAsB;EACvC,IAAM,IAAS,MAAA;AASb,SARE,GAAQ,YAAY,MAAA,IACf,CAAI,uDAAsD,EAAE,SAAS,eAAa,EAAE,SAAS,WAAS,EAAE,WAAW,UAAU,KAAA,EAAU,MACrI,GAAQ,WAEV,CAAI,qFAAoF,EAAE,SAAS,eAAa,EAAE,SAAS,WAAS,EAAE,WAAW,UAAU,KAAA,EAAU,qBACnK,IACF,CAAI,6DAEJ;;CAIX,MAAM,aAAa,GAA6B;AAiB9C,EAhBA,MAAM,aAAa,EAAM,EACzB,KAAK,WAAY,iBAAiB,oBAAoB;AAGpD,GAFA,MAAA,IAAkB,MAClB,MAAA,IAAgB,MAChB,MAAA,GAA8B;IAC9B,EACF,MAAM,KAAK,gBACX,MAAA,GAAyB,EACzB,MAAA,GAA2B,EAC3B,MAAA,GAAkC,EAClC,MAAA,GAAiC,EACjC,MAAA,GAA0B,EAC1B,MAAA,GAA6B,EAC7B,MAAA,GAAuB,EACvB,MAAM,MAAA,GAAyB,EAC/B,KAAK,MAAM,aAAa,QAAQ,GAAG,EACnC,KAAK,MAAM,eAAe;;CAG5B,oBAAoB;AAClB,QAAM,mBAAmB;EACzB,IAAM,IAAW,IAAI,kBAAiB,MAAa;AAKjD,GAJI,EAAU,MAAK,MAAK,EAAE,SAAS,eAAe,EAAE,WAAW,KAAK,KAClE,MAAA,IAAkB,MAClB,MAAA,IAAgB,OAElB,MAAA,GAA8B;IAC9B;AAQF,EAPA,EAAS,QAAQ,MAAM;GACrB,WAAW;GACX,SAAS;GACT,YAAY;GACZ,iBAAiB;IAAC;IAAY;IAAY;IAAQ;GAClD,eAAe;GAChB,CAAC,EACF,MAAA,EAAgB,KAAK,EAAS;;CAGhC,uBAAuB;AAErB,EADA,MAAM,sBAAsB,EAC5B,MAAA,EAAgB,SAAQ,MAAY,EAAS,YAAY,CAAC;;CAG5D,QAAQ;AAKN,EAJA,MAAA,EAAgB,aAAa,EACzB,MAAA,MACF,MAAA,EAAa,gBAAgB,KAE/B,MAAM,OAAO;;CAIf,YAAY;AAIV,EAHA,MAAA,EAAc,SAAQ,MAAM,EAAE,WAAW,GAAM,EAC/C,KAAK,eAAe,EACpB,MAAA,EAAc,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,IAAM,CAAC,CAAC,EAClE,MAAA,EAAc,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,IAAM,CAAC,CAAC;;CAGrE,KAAqB;AACnB,EAAI,MAAA,KAAgB,CAAC,MAAA,EAAa,aAChC,MAAA,GAAyB,EACzB,MAAA,GAA6B,EAC7B,MAAA,GAAgC;;CAIpC,KAAuB;AACrB,EAAI,MAAA,GAAc,aAChB,MAAA,GAAyB,EACzB,MAAA,GAA6B,EAC7B,MAAA,GAAgC,EAChC,KAAK,WAAW,OAAO,IAAI,WAAW;;CAI1C,KAAqB;EACnB,IAAM,IAAW,MAAM,KAAK,MAAA,EAAc,gBAAgB,CAAC,MAAM,MAC/D,EAAE,aAAa,WAAW,CAC3B;AACD,EAAI,KAAY,CAAC,MAAA,EAAc,YAAY,CAAC,KAAK,MAAM,iBACrD,KAAK,MAAM,QAAQ,EAAgB,EAAS;;CAIhD,KAAoB;AAClB,EAAI,CAAC,MAAA,EAAc,YAAY,CAAC,KAAK,MAAM,iBACzC,KAAK,MAAM,QAAQ,EACjB,MAAM,KAAK,MAAA,EAAc,gBAAgB,CAAC,MAAK,MAAK,EAAE,UAAU,MAAA,EAAc,MAAM,CACrF;;CAIL,KAAyB;AACvB,QAAA,EAAgB,KACd,EAAiB,MAAA,GAAe,eAAe;AAE7C,GADA,MAAA,GAAwB,EACxB,KAAK,eAAe;IACpB,CACH;;CAGH,qBAAkB,IAAI,KAAwB;CAC9C,KAA4B;AAC1B,QAAA,EAAc,SAAQ,MAAK;AACzB,GAAK,MAAA,EAAqB,IAAI,EAAE,KAC9B,MAAA,EAAqB,IAAI,EAAE,EAC3B,EAAmB,GAAG,kBAAkB,KAAK,eAAe,CAAC;IAE/D;;CAGJ,KAA0B;AACxB,EAAK,MAAA,MACH,MAAA,IAAoB,IACpB,qBAAqB;AAInB,GAHA,MAAA,IAAoB,IACpB,MAAA,GAAkC,EAClC,MAAA,GAAgC,EAChC,KAAK,eAAe;IACpB;;CAIN,KAA8B;EAC5B,IAAM,IAAiB,IAAI,IAAI,MAAA,EAAc;AAC7C,OAAK,IAAM,KAAW,MAAA,EACpB,CAAK,EAAe,IAAI,EAAQ,IAC9B,MAAA,EAAqB,OAAO,EAAQ;;CAK1C,GAAgB,GAAU;AACvB,IAAE,OAAuB,SAAS;;CAGrC,KAA8B;AAC5B,OAAK,iBAAiB,YAAY,MAAqB;GACrD,IAAM,IAAQ,KAAK,MAAM,MAAM,MAAM;AAgBrC,OAdI,EAAE,SAAS,UACT,MAAA,KAA6B,MAAA,EAAgB,QAAQ,gBAAgB,IAAI,MAAU,OACrF,EAAE,gBAAgB,EAElB,MAAA,EAAqB,MAAA,EAAY,GAAqC,OAAO,EAC7E,MAAA,EACE,MAAA,EAAc,MACZ,OAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAY,MAAA,EAAY,GAAqC,OAC1F,CACF,GAEH,MAAA,EAAgB,aAAa,GAG3B,EAAE,SAAS,WAAW,KAAK,kBAAkB,CAAC,KAAK,MAAM,YAAY,GAAO;IAC9E,IAAM,IAAQ,MAAA,EAAsB,EAAM;AAC1C,IAAI,IACF,MAAA,EAAkB,EAAM,IAExB,EAAE,gBAAgB,EAClB,EAAE,0BAA0B,EAC5B,MAAA,GAAsB;;IAG1B;;CAGJ,KAA6B;AAE3B,EADA,KAAK,MAAM,iBAAiB,eAAe,MAAA,GAAqB,CAAC,EACjE,KAAK,WAAY,iBAAiB,oBAAoB,MAAA,GAAqB,CAAC;;CAG9E,OAAA,IAA2B;EACzB,IAAM,IAAW,MAAA;AAMjB,EALA,MAAM,EAAS,gBAKf,EAJgB;GACd,SAAS,EAAS,WAAY,cAA2B,kBAAkB;GAC3E,cAAc,KAAK;GACpB,QACiC;AAChC,GAAI,MAAA,EAAgB,QAAQ,gBAAgB,IAC1C,MAAA,EAAgB,aAAa;IAE/B;;CAGJ,KAAsB;AAKpB,EAJA,KAAK,MAAM,iBAAiB,qBAAqB;AAC/C,SAAA,GAAmB;IACnB,EAEF,KAAK,iBAAiB,YAAY,MAAqB;AAKrD,GAJI,EAAE,SAAS,SAAS,EAAE,SAAS,YACjC,MAAA,GAAmB,EAGjB,GAAG,SAAS,eAAgB,KAAK,aAAa,CAAgB,kBAAkB,KAAK,UACvF,MAAA,EAAgB,WAAW,GAC3B,MAAA,EAAY,IAAI,OAAO,EACvB,EAAE,gBAAgB;IAEpB;;CAGJ,GAAa,GAAgE;AAY3E,EAXK,MAAA,GAAc,aACjB,MAAA,EAAoB,EAAgB,EAAO,CAAC,EAC5C,MAAA,EAAgB,aAAa,EAC7B,EAAoB,KAAK,MAAM,GAG7B,MAAA,MACF,EAAO,WAAW,CAAC,EAAO,UAC1B,MAAA,EAAqB,EAAO,GAG9B,KAAK,eAAe;;CAGtB,KAAqB;AACnB,QAAA,GAAsB;;CAGxB,KAAkB;EAChB,IAAM,IAAQ,KAAK,MAAM,MAAM,MAAM;AACrC,EAAI,MACF,KAAK,cAAc,IAAI,YAAY,UAAU;GAAE,QAAQ,EAAE,UAAO;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC,CAAC,EACnG,KAAK,MAAM,QAAQ,IACnB,MAAA,EAAgB,aAAa,EAC7B,EAAoB,KAAK,MAAM,EAC/B,KAAK,eAAe;;CAIxB,GAAyB,GAAmB,GAAe;AAIzD,SAHI,MAAA,IACK,KAAK,MAAM,MAAM,aAAa,CAAC,IAAQ,aAAa,KAAK,EAAU,aAAa,GAElF;;CAGT,KAAiB;AAWf,EAVA,MAAA,EAAc,SAAQ,MAAU;AAE9B,GADiB,EAAO,YAAa,MAAM,CAAC,SAG1C,EAAO,SAAS,CADK,EAAO,YAAa,mBAAmB,CAAC,SAAS,KAAK,OAAO,MAAM,aAAa,CAAC,GAItG,EAAO,SAAS,CADK,EAAO,MAAM,mBAAmB,CAAC,SAAS,KAAK,OAAO,MAAM,aAAa,CAAC;IAGjG,EACF,KAAK,eAAe;;CAGtB,KAAe;AACb,EAAI,CAAC,KAAK,MAAM,YAAY,CAAC,MAAA,EAAgB,QAAQ,gBAAgB,KAC/D,MAAA,KACF,MAAA,EAAc,SAAQ,MAAW,EAAO,SAAS,GAAO,EACxD,KAAK,eAAe,IAEpB,MAAA,GAAqB,EAEvB,MAAA,EAAgB,MAAM,YAAY,eAAe,GAAG,MAAA,EAAa,uBAAuB,CAAC,MAAM,IAAI,EAEnG,MAAA,EAAgB,YAAY,EAAE,QAAQ,MAAA,GAA4B,CAAC,EACnE,MAAA,EAAgB,WAAW;;CAI/B,KAAgB;AAGd,EAFA,MAAA,EAAgB,aAAa,EAC7B,KAAK,WAAW,OAAO,OAAO,QAAQ,EACtC,MAAA,GAAiC;;CAGnC,KAA6B;AAK3B,EAHE,MAAA,KACA,CAAC,MAAA,EAAa,YACd,CAAC,MAAA,EAAc,QAAO,MAAK,EAAE,EAAE,UAAU,MAAM,EAAE,UAAU,CAAC,MAAK,MAAK,EAAgB,EAAE,KAAK,KAAK,MAAM,MAAM,KAE9G,MAAA,EAAc,SAAQ,MAAM,EAAE,WAAW,GAAO,EAChD,MAAA,EAAoB,GAAG,EACvB,MAAA,EAAqB;GAAE,OAAO;GAAI,UAAU;GAAO,CAAC;;CAIxD,GAAe,GAAe;AAG5B,EAFA,KAAK,MAAM,QAAQ,GACnB,KAAK,MAAM,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,IAAM,CAAC,CAAC,EAC/D,KAAK,MAAM,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,IAAM,CAAC,CAAC;;CAGlE,GAAgB,GAAgD;EAC9D,IAAM,IAAQ,CAAC,GAAG,MAAA,GAAe;GAAE,OAAO;GAAI,UAAU;GAAwB,CAAC,CAAC,MAChF,MAAK,EAAE,UAAU,EAAO,MACzB;AAQD,EAPI,MAAO,EAAM,WAAW,EAAO,YAAY,OAE3C,MAAA,KAAgB,CAAC,MAAA,EAAa,aAChC,MAAA,EAAa,QAAQ,EAAO,QAG9B,MAAA,GAAc,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,IAAM,CAAC,CAAC,EAClE,MAAA,GAAc,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,IAAM,CAAC,CAAC;;CAGrE,KAAyB;AACvB,MAAI,MAAA,GAAc,YAAY,CAAC,KAAK,QAAQ;AAC1C,GAAI,MAAA,EAAa,gBAAgB,SAAS,KAExC,MAAA,EAA6B,MAAA,EAAY,uBAAuB,CAAC,MAAM;GAEzE,IAAM,IAAW,IAAI,gBAAe,MAAW,MAAA,EAA6B,EAAQ,GAAI,YAAY,MAAM,CAAC;AAE3G,GADA,MAAA,EAAgB,KAAK,EAAS,EAC9B,EAAS,QAAQ,MAAA,EAAY;;;CAIjC,GAAwB,GAAkB;AAExC,EAAI,MAAA,GAAc,YAAY,IAAW,MAAA,EAAa,uBAAuB,CAAC,QADtD,MAEtB,KAAK,WAAW,OAAO,IAAI,oBAAoB,GAE/C,KAAK,WAAW,OAAO,OAAO,oBAAoB;;CAItD,KAAmB;AAEjB,EADA,MAAA,GAAqB,EACrB,KAAK,WAAY,iBAAiB,oBAAoB,MAAA,GAAqB,CAAC;;CAG9E,KAAiB;AACf,EAAI,MAAA,IACF,KAAK,WAAW,OAAO,IAAI,iBAAiB,GAE5C,KAAK,WAAW,OAAO,OAAO,iBAAiB;;;GA9flD,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,aAAA,KAAA,EAAA,KAGzC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,KAG1C,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAmB,CAAC,CAAA,EAAA,EAAA,WAAA,kBAAA,KAAA,EAAA,SAZ1E,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"combobox2.js","names":["#datalist","#_datalist","#select","#_select","#options","#items","#dropdown","#input","#tags","#hasAvailableOptions","#hasFooterContent","#showCreateItem","#findOptionMatch","#selectValue","#largeOptionsList","#isPristine","#onDropdownOpen","#closeListBox","#getOptionCheckbox","#characterAtIndexMatches","#onCreateItemClick","#onSlottedChildMutation","#setupSingleSelect","#setupMultipleSelect","#setupAutoCompleteKeyEvents","#setupMenuItemUpdateEvents","#setupOpenKeyEvents","#setupOverflowListener","#setupSlotStates","#setupLightDismiss","#observers","#setupInitialValue","#syncSelectValueStates","#syncOptionSelectedStates","#updateInputValue","#trackedOptions","#syncPending","#cleanupStaleTrackedOptions","#setInputValue","#setSelectValue","#dispatchCreate","#filterOptions","#openListBox","#validateSingleSelectValue","#updateMultipleOverflow","#setSlotStates"],"sources":["../../src/combobox/combobox.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, isServer, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport {\n createLightDismiss,\n focusElementTimeout,\n getDisplayValue,\n getElementUpdate,\n getPropertyChanges,\n scopedRegistry,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Checkbox } from '@nvidia-elements/core/checkbox';\nimport styles from './combobox.css?inline';\n\n/**\n * @element nve-combobox\n * @description An editable combobox with autocomplete behavior and selection support.\n * @since 0.17.0\n * @entrypoint \\@nvidia-elements/core/combobox\n * @slot - default slot for an input and a datalist/select element\n * @slot prefix-icon - slot for icon before the input\n * @slot footer - slot for dropdown footer content\n * @cssprop --scroll-height\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --border-color\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag - The tag element for selected items\n * @csspart dropdown - The dropdown popup element\n * @csspart menu - The menu element\n * @csspart menu-item - The menu item elements\n * @csspart checkbox - The checkbox element\n * @csspart icon - The icon element\n * @event scroll - Fires when the user scrolls the dropdown option list. Throttled to one dispatch per animation frame. `detail: { scrollTop, scrollHeight, clientHeight }`.\n * @event create - Fires when the user confirms a value that doesn't match any existing option and the `behavior-create` attribute exists. `detail: { value }`.\n * @csspart create-option - The menu item element for creating new options\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-autocomplete-list/\n */\n@scopedRegistry()\nexport class Combobox extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container: 'flat';\n\n /** Disable rendering of inline tags for many-item select */\n @property({ type: Boolean, reflect: true }) notags: boolean;\n\n /** Enable creation of new options when the input value doesn't match any existing option. Dispatches a `create` event with `{ value }` detail. */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-create' }) behaviorCreate: boolean;\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-combobox',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Checkbox.metadata.tag]: Checkbox,\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /**\n * If a <select> exists, on focus all options show by default.\n * If a <datalist> exists, on focus only options that match the current input value show.\n */\n\n #_datalist: HTMLSelectElement | null;\n get #datalist(): HTMLSelectElement | null {\n if (!this.#_datalist) {\n this.#_datalist = this.shadowRoot\n ? ((this.shadowRoot\n .querySelector('slot')\n ?.assignedElements({ flatten: true })\n ?.find(i => i.tagName === 'DATALIST' || i.tagName === 'SELECT') ??\n this.querySelector('datalist, select')) as HTMLSelectElement)\n : null;\n }\n return this.#_datalist;\n }\n\n #_select: HTMLSelectElement | null;\n get #select(): HTMLSelectElement | null {\n if (!this.#_select) {\n this.#_select = this.shadowRoot\n ? ((this.shadowRoot\n .querySelector('slot')\n ?.assignedElements({ flatten: true })\n ?.find(i => i.tagName === 'SELECT') ?? this.querySelector('select')) as HTMLSelectElement)\n : null;\n }\n return this.#_select;\n }\n\n get #options(): HTMLOptionElement[] {\n return Array.from(this.#datalist?.options ? this.#datalist.options : []);\n }\n\n get #items() {\n return Array.from(this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag));\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #hasAvailableOptions() {\n return this.#options.find(o => !o.disabled && !o.hidden);\n }\n\n get #hasFooterContent() {\n return !!this.querySelector('[slot=\"footer\"]');\n }\n\n get #showCreateItem(): boolean {\n if (!this.behaviorCreate || this.input?.disabled) return false;\n const value = this.input?.value.trim();\n if (!value) return false;\n return !this.#findOptionMatch(value);\n }\n\n #findOptionMatch(value: string): HTMLOptionElement | undefined {\n const lower = value.toLowerCase();\n return this.#options.find(o => {\n const display = o.textContent!.trim() || o.value;\n return display.toLowerCase() === lower || o.value.toLowerCase() === lower;\n });\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n #syncPending = false;\n\n protected _associateDatalist = false;\n\n protected get prefixContent() {\n return this.#select?.multiple && !this.notags\n ? html`\n <div class=\"tags-label\" aria-hidden=\"true\">${this.#select.selectedOptions.length} ${this.i18n.selected}</div>\n <div class=\"tags\">\n ${Array.from<HTMLOptionElement>(this.#select.selectedOptions).map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o)}>${getDisplayValue(o)}</nve-tag>`\n )}\n </div>`\n : html`<slot name=\"prefix-icon\"></slot>`;\n }\n\n get #largeOptionsList() {\n return (this.#datalist?.options?.length ?? 0) > 50;\n }\n\n get #isPristine() {\n return !this._internals.states.has('dirty');\n }\n\n protected get suffixContent() {\n if (isServer) return nothing;\n const options = this.#options;\n const largeOptionsList = this.#largeOptionsList;\n const isPristine = this.#isPristine;\n const visibleOptions = options.filter(o => !o.hidden).filter(o => !(o.value === '' && o.disabled));\n const hasNoResults = visibleOptions.filter(o => !o.disabled).length === 0;\n const showCreateItem = this.#showCreateItem;\n return html`\n <nve-dropdown part=\"dropdown\" .popoverType=${'manual'} .modal=${false} @open=${this.#onDropdownOpen} @close=${this.#closeListBox} hidden .anchor=${this.#input as HTMLElement} .trigger=${this.#input as HTMLElement} position=\"bottom\">\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${visibleOptions.map(\n o => html`\n <nve-menu-item part=\"menu-item\" .option=${getDisplayValue(o)} role=\"option\" @click=${() => this.#selectValue(o)} ?selected=${o.selected} aria-selected=${o.selected ? 'true' : 'false'} ?disabled=${o.disabled} aria-label=${getDisplayValue(o)}>\n ${this.#getOptionCheckbox(o)}\n ${largeOptionsList || isPristine ? getDisplayValue(o) : html`<span role=\"presentation\">${(o.label ? o.label : o.value)?.split('')?.map((c, ci) => html`<span ?matches=${this.#characterAtIndexMatches(c, ci)}>${c}</span>`)}</span>`}\n </nve-menu-item>`\n )}\n ${hasNoResults && !showCreateItem ? html`<nve-menu-item part=\"menu-item\" .value=${''} disabled>${this.i18n.noResults}</nve-menu-item>` : nothing}\n ${\n showCreateItem\n ? html`<nve-menu-item part=\"create-option\" role=\"button\" aria-label=${`${this.i18n.create} \"${this.input?.value.trim()}\"`} @click=${this.#onCreateItemClick}>\n <nve-icon part=\"icon\" name=\"add\" size=\"sm\"></nve-icon> \"${this.input?.value.trim()}\"\n </nve-menu-item>`\n : nothing\n }\n </nve-menu>\n <slot name=\"footer\"></slot>\n </nve-dropdown>`;\n }\n\n #getOptionCheckbox(o: HTMLOptionElement) {\n const select = this.#select;\n if (select?.multiple && this.#largeOptionsList) {\n return html`<input aria-hidden=\"true\" type=\"checkbox\" .checked=${o.selected} .disabled=${o.disabled} .name=${o.selected ? 'check' : undefined} />`;\n } else if (select?.multiple) {\n /* eslint-disable @nvidia-elements/lint/no-missing-control-label */\n return html`<nve-checkbox part=\"checkbox\"><input aria-hidden=\"true\" type=\"checkbox\" .checked=${o.selected} .disabled=${o.disabled} .name=${o.selected ? 'check' : undefined} /></nve-checkbox>`;\n } else if (select) {\n return html`<nve-icon part=\"icon\" name=\"check\" size=\"sm\"></nve-icon>`;\n } else {\n return nothing;\n }\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n this.shadowRoot!.addEventListener('slotchange', () => {\n this.#_datalist = null;\n this.#_select = null;\n this.#onSlottedChildMutation();\n });\n await this.updateComplete;\n this.#setupSingleSelect();\n this.#setupMultipleSelect();\n this.#setupAutoCompleteKeyEvents();\n this.#setupMenuItemUpdateEvents();\n this.#setupOpenKeyEvents();\n this.#setupOverflowListener();\n this.#setupSlotStates();\n await this.#setupLightDismiss();\n this.input.setAttribute('list', '');\n this.input.autocomplete = 'off';\n }\n\n connectedCallback() {\n super.connectedCallback();\n const observer = new MutationObserver(mutations => {\n if (mutations.some(m => m.type === 'childList' && m.target === this)) {\n this.#_datalist = null;\n this.#_select = null;\n }\n this.#onSlottedChildMutation();\n });\n observer.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['selected', 'disabled', 'value'],\n characterData: true\n });\n this.#observers.push(observer);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#observers.forEach(observer => observer.disconnect());\n }\n\n reset() {\n this.#dropdown!.hidePopover();\n if (this.#select) {\n this.#select.selectedIndex = -1;\n }\n super.reset();\n }\n\n /** Select all options provided */\n selectAll() {\n this.#options.forEach(o => (o.selected = true));\n this.requestUpdate();\n this.#select!.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select!.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #setupSingleSelect() {\n if (this.#select && !this.#select.multiple) {\n this.#setupInitialValue();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n }\n\n #setupMultipleSelect() {\n if (this.#select?.multiple) {\n this.#setupInitialValue();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n this._internals.states.add('multiple');\n }\n }\n\n #setupInitialValue() {\n const selected = Array.from(this.#select!.selectedOptions).find((o: HTMLOptionElement) =>\n o.hasAttribute('selected')\n );\n if (selected && !this.#select!.multiple && !this.input.defaultValue) {\n this.input.value = getDisplayValue(selected);\n }\n }\n\n #updateInputValue() {\n if (!this.#select!.multiple && !this.input.defaultValue) {\n this.input.value = getDisplayValue(\n Array.from(this.#select!.selectedOptions).find(o => o.value === this.#select!.value)!\n );\n }\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select!, 'value', () => {\n this.#updateInputValue();\n this.requestUpdate();\n })\n );\n }\n\n #trackedOptions = new Set<HTMLOptionElement>();\n #syncOptionSelectedStates() {\n this.#options.forEach(o => {\n if (!this.#trackedOptions.has(o)) {\n this.#trackedOptions.add(o);\n getPropertyChanges(o, 'selected', () => this.requestUpdate());\n }\n });\n }\n\n #onSlottedChildMutation() {\n if (!this.#syncPending) {\n this.#syncPending = true;\n queueMicrotask(() => {\n this.#syncPending = false;\n this.#cleanupStaleTrackedOptions();\n this.#syncOptionSelectedStates();\n this.requestUpdate();\n });\n }\n }\n\n #cleanupStaleTrackedOptions() {\n const currentOptions = new Set(this.#options);\n for (const tracked of this.#trackedOptions) {\n if (!currentOptions.has(tracked)) {\n this.#trackedOptions.delete(tracked);\n }\n }\n }\n\n #onDropdownOpen(e: Event) {\n (e.target as HTMLElement).hidden = false;\n }\n\n #setupAutoCompleteKeyEvents() {\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n const value = this.input.value.trim();\n\n if (e.code === 'Tab') {\n if (this.#hasAvailableOptions && this.#dropdown!.matches(':popover-open') && value !== '') {\n e.preventDefault();\n // the menu item option property caches/stores the option value instead of value to prevent unnecessary lit lifecycle updates for each menu item\n this.#setInputValue((this.#items[0] as MenuItem & { option: string }).option);\n this.#setSelectValue(\n this.#options.find(\n o => (o.label ? o.label : o.value) === (this.#items[0] as MenuItem & { option: string }).option\n )!\n );\n }\n this.#dropdown!.hidePopover();\n }\n\n if (e.code === 'Enter' && this.behaviorCreate && !this.input.disabled && value) {\n const match = this.#findOptionMatch(value);\n if (match) {\n this.#selectValue(match);\n } else {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.#dispatchCreate();\n }\n }\n });\n }\n\n #setupMenuItemUpdateEvents() {\n this.input.addEventListener('input', () => this.#filterOptions());\n this.shadowRoot!.addEventListener('slotchange', () => this.#filterOptions());\n }\n\n async #setupLightDismiss() {\n const dropdown = this.#dropdown!;\n await dropdown.updateComplete;\n const options = {\n element: dropdown.shadowRoot!.querySelector<HTMLElement>('[internal-host]')!,\n focusElement: this.input\n };\n createLightDismiss(options, () => {\n if (this.#dropdown!.matches(':popover-open')) {\n this.#dropdown!.hidePopover();\n }\n });\n }\n\n #setupOpenKeyEvents() {\n this.input.addEventListener('pointerdown', () => {\n this.#openListBox();\n });\n\n this.addEventListener('keydown', (e: KeyboardEvent) => {\n if (e.code !== 'Tab' && e.code !== 'Escape') {\n this.#openListBox();\n }\n\n if (e?.code === 'ArrowDown' && (this.getRootNode() as ShadowRoot).activeElement === this.input) {\n this.#dropdown!.tabIndex = 0;\n this.#items[0]?.focus();\n e.preventDefault();\n }\n });\n }\n\n #selectValue(option: { selected?: boolean; label?: string; value?: string }) {\n if (!this.#select?.multiple) {\n this.#setInputValue(getDisplayValue(option));\n this.#dropdown!.hidePopover();\n focusElementTimeout(this.input);\n }\n\n if (this.#select) {\n option.selected = !option.selected;\n this.#setSelectValue(option);\n }\n\n this.requestUpdate();\n }\n\n #onCreateItemClick() {\n this.#dispatchCreate();\n }\n\n #dispatchCreate() {\n const value = this.input.value.trim();\n if (value) {\n this.dispatchEvent(new CustomEvent('create', { detail: { value }, bubbles: true, composed: true }));\n this.input.value = '';\n this.#dropdown!.hidePopover();\n focusElementTimeout(this.input);\n this.requestUpdate();\n }\n }\n\n #characterAtIndexMatches(character: string, index: number) {\n if (this.#hasAvailableOptions) {\n return this.input.value.toLowerCase()[index]?.toLowerCase() === character.toLowerCase();\n }\n return false;\n }\n\n #filterOptions() {\n this.#options.forEach(option => {\n const hasLabel = option.textContent!.trim().length;\n if (hasLabel) {\n const matchesLabel = option.textContent!.toLocaleLowerCase().includes(this.input?.value.toLowerCase());\n option.hidden = !matchesLabel;\n } else {\n const matchesValue = option.value.toLocaleLowerCase().includes(this.input?.value.toLowerCase());\n option.hidden = !matchesValue;\n }\n });\n this.requestUpdate();\n }\n\n #openListBox() {\n if (!this.input.disabled && !this.#dropdown!.matches(':popover-open')) {\n if (this.#select) {\n this.#options.forEach(option => (option.hidden = false));\n this.requestUpdate();\n } else {\n this.#filterOptions();\n }\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n // explicitly provide source as the performance optimizations in the suffixContent getter prevent the dropdown from setting its anchor/trigger reliably\n this.#dropdown!.showPopover({ source: this.#input as HTMLElement });\n this.#dropdown!.tabIndex = -1;\n }\n }\n\n #closeListBox() {\n this.#dropdown!.hidePopover();\n this._internals.states.delete('dirty');\n this.#validateSingleSelectValue();\n }\n\n #validateSingleSelectValue() {\n const invalidInputValue =\n this.#select &&\n !this.#select.multiple &&\n !this.#options.filter(o => !(o.value === '' && o.disabled)).find(o => getDisplayValue(o) === this.input.value);\n if (invalidInputValue) {\n this.#options.forEach(o => (o.selected = false));\n this.#setInputValue('');\n this.#setSelectValue({ value: '', selected: false });\n }\n }\n\n #setInputValue(value: string) {\n this.input.value = value;\n this.input.dispatchEvent(new Event('input', { bubbles: true }));\n this.input.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #setSelectValue(option: { value?: string; selected?: boolean }) {\n const found = [...this.#options, { value: '', selected: null as boolean | null }].find(\n o => o.value === option.value\n );\n if (found) found.selected = option.selected ?? null;\n\n if (this.#select && !this.#select.multiple) {\n this.#select.value = option.value!;\n }\n\n this.#select?.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select?.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n #setupOverflowListener() {\n if (this.#select?.multiple && !this.notags) {\n if (this.#select.selectedOptions.length > 1) {\n // only calculate initial overflow if many tags exist\n this.#updateMultipleOverflow(this.#tags!.getBoundingClientRect().width);\n }\n const observer = new ResizeObserver(entries => this.#updateMultipleOverflow(entries[0]!.contentRect.width));\n this.#observers.push(observer);\n observer.observe(this.#tags!);\n }\n }\n\n #updateMultipleOverflow(tagWidth: number) {\n const INPUT_MIN_WIDTH = 100;\n if (this.#select?.multiple && tagWidth > this.#input!.getBoundingClientRect().width - INPUT_MIN_WIDTH) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n\n #setupSlotStates() {\n this.#setSlotStates();\n this.shadowRoot!.addEventListener('slotchange', () => this.#setSlotStates());\n }\n\n #setSlotStates() {\n if (this.#hasFooterContent) {\n this._internals.states.add('footer-content');\n } else {\n this._internals.states.delete('footer-content');\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/combobox/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Combobox } from '@nvidia-elements/core/combobox';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Combobox);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-combobox': Combobox;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,EAAS,EAChB,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/combobox/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Combobox } from '@nvidia-elements/core/combobox';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Combobox);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-combobox': Combobox;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,CAAQ,GACf,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -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.130.0/helpers/decorate.js";
2
2
  import { I18nController as t } from "../internal/controllers/i18n.controller.js";
3
3
  import { scopedRegistry as n } from "../internal/decorators/scoped-registry.js";
4
4
  import { useStyles as r } from "../internal/styles/index.js";
@@ -13,16 +13,26 @@ import { state as f } from "lit/decorators/state.js";
13
13
  //#region src/copy-button/copy-button.ts
14
14
  var p = class extends a {
15
15
  constructor(...e) {
16
- super(...e), this.copied = !1, this.showToast = !1, this.showTooltip = !1, this.i18n = this.#e.i18n;
16
+ super(...e), this.copied = !1, this.showToast = !1, this.showTooltip = !1, this.#e = new t(this), this.i18n = this.#e.i18n, this.#t = () => {
17
+ this.behaviorCopy && navigator.clipboard.writeText(this.value).then(() => {
18
+ this.showToast = !0, this.copied = !0;
19
+ }).catch((e) => {
20
+ this.showToast = !1, console.error(e);
21
+ });
22
+ }, this.#r = () => {
23
+ this.showTooltip = !0;
24
+ }, this.#i = () => {
25
+ this.showTooltip = !1;
26
+ };
17
27
  }
18
- #e = new t(this);
28
+ #e;
19
29
  static {
20
30
  this.styles = r([...a.styles, c]);
21
31
  }
22
32
  static {
23
33
  this.metadata = {
24
34
  tag: "nve-copy-button",
25
- version: "0.1.0"
35
+ version: "0.1.2"
26
36
  };
27
37
  }
28
38
  static {
@@ -41,22 +51,12 @@ var p = class extends a {
41
51
  disconnectedCallback() {
42
52
  super.disconnectedCallback(), this.removeEventListener("click", this.#t), this.removeEventListener("mouseenter", this.#r), this.removeEventListener("mouseleave", this.#i);
43
53
  }
44
- #t = () => {
45
- this.behaviorCopy && navigator.clipboard.writeText(this.value).then(() => {
46
- this.showToast = !0, this.copied = !0;
47
- }).catch((e) => {
48
- this.showToast = !1, console.error(e);
49
- });
50
- };
54
+ #t;
51
55
  #n() {
52
56
  this.showToast = !1, this.copied = !1, this.showTooltip = !1;
53
57
  }
54
- #r = () => {
55
- this.showTooltip = !0;
56
- };
57
- #i = () => {
58
- this.showTooltip = !1;
59
- };
58
+ #r;
59
+ #i;
60
60
  };
61
61
  e([f()], p.prototype, "copied", void 0), e([f()], p.prototype, "showToast", void 0), e([f()], p.prototype, "showTooltip", void 0), e([d({ type: Object })], p.prototype, "i18n", void 0), e([d({
62
62
  type: Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button2.js","names":["#i18nController","#close","#copy","#openTooltip","#closeTooltip"],"sources":["../../src/copy-button/copy-button.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport { useStyles, I18nController, scopedRegistry } from '@nvidia-elements/core/internal';\nimport { Button } from '@nvidia-elements/core/button';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Toast } from '@nvidia-elements/core/toast';\nimport { Tooltip } from '@nvidia-elements/core/tooltip';\nimport styles from './copy-button.css?inline';\n\n/**\n * @element nve-copy-button\n * @description A copy button is a button that easily enables the copy to clipboard pattern.\n * @since 1.1.4\n * @entrypoint \\@nvidia-elements/core/copy-button\n * @slot - default\n * @slot icon - slot for custom icon\n * @cssprop --color\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --padding\n * @cssprop --height\n * @cssprop --min-width\n * @cssprop --font-size\n * @cssprop --line-height\n * @csspart icon - The icon element\n * @csspart toast - The toast notification element\n * @csspart tooltip - The tooltip element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/button/\n *\n */\n@scopedRegistry()\nexport class CopyButton extends Button {\n @state() private copied = false;\n\n @state() private showToast = false;\n\n @state() private showTooltip = false;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /**\n * Enables internal string values to update for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n /**\n * Determines if the copy button should auto write to clipboard by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-copy' }) behaviorCopy: boolean;\n\n /**\n * Defines the value that copies to the user clipboard. Use `aria-label` to set the tooltip hint.\n */\n @property({ type: String }) value: string;\n\n static styles = useStyles([...Button.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-copy-button',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Toast.metadata.tag]: Toast,\n [Tooltip.metadata.tag]: Tooltip\n };\n\n /* eslint-disable @nvidia-elements/lint/no-deprecated-popover-attributes */\n render() {\n return html`\n <div id=\"btn\" internal-host interaction-state focus-within>\n <slot></slot>\n ${\n this.copied\n ? html`<nve-icon part=\"icon\" name=\"check\" status=\"success\" .size=${this.size} aria-hidden=\"true\"></nve-icon>`\n : html`<slot name=\"icon\"><nve-icon part=\"icon\" name=\"copy\" .size=${this.size} aria-hidden=\"true\"></nve-icon></slot>`\n }\n </div>\n ${this.showToast ? html`<nve-toast part=\"toast\" @close=${this.#close} status=\"success\" anchor=\"btn\" trigger=\"btn\" position=\"top\" close-timeout=\"1500\">${this.i18n.copied}</nve-toast>` : nothing}\n ${this.showTooltip && !this.showToast ? html`<nve-tooltip part=\"tooltip\" exportparts=\"arrow:tooltip-arrow\" anchor=\"btn\" trigger=\"btn\">${this.ariaLabel ?? this.i18n.copy}</nve-tooltip>` : nothing}\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.#copy);\n this.addEventListener('mouseenter', this.#openTooltip);\n this.addEventListener('mouseleave', this.#closeTooltip);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.#copy);\n this.removeEventListener('mouseenter', this.#openTooltip);\n this.removeEventListener('mouseleave', this.#closeTooltip);\n }\n\n #copy = () => {\n if (this.behaviorCopy) {\n navigator.clipboard\n .writeText(this.value)\n .then(() => {\n this.showToast = true;\n this.copied = true;\n })\n .catch(err => {\n this.showToast = false;\n console.error(err);\n });\n }\n };\n\n #close() {\n this.showToast = false;\n this.copied = false;\n this.showTooltip = false;\n }\n\n #openTooltip = () => {\n this.showTooltip = true;\n };\n\n #closeTooltip = () => {\n this.showTooltip = false;\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAmCO,IAAA,IAAA,cAAyB,EAAO;;6BACX,qBAEG,uBAEE,gBAOI,MAAA,EAAqB;;CALxD,KAAwC,IAAI,EAAqB,KAAK;;gBAiBtD,EAAU,CAAC,GAAG,EAAO,QAAQ,EAAO,CAAC;;;kBAE1B;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B;IACzB,EAAK,SAAS,MAAM;IACpB,EAAM,SAAS,MAAM;IACrB,EAAQ,SAAS,MAAM;GACzB;;CAGD,SAAS;AACP,SAAO,CAAI,2EAIL,KAAK,SACD,CAAI,8DAA6D,KAAK,KAAK,oCAC3E,CAAI,8DAA6D,KAAK,KAAK,yCAChF,QAEF,KAAK,YAAY,CAAI,mCAAkC,MAAA,EAAY,oFAAmF,KAAK,KAAK,OAAO,gBAAgB,EAAQ,GAC/L,KAAK,eAAe,CAAC,KAAK,YAAY,CAAI,4FAA4F,KAAK,aAAa,KAAK,KAAK,KAAK,kBAAkB;;CAI9L,oBAAoB;AAIlB,EAHA,MAAM,mBAAmB,EACzB,KAAK,iBAAiB,SAAS,MAAA,EAAW,EAC1C,KAAK,iBAAiB,cAAc,MAAA,EAAkB,EACtD,KAAK,iBAAiB,cAAc,MAAA,EAAmB;;CAGzD,uBAAuB;AAIrB,EAHA,MAAM,sBAAsB,EAC5B,KAAK,oBAAoB,SAAS,MAAA,EAAW,EAC7C,KAAK,oBAAoB,cAAc,MAAA,EAAkB,EACzD,KAAK,oBAAoB,cAAc,MAAA,EAAmB;;CAG5D,WAAc;AACZ,EAAI,KAAK,gBACP,UAAU,UACP,UAAU,KAAK,MAAM,CACrB,WAAW;AAEV,GADA,KAAK,YAAY,IACjB,KAAK,SAAS;IACd,CACD,OAAM,MAAO;AAEZ,GADA,KAAK,YAAY,IACjB,QAAQ,MAAM,EAAI;IAClB;;CAIR,KAAS;AAGP,EAFA,KAAK,YAAY,IACjB,KAAK,SAAS,IACd,KAAK,cAAc;;CAGrB,WAAqB;AACnB,OAAK,cAAc;;CAGrB,WAAsB;AACpB,OAAK,cAAc;;;GA5FpB,GAAO,CAAA,EAAA,EAAA,WAAA,UAAA,KAAA,EAAA,KAEP,GAAO,CAAA,EAAA,EAAA,WAAA,aAAA,KAAA,EAAA,KAEP,GAAO,CAAA,EAAA,EAAA,WAAA,eAAA,KAAA,EAAA,KAOP,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,QAAA,KAAA,EAAA,KAK1B,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;CAAiB,CAAC,CAAA,EAAA,EAAA,WAAA,gBAAA,KAAA,EAAA,KAKtE,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,SAvB5B,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"copy-button2.js","names":["#i18nController","#close","#copy","#openTooltip","#closeTooltip"],"sources":["../../src/copy-button/copy-button.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport { useStyles, I18nController, scopedRegistry } from '@nvidia-elements/core/internal';\nimport { Button } from '@nvidia-elements/core/button';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Toast } from '@nvidia-elements/core/toast';\nimport { Tooltip } from '@nvidia-elements/core/tooltip';\nimport styles from './copy-button.css?inline';\n\n/**\n * @element nve-copy-button\n * @description A copy button is a button that easily enables the copy to clipboard pattern.\n * @since 1.1.4\n * @entrypoint \\@nvidia-elements/core/copy-button\n * @slot - default\n * @slot icon - slot for custom icon\n * @cssprop --color\n * @cssprop --background\n * @cssprop --border-radius\n * @cssprop --padding\n * @cssprop --height\n * @cssprop --min-width\n * @cssprop --font-size\n * @cssprop --line-height\n * @csspart icon - The icon element\n * @csspart toast - The toast notification element\n * @csspart tooltip - The tooltip element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/button/\n *\n */\n@scopedRegistry()\nexport class CopyButton extends Button {\n @state() private copied = false;\n\n @state() private showToast = false;\n\n @state() private showTooltip = false;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /**\n * Enables internal string values to update for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n /**\n * Determines if the copy button should auto write to clipboard by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-copy' }) behaviorCopy: boolean;\n\n /**\n * Defines the value that copies to the user clipboard. Use `aria-label` to set the tooltip hint.\n */\n @property({ type: String }) value: string;\n\n static styles = useStyles([...Button.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-copy-button',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Toast.metadata.tag]: Toast,\n [Tooltip.metadata.tag]: Tooltip\n };\n\n /* eslint-disable @nvidia-elements/lint/no-deprecated-popover-attributes */\n render() {\n return html`\n <div id=\"btn\" internal-host interaction-state focus-within>\n <slot></slot>\n ${\n this.copied\n ? html`<nve-icon part=\"icon\" name=\"check\" status=\"success\" .size=${this.size} aria-hidden=\"true\"></nve-icon>`\n : html`<slot name=\"icon\"><nve-icon part=\"icon\" name=\"copy\" .size=${this.size} aria-hidden=\"true\"></nve-icon></slot>`\n }\n </div>\n ${this.showToast ? html`<nve-toast part=\"toast\" @close=${this.#close} status=\"success\" anchor=\"btn\" trigger=\"btn\" position=\"top\" close-timeout=\"1500\">${this.i18n.copied}</nve-toast>` : nothing}\n ${this.showTooltip && !this.showToast ? html`<nve-tooltip part=\"tooltip\" exportparts=\"arrow:tooltip-arrow\" anchor=\"btn\" trigger=\"btn\">${this.ariaLabel ?? this.i18n.copy}</nve-tooltip>` : nothing}\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.#copy);\n this.addEventListener('mouseenter', this.#openTooltip);\n this.addEventListener('mouseleave', this.#closeTooltip);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.#copy);\n this.removeEventListener('mouseenter', this.#openTooltip);\n this.removeEventListener('mouseleave', this.#closeTooltip);\n }\n\n #copy = () => {\n if (this.behaviorCopy) {\n navigator.clipboard\n .writeText(this.value)\n .then(() => {\n this.showToast = true;\n this.copied = true;\n })\n .catch(err => {\n this.showToast = false;\n console.error(err);\n });\n }\n };\n\n #close() {\n this.showToast = false;\n this.copied = false;\n this.showTooltip = false;\n }\n\n #openTooltip = () => {\n this.showTooltip = true;\n };\n\n #closeTooltip = () => {\n this.showTooltip = false;\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAmCO,IAAA,IAAA,cAAyB,EAAO;;6BACX,qBAEG,uBAEE,cAES,IAAI,EAAqB,IAAI,eAKlC,KAAKA,GAAgB,sBAuD1C;GACZ,AAAI,KAAK,gBACP,UAAU,UACP,UAAU,KAAK,KAAK,EACpB,WAAW;IAEV,AADA,KAAK,YAAY,IACjB,KAAK,SAAS;GAChB,CAAC,EACA,OAAM,MAAO;IAEZ,AADA,KAAK,YAAY,IACjB,QAAQ,MAAM,CAAG;GACnB,CAAC;EAEP,mBAQqB;GACnB,KAAK,cAAc;EACrB,mBAEsB;GACpB,KAAK,cAAc;EACrB;;CAvFA;;gBAiBgB,EAAU,CAAC,GAAG,EAAO,QAAQ,CAAM,CAAC;;;kBAEzB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B;IACzB,EAAK,SAAS,MAAM;IACpB,EAAM,SAAS,MAAM;IACrB,EAAQ,SAAS,MAAM;EAC1B;;CAGA,SAAS;EACP,OAAO,CAAI,2EAIL,KAAK,SACD,CAAI,8DAA6D,KAAK,KAAK,oCAC3E,CAAI,8DAA6D,KAAK,KAAK,yCAChF,QAEF,KAAK,YAAY,CAAI,mCAAkC,KAAKC,GAAO,oFAAmF,KAAK,KAAK,OAAO,gBAAgB,EAAQ,GAC/L,KAAK,eAAe,CAAC,KAAK,YAAY,CAAI,4FAA4F,KAAK,aAAa,KAAK,KAAK,KAAK,kBAAkB;CAE9L;CAEA,oBAAoB;EAIlB,AAHA,MAAM,kBAAkB,GACxB,KAAK,iBAAiB,SAAS,KAAKC,EAAK,GACzC,KAAK,iBAAiB,cAAc,KAAKC,EAAY,GACrD,KAAK,iBAAiB,cAAc,KAAKC,EAAa;CACxD;CAEA,uBAAuB;EAIrB,AAHA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,SAAS,KAAKF,EAAK,GAC5C,KAAK,oBAAoB,cAAc,KAAKC,EAAY,GACxD,KAAK,oBAAoB,cAAc,KAAKC,EAAa;CAC3D;CAEA;CAeA,KAAS;EAGP,AAFA,KAAK,YAAY,IACjB,KAAK,SAAS,IACd,KAAK,cAAc;CACrB;CAEA;CAIA;AAGF;GA9FG,EAAM,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAEN,EAAM,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAEN,EAAM,CAAA,GAAA,EAAA,WAAA,eAAA,KAAA,CAAA,MAON,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAKzB,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAgB,CAAC,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,MAKrE,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,UAvB3B,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/copy-button/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { CopyButton } from '@nvidia-elements/core/copy-button';\n\ndefine(CopyButton);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-copy-button': CopyButton;\n }\n}\n"],"mappings":";;;AAMA,EAAO,EAAW"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/copy-button/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { CopyButton } from '@nvidia-elements/core/copy-button';\n\ndefine(CopyButton);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-copy-button': CopyButton;\n }\n}\n"],"mappings":";;;AAMA,EAAO,CAAU"}
@@ -19530,10 +19530,8 @@
19530
19530
  {
19531
19531
  "name": "initalLayout",
19532
19532
  "type": {
19533
- "text": "'vertical' | 'vertical-inline' | 'horizontal' | 'horizontal-inline'",
19534
- "_sourceAliases": [
19535
- "ControlLayouts"
19536
- ]
19533
+ "text": "ControlLayouts",
19534
+ "_sourceAliases": []
19537
19535
  }
19538
19536
  }
19539
19537
  ]
@@ -19648,19 +19646,6 @@
19648
19646
  ],
19649
19647
  "description": "Adds control group interaction states to custom element\n:state(disabled) any form control within group is in a disabled state"
19650
19648
  },
19651
- {
19652
- "kind": "function",
19653
- "name": "toggleControlGroupDisabledState",
19654
- "parameters": [
19655
- {
19656
- "name": "controlGroup",
19657
- "type": {
19658
- "text": "ControlGroup",
19659
- "_sourceAliases": []
19660
- }
19661
- }
19662
- ]
19663
- },
19664
19649
  {
19665
19650
  "kind": "function",
19666
19651
  "name": "setupControlStatusStates",
@@ -19802,14 +19787,6 @@
19802
19787
  "module": "/src/forms/utils/states.js"
19803
19788
  }
19804
19789
  },
19805
- {
19806
- "kind": "js",
19807
- "name": "toggleControlGroupDisabledState",
19808
- "declaration": {
19809
- "name": "toggleControlGroupDisabledState",
19810
- "module": "/src/forms/utils/states.js"
19811
- }
19812
- },
19813
19790
  {
19814
19791
  "kind": "js",
19815
19792
  "name": "setupControlStatusStates",
@@ -33011,10 +32988,6 @@
33011
32988
  {
33012
32989
  "kind": "function",
33013
32990
  "name": "getDuplicatePackageGlobalVersionWarning"
33014
- },
33015
- {
33016
- "kind": "function",
33017
- "name": "getEsmHostedWarning"
33018
32991
  }
33019
32992
  ],
33020
32993
  "exports": [
@@ -33089,14 +33062,6 @@
33089
33062
  "name": "getDuplicatePackageGlobalVersionWarning",
33090
33063
  "module": "/src/internal/utils/audit-logs.js"
33091
33064
  }
33092
- },
33093
- {
33094
- "kind": "js",
33095
- "name": "getEsmHostedWarning",
33096
- "declaration": {
33097
- "name": "getEsmHostedWarning",
33098
- "module": "/src/internal/utils/audit-logs.js"
33099
- }
33100
33065
  }
33101
33066
  ]
33102
33067
  },
@@ -48780,14 +48745,6 @@
48780
48745
  },
48781
48746
  "default": "100"
48782
48747
  },
48783
- {
48784
- "kind": "variable",
48785
- "name": "DEFAULT_INTERVAL_LENGTH_EM",
48786
- "type": {
48787
- "text": "number"
48788
- },
48789
- "default": "0.6"
48790
- },
48791
48748
  {
48792
48749
  "kind": "function",
48793
48750
  "name": "toValidData",
@@ -49114,14 +49071,6 @@
49114
49071
  "module": "/src/sparkline/sparkline.utils.js"
49115
49072
  }
49116
49073
  },
49117
- {
49118
- "kind": "js",
49119
- "name": "DEFAULT_INTERVAL_LENGTH_EM",
49120
- "declaration": {
49121
- "name": "DEFAULT_INTERVAL_LENGTH_EM",
49122
- "module": "/src/sparkline/sparkline.utils.js"
49123
- }
49124
- },
49125
49074
  {
49126
49075
  "kind": "js",
49127
49076
  "name": "toValidData",
@@ -71,24 +71,6 @@
71
71
  "description": "Basic inline search",
72
72
  "body": "<nve-search>\n <input type=\"search\" aria-label=\"${2:search}\" placeholder=\"${3:search}\">\n</nve-search>\n"
73
73
  },
74
- "Page Header": {
75
- "srcFile": "page-header.snippets.html",
76
- "prefix": [
77
- "page-header"
78
- ],
79
- "type": "pattern",
80
- "description": "Basic page-header layout.",
81
- "body": "<nve-page-header slot=\"header\">\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\">${1:NVIDIA}</h2>\n</nve-page-header>\n"
82
- },
83
- "Page Header with Links": {
84
- "srcFile": "page-header.snippets.html",
85
- "prefix": [
86
- "page-header-with-links"
87
- ],
88
- "type": "pattern",
89
- "description": "Basic page-header layout with links.",
90
- "body": "<nve-page-header slot=\"header\">\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\">${1:NVIDIA}</h2>\n <nve-button selected container=\"flat\"><a href=\"#\">${2:Link 1}</a></nve-button>\n <nve-button container=\"flat\"><a href=\"#\">${3:Link 2}</a></nve-button>\n</nve-page-header>\n"
91
- },
92
74
  "Page": {
93
75
  "srcFile": "page.snippets.html",
94
76
  "prefix": [
@@ -134,6 +116,24 @@
134
116
  "description": "Basic page subheader using toolbar.",
135
117
  "body": "<nve-toolbar slot=\"subheader\">\n <h2 nve-text=\"emphasis heading sm\">${1:Subheader}</h2>\n</nve-toolbar>\n"
136
118
  },
119
+ "Page Header": {
120
+ "srcFile": "page-header.snippets.html",
121
+ "prefix": [
122
+ "page-header"
123
+ ],
124
+ "type": "pattern",
125
+ "description": "Basic page-header layout.",
126
+ "body": "<nve-page-header slot=\"header\">\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\">${1:NVIDIA}</h2>\n</nve-page-header>\n"
127
+ },
128
+ "Page Header with Links": {
129
+ "srcFile": "page-header.snippets.html",
130
+ "prefix": [
131
+ "page-header-with-links"
132
+ ],
133
+ "type": "pattern",
134
+ "description": "Basic page-header layout with links.",
135
+ "body": "<nve-page-header slot=\"header\">\n <nve-logo slot=\"prefix\" size=\"sm\">NV</nve-logo>\n <h2 slot=\"prefix\">${1:NVIDIA}</h2>\n <nve-button selected container=\"flat\"><a href=\"#\">${2:Link 1}</a></nve-button>\n <nve-button container=\"flat\"><a href=\"#\">${3:Link 2}</a></nve-button>\n</nve-page-header>\n"
136
+ },
137
137
  "Input Group": {
138
138
  "srcFile": "input.snippets.html",
139
139
  "prefix": [
@@ -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.130.0/helpers/decorate.js";
2
2
  import { scopedRegistry as t } from "../internal/decorators/scoped-registry.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import { Control as r } from "../forms/control/control2.js";
@@ -19,7 +19,7 @@ var l = class extends r {
19
19
  static {
20
20
  this.metadata = {
21
21
  tag: "nve-date",
22
- version: "0.1.0"
22
+ version: "0.1.2"
23
23
  };
24
24
  }
25
25
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"date2.js","names":[],"sources":["../../src/date/date.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './date.css?inline';\n\n/**\n * @element nve-date\n * @description A date picker is a control that enables users to choose a date value.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/date\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --max-width\n * @cssprop --min-width\n * @csspart icon-button - The calendar icon button element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\n */\n@scopedRegistry()\nexport class Date extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-date',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n protected get suffixContent() {\n return html`<nve-icon-button part=\"icon-button\" .ariaLabel=${this.i18n.expand} icon-name=\"calendar\" container=\"inline\" @click=${this.showPicker}></nve-icon-button>`;\n }\n}\n"],"mappings":";;;;;;;;;;AAkCO,IAAA,IAAA,cAAmB,EAAoC;;gBAO5C,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;GAAO,CAAC;;;kBAExC;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B,GACzB,EAAW,SAAS,MAAM,GAC5B;;CAED,IAAc,gBAAgB;AAC5B,SAAO,CAAI,mDAAkD,KAAK,KAAK,OAAO,oDAAkD,KAAK,WAAW;;;GAdjJ,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,aAAA,KAAA,EAAA,SAN3C,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"date2.js","names":[],"sources":["../../src/date/date.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './date.css?inline';\n\n/**\n * @element nve-date\n * @description A date picker is a control that enables users to choose a date value.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/date\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --max-width\n * @cssprop --min-width\n * @csspart icon-button - The calendar icon button element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\n */\n@scopedRegistry()\nexport class Date extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-date',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n protected get suffixContent() {\n return html`<nve-icon-button part=\"icon-button\" .ariaLabel=${this.i18n.expand} icon-name=\"calendar\" container=\"inline\" @click=${this.showPicker}></nve-icon-button>`;\n }\n}\n"],"mappings":";;;;;;;;;;AAkCO,IAAA,IAAA,cAAmB,EAAoC;;gBAO5C,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;EAAM,CAAC;;;kBAEvC;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAEA,IAAc,gBAAgB;EAC5B,OAAO,CAAI,mDAAkD,KAAK,KAAK,OAAO,oDAAkD,KAAK,WAAW;CAClJ;AACF;GAhBG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,UAN1C,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/date/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Date } from '@nvidia-elements/core/date';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Date);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-date': Date;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,EAAK,EACZ,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/date/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Date } from '@nvidia-elements/core/date';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Date);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-date': Date;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,CAAI,GACX,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -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.130.0/helpers/decorate.js";
2
2
  import { scopedRegistry as t } from "../internal/decorators/scoped-registry.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import { Control as r } from "../forms/control/control2.js";
@@ -19,7 +19,7 @@ var l = class extends r {
19
19
  static {
20
20
  this.metadata = {
21
21
  tag: "nve-datetime",
22
- version: "0.1.0"
22
+ version: "0.1.2"
23
23
  };
24
24
  }
25
25
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"datetime2.js","names":[],"sources":["../../src/datetime/datetime.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './datetime.css?inline';\n\n/**\n * @element nve-datetime\n * @description A datetime picker is a control that enables users to choose a datetime value.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/datetime\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --max-width\n * @cssprop --min-width\n * @csspart icon-button - The calendar icon button element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local\n */\n@scopedRegistry()\nexport class Datetime extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-datetime',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n protected get suffixContent() {\n return html`<nve-icon-button part=\"icon-button\" .ariaLabel=${this.i18n.expand} icon-name=\"calendar\" container=\"inline\" @click=${this.showPicker}></nve-icon-button>`;\n }\n}\n"],"mappings":";;;;;;;;;;AAkCO,IAAA,IAAA,cAAuB,EAAoC;;gBAOhD,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;GAAO,CAAC;;;kBAExC;GACzB,KAAK;GACL,SAAS;GACV;;;4BAE2B,GACzB,EAAW,SAAS,MAAM,GAC5B;;CAED,IAAc,gBAAgB;AAC5B,SAAO,CAAI,mDAAkD,KAAK,KAAK,OAAO,oDAAkD,KAAK,WAAW;;;GAdjJ,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,aAAA,KAAA,EAAA,SAN3C,GAAgB,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"datetime2.js","names":[],"sources":["../../src/datetime/datetime.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport { scopedRegistry, useStyles } from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { inputStyles } from '@nvidia-elements/core/input';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './datetime.css?inline';\n\n/**\n * @element nve-datetime\n * @description A datetime picker is a control that enables users to choose a datetime value.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/datetime\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --width\n * @cssprop --max-width\n * @cssprop --min-width\n * @csspart icon-button - The calendar icon button element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local\n */\n@scopedRegistry()\nexport class Datetime extends Control implements ContainerElement {\n /**\n * Reduces the visual container for a minimal borderless appearance while preserving whitespace bounds.\n * Use when embedding within another container such as a toolbar.\n */\n @property({ type: String, reflect: true }) container?: 'flat';\n\n static styles = useStyles([...Control.styles, inputStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-datetime',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n protected get suffixContent() {\n return html`<nve-icon-button part=\"icon-button\" .ariaLabel=${this.i18n.expand} icon-name=\"calendar\" container=\"inline\" @click=${this.showPicker}></nve-icon-button>`;\n }\n}\n"],"mappings":";;;;;;;;;;AAkCO,IAAA,IAAA,cAAuB,EAAoC;;gBAOhD,EAAU;GAAC,GAAG,EAAQ;GAAQ;GAAa;EAAM,CAAC;;;kBAEvC;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAEA,IAAc,gBAAgB;EAC5B,OAAO,CAAI,mDAAkD,KAAK,KAAK,OAAO,oDAAkD,KAAK,WAAW;CAClJ;AACF;GAhBG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,UAN1C,EAAe,CAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/datetime/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Datetime } from '@nvidia-elements/core/datetime';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Datetime);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-datetime': Datetime;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,EAAS,EAChB,EAAO,EAAQ,EACf,EAAO,EAAa,EACpB,EAAO,EAAe"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/datetime/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Datetime } from '@nvidia-elements/core/datetime';\nimport { Control, ControlGroup, ControlMessage } from '@nvidia-elements/core/forms';\n\ndefine(Datetime);\ndefine(Control);\ndefine(ControlGroup);\ndefine(ControlMessage);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-datetime': Datetime;\n }\n}\n"],"mappings":";;;;;AAOA,EAAO,CAAQ,GACf,EAAO,CAAO,GACd,EAAO,CAAY,GACnB,EAAO,CAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","names":[],"sources":["../../src/dialog/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Dialog, DialogHeader, DialogFooter } from '@nvidia-elements/core/dialog';\n\ndefine(Dialog);\ndefine(DialogHeader);\ndefine(DialogFooter);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-dialog': Dialog;\n 'nve-dialog-header': DialogHeader;\n 'nve-dialog-footer': DialogFooter;\n }\n}\n"],"mappings":";;;;AAMA,EAAO,EAAO,EACd,EAAO,EAAa,EACpB,EAAO,EAAa"}
1
+ {"version":3,"file":"define.js","names":[],"sources":["../../src/dialog/define.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { define } from '@nvidia-elements/core/internal';\nimport { Dialog, DialogHeader, DialogFooter } from '@nvidia-elements/core/dialog';\n\ndefine(Dialog);\ndefine(DialogHeader);\ndefine(DialogFooter);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nve-dialog': Dialog;\n 'nve-dialog-header': DialogHeader;\n 'nve-dialog-footer': DialogFooter;\n }\n}\n"],"mappings":";;;;AAMA,EAAO,CAAM,GACb,EAAO,CAAY,GACnB,EAAO,CAAY"}
@@ -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.130.0/helpers/decorate.js";
2
2
  import { audit as t } from "../internal/controllers/audit.controller.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import r from "./dialog-footer.js";
@@ -11,7 +11,7 @@ var o = class extends i {
11
11
  static {
12
12
  this.metadata = {
13
13
  tag: "nve-dialog-footer",
14
- version: "0.1.0",
14
+ version: "0.1.2",
15
15
  parents: ["nve-dialog"]
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-footer2.js","names":[],"sources":["../../src/dialog/dialog-footer.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 { audit, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './dialog-footer.css?inline';\n\n/**\n * @element nve-dialog-footer\n * @description Contains the action buttons and controls at the bottom of a dialog for confirming, canceling, or navigating.\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/dialog\n * @slot - default slot for the dialog footer\n * @cssprop --border-top\n * @cssprop --padding\n * @cssprop --gap\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@audit()\nexport class DialogFooter extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dialog-footer',\n version: '0.0.0',\n parents: ['nve-dialog']\n };\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.slot = 'footer';\n }\n}\n"],"mappings":";;;;;;AAmBO,IAAA,IAAA,cAA2B,EAAW;;gBAC3B,EAAU,CAAC,EAAO,CAAC;;;kBAER;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,aAAA;GACX;;CAED,SAAS;AACP,SAAO,CAAI;;CAOb,oBAAoB;AAElB,EADA,MAAM,mBAAmB,EACzB,KAAK,OAAO;;;OApBf,GAAO,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"dialog-footer2.js","names":[],"sources":["../../src/dialog/dialog-footer.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 { audit, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './dialog-footer.css?inline';\n\n/**\n * @element nve-dialog-footer\n * @description Contains the action buttons and controls at the bottom of a dialog for confirming, canceling, or navigating.\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/dialog\n * @slot - default slot for the dialog footer\n * @cssprop --border-top\n * @cssprop --padding\n * @cssprop --gap\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@audit()\nexport class DialogFooter extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dialog-footer',\n version: '0.0.0',\n parents: ['nve-dialog']\n };\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.slot = 'footer';\n }\n}\n"],"mappings":";;;;;;AAmBO,IAAA,IAAA,cAA2B,EAAW;;gBAC3B,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,YAAY;EACxB;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF;OAtBC,EAAM,CAAA,GAAA,CAAA"}
@@ -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.130.0/helpers/decorate.js";
2
2
  import { audit as t } from "../internal/controllers/audit.controller.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import r from "./dialog-header.js";
@@ -11,7 +11,7 @@ var o = class extends i {
11
11
  static {
12
12
  this.metadata = {
13
13
  tag: "nve-dialog-header",
14
- version: "0.1.0",
14
+ version: "0.1.2",
15
15
  parents: ["nve-dialog"]
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-header2.js","names":[],"sources":["../../src/dialog/dialog-header.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 { audit, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './dialog-header.css?inline';\n\n/**\n * @element nve-dialog-header\n * @description Displays the title and contextual information at the top of a dialog to orient users to the dialog's purpose.\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/dialog\n * @slot - default slot for the dialog header\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@audit()\nexport class DialogHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dialog-header',\n version: '0.0.0',\n parents: ['nve-dialog']\n };\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.slot = 'header';\n }\n}\n"],"mappings":";;;;;;AAkBO,IAAA,IAAA,cAA2B,EAAW;;gBAC3B,EAAU,CAAC,EAAO,CAAC;;;kBAER;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,aAAA;GACX;;CAED,SAAS;AACP,SAAO,CAAI;;CAOb,oBAAoB;AAElB,EADA,MAAM,mBAAmB,EACzB,KAAK,OAAO;;;OApBf,GAAO,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"dialog-header2.js","names":[],"sources":["../../src/dialog/dialog-header.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 { audit, useStyles } from '@nvidia-elements/core/internal';\nimport styles from './dialog-header.css?inline';\n\n/**\n * @element nve-dialog-header\n * @description Displays the title and contextual information at the top of a dialog to orient users to the dialog's purpose.\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/dialog\n * @slot - default slot for the dialog header\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@audit()\nexport class DialogHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dialog-header',\n version: '0.0.0',\n parents: ['nve-dialog']\n };\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.slot = 'header';\n }\n}\n"],"mappings":";;;;;;AAkBO,IAAA,IAAA,cAA2B,EAAW;;gBAC3B,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,YAAY;EACxB;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF;OAtBC,EAAM,CAAA,GAAA,CAAA"}
@@ -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.130.0/helpers/decorate.js";
4
4
  import { audit as r } from "../internal/controllers/audit.controller.js";
5
5
  import { I18nController as i } from "../internal/controllers/i18n.controller.js";
6
6
  import { TypeNativePopoverController as a } from "../internal/controllers/type-native-popover.controller.js";
@@ -15,9 +15,9 @@ import { property as m } from "lit/decorators/property.js";
15
15
  //#region src/dialog/dialog.ts
16
16
  var h = class extends f {
17
17
  constructor(...e) {
18
- super(...e), this.position = "center", this.alignment = "center", this.anchor = globalThis.document?.body, this.i18n = this.#e.i18n, this.typeNativePopoverController = new a(this);
18
+ super(...e), this.position = "center", this.alignment = "center", this.anchor = globalThis.document?.body, this.#e = new i(this), this.i18n = this.#e.i18n, this.typeNativePopoverController = new a(this);
19
19
  }
20
- #e = new i(this);
20
+ #e;
21
21
  get popoverType() {
22
22
  return this.modal ? "auto" : "manual";
23
23
  }
@@ -30,7 +30,7 @@ var h = class extends f {
30
30
  static {
31
31
  this.metadata = {
32
32
  tag: "nve-dialog",
33
- version: "0.1.0"
33
+ version: "0.1.2"
34
34
  };
35
35
  }
36
36
  static {