@nvidia-elements/core 2.0.4 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.133.0 → _@oxc-project_runtime@0.139.0}/helpers/esm/decorate.js +2 -2
  3. package/dist/accordion/accordion.d.ts +17 -12
  4. package/dist/accordion/accordion2.js +5 -5
  5. package/dist/accordion/accordion2.js.map +1 -1
  6. package/dist/accordion/define.d.ts +1 -1
  7. package/dist/alert/alert-group.d.ts +6 -4
  8. package/dist/alert/alert-group2.js +2 -2
  9. package/dist/alert/alert-group2.js.map +1 -1
  10. package/dist/alert/alert.d.ts +7 -6
  11. package/dist/alert/alert2.js +2 -2
  12. package/dist/alert/alert2.js.map +1 -1
  13. package/dist/alert/define.d.ts +1 -1
  14. package/dist/avatar/avatar-group.d.ts +2 -2
  15. package/dist/avatar/avatar-group2.js +1 -1
  16. package/dist/avatar/avatar.d.ts +4 -3
  17. package/dist/avatar/avatar2.js +2 -2
  18. package/dist/avatar/avatar2.js.map +1 -1
  19. package/dist/avatar/define.d.ts +1 -1
  20. package/dist/badge/badge.d.ts +8 -6
  21. package/dist/badge/badge2.js +2 -2
  22. package/dist/badge/badge2.js.map +1 -1
  23. package/dist/badge/define.d.ts +1 -1
  24. package/dist/breadcrumb/breadcrumb.d.ts +5 -4
  25. package/dist/breadcrumb/breadcrumb2.js +2 -2
  26. package/dist/breadcrumb/breadcrumb2.js.map +1 -1
  27. package/dist/breadcrumb/define.d.ts +1 -1
  28. package/dist/bundle.d.ts +136 -67
  29. package/dist/bundles/index.d.ts +152 -0
  30. package/dist/bundles/index.js +4 -4
  31. package/dist/button/button.d.ts +5 -4
  32. package/dist/button/button2.js +2 -2
  33. package/dist/button/button2.js.map +1 -1
  34. package/dist/button/define.d.ts +1 -1
  35. package/dist/button-group/button-group.d.ts +6 -4
  36. package/dist/button-group/button-group2.js +2 -2
  37. package/dist/button-group/button-group2.js.map +1 -1
  38. package/dist/button-group/define.d.ts +1 -1
  39. package/dist/card/card.d.ts +13 -9
  40. package/dist/card/card2.js +5 -5
  41. package/dist/card/card2.js.map +1 -1
  42. package/dist/card/define.d.ts +1 -1
  43. package/dist/chat-message/chat-message.d.ts +4 -3
  44. package/dist/chat-message/chat-message2.js +2 -2
  45. package/dist/chat-message/chat-message2.js.map +1 -1
  46. package/dist/chat-message/define.d.ts +1 -1
  47. package/dist/checkbox/checkbox-group.d.ts +2 -2
  48. package/dist/checkbox/checkbox-group2.js +2 -2
  49. package/dist/checkbox/checkbox.d.ts +3 -2
  50. package/dist/checkbox/checkbox2.js +2 -2
  51. package/dist/checkbox/checkbox2.js.map +1 -1
  52. package/dist/checkbox/define.d.ts +1 -1
  53. package/dist/color/color.d.ts +6 -5
  54. package/dist/color/color2.js +2 -2
  55. package/dist/color/color2.js.map +1 -1
  56. package/dist/color/define.d.ts +1 -1
  57. package/dist/combobox/combobox.d.ts +13 -11
  58. package/dist/combobox/combobox2.js +2 -2
  59. package/dist/combobox/combobox2.js.map +1 -1
  60. package/dist/combobox/define.d.ts +1 -1
  61. package/dist/copy-button/copy-button.d.ts +8 -7
  62. package/dist/copy-button/copy-button2.js +2 -2
  63. package/dist/copy-button/copy-button2.js.map +1 -1
  64. package/dist/copy-button/define.d.ts +1 -1
  65. package/dist/custom-elements-jsx.d.ts +52 -0
  66. package/dist/custom-elements-vue.d.ts +52 -0
  67. package/dist/custom-elements.json +518 -1
  68. package/dist/data.html.json +388 -349
  69. package/dist/date/date.d.ts +6 -5
  70. package/dist/date/date2.js +2 -2
  71. package/dist/date/date2.js.map +1 -1
  72. package/dist/date/define.d.ts +1 -1
  73. package/dist/datetime/datetime.d.ts +6 -5
  74. package/dist/datetime/datetime2.js +2 -2
  75. package/dist/datetime/datetime2.js.map +1 -1
  76. package/dist/datetime/define.d.ts +1 -1
  77. package/dist/dialog/define.d.ts +1 -1
  78. package/dist/dialog/dialog-footer.d.ts +3 -2
  79. package/dist/dialog/dialog-footer2.js +2 -2
  80. package/dist/dialog/dialog-footer2.js.map +1 -1
  81. package/dist/dialog/dialog-header.d.ts +3 -2
  82. package/dist/dialog/dialog-header2.js +2 -2
  83. package/dist/dialog/dialog-header2.js.map +1 -1
  84. package/dist/dialog/dialog.d.ts +7 -5
  85. package/dist/dialog/dialog2.js +2 -2
  86. package/dist/dialog/dialog2.js.map +1 -1
  87. package/dist/divider/define.d.ts +1 -1
  88. package/dist/divider/divider.d.ts +5 -3
  89. package/dist/divider/divider2.js +2 -2
  90. package/dist/divider/divider2.js.map +1 -1
  91. package/dist/dot/define.d.ts +1 -1
  92. package/dist/dot/dot.d.ts +4 -3
  93. package/dist/dot/dot2.js +2 -2
  94. package/dist/dot/dot2.js.map +1 -1
  95. package/dist/drawer/define.d.ts +1 -1
  96. package/dist/drawer/drawer-content.d.ts +2 -2
  97. package/dist/drawer/drawer-content2.js +2 -2
  98. package/dist/drawer/drawer-footer.d.ts +3 -2
  99. package/dist/drawer/drawer-footer2.js +2 -2
  100. package/dist/drawer/drawer-footer2.js.map +1 -1
  101. package/dist/drawer/drawer-header.d.ts +3 -2
  102. package/dist/drawer/drawer-header2.js +2 -2
  103. package/dist/drawer/drawer-header2.js.map +1 -1
  104. package/dist/drawer/drawer.d.ts +7 -5
  105. package/dist/drawer/drawer2.js +2 -2
  106. package/dist/drawer/drawer2.js.map +1 -1
  107. package/dist/dropdown/define.d.ts +1 -1
  108. package/dist/dropdown/dropdown-footer.d.ts +3 -2
  109. package/dist/dropdown/dropdown-footer2.js +2 -2
  110. package/dist/dropdown/dropdown-footer2.js.map +1 -1
  111. package/dist/dropdown/dropdown-header.d.ts +3 -2
  112. package/dist/dropdown/dropdown-header2.js +2 -2
  113. package/dist/dropdown/dropdown-header2.js.map +1 -1
  114. package/dist/dropdown/dropdown.d.ts +7 -5
  115. package/dist/dropdown/dropdown2.js +2 -2
  116. package/dist/dropdown/dropdown2.js.map +1 -1
  117. package/dist/dropdown-group/define.d.ts +1 -1
  118. package/dist/dropdown-group/dropdown-group.d.ts +4 -3
  119. package/dist/dropdown-group/dropdown-group.js +2 -2
  120. package/dist/dropdown-group/dropdown-group.js.map +1 -1
  121. package/dist/dropzone/define.d.ts +1 -1
  122. package/dist/dropzone/dropzone.d.ts +13 -12
  123. package/dist/dropzone/dropzone.util.d.ts +1 -1
  124. package/dist/dropzone/dropzone.util.js.map +1 -1
  125. package/dist/dropzone/dropzone2.js +2 -2
  126. package/dist/dropzone/dropzone2.js.map +1 -1
  127. package/dist/file/define.d.ts +1 -1
  128. package/dist/file/file.d.ts +3 -2
  129. package/dist/file/file2.js +1 -1
  130. package/dist/file/file2.js.map +1 -1
  131. package/dist/format-datetime/define.d.ts +1 -1
  132. package/dist/format-datetime/format-datetime.d.ts +3 -2
  133. package/dist/format-datetime/format-datetime2.js +2 -2
  134. package/dist/format-datetime/format-datetime2.js.map +1 -1
  135. package/dist/format-number/define.d.ts +1 -1
  136. package/dist/format-number/format-number.d.ts +3 -2
  137. package/dist/format-number/format-number2.js +3 -3
  138. package/dist/format-number/format-number2.js.map +1 -1
  139. package/dist/format-relative-time/define.d.ts +1 -1
  140. package/dist/format-relative-time/format-relative-time.d.ts +3 -2
  141. package/dist/format-relative-time/format-relative-time2.js +2 -2
  142. package/dist/format-relative-time/format-relative-time2.js.map +1 -1
  143. package/dist/forms/control/control.d.ts +5 -3
  144. package/dist/forms/control/control2.js +2 -2
  145. package/dist/forms/control/control2.js.map +1 -1
  146. package/dist/forms/control-group/control-group.d.ts +5 -3
  147. package/dist/forms/control-group/control-group2.js +2 -2
  148. package/dist/forms/control-group/control-group2.js.map +1 -1
  149. package/dist/forms/control-message/control-message.d.ts +5 -4
  150. package/dist/forms/control-message/control-message2.js +2 -2
  151. package/dist/forms/control-message/control-message2.js.map +1 -1
  152. package/dist/forms/define.d.ts +1 -1
  153. package/dist/forms/utils/layout.d.ts +2 -2
  154. package/dist/forms/utils/layout.js +1 -1
  155. package/dist/forms/utils/layout.js.map +1 -1
  156. package/dist/forms/utils/states.d.ts +2 -2
  157. package/dist/forms/utils/states.js +1 -1
  158. package/dist/forms/utils/states.js.map +1 -1
  159. package/dist/gauge/define.d.ts +6 -0
  160. package/dist/gauge/define.js +7 -0
  161. package/dist/gauge/define.js.map +1 -0
  162. package/dist/gauge/gauge.d.ts +53 -0
  163. package/dist/gauge/gauge.examples.js +6 -0
  164. package/dist/gauge/gauge.examples.js.map +1 -0
  165. package/dist/gauge/gauge.examples.json +147 -0
  166. package/dist/gauge/gauge.js +6 -0
  167. package/dist/gauge/gauge.js.map +1 -0
  168. package/dist/gauge/gauge2.js +106 -0
  169. package/dist/gauge/gauge2.js.map +1 -0
  170. package/dist/gauge/index.d.ts +1 -0
  171. package/dist/gauge/index.js +2 -0
  172. package/dist/grid/cell/cell.d.ts +3 -2
  173. package/dist/grid/cell/cell2.js +1 -1
  174. package/dist/grid/cell/cell2.js.map +1 -1
  175. package/dist/grid/column/column.d.ts +5 -3
  176. package/dist/grid/column/column2.js +2 -2
  177. package/dist/grid/column/column2.js.map +1 -1
  178. package/dist/grid/define.d.ts +1 -1
  179. package/dist/grid/footer/footer.d.ts +2 -2
  180. package/dist/grid/footer/footer2.js +2 -2
  181. package/dist/grid/grid.d.ts +7 -5
  182. package/dist/grid/grid2.js +2 -2
  183. package/dist/grid/grid2.js.map +1 -1
  184. package/dist/grid/header/header.d.ts +5 -3
  185. package/dist/grid/header/header2.js +2 -2
  186. package/dist/grid/header/header2.js.map +1 -1
  187. package/dist/grid/placeholder/placeholder.d.ts +2 -2
  188. package/dist/grid/placeholder/placeholder2.js +1 -1
  189. package/dist/grid/row/row.d.ts +3 -2
  190. package/dist/grid/row/row2.js +2 -2
  191. package/dist/grid/row/row2.js.map +1 -1
  192. package/dist/icon/define.d.ts +1 -1
  193. package/dist/icon/icon.d.ts +7 -5
  194. package/dist/icon/icon2.js +3 -3
  195. package/dist/icon/icon2.js.map +1 -1
  196. package/dist/icon/icons.js.map +1 -1
  197. package/dist/icon-button/define.d.ts +1 -1
  198. package/dist/icon-button/icon-button.d.ts +7 -5
  199. package/dist/icon-button/icon-button2.js +2 -2
  200. package/dist/icon-button/icon-button2.js.map +1 -1
  201. package/dist/index.d.ts +1 -1
  202. package/dist/index.js +1 -1
  203. package/dist/input/define.d.ts +1 -1
  204. package/dist/input/input-group.d.ts +3 -2
  205. package/dist/input/input-group2.js +1 -1
  206. package/dist/input/input-group2.js.map +1 -1
  207. package/dist/input/input.d.ts +4 -3
  208. package/dist/input/input2.js +2 -2
  209. package/dist/input/input2.js.map +1 -1
  210. package/dist/internal/controllers/audit.controller.d.ts +1 -1
  211. package/dist/internal/controllers/i18n.controller.d.ts +3 -3
  212. package/dist/internal/controllers/i18n.controller.js +1 -1
  213. package/dist/internal/controllers/i18n.controller.js.map +1 -1
  214. package/dist/internal/controllers/keynav-grid.controller.d.ts +1 -1
  215. package/dist/internal/controllers/keynav-grid.controller.js.map +1 -1
  216. package/dist/internal/controllers/keynav-list.controller.d.ts +1 -1
  217. package/dist/internal/controllers/keynav-list.controller.js.map +1 -1
  218. package/dist/internal/controllers/state-expanded.controller.d.ts +1 -1
  219. package/dist/internal/controllers/state-highlighted.controller.d.ts +1 -1
  220. package/dist/internal/controllers/state-scroll.controller.d.ts +1 -1
  221. package/dist/internal/controllers/state-selected.controller.d.ts +1 -1
  222. package/dist/internal/controllers/state-selected.controller.js.map +1 -1
  223. package/dist/internal/controllers/type-anchor.controller.d.ts +1 -1
  224. package/dist/internal/controllers/type-anchor.controller.js.map +1 -1
  225. package/dist/internal/controllers/type-closable.controller.d.ts +1 -1
  226. package/dist/internal/controllers/type-expandable.controller.d.ts +1 -1
  227. package/dist/internal/controllers/type-native-popover.controller.d.ts +2 -2
  228. package/dist/internal/controllers/type-native-popover.controller.js.map +1 -1
  229. package/dist/internal/controllers/type-native-popover.utils.js.map +1 -1
  230. package/dist/internal/controllers/type-selectable.controller.d.ts +1 -1
  231. package/dist/internal/controllers/type-ssr.controller.d.ts +1 -1
  232. package/dist/internal/controllers/type-ssr.controller.js.map +1 -1
  233. package/dist/internal/controllers/type-touch.controller.d.ts +2 -2
  234. package/dist/internal/controllers/type-touch.controller.js.map +1 -1
  235. package/dist/internal/decorators/host-attr.d.ts +2 -2
  236. package/dist/internal/services/global.service.d.ts +1 -1
  237. package/dist/internal/services/global.service.js +1 -1
  238. package/dist/internal/services/global.service.js.map +1 -1
  239. package/dist/internal/services/global.utils.js.map +1 -1
  240. package/dist/internal/services/i18n.service.js.map +1 -1
  241. package/dist/internal/services/transition.service.js.map +1 -1
  242. package/dist/internal/styles/index.d.ts +1 -1
  243. package/dist/internal/types/index.d.ts +3 -3
  244. package/dist/internal/utils/a11y.js.map +1 -1
  245. package/dist/internal/utils/audit-logs.js +1 -1
  246. package/dist/internal/utils/audit.js.map +1 -1
  247. package/dist/internal/utils/dom.d.ts +1 -1
  248. package/dist/internal/utils/dom.js +10 -10
  249. package/dist/internal/utils/dom.js.map +1 -1
  250. package/dist/internal/utils/focus.js.map +1 -1
  251. package/dist/internal/utils/objects.js.map +1 -1
  252. package/dist/internal/utils/strings.js +1 -1
  253. package/dist/internal/utils/strings.js.map +1 -1
  254. package/dist/logo/define.d.ts +1 -1
  255. package/dist/logo/logo.d.ts +4 -3
  256. package/dist/logo/logo2.js +2 -2
  257. package/dist/logo/logo2.js.map +1 -1
  258. package/dist/menu/define.d.ts +1 -1
  259. package/dist/menu/menu-item.d.ts +4 -3
  260. package/dist/menu/menu-item2.js +2 -2
  261. package/dist/menu/menu-item2.js.map +1 -1
  262. package/dist/menu/menu.d.ts +5 -4
  263. package/dist/menu/menu2.js +2 -2
  264. package/dist/menu/menu2.js.map +1 -1
  265. package/dist/month/define.d.ts +1 -1
  266. package/dist/month/month.d.ts +6 -5
  267. package/dist/month/month2.js +2 -2
  268. package/dist/month/month2.js.map +1 -1
  269. package/dist/notification/define.d.ts +1 -1
  270. package/dist/notification/notification-group.d.ts +5 -3
  271. package/dist/notification/notification-group2.js +2 -2
  272. package/dist/notification/notification-group2.js.map +1 -1
  273. package/dist/notification/notification.d.ts +10 -7
  274. package/dist/notification/notification2.js +2 -2
  275. package/dist/notification/notification2.js.map +1 -1
  276. package/dist/page/define.d.ts +1 -1
  277. package/dist/page/page-panel/page-panel-content.d.ts +3 -2
  278. package/dist/page/page-panel/page-panel-content2.js +1 -1
  279. package/dist/page/page-panel/page-panel-content2.js.map +1 -1
  280. package/dist/page/page-panel/page-panel-footer.d.ts +3 -2
  281. package/dist/page/page-panel/page-panel-footer2.js +2 -2
  282. package/dist/page/page-panel/page-panel-footer2.js.map +1 -1
  283. package/dist/page/page-panel/page-panel-header.d.ts +3 -2
  284. package/dist/page/page-panel/page-panel-header2.js +2 -2
  285. package/dist/page/page-panel/page-panel-header2.js.map +1 -1
  286. package/dist/page/page-panel/page-panel.d.ts +5 -4
  287. package/dist/page/page-panel/page-panel2.js +2 -2
  288. package/dist/page/page-panel/page-panel2.js.map +1 -1
  289. package/dist/page/page.d.ts +3 -2
  290. package/dist/page/page2.js +2 -2
  291. package/dist/page/page2.js.map +1 -1
  292. package/dist/page-header/define.d.ts +1 -1
  293. package/dist/page-header/page-header.d.ts +3 -2
  294. package/dist/page-header/page-header2.js +1 -1
  295. package/dist/page-header/page-header2.js.map +1 -1
  296. package/dist/page-loader/define.d.ts +1 -1
  297. package/dist/page-loader/page-loader.d.ts +6 -4
  298. package/dist/page-loader/page-loader2.js +2 -2
  299. package/dist/page-loader/page-loader2.js.map +1 -1
  300. package/dist/pagination/define.d.ts +1 -1
  301. package/dist/pagination/pagination.d.ts +9 -8
  302. package/dist/pagination/pagination2.js +2 -2
  303. package/dist/pagination/pagination2.js.map +1 -1
  304. package/dist/panel/define.d.ts +1 -1
  305. package/dist/panel/panel.d.ts +14 -10
  306. package/dist/panel/panel2.js +5 -5
  307. package/dist/panel/panel2.js.map +1 -1
  308. package/dist/password/define.d.ts +1 -1
  309. package/dist/password/password.d.ts +6 -5
  310. package/dist/password/password2.js +2 -2
  311. package/dist/password/password2.js.map +1 -1
  312. package/dist/polyfills/custom-state-set.js.map +1 -1
  313. package/dist/polyfills/index.d.ts +13 -0
  314. package/dist/preferences-input/define.d.ts +1 -1
  315. package/dist/preferences-input/preferences-input.d.ts +14 -13
  316. package/dist/preferences-input/preferences-input2.js +2 -2
  317. package/dist/preferences-input/preferences-input2.js.map +1 -1
  318. package/dist/progress-bar/define.d.ts +1 -1
  319. package/dist/progress-bar/progress-bar.d.ts +4 -3
  320. package/dist/progress-bar/progress-bar2.js +2 -2
  321. package/dist/progress-bar/progress-bar2.js.map +1 -1
  322. package/dist/progress-ring/define.d.ts +1 -1
  323. package/dist/progress-ring/progress-ring.d.ts +8 -6
  324. package/dist/progress-ring/progress-ring2.js +4 -4
  325. package/dist/progress-ring/progress-ring2.js.map +1 -1
  326. package/dist/progressive-filter-chip/define.d.ts +1 -1
  327. package/dist/progressive-filter-chip/progressive-filter-chip.d.ts +8 -7
  328. package/dist/progressive-filter-chip/progressive-filter-chip2.js +2 -2
  329. package/dist/progressive-filter-chip/progressive-filter-chip2.js.map +1 -1
  330. package/dist/pulse/define.d.ts +1 -1
  331. package/dist/pulse/pulse.d.ts +5 -4
  332. package/dist/pulse/pulse2.js +2 -2
  333. package/dist/pulse/pulse2.js.map +1 -1
  334. package/dist/radio/define.d.ts +1 -1
  335. package/dist/radio/radio-group.d.ts +2 -2
  336. package/dist/radio/radio-group2.js +2 -2
  337. package/dist/radio/radio.d.ts +3 -2
  338. package/dist/radio/radio2.js +2 -2
  339. package/dist/radio/radio2.js.map +1 -1
  340. package/dist/range/define.d.ts +1 -1
  341. package/dist/range/range.d.ts +6 -4
  342. package/dist/range/range2.js +2 -2
  343. package/dist/range/range2.js.map +1 -1
  344. package/dist/resize-handle/define.d.ts +1 -1
  345. package/dist/resize-handle/resize-handle.d.ts +7 -6
  346. package/dist/resize-handle/resize-handle2.js +2 -2
  347. package/dist/resize-handle/resize-handle2.js.map +1 -1
  348. package/dist/search/define.d.ts +1 -1
  349. package/dist/search/search.d.ts +6 -5
  350. package/dist/search/search2.js +2 -2
  351. package/dist/search/search2.js.map +1 -1
  352. package/dist/select/define.d.ts +1 -1
  353. package/dist/select/select.d.ts +12 -10
  354. package/dist/select/select2.js +2 -2
  355. package/dist/select/select2.js.map +1 -1
  356. package/dist/skeleton/define.d.ts +1 -1
  357. package/dist/skeleton/skeleton.d.ts +4 -3
  358. package/dist/skeleton/skeleton2.js +2 -2
  359. package/dist/skeleton/skeleton2.js.map +1 -1
  360. package/dist/sort-button/define.d.ts +1 -1
  361. package/dist/sort-button/sort-button.d.ts +6 -5
  362. package/dist/sort-button/sort-button2.js +2 -2
  363. package/dist/sort-button/sort-button2.js.map +1 -1
  364. package/dist/sparkline/define.d.ts +1 -1
  365. package/dist/sparkline/sparkline.d.ts +6 -4
  366. package/dist/sparkline/sparkline.utils.d.ts +1 -1
  367. package/dist/sparkline/sparkline.utils.js.map +1 -1
  368. package/dist/sparkline/sparkline2.js +2 -2
  369. package/dist/sparkline/sparkline2.js.map +1 -1
  370. package/dist/star-rating/define.d.ts +1 -1
  371. package/dist/star-rating/star-rating.d.ts +6 -5
  372. package/dist/star-rating/star-rating2.js +2 -2
  373. package/dist/star-rating/star-rating2.js.map +1 -1
  374. package/dist/steps/define.d.ts +1 -1
  375. package/dist/steps/steps.d.ts +12 -9
  376. package/dist/steps/steps2.js +3 -3
  377. package/dist/steps/steps2.js.map +1 -1
  378. package/dist/switch/define.d.ts +1 -1
  379. package/dist/switch/switch-group.d.ts +2 -2
  380. package/dist/switch/switch-group2.js +2 -2
  381. package/dist/switch/switch.d.ts +3 -2
  382. package/dist/switch/switch2.js +2 -2
  383. package/dist/switch/switch2.js.map +1 -1
  384. package/dist/tabs/define.d.ts +1 -1
  385. package/dist/tabs/tabs-group.d.ts +5 -3
  386. package/dist/tabs/tabs-group2.js +2 -2
  387. package/dist/tabs/tabs-group2.js.map +1 -1
  388. package/dist/tabs/tabs.d.ts +10 -7
  389. package/dist/tabs/tabs2.js +3 -3
  390. package/dist/tabs/tabs2.js.map +1 -1
  391. package/dist/tag/define.d.ts +1 -1
  392. package/dist/tag/tag.d.ts +7 -6
  393. package/dist/tag/tag2.js +2 -2
  394. package/dist/tag/tag2.js.map +1 -1
  395. package/dist/textarea/define.d.ts +1 -1
  396. package/dist/textarea/textarea.d.ts +3 -2
  397. package/dist/textarea/textarea2.js +1 -1
  398. package/dist/textarea/textarea2.js.map +1 -1
  399. package/dist/time/define.d.ts +1 -1
  400. package/dist/time/time.d.ts +6 -5
  401. package/dist/time/time2.js +2 -2
  402. package/dist/time/time2.js.map +1 -1
  403. package/dist/toast/define.d.ts +1 -1
  404. package/dist/toast/toast.d.ts +8 -6
  405. package/dist/toast/toast2.js +2 -2
  406. package/dist/toast/toast2.js.map +1 -1
  407. package/dist/toggletip/define.d.ts +1 -1
  408. package/dist/toggletip/toggletip-footer.d.ts +3 -2
  409. package/dist/toggletip/toggletip-footer2.js +2 -2
  410. package/dist/toggletip/toggletip-footer2.js.map +1 -1
  411. package/dist/toggletip/toggletip-header.d.ts +3 -2
  412. package/dist/toggletip/toggletip-header2.js +2 -2
  413. package/dist/toggletip/toggletip-header2.js.map +1 -1
  414. package/dist/toggletip/toggletip.d.ts +7 -5
  415. package/dist/toggletip/toggletip2.js +2 -2
  416. package/dist/toggletip/toggletip2.js.map +1 -1
  417. package/dist/toolbar/define.d.ts +1 -1
  418. package/dist/toolbar/toolbar.d.ts +6 -4
  419. package/dist/toolbar/toolbar2.js +2 -2
  420. package/dist/toolbar/toolbar2.js.map +1 -1
  421. package/dist/tooltip/define.d.ts +1 -1
  422. package/dist/tooltip/tooltip.d.ts +5 -3
  423. package/dist/tooltip/tooltip2.js +2 -2
  424. package/dist/tooltip/tooltip2.js.map +1 -1
  425. package/dist/tree/define.d.ts +1 -1
  426. package/dist/tree/tree-node.d.ts +7 -6
  427. package/dist/tree/tree-node2.js +2 -2
  428. package/dist/tree/tree-node2.js.map +1 -1
  429. package/dist/tree/tree.d.ts +6 -4
  430. package/dist/tree/tree2.js +2 -2
  431. package/dist/tree/tree2.js.map +1 -1
  432. package/dist/week/define.d.ts +1 -1
  433. package/dist/week/week.d.ts +6 -5
  434. package/dist/week/week2.js +2 -2
  435. package/dist/week/week2.js.map +1 -1
  436. package/package.json +23 -11
