@nvidia-elements/core 2.0.4 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/decorate.js +2 -2
  3. package/dist/accordion/accordion.d.ts +17 -12
  4. package/dist/accordion/accordion2.js +5 -5
  5. package/dist/accordion/accordion2.js.map +1 -1
  6. package/dist/accordion/define.d.ts +1 -1
  7. package/dist/alert/alert-group.d.ts +6 -4
  8. package/dist/alert/alert-group2.js +2 -2
  9. package/dist/alert/alert-group2.js.map +1 -1
  10. package/dist/alert/alert.d.ts +7 -6
  11. package/dist/alert/alert2.js +2 -2
  12. package/dist/alert/alert2.js.map +1 -1
  13. package/dist/alert/define.d.ts +1 -1
  14. package/dist/avatar/avatar-group.d.ts +2 -2
  15. package/dist/avatar/avatar-group2.js +1 -1
  16. package/dist/avatar/avatar.d.ts +4 -3
  17. package/dist/avatar/avatar2.js +2 -2
  18. package/dist/avatar/avatar2.js.map +1 -1
  19. package/dist/avatar/define.d.ts +1 -1
  20. package/dist/badge/badge.d.ts +8 -6
  21. package/dist/badge/badge2.js +2 -2
  22. package/dist/badge/badge2.js.map +1 -1
  23. package/dist/badge/define.d.ts +1 -1
  24. package/dist/breadcrumb/breadcrumb.d.ts +5 -4
  25. package/dist/breadcrumb/breadcrumb2.js +2 -2
  26. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  27. package/dist/breadcrumb/define.d.ts +1 -1
  28. package/dist/bundle.d.ts +136 -67
  29. package/dist/bundles/index.d.ts +152 -0
  30. package/dist/bundles/index.js +4 -4
  31. package/dist/button/button.d.ts +5 -4
  32. package/dist/button/button2.js +2 -2
  33. package/dist/button/button2.js.map +1 -1
  34. package/dist/button/define.d.ts +1 -1
  35. package/dist/button-group/button-group.d.ts +6 -4
  36. package/dist/button-group/button-group2.js +2 -2
  37. package/dist/button-group/button-group2.js.map +1 -1
  38. package/dist/button-group/define.d.ts +1 -1
  39. package/dist/card/card.d.ts +13 -9
  40. package/dist/card/card2.js +5 -5
  41. package/dist/card/card2.js.map +1 -1
  42. package/dist/card/define.d.ts +1 -1
  43. package/dist/chat-message/chat-message.d.ts +4 -3
  44. package/dist/chat-message/chat-message2.js +2 -2
  45. package/dist/chat-message/chat-message2.js.map +1 -1
  46. package/dist/chat-message/define.d.ts +1 -1
  47. package/dist/checkbox/checkbox-group.d.ts +2 -2
  48. package/dist/checkbox/checkbox-group2.js +2 -2
  49. package/dist/checkbox/checkbox.d.ts +3 -2
  50. package/dist/checkbox/checkbox2.js +2 -2
  51. package/dist/checkbox/checkbox2.js.map +1 -1
  52. package/dist/checkbox/define.d.ts +1 -1
  53. package/dist/color/color.d.ts +6 -5
  54. package/dist/color/color2.js +2 -2
  55. package/dist/color/color2.js.map +1 -1
  56. package/dist/color/define.d.ts +1 -1
  57. package/dist/combobox/combobox.d.ts +13 -11
  58. package/dist/combobox/combobox2.js +2 -2
  59. package/dist/combobox/combobox2.js.map +1 -1
  60. package/dist/combobox/define.d.ts +1 -1
  61. package/dist/copy-button/copy-button.d.ts +8 -7
  62. package/dist/copy-button/copy-button2.js +2 -2
  63. package/dist/copy-button/copy-button2.js.map +1 -1
  64. package/dist/copy-button/define.d.ts +1 -1
  65. package/dist/custom-elements-jsx.d.ts +52 -0
  66. package/dist/custom-elements-vue.d.ts +52 -0
  67. package/dist/custom-elements.json +518 -1
  68. package/dist/data.html.json +388 -349
  69. package/dist/date/date.d.ts +6 -5
  70. package/dist/date/date2.js +2 -2
  71. package/dist/date/date2.js.map +1 -1
  72. package/dist/date/define.d.ts +1 -1
  73. package/dist/datetime/datetime.d.ts +6 -5
  74. package/dist/datetime/datetime2.js +2 -2
  75. package/dist/datetime/datetime2.js.map +1 -1
  76. package/dist/datetime/define.d.ts +1 -1
  77. package/dist/dialog/define.d.ts +1 -1
  78. package/dist/dialog/dialog-footer.d.ts +3 -2
  79. package/dist/dialog/dialog-footer2.js +2 -2
  80. package/dist/dialog/dialog-footer2.js.map +1 -1
  81. package/dist/dialog/dialog-header.d.ts +3 -2
  82. package/dist/dialog/dialog-header2.js +2 -2
  83. package/dist/dialog/dialog-header2.js.map +1 -1
  84. package/dist/dialog/dialog.d.ts +7 -5
  85. package/dist/dialog/dialog2.js +2 -2
  86. package/dist/dialog/dialog2.js.map +1 -1
  87. package/dist/divider/define.d.ts +1 -1
  88. package/dist/divider/divider.d.ts +5 -3
  89. package/dist/divider/divider2.js +2 -2
  90. package/dist/divider/divider2.js.map +1 -1
  91. package/dist/dot/define.d.ts +1 -1
  92. package/dist/dot/dot.d.ts +4 -3
  93. package/dist/dot/dot2.js +2 -2
  94. package/dist/dot/dot2.js.map +1 -1
  95. package/dist/drawer/define.d.ts +1 -1
  96. package/dist/drawer/drawer-content.d.ts +2 -2
  97. package/dist/drawer/drawer-content2.js +2 -2
  98. package/dist/drawer/drawer-footer.d.ts +3 -2
  99. package/dist/drawer/drawer-footer2.js +2 -2
  100. package/dist/drawer/drawer-footer2.js.map +1 -1
  101. package/dist/drawer/drawer-header.d.ts +3 -2
  102. package/dist/drawer/drawer-header2.js +2 -2
  103. package/dist/drawer/drawer-header2.js.map +1 -1
  104. package/dist/drawer/drawer.d.ts +7 -5
  105. package/dist/drawer/drawer2.js +2 -2
  106. package/dist/drawer/drawer2.js.map +1 -1
  107. package/dist/dropdown/define.d.ts +1 -1
  108. package/dist/dropdown/dropdown-footer.d.ts +3 -2
  109. package/dist/dropdown/dropdown-footer2.js +2 -2
  110. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  111. package/dist/dropdown/dropdown-header.d.ts +3 -2
  112. package/dist/dropdown/dropdown-header2.js +2 -2
  113. package/dist/dropdown/dropdown-header2.js.map +1 -1
  114. package/dist/dropdown/dropdown.d.ts +7 -5
  115. package/dist/dropdown/dropdown2.js +2 -2
  116. package/dist/dropdown/dropdown2.js.map +1 -1
  117. package/dist/dropdown-group/define.d.ts +1 -1
  118. package/dist/dropdown-group/dropdown-group.d.ts +4 -3
  119. package/dist/dropdown-group/dropdown-group.js +2 -2
  120. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  121. package/dist/dropzone/define.d.ts +1 -1
  122. package/dist/dropzone/dropzone.d.ts +13 -12
  123. package/dist/dropzone/dropzone.util.d.ts +1 -1
  124. package/dist/dropzone/dropzone.util.js.map +1 -1
  125. package/dist/dropzone/dropzone2.js +2 -2
  126. package/dist/dropzone/dropzone2.js.map +1 -1
  127. package/dist/file/define.d.ts +1 -1
  128. package/dist/file/file.d.ts +3 -2
  129. package/dist/file/file2.js +1 -1
  130. package/dist/file/file2.js.map +1 -1
  131. package/dist/format-datetime/define.d.ts +1 -1
  132. package/dist/format-datetime/format-datetime.d.ts +3 -2
  133. package/dist/format-datetime/format-datetime2.js +2 -2
  134. package/dist/format-datetime/format-datetime2.js.map +1 -1
  135. package/dist/format-number/define.d.ts +1 -1
  136. package/dist/format-number/format-number.d.ts +3 -2
  137. package/dist/format-number/format-number2.js +3 -3
  138. package/dist/format-number/format-number2.js.map +1 -1
  139. package/dist/format-relative-time/define.d.ts +1 -1
  140. package/dist/format-relative-time/format-relative-time.d.ts +3 -2
  141. package/dist/format-relative-time/format-relative-time2.js +2 -2
  142. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  143. package/dist/forms/control/control.d.ts +5 -3
  144. package/dist/forms/control/control2.js +2 -2
  145. package/dist/forms/control/control2.js.map +1 -1
  146. package/dist/forms/control-group/control-group.d.ts +5 -3
  147. package/dist/forms/control-group/control-group2.js +2 -2
  148. package/dist/forms/control-group/control-group2.js.map +1 -1
  149. package/dist/forms/control-message/control-message.d.ts +5 -4
  150. package/dist/forms/control-message/control-message2.js +2 -2
  151. package/dist/forms/control-message/control-message2.js.map +1 -1
  152. package/dist/forms/define.d.ts +1 -1
  153. package/dist/forms/utils/layout.d.ts +2 -2
  154. package/dist/forms/utils/layout.js +1 -1
  155. package/dist/forms/utils/layout.js.map +1 -1
  156. package/dist/forms/utils/states.d.ts +2 -2
  157. package/dist/forms/utils/states.js +1 -1
  158. package/dist/forms/utils/states.js.map +1 -1
  159. package/dist/gauge/define.d.ts +6 -0
  160. package/dist/gauge/define.js +7 -0
  161. package/dist/gauge/define.js.map +1 -0
  162. package/dist/gauge/gauge.d.ts +53 -0
  163. package/dist/gauge/gauge.examples.js +6 -0
  164. package/dist/gauge/gauge.examples.js.map +1 -0
  165. package/dist/gauge/gauge.examples.json +147 -0
  166. package/dist/gauge/gauge.js +6 -0
  167. package/dist/gauge/gauge.js.map +1 -0
  168. package/dist/gauge/gauge2.js +106 -0
  169. package/dist/gauge/gauge2.js.map +1 -0
  170. package/dist/gauge/index.d.ts +1 -0
  171. package/dist/gauge/index.js +2 -0
  172. package/dist/grid/cell/cell.d.ts +3 -2
  173. package/dist/grid/cell/cell2.js +1 -1
  174. package/dist/grid/cell/cell2.js.map +1 -1
  175. package/dist/grid/column/column.d.ts +5 -3
  176. package/dist/grid/column/column2.js +2 -2
  177. package/dist/grid/column/column2.js.map +1 -1
  178. package/dist/grid/define.d.ts +1 -1
  179. package/dist/grid/footer/footer.d.ts +2 -2
  180. package/dist/grid/footer/footer2.js +2 -2
  181. package/dist/grid/grid.d.ts +7 -5
  182. package/dist/grid/grid2.js +2 -2
  183. package/dist/grid/grid2.js.map +1 -1
  184. package/dist/grid/header/header.d.ts +5 -3
  185. package/dist/grid/header/header2.js +2 -2
  186. package/dist/grid/header/header2.js.map +1 -1
  187. package/dist/grid/placeholder/placeholder.d.ts +2 -2
  188. package/dist/grid/placeholder/placeholder2.js +1 -1
  189. package/dist/grid/row/row.d.ts +3 -2
  190. package/dist/grid/row/row2.js +2 -2
  191. package/dist/grid/row/row2.js.map +1 -1
  192. package/dist/icon/define.d.ts +1 -1
  193. package/dist/icon/icon.d.ts +7 -5
  194. package/dist/icon/icon2.js +3 -3
  195. package/dist/icon/icon2.js.map +1 -1
  196. package/dist/icon/icons.js.map +1 -1
  197. package/dist/icon-button/define.d.ts +1 -1
  198. package/dist/icon-button/icon-button.d.ts +7 -5
  199. package/dist/icon-button/icon-button2.js +2 -2
  200. package/dist/icon-button/icon-button2.js.map +1 -1
  201. package/dist/index.d.ts +1 -1
  202. package/dist/index.js +1 -1
  203. package/dist/input/define.d.ts +1 -1
  204. package/dist/input/input-group.d.ts +3 -2
  205. package/dist/input/input-group2.js +1 -1
  206. package/dist/input/input-group2.js.map +1 -1
  207. package/dist/input/input.d.ts +4 -3
  208. package/dist/input/input2.js +2 -2
  209. package/dist/input/input2.js.map +1 -1
  210. package/dist/internal/controllers/audit.controller.d.ts +1 -1
  211. package/dist/internal/controllers/i18n.controller.d.ts +3 -3
  212. package/dist/internal/controllers/i18n.controller.js +1 -1
  213. package/dist/internal/controllers/i18n.controller.js.map +1 -1
  214. package/dist/internal/controllers/keynav-grid.controller.d.ts +1 -1
  215. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  216. package/dist/internal/controllers/keynav-list.controller.d.ts +1 -1
  217. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  218. package/dist/internal/controllers/state-expanded.controller.d.ts +1 -1
  219. package/dist/internal/controllers/state-highlighted.controller.d.ts +1 -1
  220. package/dist/internal/controllers/state-scroll.controller.d.ts +1 -1
  221. package/dist/internal/controllers/state-selected.controller.d.ts +1 -1
  222. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  223. package/dist/internal/controllers/type-anchor.controller.d.ts +1 -1
  224. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  225. package/dist/internal/controllers/type-closable.controller.d.ts +1 -1
  226. package/dist/internal/controllers/type-expandable.controller.d.ts +1 -1
  227. package/dist/internal/controllers/type-native-popover.controller.d.ts +2 -2
  228. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  229. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  230. package/dist/internal/controllers/type-selectable.controller.d.ts +1 -1
  231. package/dist/internal/controllers/type-ssr.controller.d.ts +1 -1
  232. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  233. package/dist/internal/controllers/type-touch.controller.d.ts +2 -2
  234. package/dist/internal/controllers/type-touch.controller.js.map +1 -1
  235. package/dist/internal/decorators/host-attr.d.ts +2 -2
  236. package/dist/internal/services/global.service.d.ts +1 -1
  237. package/dist/internal/services/global.service.js +1 -1
  238. package/dist/internal/services/global.service.js.map +1 -1
  239. package/dist/internal/services/global.utils.js.map +1 -1
  240. package/dist/internal/services/i18n.service.js.map +1 -1
  241. package/dist/internal/services/transition.service.js.map +1 -1
  242. package/dist/internal/styles/index.d.ts +1 -1
  243. package/dist/internal/types/index.d.ts +3 -3
  244. package/dist/internal/utils/a11y.js.map +1 -1
  245. package/dist/internal/utils/audit-logs.js +1 -1
  246. package/dist/internal/utils/audit.js.map +1 -1
  247. package/dist/internal/utils/dom.d.ts +1 -1
  248. package/dist/internal/utils/dom.js +10 -10
  249. package/dist/internal/utils/dom.js.map +1 -1
  250. package/dist/internal/utils/focus.js.map +1 -1
  251. package/dist/internal/utils/objects.js.map +1 -1
  252. package/dist/internal/utils/strings.js +1 -1
  253. package/dist/internal/utils/strings.js.map +1 -1
  254. package/dist/logo/define.d.ts +1 -1
  255. package/dist/logo/logo.d.ts +4 -3
  256. package/dist/logo/logo2.js +2 -2
  257. package/dist/logo/logo2.js.map +1 -1
  258. package/dist/menu/define.d.ts +1 -1
  259. package/dist/menu/menu-item.d.ts +4 -3
  260. package/dist/menu/menu-item2.js +2 -2
  261. package/dist/menu/menu-item2.js.map +1 -1
  262. package/dist/menu/menu.d.ts +5 -4
  263. package/dist/menu/menu2.js +2 -2
  264. package/dist/menu/menu2.js.map +1 -1
  265. package/dist/month/define.d.ts +1 -1
  266. package/dist/month/month.d.ts +6 -5
  267. package/dist/month/month2.js +2 -2
  268. package/dist/month/month2.js.map +1 -1
  269. package/dist/notification/define.d.ts +1 -1
  270. package/dist/notification/notification-group.d.ts +5 -3
  271. package/dist/notification/notification-group2.js +2 -2
  272. package/dist/notification/notification-group2.js.map +1 -1
  273. package/dist/notification/notification.d.ts +10 -7
  274. package/dist/notification/notification2.js +2 -2
  275. package/dist/notification/notification2.js.map +1 -1
  276. package/dist/page/define.d.ts +1 -1
  277. package/dist/page/page-panel/page-panel-content.d.ts +3 -2
  278. package/dist/page/page-panel/page-panel-content2.js +1 -1
  279. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  280. package/dist/page/page-panel/page-panel-footer.d.ts +3 -2
  281. package/dist/page/page-panel/page-panel-footer2.js +2 -2
  282. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  283. package/dist/page/page-panel/page-panel-header.d.ts +3 -2
  284. package/dist/page/page-panel/page-panel-header2.js +2 -2
  285. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  286. package/dist/page/page-panel/page-panel.d.ts +5 -4
  287. package/dist/page/page-panel/page-panel2.js +2 -2
  288. package/dist/page/page-panel/page-panel2.js.map +1 -1
  289. package/dist/page/page.d.ts +3 -2
  290. package/dist/page/page2.js +2 -2
  291. package/dist/page/page2.js.map +1 -1
  292. package/dist/page-header/define.d.ts +1 -1
  293. package/dist/page-header/page-header.d.ts +3 -2
  294. package/dist/page-header/page-header2.js +1 -1
  295. package/dist/page-header/page-header2.js.map +1 -1
  296. package/dist/page-loader/define.d.ts +1 -1
  297. package/dist/page-loader/page-loader.d.ts +6 -4
  298. package/dist/page-loader/page-loader2.js +2 -2
  299. package/dist/page-loader/page-loader2.js.map +1 -1
  300. package/dist/pagination/define.d.ts +1 -1
  301. package/dist/pagination/pagination.d.ts +9 -8
  302. package/dist/pagination/pagination2.js +2 -2
  303. package/dist/pagination/pagination2.js.map +1 -1
  304. package/dist/panel/define.d.ts +1 -1
  305. package/dist/panel/panel.d.ts +14 -10
  306. package/dist/panel/panel2.js +5 -5
  307. package/dist/panel/panel2.js.map +1 -1
  308. package/dist/password/define.d.ts +1 -1
  309. package/dist/password/password.d.ts +6 -5
  310. package/dist/password/password2.js +2 -2
  311. package/dist/password/password2.js.map +1 -1
  312. package/dist/polyfills/custom-state-set.js.map +1 -1
  313. package/dist/polyfills/index.d.ts +13 -0
  314. package/dist/preferences-input/define.d.ts +1 -1
  315. package/dist/preferences-input/preferences-input.d.ts +14 -13
  316. package/dist/preferences-input/preferences-input2.js +2 -2
  317. package/dist/preferences-input/preferences-input2.js.map +1 -1
  318. package/dist/progress-bar/define.d.ts +1 -1
  319. package/dist/progress-bar/progress-bar.d.ts +4 -3
  320. package/dist/progress-bar/progress-bar2.js +2 -2
  321. package/dist/progress-bar/progress-bar2.js.map +1 -1
  322. package/dist/progress-ring/define.d.ts +1 -1
  323. package/dist/progress-ring/progress-ring.d.ts +8 -6
  324. package/dist/progress-ring/progress-ring2.js +4 -4
  325. package/dist/progress-ring/progress-ring2.js.map +1 -1
  326. package/dist/progressive-filter-chip/define.d.ts +1 -1
  327. package/dist/progressive-filter-chip/progressive-filter-chip.d.ts +8 -7
  328. package/dist/progressive-filter-chip/progressive-filter-chip2.js +2 -2
  329. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  330. package/dist/pulse/define.d.ts +1 -1
  331. package/dist/pulse/pulse.d.ts +5 -4
  332. package/dist/pulse/pulse2.js +2 -2
  333. package/dist/pulse/pulse2.js.map +1 -1
  334. package/dist/radio/define.d.ts +1 -1
  335. package/dist/radio/radio-group.d.ts +2 -2
  336. package/dist/radio/radio-group2.js +2 -2
  337. package/dist/radio/radio.d.ts +3 -2
  338. package/dist/radio/radio2.js +2 -2
  339. package/dist/radio/radio2.js.map +1 -1
  340. package/dist/range/define.d.ts +1 -1
  341. package/dist/range/range.d.ts +6 -4
  342. package/dist/range/range2.js +2 -2
  343. package/dist/range/range2.js.map +1 -1
  344. package/dist/resize-handle/define.d.ts +1 -1
  345. package/dist/resize-handle/resize-handle.d.ts +7 -6
  346. package/dist/resize-handle/resize-handle2.js +2 -2
  347. package/dist/resize-handle/resize-handle2.js.map +1 -1
  348. package/dist/search/define.d.ts +1 -1
  349. package/dist/search/search.d.ts +6 -5
  350. package/dist/search/search2.js +2 -2
  351. package/dist/search/search2.js.map +1 -1
  352. package/dist/select/define.d.ts +1 -1
  353. package/dist/select/select.d.ts +12 -10
  354. package/dist/select/select2.js +2 -2
  355. package/dist/select/select2.js.map +1 -1
  356. package/dist/skeleton/define.d.ts +1 -1
  357. package/dist/skeleton/skeleton.d.ts +4 -3
  358. package/dist/skeleton/skeleton2.js +2 -2
  359. package/dist/skeleton/skeleton2.js.map +1 -1
  360. package/dist/sort-button/define.d.ts +1 -1
  361. package/dist/sort-button/sort-button.d.ts +6 -5
  362. package/dist/sort-button/sort-button2.js +2 -2
  363. package/dist/sort-button/sort-button2.js.map +1 -1
  364. package/dist/sparkline/define.d.ts +1 -1
  365. package/dist/sparkline/sparkline.d.ts +6 -4
  366. package/dist/sparkline/sparkline.utils.d.ts +1 -1
  367. package/dist/sparkline/sparkline.utils.js.map +1 -1
  368. package/dist/sparkline/sparkline2.js +2 -2
  369. package/dist/sparkline/sparkline2.js.map +1 -1
  370. package/dist/star-rating/define.d.ts +1 -1
  371. package/dist/star-rating/star-rating.d.ts +6 -5
  372. package/dist/star-rating/star-rating2.js +2 -2
  373. package/dist/star-rating/star-rating2.js.map +1 -1
  374. package/dist/steps/define.d.ts +1 -1
  375. package/dist/steps/steps.d.ts +12 -9
  376. package/dist/steps/steps2.js +3 -3
  377. package/dist/steps/steps2.js.map +1 -1
  378. package/dist/switch/define.d.ts +1 -1
  379. package/dist/switch/switch-group.d.ts +2 -2
  380. package/dist/switch/switch-group2.js +2 -2
  381. package/dist/switch/switch.d.ts +3 -2
  382. package/dist/switch/switch2.js +2 -2
  383. package/dist/switch/switch2.js.map +1 -1
  384. package/dist/tabs/define.d.ts +1 -1
  385. package/dist/tabs/tabs-group.d.ts +5 -3
  386. package/dist/tabs/tabs-group2.js +2 -2
  387. package/dist/tabs/tabs-group2.js.map +1 -1
  388. package/dist/tabs/tabs.d.ts +10 -7
  389. package/dist/tabs/tabs2.js +3 -3
  390. package/dist/tabs/tabs2.js.map +1 -1
  391. package/dist/tag/define.d.ts +1 -1
  392. package/dist/tag/tag.d.ts +7 -6
  393. package/dist/tag/tag2.js +2 -2
  394. package/dist/tag/tag2.js.map +1 -1
  395. package/dist/textarea/define.d.ts +1 -1
  396. package/dist/textarea/textarea.d.ts +3 -2
  397. package/dist/textarea/textarea2.js +1 -1
  398. package/dist/textarea/textarea2.js.map +1 -1
  399. package/dist/time/define.d.ts +1 -1
  400. package/dist/time/time.d.ts +6 -5
  401. package/dist/time/time2.js +2 -2
  402. package/dist/time/time2.js.map +1 -1
  403. package/dist/toast/define.d.ts +1 -1
  404. package/dist/toast/toast.d.ts +8 -6
  405. package/dist/toast/toast2.js +2 -2
  406. package/dist/toast/toast2.js.map +1 -1
  407. package/dist/toggletip/define.d.ts +1 -1
  408. package/dist/toggletip/toggletip-footer.d.ts +3 -2
  409. package/dist/toggletip/toggletip-footer2.js +2 -2
  410. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  411. package/dist/toggletip/toggletip-header.d.ts +3 -2
  412. package/dist/toggletip/toggletip-header2.js +2 -2
  413. package/dist/toggletip/toggletip-header2.js.map +1 -1
  414. package/dist/toggletip/toggletip.d.ts +7 -5
  415. package/dist/toggletip/toggletip2.js +2 -2
  416. package/dist/toggletip/toggletip2.js.map +1 -1
  417. package/dist/toolbar/define.d.ts +1 -1
  418. package/dist/toolbar/toolbar.d.ts +6 -4
  419. package/dist/toolbar/toolbar2.js +2 -2
  420. package/dist/toolbar/toolbar2.js.map +1 -1
  421. package/dist/tooltip/define.d.ts +1 -1
  422. package/dist/tooltip/tooltip.d.ts +5 -3
  423. package/dist/tooltip/tooltip2.js +2 -2
  424. package/dist/tooltip/tooltip2.js.map +1 -1
  425. package/dist/tree/define.d.ts +1 -1
  426. package/dist/tree/tree-node.d.ts +7 -6
  427. package/dist/tree/tree-node2.js +2 -2
  428. package/dist/tree/tree-node2.js.map +1 -1
  429. package/dist/tree/tree.d.ts +6 -4
  430. package/dist/tree/tree2.js +2 -2
  431. package/dist/tree/tree2.js.map +1 -1
  432. package/dist/week/define.d.ts +1 -1
  433. package/dist/week/week.d.ts +6 -5
  434. package/dist/week/week2.js +2 -2
  435. package/dist/week/week2.js.map +1 -1
  436. package/package.json +23 -11
