@nvidia-elements/core 2.0.4 → 2.1.0

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 (382) hide show
  1. package/CHANGELOG.md +13 -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 +13 -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 +5 -4
  8. package/dist/alert/alert-group2.js +2 -2
  9. package/dist/alert/alert.d.ts +6 -6
  10. package/dist/alert/alert2.js +2 -2
  11. package/dist/alert/define.d.ts +1 -1
  12. package/dist/avatar/avatar-group.d.ts +2 -2
  13. package/dist/avatar/avatar-group2.js +1 -1
  14. package/dist/avatar/avatar.d.ts +3 -3
  15. package/dist/avatar/avatar2.js +2 -2
  16. package/dist/avatar/define.d.ts +1 -1
  17. package/dist/badge/badge.d.ts +7 -6
  18. package/dist/badge/badge2.js +2 -2
  19. package/dist/badge/badge2.js.map +1 -1
  20. package/dist/badge/define.d.ts +1 -1
  21. package/dist/breadcrumb/breadcrumb.d.ts +4 -4
  22. package/dist/breadcrumb/breadcrumb2.js +2 -2
  23. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  24. package/dist/breadcrumb/define.d.ts +1 -1
  25. package/dist/bundle.d.ts +136 -67
  26. package/dist/bundles/index.d.ts +49 -0
  27. package/dist/bundles/index.js +4 -4
  28. package/dist/button/button.d.ts +4 -4
  29. package/dist/button/button2.js +2 -2
  30. package/dist/button/button2.js.map +1 -1
  31. package/dist/button/define.d.ts +1 -1
  32. package/dist/button-group/button-group.d.ts +5 -4
  33. package/dist/button-group/button-group2.js +2 -2
  34. package/dist/button-group/define.d.ts +1 -1
  35. package/dist/card/card.d.ts +9 -9
  36. package/dist/card/card2.js +5 -5
  37. package/dist/card/define.d.ts +1 -1
  38. package/dist/chat-message/chat-message.d.ts +3 -3
  39. package/dist/chat-message/chat-message2.js +2 -2
  40. package/dist/chat-message/define.d.ts +1 -1
  41. package/dist/checkbox/checkbox-group.d.ts +2 -2
  42. package/dist/checkbox/checkbox-group2.js +2 -2
  43. package/dist/checkbox/checkbox.d.ts +2 -2
  44. package/dist/checkbox/checkbox2.js +2 -2
  45. package/dist/checkbox/define.d.ts +1 -1
  46. package/dist/color/color.d.ts +5 -5
  47. package/dist/color/color2.js +2 -2
  48. package/dist/color/color2.js.map +1 -1
  49. package/dist/color/define.d.ts +1 -1
  50. package/dist/combobox/combobox.d.ts +12 -11
  51. package/dist/combobox/combobox2.js +2 -2
  52. package/dist/combobox/combobox2.js.map +1 -1
  53. package/dist/combobox/define.d.ts +1 -1
  54. package/dist/copy-button/copy-button.d.ts +7 -7
  55. package/dist/copy-button/copy-button2.js +2 -2
  56. package/dist/copy-button/copy-button2.js.map +1 -1
  57. package/dist/copy-button/define.d.ts +1 -1
  58. package/dist/custom-elements-jsx.d.ts +52 -0
  59. package/dist/custom-elements-vue.d.ts +52 -0
  60. package/dist/custom-elements.json +415 -1
  61. package/dist/data.html.json +67 -0
  62. package/dist/date/date.d.ts +5 -5
  63. package/dist/date/date2.js +2 -2
  64. package/dist/date/define.d.ts +1 -1
  65. package/dist/datetime/datetime.d.ts +5 -5
  66. package/dist/datetime/datetime2.js +2 -2
  67. package/dist/datetime/define.d.ts +1 -1
  68. package/dist/dialog/define.d.ts +1 -1
  69. package/dist/dialog/dialog-footer.d.ts +2 -2
  70. package/dist/dialog/dialog-footer2.js +2 -2
  71. package/dist/dialog/dialog-header.d.ts +2 -2
  72. package/dist/dialog/dialog-header2.js +2 -2
  73. package/dist/dialog/dialog.d.ts +6 -5
  74. package/dist/dialog/dialog2.js +2 -2
  75. package/dist/divider/define.d.ts +1 -1
  76. package/dist/divider/divider.d.ts +4 -3
  77. package/dist/divider/divider2.js +2 -2
  78. package/dist/dot/define.d.ts +1 -1
  79. package/dist/dot/dot.d.ts +3 -3
  80. package/dist/dot/dot2.js +2 -2
  81. package/dist/drawer/define.d.ts +1 -1
  82. package/dist/drawer/drawer-content.d.ts +2 -2
  83. package/dist/drawer/drawer-content2.js +2 -2
  84. package/dist/drawer/drawer-footer.d.ts +2 -2
  85. package/dist/drawer/drawer-footer2.js +2 -2
  86. package/dist/drawer/drawer-header.d.ts +2 -2
  87. package/dist/drawer/drawer-header2.js +2 -2
  88. package/dist/drawer/drawer.d.ts +6 -5
  89. package/dist/drawer/drawer2.js +2 -2
  90. package/dist/dropdown/define.d.ts +1 -1
  91. package/dist/dropdown/dropdown-footer.d.ts +2 -2
  92. package/dist/dropdown/dropdown-footer2.js +2 -2
  93. package/dist/dropdown/dropdown-header.d.ts +2 -2
  94. package/dist/dropdown/dropdown-header2.js +2 -2
  95. package/dist/dropdown/dropdown.d.ts +6 -5
  96. package/dist/dropdown/dropdown2.js +2 -2
  97. package/dist/dropdown-group/define.d.ts +1 -1
  98. package/dist/dropdown-group/dropdown-group.d.ts +3 -3
  99. package/dist/dropdown-group/dropdown-group.js +2 -2
  100. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  101. package/dist/dropzone/define.d.ts +1 -1
  102. package/dist/dropzone/dropzone.d.ts +12 -12
  103. package/dist/dropzone/dropzone.util.d.ts +1 -1
  104. package/dist/dropzone/dropzone.util.js.map +1 -1
  105. package/dist/dropzone/dropzone2.js +2 -2
  106. package/dist/dropzone/dropzone2.js.map +1 -1
  107. package/dist/file/define.d.ts +1 -1
  108. package/dist/file/file.d.ts +2 -2
  109. package/dist/file/file2.js +1 -1
  110. package/dist/format-datetime/define.d.ts +1 -1
  111. package/dist/format-datetime/format-datetime.d.ts +2 -2
  112. package/dist/format-datetime/format-datetime2.js +2 -2
  113. package/dist/format-datetime/format-datetime2.js.map +1 -1
  114. package/dist/format-number/define.d.ts +1 -1
  115. package/dist/format-number/format-number.d.ts +2 -2
  116. package/dist/format-number/format-number2.js +3 -3
  117. package/dist/format-number/format-number2.js.map +1 -1
  118. package/dist/format-relative-time/define.d.ts +1 -1
  119. package/dist/format-relative-time/format-relative-time.d.ts +2 -2
  120. package/dist/format-relative-time/format-relative-time2.js +2 -2
  121. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  122. package/dist/forms/control/control.d.ts +4 -3
  123. package/dist/forms/control/control2.js +2 -2
  124. package/dist/forms/control/control2.js.map +1 -1
  125. package/dist/forms/control-group/control-group.d.ts +4 -3
  126. package/dist/forms/control-group/control-group2.js +2 -2
  127. package/dist/forms/control-message/control-message.d.ts +4 -4
  128. package/dist/forms/control-message/control-message2.js +2 -2
  129. package/dist/forms/define.d.ts +1 -1
  130. package/dist/forms/utils/layout.d.ts +2 -2
  131. package/dist/forms/utils/layout.js +1 -1
  132. package/dist/forms/utils/layout.js.map +1 -1
  133. package/dist/forms/utils/states.d.ts +2 -2
  134. package/dist/forms/utils/states.js +1 -1
  135. package/dist/forms/utils/states.js.map +1 -1
  136. package/dist/gauge/define.d.ts +6 -0
  137. package/dist/gauge/define.js +7 -0
  138. package/dist/gauge/define.js.map +1 -0
  139. package/dist/gauge/gauge.d.ts +52 -0
  140. package/dist/gauge/gauge.examples.js +6 -0
  141. package/dist/gauge/gauge.examples.js.map +1 -0
  142. package/dist/gauge/gauge.examples.json +147 -0
  143. package/dist/gauge/gauge.js +6 -0
  144. package/dist/gauge/gauge.js.map +1 -0
  145. package/dist/gauge/gauge2.js +106 -0
  146. package/dist/gauge/gauge2.js.map +1 -0
  147. package/dist/gauge/index.d.ts +1 -0
  148. package/dist/gauge/index.js +2 -0
  149. package/dist/grid/cell/cell.d.ts +2 -2
  150. package/dist/grid/cell/cell2.js +1 -1
  151. package/dist/grid/column/column.d.ts +4 -3
  152. package/dist/grid/column/column2.js +2 -2
  153. package/dist/grid/column/column2.js.map +1 -1
  154. package/dist/grid/define.d.ts +1 -1
  155. package/dist/grid/footer/footer.d.ts +2 -2
  156. package/dist/grid/footer/footer2.js +2 -2
  157. package/dist/grid/grid.d.ts +6 -5
  158. package/dist/grid/grid2.js +2 -2
  159. package/dist/grid/grid2.js.map +1 -1
  160. package/dist/grid/header/header.d.ts +4 -3
  161. package/dist/grid/header/header2.js +2 -2
  162. package/dist/grid/header/header2.js.map +1 -1
  163. package/dist/grid/placeholder/placeholder.d.ts +2 -2
  164. package/dist/grid/placeholder/placeholder2.js +1 -1
  165. package/dist/grid/row/row.d.ts +2 -2
  166. package/dist/grid/row/row2.js +2 -2
  167. package/dist/icon/define.d.ts +1 -1
  168. package/dist/icon/icon.d.ts +6 -5
  169. package/dist/icon/icon2.js +3 -3
  170. package/dist/icon/icon2.js.map +1 -1
  171. package/dist/icon/icons.js.map +1 -1
  172. package/dist/icon-button/define.d.ts +1 -1
  173. package/dist/icon-button/icon-button.d.ts +6 -5
  174. package/dist/icon-button/icon-button2.js +2 -2
  175. package/dist/index.d.ts +1 -1
  176. package/dist/index.js +1 -1
  177. package/dist/input/define.d.ts +1 -1
  178. package/dist/input/input-group.d.ts +2 -2
  179. package/dist/input/input-group2.js +1 -1
  180. package/dist/input/input-group2.js.map +1 -1
  181. package/dist/input/input.d.ts +3 -3
  182. package/dist/input/input2.js +2 -2
  183. package/dist/internal/controllers/audit.controller.d.ts +1 -1
  184. package/dist/internal/controllers/i18n.controller.d.ts +3 -3
  185. package/dist/internal/controllers/i18n.controller.js +1 -1
  186. package/dist/internal/controllers/i18n.controller.js.map +1 -1
  187. package/dist/internal/controllers/keynav-grid.controller.d.ts +1 -1
  188. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  189. package/dist/internal/controllers/keynav-list.controller.d.ts +1 -1
  190. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  191. package/dist/internal/controllers/state-expanded.controller.d.ts +1 -1
  192. package/dist/internal/controllers/state-highlighted.controller.d.ts +1 -1
  193. package/dist/internal/controllers/state-scroll.controller.d.ts +1 -1
  194. package/dist/internal/controllers/state-selected.controller.d.ts +1 -1
  195. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  196. package/dist/internal/controllers/type-anchor.controller.d.ts +1 -1
  197. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  198. package/dist/internal/controllers/type-closable.controller.d.ts +1 -1
  199. package/dist/internal/controllers/type-expandable.controller.d.ts +1 -1
  200. package/dist/internal/controllers/type-native-popover.controller.d.ts +2 -2
  201. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  202. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  203. package/dist/internal/controllers/type-selectable.controller.d.ts +1 -1
  204. package/dist/internal/controllers/type-ssr.controller.d.ts +1 -1
  205. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  206. package/dist/internal/controllers/type-touch.controller.d.ts +2 -2
  207. package/dist/internal/controllers/type-touch.controller.js.map +1 -1
  208. package/dist/internal/decorators/host-attr.d.ts +2 -2
  209. package/dist/internal/services/global.service.d.ts +1 -1
  210. package/dist/internal/services/global.service.js +1 -1
  211. package/dist/internal/services/global.service.js.map +1 -1
  212. package/dist/internal/services/global.utils.js.map +1 -1
  213. package/dist/internal/services/i18n.service.js.map +1 -1
  214. package/dist/internal/services/transition.service.js.map +1 -1
  215. package/dist/internal/styles/index.d.ts +1 -1
  216. package/dist/internal/types/index.d.ts +3 -3
  217. package/dist/internal/utils/a11y.js.map +1 -1
  218. package/dist/internal/utils/audit-logs.js +1 -1
  219. package/dist/internal/utils/audit.js.map +1 -1
  220. package/dist/internal/utils/dom.d.ts +1 -1
  221. package/dist/internal/utils/dom.js +10 -10
  222. package/dist/internal/utils/dom.js.map +1 -1
  223. package/dist/internal/utils/focus.js.map +1 -1
  224. package/dist/internal/utils/objects.js.map +1 -1
  225. package/dist/internal/utils/strings.js +1 -1
  226. package/dist/internal/utils/strings.js.map +1 -1
  227. package/dist/logo/define.d.ts +1 -1
  228. package/dist/logo/logo.d.ts +3 -3
  229. package/dist/logo/logo2.js +2 -2
  230. package/dist/menu/define.d.ts +1 -1
  231. package/dist/menu/menu-item.d.ts +3 -3
  232. package/dist/menu/menu-item2.js +2 -2
  233. package/dist/menu/menu-item2.js.map +1 -1
  234. package/dist/menu/menu.d.ts +4 -4
  235. package/dist/menu/menu2.js +2 -2
  236. package/dist/menu/menu2.js.map +1 -1
  237. package/dist/month/define.d.ts +1 -1
  238. package/dist/month/month.d.ts +5 -5
  239. package/dist/month/month2.js +2 -2
  240. package/dist/notification/define.d.ts +1 -1
  241. package/dist/notification/notification-group.d.ts +4 -3
  242. package/dist/notification/notification-group2.js +2 -2
  243. package/dist/notification/notification.d.ts +9 -7
  244. package/dist/notification/notification2.js +2 -2
  245. package/dist/page/define.d.ts +1 -1
  246. package/dist/page/page-panel/page-panel-content.d.ts +2 -2
  247. package/dist/page/page-panel/page-panel-content2.js +1 -1
  248. package/dist/page/page-panel/page-panel-footer.d.ts +2 -2
  249. package/dist/page/page-panel/page-panel-footer2.js +2 -2
  250. package/dist/page/page-panel/page-panel-header.d.ts +2 -2
  251. package/dist/page/page-panel/page-panel-header2.js +2 -2
  252. package/dist/page/page-panel/page-panel.d.ts +4 -4
  253. package/dist/page/page-panel/page-panel2.js +2 -2
  254. package/dist/page/page.d.ts +2 -2
  255. package/dist/page/page2.js +2 -2
  256. package/dist/page-header/define.d.ts +1 -1
  257. package/dist/page-header/page-header.d.ts +2 -2
  258. package/dist/page-header/page-header2.js +1 -1
  259. package/dist/page-loader/define.d.ts +1 -1
  260. package/dist/page-loader/page-loader.d.ts +5 -4
  261. package/dist/page-loader/page-loader2.js +2 -2
  262. package/dist/pagination/define.d.ts +1 -1
  263. package/dist/pagination/pagination.d.ts +8 -8
  264. package/dist/pagination/pagination2.js +2 -2
  265. package/dist/pagination/pagination2.js.map +1 -1
  266. package/dist/panel/define.d.ts +1 -1
  267. package/dist/panel/panel.d.ts +10 -10
  268. package/dist/panel/panel2.js +5 -5
  269. package/dist/password/define.d.ts +1 -1
  270. package/dist/password/password.d.ts +5 -5
  271. package/dist/password/password2.js +2 -2
  272. package/dist/polyfills/custom-state-set.js.map +1 -1
  273. package/dist/polyfills/index.d.ts +13 -0
  274. package/dist/preferences-input/define.d.ts +1 -1
  275. package/dist/preferences-input/preferences-input.d.ts +13 -13
  276. package/dist/preferences-input/preferences-input2.js +2 -2
  277. package/dist/preferences-input/preferences-input2.js.map +1 -1
  278. package/dist/progress-bar/define.d.ts +1 -1
  279. package/dist/progress-bar/progress-bar.d.ts +3 -3
  280. package/dist/progress-bar/progress-bar2.js +2 -2
  281. package/dist/progress-ring/define.d.ts +1 -1
  282. package/dist/progress-ring/progress-ring.d.ts +7 -6
  283. package/dist/progress-ring/progress-ring2.js +4 -4
  284. package/dist/progress-ring/progress-ring2.js.map +1 -1
  285. package/dist/progressive-filter-chip/define.d.ts +1 -1
  286. package/dist/progressive-filter-chip/progressive-filter-chip.d.ts +7 -7
  287. package/dist/progressive-filter-chip/progressive-filter-chip2.js +2 -2
  288. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  289. package/dist/pulse/define.d.ts +1 -1
  290. package/dist/pulse/pulse.d.ts +4 -4
  291. package/dist/pulse/pulse2.js +2 -2
  292. package/dist/radio/define.d.ts +1 -1
  293. package/dist/radio/radio-group.d.ts +2 -2
  294. package/dist/radio/radio-group2.js +2 -2
  295. package/dist/radio/radio.d.ts +2 -2
  296. package/dist/radio/radio2.js +2 -2
  297. package/dist/range/define.d.ts +1 -1
  298. package/dist/range/range.d.ts +5 -4
  299. package/dist/range/range2.js +2 -2
  300. package/dist/resize-handle/define.d.ts +1 -1
  301. package/dist/resize-handle/resize-handle.d.ts +6 -6
  302. package/dist/resize-handle/resize-handle2.js +2 -2
  303. package/dist/resize-handle/resize-handle2.js.map +1 -1
  304. package/dist/search/define.d.ts +1 -1
  305. package/dist/search/search.d.ts +5 -5
  306. package/dist/search/search2.js +2 -2
  307. package/dist/select/define.d.ts +1 -1
  308. package/dist/select/select.d.ts +11 -10
  309. package/dist/select/select2.js +2 -2
  310. package/dist/select/select2.js.map +1 -1
  311. package/dist/skeleton/define.d.ts +1 -1
  312. package/dist/skeleton/skeleton.d.ts +3 -3
  313. package/dist/skeleton/skeleton2.js +2 -2
  314. package/dist/skeleton/skeleton2.js.map +1 -1
  315. package/dist/sort-button/define.d.ts +1 -1
  316. package/dist/sort-button/sort-button.d.ts +5 -5
  317. package/dist/sort-button/sort-button2.js +2 -2
  318. package/dist/sort-button/sort-button2.js.map +1 -1
  319. package/dist/sparkline/define.d.ts +1 -1
  320. package/dist/sparkline/sparkline.d.ts +5 -4
  321. package/dist/sparkline/sparkline.utils.d.ts +1 -1
  322. package/dist/sparkline/sparkline.utils.js.map +1 -1
  323. package/dist/sparkline/sparkline2.js +2 -2
  324. package/dist/sparkline/sparkline2.js.map +1 -1
  325. package/dist/star-rating/define.d.ts +1 -1
  326. package/dist/star-rating/star-rating.d.ts +5 -5
  327. package/dist/star-rating/star-rating2.js +2 -2
  328. package/dist/star-rating/star-rating2.js.map +1 -1
  329. package/dist/steps/define.d.ts +1 -1
  330. package/dist/steps/steps.d.ts +10 -9
  331. package/dist/steps/steps2.js +3 -3
  332. package/dist/steps/steps2.js.map +1 -1
  333. package/dist/switch/define.d.ts +1 -1
  334. package/dist/switch/switch-group.d.ts +2 -2
  335. package/dist/switch/switch-group2.js +2 -2
  336. package/dist/switch/switch.d.ts +2 -2
  337. package/dist/switch/switch2.js +2 -2
  338. package/dist/tabs/define.d.ts +1 -1
  339. package/dist/tabs/tabs-group.d.ts +4 -3
  340. package/dist/tabs/tabs-group2.js +2 -2
  341. package/dist/tabs/tabs-group2.js.map +1 -1
  342. package/dist/tabs/tabs.d.ts +8 -7
  343. package/dist/tabs/tabs2.js +3 -3
  344. package/dist/tabs/tabs2.js.map +1 -1
  345. package/dist/tag/define.d.ts +1 -1
  346. package/dist/tag/tag.d.ts +6 -6
  347. package/dist/tag/tag2.js +2 -2
  348. package/dist/tag/tag2.js.map +1 -1
  349. package/dist/textarea/define.d.ts +1 -1
  350. package/dist/textarea/textarea.d.ts +2 -2
  351. package/dist/textarea/textarea2.js +1 -1
  352. package/dist/time/define.d.ts +1 -1
  353. package/dist/time/time.d.ts +5 -5
  354. package/dist/time/time2.js +2 -2
  355. package/dist/toast/define.d.ts +1 -1
  356. package/dist/toast/toast.d.ts +7 -6
  357. package/dist/toast/toast2.js +2 -2
  358. package/dist/toggletip/define.d.ts +1 -1
  359. package/dist/toggletip/toggletip-footer.d.ts +2 -2
  360. package/dist/toggletip/toggletip-footer2.js +2 -2
  361. package/dist/toggletip/toggletip-header.d.ts +2 -2
  362. package/dist/toggletip/toggletip-header2.js +2 -2
  363. package/dist/toggletip/toggletip.d.ts +6 -5
  364. package/dist/toggletip/toggletip2.js +2 -2
  365. package/dist/toolbar/define.d.ts +1 -1
  366. package/dist/toolbar/toolbar.d.ts +5 -4
  367. package/dist/toolbar/toolbar2.js +2 -2
  368. package/dist/toolbar/toolbar2.js.map +1 -1
  369. package/dist/tooltip/define.d.ts +1 -1
  370. package/dist/tooltip/tooltip.d.ts +4 -3
  371. package/dist/tooltip/tooltip2.js +2 -2
  372. package/dist/tree/define.d.ts +1 -1
  373. package/dist/tree/tree-node.d.ts +6 -6
  374. package/dist/tree/tree-node2.js +2 -2
  375. package/dist/tree/tree-node2.js.map +1 -1
  376. package/dist/tree/tree.d.ts +5 -4
  377. package/dist/tree/tree2.js +2 -2
  378. package/dist/tree/tree2.js.map +1 -1
  379. package/dist/week/define.d.ts +1 -1
  380. package/dist/week/week.d.ts +5 -5
  381. package/dist/week/week2.js +2 -2
  382. package/package.json +21 -9