@@ -1 +1 @@
1
- {"version":3,"file":"cell2.js","names":[],"sources":["../../../src/grid/cell/cell.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { useStyles, attachInternals } from '@nvidia-elements/core/internal';\nimport styles from './cell.css?inline';\n\n/**\n * @element nve-grid-cell\n * @description Represents an individual data cell within a grid row, displaying content aligned to its parent column.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @cssprop --background\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --min-height\n * @cssprop --min-width\n * @cssprop --font-weight\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --border-left\n * @cssprop --border-right\n * @cssprop --justify-content\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridCell extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-cell',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host focusable=\"active\">\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'gridcell';\n }\n}\n"],"mappings":";;;;;AA0BA,IAAa,IAAb,cAA8B,EAAW;;gBACvB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;CAKA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF"}
1
+ {"version":3,"file":"cell2.js","names":[],"sources":["../../../src/grid/cell/cell.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { useStyles, attachInternals } from '@nvidia-elements/core/internal';\nimport styles from './cell.css?inline';\n\n/**\n * @element nve-grid-cell\n * @description Represents an individual data cell within a grid row, displaying content aligned to its parent column.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @cssprop --background\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --min-height\n * @cssprop --min-width\n * @cssprop --font-weight\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --border-left\n * @cssprop --border-right\n * @cssprop --justify-content\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridCell extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-cell',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host focusable=\"active\">\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'gridcell';\n }\n}\n"],"mappings":";;;;;AA2BA,IAAa,IAAb,cAA8B,EAAW;;gBACvB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;CAKA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF"}
@@ -1,7 +1,9 @@
1
- import { PropertyValues, LitElement } from 'lit';
1
+ import type { PropertyValues } from 'lit';
2
+ import { LitElement } from 'lit';
2
3
  /**
3
4
  * @element nve-grid-column
4
5
  * @description Defines a column header within a grid, specifying the column's label, width, and alignment for all cells beneath it.
6
+ * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/
5
7
  * @since 0.11.0
6
8
  * @entrypoint \@nvidia-elements/core/grid
7
9
  * @slot - default slot for content
@@ -39,14 +41,14 @@ export declare class GridColumn extends LitElement {
39
41
  * @private
40
42
  */