@@ -1,6 +1,6 @@
1
1
  import { audit as e } from "../internal/controllers/audit.controller.js";
2
2
  import { useStyles as t } from "../internal/styles/index.js";
3
- import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
3
+ import n from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
4
4
  import r from "./drawer-header.js";
5
5
  import { LitElement as i, html as a } from "lit";
6
6
  //#region src/drawer/drawer-header.ts
@@ -11,7 +11,7 @@ var o = class extends i {
11
11
  static {
12
12
  this.metadata = {
13
13
  tag: "nve-drawer-header",
14
- version: "2.0.4",
14
+ version: "2.1.1",
15
15
  parents: ["nve-drawer"]
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-header2.js","names":[],"sources":["../../src/drawer/drawer-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 './drawer-header.css?inline';\n\n/**\n * @element nve-drawer-header\n * @description Displays the title and optional close control at the top of a drawer to identify its purpose.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/drawer\n * @slot - default slot for the drawer header\n * @cssprop --border-bottom\n * @cssprop --min-height\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@audit()\nexport class DrawerHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-drawer-header',\n version: '0.0.0',\n parents: ['nve-drawer']\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":";;;;;;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
+ {"version":3,"file":"drawer-header2.js","names":[],"sources":["../../src/drawer/drawer-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 './drawer-header.css?inline';\n\n/**\n * @element nve-drawer-header\n * @description Displays the title and optional close control at the top of a drawer to identify its purpose.\n * @documentation https://nvidia.github.io/elements/docs/elements/drawer/\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/drawer\n * @slot - default slot for the drawer header\n * @cssprop --border-bottom\n * @cssprop --min-height\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@audit()\nexport class DrawerHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-drawer-header',\n version: '0.0.0',\n parents: ['nve-drawer']\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":";;;;;;AAoBO,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,9 +1,11 @@
1
1
  import { LitElement } from 'lit';
2
- import { PopoverType, Size, TypeNativePopoverController } from '../internal';
3
- import { IconButton } from '../icon-button';
2
+ import type { PopoverType, Size } from '@nvidia-elements/core/internal';
3
+ import { TypeNativePopoverController } from '@nvidia-elements/core/internal';
4
+ import { IconButton } from '@nvidia-elements/core/icon-button';
4
5
  /**
5
6
  * @element nve-drawer
6
7
  * @description Drawer are to display content that is out of context of the rest of the page (notifications, navigation, settings). Or use [Panel](./docs/elements/panel/) inline as its content couples with or closely relates to the content on the page (details, extra actions/options). [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
8
+ * @documentation https://nvidia.github.io/elements/docs/elements/drawer/
7
9
  * @since 0.16.0
8
10
  * @entrypoint \@nvidia-elements/core/drawer
9
11
  * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)
@@ -68,7 +70,7 @@ export declare class Drawer extends LitElement {
68
70
  /**
69
71
  * Enables internal string values to update for internationalization.
70
72
  */
71
- i18n: Partial<import('../internal').I18nStrings & {
73
+ i18n: Partial<import("@nvidia-elements/core/internal").I18nStrings & {
72
74
  __set: boolean;
73
75
  }>;
74
76
  /** @private */
@@ -76,7 +78,7 @@ export declare class Drawer extends LitElement {
76
78
  /** @private */
77
79
  get popoverDismissible(): boolean;
78
80
  protected typeNativePopoverController: TypeNativePopoverController<Drawer>;
79
- static styles: import('lit').CSSResult[];
81
+ static styles: import("lit").CSSResult[];
80
82
  static readonly metadata: {
81
83
  tag: string;
82
84
  version: string;
@@ -84,7 +86,7 @@ export declare class Drawer extends LitElement {
84
86
  static elementDefinitions: {
85
87
  [IconButton.metadata.tag]: typeof IconButton;
86
88
  };
87
- render(): import('lit').TemplateResult<1>;
89
+ render(): import("lit").TemplateResult<1>;
88
90
  connectedCallback(): void;
89
91
  disconnectedCallback(): void;
90
92
  }
@@ -5,7 +5,7 @@ import { typeSSR as r } from "../internal/controllers/type-ssr.controller.js";
5
5
  import { scopedRegistry as i } from "../internal/decorators/scoped-registry.js";
6
6
  import { useStyles as a } from "../internal/styles/index.js";
7
7
  import { popoverStyles as o } from "../internal/styles/popover2.js";
8
- import { __decorate as s } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
8
+ import s from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
9
9
  import { IconButton as c } from "../icon-button/icon-button2.js";
10
10
  import l from "./drawer.js";
11
11
  import { LitElement as u, html as d } from "lit";
@@ -30,7 +30,7 @@ var p = class extends u {
30
30
  static {
31
31
  this.metadata = {
32
32
  tag: "nve-drawer",
33
- version: "2.0.4"
33
+ version: "2.1.1"
34
34
  };
35
35
  }
36
36
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"drawer2.js","names":["#i18nController","#inlineElement","#onToggle"],"sources":["../../src/drawer/drawer.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { PopoverType, Size } from '@nvidia-elements/core/internal';\nimport {\n createGhostElement,\n I18nController,\n popoverStyles,\n scopedRegistry,\n TypeNativePopoverController,\n typeSSR,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './drawer.css?inline';\n\n/**\n * @element nve-drawer\n * @description Drawer are to display content that is out of context of the rest of the page (notifications, navigation, settings). Or use [Panel](./docs/elements/panel/) inline as its content couples with or closely relates to the content on the page (details, extra actions/options). [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/drawer\n * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)\n * @event toggle - Dispatched on a popover element just after showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event)\n * @event open - Dispatched when the drawer opens.\n * @event close - Dispatched when the drawer closes.\n * @slot - default content slot\n * @cssprop --border\n * @cssprop --background\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --box-shadow\n * @cssprop --gap\n * @cssprop --top\n * @cssprop --max-width\n * @cssprop --width\n * @cssprop --animation-duration - Duration of drawer open/close animations\n * @csspart icon-button - The close icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@typeSSR()\n@scopedRegistry()\nexport class Drawer extends LitElement {\n /**\n * Sets the side position of the popover relative to the provided anchor element.\n * For drawer the anchor defaults to the document body.\n */\n @property({ type: String, reflect: true }) position: 'left' | 'right' | 'bottom' | 'top' = 'left';\n\n /**\n * Sets the max size of the drawer.\n */\n @property({ type: String, reflect: true }) size?: Size;\n\n /**\n * Determines if a close button should render within drawer. Non-closable\n * drawers suit drawers that require user confirmation steps.\n */\n @property({ type: Boolean }) closable: boolean;\n\n /**\n * Determines if a drawer should have a modal backdrop that visually overlays the UI.\n */\n @property({ type: Boolean, reflect: true }) modal: boolean;\n\n /**\n * (optional) By default the popover will automatically anchor itself relative to the trigger element.\n * Pass an optional custom anchor element as an idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) anchor: string | HTMLElement = globalThis.document?.body;\n\n /**\n * @deprecated Use the popover API instead.\n * The trigger defines what element triggers an `open` interaction event.\n * A trigger can accept a idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) trigger: string | HTMLElement;\n\n /**\n * Create a inline layout effect while retaining the a11y characteristics and top layer behavior (light dismiss, focus trap, non interactive background)\n * https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n @property({ type: Boolean, reflect: true }) inline: boolean;\n\n /**\n * @deprecated Use the popover API instead.\n * Determines if popover visibility behavior should be automatically controlled by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-trigger' }) behaviorTrigger: boolean;\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 /** @private */\n get popoverType(): PopoverType {\n return this.modal ? 'auto' : 'manual';\n }\n\n /** @private */\n get popoverDismissible() {\n return !!this.closable;\n }\n\n protected typeNativePopoverController = new TypeNativePopoverController<Drawer>(this);\n\n static styles = useStyles([popoverStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-drawer',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n render() {\n return html`\n <div internal-host>\n <div class=\"header\">\n <nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" .hidden=${!this.closable} @click=${this.hidePopover} icon-name=\"cancel\" .ariaLabel=${this.i18n.close} container=\"flat\"></nve-icon-button>\n <slot name=\"header\"></slot>\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n <div>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n\n #inlineElement?: HTMLElement;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('toggle', this.#onToggle);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('toggle', this.#onToggle);\n this.#inlineElement?.remove();\n this.#inlineElement = undefined;\n }\n\n #onToggle = (toggleEvent: ToggleEvent) => {\n if (this.inline) {\n if (this.#inlineElement && toggleEvent.newState === 'closed') {\n this.#inlineElement.remove();\n } else {\n this.#inlineElement = createGhostElement(this);\n this.after(this.#inlineElement);\n }\n }\n };\n}\n"],"mappings":";;;;;;;;;;;;;AA2CO,IAAA,IAAA,cAAqB,EAAW;;+BAKsD,sBAsBhC,WAAW,UAAU,gBAqBxC,IAAI,EAAqB,IAAI,eAKlC,KAAKA,GAAgB,yCAYhB,IAAI,EAAoC,IAAI,cA4CvE,MAA6B;GACxC,AAAI,KAAK,WACH,KAAKC,MAAkB,EAAY,aAAa,WAClD,KAAKA,GAAe,OAAO,KAE3B,KAAKA,KAAiB,EAAmB,IAAI,GAC7C,KAAK,MAAM,KAAKA,EAAc;EAGpC;;CAtEA;CAQA,IAAI,cAA2B;EAC7B,OAAO,KAAK,QAAQ,SAAS;CAC/B;CAGA,IAAI,qBAAqB;EACvB,OAAO,CAAC,CAAC,KAAK;CAChB;;gBAIgB,EAAU,CAAC,GAAe,CAAM,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAEA,SAAS;EACP,OAAO,CAAI,2HAG2E,CAAC,KAAK,SAAS,YAAU,KAAK,YAAY,mCAAiC,KAAK,KAAK,MAAM;CAWnL;CAEA;CAEA,oBAA0B;EAExB,AADA,MAAM,kBAAkB,GACxB,KAAK,iBAAiB,UAAU,KAAKC,EAAS;CAChD;CAEA,uBAA6B;EAI3B,AAHA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,UAAU,KAAKA,EAAS,GACjD,KAAKD,IAAgB,OAAO,GAC5B,KAAKA,KAAiB,KAAA;CACxB;CAEA;AAUF;GAlHG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAMxC,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAMzC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAOzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MAMzB,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAMzC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAmB,CAAC,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,MAOxE,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UAvD3B,EAAQ,GACR,EAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"drawer2.js","names":["#i18nController","#inlineElement","#onToggle"],"sources":["../../src/drawer/drawer.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { PopoverType, Size } from '@nvidia-elements/core/internal';\nimport {\n createGhostElement,\n I18nController,\n popoverStyles,\n scopedRegistry,\n TypeNativePopoverController,\n typeSSR,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport styles from './drawer.css?inline';\n\n/**\n * @element nve-drawer\n * @description Drawer are to display content that is out of context of the rest of the page (notifications, navigation, settings). Or use [Panel](./docs/elements/panel/) inline as its content couples with or closely relates to the content on the page (details, extra actions/options). [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)\n * @documentation https://nvidia.github.io/elements/docs/elements/drawer/\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/drawer\n * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)\n * @event toggle - Dispatched on a popover element just after showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event)\n * @event open - Dispatched when the drawer opens.\n * @event close - Dispatched when the drawer closes.\n * @slot - default content slot\n * @cssprop --border\n * @cssprop --background\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --box-shadow\n * @cssprop --gap\n * @cssprop --top\n * @cssprop --max-width\n * @cssprop --width\n * @cssprop --animation-duration - Duration of drawer open/close animations\n * @csspart icon-button - The close icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n@typeSSR()\n@scopedRegistry()\nexport class Drawer extends LitElement {\n /**\n * Sets the side position of the popover relative to the provided anchor element.\n * For drawer the anchor defaults to the document body.\n */\n @property({ type: String, reflect: true }) position: 'left' | 'right' | 'bottom' | 'top' = 'left';\n\n /**\n * Sets the max size of the drawer.\n */\n @property({ type: String, reflect: true }) size?: Size;\n\n /**\n * Determines if a close button should render within drawer. Non-closable\n * drawers suit drawers that require user confirmation steps.\n */\n @property({ type: Boolean }) closable: boolean;\n\n /**\n * Determines if a drawer should have a modal backdrop that visually overlays the UI.\n */\n @property({ type: Boolean, reflect: true }) modal: boolean;\n\n /**\n * (optional) By default the popover will automatically anchor itself relative to the trigger element.\n * Pass an optional custom anchor element as an idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) anchor: string | HTMLElement = globalThis.document?.body;\n\n /**\n * @deprecated Use the popover API instead.\n * The trigger defines what element triggers an `open` interaction event.\n * A trigger can accept a idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) trigger: string | HTMLElement;\n\n /**\n * Create a inline layout effect while retaining the a11y characteristics and top layer behavior (light dismiss, focus trap, non interactive background)\n * https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/\n */\n @property({ type: Boolean, reflect: true }) inline: boolean;\n\n /**\n * @deprecated Use the popover API instead.\n * Determines if popover visibility behavior should be automatically controlled by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-trigger' }) behaviorTrigger: boolean;\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 /** @private */\n get popoverType(): PopoverType {\n return this.modal ? 'auto' : 'manual';\n }\n\n /** @private */\n get popoverDismissible() {\n return !!this.closable;\n }\n\n protected typeNativePopoverController = new TypeNativePopoverController<Drawer>(this);\n\n static styles = useStyles([popoverStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-drawer',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n render() {\n return html`\n <div internal-host>\n <div class=\"header\">\n <nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" .hidden=${!this.closable} @click=${this.hidePopover} icon-name=\"cancel\" .ariaLabel=${this.i18n.close} container=\"flat\"></nve-icon-button>\n <slot name=\"header\"></slot>\n </div>\n <div class=\"content\">\n <slot></slot>\n </div>\n <div>\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n\n #inlineElement?: HTMLElement;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('toggle', this.#onToggle);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('toggle', this.#onToggle);\n this.#inlineElement?.remove();\n this.#inlineElement = undefined;\n }\n\n #onToggle = (toggleEvent: ToggleEvent) => {\n if (this.inline) {\n if (this.#inlineElement && toggleEvent.newState === 'closed') {\n this.#inlineElement.remove();\n } else {\n this.#inlineElement = createGhostElement(this);\n this.after(this.#inlineElement);\n }\n }\n };\n}\n"],"mappings":";;;;;;;;;;;;;AA4CO,IAAA,IAAA,cAAqB,EAAW;;+BAKsD,sBAsBhC,WAAW,UAAU,gBAqBxC,IAAI,EAAqB,IAAI,eAKlC,KAAKA,GAAgB,yCAYhB,IAAI,EAAoC,IAAI,cA4CvE,MAA6B;GACxC,AAAI,KAAK,WACH,KAAKC,MAAkB,EAAY,aAAa,WAClD,KAAKA,GAAe,OAAO,KAE3B,KAAKA,KAAiB,EAAmB,IAAI,GAC7C,KAAK,MAAM,KAAKA,EAAc;EAGpC;;CAtEA;CAQA,IAAI,cAA2B;EAC7B,OAAO,KAAK,QAAQ,SAAS;CAC/B;CAGA,IAAI,qBAAqB;EACvB,OAAO,CAAC,CAAC,KAAK;CAChB;;gBAIgB,EAAU,CAAC,GAAe,CAAM,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAEA,SAAS;EACP,OAAO,CAAI,2HAG2E,CAAC,KAAK,SAAS,YAAU,KAAK,YAAY,mCAAiC,KAAK,KAAK,MAAM;CAWnL;CAEA;CAEA,oBAA0B;EAExB,AADA,MAAM,kBAAkB,GACxB,KAAK,iBAAiB,UAAU,KAAKC,EAAS;CAChD;CAEA,uBAA6B;EAI3B,AAHA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,UAAU,KAAKA,EAAS,GACjD,KAAKD,IAAgB,OAAO,GAC5B,KAAKA,KAAiB,KAAA;CACxB;CAEA;AAUF;GAlHG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAMxC,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAMzC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAOzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MAMzB,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAMzC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAmB,CAAC,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,MAOxE,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UAvD3B,EAAQ,GACR,EAAe,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Dropdown, DropdownHeader, DropdownFooter } from '.';
1
+ import { Dropdown, DropdownHeader, DropdownFooter } from '@nvidia-elements/core/dropdown';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-dropdown': Dropdown;
@@ -2,6 +2,7 @@ import { LitElement } from 'lit';
2
2
  /**
3
3
  * @element nve-dropdown-footer
4
4
  * @description Provides a fixed area at the bottom of a dropdown menu for extra actions or supplementary controls.
5
+ * @documentation https://nvidia.github.io/elements/docs/elements/dropdown/
5
6
  * @since 0.36.0
6
7
  * @entrypoint \@nvidia-elements/core/dropdown
7
8
  * @slot - default slot for the dropdown footer
@@ -11,12 +12,12 @@ import { LitElement } from 'lit';
11
12
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/
12
13
  */
13
14
  export declare class DropdownFooter extends LitElement {
14
- static styles: import('lit').CSSResult[];
15
+ static styles: import("lit").CSSResult[];
15
16
  static readonly metadata: {
16
17
  tag: string;
17
18
  version: string;
18
19
  parents: string[];
19
20
  };
20
- render(): import('lit').TemplateResult<1>;
21
+ render(): import("lit").TemplateResult<1>;
21
22
  connectedCallback(): void;
22
23
  }
@@ -1,6 +1,6 @@
1
1
  import { audit as e } from "../internal/controllers/audit.controller.js";
2
2
  import { useStyles as t } from "../internal/styles/index.js";
3
- import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
3
+ import n from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
4
4
  import r from "./dropdown-footer.js";
5
5
  import { LitElement as i, html as a } from "lit";
6
6
  //#region src/dropdown/dropdown-footer.ts
@@ -11,7 +11,7 @@ var o = class extends i {
11
11
  static {
12
12
  this.metadata = {
13
13
  tag: "nve-dropdown-footer",
14
- version: "2.0.4",
14
+ version: "2.1.1",
15
15
  parents: ["nve-dropdown"]
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-footer2.js","names":[],"sources":["../../src/dropdown/dropdown-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 './dropdown-footer.css?inline';\n\n/**\n * @element nve-dropdown-footer\n * @description Provides a fixed area at the bottom of a dropdown menu for extra actions or supplementary controls.\n * @since 0.36.0\n * @entrypoint \\@nvidia-elements/core/dropdown\n * @slot - default slot for the dropdown footer\n * @cssprop --border-top\n * @cssprop --padding\n * @cssprop --gap\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class DropdownFooter extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dropdown-footer',\n version: '0.0.0',\n parents: ['nve-dropdown']\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,cAA6B,EAAW;;gBAC7B,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,cAAc;EAC1B;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF;OAtBC,EAAM,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"dropdown-footer2.js","names":[],"sources":["../../src/dropdown/dropdown-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 './dropdown-footer.css?inline';\n\n/**\n * @element nve-dropdown-footer\n * @description Provides a fixed area at the bottom of a dropdown menu for extra actions or supplementary controls.\n * @documentation https://nvidia.github.io/elements/docs/elements/dropdown/\n * @since 0.36.0\n * @entrypoint \\@nvidia-elements/core/dropdown\n * @slot - default slot for the dropdown footer\n * @cssprop --border-top\n * @cssprop --padding\n * @cssprop --gap\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class DropdownFooter extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dropdown-footer',\n version: '0.0.0',\n parents: ['nve-dropdown']\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":";;;;;;AAoBO,IAAA,IAAA,cAA6B,EAAW;;gBAC7B,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,cAAc;EAC1B;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF;OAtBC,EAAM,CAAA,GAAA,CAAA"}
@@ -2,6 +2,7 @@ import { LitElement } from 'lit';
2
2
  /**
3
3
  * @element nve-dropdown-header
4
4
  * @description Displays a title or contextual label at the top of a dropdown menu to categorize its contents.
5
+ * @documentation https://nvidia.github.io/elements/docs/elements/dropdown/
5
6
  * @since 0.36.0
6
7
  * @entrypoint \@nvidia-elements/core/dropdown
7
8
  * @slot - default slot for the dropdown header
@@ -10,12 +11,12 @@ import { LitElement } from 'lit';
10
11
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/
11
12
  */
12
13
  export declare class DropdownHeader extends LitElement {
13
- static styles: import('lit').CSSResult[];
14
+ static styles: import("lit").CSSResult[];
14
15
  static readonly metadata: {
15
16
  tag: string;
16
17
  version: string;
17
18
  parents: string[];
18
19
  };
19
- render(): import('lit').TemplateResult<1>;
20
+ render(): import("lit").TemplateResult<1>;
20
21
  connectedCallback(): void;
21
22
  }
@@ -1,6 +1,6 @@
1
1
  import { audit as e } from "../internal/controllers/audit.controller.js";
2
2
  import { useStyles as t } from "../internal/styles/index.js";
3
- import { __decorate as n } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
3
+ import n from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
4
4
  import r from "./dropdown-header.js";
5
5
  import { LitElement as i, html as a } from "lit";
6
6
  //#region src/dropdown/dropdown-header.ts
@@ -11,7 +11,7 @@ var o = class extends i {
11
11
  static {
12
12
  this.metadata = {
13
13
  tag: "nve-dropdown-header",
14
- version: "2.0.4",
14
+ version: "2.1.1",
15
15
  parents: ["nve-dropdown"]
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-header2.js","names":[],"sources":["../../src/dropdown/dropdown-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 './dropdown-header.css?inline';\n\n/**\n * @element nve-dropdown-header\n * @description Displays a title or contextual label at the top of a dropdown menu to categorize its contents.\n * @since 0.36.0\n * @entrypoint \\@nvidia-elements/core/dropdown\n * @slot - default slot for the dropdown header\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class DropdownHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dropdown-header',\n version: '0.0.0',\n parents: ['nve-dropdown']\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,cAA6B,EAAW;;gBAC7B,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,cAAc;EAC1B;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF;OAtBC,EAAM,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"dropdown-header2.js","names":[],"sources":["../../src/dropdown/dropdown-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 './dropdown-header.css?inline';\n\n/**\n * @element nve-dropdown-header\n * @description Displays a title or contextual label at the top of a dropdown menu to categorize its contents.\n * @documentation https://nvidia.github.io/elements/docs/elements/dropdown/\n * @since 0.36.0\n * @entrypoint \\@nvidia-elements/core/dropdown\n * @slot - default slot for the dropdown header\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class DropdownHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dropdown-header',\n version: '0.0.0',\n parents: ['nve-dropdown']\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":";;;;;;AAmBO,IAAA,IAAA,cAA6B,EAAW;;gBAC7B,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,SAAS,CAAC,cAAc;EAC1B;;CAEA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,OAAO;CACd;AACF;OAtBC,EAAM,CAAA,GAAA,CAAA"}
@@ -1,9 +1,11 @@
1
1
  import { LitElement } from 'lit';
2
- import { IconButton } from '../icon-button';
3
- import { PopoverAlign, PopoverPosition, PopoverType, TypeNativePopoverController } from '../internal';
2
+ import { IconButton } from '@nvidia-elements/core/icon-button';
3
+ import type { PopoverAlign, PopoverPosition, PopoverType } from '@nvidia-elements/core/internal';
4
+ import { TypeNativePopoverController } from '@nvidia-elements/core/internal';
4
5
  /**
5
6
  * @element nve-dropdown
6
7
  * @description Generic dropdown element for rendering a variety of different content such as interactive navigation or form controls. [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
8
+ * @documentation https://nvidia.github.io/elements/docs/elements/dropdown/
7
9
  * @since 0.6.0
8
10
  * @entrypoint \@nvidia-elements/core/dropdown
9
11
  * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)
@@ -27,7 +29,7 @@ import { PopoverAlign, PopoverPosition, PopoverType, TypeNativePopoverController
27
29
  */
28
30
  export declare class Dropdown extends LitElement {
29
31
  #private;
30
- static styles: import('lit').CSSResult[];
32
+ static styles: import("lit").CSSResult[];
31
33
  static readonly metadata: {
32
34
  tag: string;
33
35
  version: string;
@@ -80,8 +82,8 @@ export declare class Dropdown extends LitElement {
80
82
  /**
81
83
  * Enables internal string values to update for internationalization.
82
84
  */
83
- i18n: Partial<import('../internal').I18nStrings & {
85
+ i18n: Partial<import("@nvidia-elements/core/internal").I18nStrings & {
84
86
  __set: boolean;
85
87
  }>;
86
- render(): import('lit').TemplateResult<1>;
88
+ render(): import("lit").TemplateResult<1>;
87
89
  }
@@ -4,7 +4,7 @@ import { TypeNativePopoverController as n } from "../internal/controllers/type-n
4
4
  import { scopedRegistry as r } from "../internal/decorators/scoped-registry.js";
5
5
  import { useStyles as i } from "../internal/styles/index.js";
6
6
  import { popoverStyles as a } from "../internal/styles/popover2.js";
7
- import { __decorate as o } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
7
+ import o from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
8
8
  import { IconButton as s } from "../icon-button/icon-button2.js";
9
9
  import c from "./dropdown.js";
10
10
  import { LitElement as l, html as u } from "lit";
@@ -21,7 +21,7 @@ var p = class extends l {
21
21
  static {
22
22
  this.metadata = {
23
23
  tag: "nve-dropdown",
24
- version: "2.0.4"
24
+ version: "2.1.1"
25
25
  };
26
26
  }
27
27
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown2.js","names":["#i18nController"],"sources":["../../src/dropdown/dropdown.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { query } from 'lit/decorators/query.js';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport type { PopoverAlign, PopoverPosition, PopoverType } from '@nvidia-elements/core/internal';\nimport {\n audit,\n excessiveInstanceLimit,\n I18nController,\n popoverStyles,\n scopedRegistry,\n TypeNativePopoverController,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport styles from './dropdown.css?inline';\n\n/**\n * @element nve-dropdown\n * @description Generic dropdown element for rendering a variety of different content such as interactive navigation or form controls. [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/dropdown\n * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)\n * @event toggle - Dispatched on a popover element just after showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event)\n * @event open - Dispatched when the dropdown opens.\n * @event close - Dispatched when the dropdown closes.\n * @slot - default slot for dropdown content\n * @cssprop --border\n * @cssprop --border-radius\n * @cssprop --background\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --box-shadow\n * @cssprop --width\n * @cssprop --min-width\n * @cssprop --gap\n * @cssprop --arrow-transform - Transform applied to the popover arrow\n * @cssprop --animation-duration - Duration of dropdown open/close animations\n * @csspart icon-button - The close icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit({ excessiveInstanceLimit })\n@scopedRegistry()\nexport class Dropdown extends LitElement {\n static styles = useStyles([popoverStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-dropdown',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n /**\n * (optional) By default the popover will automatically anchor itself relative to the trigger element.\n * Pass an optional custom anchor element as an idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) anchor: string | HTMLElement;\n\n /**\n * @deprecated Use the popover API instead.\n * The trigger defines what element triggers an `open` interaction event.\n * A trigger can accept a idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) trigger: string | HTMLElement;\n\n /**\n * Sets the side position of the popover relative to the provided anchor element.\n */\n @property({ type: String, reflect: true }) position: PopoverPosition = 'bottom';\n\n /**\n * Sets the alignment of the popover relative to the provided anchor element.\n * If an arrow exists the alginment will be relative to the arrow against the anchor.\n */\n @property({ type: String, reflect: true }) alignment: PopoverAlign = 'start';\n\n /**\n * @deprecated Use the popover API instead.\n * Determines if popover visibility behavior should be automatically controlled by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-trigger' }) behaviorTrigger: boolean;\n\n /**\n * Determines if a close button should render within dropdown. Non-closable\n * dropdowns suit menu or selection patterns.\n */\n @property({ type: Boolean }) closable = false;\n\n /**\n * Determines if an arrow renders.\n */\n @property({ type: Boolean }) arrow = false;\n\n /** @private */\n @property({ type: Boolean, reflect: true }) modal = true;\n\n /** @private */\n @property({ type: String, attribute: 'popover-type' }) popoverType: PopoverType = 'auto';\n\n @query('.arrow') popoverArrow: HTMLElement;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n protected typeNativePopoverController = new TypeNativePopoverController<Dropdown>(this);\n\n /** @private */\n get popoverDismissible() {\n return this.modal;\n }\n\n /**\n * Enables internal string values to update for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n render() {\n return html`\n <div internal-host>\n <slot name=\"header\"></slot>\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${this.hidePopover} icon-name=\"cancel\" container=\"flat\" size=\"sm\" .ariaLabel=${this.i18n.close}></nve-icon-button>` : ''}\n <slot></slot>\n <slot name=\"footer\"></slot>\n ${this.arrow ? html`<div class=\"arrow\"></div>` : ''}\n </div>\n `;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAuB,EAAW;;+BA4BgC,2BAMF,yBAY7B,iBAKH,iBAGe,uBAG8B,kBAI1C,IAAI,EAAqB,IAAI,sCAE7B,IAAI,EAAsC,IAAI,eAUnD,KAAKA,GAAgB;;;gBAxExC,EAAU,CAAC,GAAe,CAAM,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAmDA;CAKA,IAAI,qBAAqB;EACvB,OAAO,KAAK;CACd;CAOA,SAAS;EACP,OAAO,CAAI,iDAGP,KAAK,WAAW,CAAI,mFAAkF,KAAK,YAAY,8DAA4D,KAAK,KAAK,MAAM,wBAAuB,GAAG,0CAG7N,KAAK,QAAQ,CAAI,8BAA8B,GAAG;CAGxD;AACF;GAtEG,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAOzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MAKzB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAMxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAMxC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAmB,CAAC,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,MAMxE,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAG1B,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGzC,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAe,CAAC,CAAA,GAAA,EAAA,WAAA,eAAA,KAAA,CAAA,MAEpD,EAAM,QAAQ,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,MAcd,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UA3E3B,EAAM,EAAE,wBAAA,GAAuB,CAAC,GAChC,EAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"dropdown2.js","names":["#i18nController"],"sources":["../../src/dropdown/dropdown.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { query } from 'lit/decorators/query.js';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport type { PopoverAlign, PopoverPosition, PopoverType } from '@nvidia-elements/core/internal';\nimport {\n audit,\n excessiveInstanceLimit,\n I18nController,\n popoverStyles,\n scopedRegistry,\n TypeNativePopoverController,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport styles from './dropdown.css?inline';\n\n/**\n * @element nve-dropdown\n * @description Generic dropdown element for rendering a variety of different content such as interactive navigation or form controls. [MDN Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)\n * @documentation https://nvidia.github.io/elements/docs/elements/dropdown/\n * @since 0.6.0\n * @entrypoint \\@nvidia-elements/core/dropdown\n * @event beforetoggle - Dispatched on a popover just before showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/beforetoggle_event)\n * @event toggle - Dispatched on a popover element just after showing or hiding. [MDN](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/toggle_event)\n * @event open - Dispatched when the dropdown opens.\n * @event close - Dispatched when the dropdown closes.\n * @slot - default slot for dropdown content\n * @cssprop --border\n * @cssprop --border-radius\n * @cssprop --background\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --box-shadow\n * @cssprop --width\n * @cssprop --min-width\n * @cssprop --gap\n * @cssprop --arrow-transform - Transform applied to the popover arrow\n * @cssprop --animation-duration - Duration of dropdown open/close animations\n * @csspart icon-button - The close icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit({ excessiveInstanceLimit })\n@scopedRegistry()\nexport class Dropdown extends LitElement {\n static styles = useStyles([popoverStyles, styles]);\n\n static readonly metadata = {\n tag: 'nve-dropdown',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [IconButton.metadata.tag]: IconButton\n };\n\n /**\n * (optional) By default the popover will automatically anchor itself relative to the trigger element.\n * Pass an optional custom anchor element as an idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) anchor: string | HTMLElement;\n\n /**\n * @deprecated Use the popover API instead.\n * The trigger defines what element triggers an `open` interaction event.\n * A trigger can accept a idref string within the same render root or a HTMLElement DOM reference.\n */\n @property({ type: String }) trigger: string | HTMLElement;\n\n /**\n * Sets the side position of the popover relative to the provided anchor element.\n */\n @property({ type: String, reflect: true }) position: PopoverPosition = 'bottom';\n\n /**\n * Sets the alignment of the popover relative to the provided anchor element.\n * If an arrow exists the alginment will be relative to the arrow against the anchor.\n */\n @property({ type: String, reflect: true }) alignment: PopoverAlign = 'start';\n\n /**\n * @deprecated Use the popover API instead.\n * Determines if popover visibility behavior should be automatically controlled by the trigger.\n */\n @property({ type: Boolean, reflect: true, attribute: 'behavior-trigger' }) behaviorTrigger: boolean;\n\n /**\n * Determines if a close button should render within dropdown. Non-closable\n * dropdowns suit menu or selection patterns.\n */\n @property({ type: Boolean }) closable = false;\n\n /**\n * Determines if an arrow renders.\n */\n @property({ type: Boolean }) arrow = false;\n\n /** @private */\n @property({ type: Boolean, reflect: true }) modal = true;\n\n /** @private */\n @property({ type: String, attribute: 'popover-type' }) popoverType: PopoverType = 'auto';\n\n @query('.arrow') popoverArrow: HTMLElement;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n protected typeNativePopoverController = new TypeNativePopoverController<Dropdown>(this);\n\n /** @private */\n get popoverDismissible() {\n return this.modal;\n }\n\n /**\n * Enables internal string values to update for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n render() {\n return html`\n <div internal-host>\n <slot name=\"header\"></slot>\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${this.hidePopover} icon-name=\"cancel\" container=\"flat\" size=\"sm\" .ariaLabel=${this.i18n.close}></nve-icon-button>` : ''}\n <slot></slot>\n <slot name=\"footer\"></slot>\n ${this.arrow ? html`<div class=\"arrow\"></div>` : ''}\n </div>\n `;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AA8CO,IAAA,IAAA,cAAuB,EAAW;;+BA4BgC,2BAMF,yBAY7B,iBAKH,iBAGe,uBAG8B,kBAI1C,IAAI,EAAqB,IAAI,sCAE7B,IAAI,EAAsC,IAAI,eAUnD,KAAKA,GAAgB;;;gBAxExC,EAAU,CAAC,GAAe,CAAM,CAAC;;;kBAEtB;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAW,SAAS,MAAM,EAC7B;;CAmDA;CAKA,IAAI,qBAAqB;EACvB,OAAO,KAAK;CACd;CAOA,SAAS;EACP,OAAO,CAAI,iDAGP,KAAK,WAAW,CAAI,mFAAkF,KAAK,YAAY,8DAA4D,KAAK,KAAK,MAAM,wBAAuB,GAAG,0CAG7N,KAAK,QAAQ,CAAI,8BAA8B,GAAG;CAGxD;AACF;GAtEG,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAOzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,MAKzB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAMxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAMxC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,WAAW;AAAmB,CAAC,CAAA,GAAA,EAAA,WAAA,mBAAA,KAAA,CAAA,MAMxE,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAG1B,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGzC,EAAS;CAAE,MAAM;CAAQ,WAAW;AAAe,CAAC,CAAA,GAAA,EAAA,WAAA,eAAA,KAAA,CAAA,MAEpD,EAAM,QAAQ,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA,MAcd,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UA3E3B,EAAM,EAAE,wBAAA,GAAuB,CAAC,GAChC,EAAe,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { DropdownGroup } from '.';
1
+ import { DropdownGroup } from '@nvidia-elements/core/dropdown-group';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-dropdown-group': DropdownGroup;
@@ -1,8 +1,9 @@
1
1
  import { LitElement } from 'lit';
2
- import { Dropdown } from '../dropdown';
2
+ import type { Dropdown } from '@nvidia-elements/core/dropdown';
3
3
  /**
4
4
  * @element nve-dropdown-group
5
5
  * @description A Dropdown Group streamlines the management of linked dropdowns and supports nested dropdowns for a more organized and intuitive user experience
6
+ * @documentation https://nvidia.github.io/elements/docs/elements/dropdown-group/
6
7
  * @since 1.30.1
7
8
  * @entrypoint \@nvidia-elements/core/dropdown-group
8
9
  * @slot - default slot for dropdown content
@@ -15,14 +16,14 @@ import { Dropdown } from '../dropdown';
15
16
  */
16
17
  export declare class DropdownGroup extends LitElement {
17
18
  #private;
18
- static styles: import('lit').CSSResult[];
19
+ static styles: import("lit").CSSResult[];
19
20
  static readonly metadata: {
20
21
  tag: string;
21
22
  version: string;
22
23
  children: string[];
23
24
  };
24
25
  protected dropdowns: Dropdown[];
25
- render(): import('lit').TemplateResult<1>;
26
+ render(): import("lit").TemplateResult<1>;
26
27
  connectedCallback(): void;
27
28
  disconnectedCallback(): void;
28
29
  close(): void;
@@ -2,7 +2,7 @@ import { audit as e } from "../internal/controllers/audit.controller.js";
2
2
  import { isSimpleFocusable as t } from "../internal/utils/focus.js";
3
3
  import { appendRootNodeStyle as n, clickOutsideElementBounds as r, getFlattenedFocusableItems as i } from "../internal/utils/dom.js";
4
4
  import { useStyles as a } from "../internal/styles/index.js";
5
- import { __decorate as o } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
5
+ import o from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
6
6
  import s from "./dropdown-group.global.js";
7
7
  import { LitElement as c, html as l } from "lit";
8
8
  import { queryAssignedElements as u } from "lit/decorators/query-assigned-elements.js";
@@ -14,7 +14,7 @@ var d = class extends c {
14
14
  static {
15
15
  this.metadata = {
16
16
  tag: "nve-dropdown-group",
17
- version: "2.0.4",
17
+ version: "2.1.1",
18
18
  children: ["nve-dropdown"]
19
19
  };
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-group.js","names":["#syncDropdowns","#pointerup","#_pointerup","#keydown","#onOpen","#onClose"],"sources":["../../src/dropdown-group/dropdown-group.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 { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport {\n clickOutsideElementBounds,\n appendRootNodeStyle,\n getFlattenedFocusableItems,\n isSimpleFocusable,\n useStyles,\n audit\n} from '@nvidia-elements/core/internal';\nimport type { Dropdown } from '@nvidia-elements/core/dropdown';\nimport globalStyles from './dropdown-group.global.css?inline';\n\n/**\n * @element nve-dropdown-group\n * @description A Dropdown Group streamlines the management of linked dropdowns and supports nested dropdowns for a more organized and intuitive user experience\n * @since 1.30.1\n * @entrypoint \\@nvidia-elements/core/dropdown-group\n * @slot - default slot for dropdown content\n * @event open - Dispatched when a dropdown in the group opens\n * @event close - Dispatched when a dropdown in the group closes\n * @cssprop --nve-dropdown-group-spacing\n * @cssprop --nve-dropdown-group-transition\n * @cssprop --arrow-transform - Transform applied to the popover arrow\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class DropdownGroup extends LitElement {\n static styles = useStyles([]);\n\n static readonly metadata = {\n tag: 'nve-dropdown-group',\n version: '0.0.0',\n children: ['nve-dropdown']\n };\n\n @queryAssignedElements() protected dropdowns!: Dropdown[];\n\n render() {\n return html`\n <div internal-host>\n <slot @slotchange=${this.#syncDropdowns}></slot>\n </div>\n `;\n }\n\n #_pointerup = (e: PointerEvent) => this.#pointerup(e);\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n globalThis.document?.addEventListener('pointerup', this.#_pointerup);\n this.addEventListener('keydown', this.#keydown);\n this.addEventListener('open', this.#onOpen as EventListener);\n this.addEventListener('close', this.#onClose as EventListener);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n globalThis.document?.removeEventListener('pointerup', this.#_pointerup);\n this.removeEventListener('keydown', this.#keydown);\n this.removeEventListener('open', this.#onOpen as EventListener);\n this.removeEventListener('close', this.#onClose as EventListener);\n }\n\n #syncDropdowns() {\n this.dropdowns.forEach(dropdown => {\n dropdown.popoverType = 'manual';\n });\n }\n\n #pointerup(event: PointerEvent) {\n const multipleDropdownsOpen = this.dropdowns.some(dropdown => dropdown.matches(':popover-open'));\n const pointerIsOutsideGroup = this.dropdowns.every(dropdown => clickOutsideElementBounds(event, dropdown));\n if (multipleDropdownsOpen && pointerIsOutsideGroup) {\n this.close();\n }\n }\n\n #keydown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n if (event.code === 'Escape') {\n this.close();\n }\n if (event.code === 'ArrowRight') {\n const targetId = target.getAttribute('popovertarget');\n const dropdown = this.dropdowns.find(d => d.id === targetId);\n dropdown?.showPopover();\n }\n if (event.code === 'ArrowLeft' && isSimpleFocusable(event.target as HTMLElement)) {\n target.closest('nve-dropdown')?.hidePopover();\n }\n }\n\n #onOpen(event: CustomEvent) {\n const dropdown = event.target as HTMLElement;\n const isLocalDropdown = dropdown.localName === 'nve-dropdown' && this.dropdowns.find(d => d === dropdown);\n if (isLocalDropdown) {\n getFlattenedFocusableItems(dropdown)[0]?.focus();\n }\n }\n\n #onClose(event: CustomEvent) {\n const element = event.target as HTMLElement;\n const isLocalDropdown = element.localName === 'nve-dropdown' && this.dropdowns.find(d => d === element);\n if (isLocalDropdown) {\n // _activeTrigger is a popover controller internal API\n const dropdown = element as Dropdown & { _activeTrigger?: HTMLElement };\n dropdown._activeTrigger?.focus();\n }\n }\n\n close() {\n this.querySelectorAll('nve-dropdown').forEach(d => d.hidePopover());\n }\n}\n"],"mappings":";;;;;;;;;AA8BO,IAAA,IAAA,cAA4B,EAAW;;gBAC5B,EAAU,CAAC,CAAC;;;kBAED;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,cAAc;EAC3B;;CAIA,SAAS;EACP,OAAO,CAAI,yCAEa,KAAKA,GAAe;CAG9C;CAEA,MAAe,MAAoB,KAAKC,GAAW,CAAC;CAEpD,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxB,EAAoB,MAAM,CAAY,GACtC,WAAW,UAAU,iBAAiB,aAAa,KAAKC,EAAW,GACnE,KAAK,iBAAiB,WAAW,KAAKC,EAAQ,GAC9C,KAAK,iBAAiB,QAAQ,KAAKC,EAAwB,GAC3D,KAAK,iBAAiB,SAAS,KAAKC,EAAyB;CAC/D;CAEA,uBAAuB;EAKrB,AAJA,MAAM,qBAAqB,GAC3B,WAAW,UAAU,oBAAoB,aAAa,KAAKH,EAAW,GACtE,KAAK,oBAAoB,WAAW,KAAKC,EAAQ,GACjD,KAAK,oBAAoB,QAAQ,KAAKC,EAAwB,GAC9D,KAAK,oBAAoB,SAAS,KAAKC,EAAyB;CAClE;CAEA,KAAiB;EACf,KAAK,UAAU,SAAQ,MAAY;GACjC,EAAS,cAAc;EACzB,CAAC;CACH;CAEA,GAAW,GAAqB;EAC9B,IAAM,IAAwB,KAAK,UAAU,MAAK,MAAY,EAAS,QAAQ,eAAe,CAAC,GACzF,IAAwB,KAAK,UAAU,OAAM,MAAY,EAA0B,GAAO,CAAQ,CAAC;EACzG,AAAI,KAAyB,KAC3B,KAAK,MAAM;CAEf;CAEA,GAAS,GAAsB;EAC7B,IAAM,IAAS,EAAM;EAIrB,IAHI,EAAM,SAAS,YACjB,KAAK,MAAM,GAET,EAAM,SAAS,cAAc;GAC/B,IAAM,IAAW,EAAO,aAAa,eAAe;GAEpD,KADsB,UAAU,MAAK,MAAK,EAAE,OAAO,CACnD,GAAU,YAAY;EACxB;EACA,AAAI,EAAM,SAAS,eAAe,EAAkB,EAAM,MAAqB,KAC7E,EAAO,QAAQ,cAAc,GAAG,YAAY;CAEhD;CAEA,GAAQ,GAAoB;EAC1B,IAAM,IAAW,EAAM;EAEvB,AADwB,EAAS,cAAc,kBAAkB,KAAK,UAAU,MAAK,MAAK,MAAM,CAAQ,KAEtG,EAA2B,CAAQ,EAAE,IAAI,MAAM;CAEnD;CAEA,GAAS,GAAoB;EAC3B,IAAM,IAAU,EAAM;EAEtB,AADwB,EAAQ,cAAc,kBAAkB,KAAK,UAAU,MAAK,MAAK,MAAM,CAAO,KAIpG,EAAS,gBAAgB,MAAM;CAEnC;CAEA,QAAQ;EACN,KAAK,iBAAiB,cAAc,EAAE,SAAQ,MAAK,EAAE,YAAY,CAAC;CACpE;AACF;GA/EG,EAAsB,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,UAVxB,EAAM,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"dropdown-group.js","names":["#syncDropdowns","#pointerup","#_pointerup","#keydown","#onOpen","#onClose"],"sources":["../../src/dropdown-group/dropdown-group.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 { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport {\n clickOutsideElementBounds,\n appendRootNodeStyle,\n getFlattenedFocusableItems,\n isSimpleFocusable,\n useStyles,\n audit\n} from '@nvidia-elements/core/internal';\nimport type { Dropdown } from '@nvidia-elements/core/dropdown';\nimport globalStyles from './dropdown-group.global.css?inline';\n\n/**\n * @element nve-dropdown-group\n * @description A Dropdown Group streamlines the management of linked dropdowns and supports nested dropdowns for a more organized and intuitive user experience\n * @documentation https://nvidia.github.io/elements/docs/elements/dropdown-group/\n * @since 1.30.1\n * @entrypoint \\@nvidia-elements/core/dropdown-group\n * @slot - default slot for dropdown content\n * @event open - Dispatched when a dropdown in the group opens\n * @event close - Dispatched when a dropdown in the group closes\n * @cssprop --nve-dropdown-group-spacing\n * @cssprop --nve-dropdown-group-transition\n * @cssprop --arrow-transform - Transform applied to the popover arrow\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/menubar/\n */\n@audit()\nexport class DropdownGroup extends LitElement {\n static styles = useStyles([]);\n\n static readonly metadata = {\n tag: 'nve-dropdown-group',\n version: '0.0.0',\n children: ['nve-dropdown']\n };\n\n @queryAssignedElements() protected dropdowns!: Dropdown[];\n\n render() {\n return html`\n <div internal-host>\n <slot @slotchange=${this.#syncDropdowns}></slot>\n </div>\n `;\n }\n\n #_pointerup = (e: PointerEvent) => this.#pointerup(e);\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n globalThis.document?.addEventListener('pointerup', this.#_pointerup);\n this.addEventListener('keydown', this.#keydown);\n this.addEventListener('open', this.#onOpen as EventListener);\n this.addEventListener('close', this.#onClose as EventListener);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n globalThis.document?.removeEventListener('pointerup', this.#_pointerup);\n this.removeEventListener('keydown', this.#keydown);\n this.removeEventListener('open', this.#onOpen as EventListener);\n this.removeEventListener('close', this.#onClose as EventListener);\n }\n\n #syncDropdowns() {\n this.dropdowns.forEach(dropdown => {\n dropdown.popoverType = 'manual';\n });\n }\n\n #pointerup(event: PointerEvent) {\n const multipleDropdownsOpen = this.dropdowns.some(dropdown => dropdown.matches(':popover-open'));\n const pointerIsOutsideGroup = this.dropdowns.every(dropdown => clickOutsideElementBounds(event, dropdown));\n if (multipleDropdownsOpen && pointerIsOutsideGroup) {\n this.close();\n }\n }\n\n #keydown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n if (event.code === 'Escape') {\n this.close();\n }\n if (event.code === 'ArrowRight') {\n const targetId = target.getAttribute('popovertarget');\n const dropdown = this.dropdowns.find(d => d.id === targetId);\n dropdown?.showPopover();\n }\n if (event.code === 'ArrowLeft' && isSimpleFocusable(event.target as HTMLElement)) {\n target.closest('nve-dropdown')?.hidePopover();\n }\n }\n\n #onOpen(event: CustomEvent) {\n const dropdown = event.target as HTMLElement;\n const isLocalDropdown = dropdown.localName === 'nve-dropdown' && this.dropdowns.find(d => d === dropdown);\n if (isLocalDropdown) {\n getFlattenedFocusableItems(dropdown)[0]?.focus();\n }\n }\n\n #onClose(event: CustomEvent) {\n const element = event.target as HTMLElement;\n const isLocalDropdown = element.localName === 'nve-dropdown' && this.dropdowns.find(d => d === element);\n if (isLocalDropdown) {\n // _activeTrigger is a popover controller internal API\n const dropdown = element as Dropdown & { _activeTrigger?: HTMLElement };\n dropdown._activeTrigger?.focus();\n }\n }\n\n close() {\n this.querySelectorAll('nve-dropdown').forEach(d => d.hidePopover());\n }\n}\n"],"mappings":";;;;;;;;;AA+BO,IAAA,IAAA,cAA4B,EAAW;;gBAC5B,EAAU,CAAC,CAAC;;;kBAED;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,cAAc;EAC3B;;CAIA,SAAS;EACP,OAAO,CAAI,yCAEa,KAAKA,GAAe;CAG9C;CAEA,MAAe,MAAoB,KAAKC,GAAW,CAAC;CAEpD,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxB,EAAoB,MAAM,CAAY,GACtC,WAAW,UAAU,iBAAiB,aAAa,KAAKC,EAAW,GACnE,KAAK,iBAAiB,WAAW,KAAKC,EAAQ,GAC9C,KAAK,iBAAiB,QAAQ,KAAKC,EAAwB,GAC3D,KAAK,iBAAiB,SAAS,KAAKC,EAAyB;CAC/D;CAEA,uBAAuB;EAKrB,AAJA,MAAM,qBAAqB,GAC3B,WAAW,UAAU,oBAAoB,aAAa,KAAKH,EAAW,GACtE,KAAK,oBAAoB,WAAW,KAAKC,EAAQ,GACjD,KAAK,oBAAoB,QAAQ,KAAKC,EAAwB,GAC9D,KAAK,oBAAoB,SAAS,KAAKC,EAAyB;CAClE;CAEA,KAAiB;EACf,KAAK,UAAU,SAAQ,MAAY;GACjC,EAAS,cAAc;EACzB,CAAC;CACH;CAEA,GAAW,GAAqB;EAC9B,IAAM,IAAwB,KAAK,UAAU,MAAK,MAAY,EAAS,QAAQ,eAAe,CAAC,GACzF,IAAwB,KAAK,UAAU,OAAM,MAAY,EAA0B,GAAO,CAAQ,CAAC;EACzG,AAAI,KAAyB,KAC3B,KAAK,MAAM;CAEf;CAEA,GAAS,GAAsB;EAC7B,IAAM,IAAS,EAAM;EAIrB,IAHI,EAAM,SAAS,YACjB,KAAK,MAAM,GAET,EAAM,SAAS,cAAc;GAC/B,IAAM,IAAW,EAAO,aAAa,eAAe;GAEpD,KADsB,UAAU,MAAK,MAAK,EAAE,OAAO,CACnD,CAAA,EAAU,YAAY;EACxB;EACA,AAAI,EAAM,SAAS,eAAe,EAAkB,EAAM,MAAqB,KAC7E,EAAO,QAAQ,cAAc,CAAC,EAAE,YAAY;CAEhD;CAEA,GAAQ,GAAoB;EAC1B,IAAM,IAAW,EAAM;EAEvB,AADwB,EAAS,cAAc,kBAAkB,KAAK,UAAU,MAAK,MAAK,MAAM,CAAQ,KAEtG,EAA2B,CAAQ,CAAC,CAAC,EAAE,EAAE,MAAM;CAEnD;CAEA,GAAS,GAAoB;EAC3B,IAAM,IAAU,EAAM;EAEtB,AADwB,EAAQ,cAAc,kBAAkB,KAAK,UAAU,MAAK,MAAK,MAAM,CAAO,KAIpG,EAAS,gBAAgB,MAAM;CAEnC;CAEA,QAAQ;EACN,KAAK,iBAAiB,cAAc,CAAC,CAAC,SAAQ,MAAK,EAAE,YAAY,CAAC;CACpE;AACF;GA/EG,EAAsB,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,UAVxB,EAAM,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Dropzone } from '.';
1
+ import { Dropzone } from '@nvidia-elements/core/dropzone';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-dropzone': Dropzone;
@@ -1,10 +1,11 @@
1
1
  import { LitElement } from 'lit';
2
- import { Icon } from '../icon';
3
- import { fileTypeValidator } from './dropzone.util';
4
- declare const Dropzone_base: import('@nvidia-elements/forms/mixins').FormControlMixinReturn<typeof LitElement, File[]>;
2
+ import { Icon } from '@nvidia-elements/core/icon';
3
+ import { fileSizeValidator } from './dropzone.util';
4
+ declare const Dropzone_base: import("@nvidia-elements/forms/mixins").FormControlMixinReturn<typeof LitElement, File[]>;
5
5
  /**
6
6
  * @element nve-dropzone
7
7
  * @description A dropzone form control that enables users to drag and drop files onto it.
8
+ * @documentation https://nvidia.github.io/elements/docs/elements/dropzone/
8
9
  * @since 1.29.0
9
10
  * @entrypoint \@nvidia-elements/core/dropzone
10
11
  * @event change - Dispatched when the value has changed (files located in event.target)
@@ -27,28 +28,28 @@ export declare class Dropzone extends Dropzone_base {
27
28
  /**
28
29
  * Enables internal string values to update for internationalization.
29
30
  */
30
- i18n: Partial<import('../internal').I18nStrings & {
31
+ i18n: Partial<import("@nvidia-elements/core/internal").I18nStrings & {
31
32
  __set: boolean;
32
33
  }>;
33
34
  private fileInput;
34
- static styles: import('lit').CSSResult[];
35
+ static styles: import("lit").CSSResult[];
35
36
  static readonly metadata: {
36
37
  tag: string;
37
38
  version: string;
38
- validators: (typeof fileTypeValidator)[];
39
+ validators: (typeof fileSizeValidator)[];
39
40
  valueSchema: {
40
- type: "array";
41
+ type: 'array';
41
42
  items: {
42
- type: "object";
43
+ type: 'object';
43
44
  properties: {
44
45
  name: {
45
- type: "string";
46
+ type: 'string';
46
47
  };
47
48
  size: {
48
- type: "number";
49
+ type: 'number';
49
50
  };
50
51
  type: {
51
- type: "string";
52
+ type: 'string';
52
53
  };
53
54
  };
54
55
  };
@@ -61,6 +62,6 @@ export declare class Dropzone extends Dropzone_base {
61
62
  constructor();
62
63
  connectedCallback(): void;
63
64
  disconnectedCallback(): void;
64
- render(): import('lit').TemplateResult<1>;
65
+ render(): import("lit").TemplateResult<1>;
65
66
  }
66
67
  export {};
@@ -1,4 +1,4 @@
1
- import { ValidatorResult } from '@nvidia-elements/forms';
1
+ import type { ValidatorResult } from '@nvidia-elements/forms';
2
2
  export declare function getFileTypeSpecifiers(acceptTypes: string): string[];
3
3
  export declare function fileSizeValidator(value: unknown, element: unknown): ValidatorResult;
4
4
  export declare function fileTypeValidator(value: unknown, element: unknown): ValidatorResult;
@@ -1 +1 @@
1
- {"version":3,"file":"dropzone.util.js","names":[],"sources":["../../src/dropzone/dropzone.util.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatFileSize } from '@nvidia-elements/core/internal';\nimport type { Dropzone } from './dropzone';\nimport type { ValidatorResult } from '@nvidia-elements/forms';\n\nexport function getFileTypeSpecifiers(acceptTypes: string) {\n const types = acceptTypes.split(',').map((value: string) => {\n let type = value.trim();\n if (type.startsWith('.')) {\n type = type.slice(1);\n }\n if (type.endsWith('/*')) {\n type = type.split('/')[0]!;\n }\n if (type.includes('/')) {\n type = type.split('/')[1]!;\n }\n if (type.includes('+')) {\n type = type.split('+')[0]!;\n }\n return type;\n });\n return types;\n}\n\nexport function fileSizeValidator(value: unknown, element: unknown): ValidatorResult {\n const dropzone = element as Dropzone;\n const files = value as File[];\n\n if (!files || !Array.isArray(files) || files.length === 0) {\n return { validity: { valid: true } };\n }\n\n const invalid = files.filter(file => file.size > dropzone.maxFileSize).length > 0;\n\n if (invalid) {\n return {\n validity: { rangeOverflow: true, valid: false },\n message: `Some files exceed the maximum size of ${formatFileSize(dropzone.maxFileSize)}`\n };\n }\n return { validity: { valid: true } };\n}\n\nexport function fileTypeValidator(value: unknown, element: unknown): ValidatorResult {\n const dropzone = element as Dropzone;\n const files = value as File[];\n\n if (!files || !Array.isArray(files) || files.length === 0) {\n return { validity: { valid: true } };\n }\n\n const acceptedTypes = getFileTypeSpecifiers(dropzone.accept);\n\n const invalidFiles = files.filter(file => {\n return !acceptedTypes.some((acceptedType: string) => {\n return file.type.includes(acceptedType);\n });\n });\n\n if (invalidFiles.length > 0) {\n return { validity: { typeMismatch: true, valid: false }, message: `Some files are not of accepted types` };\n }\n return { validity: { valid: true } };\n}\n"],"mappings":";;AAOA,SAAgB,EAAsB,GAAqB;CAiBzD,OAhBc,EAAY,MAAM,GAAG,EAAE,KAAK,MAAkB;EAC1D,IAAI,IAAO,EAAM,KAAK;EAatB,OAZI,EAAK,WAAW,GAAG,MACrB,IAAO,EAAK,MAAM,CAAC,IAEjB,EAAK,SAAS,IAAI,MACpB,IAAO,EAAK,MAAM,GAAG,EAAE,KAErB,EAAK,SAAS,GAAG,MACnB,IAAO,EAAK,MAAM,GAAG,EAAE,KAErB,EAAK,SAAS,GAAG,MACnB,IAAO,EAAK,MAAM,GAAG,EAAE,KAElB;CACT,CACO;AACT;AAEA,SAAgB,EAAkB,GAAgB,GAAmC;CACnF,IAAM,IAAW,GACX,IAAQ;CAcd,OAZI,CAAC,KAAS,CAAC,MAAM,QAAQ,CAAK,KAAK,EAAM,WAAW,IAC/C,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE,IAGrB,EAAM,QAAO,MAAQ,EAAK,OAAO,EAAS,WAAW,EAAE,SAAS,IAGvE;EACL,UAAU;GAAE,eAAe;GAAM,OAAO;EAAM;EAC9C,SAAS,yCAAyC,EAAe,EAAS,WAAW;CACvF,IAEK,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE;AACrC;AAEA,SAAgB,EAAkB,GAAgB,GAAmC;CACnF,IAAM,IAAW,GACX,IAAQ;CAEd,IAAI,CAAC,KAAS,CAAC,MAAM,QAAQ,CAAK,KAAK,EAAM,WAAW,GACtD,OAAO,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE;CAGrC,IAAM,IAAgB,EAAsB,EAAS,MAAM;CAW3D,OATqB,EAAM,QAAO,MACzB,CAAC,EAAc,MAAM,MACnB,EAAK,KAAK,SAAS,CAAY,CACvC,CAGC,EAAa,SAAS,IACjB;EAAE,UAAU;GAAE,cAAc;GAAM,OAAO;EAAM;EAAG,SAAS;CAAuC,IAEpG,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE;AACrC"}
1
+ {"version":3,"file":"dropzone.util.js","names":[],"sources":["../../src/dropzone/dropzone.util.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { formatFileSize } from '@nvidia-elements/core/internal';\nimport type { Dropzone } from './dropzone';\nimport type { ValidatorResult } from '@nvidia-elements/forms';\n\nexport function getFileTypeSpecifiers(acceptTypes: string) {\n const types = acceptTypes.split(',').map((value: string) => {\n let type = value.trim();\n if (type.startsWith('.')) {\n type = type.slice(1);\n }\n if (type.endsWith('/*')) {\n type = type.split('/')[0]!;\n }\n if (type.includes('/')) {\n type = type.split('/')[1]!;\n }\n if (type.includes('+')) {\n type = type.split('+')[0]!;\n }\n return type;\n });\n return types;\n}\n\nexport function fileSizeValidator(value: unknown, element: unknown): ValidatorResult {\n const dropzone = element as Dropzone;\n const files = value as File[];\n\n if (!files || !Array.isArray(files) || files.length === 0) {\n return { validity: { valid: true } };\n }\n\n const invalid = files.filter(file => file.size > dropzone.maxFileSize).length > 0;\n\n if (invalid) {\n return {\n validity: { rangeOverflow: true, valid: false },\n message: `Some files exceed the maximum size of ${formatFileSize(dropzone.maxFileSize)}`\n };\n }\n return { validity: { valid: true } };\n}\n\nexport function fileTypeValidator(value: unknown, element: unknown): ValidatorResult {\n const dropzone = element as Dropzone;\n const files = value as File[];\n\n if (!files || !Array.isArray(files) || files.length === 0) {\n return { validity: { valid: true } };\n }\n\n const acceptedTypes = getFileTypeSpecifiers(dropzone.accept);\n\n const invalidFiles = files.filter(file => {\n return !acceptedTypes.some((acceptedType: string) => {\n return file.type.includes(acceptedType);\n });\n });\n\n if (invalidFiles.length > 0) {\n return { validity: { typeMismatch: true, valid: false }, message: `Some files are not of accepted types` };\n }\n return { validity: { valid: true } };\n}\n"],"mappings":";;AAOA,SAAgB,EAAsB,GAAqB;CAiBzD,OAhBc,EAAY,MAAM,GAAG,CAAC,CAAC,KAAK,MAAkB;EAC1D,IAAI,IAAO,EAAM,KAAK;EAatB,OAZI,EAAK,WAAW,GAAG,MACrB,IAAO,EAAK,MAAM,CAAC,IAEjB,EAAK,SAAS,IAAI,MACpB,IAAO,EAAK,MAAM,GAAG,CAAC,CAAC,KAErB,EAAK,SAAS,GAAG,MACnB,IAAO,EAAK,MAAM,GAAG,CAAC,CAAC,KAErB,EAAK,SAAS,GAAG,MACnB,IAAO,EAAK,MAAM,GAAG,CAAC,CAAC,KAElB;CACT,CACO;AACT;AAEA,SAAgB,EAAkB,GAAgB,GAAmC;CACnF,IAAM,IAAW,GACX,IAAQ;CAcd,OAZI,CAAC,KAAS,CAAC,MAAM,QAAQ,CAAK,KAAK,EAAM,WAAW,IAC/C,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE,IAGrB,EAAM,QAAO,MAAQ,EAAK,OAAO,EAAS,WAAW,CAAC,CAAC,SAAS,IAGvE;EACL,UAAU;GAAE,eAAe;GAAM,OAAO;EAAM;EAC9C,SAAS,yCAAyC,EAAe,EAAS,WAAW;CACvF,IAEK,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE;AACrC;AAEA,SAAgB,EAAkB,GAAgB,GAAmC;CACnF,IAAM,IAAW,GACX,IAAQ;CAEd,IAAI,CAAC,KAAS,CAAC,MAAM,QAAQ,CAAK,KAAK,EAAM,WAAW,GACtD,OAAO,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE;CAGrC,IAAM,IAAgB,EAAsB,EAAS,MAAM;CAW3D,OATqB,EAAM,QAAO,MACzB,CAAC,EAAc,MAAM,MACnB,EAAK,KAAK,SAAS,CAAY,CACvC,CAGC,CAAA,CAAa,SAAS,IACjB;EAAE,UAAU;GAAE,cAAc;GAAM,OAAO;EAAM;EAAG,SAAS;CAAuC,IAEpG,EAAE,UAAU,EAAE,OAAO,GAAK,EAAE;AACrC"}
@@ -3,7 +3,7 @@ import { I18nController as t } from "../internal/controllers/i18n.controller.js"
3
3
  import { removeEmptyTextNode as n } from "../internal/utils/dom.js";
4
4
  import { scopedRegistry as r } from "../internal/decorators/scoped-registry.js";
5
5
  import { useStyles as i } from "../internal/styles/index.js";
6
- import { __decorate as a } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
6
+ import a from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
7
7
  import { Icon as o } from "../icon/icon2.js";
8
8
  import s from "./dropzone.js";
9
9
  import { fileSizeValidator as c, fileTypeValidator as l, getFileTypeSpecifiers as u } from "./dropzone.util.js";
@@ -20,7 +20,7 @@ var g = class extends m(d) {
20
20
  static {
21
21
  this.metadata = {
22
22
  tag: "nve-dropzone",
23
- version: "2.0.4",
23
+ version: "2.1.1",
24
24
  validators: [l, c],
25
25
  valueSchema: {
26
26
  type: "array",
@@ -1 +1 @@
1
- {"version":3,"file":"dropzone2.js","names":["#i18nController","#preventDefaults","#toggleHighlighted","#addFiles","#handleClick","#handleDragEnter","#handleDragOver","#handleDragLeave","#handleDrop","#removeEmptyNodes","#formatFileTypeSpecifiers","#handleFileInputChange"],"sources":["../../src/dropzone/dropzone.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { query } from 'lit/decorators/query.js';\nimport {\n formatFileSize,\n useStyles,\n removeEmptyTextNode,\n I18nController,\n scopedRegistry\n} from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './dropzone.css?inline';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixins';\nimport { fileTypeValidator, fileSizeValidator, getFileTypeSpecifiers } from './dropzone.util';\n\n/**\n * @element nve-dropzone\n * @description A dropzone form control that enables users to drag and drop files onto it.\n * @since 1.29.0\n * @entrypoint \\@nvidia-elements/core/dropzone\n * @event change - Dispatched when the value has changed (files located in event.target)\n * @slot - use only when custom messaging requires it\n * @cssprop --background\n * @cssprop --border-color\n * @cssprop --border-radius\n * @cssprop --padding\n * @cssprop --min-height\n * @cssprop --color\n * @slot icon - default slot for icon\n * @slot content - default slot for content\n * @csspart icon - The upload icon element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file\n */\n@scopedRegistry()\nexport class Dropzone extends FormControlMixin<typeof LitElement, File[]>(LitElement) {\n @property()\n accept: string = `image/gif, image/jpeg, image/png, image/svg+xml`;\n\n @property({ attribute: 'max-file-size', type: Number })\n maxFileSize: number = 2 * 1024 ** 2;\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 @query('#dropzone-input')\n private fileInput: HTMLInputElement;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dropzone',\n version: '0.0.0',\n validators: [fileTypeValidator, fileSizeValidator],\n valueSchema: {\n type: 'array' as const,\n items: {\n type: 'object' as const,\n properties: {\n name: { type: 'string' as const },\n size: { type: 'number' as const },\n type: { type: 'string' as const }\n }\n }\n }\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n formResetCallback() {\n this.value = [];\n this.requestUpdate();\n }\n\n constructor() {\n super();\n this.value = [];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('nve-control', '');\n globalThis.document.addEventListener('dragover', this.#preventDefaults);\n globalThis.document.addEventListener('drop', this.#preventDefaults);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n globalThis.document.removeEventListener('dragover', this.#preventDefaults);\n globalThis.document.removeEventListener('drop', this.#preventDefaults);\n }\n\n #preventDefaults(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n #handleClick() {\n this.fileInput.click();\n }\n\n #handleDragEnter(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(true);\n }\n\n #handleDragOver(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(true);\n }\n\n #handleDragLeave(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(false);\n }\n\n #handleDrop(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(false);\n\n const files = Array.from(event.dataTransfer!.files);\n this.#addFiles(files);\n }\n\n #handleFileInputChange(event: Event) {\n this.#preventDefaults(event);\n\n const files = Array.from(this.fileInput.files!);\n this.#addFiles(files);\n\n this.fileInput.value = '';\n }\n\n #addFiles(files: File[]) {\n this.value = [...(this.value ?? []), ...files];\n this.dispatchChangeEvent();\n }\n\n #formatFileTypeSpecifiers(acceptTypes: string) {\n const types = getFileTypeSpecifiers(acceptTypes);\n\n if (types.length === 1) {\n return types[0]!.toUpperCase();\n }\n\n const lastType = types.pop();\n return `${types.join(', ').toUpperCase()} or ${lastType!.toUpperCase()}`;\n }\n\n #toggleHighlighted(highlighted: boolean) {\n this.toggleAttribute('highlighted', highlighted);\n }\n\n #removeEmptyNodes(e: Event) {\n (e.target as HTMLSlotElement).assignedNodes().forEach((node: Node) => removeEmptyTextNode(node));\n }\n\n render() {\n return html`<div internal-host>\n <div class=\"container\"\n @click=${this.#handleClick} \n @dragenter=${this.#handleDragEnter}\n @dragover=${this.#handleDragOver}\n @dragleave=${this.#handleDragLeave}\n @drop=${this.#handleDrop}>\n <svg class=\"border\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"100%\" height=\"100%\" fill=\"none\" rx=\"4\" ry=\"4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-dasharray=\"6,6\" stroke-dashoffset=\"0\" stroke-linecap=\"square\" />\n </svg>\n <slot name=\"icon\"><nve-icon part=\"icon\" class=\"icon\" name=\"upload\"></nve-icon></slot>\n <slot @slotchange=${this.#removeEmptyNodes}>\n <div class=\"text-center\">\n <div class=\"text-bold\">${this.i18n.dragAndDrop} ${this.i18n.files} ${this.i18n.or} <span class=\"text-emphasized\">${this.i18n.browseFiles}</span></div>\n <div class=\"text-muted\">${this.#formatFileTypeSpecifiers(this.accept)} &mdash; ${this.i18n.maxFileSize} ${formatFileSize(this.maxFileSize)}</div>\n </div>\n </slot>\n <input id=\"dropzone-input\" type=\"file\" accept=${this.accept} @change=${this.#handleFileInputChange} multiple hidden></input>\n </div>\n </div>`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropzone2.js","names":["#i18nController","#preventDefaults","#toggleHighlighted","#addFiles","#handleClick","#handleDragEnter","#handleDragOver","#handleDragLeave","#handleDrop","#removeEmptyNodes","#formatFileTypeSpecifiers","#handleFileInputChange"],"sources":["../../src/dropzone/dropzone.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { query } from 'lit/decorators/query.js';\nimport {\n formatFileSize,\n useStyles,\n removeEmptyTextNode,\n I18nController,\n scopedRegistry\n} from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './dropzone.css?inline';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixins';\nimport { fileTypeValidator, fileSizeValidator, getFileTypeSpecifiers } from './dropzone.util';\n\n/**\n * @element nve-dropzone\n * @description A dropzone form control that enables users to drag and drop files onto it.\n * @documentation https://nvidia.github.io/elements/docs/elements/dropzone/\n * @since 1.29.0\n * @entrypoint \\@nvidia-elements/core/dropzone\n * @event change - Dispatched when the value has changed (files located in event.target)\n * @slot - use only when custom messaging requires it\n * @cssprop --background\n * @cssprop --border-color\n * @cssprop --border-radius\n * @cssprop --padding\n * @cssprop --min-height\n * @cssprop --color\n * @slot icon - default slot for icon\n * @slot content - default slot for content\n * @csspart icon - The upload icon element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file\n */\n@scopedRegistry()\nexport class Dropzone extends FormControlMixin<typeof LitElement, File[]>(LitElement) {\n @property()\n accept: string = `image/gif, image/jpeg, image/png, image/svg+xml`;\n\n @property({ attribute: 'max-file-size', type: Number })\n maxFileSize: number = 2 * 1024 ** 2;\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 @query('#dropzone-input')\n private fileInput: HTMLInputElement;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-dropzone',\n version: '0.0.0',\n validators: [fileTypeValidator, fileSizeValidator],\n valueSchema: {\n type: 'array' as const,\n items: {\n type: 'object' as const,\n properties: {\n name: { type: 'string' as const },\n size: { type: 'number' as const },\n type: { type: 'string' as const }\n }\n }\n }\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n formResetCallback() {\n this.value = [];\n this.requestUpdate();\n }\n\n constructor() {\n super();\n this.value = [];\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('nve-control', '');\n globalThis.document.addEventListener('dragover', this.#preventDefaults);\n globalThis.document.addEventListener('drop', this.#preventDefaults);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n globalThis.document.removeEventListener('dragover', this.#preventDefaults);\n globalThis.document.removeEventListener('drop', this.#preventDefaults);\n }\n\n #preventDefaults(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n #handleClick() {\n this.fileInput.click();\n }\n\n #handleDragEnter(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(true);\n }\n\n #handleDragOver(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(true);\n }\n\n #handleDragLeave(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(false);\n }\n\n #handleDrop(event: DragEvent) {\n this.#preventDefaults(event);\n this.#toggleHighlighted(false);\n\n const files = Array.from(event.dataTransfer!.files);\n this.#addFiles(files);\n }\n\n #handleFileInputChange(event: Event) {\n this.#preventDefaults(event);\n\n const files = Array.from(this.fileInput.files!);\n this.#addFiles(files);\n\n this.fileInput.value = '';\n }\n\n #addFiles(files: File[]) {\n this.value = [...(this.value ?? []), ...files];\n this.dispatchChangeEvent();\n }\n\n #formatFileTypeSpecifiers(acceptTypes: string) {\n const types = getFileTypeSpecifiers(acceptTypes);\n\n if (types.length === 1) {\n return types[0]!.toUpperCase();\n }\n\n const lastType = types.pop();\n return `${types.join(', ').toUpperCase()} or ${lastType!.toUpperCase()}`;\n }\n\n #toggleHighlighted(highlighted: boolean) {\n this.toggleAttribute('highlighted', highlighted);\n }\n\n #removeEmptyNodes(e: Event) {\n (e.target as HTMLSlotElement).assignedNodes().forEach((node: Node) => removeEmptyTextNode(node));\n }\n\n render() {\n return html`<div internal-host>\n <div class=\"container\"\n @click=${this.#handleClick} \n @dragenter=${this.#handleDragEnter}\n @dragover=${this.#handleDragOver}\n @dragleave=${this.#handleDragLeave}\n @drop=${this.#handleDrop}>\n <svg class=\"border\" width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"100%\" height=\"100%\" fill=\"none\" rx=\"4\" ry=\"4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-dasharray=\"6,6\" stroke-dashoffset=\"0\" stroke-linecap=\"square\" />\n </svg>\n <slot name=\"icon\"><nve-icon part=\"icon\" class=\"icon\" name=\"upload\"></nve-icon></slot>\n <slot @slotchange=${this.#removeEmptyNodes}>\n <div class=\"text-center\">\n <div class=\"text-bold\">${this.i18n.dragAndDrop} ${this.i18n.files} ${this.i18n.or} <span class=\"text-emphasized\">${this.i18n.browseFiles}</span></div>\n <div class=\"text-muted\">${this.#formatFileTypeSpecifiers(this.accept)} &mdash; ${this.i18n.maxFileSize} ${formatFileSize(this.maxFileSize)}</div>\n </div>\n </slot>\n <input id=\"dropzone-input\" type=\"file\" accept=${this.accept} @change=${this.#handleFileInputChange} multiple hidden></input>\n </div>\n </div>`;\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { File } from '.';
1
+ import { File } from '@nvidia-elements/core/file';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-file': File;
@@ -1,8 +1,9 @@
1
- import { CSSResult } from 'lit';
2
- import { Control } from '../forms';
1
+ import type { CSSResult } from 'lit';
2
+ import { Control } from '@nvidia-elements/core/forms';
3
3
  /**
4
4
  * @element nve-file
5
5
  * @description A file picker is a control that enables users to choose a file value.
6
+ * @documentation https://nvidia.github.io/elements/docs/elements/file/
6
7
  * @since 0.3.0
7
8
  * @entrypoint \@nvidia-elements/core/file
8
9
  * @cssprop --background