@@ -3,7 +3,7 @@ import { attachInternals as t } from "../internal/utils/a11y.js";
3
3
  import { scopedRegistry as n } from "../internal/decorators/scoped-registry.js";
4
4
  import { useStyles as r } from "../internal/styles/index.js";
5
5
  import { statusIcons as i } from "../internal/types/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 "./progress-ring.js";
9
9
  import { LitElement as c, html as l } from "lit";
@@ -19,7 +19,7 @@ var d = class extends c {
19
19
  static {
20
20
  this.metadata = {
21
21
  tag: "nve-progress-ring",
22
- version: "2.0.4"
22
+ version: "2.1.0"
23
23
  };
24
24
  }
25
25
  static {
@@ -34,8 +34,8 @@ var d = class extends c {
34
34
  }
35
35
  updated(e) {
36
36
  super.updated(e), this._internals.ariaValueNow = `${this.value === void 0 ? "" : this.value}`, this._internals.ariaValueMax = `${this.max}`;
37
- let t = this.i18n;
38
- this._internals.ariaLabel = (this.status && t[this.status] && t[this.status] !== "neutral" ? t[this.status] : this.i18n.information) ?? null;
37
+ let { status: t } = this, n = t !== void 0 && t !== "neutral" && t !== "accent" ? this.i18n[t] : void 0;
38
+ this._internals.ariaLabel = n ?? this.i18n.information ?? null;
39
39
  }
40
40
  };
41
41
  a([u({ type: Number })], d.prototype, "value", void 0), a([u({ type: Number })], d.prototype, "max", void 0), a([u({
@@ -1 +1 @@
1
- {"version":3,"file":"progress-ring2.js","names":["#i18nController"],"sources":["../../src/progress-ring/progress-ring.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Size, SupportStatus } from '@nvidia-elements/core/internal';\nimport {\n attachInternals,\n I18nController,\n scopedRegistry,\n statusIcons,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './progress-ring.css?inline';\n\n/**\n * @element nve-progress-ring\n * @description The `progress-ring` component shows the status of a pending task. It also serves the basis of the page loading element.\n * @since 0.17.0\n * @entrypoint \\@nvidia-elements/core/progress-ring\n * @slot - Content to display in the ring center. Defaults to a status icon.\n * @cssprop --background-color\n * @cssprop --ring-color\n * @cssprop --ring-background-opacity\n * @cssprop --ring-width\n * @cssprop --width\n * @cssprop --height\n * @cssprop --animation-duration\n * @cssprop --color\n * @csspart icon - The icon element\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n */\n@scopedRegistry()\nexport class ProgressRing extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-progress-ring',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** The current `value` of the progress ring. When not set, an indeterminate animation will show. */\n @property({ type: Number }) value?: number;\n\n /** The `max` value of the progress ring that the `value` is proportionally scaled to. */\n @property({ type: Number }) max? = 100;\n\n /** Four visual treatments represent the `status` of tasks. When `status` changes to `warning`, `success`, or `danger`, the component embeds appropriate icons. */\n @property({ type: String, reflect: true }) status?: SupportStatus | 'neutral' = 'neutral';\n\n /** T-shirt `size` of the progress indicator, used to scale the ring. */\n @property({ type: String, reflect: true }) size?: Size | 'xxs' | 'xs' | 'xl';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n render() {\n return html`\n <div internal-host ?indeterminate=${this.value === undefined}>\n <svg viewBox=\"0 0 16 16\" role=\"presentation\">\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"background\"></circle>\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"ring\"\n stroke-dasharray=${`${((this.value ?? 0) / (this.max ?? 100)) * 44}px 44px`}>\n </circle>\n </svg>\n <slot>\n ${\n this.status !== 'accent'\n ? html`<nve-icon part=\"icon\" .name=${this.status ? statusIcons[this.status] : undefined} .status=${this.status as SupportStatus} aria-hidden=\"true\"></nve-icon>`\n : ''\n }\n </slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'progressbar';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n this._internals.ariaValueNow = `${this.value === undefined ? '' : this.value}`;\n this._internals.ariaValueMax = `${this.max}`;\n const i18nRecord = this.i18n as Record<string, string | undefined>;\n this._internals.ariaLabel =\n (this.status && i18nRecord[this.status] && i18nRecord[this.status] !== 'neutral'\n ? i18nRecord[this.status]!\n : this.i18n.information) ?? null;\n }\n}\n"],"mappings":";;;;;;;;;;;AAmCO,IAAA,IAAA,cAA2B,EAAW;;0BAmBR,mBAG6C,qBAKxC,IAAI,EAAqB,IAAI,eAGlC,KAAKA,GAAgB;;;gBA7BxC,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAK,SAAS,MAAM,EACvB;;CAiBA;CAKA,SAAS;EACP,OAAO,CAAI,sCAC2B,KAAK,UAAU,KAAA,EAAU,oLAIpC,IAAK,KAAK,SAAS,MAAM,KAAK,OAAO,OAAQ,GAAG,SAAS,yBAK5E,KAAK,WAAW,WAEZ,KADA,CAAI,gCAA+B,KAAK,SAAS,EAAY,KAAK,UAAU,KAAA,EAAU,aAAW,KAAK,OAAwB,kCAEnI;CAIT;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;CAEA,QAAQ,GAA6B;EAGnC,AAFA,MAAM,QAAQ,CAAK,GACnB,KAAK,WAAW,eAAe,GAAG,KAAK,UAAU,KAAA,IAAY,KAAK,KAAK,SACvE,KAAK,WAAW,eAAe,GAAG,KAAK;EACvC,IAAM,IAAa,KAAK;EACxB,KAAK,WAAW,aACb,KAAK,UAAU,EAAW,KAAK,WAAW,EAAW,KAAK,YAAY,YACnE,EAAW,KAAK,UAChB,KAAK,KAAK,gBAAgB;CAClC;AACF;GApDG,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA,MAGzB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAGxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAKxC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UA/B3B,EAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"progress-ring2.js","names":["#i18nController"],"sources":["../../src/progress-ring/progress-ring.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { Size, SupportStatus } from '@nvidia-elements/core/internal';\nimport {\n attachInternals,\n I18nController,\n scopedRegistry,\n statusIcons,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport styles from './progress-ring.css?inline';\n\n/**\n * @element nve-progress-ring\n * @description The `progress-ring` component shows the status of a pending task. It also serves the basis of the page loading element.\n * @since 0.17.0\n * @entrypoint \\@nvidia-elements/core/progress-ring\n * @slot - Content to display in the ring center. Defaults to a status icon.\n * @cssprop --background-color\n * @cssprop --ring-color\n * @cssprop --ring-background-opacity\n * @cssprop --ring-width\n * @cssprop --width\n * @cssprop --height\n * @cssprop --animation-duration\n * @cssprop --color\n * @csspart icon - The icon element\n * @aria https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/progressbar_role\n */\n@scopedRegistry()\nexport class ProgressRing extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-progress-ring',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** The current `value` of the progress ring. When not set, an indeterminate animation will show. */\n @property({ type: Number }) value?: number;\n\n /** The `max` value of the progress ring that the `value` is proportionally scaled to. */\n @property({ type: Number }) max? = 100;\n\n /** Four visual treatments represent the `status` of tasks. When `status` changes to `warning`, `success`, or `danger`, the component embeds appropriate icons. */\n @property({ type: String, reflect: true }) status?: SupportStatus | 'neutral' = 'neutral';\n\n /** T-shirt `size` of the progress indicator, used to scale the ring. */\n @property({ type: String, reflect: true }) size?: Size | 'xxs' | 'xs' | 'xl';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n render() {\n return html`\n <div internal-host ?indeterminate=${this.value === undefined}>\n <svg viewBox=\"0 0 16 16\" role=\"presentation\">\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"background\"></circle>\n <circle cx=\"8px\" cy=\"8px\" r=\"6.5px\" class=\"ring\"\n stroke-dasharray=${`${((this.value ?? 0) / (this.max ?? 100)) * 44}px 44px`}>\n </circle>\n </svg>\n <slot>\n ${\n this.status !== 'accent'\n ? html`<nve-icon part=\"icon\" .name=${this.status ? statusIcons[this.status] : undefined} .status=${this.status as SupportStatus} aria-hidden=\"true\"></nve-icon>`\n : ''\n }\n </slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'progressbar';\n }\n\n updated(props: PropertyValues<this>) {\n super.updated(props);\n this._internals.ariaValueNow = `${this.value === undefined ? '' : this.value}`;\n this._internals.ariaValueMax = `${this.max}`;\n const { status } = this;\n const statusLabel =\n status !== undefined && status !== 'neutral' && status !== 'accent' ? this.i18n[status] : undefined;\n this._internals.ariaLabel = statusLabel ?? this.i18n.information ?? null;\n }\n}\n"],"mappings":";;;;;;;;;;;AAmCO,IAAA,IAAA,cAA2B,EAAW;;0BAmBR,mBAG6C,qBAKxC,IAAI,EAAqB,IAAI,eAGlC,KAAKA,GAAgB;;;gBA7BxC,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B,GACzB,EAAK,SAAS,MAAM,EACvB;;CAiBA;CAKA,SAAS;EACP,OAAO,CAAI,sCAC2B,KAAK,UAAU,KAAA,EAAU,oLAIpC,IAAK,KAAK,SAAS,MAAM,KAAK,OAAO,OAAQ,GAAG,SAAS,yBAK5E,KAAK,WAAW,WAEZ,KADA,CAAI,gCAA+B,KAAK,SAAS,EAAY,KAAK,UAAU,KAAA,EAAU,aAAW,KAAK,OAAwB,kCAEnI;CAIT;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;CAEA,QAAQ,GAA6B;EAGnC,AAFA,MAAM,QAAQ,CAAK,GACnB,KAAK,WAAW,eAAe,GAAG,KAAK,UAAU,KAAA,IAAY,KAAK,KAAK,SACvE,KAAK,WAAW,eAAe,GAAG,KAAK;EACvC,IAAM,EAAE,cAAW,MACb,IACJ,MAAW,KAAA,KAAa,MAAW,aAAa,MAAW,WAAW,KAAK,KAAK,KAAU,KAAA;EAC5F,KAAK,WAAW,YAAY,KAAe,KAAK,KAAK,eAAe;CACtE;AACF;GAnDG,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAGzB,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA,MAGzB,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAGxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAKxC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UA/B3B,EAAe,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ProgressiveFilterChip } from '.';
1
+ import { ProgressiveFilterChip } from '@nvidia-elements/core/progressive-filter-chip';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-progressive-filter-chip': ProgressiveFilterChip;
@@ -1,8 +1,8 @@
1
1
  import { LitElement } from 'lit';
2
- import { Input } from '../input';
3
- import { Select } from '../select';
4
- import { Date } from '../date';
5
- import { IconButton } from '../icon-button';
2
+ import { Input } from '@nvidia-elements/core/input';
3
+ import { Select } from '@nvidia-elements/core/select';
4
+ import { Date } from '@nvidia-elements/core/date';
5
+ import { IconButton } from '@nvidia-elements/core/icon-button';
6
6
  /**
7
7
  * @element nve-progressive-filter-chip
8
8
  * @description A filter chip is a control that enables users to select many options from a set of choices.
@@ -38,13 +38,13 @@ export declare class ProgressiveFilterChip extends LitElement {
38
38
  /** Determines if a close button should render within filter chip */
39
39
  closable: boolean;
40
40
  /** Enables updating internal string values for internationalization. */
41
- i18n: Partial<import('../internal').I18nStrings & {
41
+ i18n: Partial<import("@nvidia-elements/core/internal").I18nStrings & {
42
42
  __set: boolean;
43
43
  }>;
44
44
  private inputs;
45
- static styles: import('lit').CSSResult[];
45
+ static styles: import("lit").CSSResult[];
46
46
  /** @private */
47
47
  _internals: ElementInternals;
48
- render(): import('lit').TemplateResult<1>;
48
+ render(): import("lit").TemplateResult<1>;
49
49
  connectedCallback(): void;
50
50
  }
@@ -5,7 +5,7 @@ import { TypeClosableController as i } from "../internal/controllers/type-closab
5
5
  import { typeSSR as a } from "../internal/controllers/type-ssr.controller.js";
6
6
  import { scopedRegistry as o } from "../internal/decorators/scoped-registry.js";
7
7
  import { useStyles as s } from "../internal/styles/index.js";
8
- import { __decorate as c } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
8
+ import c from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
9
9
  import { IconButton as l } from "../icon-button/icon-button2.js";
10
10
  import { Input as u } from "../input/input2.js";
11
11
  import { Select as d } from "../select/select2.js";
@@ -23,7 +23,7 @@ var b = class extends h {
23
23
  static {
24
24
  this.metadata = {
25
25
  tag: "nve-progressive-filter-chip",
26
- version: "2.0.4"
26
+ version: "2.1.0"
27
27
  };
28
28
  }
29
29
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"progressive-filter-chip2.js","names":["#i18nController","#removeItem","#getControlTemplate","#typeClosableController","#createItems","#resetItems"],"sources":["../../src/progressive-filter-chip/progressive-filter-chip.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport {\n appendRootNodeStyle,\n attachInternals,\n generateId,\n I18nController,\n scopedRegistry,\n TypeClosableController,\n typeSSR,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Input } from '@nvidia-elements/core/input';\nimport { Select } from '@nvidia-elements/core/select';\nimport { Date } from '@nvidia-elements/core/date';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport globalStyles from './progressive-filter-chip.global.css?inline';\nimport styles from './progressive-filter-chip.css?inline';\n\n/**\n * @element nve-progressive-filter-chip\n * @description A filter chip is a control that enables users to select many options from a set of choices.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/progressive-filter-chip\n * @slot - default slot for content\n * @event close - Dispatched when the filter chip closes.\n * @cssprop --gap\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --background\n * @cssprop --font-weight\n * @cssprop --padding\n * @cssprop --width\n * @csspart select - The select element\n * @csspart date - The date input element\n * @csspart input - The input element\n * @csspart icon-button - The icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/\n */\n@typeSSR()\n@scopedRegistry()\nexport class ProgressiveFilterChip extends LitElement {\n static readonly metadata = {\n tag: 'nve-progressive-filter-chip',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Input.metadata.tag]: Input,\n [Select.metadata.tag]: Select,\n [Date.metadata.tag]: Date,\n [IconButton.metadata.tag]: IconButton\n };\n\n /** Determines if a close button should render within filter chip */\n @property({ type: Boolean }) closable: boolean;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n @state() private inputs: Element[] = [];\n\n static styles = useStyles([styles]);\n\n #typeClosableController = new TypeClosableController(this);\n\n /** @private */\n declare _internals: ElementInternals;\n\n #getControlTemplate(el: Element) {\n const slot = html`<slot name=${el.slot} @slotchange=${this.#removeItem}></slot>`;\n if (el.tagName === 'SELECT') {\n return html`<nve-select part=\"select\" multiple-overflow ?fit-text=${!(el as HTMLSelectElement).multiple}>${slot}</nve-select>`;\n } else if (el.tagName === 'INPUT' && (el as HTMLInputElement).type === 'date') {\n return html`<nve-date part=\"date\">${slot}</nve-date>`;\n } else if (el.tagName === 'INPUT') {\n return html`<nve-input part=\"input\">${slot}</nve-input>`;\n } else {\n return slot;\n }\n }\n\n render() {\n return html`\n <div internal-host>\n ${this.inputs.map(el => this.#getControlTemplate(el))}\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${() => this.#typeClosableController.close()} .ariaLabel=${this.i18n.close} icon-name=\"cancel\"></nve-icon-button>` : nothing}\n </div>\n <slot hidden-slot @slotchange=${this.#createItems}></slot>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'toolbar';\n this.setAttribute('nve-control', '');\n appendRootNodeStyle(this, globalStyles);\n }\n\n #removeItem(e: Event) {\n if (!(e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n }\n }\n\n #createItems(e: Event) {\n if (e.target && (e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n const items = Array.from(\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!.assignedElements()\n ).filter(i => i.matches('input, select, nve-button, [nve-control]'));\n items.forEach(i => (i.slot = generateId()));\n this.inputs = items.length ? items : this.inputs;\n }\n }\n\n #resetItems() {\n Array.from(this.shadowRoot!.querySelectorAll('slot'))\n .flatMap(i => i.assignedElements())\n .forEach(i => (i.slot = ''));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAoC,EAAW;;yBAgBZ,IAAI,EAAqB,IAAI,eAGlC,KAAKA,GAAgB,oBAEnB,CAAC,aAIZ,IAAI,EAAuB,IAAI;;;kBAxB9B;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B;IACzB,EAAM,SAAS,MAAM;IACrB,EAAO,SAAS,MAAM;IACtB,EAAK,SAAS,MAAM;IACpB,EAAW,SAAS,MAAM;EAC7B;;CAKA;;gBAOgB,EAAU,CAAC,CAAM,CAAC;;CAElC;CAKA,GAAoB,GAAa;EAC/B,IAAM,IAAO,CAAI,eAAc,EAAG,KAAK,iBAAe,KAAKC,GAAY;EAQrE,OAPE,EAAG,YAAY,WACV,CAAI,0DAAyD,CAAE,EAAyB,SAAS,IAAG,EAAK,iBACvG,EAAG,YAAY,WAAY,EAAwB,SAAS,SAC9D,CAAI,yBAAyB,EAAK,eAChC,EAAG,YAAY,UACjB,CAAI,2BAA2B,EAAK,gBAEpC;CAEX;CAEA,SAAS;EACP,OAAO,CAAI,sBAEP,KAAK,OAAO,KAAI,MAAM,KAAKC,GAAoB,CAAE,CAAC,EAAE,GACpD,KAAK,WAAW,CAAI,yFAAwF,KAAKC,GAAwB,MAAM,EAAE,gBAAc,KAAK,KAAK,MAAM,2CAA0C,EAAQ,uCAErM,KAAKC,GAAa;CAEpD;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,WACvB,KAAK,aAAa,eAAe,EAAE,GACnC,EAAoB,MAAM,CAAY;CACxC;CAEA,GAAY,GAAU;EACpB,AAAM,EAAE,OAA2B,iBAAiB,EAAE,UACpD,KAAKC,GAAY;CAErB;CAEA,GAAa,GAAU;EACrB,IAAI,EAAE,UAAW,EAAE,OAA2B,iBAAiB,EAAE,QAAQ;GACvE,KAAKA,GAAY;GACjB,IAAM,IAAQ,MAAM,KAClB,KAAK,WAAY,cAA+B,kBAAkB,EAAG,iBAAiB,CACxF,EAAE,QAAO,MAAK,EAAE,QAAQ,0CAA0C,CAAC;GAEnE,AADA,EAAM,SAAQ,MAAM,EAAE,OAAO,EAAW,CAAE,GAC1C,KAAK,SAAS,EAAM,SAAS,IAAQ,KAAK;EAC5C;CACF;CAEA,KAAc;EACZ,MAAM,KAAK,KAAK,WAAY,iBAAiB,MAAM,CAAC,EACjD,SAAQ,MAAK,EAAE,iBAAiB,CAAC,EACjC,SAAQ,MAAM,EAAE,OAAO,EAAG;CAC/B;AACF;GArEG,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAEzB,EAAM,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,UAvBR,EAAQ,GACR,EAAe,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"progressive-filter-chip2.js","names":["#i18nController","#removeItem","#getControlTemplate","#typeClosableController","#createItems","#resetItems"],"sources":["../../src/progressive-filter-chip/progressive-filter-chip.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport {\n appendRootNodeStyle,\n attachInternals,\n generateId,\n I18nController,\n scopedRegistry,\n TypeClosableController,\n typeSSR,\n useStyles\n} from '@nvidia-elements/core/internal';\nimport { Input } from '@nvidia-elements/core/input';\nimport { Select } from '@nvidia-elements/core/select';\nimport { Date } from '@nvidia-elements/core/date';\nimport { IconButton } from '@nvidia-elements/core/icon-button';\nimport globalStyles from './progressive-filter-chip.global.css?inline';\nimport styles from './progressive-filter-chip.css?inline';\n\n/**\n * @element nve-progressive-filter-chip\n * @description A filter chip is a control that enables users to select many options from a set of choices.\n * @since 0.16.0\n * @entrypoint \\@nvidia-elements/core/progressive-filter-chip\n * @slot - default slot for content\n * @event close - Dispatched when the filter chip closes.\n * @cssprop --gap\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --background\n * @cssprop --font-weight\n * @cssprop --padding\n * @cssprop --width\n * @csspart select - The select element\n * @csspart date - The date input element\n * @csspart input - The input element\n * @csspart icon-button - The icon button element\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/\n */\n@typeSSR()\n@scopedRegistry()\nexport class ProgressiveFilterChip extends LitElement {\n static readonly metadata = {\n tag: 'nve-progressive-filter-chip',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Input.metadata.tag]: Input,\n [Select.metadata.tag]: Select,\n [Date.metadata.tag]: Date,\n [IconButton.metadata.tag]: IconButton\n };\n\n /** Determines if a close button should render within filter chip */\n @property({ type: Boolean }) closable: boolean;\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Enables updating internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n @state() private inputs: Element[] = [];\n\n static styles = useStyles([styles]);\n\n #typeClosableController = new TypeClosableController(this);\n\n /** @private */\n declare _internals: ElementInternals;\n\n #getControlTemplate(el: Element) {\n const slot = html`<slot name=${el.slot} @slotchange=${this.#removeItem}></slot>`;\n if (el.tagName === 'SELECT') {\n return html`<nve-select part=\"select\" multiple-overflow ?fit-text=${!(el as HTMLSelectElement).multiple}>${slot}</nve-select>`;\n } else if (el.tagName === 'INPUT' && (el as HTMLInputElement).type === 'date') {\n return html`<nve-date part=\"date\">${slot}</nve-date>`;\n } else if (el.tagName === 'INPUT') {\n return html`<nve-input part=\"input\">${slot}</nve-input>`;\n } else {\n return slot;\n }\n }\n\n render() {\n return html`\n <div internal-host>\n ${this.inputs.map(el => this.#getControlTemplate(el))}\n ${this.closable ? html`<nve-icon-button part=\"icon-button\" exportparts=\"icon:icon-button-icon\" @click=${() => this.#typeClosableController.close()} .ariaLabel=${this.i18n.close} icon-name=\"cancel\"></nve-icon-button>` : nothing}\n </div>\n <slot hidden-slot @slotchange=${this.#createItems}></slot>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'toolbar';\n this.setAttribute('nve-control', '');\n appendRootNodeStyle(this, globalStyles);\n }\n\n #removeItem(e: Event) {\n if (!(e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n }\n }\n\n #createItems(e: Event) {\n if (e.target && (e.target as HTMLSlotElement).assignedElements().length) {\n this.#resetItems();\n const items = Array.from(\n this.shadowRoot!.querySelector<HTMLSlotElement>('slot:not([name])')!.assignedElements()\n ).filter(i => i.matches('input, select, nve-button, [nve-control]'));\n items.forEach(i => (i.slot = generateId()));\n this.inputs = items.length ? items : this.inputs;\n }\n }\n\n #resetItems() {\n Array.from(this.shadowRoot!.querySelectorAll('slot'))\n .flatMap(i => i.assignedElements())\n .forEach(i => (i.slot = ''));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAoC,EAAW;;yBAgBZ,IAAI,EAAqB,IAAI,eAGlC,KAAKA,GAAgB,oBAEnB,CAAC,aAIZ,IAAI,EAAuB,IAAI;;;kBAxB9B;GACzB,KAAK;GACL,SAAS;EACX;;;4BAE4B;IACzB,EAAM,SAAS,MAAM;IACrB,EAAO,SAAS,MAAM;IACtB,EAAK,SAAS,MAAM;IACpB,EAAW,SAAS,MAAM;EAC7B;;CAKA;;gBAOgB,EAAU,CAAC,CAAM,CAAC;;CAElC;CAKA,GAAoB,GAAa;EAC/B,IAAM,IAAO,CAAI,eAAc,EAAG,KAAK,iBAAe,KAAKC,GAAY;EAQrE,OAPE,EAAG,YAAY,WACV,CAAI,0DAAyD,CAAE,EAAyB,SAAS,IAAG,EAAK,iBACvG,EAAG,YAAY,WAAY,EAAwB,SAAS,SAC9D,CAAI,yBAAyB,EAAK,eAChC,EAAG,YAAY,UACjB,CAAI,2BAA2B,EAAK,gBAEpC;CAEX;CAEA,SAAS;EACP,OAAO,CAAI,sBAEP,KAAK,OAAO,KAAI,MAAM,KAAKC,GAAoB,CAAE,CAAC,EAAE,GACpD,KAAK,WAAW,CAAI,yFAAwF,KAAKC,GAAwB,MAAM,EAAE,gBAAc,KAAK,KAAK,MAAM,2CAA0C,EAAQ,uCAErM,KAAKC,GAAa;CAEpD;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,WACvB,KAAK,aAAa,eAAe,EAAE,GACnC,EAAoB,MAAM,CAAY;CACxC;CAEA,GAAY,GAAU;EACpB,AAAM,EAAE,OAA2B,iBAAiB,CAAC,CAAC,UACpD,KAAKC,GAAY;CAErB;CAEA,GAAa,GAAU;EACrB,IAAI,EAAE,UAAW,EAAE,OAA2B,iBAAiB,CAAC,CAAC,QAAQ;GACvE,KAAKA,GAAY;GACjB,IAAM,IAAQ,MAAM,KAClB,KAAK,WAAY,cAA+B,kBAAkB,CAAC,CAAE,iBAAiB,CACxF,CAAC,CAAC,QAAO,MAAK,EAAE,QAAQ,0CAA0C,CAAC;GAEnE,AADA,EAAM,SAAQ,MAAM,EAAE,OAAO,EAAW,CAAE,GAC1C,KAAK,SAAS,EAAM,SAAS,IAAQ,KAAK;EAC5C;CACF;CAEA,KAAc;EACZ,MAAM,KAAK,KAAK,WAAY,iBAAiB,MAAM,CAAC,CAAC,CAClD,SAAQ,MAAK,EAAE,iBAAiB,CAAC,CAAC,CAClC,SAAQ,MAAM,EAAE,OAAO,EAAG;CAC/B;AACF;GArEG,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAK1B,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAEzB,EAAM,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,UAvBR,EAAQ,GACR,EAAe,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Pulse } from '.';
1
+ import { Pulse } from '@nvidia-elements/core/pulse';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-pulse': Pulse;
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
- import { Size } from '../internal';
3
- import { Icon } from '../icon';
2
+ import type { Size } from '@nvidia-elements/core/internal';
3
+ import { Icon } from '@nvidia-elements/core/icon';
4
4
  /**
5
5
  * @element nve-pulse
6
6
  * @description Pulse component signals attention for a particular area of a UI. This helps with tutorial/getting started guides for new users.
@@ -14,7 +14,7 @@ import { Icon } from '../icon';
14
14
  *
15
15
  */
16
16
  export declare class Pulse extends LitElement {
17
- static styles: import('lit').CSSResult[];
17
+ static styles: import("lit").CSSResult[];
18
18
  static readonly metadata: {
19
19
  tag: string;
20
20
  version: string;
@@ -29,5 +29,5 @@ export declare class Pulse extends LitElement {
29
29
  size?: Size | 'xs';
30
30
  /** These visual treatments represent the `status` of different tasks. When `status` changes to `accent`, `warning` or `danger`, the component embeds appropriate colors. */
31
31
  status?: 'accent' | 'warning' | 'danger';
32
- render(): import('lit').TemplateResult<1>;
32
+ render(): import("lit").TemplateResult<1>;
33
33
  }
@@ -1,6 +1,6 @@
1
1
  import { attachInternals as e } from "../internal/utils/a11y.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 { Icon as r } from "../icon/icon2.js";
5
5
  import i from "./pulse.js";
6
6
  import { LitElement as a, html as o } from "lit";
@@ -13,7 +13,7 @@ var c = class extends a {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-pulse",
16
- version: "2.0.4"
16
+ version: "2.1.0"
17
17
  };
18
18
  }
19
19
  static {
@@ -1,4 +1,4 @@
1
- import { Radio, RadioGroup } from '.';
1
+ import { Radio, RadioGroup } from '@nvidia-elements/core/radio';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-radio': Radio;
@@ -1,5 +1,5 @@
1
- import { CSSResult } from 'lit';
2
- import { ControlGroup } from '../forms';
1
+ import type { CSSResult } from 'lit';
2
+ import { ControlGroup } from '@nvidia-elements/core/forms';
3
3
  /**
4
4
  * @element nve-radio-group
5
5
  * @description Groups related radio buttons together with a shared label and validation messaging for single-select form inputs.
@@ -1,7 +1,7 @@
1
1
  import { audit as e } from "../internal/controllers/audit.controller.js";
2
2
  import { typeSSR as t } from "../internal/controllers/type-ssr.controller.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
- import { __decorate as r } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
4
+ import r from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
5
5
  import { ControlGroup as i } from "../forms/control-group/control-group2.js";
6
6
  import a from "./radio-group.js";
7
7
  //#region src/radio/radio-group.ts
@@ -12,7 +12,7 @@ var o = class extends i {
12
12
  static {
13
13
  this.metadata = {
14
14
  tag: "nve-radio-group",
15
- version: "2.0.4",
15
+ version: "2.1.0",
16
16
  children: [
17
17
  "label",
18
18
  "nve-control-message",
@@ -1,5 +1,5 @@
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-radio
5
5
  * @description A radio button is a control that enables users to choose one option from a list of mutually exclusive options.
@@ -1,7 +1,7 @@
1
1
  import { audit as e } from "../internal/controllers/audit.controller.js";
2
2
  import { hostAttr as t } from "../internal/decorators/host-attr.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
- import { __decorate as r } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
4
+ import r from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
5
5
  import { Control as i } from "../forms/control/control2.js";
6
6
  import a from "./radio.js";
7
7
  //#region src/radio/radio.ts
@@ -15,7 +15,7 @@ var o = class extends i {
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-radio",
18
- version: "2.0.4",
18
+ version: "2.1.0",
19
19
  children: [
20
20
  "label",
21
21
  "input",
@@ -1,4 +1,4 @@
1
- import { Range } from '.';
1
+ import { Range } from '@nvidia-elements/core/range';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-range': Range;
@@ -1,5 +1,6 @@
1
- import { Control } from '../forms';
2
- import { PropertyValues, nothing } from 'lit';
1
+ import { Control } from '@nvidia-elements/core/forms';
2
+ import type { PropertyValues } from 'lit';
3
+ import { nothing } from 'lit';
3
4
  /**
4
5
  * @element nve-range
5
6
  * @description A range slider is a control that enables users to choose a value from a continuous range of values.
@@ -20,7 +21,7 @@ import { PropertyValues, nothing } from 'lit';
20
21
  */
21
22
  export declare class Range extends Control {
22
23
  #private;
23
- static styles: import('lit').CSSResult[];
24
+ static styles: import("lit").CSSResult[];
24
25
  static readonly metadata: {
25
26
  tag: string;
26
27
  version: string;
@@ -30,5 +31,5 @@ export declare class Range extends Control {
30
31
  connectedCallback(): void;
31
32
  firstUpdated(props: PropertyValues<this>): void;
32
33
  updated(props: PropertyValues<this>): void;
33
- protected get suffixContent(): typeof nothing | import('lit').TemplateResult<1>;
34
+ protected get suffixContent(): typeof nothing | import("lit").TemplateResult<1>;
34
35
  }
@@ -1,6 +1,6 @@
1
1
  import { appendRootNodeStyle as e, getElementUpdate as t } from "../internal/utils/dom.js";
2
2
  import { useStyles as n } from "../internal/styles/index.js";
3
- import { __decorate as r } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
3
+ import r from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
4
4
  import { Control as i } from "../forms/control/control2.js";
5
5
  import a from "./range.global.js";
6
6
  import o from "./range.js";
@@ -17,7 +17,7 @@ var d = class extends i {
17
17
  static {
18
18
  this.metadata = {
19
19
  tag: "nve-range",
20
- version: "2.0.4"
20
+ version: "2.1.0"
21
21
  };
22
22
  }
23
23
  connectedCallback() {
@@ -1,4 +1,4 @@
1
- import { ResizeHandle } from '.';
1
+ import { ResizeHandle } from '@nvidia-elements/core/resize-handle';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-resize-handle': ResizeHandle;
@@ -1,5 +1,5 @@
1
- import { LitElement, PropertyValues } from 'lit';
2
- declare const ResizeHandle_base: import('@nvidia-elements/forms/mixins').FormControlMixinReturn<typeof LitElement, number>;
1
+ import { LitElement, type PropertyValues } from 'lit';
2
+ declare const ResizeHandle_base: import("@nvidia-elements/forms/mixins").FormControlMixinReturn<typeof LitElement, number>;
3
3
  /**
4
4
  * @element nve-resize-handle
5
5
  * @description A resize-handle slider is a control that enables users to resize views or panels vertically or horizontally.
@@ -32,21 +32,21 @@ export declare class ResizeHandle extends ResizeHandle_base {
32
32
  * Determines the value step change.
33
33
  */
34
34
  step: number;
35
- static styles: import('lit').CSSResult[];
35
+ static styles: import("lit").CSSResult[];
36
36
  static readonly metadata: {
37
37
  tag: string;
38
38
  version: string;
39
39
  valueSchema: {
40
- type: "number";
40
+ type: 'number';
41
41
  };
42
42
  };
43
43
  /**
44
44
  * Updates internal string values for internationalization.
45
45
  */
46
- i18n: Partial<import('../internal').I18nStrings & {
46
+ i18n: Partial<import("@nvidia-elements/core/internal").I18nStrings & {
47
47
  __set: boolean;
48
48
  }>;
49
- render(): import('lit').TemplateResult<1>;
49
+ render(): import("lit").TemplateResult<1>;
50
50
  constructor();
51
51
  connectedCallback(): void;
52
52
  firstUpdated(props: PropertyValues): void;
@@ -1,7 +1,7 @@
1
1
  import { I18nController as e } from "../internal/controllers/i18n.controller.js";
2
2
  import { typeTouch as t } from "../internal/controllers/type-touch.controller.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
- import { __decorate as r } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
4
+ import r from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
5
5
  import i from "./resize-handle.js";
6
6
  import { LitElement as a, html as o } from "lit";
7
7
  import { property as s } from "lit/decorators/property.js";
@@ -18,7 +18,7 @@ var u = class extends c(a) {
18
18
  static {
19
19
  this.metadata = {
20
20
  tag: "nve-resize-handle",
21
- version: "2.0.4",
21
+ version: "2.1.0",
22
22
  valueSchema: { type: "number" }
23
23
  };
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resize-handle2.js","names":["#range","#setInput","#setChange","#i18nController","#offset","#touchStart","#touchEnd","#touchMove","#toggle","#updateValue"],"sources":["../../src/resize-handle/resize-handle.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property } from 'lit/decorators/property.js';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixins';\nimport { useStyles, typeTouch } from '@nvidia-elements/core/internal';\nimport { I18nController, type NveTouchEvent } from '@nvidia-elements/core/internal';\nimport styles from './resize-handle.css?inline';\n\n/**\n * @element nve-resize-handle\n * @description A resize-handle slider is a control that enables users to resize views or panels vertically or horizontally.\n * @since 1.27.0\n * @entrypoint \\@nvidia-elements/core/resize-handle\n * @event toggle - Dispatched when the resize handle is double clicked.\n * @cssprop --background\n * @cssprop --line-width\n * @cssprop --target-size\n * @cssprop --cursor\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n *\n */\n@typeTouch<ResizeHandle>()\nexport class ResizeHandle extends FormControlMixin<typeof LitElement, number>(LitElement) {\n /**\n * Determines the orientation direction of the resize handle.\n */\n @property({ type: String, reflect: true }) orientation?: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Determines the min resize value.\n */\n @property({ type: Number, reflect: true }) min = 0;\n\n /**\n * Determines the max resize value.\n */\n @property({ type: Number, reflect: true }) max = 100;\n\n /**\n * Determines the value step change.\n */\n @property({ type: Number, reflect: true }) step = 10;\n\n static styles = useStyles([styles]);\n\n get #range() {\n return this.shadowRoot!.querySelector('input')!;\n }\n\n static readonly metadata = {\n tag: 'nve-resize-handle',\n version: '0.0.0',\n valueSchema: {\n type: 'number' as const\n }\n };\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /**\n * Updates internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #offset = 0;\n\n render() {\n return html`\n <div internal-host>\n <div class=\"line\" part=\"_line\"></div>\n <input aria-label=${ifDefined(this.ariaLabel ?? this.i18n.resize)} type=\"range\" min=${this.min} max=${this.max} .valueAsNumber=${this.valueAsNumber} @input=${(e: Event) => this.#setInput((e.target as HTMLInputElement).valueAsNumber)} @change=${(e: Event) => this.#setChange((e.target as HTMLInputElement).valueAsNumber)} step=${this.step} />\n </div>\n `;\n }\n\n constructor() {\n super();\n this.value = this.value ?? 50;\n this.#offset = this.valueAsNumber;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._internals.role = 'none';\n }\n\n firstUpdated(props: PropertyValues) {\n super.firstUpdated(props);\n this.addEventListener('nve-touch-start', () => this.#touchStart());\n this.addEventListener('nve-touch-end', () => this.#touchEnd());\n this.addEventListener('nve-touch-move', ((e: NveTouchEvent) => this.#touchMove(e)) as EventListener);\n this.addEventListener('dblclick', () => {\n if (!this.dispatchEvent(new CustomEvent('toggle', { cancelable: true, bubbles: true, composed: true }))) {\n return;\n }\n this.#toggle();\n });\n }\n\n #toggle() {\n const value = this.valueAsNumber <= this.max && this.valueAsNumber !== this.min ? this.min : this.max;\n this.#setInput(value);\n this.#setChange(value);\n }\n\n #touchStart() {\n this.#range.step = '1';\n this._internals.states.add('active');\n this.#offset = this.valueAsNumber;\n }\n\n #touchMove(e: NveTouchEvent) {\n const offset = (this.orientation === 'vertical' ? e.offsetX : -e.offsetY) * (this.dir === 'rtl' ? -1 : 1);\n this.#offset = this.#offset + offset;\n this.#setInput(this.#offset);\n }\n\n #touchEnd() {\n this.#offset = this.valueAsNumber;\n this.#range.step = `${this.step}`;\n this.#setChange(this.#offset);\n this._internals.states.delete('active');\n }\n\n #setInput(value: number) {\n this.#updateValue(value);\n this.dispatchInputEvent();\n }\n\n #setChange(value: number) {\n this.#updateValue(value);\n this.dispatchChangeEvent();\n }\n\n #updateValue(value: number) {\n if (value <= this.max && value >= this.min) {\n this.valueAsNumber = value;\n }\n }\n}\n"],"mappings":";;;;;;;;;;AA0BO,IAAA,IAAA,cAA2B,EAA4C,CAAU,EAAE;;gBAqBxE,EAAU,CAAC,CAAM,CAAC;;CAElC,IAAIA,KAAS;EACX,OAAO,KAAK,WAAY,cAAc,OAAO;CAC/C;;kBAE2B;GACzB,KAAK;GACL,SAAS;GACT,aAAa,EACX,MAAM,SACR;EACF;;CAEA;CAOA;CAEA,SAAS;EACP,OAAO,CAAI,8EAGa,EAAU,KAAK,aAAa,KAAK,KAAK,MAAM,EAAE,sBAAoB,KAAK,IAAI,SAAO,KAAK,IAAI,oBAAkB,KAAK,cAAc,aAAW,MAAa,KAAKC,GAAW,EAAE,OAA4B,aAAa,EAAE,cAAY,MAAa,KAAKC,GAAY,EAAE,OAA4B,aAAa,EAAE,UAAQ,KAAK,KAAK;CAGxV;CAEA,cAAc;EAGZ,AAFA,MAAM,sBAlD6E,yBAKpC,cAKA,iBAKC,cAgBV,IAAI,EAAqB,IAAI,eAKlC,KAAKC,GAAgB,gBAE9C,GAaR,KAAK,QAAQ,KAAK,SAAS,IAC3B,KAAKC,KAAU,KAAK;CACtB;CAEA,oBAAoB;EAElB,AADA,MAAM,kBAAkB,GACxB,KAAK,WAAW,OAAO;CACzB;CAEA,aAAa,GAAuB;EAKlC,AAJA,MAAM,aAAa,CAAK,GACxB,KAAK,iBAAiB,yBAAyB,KAAKC,GAAY,CAAC,GACjE,KAAK,iBAAiB,uBAAuB,KAAKC,GAAU,CAAC,GAC7D,KAAK,iBAAiB,oBAAoB,MAAqB,KAAKC,GAAW,CAAC,EAAmB,GACnG,KAAK,iBAAiB,kBAAkB;GACjC,KAAK,cAAc,IAAI,YAAY,UAAU;IAAE,YAAY;IAAM,SAAS;IAAM,UAAU;GAAK,CAAC,CAAC,KAGtG,KAAKC,GAAQ;EACf,CAAC;CACH;CAEA,KAAU;EACR,IAAM,IAAQ,KAAK,iBAAiB,KAAK,OAAO,KAAK,kBAAkB,KAAK,MAAM,KAAK,MAAM,KAAK;EAElG,AADA,KAAKP,GAAU,CAAK,GACpB,KAAKC,GAAW,CAAK;CACvB;CAEA,KAAc;EAGZ,AAFA,KAAKF,GAAO,OAAO,KACnB,KAAK,WAAW,OAAO,IAAI,QAAQ,GACnC,KAAKI,KAAU,KAAK;CACtB;CAEA,GAAW,GAAkB;EAC3B,IAAM,KAAU,KAAK,gBAAgB,aAAa,EAAE,UAAU,CAAC,EAAE,YAAY,KAAK,QAAQ,QAAQ,KAAK;EAEvG,AADA,KAAKA,MAAyB,GAC9B,KAAKH,GAAU,KAAKG,EAAO;CAC7B;CAEA,KAAY;EAIV,AAHA,KAAKA,KAAU,KAAK,eACpB,KAAKJ,GAAO,OAAO,GAAG,KAAK,QAC3B,KAAKE,GAAW,KAAKE,EAAO,GAC5B,KAAK,WAAW,OAAO,OAAO,QAAQ;CACxC;CAEA,GAAU,GAAe;EAEvB,AADA,KAAKK,GAAa,CAAK,GACvB,KAAK,mBAAmB;CAC1B;CAEA,GAAW,GAAe;EAExB,AADA,KAAKA,GAAa,CAAK,GACvB,KAAK,oBAAoB;CAC3B;CAEA,GAAa,GAAe;EAC1B,AAAI,KAAS,KAAK,OAAO,KAAS,KAAK,QACrC,KAAK,gBAAgB;CAEzB;AACF;GAjHG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,eAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAqBxC,EAAS,EAAE,MAAM,OAAO,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,UAzC3B,EAAwB,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"resize-handle2.js","names":["#range","#setInput","#setChange","#i18nController","#offset","#touchStart","#touchEnd","#touchMove","#toggle","#updateValue"],"sources":["../../src/resize-handle/resize-handle.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property } from 'lit/decorators/property.js';\nimport { FormControlMixin } from '@nvidia-elements/forms/mixins';\nimport { useStyles, typeTouch } from '@nvidia-elements/core/internal';\nimport { I18nController, type NveTouchEvent } from '@nvidia-elements/core/internal';\nimport styles from './resize-handle.css?inline';\n\n/**\n * @element nve-resize-handle\n * @description A resize-handle slider is a control that enables users to resize views or panels vertically or horizontally.\n * @since 1.27.0\n * @entrypoint \\@nvidia-elements/core/resize-handle\n * @event toggle - Dispatched when the resize handle is double clicked.\n * @cssprop --background\n * @cssprop --line-width\n * @cssprop --target-size\n * @cssprop --cursor\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/slider/\n *\n */\n@typeTouch<ResizeHandle>()\nexport class ResizeHandle extends FormControlMixin<typeof LitElement, number>(LitElement) {\n /**\n * Determines the orientation direction of the resize handle.\n */\n @property({ type: String, reflect: true }) orientation?: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Determines the min resize value.\n */\n @property({ type: Number, reflect: true }) min = 0;\n\n /**\n * Determines the max resize value.\n */\n @property({ type: Number, reflect: true }) max = 100;\n\n /**\n * Determines the value step change.\n */\n @property({ type: Number, reflect: true }) step = 10;\n\n static styles = useStyles([styles]);\n\n get #range() {\n return this.shadowRoot!.querySelector('input')!;\n }\n\n static readonly metadata = {\n tag: 'nve-resize-handle',\n version: '0.0.0',\n valueSchema: {\n type: 'number' as const\n }\n };\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /**\n * Updates internal string values for internationalization.\n */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n #offset = 0;\n\n render() {\n return html`\n <div internal-host>\n <div class=\"line\" part=\"_line\"></div>\n <input aria-label=${ifDefined(this.ariaLabel ?? this.i18n.resize)} type=\"range\" min=${this.min} max=${this.max} .valueAsNumber=${this.valueAsNumber} @input=${(e: Event) => this.#setInput((e.target as HTMLInputElement).valueAsNumber)} @change=${(e: Event) => this.#setChange((e.target as HTMLInputElement).valueAsNumber)} step=${this.step} />\n </div>\n `;\n }\n\n constructor() {\n super();\n this.value = this.value ?? 50;\n this.#offset = this.valueAsNumber;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._internals.role = 'none';\n }\n\n firstUpdated(props: PropertyValues) {\n super.firstUpdated(props);\n this.addEventListener('nve-touch-start', () => this.#touchStart());\n this.addEventListener('nve-touch-end', () => this.#touchEnd());\n this.addEventListener('nve-touch-move', ((e: NveTouchEvent) => this.#touchMove(e)) as EventListener);\n this.addEventListener('dblclick', () => {\n if (!this.dispatchEvent(new CustomEvent('toggle', { cancelable: true, bubbles: true, composed: true }))) {\n return;\n }\n this.#toggle();\n });\n }\n\n #toggle() {\n const value = this.valueAsNumber <= this.max && this.valueAsNumber !== this.min ? this.min : this.max;\n this.#setInput(value);\n this.#setChange(value);\n }\n\n #touchStart() {\n this.#range.step = '1';\n this._internals.states.add('active');\n this.#offset = this.valueAsNumber;\n }\n\n #touchMove(e: NveTouchEvent) {\n const offset = (this.orientation === 'vertical' ? e.offsetX : -e.offsetY) * (this.dir === 'rtl' ? -1 : 1);\n this.#offset = this.#offset + offset;\n this.#setInput(this.#offset);\n }\n\n #touchEnd() {\n this.#offset = this.valueAsNumber;\n this.#range.step = `${this.step}`;\n this.#setChange(this.#offset);\n this._internals.states.delete('active');\n }\n\n #setInput(value: number) {\n this.#updateValue(value);\n this.dispatchInputEvent();\n }\n\n #setChange(value: number) {\n this.#updateValue(value);\n this.dispatchChangeEvent();\n }\n\n #updateValue(value: number) {\n if (value <= this.max && value >= this.min) {\n this.valueAsNumber = value;\n }\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Search } from '.';
1
+ import { Search } from '@nvidia-elements/core/search';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-search': Search;
@@ -1,6 +1,6 @@
1
- import { ContainerElement } from '../internal';
2
- import { Control } from '../forms';
3
- import { IconButton } from '../icon-button';
1
+ import type { ContainerElement } from '@nvidia-elements/core/internal';
2
+ import { Control } from '@nvidia-elements/core/forms';
3
+ import { IconButton } from '@nvidia-elements/core/icon-button';
4
4
  /**
5
5
  * @element nve-search
6
6
  * @description A search is a control that enables users to enter text to search.
@@ -26,7 +26,7 @@ export declare class Search extends Control implements ContainerElement {
26
26
  * Sets the rounded visual style of the input.
27
27
  */
28
28
  rounded: boolean;
29
- static styles: import('lit').CSSResult[];
29
+ static styles: import("lit").CSSResult[];
30
30
  static readonly metadata: {
31
31
  tag: string;
32
32
  version: string;
@@ -34,5 +34,5 @@ export declare class Search extends Control implements ContainerElement {
34
34
  static elementDefinitions: {
35
35
  [IconButton.metadata.tag]: typeof IconButton;
36
36
  };
37
- protected get prefixContent(): import('lit').TemplateResult<1>;
37
+ protected get prefixContent(): import("lit").TemplateResult<1>;
38
38
  }
@@ -1,6 +1,6 @@
1
1
  import { scopedRegistry as e } from "../internal/decorators/scoped-registry.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 { Control as r } from "../forms/control/control2.js";
5
5
  import { IconButton as i } from "../icon-button/icon-button2.js";
6
6
  import { inputStyles as a } from "../input/input2.js";
@@ -22,7 +22,7 @@ var l = class extends r {
22
22
  static {
23
23
  this.metadata = {
24
24
  tag: "nve-search",
25
- version: "2.0.4"
25
+ version: "2.1.0"
26
26
  };
27
27
  }
28
28
  static {
@@ -1,4 +1,4 @@
1
- import { Select } from '.';
1
+ import { Select } from '@nvidia-elements/core/select';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-select': Select;
@@ -1,9 +1,10 @@
1
- import { PropertyValues, nothing } from 'lit';
2
- import { Control } from '../forms';
3
- import { Icon } from '../icon';
4
- import { Menu, MenuItem } from '../menu';
5
- import { Dropdown } from '../dropdown';
6
- import { Tag } from '../tag';
1
+ import type { PropertyValues } from 'lit';
2
+ import { nothing } from 'lit';
3
+ import { Control } from '@nvidia-elements/core/forms';
4
+ import { Icon } from '@nvidia-elements/core/icon';
5
+ import { Menu, MenuItem } from '@nvidia-elements/core/menu';
6
+ import { Dropdown } from '@nvidia-elements/core/dropdown';
7
+ import { Tag } from '@nvidia-elements/core/tag';
7
8
  /**
8
9
  * @element nve-select
9
10
  * @description A select is a control that enables users to select an option from a list of options.
@@ -39,7 +40,7 @@ import { Tag } from '../tag';
39
40
  */
40
41
  export declare class Select extends Control {
41
42
  #private;
42
- static styles: import('lit').CSSResult[];
43
+ static styles: import("lit").CSSResult[];
43
44
  static readonly metadata: {
44
45
  tag: string;
45
46
  version: string;
@@ -54,11 +55,11 @@ export declare class Select extends Control {
54
55
  /** Flat container option applies when embedding the component within another containing element */
55
56
  container?: 'flat' | 'inline';
56
57
  /** Updates internal string values for internationalization. */
57
- i18n: Partial<import('../internal').I18nStrings & {
58
+ i18n: Partial<import("@nvidia-elements/core/internal").I18nStrings & {
58
59
  __set: boolean;
59
60
  }>;
60
- protected get prefixContent(): typeof nothing | import('lit').TemplateResult<1>;
61
- protected get suffixContent(): import('lit').TemplateResult<1>;
61
+ protected get prefixContent(): typeof nothing | import("lit").TemplateResult<1>;
62
+ protected get suffixContent(): import("lit").TemplateResult<1>;
62
63
  firstUpdated(props: PropertyValues<this>): Promise<void>;
63
64
  connectedCallback(): void;
64
65
  disconnectedCallback(): void;
@@ -4,7 +4,7 @@ import { focusElementTimeout as r, onListboxActivate as i } from "../internal/ut
4
4
  import { appendRootNodeStyle as a, getElementUpdate as o } from "../internal/utils/dom.js";
5
5
  import { scopedRegistry as s } from "../internal/decorators/scoped-registry.js";
6
6
  import { useStyles as c } from "../internal/styles/index.js";
7
- import { __decorate as l } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
7
+ import l from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
8
8
  import { Icon as u } from "../icon/icon2.js";
9
9
  import { Control as d } from "../forms/control/control2.js";
10
10
  import { Tag as f } from "../tag/tag2.js";
@@ -27,7 +27,7 @@ var S = class extends d {
27
27
  static {
28
28
  this.metadata = {
29
29
  tag: "nve-select",
30
- version: "2.0.4"
30
+ version: "2.1.0"
31
31
  };
32
32
  }
33
33
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"select2.js","names":["#i18nController","#select","#options","#dropdown","#menuItems","#input","#tags","#caret","#placeholderOption","#multipleSelectLabel","#selectValue","#menu","#closeDropdown","#openDropdown","#setupCustomSelectUI","#observers","#syncOptionSelectedStates","#disconnectObservers","#setupOverflowListener","#syncSelectValueStates","#optionObservers","#setupObservers","#updateMultipleOverflow"],"sources":["../../src/select/select.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n focusElementTimeout,\n onListboxActivate,\n useStyles,\n i18n,\n I18nController,\n onChildListMutation,\n getElementUpdate,\n scopedRegistry,\n appendRootNodeStyle\n} from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport styles from './select.css?inline';\nimport globalStyles from './select.global.css?inline';\n\n/**\n * @element nve-select\n * @description A select is a control that enables users to select an option from a list of options.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/select\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --text-align\n * @cssprop --scroll-height\n * @cssprop --width\n * @cssprop --control-width\n * @cssprop --max-width\n * @cssprop --min-width\n * @cssprop --box-shadow\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag\n * @csspart menu - The dropdown menu element\n * @csspart menu-item - The menu item elements\n * @csspart icon - The icon element\n * @csspart caret - The caret/chevron icon element\n * @csspart dropdown - The dropdown popup element\n * @slot - Select input element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n */\n@i18n<Select>()\n@scopedRegistry()\nexport class Select extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-select',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /** Flat container option applies when embedding the component within another containing element */\n @property({ type: String, reflect: true }) container?: 'flat' | 'inline';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Updates internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #select() {\n return this.input as unknown as HTMLSelectElement;\n }\n\n get #options() {\n return Array.from(this.#select?.options ? this.#select.options : []);\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #menuItems() {\n return this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector<HTMLElement>('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #caret() {\n return this.shadowRoot!.querySelector<Icon>('[name=\"caret\"]');\n }\n\n get #placeholderOption() {\n return this.#options.find(o => o.selected && o.hidden && o.disabled);\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n\n get #multipleSelectLabel() {\n const option = this.#placeholderOption;\n const label = option ? option.innerText : `${this.#select.selectedOptions.length} ${this.i18n.selected}`;\n return html`<div class=\"tags-label ${option ? 'placeholder' : ''}\" aria-hidden=\"true\">${label}</div>`;\n }\n\n protected get prefixContent() {\n return this.#select?.multiple && this.#select?.size === 0\n ? html`\n ${this.#multipleSelectLabel}\n <div class=\"tags\">\n ${this.#options\n .filter(o => o.selected && o !== this.#placeholderOption)\n .map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o, false)}>${o.textContent}</nve-tag>`\n )}\n </div>`\n : nothing;\n }\n\n get #menu() {\n return html`\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${this.#options\n .filter(o => o !== this.#placeholderOption)\n .map(\n (o, i) => html`\n <nve-menu-item part=\"menu-item\" role=\"option\" @click=${() => this.#selectValue(o, !o.selected)} ?selected=${o.selected} ?disabled=${o.disabled} ?hidden=${!!o.hidden} aria-selected=${o.selected}>\n <slot name=\"option-${i + 1}\">\n <nve-icon part=\"icon\" name=\"check\" size=\"sm\" aria-hidden=\"true\"></nve-icon> ${o.innerText}\n </slot>\n </nve-menu-item>`\n )}\n </nve-menu>`;\n }\n\n protected get suffixContent() {\n return this.#select?.size === 0\n ? html`\n <nve-icon name=\"caret\" part=\"caret\" direction=\"down\" size=\"sm\" aria-hidden=\"true\"></nve-icon>\n <nve-dropdown part=\"dropdown\" @close=${this.#closeDropdown} @open=${this.#openDropdown} hidden .anchor=${this.#input as HTMLElement} position=\"bottom\">\n ${this.#menu}\n </nve-dropdown>`\n : this.#menu;\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#setupCustomSelectUI();\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select, 'value', () => this.requestUpdate()),\n onChildListMutation(this.#select, () => this.requestUpdate(), { attributes: true, subtree: true }),\n onChildListMutation(this.#select, () => this.#syncOptionSelectedStates(), { subtree: true })\n );\n }\n\n #optionObservers = new Map<HTMLOptionElement, MutationObserver>();\n\n #setupObservers() {\n this.#disconnectObservers();\n this.#setupOverflowListener();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n\n #disconnectObservers() {\n this.#observers.forEach(observer => observer.disconnect());\n this.#observers = [];\n this.#optionObservers.clear();\n }\n\n #syncOptionSelectedStates() {\n const options = new Set(this.#options);\n\n this.#optionObservers.forEach((observer, option) => {\n if (!options.has(option)) {\n observer.disconnect();\n this.#optionObservers.delete(option);\n this.#observers = this.#observers.filter(o => o !== observer);\n }\n });\n\n this.#options.forEach(o => {\n if (!this.#optionObservers.has(o)) {\n const observer = getElementUpdate(o, 'selected', () => this.requestUpdate());\n this.#optionObservers.set(o, observer);\n this.#observers.push(observer);\n }\n });\n }\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n void this.updateComplete.then(() => {\n if (this.isConnected) {\n this.#setupObservers();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#disconnectObservers();\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (this.#select?.size && this.#select?.size !== 0) {\n this._internals.states.add('size');\n this.style.setProperty('--size', `${this.#select?.size + 0.75}`);\n } else {\n this._internals.states.delete('size');\n this.style.removeProperty('--size');\n }\n\n if (this.#select?.multiple && this.#select?.size === 0) {\n this._internals.states.add('multiple');\n } else {\n this._internals.states.delete('multiple');\n }\n }\n\n #setupCustomSelectUI() {\n if (this.#select?.size === 0) {\n onListboxActivate(this.#select, () => {\n this.requestUpdate(); // update menu items\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n this.#dropdown!.showPopover();\n focusElementTimeout(this.#menuItems[0] as HTMLElement);\n });\n }\n }\n\n #openDropdown() {\n this.#dropdown!.hidden = false;\n this.#caret!.direction = 'up';\n }\n\n #closeDropdown() {\n this.#dropdown!.hidden = true;\n this.#caret!.direction = 'down';\n }\n\n #setupOverflowListener() {\n const observer = new ResizeObserver(entries => this.#updateMultipleOverflow(entries[0]!.contentRect.width));\n this.#observers.push(observer);\n observer.observe(this.#input!);\n }\n\n async #selectValue(option: HTMLOptionElement, selected: boolean) {\n if (this.#select.multiple || (!this.#select.multiple && option.value !== this.#select.value)) {\n option.selected = selected;\n }\n\n // native select only the first selected option determines the select input value\n if (this.#select.selectedOptions.length < 1) {\n this.#select.value = selected ? option.value : '';\n }\n\n this.#select.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select.dispatchEvent(new Event('change', { bubbles: true }));\n this.requestUpdate();\n\n if (!this.#select.multiple && this.#dropdown) {\n this.#dropdown.hidePopover();\n } else {\n await this.updateComplete;\n this.#updateMultipleOverflow(this.#input!.getBoundingClientRect().width);\n }\n }\n\n #updateMultipleOverflow(width: number) {\n const tags = this.#tags;\n if (this.#select?.multiple && tags && tags.getBoundingClientRect().width > width - 48) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"select2.js","names":["#i18nController","#select","#options","#dropdown","#menuItems","#input","#tags","#caret","#placeholderOption","#multipleSelectLabel","#selectValue","#menu","#closeDropdown","#openDropdown","#setupCustomSelectUI","#observers","#syncOptionSelectedStates","#disconnectObservers","#setupOverflowListener","#syncSelectValueStates","#optionObservers","#setupObservers","#updateMultipleOverflow"],"sources":["../../src/select/select.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, nothing } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {\n focusElementTimeout,\n onListboxActivate,\n useStyles,\n i18n,\n I18nController,\n onChildListMutation,\n getElementUpdate,\n scopedRegistry,\n appendRootNodeStyle\n} from '@nvidia-elements/core/internal';\nimport { Control } from '@nvidia-elements/core/forms';\nimport { Icon } from '@nvidia-elements/core/icon';\nimport { Menu, MenuItem } from '@nvidia-elements/core/menu';\nimport { Dropdown } from '@nvidia-elements/core/dropdown';\nimport { Tag } from '@nvidia-elements/core/tag';\nimport styles from './select.css?inline';\nimport globalStyles from './select.global.css?inline';\n\n/**\n * @element nve-select\n * @description A select is a control that enables users to select an option from a list of options.\n * @since 0.3.0\n * @entrypoint \\@nvidia-elements/core/select\n * @cssprop --padding\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --border\n * @cssprop --border-bottom\n * @cssprop --cursor\n * @cssprop --font-weight\n * @cssprop --text-align\n * @cssprop --scroll-height\n * @cssprop --width\n * @cssprop --control-width\n * @cssprop --max-width\n * @cssprop --min-width\n * @cssprop --box-shadow\n * @cssprop --max-height\n * @cssprop --text-transform\n * @csspart tag\n * @csspart menu - The dropdown menu element\n * @csspart menu-item - The menu item elements\n * @csspart icon - The icon element\n * @csspart caret - The caret/chevron icon element\n * @csspart dropdown - The dropdown popup element\n * @slot - Select input element\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select\n */\n@i18n<Select>()\n@scopedRegistry()\nexport class Select extends Control {\n static styles = useStyles([...Control.styles, styles]);\n\n static readonly metadata = {\n tag: 'nve-select',\n version: '0.0.0'\n };\n\n static elementDefinitions = {\n [Icon.metadata.tag]: Icon,\n [Dropdown.metadata.tag]: Dropdown,\n [Menu.metadata.tag]: Menu,\n [MenuItem.metadata.tag]: MenuItem,\n [Tag.metadata.tag]: Tag\n };\n\n /** Flat container option applies when embedding the component within another containing element */\n @property({ type: String, reflect: true }) container?: 'flat' | 'inline';\n\n #i18nController: I18nController<this> = new I18nController<this>(this);\n\n /** Updates internal string values for internationalization. */\n @property({ type: Object }) i18n = this.#i18nController.i18n;\n\n get #select() {\n return this.input as unknown as HTMLSelectElement;\n }\n\n get #options() {\n return Array.from(this.#select?.options ? this.#select.options : []);\n }\n\n get #dropdown() {\n return this.shadowRoot!.querySelector<Dropdown>(Dropdown.metadata.tag);\n }\n\n get #menuItems() {\n return this.shadowRoot!.querySelectorAll<MenuItem>(MenuItem.metadata.tag);\n }\n\n get #input() {\n return this.shadowRoot!.querySelector<HTMLElement>('[input]');\n }\n\n get #tags() {\n return this.shadowRoot!.querySelector('.tags');\n }\n\n get #caret() {\n return this.shadowRoot!.querySelector<Icon>('[name=\"caret\"]');\n }\n\n get #placeholderOption() {\n return this.#options.find(o => o.selected && o.hidden && o.disabled);\n }\n\n #observers: (MutationObserver | ResizeObserver)[] = [];\n\n get #multipleSelectLabel() {\n const option = this.#placeholderOption;\n const label = option ? option.innerText : `${this.#select.selectedOptions.length} ${this.i18n.selected}`;\n return html`<div class=\"tags-label ${option ? 'placeholder' : ''}\" aria-hidden=\"true\">${label}</div>`;\n }\n\n protected get prefixContent() {\n return this.#select?.multiple && this.#select?.size === 0\n ? html`\n ${this.#multipleSelectLabel}\n <div class=\"tags\">\n ${this.#options\n .filter(o => o.selected && o !== this.#placeholderOption)\n .map(\n o => html`\n <nve-tag part=\"tag\" readonly color=\"gray-slate\" closable .value=${o.value} @click=${() => this.#selectValue(o, false)}>${o.textContent}</nve-tag>`\n )}\n </div>`\n : nothing;\n }\n\n get #menu() {\n return html`\n <nve-menu part=\"menu\" role=\"listbox\" style=\"--width: 100%; --min-width: fit-content\" aria-label=${ifDefined(this.i18n.select)}>\n ${this.#options\n .filter(o => o !== this.#placeholderOption)\n .map(\n (o, i) => html`\n <nve-menu-item part=\"menu-item\" role=\"option\" @click=${() => this.#selectValue(o, !o.selected)} ?selected=${o.selected} ?disabled=${o.disabled} ?hidden=${!!o.hidden} aria-selected=${o.selected}>\n <slot name=\"option-${i + 1}\">\n <nve-icon part=\"icon\" name=\"check\" size=\"sm\" aria-hidden=\"true\"></nve-icon> ${o.innerText}\n </slot>\n </nve-menu-item>`\n )}\n </nve-menu>`;\n }\n\n protected get suffixContent() {\n return this.#select?.size === 0\n ? html`\n <nve-icon name=\"caret\" part=\"caret\" direction=\"down\" size=\"sm\" aria-hidden=\"true\"></nve-icon>\n <nve-dropdown part=\"dropdown\" @close=${this.#closeDropdown} @open=${this.#openDropdown} hidden .anchor=${this.#input as HTMLElement} position=\"bottom\">\n ${this.#menu}\n </nve-dropdown>`\n : this.#menu;\n }\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#setupCustomSelectUI();\n }\n\n #syncSelectValueStates() {\n this.#observers.push(\n getElementUpdate(this.#select, 'value', () => this.requestUpdate()),\n onChildListMutation(this.#select, () => this.requestUpdate(), { attributes: true, subtree: true }),\n onChildListMutation(this.#select, () => this.#syncOptionSelectedStates(), { subtree: true })\n );\n }\n\n #optionObservers = new Map<HTMLOptionElement, MutationObserver>();\n\n #setupObservers() {\n this.#disconnectObservers();\n this.#setupOverflowListener();\n this.#syncSelectValueStates();\n this.#syncOptionSelectedStates();\n }\n\n #disconnectObservers() {\n this.#observers.forEach(observer => observer.disconnect());\n this.#observers = [];\n this.#optionObservers.clear();\n }\n\n #syncOptionSelectedStates() {\n const options = new Set(this.#options);\n\n this.#optionObservers.forEach((observer, option) => {\n if (!options.has(option)) {\n observer.disconnect();\n this.#optionObservers.delete(option);\n this.#observers = this.#observers.filter(o => o !== observer);\n }\n });\n\n this.#options.forEach(o => {\n if (!this.#optionObservers.has(o)) {\n const observer = getElementUpdate(o, 'selected', () => this.requestUpdate());\n this.#optionObservers.set(o, observer);\n this.#observers.push(observer);\n }\n });\n }\n\n connectedCallback() {\n super.connectedCallback();\n appendRootNodeStyle(this, globalStyles);\n void this.updateComplete.then(() => {\n if (this.isConnected) {\n this.#setupObservers();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#disconnectObservers();\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (this.#select?.size && this.#select?.size !== 0) {\n this._internals.states.add('size');\n this.style.setProperty('--size', `${this.#select?.size + 0.75}`);\n } else {\n this._internals.states.delete('size');\n this.style.removeProperty('--size');\n }\n\n if (this.#select?.multiple && this.#select?.size === 0) {\n this._internals.states.add('multiple');\n } else {\n this._internals.states.delete('multiple');\n }\n }\n\n #setupCustomSelectUI() {\n if (this.#select?.size === 0) {\n onListboxActivate(this.#select, () => {\n this.requestUpdate(); // update menu items\n this.#dropdown!.style.setProperty('--min-width', `${this.#input!.getBoundingClientRect().width}px`);\n this.#dropdown!.showPopover();\n focusElementTimeout(this.#menuItems[0] as HTMLElement);\n });\n }\n }\n\n #openDropdown() {\n this.#dropdown!.hidden = false;\n this.#caret!.direction = 'up';\n }\n\n #closeDropdown() {\n this.#dropdown!.hidden = true;\n this.#caret!.direction = 'down';\n }\n\n #setupOverflowListener() {\n const observer = new ResizeObserver(entries => this.#updateMultipleOverflow(entries[0]!.contentRect.width));\n this.#observers.push(observer);\n observer.observe(this.#input!);\n }\n\n async #selectValue(option: HTMLOptionElement, selected: boolean) {\n if (this.#select.multiple || (!this.#select.multiple && option.value !== this.#select.value)) {\n option.selected = selected;\n }\n\n // native select only the first selected option determines the select input value\n if (this.#select.selectedOptions.length < 1) {\n this.#select.value = selected ? option.value : '';\n }\n\n this.#select.dispatchEvent(new Event('input', { bubbles: true }));\n this.#select.dispatchEvent(new Event('change', { bubbles: true }));\n this.requestUpdate();\n\n if (!this.#select.multiple && this.#dropdown) {\n this.#dropdown.hidePopover();\n } else {\n await this.updateComplete;\n this.#updateMultipleOverflow(this.#input!.getBoundingClientRect().width);\n }\n }\n\n #updateMultipleOverflow(width: number) {\n const tags = this.#tags;\n if (this.#select?.multiple && tags && tags.getBoundingClientRect().width > width - 48) {\n this._internals.states.add('multiple-overflow');\n } else {\n this._internals.states.delete('multiple-overflow');\n }\n }\n}\n"],"mappings":"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"}