41
43
  ariaColIndex: string;
42
- static styles: import('lit').CSSResult[];
44
+ static styles: import("lit").CSSResult[];
43
45
  static readonly metadata: {
44
46
  tag: string;
45
47
  version: string;
46
48
  };
47
49
  /** @private */
48
50
  _internals: ElementInternals;
49
- render(): import('lit').TemplateResult<1>;
51
+ render(): import("lit").TemplateResult<1>;
50
52
  connectedCallback(): void;
51
53
  disconnectedCallback(): void;
52
54
  willUpdate(props: PropertyValues<this>): void;
@@ -1,7 +1,7 @@
1
1
  import { appendRootNodeStyle as e } from "../../internal/utils/dom.js";
2
2
  import { attachInternals as t } from "../../internal/utils/a11y.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 "./column.js";
6
6
  import { LitElement as a, html as o } from "lit";
7
7
  import { property as s } from "lit/decorators/property.js";
@@ -13,7 +13,7 @@ var c = class r extends a {
13
13
  static {
14
14
  this.metadata = {
15
15
  tag: "nve-grid-column",
16
- version: "2.0.4"
16
+ version: "2.1.1"
17
17
  };
18
18
  }
19
19
  get #e() {
@@ -1 +1 @@
1
- {"version":3,"file":"column2.js","names":["#grid","#onSort","#computeColumnAlignment","#computeColumnPositions","#positionStylesheet","#buildFixedStyles","#buildBorderStyle"],"sources":["../../../src/grid/column/column.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 { useStyles, attachInternals, appendRootNodeStyle } from '@nvidia-elements/core/internal';\nimport type { Grid } from '@nvidia-elements/core/grid';\nimport styles from './column.css?inline';\n\n/**\n * @element nve-grid-column\n * @description Defines a column header within a grid, specifying the column's label, width, and alignment for all cells beneath it.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @slot actions - slot for column actions\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --font-weight\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --min-width\n * @cssprop --justify-content\n * @cssprop --border-left\n * @cssprop --border-right\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridColumn extends LitElement {\n /**\n * Only set a fixed px width when you know the grid width. Most cases this should remain unset.\n * If the total width of all columns is less than the grid width then the last column fills the remaining space.\n * By default column widths are evenly divided unless width is explicitly provided.\n */\n @property({ type: String, reflect: true }) width: string;\n\n /**\n * Set the `position` property or attribute to `fixed` or `sticky` to make the column fixed or sticky.\n * Fixed columns do not scroll horizontally with the grid. Sticky columns scroll horizontally with the grid\n * until the column reaches the edge of the grid.\n */\n @property({ type: String, reflect: true }) position: 'fixed' | 'sticky' | '';\n\n /**\n * Control the content alignment within a given column.\n */\n @property({ type: String, reflect: true, attribute: 'column-align' }) columnAlign: 'start' | 'center' | 'end';\n\n /**\n * @private\n */\n @property({ type: String, reflect: true, attribute: 'aria-colindex' }) ariaColIndex: string; // eslint-disable-line local/reserved-property-names\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-column',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #grid() {\n return this.parentElement!.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host focusable=\"active\">\n <slot></slot>\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'columnheader';\n this.addEventListener('sort', this.#onSort);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('sort', this.#onSort);\n }\n\n #onSort = (e: Event) => {\n this.ariaSort = (e as CustomEvent<{ next: string }>).detail.next;\n };\n\n willUpdate(props: PropertyValues<this>) {\n if (props.has('width') && this.width && Number.isFinite(Number(this.width))) {\n this.width = `${this.width}px`; // eslint-disable-line local/stateless-property\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n\n if (props.get('columnAlign') !== this.columnAlign) {\n this.#computeColumnAlignment();\n }\n\n if (props.get('position') !== this.position) {\n this.#computeColumnPositions();\n }\n\n if (props.get('ariaColIndex') !== this.ariaColIndex) {\n this.#computeColumnPositions();\n this.#computeColumnAlignment();\n }\n\n if (props.get('width') !== this.width) {\n this.dispatchEvent(new CustomEvent('nve-grid-column-resize', { bubbles: true, composed: true }));\n }\n }\n\n #positionStylesheet: CSSStyleSheet;\n\n #computeColumnPositions() {\n if (this.position !== 'fixed') {\n this.removeAttribute('left');\n this.removeAttribute('right');\n this.#positionStylesheet?.replaceSync('');\n return;\n }\n\n const { side, positionStyle, borderStyle } = this.#buildFixedStyles();\n const combinedStyle = `${positionStyle}\\n${borderStyle}`;\n\n if (this.#positionStylesheet) {\n this.#positionStylesheet.replaceSync(combinedStyle);\n } else {\n this.#positionStylesheet = appendRootNodeStyle(this.#grid, combinedStyle);\n }\n\n this.setAttribute(side, '');\n }\n\n #buildFixedStyles() {\n const columns = Array.from(this.parentElement!.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n const rightColumns = columns.slice(columns.indexOf(this) + 1, columns.length);\n const position = this.getBoundingClientRect();\n const gridPosition = this.#grid.getBoundingClientRect();\n const side = this.offsetLeft < gridPosition.width / 2 ? 'left' : 'right';\n const leftStyle = position.left - gridPosition.left;\n const rightStyle = rightColumns.reduce((width, c) => width + c.getBoundingClientRect().width, 0);\n const selector = `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex})`;\n\n const positionStyle = `\n ${selector} {\n position: sticky;\n z-index: 99;\n ${side === 'left' ? `left: ${leftStyle}px;` : `right: ${rightStyle}px;`}\n }\n `;\n\n const borderStyle = this.#buildBorderStyle(selector, side);\n return { side, positionStyle, borderStyle };\n }\n\n #buildBorderStyle(selector: string, side: 'left' | 'right') {\n const isLastLeft = side === 'left' && (this.nextElementSibling as GridColumn)?.position !== this.position;\n const isLastRight = side === 'right' && (this.previousElementSibling as GridColumn)?.position !== this.position;\n\n if (!isLastLeft && !isLastRight) {\n return '';\n }\n\n return `\n ${selector} {\n box-shadow: var(--scroll-shadow);\n clip-path: inset(0px ${isLastLeft ? '-4px' : '0'} 0px ${isLastRight ? '-4px' : '0'});\n --border-${side === 'right' ? 'left' : 'right'}: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n }\n `;\n }\n\n #computeColumnAlignment() {\n if (this.columnAlign !== undefined) {\n appendRootNodeStyle(\n this.#grid,\n `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex}) {\n --justify-content: ${this.columnAlign}\n }`\n );\n }\n }\n}\n"],"mappings":";;;;;;;;AA4BA,IAAa,IAAb,MAAa,UAAmB,EAAW;;gBAyBzB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;CAKA,IAAIA,KAAQ;EACV,OAAO,KAAK,cAAe;CAC7B;CAEA,SAAS;EACP,OAAO,CAAI;CAMb;CAEA,oBAAoB;EAIlB,AAHA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,gBACvB,KAAK,iBAAiB,QAAQ,KAAKC,EAAO;CAC5C;CAEA,uBAAuB;EAErB,AADA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,QAAQ,KAAKA,EAAO;CAC/C;CAEA,MAAW,MAAa;EACtB,KAAK,WAAY,EAAoC,OAAO;CAC9D;CAEA,WAAW,GAA6B;EACtC,AAAI,EAAM,IAAI,OAAO,KAAK,KAAK,SAAS,OAAO,SAAS,OAAO,KAAK,KAAK,CAAC,MACxE,KAAK,QAAQ,GAAG,KAAK,MAAM;CAE/B;CAEA,MAAM,QAAQ,GAA6B;EAgBzC,AAfA,MAAM,QAAQ,CAAK,GAEf,EAAM,IAAI,aAAa,MAAM,KAAK,eACpC,KAAKC,GAAwB,GAG3B,EAAM,IAAI,UAAU,MAAM,KAAK,YACjC,KAAKC,GAAwB,GAG3B,EAAM,IAAI,cAAc,MAAM,KAAK,iBACrC,KAAKA,GAAwB,GAC7B,KAAKD,GAAwB,IAG3B,EAAM,IAAI,OAAO,MAAM,KAAK,SAC9B,KAAK,cAAc,IAAI,YAAY,0BAA0B;GAAE,SAAS;GAAM,UAAU;EAAK,CAAC,CAAC;CAEnG;CAEA;CAEA,KAA0B;EACxB,IAAI,KAAK,aAAa,SAAS;GAG7B,AAFA,KAAK,gBAAgB,MAAM,GAC3B,KAAK,gBAAgB,OAAO,GAC5B,KAAKE,IAAqB,YAAY,EAAE;GACxC;EACF;EAEA,IAAM,EAAE,SAAM,kBAAe,mBAAgB,KAAKC,GAAkB,GAC9D,IAAgB,GAAG,EAAc,IAAI;EAQ3C,AANI,KAAKD,KACP,KAAKA,GAAoB,YAAY,CAAa,IAElD,KAAKA,KAAsB,EAAoB,KAAKJ,IAAO,CAAa,GAG1E,KAAK,aAAa,GAAM,EAAE;CAC5B;CAEA,KAAoB;EAClB,IAAM,IAAU,MAAM,KAAK,KAAK,cAAe,iBAA6B,EAAW,SAAS,GAAG,CAAC,GAC9F,IAAe,EAAQ,MAAM,EAAQ,QAAQ,IAAI,IAAI,GAAG,EAAQ,MAAM,GACtE,IAAW,KAAK,sBAAsB,GACtC,IAAe,KAAKA,GAAM,sBAAsB,GAChD,IAAO,KAAK,aAAa,EAAa,QAAQ,IAAI,SAAS,SAC3D,IAAY,EAAS,OAAO,EAAa,MACzC,IAAa,EAAa,QAAQ,GAAO,MAAM,IAAQ,EAAE,sBAAsB,EAAE,OAAO,CAAC,GACzF,IAAW,QAAQ,KAAKA,GAAM,GAAG,iCAAiC,KAAK,aAAa;eAC/E,KAAKA,GAAM,GAAG,+BAA+B,KAAK,aAAa;EAW1E,OAAO;GAAE;GAAM,eAAA;UART,EAAS;;;YAGP,MAAS,SAAS,SAAS,EAAU,OAAO,UAAU,EAAW,KAAA;;;GAK3C,aADV,KAAKM,GAAkB,GAAU,CACvB;EAAY;CAC5C;CAEA,GAAkB,GAAkB,GAAwB;EAC1D,IAAM,IAAa,MAAS,UAAW,KAAK,oBAAmC,aAAa,KAAK,UAC3F,IAAc,MAAS,WAAY,KAAK,wBAAuC,aAAa,KAAK;EAMvG,OAJI,CAAC,KAAc,CAAC,IACX,KAGF;UACD,EAAS;;iCAEc,IAAa,SAAS,IAAI,OAAO,IAAc,SAAS,IAAI;qBACxE,MAAS,UAAU,SAAS,QAAQ;;;CAGvD;CAEA,KAA0B;EACxB,AAAI,KAAK,gBAAgB,KAAA,KACvB,EACE,KAAKN,IACL,QAAQ,KAAKA,GAAM,GAAG,iCAAiC,KAAK,aAAa;eAClE,KAAKA,GAAM,GAAG,+BAA+B,KAAK,aAAa;+BAC/C,KAAK,YAAA;UAE9B;CAEJ;AACF;GA9JG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,SAAA,KAAA,CAAA,MAOxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;AAAe,CAAC,CAAA,GAAA,EAAA,WAAA,eAAA,KAAA,CAAA,MAKnE,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;AAAgB,CAAC,CAAA,GAAA,EAAA,WAAA,gBAAA,KAAA,CAAA"}
1
+ {"version":3,"file":"column2.js","names":["#grid","#onSort","#computeColumnAlignment","#computeColumnPositions","#positionStylesheet","#buildFixedStyles","#buildBorderStyle"],"sources":["../../../src/grid/column/column.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 { useStyles, attachInternals, appendRootNodeStyle } from '@nvidia-elements/core/internal';\nimport type { Grid } from '@nvidia-elements/core/grid';\nimport styles from './column.css?inline';\n\n/**\n * @element nve-grid-column\n * @description Defines a column header within a grid, specifying the column's label, width, and alignment for all cells beneath it.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @slot actions - slot for column actions\n * @cssprop --color\n * @cssprop --padding\n * @cssprop --font-weight\n * @cssprop --font-size\n * @cssprop --height\n * @cssprop --min-width\n * @cssprop --justify-content\n * @cssprop --border-left\n * @cssprop --border-right\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\nexport class GridColumn extends LitElement {\n /**\n * Only set a fixed px width when you know the grid width. Most cases this should remain unset.\n * If the total width of all columns is less than the grid width then the last column fills the remaining space.\n * By default column widths are evenly divided unless width is explicitly provided.\n */\n @property({ type: String, reflect: true }) width: string;\n\n /**\n * Set the `position` property or attribute to `fixed` or `sticky` to make the column fixed or sticky.\n * Fixed columns do not scroll horizontally with the grid. Sticky columns scroll horizontally with the grid\n * until the column reaches the edge of the grid.\n */\n @property({ type: String, reflect: true }) position: 'fixed' | 'sticky' | '';\n\n /**\n * Control the content alignment within a given column.\n */\n @property({ type: String, reflect: true, attribute: 'column-align' }) columnAlign: 'start' | 'center' | 'end';\n\n /**\n * @private\n */\n @property({ type: String, reflect: true, attribute: 'aria-colindex' }) ariaColIndex: string; // eslint-disable-line local/reserved-property-names\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-column',\n version: '0.0.0'\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #grid() {\n return this.parentElement!.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host focusable=\"active\">\n <slot></slot>\n <slot name=\"actions\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'columnheader';\n this.addEventListener('sort', this.#onSort);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('sort', this.#onSort);\n }\n\n #onSort = (e: Event) => {\n this.ariaSort = (e as CustomEvent<{ next: string }>).detail.next;\n };\n\n willUpdate(props: PropertyValues<this>) {\n if (props.has('width') && this.width && Number.isFinite(Number(this.width))) {\n this.width = `${this.width}px`; // eslint-disable-line local/stateless-property\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n\n if (props.get('columnAlign') !== this.columnAlign) {\n this.#computeColumnAlignment();\n }\n\n if (props.get('position') !== this.position) {\n this.#computeColumnPositions();\n }\n\n if (props.get('ariaColIndex') !== this.ariaColIndex) {\n this.#computeColumnPositions();\n this.#computeColumnAlignment();\n }\n\n if (props.get('width') !== this.width) {\n this.dispatchEvent(new CustomEvent('nve-grid-column-resize', { bubbles: true, composed: true }));\n }\n }\n\n #positionStylesheet: CSSStyleSheet;\n\n #computeColumnPositions() {\n if (this.position !== 'fixed') {\n this.removeAttribute('left');\n this.removeAttribute('right');\n this.#positionStylesheet?.replaceSync('');\n return;\n }\n\n const { side, positionStyle, borderStyle } = this.#buildFixedStyles();\n const combinedStyle = `${positionStyle}\\n${borderStyle}`;\n\n if (this.#positionStylesheet) {\n this.#positionStylesheet.replaceSync(combinedStyle);\n } else {\n this.#positionStylesheet = appendRootNodeStyle(this.#grid, combinedStyle);\n }\n\n this.setAttribute(side, '');\n }\n\n #buildFixedStyles() {\n const columns = Array.from(this.parentElement!.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n const rightColumns = columns.slice(columns.indexOf(this) + 1, columns.length);\n const position = this.getBoundingClientRect();\n const gridPosition = this.#grid.getBoundingClientRect();\n const side = this.offsetLeft < gridPosition.width / 2 ? 'left' : 'right';\n const leftStyle = position.left - gridPosition.left;\n const rightStyle = rightColumns.reduce((width, c) => width + c.getBoundingClientRect().width, 0);\n const selector = `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex})`;\n\n const positionStyle = `\n ${selector} {\n position: sticky;\n z-index: 99;\n ${side === 'left' ? `left: ${leftStyle}px;` : `right: ${rightStyle}px;`}\n }\n `;\n\n const borderStyle = this.#buildBorderStyle(selector, side);\n return { side, positionStyle, borderStyle };\n }\n\n #buildBorderStyle(selector: string, side: 'left' | 'right') {\n const isLastLeft = side === 'left' && (this.nextElementSibling as GridColumn)?.position !== this.position;\n const isLastRight = side === 'right' && (this.previousElementSibling as GridColumn)?.position !== this.position;\n\n if (!isLastLeft && !isLastRight) {\n return '';\n }\n\n return `\n ${selector} {\n box-shadow: var(--scroll-shadow);\n clip-path: inset(0px ${isLastLeft ? '-4px' : '0'} 0px ${isLastRight ? '-4px' : '0'});\n --border-${side === 'right' ? 'left' : 'right'}: var(--nve-ref-border-width-sm) solid var(--nve-ref-border-color-muted);\n }\n `;\n }\n\n #computeColumnAlignment() {\n if (this.columnAlign !== undefined) {\n appendRootNodeStyle(\n this.#grid,\n `[id='${this.#grid.id}'] nve-grid-column:nth-of-type(${this.ariaColIndex}),\n [id='${this.#grid.id}'] nve-grid-cell:nth-of-type(${this.ariaColIndex}) {\n --justify-content: ${this.columnAlign}\n }`\n );\n }\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Grid, GridColumn, GridRow, GridCell, GridFooter, GridHeader, GridPlaceholder } from '.';
1
+ import { Grid, GridColumn, GridRow, GridCell, GridFooter, GridHeader, GridPlaceholder } from '@nvidia-elements/core/grid';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-grid': Grid;
@@ -12,7 +12,7 @@ import { LitElement } from 'lit';
12
12
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/
13
13
  */
14
14
  export declare class GridFooter extends LitElement {
15
- static styles: import('lit').CSSResult[];
15
+ static styles: import("lit").CSSResult[];
16
16
  static readonly metadata: {
17
17
  tag: string;
18
18
  version: string;
@@ -21,6 +21,6 @@ export declare class GridFooter extends LitElement {
21
21
  /** @private */
22
22
  _internals: ElementInternals;
23
23
  slot: string;
24
- render(): import('lit').TemplateResult<1>;
24
+ render(): import("lit").TemplateResult<1>;
25
25
  connectedCallback(): void;
26
26
  }
@@ -1,7 +1,7 @@
1
1
  import { attachInternals as e } from "../../internal/utils/a11y.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 i from "./footer.js";
6
6
  import { LitElement as a, html as o } from "lit";
7
7
  //#region src/grid/footer/footer.ts
@@ -15,7 +15,7 @@ var s = class extends a {
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-grid-footer",
18
- version: "2.0.4"
18
+ version: "2.1.1"
19
19
  };
20
20
  }
21
21
  static {
@@ -1,5 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
- import { ContainerElement, StateScrollConfig } from '../internal';
2
+ import type { ContainerElement } from '@nvidia-elements/core/internal';
3
+ import { type StateScrollConfig } from '@nvidia-elements/core/internal';
3
4
  import { GridHeader } from './header/header.js';
4
5
  import { GridColumn } from './column/column.js';
5
6
  import { GridRow } from './row/row.js';
@@ -7,6 +8,7 @@ import { GridCell } from './cell/cell.js';
7
8
  /**
8
9
  * @element nve-grid
9
10
  * @description A versatile table/datagrid component with built-in keyboard navigation for displaying and interacting with structured data. Use it for anything from simple read-only tables to fully interactive, spreadsheet experiences.
11
+ * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/
10
12
  * @since 0.11.0
11
13
  * @entrypoint \@nvidia-elements/core/grid
12
14
  * @slot - default slot for content
@@ -31,7 +33,7 @@ export declare class Grid extends LitElement implements ContainerElement {
31
33
  * Determine style variant stripe rows
32
34
  */
33
35
  stripe: boolean;
34
- static styles: import('lit').CSSResult[];
36
+ static styles: import("lit").CSSResult[];
35
37
  static readonly metadata: {
36
38
  tag: string;
37
39
  version: string;
@@ -40,13 +42,13 @@ export declare class Grid extends LitElement implements ContainerElement {
40
42
  static elementDefinitions: {};
41
43
  get keynavGridConfig(): {
42
44
  columns: GridColumn[];
43
- rows: (GridRow | GridHeader)[];
44
- cells: (GridColumn | GridCell)[];
45
+ rows: (GridHeader | GridRow)[];
46
+ cells: (GridCell | GridColumn)[];
45
47
  };
46
48
  get stateScrollConfig(): StateScrollConfig;
47
49
  /** @private */
48
50
  _internals: ElementInternals;
49
- render(): import('lit').TemplateResult<1>;
51
+ render(): import("lit").TemplateResult<1>;
50
52
  connectedCallback(): void;
51
53
  /**
52
54
  * Scroll to a specific position in the grid.
@@ -4,7 +4,7 @@ import { keyNavigationGrid as r } from "../internal/controllers/keynav-grid.cont
4
4
  import { attachInternals as i } from "../internal/utils/a11y.js";
5
5
  import { stateScroll as a } from "../internal/controllers/state-scroll.controller.js";
6
6
  import { useStyles as o } from "../internal/styles/index.js";
7
- import { __decorate as s } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
7
+ import s from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
8
8
  import { GridPlaceholder as c } from "./placeholder/placeholder2.js";
9
9
  import { GridColumn as l } from "./column/column2.js";
10
10
  import { GridCell as u } from "./cell/cell2.js";
@@ -23,7 +23,7 @@ var y = class extends g {
23
23
  static {
24
24
  this.metadata = {
25
25
  tag: "nve-grid",
26
- version: "2.0.4",
26
+ version: "2.1.1",
27
27
  children: [
28
28
  d.metadata.tag,
29
29
  f.metadata.tag,
@@ -1 +1 @@
1
- {"version":3,"file":"grid2.js","names":["#columns","#header","#rows","#cells"],"sources":["../../src/grid/grid.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport {\n keyNavigationGrid,\n stateScroll,\n type StateScrollConfig,\n useStyles,\n attachInternals,\n appendRootNodeStyle,\n generateId,\n audit\n} from '@nvidia-elements/core/internal';\nimport { GridPlaceholder } from './placeholder/placeholder.js';\nimport { GridHeader } from './header/header.js';\nimport { GridColumn } from './column/column.js';\nimport { GridFooter } from './footer/footer.js';\nimport { GridRow } from './row/row.js';\nimport { GridCell } from './cell/cell.js';\nimport styles from './grid.css?inline';\nimport globalStyles from './grid.global.css?inline';\n\n/**\n * @element nve-grid\n * @description A versatile table/datagrid component with built-in keyboard navigation for displaying and interacting with structured data. Use it for anything from simple read-only tables to fully interactive, spreadsheet experiences.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @slot footer - slot for grid-footer or toolbar\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --box-shadow\n * @cssprop --font-size\n * @cssprop --row-height - fixed height of each row\n * @cssprop --scroll-height - height of the scrollable area\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@audit()\n@stateScroll<Grid>()\n@keyNavigationGrid<Grid>()\nexport class Grid extends LitElement implements ContainerElement {\n /**\n * Determines the container styles of component. Flat nests the grid within other containers. Full spans the full edge-to-edge viewport width.\n */\n @property({ type: String, reflect: true }) container?: 'flat' | 'full';\n\n /**\n * Determine style variant stripe rows\n */\n @property({ type: Boolean, reflect: true }) stripe: boolean;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid',\n version: '0.0.0',\n children: [GridRow.metadata.tag, GridHeader.metadata.tag, GridFooter.metadata.tag, GridPlaceholder.metadata.tag]\n };\n\n static elementDefinitions = {};\n\n get keynavGridConfig() {\n return {\n columns: this.#columns,\n rows: [this.#header!, ...this.#rows],\n cells: [...this.#columns, ...this.#cells]\n };\n }\n\n get stateScrollConfig(): StateScrollConfig {\n return {\n target: this.shadowRoot?.querySelector<HTMLElement>('[part=\"_scrollbox\"]') ?? undefined\n };\n }\n\n get #rows() {\n return Array.from(this.querySelectorAll<GridRow>(GridRow.metadata.tag));\n }\n\n get #header() {\n return this.querySelector<GridHeader>(GridHeader.metadata.tag);\n }\n\n get #columns() {\n return Array.from(this.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n }\n\n get #cells() {\n return Array.from(this.querySelectorAll<GridCell>(GridCell.metadata.tag));\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <div part=\"_scrollbox\">\n <slot></slot>\n </div>\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'grid';\n this.id ||= generateId();\n appendRootNodeStyle(this, globalStyles);\n }\n\n /**\n * Scroll to a specific position in the grid.\n */\n scrollTo(options?: ScrollToOptions): Promise<void>;\n scrollTo(x: number, y: number): Promise<void>;\n async scrollTo(...args: [options?: ScrollToOptions] | [x: number, y: number]): Promise<void> {\n await this.shadowRoot!.querySelector('[part=\"_scrollbox\"]')?.scrollTo(...(args as [ScrollToOptions]));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6CO,IAAA,IAAA,cAAmB,EAAuC;;gBAW/C,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC,EAAQ,SAAS;IAAK,EAAW,SAAS;IAAK,EAAW,SAAS;IAAK,EAAgB,SAAS;GAAG;EACjH;;;4BAE4B,CAAC;;CAE7B,IAAI,mBAAmB;EACrB,OAAO;GACL,SAAS,KAAKA;GACd,MAAM,CAAC,KAAKC,IAAU,GAAG,KAAKC,EAAK;GACnC,OAAO,CAAC,GAAG,KAAKF,IAAU,GAAG,KAAKG,EAAM;EAC1C;CACF;CAEA,IAAI,oBAAuC;EACzC,OAAO,EACL,QAAQ,KAAK,YAAY,cAA2B,uBAAqB,KAAK,KAAA,EAChF;CACF;CAEA,IAAID,KAAQ;EACV,OAAO,MAAM,KAAK,KAAK,iBAA0B,EAAQ,SAAS,GAAG,CAAC;CACxE;CAEA,IAAID,KAAU;EACZ,OAAO,KAAK,cAA0B,EAAW,SAAS,GAAG;CAC/D;CAEA,IAAID,KAAW;EACb,OAAO,MAAM,KAAK,KAAK,iBAA6B,EAAW,SAAS,GAAG,CAAC;CAC9E;CAEA,IAAIG,KAAS;EACX,OAAO,MAAM,KAAK,KAAK,iBAA2B,EAAS,SAAS,GAAG,CAAC;CAC1E;CAKA,SAAS;EACP,OAAO,CAAI;CAQb;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,QACvB,KAAK,OAAO,EAAW,GACvB,EAAoB,MAAM,CAAY;CACxC;CAOA,MAAM,SAAS,GAAG,GAA2E;EAC3F,MAAM,KAAK,WAAY,cAAc,uBAAqB,GAAG,SAAS,GAAI,CAA0B;CACtG;AACF;GA7EG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA;CAZ3C,EAAM;CACN,EAAkB;CAClB,EAAwB"}
1
+ {"version":3,"file":"grid2.js","names":["#columns","#header","#rows","#cells"],"sources":["../../src/grid/grid.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport type { ContainerElement } from '@nvidia-elements/core/internal';\nimport {\n keyNavigationGrid,\n stateScroll,\n type StateScrollConfig,\n useStyles,\n attachInternals,\n appendRootNodeStyle,\n generateId,\n audit\n} from '@nvidia-elements/core/internal';\nimport { GridPlaceholder } from './placeholder/placeholder.js';\nimport { GridHeader } from './header/header.js';\nimport { GridColumn } from './column/column.js';\nimport { GridFooter } from './footer/footer.js';\nimport { GridRow } from './row/row.js';\nimport { GridCell } from './cell/cell.js';\nimport styles from './grid.css?inline';\nimport globalStyles from './grid.global.css?inline';\n\n/**\n * @element nve-grid\n * @description A versatile table/datagrid component with built-in keyboard navigation for displaying and interacting with structured data. Use it for anything from simple read-only tables to fully interactive, spreadsheet experiences.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for content\n * @slot footer - slot for grid-footer or toolbar\n * @cssprop --background\n * @cssprop --color\n * @cssprop --border-radius\n * @cssprop --box-shadow\n * @cssprop --font-size\n * @cssprop --row-height - fixed height of each row\n * @cssprop --scroll-height - height of the scrollable area\n\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@audit()\n@stateScroll<Grid>()\n@keyNavigationGrid<Grid>()\nexport class Grid extends LitElement implements ContainerElement {\n /**\n * Determines the container styles of component. Flat nests the grid within other containers. Full spans the full edge-to-edge viewport width.\n */\n @property({ type: String, reflect: true }) container?: 'flat' | 'full';\n\n /**\n * Determine style variant stripe rows\n */\n @property({ type: Boolean, reflect: true }) stripe: boolean;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid',\n version: '0.0.0',\n children: [GridRow.metadata.tag, GridHeader.metadata.tag, GridFooter.metadata.tag, GridPlaceholder.metadata.tag]\n };\n\n static elementDefinitions = {};\n\n get keynavGridConfig() {\n return {\n columns: this.#columns,\n rows: [this.#header!, ...this.#rows],\n cells: [...this.#columns, ...this.#cells]\n };\n }\n\n get stateScrollConfig(): StateScrollConfig {\n return {\n target: this.shadowRoot?.querySelector<HTMLElement>('[part=\"_scrollbox\"]') ?? undefined\n };\n }\n\n get #rows() {\n return Array.from(this.querySelectorAll<GridRow>(GridRow.metadata.tag));\n }\n\n get #header() {\n return this.querySelector<GridHeader>(GridHeader.metadata.tag);\n }\n\n get #columns() {\n return Array.from(this.querySelectorAll<GridColumn>(GridColumn.metadata.tag));\n }\n\n get #cells() {\n return Array.from(this.querySelectorAll<GridCell>(GridCell.metadata.tag));\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <div part=\"_scrollbox\">\n <slot></slot>\n </div>\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'grid';\n this.id ||= generateId();\n appendRootNodeStyle(this, globalStyles);\n }\n\n /**\n * Scroll to a specific position in the grid.\n */\n scrollTo(options?: ScrollToOptions): Promise<void>;\n scrollTo(x: number, y: number): Promise<void>;\n async scrollTo(...args: [options?: ScrollToOptions] | [x: number, y: number]): Promise<void> {\n await this.shadowRoot!.querySelector('[part=\"_scrollbox\"]')?.scrollTo(...(args as [ScrollToOptions]));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA8CO,IAAA,IAAA,cAAmB,EAAuC;;gBAW/C,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU;IAAC,EAAQ,SAAS;IAAK,EAAW,SAAS;IAAK,EAAW,SAAS;IAAK,EAAgB,SAAS;GAAG;EACjH;;;4BAE4B,CAAC;;CAE7B,IAAI,mBAAmB;EACrB,OAAO;GACL,SAAS,KAAKA;GACd,MAAM,CAAC,KAAKC,IAAU,GAAG,KAAKC,EAAK;GACnC,OAAO,CAAC,GAAG,KAAKF,IAAU,GAAG,KAAKG,EAAM;EAC1C;CACF;CAEA,IAAI,oBAAuC;EACzC,OAAO,EACL,QAAQ,KAAK,YAAY,cAA2B,uBAAqB,KAAK,KAAA,EAChF;CACF;CAEA,IAAID,KAAQ;EACV,OAAO,MAAM,KAAK,KAAK,iBAA0B,EAAQ,SAAS,GAAG,CAAC;CACxE;CAEA,IAAID,KAAU;EACZ,OAAO,KAAK,cAA0B,EAAW,SAAS,GAAG;CAC/D;CAEA,IAAID,KAAW;EACb,OAAO,MAAM,KAAK,KAAK,iBAA6B,EAAW,SAAS,GAAG,CAAC;CAC9E;CAEA,IAAIG,KAAS;EACX,OAAO,MAAM,KAAK,KAAK,iBAA2B,EAAS,SAAS,GAAG,CAAC;CAC1E;CAKA,SAAS;EACP,OAAO,CAAI;CAQb;CAEA,oBAAoB;EAKlB,AAJA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,QACvB,KAAK,OAAO,EAAW,GACvB,EAAoB,MAAM,CAAY;CACxC;CAOA,MAAM,SAAS,GAAG,GAA2E;EAC3F,MAAM,KAAK,WAAY,cAAc,uBAAqB,CAAC,EAAE,SAAS,GAAI,CAA0B;CACtG;AACF;GA7EG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA;CAZ3C,EAAM;CACN,EAAkB;CAClB,EAAwB"}
@@ -1,8 +1,10 @@
1
- import { PropertyValues, LitElement } from 'lit';
1
+ import type { PropertyValues } from 'lit';
2
+ import { LitElement } from 'lit';
2
3
  import { GridColumn } from '../column/column.js';
3
4
  /**
4
5
  * @element nve-grid-header
5
6
  * @description Contains the column headers of a grid, managing column widths and providing structural context for the data rows below.
7
+ * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/
6
8
  * @since 0.11.0
7
9
  * @entrypoint \@nvidia-elements/core/grid
8
10
  * @slot - default slot for `nve-grid-column`
@@ -13,7 +15,7 @@ import { GridColumn } from '../column/column.js';
13
15
  */
14
16
  export declare class GridHeader extends LitElement {
15
17
  #private;
16
- static styles: import('lit').CSSResult[];
18
+ static styles: import("lit").CSSResult[];
17
19
  static readonly metadata: {
18
20
  tag: string;
19
21
  version: string;
@@ -23,7 +25,7 @@ export declare class GridHeader extends LitElement {
23
25
  _internals: ElementInternals;
24
26
  /** @private */
25
27
  columns: GridColumn[];
26
- render(): import('lit').TemplateResult<1>;
28
+ render(): import("lit").TemplateResult<1>;
27
29
  connectedCallback(): void;
28
30
  disconnectedCallback(): void;
29
31
  firstUpdated(props: PropertyValues<this>): Promise<void>;
@@ -4,7 +4,7 @@ import { debounce as n } from "../../internal/utils/events.js";
4
4
  import { LogService as r } from "../../internal/services/log.service.js";
5
5
  import { attachInternals as i } from "../../internal/utils/a11y.js";
6
6
  import { useStyles as a } from "../../internal/styles/index.js";
7
- import { __decorate as o } from "../../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
7
+ import o from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
8
8
  import s from "./header.js";
9
9
  import { GridColumn as c } from "../column/column2.js";
10
10
  import { GridCell as l } from "../cell/cell2.js";
@@ -19,7 +19,7 @@ var m = class extends d {
19
19
  static {
20
20
  this.metadata = {
21
21
  tag: "nve-grid-header",
22
- version: "2.0.4",
22
+ version: "2.1.1",
23
23
  children: [c.metadata.tag]
24
24
  };
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"header2.js","names":["#grid","#computeColumnWidths","#onColumnResize","#resizeObserver","#validateColumns"],"sources":["../../../src/grid/header/header.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 { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport {\n useStyles,\n attachInternals,\n debounce,\n LogService,\n audit,\n GlobalStateService\n} from '@nvidia-elements/core/internal';\nimport styles from './header.css?inline';\nimport { GridColumn } from '../column/column.js';\nimport type { Grid } from '../grid.js';\nimport { GridRow } from '../row/row.js';\nimport { GridCell } from '../cell/cell.js';\n\n/**\n * @element nve-grid-header\n * @description Contains the column headers of a grid, managing column widths and providing structural context for the data rows below.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for `nve-grid-column`\n * @cssprop --background\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@audit()\nexport class GridHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-header',\n version: '0.0.0',\n children: [GridColumn.metadata.tag]\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** @private */\n @queryAssignedElements({\n selector: GridColumn.metadata.tag,\n flatten: true\n })\n columns!: GridColumn[];\n\n get #grid() {\n return this.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host>\n <slot @slotchange=${() => this.#computeColumnWidths()}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n this.addEventListener('nve-grid-column-resize', this.#onColumnResize);\n this.#resizeObserver ??= new ResizeObserver(debounce(() => this.#computeColumnWidths(), 100));\n this.#resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('nve-grid-column-resize', this.#onColumnResize);\n this.#resizeObserver?.disconnect();\n }\n\n #onColumnResize = () => {\n void this.#computeColumnWidths();\n };\n\n #resizeObserver?: ResizeObserver;\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#validateColumns();\n }\n\n async #computeColumnWidths() {\n await this.updateComplete;\n this.columns.forEach((c, i) => (c.ariaColIndex = `${i + 1}`));\n this.#grid.style.setProperty('--grid-auto-flow', 'initial');\n this.#grid.style.setProperty('--grid-template-column', this.columns.map((_, i) => `var(--c${i})`).join(' '));\n\n // compute initial column width\n this.columns.forEach((c, i) => this.#grid.style.setProperty(`--c${i}`, c.width ? c.width : `1fr`));\n\n // compute column width based on content\n await this.updateComplete;\n const widths = this.columns.map(c => (c.width ? c.width : `minmax(auto, ${c.getBoundingClientRect().width}px)`));\n widths.forEach((w, i) => this.#grid.style.setProperty(`--c${i}`, w));\n }\n\n #validateColumns() {\n if (GlobalStateService.state.env !== 'production') {\n const cells = this.#grid.querySelector(GridRow.metadata.tag)?.querySelectorAll(GridCell.metadata.tag);\n if (this.columns && cells && this.columns.length !== cells.length) {\n LogService.error(`grid-column (${this.columns.length}) and grid-cell (${cells.length}) count mismatch`);\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAgCO,IAAA,IAAA,cAAyB,EAAW;;gBACzB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,EAAW,SAAS,GAAG;EACpC;;CAYA,IAAIA,KAAQ;EACV,OAAO,KAAK;CACd;CAEA,SAAS;EACP,OAAO,CAAI,+CAEmB,KAAKC,GAAqB,EAAE;CAG5D;CAEA,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,OACvB,KAAK,iBAAiB,0BAA0B,KAAKC,EAAe,GACpE,KAAKC,OAAoB,IAAI,eAAe,QAAe,KAAKF,GAAqB,GAAG,GAAG,CAAC,GAC5F,KAAKE,GAAgB,QAAQ,IAAI;CACnC;CAEA,uBAAuB;EAGrB,AAFA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,0BAA0B,KAAKD,EAAe,GACvE,KAAKC,IAAiB,WAAW;CACnC;CAEA,WAAwB;EACtB,KAAUF,GAAqB;CACjC;CAEA;CAEA,MAAM,aAAa,GAA6B;EAG9C,AAFA,MAAM,aAAa,CAAK,GACxB,MAAM,KAAK,gBACX,KAAKG,GAAiB;CACxB;CAEA,MAAMH,KAAuB;EAY3B,AAXA,MAAM,KAAK,gBACX,KAAK,QAAQ,SAAS,GAAG,MAAO,EAAE,eAAe,GAAG,IAAI,GAAI,GAC5D,KAAKD,GAAM,MAAM,YAAY,oBAAoB,SAAS,GAC1D,KAAKA,GAAM,MAAM,YAAY,0BAA0B,KAAK,QAAQ,KAAK,GAAG,MAAM,UAAU,EAAE,EAAE,EAAE,KAAK,GAAG,CAAC,GAG3G,KAAK,QAAQ,SAAS,GAAG,MAAM,KAAKA,GAAM,MAAM,YAAY,MAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,CAAC,GAGjG,MAAM,KAAK,gBAEX,KADoB,QAAQ,KAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,IAC1G,EAAO,SAAS,GAAG,MAAM,KAAKA,GAAM,MAAM,YAAY,MAAM,KAAK,CAAC,CAAC;CACrE;CAEA,KAAmB;EACjB,IAAI,EAAmB,MAAM,QAAQ,cAAc;GACjD,IAAM,IAAQ,KAAKA,GAAM,cAAc,EAAQ,SAAS,GAAG,GAAG,iBAAiB,EAAS,SAAS,GAAG;GACpG,AAAI,KAAK,WAAW,KAAS,KAAK,QAAQ,WAAW,EAAM,UACzD,EAAW,MAAM,gBAAgB,KAAK,QAAQ,OAAO,mBAAmB,EAAM,OAAO,iBAAiB;EAE1G;CACF;AACF;GApEG,EAAsB;CACrB,UAAU,EAAW,SAAS;CAC9B,SAAS;AACX,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,UAjBF,EAAM,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"header2.js","names":["#grid","#computeColumnWidths","#onColumnResize","#resizeObserver","#validateColumns"],"sources":["../../../src/grid/header/header.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 { queryAssignedElements } from 'lit/decorators/query-assigned-elements.js';\nimport {\n useStyles,\n attachInternals,\n debounce,\n LogService,\n audit,\n GlobalStateService\n} from '@nvidia-elements/core/internal';\nimport styles from './header.css?inline';\nimport { GridColumn } from '../column/column.js';\nimport type { Grid } from '../grid.js';\nimport { GridRow } from '../row/row.js';\nimport { GridCell } from '../cell/cell.js';\n\n/**\n * @element nve-grid-header\n * @description Contains the column headers of a grid, managing column widths and providing structural context for the data rows below.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for `nve-grid-column`\n * @cssprop --background\n * @cssprop --border-bottom\n * @cssprop --padding\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@audit()\nexport class GridHeader extends LitElement {\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-header',\n version: '0.0.0',\n children: [GridColumn.metadata.tag]\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n /** @private */\n @queryAssignedElements({\n selector: GridColumn.metadata.tag,\n flatten: true\n })\n columns!: GridColumn[];\n\n get #grid() {\n return this.parentElement as Grid;\n }\n\n render() {\n return html`\n <div internal-host>\n <slot @slotchange=${() => this.#computeColumnWidths()}></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n this.addEventListener('nve-grid-column-resize', this.#onColumnResize);\n this.#resizeObserver ??= new ResizeObserver(debounce(() => this.#computeColumnWidths(), 100));\n this.#resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('nve-grid-column-resize', this.#onColumnResize);\n this.#resizeObserver?.disconnect();\n }\n\n #onColumnResize = () => {\n void this.#computeColumnWidths();\n };\n\n #resizeObserver?: ResizeObserver;\n\n async firstUpdated(props: PropertyValues<this>) {\n super.firstUpdated(props);\n await this.updateComplete;\n this.#validateColumns();\n }\n\n async #computeColumnWidths() {\n await this.updateComplete;\n this.columns.forEach((c, i) => (c.ariaColIndex = `${i + 1}`));\n this.#grid.style.setProperty('--grid-auto-flow', 'initial');\n this.#grid.style.setProperty('--grid-template-column', this.columns.map((_, i) => `var(--c${i})`).join(' '));\n\n // compute initial column width\n this.columns.forEach((c, i) => this.#grid.style.setProperty(`--c${i}`, c.width ? c.width : `1fr`));\n\n // compute column width based on content\n await this.updateComplete;\n const widths = this.columns.map(c => (c.width ? c.width : `minmax(auto, ${c.getBoundingClientRect().width}px)`));\n widths.forEach((w, i) => this.#grid.style.setProperty(`--c${i}`, w));\n }\n\n #validateColumns() {\n if (GlobalStateService.state.env !== 'production') {\n const cells = this.#grid.querySelector(GridRow.metadata.tag)?.querySelectorAll(GridCell.metadata.tag);\n if (this.columns && cells && this.columns.length !== cells.length) {\n LogService.error(`grid-column (${this.columns.length}) and grid-cell (${cells.length}) count mismatch`);\n }\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAiCO,IAAA,IAAA,cAAyB,EAAW;;gBACzB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,EAAW,SAAS,GAAG;EACpC;;CAYA,IAAIA,KAAQ;EACV,OAAO,KAAK;CACd;CAEA,SAAS;EACP,OAAO,CAAI,+CAEmB,KAAKC,GAAqB,EAAE;CAG5D;CAEA,oBAAoB;EAMlB,AALA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,OACvB,KAAK,iBAAiB,0BAA0B,KAAKC,EAAe,GACpE,KAAKC,OAAoB,IAAI,eAAe,QAAe,KAAKF,GAAqB,GAAG,GAAG,CAAC,GAC5F,KAAKE,GAAgB,QAAQ,IAAI;CACnC;CAEA,uBAAuB;EAGrB,AAFA,MAAM,qBAAqB,GAC3B,KAAK,oBAAoB,0BAA0B,KAAKD,EAAe,GACvE,KAAKC,IAAiB,WAAW;CACnC;CAEA,WAAwB;EACtB,KAAUF,GAAqB;CACjC;CAEA;CAEA,MAAM,aAAa,GAA6B;EAG9C,AAFA,MAAM,aAAa,CAAK,GACxB,MAAM,KAAK,gBACX,KAAKG,GAAiB;CACxB;CAEA,MAAMH,KAAuB;EAY3B,AAXA,MAAM,KAAK,gBACX,KAAK,QAAQ,SAAS,GAAG,MAAO,EAAE,eAAe,GAAG,IAAI,GAAI,GAC5D,KAAKD,GAAM,MAAM,YAAY,oBAAoB,SAAS,GAC1D,KAAKA,GAAM,MAAM,YAAY,0BAA0B,KAAK,QAAQ,KAAK,GAAG,MAAM,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,GAG3G,KAAK,QAAQ,SAAS,GAAG,MAAM,KAAKA,GAAM,MAAM,YAAY,MAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,CAAC,GAGjG,MAAM,KAAK,gBAEX,KADoB,QAAQ,KAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,MAAM,IAC1G,CAAA,CAAO,SAAS,GAAG,MAAM,KAAKA,GAAM,MAAM,YAAY,MAAM,KAAK,CAAC,CAAC;CACrE;CAEA,KAAmB;EACjB,IAAI,EAAmB,MAAM,QAAQ,cAAc;GACjD,IAAM,IAAQ,KAAKA,GAAM,cAAc,EAAQ,SAAS,GAAG,CAAC,EAAE,iBAAiB,EAAS,SAAS,GAAG;GACpG,AAAI,KAAK,WAAW,KAAS,KAAK,QAAQ,WAAW,EAAM,UACzD,EAAW,MAAM,gBAAgB,KAAK,QAAQ,OAAO,mBAAmB,EAAM,OAAO,iBAAiB;EAE1G;CACF;AACF;GApEG,EAAsB;CACrB,UAAU,EAAW,SAAS;CAC9B,SAAS;AACX,CAAC,CAAA,GAAA,EAAA,WAAA,WAAA,KAAA,CAAA,UAjBF,EAAM,CAAA,GAAA,CAAA"}
@@ -10,13 +10,13 @@ import { LitElement } from 'lit';
10
10
  * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/
11
11
  */
12
12
  export declare class GridPlaceholder extends LitElement {
13
- static styles: import('lit').CSSResult[];
13
+ static styles: import("lit").CSSResult[];
14
14
  static readonly metadata: {
15
15
  tag: string;
16
16
  version: string;
17
17
  };
18
18
  /** @private */
19
19
  _internals: ElementInternals;
20
- render(): import('lit').TemplateResult<1>;
20
+ render(): import("lit").TemplateResult<1>;
21
21
  connectedCallback(): void;
22
22
  }
@@ -10,7 +10,7 @@ var a = class extends r {
10
10
  static {
11
11
  this.metadata = {
12
12
  tag: "nve-grid-placeholder",
13
- version: "2.0.4"
13
+ version: "2.1.1"
14
14
  };
15
15
  }
16
16
  render() {
@@ -2,6 +2,7 @@ import { LitElement } from 'lit';
2
2
  /**
3
3
  * @element nve-grid-row
4
4
  * @description Represents a horizontal row of data cells within a grid, supporting selection and interactive states.
5
+ * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/
5
6
  * @since 0.11.0
6
7
  * @entrypoint \@nvidia-elements/core/grid
7
8
  * @slot - default slot for `nve-grid-cell`
@@ -14,7 +15,7 @@ export declare class GridRow extends LitElement {
14
15
  * Setting the `selected` property or attribute to `true` shows the row in a selected state.
15
16
  */
16
17
  selected: boolean;
17
- static styles: import('lit').CSSResult[];
18
+ static styles: import("lit").CSSResult[];
18
19
  static readonly metadata: {
19
20
  tag: string;
20
21
  version: string;
@@ -22,6 +23,6 @@ export declare class GridRow extends LitElement {
22
23
  };
23
24
  /** @private */
24
25
  _internals: ElementInternals;
25
- render(): import('lit').TemplateResult<1>;
26
+ render(): import("lit").TemplateResult<1>;
26
27
  connectedCallback(): void;
27
28
  }
@@ -2,7 +2,7 @@ import { audit as e } from "../../internal/controllers/audit.controller.js";
2
2
  import { attachInternals as t } from "../../internal/utils/a11y.js";
3
3
  import { stateSelected as n } from "../../internal/controllers/state-selected.controller.js";
4
4
  import { useStyles as r } from "../../internal/styles/index.js";
5
- import { __decorate as i } from "../../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/decorate.js";
5
+ import i from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
6
6
  import { GridCell as a } from "../cell/cell2.js";
7
7
  import o from "./row.js";
8
8
  import { LitElement as s, html as c } from "lit";
@@ -15,7 +15,7 @@ var u = class extends s {
15
15
  static {
16
16
  this.metadata = {
17
17
  tag: "nve-grid-row",
18
- version: "2.0.4",
18
+ version: "2.1.1",
19
19
  children: [a.metadata.tag]
20
20
  };
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"row2.js","names":[],"sources":["../../../src/grid/row/row.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { useStyles, attachInternals, stateSelected, audit } from '@nvidia-elements/core/internal';\nimport { GridCell } from '../cell/cell.js';\nimport styles from './row.css?inline';\n\n/**\n * @element nve-grid-row\n * @description Represents a horizontal row of data cells within a grid, supporting selection and interactive states.\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for `nve-grid-cell`\n * @cssprop --background\n * @cssprop --border-bottom\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@stateSelected()\n@audit()\nexport class GridRow extends LitElement {\n /**\n * Setting the `selected` property or attribute to `true` shows the row in a selected state.\n */\n @property({ type: Boolean }) selected: boolean;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-row',\n version: '0.0.0',\n children: [GridCell.metadata.tag]\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n }\n}\n"],"mappings":";;;;;;;;;;AAqBO,IAAA,IAAA,cAAsB,EAAW;;gBAMtB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,EAAS,SAAS,GAAG;EAClC;;CAKA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF;GA1BG,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,UAN5B,EAAc,GACd,EAAM,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"row2.js","names":[],"sources":["../../../src/grid/row/row.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators/property.js';\nimport { useStyles, attachInternals, stateSelected, audit } from '@nvidia-elements/core/internal';\nimport { GridCell } from '../cell/cell.js';\nimport styles from './row.css?inline';\n\n/**\n * @element nve-grid-row\n * @description Represents a horizontal row of data cells within a grid, supporting selection and interactive states.\n * @documentation https://nvidia.github.io/elements/docs/elements/data-grid/\n * @since 0.11.0\n * @entrypoint \\@nvidia-elements/core/grid\n * @slot - default slot for `nve-grid-cell`\n * @cssprop --background\n * @cssprop --border-bottom\n * @aria https://www.w3.org/WAI/ARIA/apg/patterns/grid/\n */\n@stateSelected()\n@audit()\nexport class GridRow extends LitElement {\n /**\n * Setting the `selected` property or attribute to `true` shows the row in a selected state.\n */\n @property({ type: Boolean }) selected: boolean;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-grid-row',\n version: '0.0.0',\n children: [GridCell.metadata.tag]\n };\n\n /** @private */\n declare _internals: ElementInternals;\n\n render() {\n return html`\n <div internal-host>\n <slot></slot>\n </div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'row';\n }\n}\n"],"mappings":";;;;;;;;;;AAsBO,IAAA,IAAA,cAAsB,EAAW;;gBAMtB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;GACT,UAAU,CAAC,EAAS,SAAS,GAAG;EAClC;;CAKA,SAAS;EACP,OAAO,CAAI;CAKb;CAEA,oBAAoB;EAGlB,AAFA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO;CACzB;AACF;GA1BG,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,GAAA,EAAA,WAAA,YAAA,KAAA,CAAA,UAN5B,EAAc,GACd,EAAM,CAAA,GAAA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Icon } from '.';
1
+ import { Icon } from '@nvidia-elements/core/icon';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
4
  'nve-icon': Icon;
@@ -1,6 +1,7 @@
1
- import { PropertyValues, LitElement } from 'lit';
2
- import { Size } from '../internal';
3
- import { IconName, IconSVG } from './icons.js';
1
+ import type { PropertyValues } from 'lit';
2
+ import { LitElement } from 'lit';
3
+ import type { Size } from '@nvidia-elements/core/internal';
4
+ import type { IconName, IconSVG } from './icons.js';
4
5
  export type { IconName, IconSVG } from './icons.js';
5
6
  declare global {
6
7
  var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;
@@ -10,6 +11,7 @@ declare global {
10
11
  * @since 0.1.3
11
12
  * @entrypoint \@nvidia-elements/core/icon
12
13
  * @description An icon is a graphic symbol designed to visually show the purpose of an interface element.
14
+ * @documentation https://nvidia.github.io/elements/docs/elements/icon/
13
15
  * @cssprop --color
14
16
  * @cssprop --width
15
17
  * @cssprop --height
@@ -35,7 +37,7 @@ export declare class Icon extends LitElement {
35
37
  */
36
38
  name?: IconName;
37
39
  private svg;
38
- static styles: import('lit').CSSResult[];
40
+ static styles: import("lit").CSSResult[];
39
41
  static readonly metadata: {
40
42
  tag: string;
41
43
  version: string;
@@ -48,7 +50,7 @@ export declare class Icon extends LitElement {
48
50
  private static get registeredIcon();
49
51
  /** @private */
50
52
  _internals: ElementInternals;
51
- render(): import('lit').TemplateResult<1>;
53
+ render(): import("lit").TemplateResult<1>;
52
54
  connectedCallback(): void;
53
55
  disconnectedCallback(): void;
54
56
  static add(icons: {
@@ -3,7 +3,7 @@ import { attachInternals as t } from "../internal/utils/a11y.js";
3
3
  import { useStyles as n } from "../internal/styles/index.js";
4
4
  import { ICON_IMPORTS as r } from "./icons.js";
5
5
  import i from "./icon.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 { LitElement as o, html as s, isServer as c } from "lit";
8
8
  import { property as l } from "lit/decorators/property.js";
9
9
  import { unsafeSVG as u } from "lit/directives/unsafe-svg.js";
@@ -16,7 +16,7 @@ var f = class e extends o {
16
16
  static {
17
17
  this.metadata = {
18
18
  tag: "nve-icon",
19
- version: "2.0.4"
19
+ version: "2.1.1"
20
20
  };
21
21
  }
22
22
  static {
@@ -94,7 +94,7 @@ a([l({
94
94
  })], f.prototype, "name", void 0), a([d()], f.prototype, "svg", void 0);
95
95
  function p(t) {
96
96
  if (typeof globalThis.customElements?.get == "function") {
97
- let n = e(t.metadata.version), i = e("2.0.4");
97
+ let n = e(t.metadata.version), i = e("2.1.1");
98
98
  n.minor <= i.minor && n.major <= i.major && (t._icons = {
99
99
  ...t._icons,
100
100
  ...r
@@ -1 +1 @@
1
- {"version":3,"file":"icon2.js","names":["#iconString","#asyncRender","#addIconRegistryListener","#removeIconRegistryListener","#render","#iconRegistryEventName","#onIconRegistryUpdate"],"sources":["../../src/icon/icon.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, isServer, LitElement } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { attachInternals, parseVersion, useStyles } from '@nvidia-elements/core/internal';\nimport type { IconName, IconSVG } from './icons.js';\nimport { ICON_IMPORTS } from './icons.js';\nimport styles from './icon.css?inline';\n\nexport type { IconName, IconSVG } from './icons.js';\n\ndeclare global {\n var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;\n}\n\n/**\n * @element nve-icon\n * @since 0.1.3\n * @entrypoint \\@nvidia-elements/core/icon\n * @description An icon is a graphic symbol designed to visually show the purpose of an interface element.\n * @cssprop --color\n * @cssprop --width\n * @cssprop --height\n * @slot - Custom SVG content to override the named icon\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\n */\nexport class Icon extends LitElement {\n /**\n * Visual treatment to represent current support status.\n */\n @property({ type: String, reflect: true }) status?: 'warning' | 'danger' | 'success' | 'accent';\n\n /**\n * Controls the bounding box size of the icon given a t-shirt style value.\n */\n @property({ type: String, reflect: true }) size?: Size | 'xs' | 'xl';\n\n /**\n * Sets the direction of the icon. Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)\n */\n @property({ type: String, reflect: true }) direction?: 'up' | 'down' | 'left' | 'right';\n\n /**\n * The name of the icon SVG sprite to render.\n */\n @property({ type: String, reflect: true }) name?: IconName;\n\n @state() private svg: string;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-icon',\n version: '0.0.0'\n };\n\n static _icons: { [key: string]: IconSVG } = ICON_IMPORTS;\n\n // eslint-disable-next-line no-restricted-syntax\n private static get _iconsRegistry() {\n return this.registeredIcon?._icons ?? Icon._icons;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n private static set _iconsRegistry(icons: { [key: string]: IconSVG }) {\n this.registeredIcon._icons = { ...Icon._iconsRegistry, ...icons };\n }\n\n // eslint-disable-next-line no-restricted-syntax\n private static get registeredIcon() {\n return customElements.get(Icon.metadata.tag) as typeof Icon;\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #iconString() {\n return isServer && globalThis._NVE_SSR_ICON_REGISTRY ? globalThis._NVE_SSR_ICON_REGISTRY[this.name!] : this.svg;\n }\n\n #iconRegistryEventName?: string;\n\n #onIconRegistryUpdate = (event: Event) => this.#asyncRender(event as CustomEvent<IconSVG>);\n\n render() {\n return html`\n <div internal-host aria-hidden=\"true\"><slot>${unsafeSVG(this.#iconString)}</slot></div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'img';\n this.#addIconRegistryListener();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#removeIconRegistryListener();\n }\n\n static async add(icons: { [key: string]: IconSVG }) {\n if (globalThis.customElements?.whenDefined) {\n await globalThis.customElements.whenDefined(Icon.metadata.tag);\n Icon._iconsRegistry = icons;\n Object.keys(icons).forEach(name =>\n globalThis?.document?.dispatchEvent(new CustomEvent(`${Icon.metadata.tag}-${name}`, { detail: icons[name] }))\n );\n }\n }\n\n static alias(aliases: { [key: string]: IconName | string }) {\n // whenDefined has no rejection state\n if (globalThis.customElements?.whenDefined) {\n /* eslint-disable @typescript-eslint/no-floating-promises */\n globalThis.customElements.whenDefined(Icon.metadata.tag).then(() => {\n Object.keys(aliases).forEach(alias => {\n Icon._iconsRegistry[alias] = Icon._iconsRegistry[aliases[alias]!]!;\n globalThis?.document?.dispatchEvent(\n new CustomEvent(`${Icon.metadata.tag}-${alias}`, { detail: Icon._iconsRegistry[alias] })\n );\n });\n });\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (props.has('name')) {\n this.#removeIconRegistryListener();\n this.#addIconRegistryListener();\n }\n await this.#render();\n }\n\n #addIconRegistryListener() {\n if (!this.isConnected || !this.name || this.#iconRegistryEventName) return;\n this.#iconRegistryEventName = `${Icon.metadata.tag}-${this.name}`;\n globalThis.document?.addEventListener(this.#iconRegistryEventName, this.#onIconRegistryUpdate);\n }\n\n #removeIconRegistryListener() {\n if (!this.#iconRegistryEventName) return;\n globalThis.document?.removeEventListener(this.#iconRegistryEventName, this.#onIconRegistryUpdate);\n this.#iconRegistryEventName = undefined;\n }\n\n async #asyncRender(event: CustomEvent<IconSVG>) {\n if (this.isConnected && event.detail && this.svg !== (await event.detail.svg())) {\n this.#render();\n }\n }\n\n async #render() {\n if (!this.name) return;\n const svg = await (this.name.endsWith('.svg')\n ? fetch(this.name).then(res => res.text())\n : (Icon._iconsRegistry[this.name]?.svg() ?? Promise.resolve('')));\n Icon._iconsRegistry[this.name] = { svg: () => svg, ...Icon._iconsRegistry[this.name] };\n this.svg = svg;\n }\n}\n\nexport function mergeIcons(RegisteredIcon: typeof Icon) {\n if (typeof globalThis.customElements?.get === 'function') {\n const registered = parseVersion(RegisteredIcon.metadata.version);\n const current = parseVersion('0.0.0');\n\n // determine if an older icon already registered and if so, merge the icons with the latest svgs\n if (registered.minor <= current.minor && registered.major <= current.major) {\n RegisteredIcon._icons = { ...RegisteredIcon._icons, ...ICON_IMPORTS };\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AA+BA,IAAa,IAAb,MAAa,UAAa,EAAW;;gBAuBnB,EAAU,CAAC,CAAM,CAAC;;;kBAEP;GACzB,KAAK;GACL,SAAS;EACX;;;gBAE4C;;CAG5C,WAAmB,iBAAiB;EAClC,OAAO,KAAK,gBAAgB,UAAU,EAAK;CAC7C;CAGA,WAAmB,eAAe,GAAmC;EACnE,KAAK,eAAe,SAAS;GAAE,GAAG,EAAK;GAAgB,GAAG;EAAM;CAClE;CAGA,WAAmB,iBAAiB;EAClC,OAAO,eAAe,IAAI,EAAK,SAAS,GAAG;CAC7C;CAKA,IAAIA,KAAc;EAChB,OAAO,KAAY,WAAW,yBAAyB,WAAW,uBAAuB,KAAK,QAAS,KAAK;CAC9G;CAEA;CAEA,MAAyB,MAAiB,KAAKC,GAAa,CAA6B;CAEzF,SAAS;EACP,OAAO,CAAI,+CACqC,EAAU,KAAKD,EAAW,EAAE;CAE9E;CAEA,oBAAoB;EAIlB,AAHA,MAAM,kBAAkB,GACxB,EAAgB,IAAI,GACpB,KAAK,WAAW,OAAO,OACvB,KAAKE,GAAyB;CAChC;CAEA,uBAAuB;EAErB,AADA,MAAM,qBAAqB,GAC3B,KAAKC,GAA4B;CACnC;CAEA,aAAa,IAAI,GAAmC;EAClD,AAAI,WAAW,gBAAgB,gBAC7B,MAAM,WAAW,eAAe,YAAY,EAAK,SAAS,GAAG,GAC7D,EAAK,iBAAiB,GACtB,OAAO,KAAK,CAAK,EAAE,SAAQ,MACzB,YAAY,UAAU,cAAc,IAAI,YAAY,GAAG,EAAK,SAAS,IAAI,GAAG,KAAQ,EAAE,QAAQ,EAAM,GAAM,CAAC,CAAC,CAC9G;CAEJ;CAEA,OAAO,MAAM,GAA+C;EAE1D,AAAI,WAAW,gBAAgB,eAE7B,WAAW,eAAe,YAAY,EAAK,SAAS,GAAG,EAAE,WAAW;GAClE,OAAO,KAAK,CAAO,EAAE,SAAQ,MAAS;IAEpC,AADA,EAAK,eAAe,KAAS,EAAK,eAAe,EAAQ,KACzD,YAAY,UAAU,cACpB,IAAI,YAAY,GAAG,EAAK,SAAS,IAAI,GAAG,KAAS,EAAE,QAAQ,EAAK,eAAe,GAAO,CAAC,CACzF;GACF,CAAC;EACH,CAAC;CAEL;CAEA,MAAM,QAAQ,GAA6B;EAMzC,AALA,MAAM,QAAQ,CAAK,GACf,EAAM,IAAI,MAAM,MAClB,KAAKA,GAA4B,GACjC,KAAKD,GAAyB,IAEhC,MAAM,KAAKE,GAAQ;CACrB;CAEA,KAA2B;EACrB,CAAC,KAAK,eAAe,CAAC,KAAK,QAAQ,KAAKC,OAC5C,KAAKA,KAAyB,GAAG,EAAK,SAAS,IAAI,GAAG,KAAK,QAC3D,WAAW,UAAU,iBAAiB,KAAKA,IAAwB,KAAKC,EAAqB;CAC/F;CAEA,KAA8B;EACvB,AAEL,KAAKD,QADL,WAAW,UAAU,oBAAoB,KAAKA,IAAwB,KAAKC,EAAqB,GAClE,KAAA;CAChC;CAEA,MAAML,GAAa,GAA6B;EAC9C,AAAI,KAAK,eAAe,EAAM,UAAU,KAAK,QAAS,MAAM,EAAM,OAAO,IAAI,KAC3E,KAAKG,GAAQ;CAEjB;CAEA,MAAMA,KAAU;EACd,IAAI,CAAC,KAAK,MAAM;EAChB,IAAM,IAAM,OAAO,KAAK,KAAK,SAAS,MAAM,IACxC,MAAM,KAAK,IAAI,EAAE,MAAK,MAAO,EAAI,KAAK,CAAC,IACtC,EAAK,eAAe,KAAK,OAAO,IAAI,KAAK,QAAQ,QAAQ,EAAE;EAEhE,AADA,EAAK,eAAe,KAAK,QAAQ;GAAE,WAAW;GAAK,GAAG,EAAK,eAAe,KAAK;EAAM,GACrF,KAAK,MAAM;CACb;AACF;GApIG,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,UAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,aAAA,KAAA,CAAA,MAKxC,EAAS;CAAE,MAAM;CAAQ,SAAS;AAAK,CAAC,CAAA,GAAA,EAAA,WAAA,QAAA,KAAA,CAAA,MAExC,EAAM,CAAA,GAAA,EAAA,WAAA,OAAA,KAAA,CAAA;AAqHT,SAAgB,EAAW,GAA6B;CACtD,IAAI,OAAO,WAAW,gBAAgB,OAAQ,YAAY;EACxD,IAAM,IAAa,EAAa,EAAe,SAAS,OAAO,GACzD,IAAU,EAAa,OAAO;EAGpC,AAAI,EAAW,SAAS,EAAQ,SAAS,EAAW,SAAS,EAAQ,UACnE,EAAe,SAAS;GAAE,GAAG,EAAe;GAAQ,GAAG;EAAa;CAExE;AACF"}
1
+ {"version":3,"file":"icon2.js","names":["#iconString","#asyncRender","#addIconRegistryListener","#removeIconRegistryListener","#render","#iconRegistryEventName","#onIconRegistryUpdate"],"sources":["../../src/icon/icon.ts"],"sourcesContent":["// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PropertyValues } from 'lit';\nimport { html, isServer, LitElement } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { property } from 'lit/decorators/property.js';\nimport { state } from 'lit/decorators/state.js';\nimport type { Size } from '@nvidia-elements/core/internal';\nimport { attachInternals, parseVersion, useStyles } from '@nvidia-elements/core/internal';\nimport type { IconName, IconSVG } from './icons.js';\nimport { ICON_IMPORTS } from './icons.js';\nimport styles from './icon.css?inline';\n\nexport type { IconName, IconSVG } from './icons.js';\n\ndeclare global {\n var _NVE_SSR_ICON_REGISTRY: Record<string, string> | undefined;\n}\n\n/**\n * @element nve-icon\n * @since 0.1.3\n * @entrypoint \\@nvidia-elements/core/icon\n * @description An icon is a graphic symbol designed to visually show the purpose of an interface element.\n * @documentation https://nvidia.github.io/elements/docs/elements/icon/\n * @cssprop --color\n * @cssprop --width\n * @cssprop --height\n * @slot - Custom SVG content to override the named icon\n * @aria https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img\n */\nexport class Icon extends LitElement {\n /**\n * Visual treatment to represent current support status.\n */\n @property({ type: String, reflect: true }) status?: 'warning' | 'danger' | 'success' | 'accent';\n\n /**\n * Controls the bounding box size of the icon given a t-shirt style value.\n */\n @property({ type: String, reflect: true }) size?: Size | 'xs' | 'xl';\n\n /**\n * Sets the direction of the icon. Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)\n */\n @property({ type: String, reflect: true }) direction?: 'up' | 'down' | 'left' | 'right';\n\n /**\n * The name of the icon SVG sprite to render.\n */\n @property({ type: String, reflect: true }) name?: IconName;\n\n @state() private svg: string;\n\n static styles = useStyles([styles]);\n\n static readonly metadata = {\n tag: 'nve-icon',\n version: '0.0.0'\n };\n\n static _icons: { [key: string]: IconSVG } = ICON_IMPORTS;\n\n // eslint-disable-next-line no-restricted-syntax\n private static get _iconsRegistry() {\n return this.registeredIcon?._icons ?? Icon._icons;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n private static set _iconsRegistry(icons: { [key: string]: IconSVG }) {\n this.registeredIcon._icons = { ...Icon._iconsRegistry, ...icons };\n }\n\n // eslint-disable-next-line no-restricted-syntax\n private static get registeredIcon() {\n return customElements.get(Icon.metadata.tag) as typeof Icon;\n }\n\n /** @private */\n declare _internals: ElementInternals;\n\n get #iconString() {\n return isServer && globalThis._NVE_SSR_ICON_REGISTRY ? globalThis._NVE_SSR_ICON_REGISTRY[this.name!] : this.svg;\n }\n\n #iconRegistryEventName?: string;\n\n #onIconRegistryUpdate = (event: Event) => this.#asyncRender(event as CustomEvent<IconSVG>);\n\n render() {\n return html`\n <div internal-host aria-hidden=\"true\"><slot>${unsafeSVG(this.#iconString)}</slot></div>\n `;\n }\n\n connectedCallback() {\n super.connectedCallback();\n attachInternals(this);\n this._internals.role = 'img';\n this.#addIconRegistryListener();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#removeIconRegistryListener();\n }\n\n static async add(icons: { [key: string]: IconSVG }) {\n if (globalThis.customElements?.whenDefined) {\n await globalThis.customElements.whenDefined(Icon.metadata.tag);\n Icon._iconsRegistry = icons;\n Object.keys(icons).forEach(name =>\n globalThis?.document?.dispatchEvent(new CustomEvent(`${Icon.metadata.tag}-${name}`, { detail: icons[name] }))\n );\n }\n }\n\n static alias(aliases: { [key: string]: IconName | string }) {\n // whenDefined has no rejection state\n if (globalThis.customElements?.whenDefined) {\n /* eslint-disable @typescript-eslint/no-floating-promises */\n globalThis.customElements.whenDefined(Icon.metadata.tag).then(() => {\n Object.keys(aliases).forEach(alias => {\n Icon._iconsRegistry[alias] = Icon._iconsRegistry[aliases[alias]!]!;\n globalThis?.document?.dispatchEvent(\n new CustomEvent(`${Icon.metadata.tag}-${alias}`, { detail: Icon._iconsRegistry[alias] })\n );\n });\n });\n }\n }\n\n async updated(props: PropertyValues<this>) {\n super.updated(props);\n if (props.has('name')) {\n this.#removeIconRegistryListener();\n this.#addIconRegistryListener();\n }\n await this.#render();\n }\n\n #addIconRegistryListener() {\n if (!this.isConnected || !this.name || this.#iconRegistryEventName) return;\n this.#iconRegistryEventName = `${Icon.metadata.tag}-${this.name}`;\n globalThis.document?.addEventListener(this.#iconRegistryEventName, this.#onIconRegistryUpdate);\n }\n\n #removeIconRegistryListener() {\n if (!this.#iconRegistryEventName) return;\n globalThis.document?.removeEventListener(this.#iconRegistryEventName, this.#onIconRegistryUpdate);\n this.#iconRegistryEventName = undefined;\n }\n\n async #asyncRender(event: CustomEvent<IconSVG>) {\n if (this.isConnected && event.detail && this.svg !== (await event.detail.svg())) {\n this.#render();\n }\n }\n\n async #render() {\n if (!this.name) return;\n const svg = await (this.name.endsWith('.svg')\n ? fetch(this.name).then(res => res.text())\n : (Icon._iconsRegistry[this.name]?.svg() ?? Promise.resolve('')));\n Icon._iconsRegistry[this.name] = { svg: () => svg, ...Icon._iconsRegistry[this.name] };\n this.svg = svg;\n }\n}\n\nexport function mergeIcons(RegisteredIcon: typeof Icon) {\n if (typeof globalThis.customElements?.get === 'function') {\n const registered = parseVersion(RegisteredIcon.metadata.version);\n const current = parseVersion('0.0.0');\n\n // determine if an older icon already registered and if so, merge the icons with the latest svgs\n if (registered.minor <= current.minor && registered.major <= current.major) {\n RegisteredIcon._icons = { ...RegisteredIcon._icons, ...ICON_IMPORTS };\n }\n }\n}\n"],"mappings":"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"}